'use strict';

var TinyHtmlButtonInput = require('./input/button/TinyHtmlButtonInput.cjs');
var TinyHtmlResetInput = require('./input/button/TinyHtmlResetInput.cjs');
var TinyHtmlSubmitInput = require('./input/button/TinyHtmlSubmitInput.cjs');
var TinyHtmlNumberInput = require('./input/number/TinyHtmlNumberInput.cjs');
var TinyHtmlRangeInput = require('./input/number/TinyHtmlRangeInput.cjs');
var TinyHtmlEmailInput = require('./input/text/TinyHtmlEmailInput.cjs');
var TinyHtmlPasswordInput = require('./input/text/TinyHtmlPasswordInput.cjs');
var TinyHtmlSearchInput = require('./input/text/TinyHtmlSearchInput.cjs');
var TinyHtmlTelInput = require('./input/text/TinyHtmlTelInput.cjs');
var TinyHtmlTextInput = require('./input/text/TinyHtmlTextInput.cjs');
var TinyHtmlUrlInput = require('./input/text/TinyHtmlUrlInput.cjs');
var TinyHtmlColorInput = require('./input/TinyHtmlColorInput.cjs');
var TinyHtmlFileInput = require('./input/TinyHtmlFileInput.cjs');
var TinyHtmlHiddenInput = require('./input/TinyHtmlHiddenInput.cjs');
var TinyHtmlImageInput = require('./input/TinyHtmlImageInput.cjs');
var TinyHtmlAudio = require('./media/TinyHtmlAudio.cjs');
var TinyHtmlButton = require('./TinyHtmlButton.cjs');
var TinyHtmlCanvas = require('./TinyHtmlCanvas.cjs');
var TinyHtmlEmbed = require('./TinyHtmlEmbed.cjs');
var TinyHtmlForm = require('./TinyHtmlForm.cjs');
var TinyHtmlIcon = require('./TinyHtmlIcon.cjs');
var TinyHtmlIframe = require('./TinyHtmlIframe.cjs');
var TinyHtmlImage = require('./TinyHtmlImage.cjs');
var TinyHtmlInput = require('./TinyHtmlInput.cjs');
var TinyHtmlAnchor = require('./TinyHtmlAnchor.cjs');
var TinyHtmlObject = require('./media/TinyHtmlObject.cjs');
var TinyHtmlSelect = require('./TinyHtmlSelect.cjs');
var TinyHtmlTextarea = require('./TinyHtmlTextarea.cjs');
var TinyHtmlVideo = require('./media/TinyHtmlVideo.cjs');
var TinyHtmlMedia = require('./TinyHtmlMedia.cjs');
var TinyHtmlSource = require('./media/TinyHtmlSource.cjs');
var TinyHtmlDatalist = require('./TinyHtmlDatalist.cjs');
var TinyHtmlLink = require('./TinyHtmlLink.cjs');
var TinyHtmlScript = require('./TinyHtmlScript.cjs');
var TinyHtmlStyle = require('./TinyHtmlStyle.cjs');
var TinyHtmlTemplate = require('./TinyHtmlTemplate.cjs');

///////////////////////////////////////////////////


///////////////////////////////////////////////////

/**
 * @class
 * @beta
 */
class TinyHtmlElems {
  static #list = [
    TinyHtmlButtonInput,
    TinyHtmlResetInput,
    TinyHtmlSubmitInput,
    /////////////////////////////////////////////////////
    TinyHtmlNumberInput,
    TinyHtmlRangeInput,
    //////////////////////////////////////////////////
    TinyHtmlEmailInput,
    TinyHtmlPasswordInput,
    TinyHtmlSearchInput,
    TinyHtmlTelInput,
    TinyHtmlTextInput,
    TinyHtmlUrlInput,
    //////////////////////////////////////////////////////
    TinyHtmlColorInput,
    TinyHtmlFileInput,
    TinyHtmlHiddenInput,
    TinyHtmlImageInput,
    ////////////////////////////////////////////////////
    TinyHtmlAudio,
    TinyHtmlButton,
    TinyHtmlCanvas,
    TinyHtmlEmbed,
    TinyHtmlForm,
    TinyHtmlIcon,
    TinyHtmlIframe,
    TinyHtmlImage,
    TinyHtmlInput,
    TinyHtmlAnchor,
    TinyHtmlObject,
    TinyHtmlSelect,
    TinyHtmlTextarea,
    TinyHtmlVideo,
    TinyHtmlMedia,
    TinyHtmlSource,
    TinyHtmlDatalist,
    TinyHtmlLink,
    TinyHtmlScript,
    TinyHtmlStyle,
    ////////////////////////////////////////////////////
    TinyHtmlTemplate,
  ];

  static get list() {
    return [...this.#list];
  }

  static ButtonInput = TinyHtmlButtonInput;
  static ResetInput = TinyHtmlResetInput;
  static SubmitInput = TinyHtmlSubmitInput;

  /////////////////////////////////////////////////////
  static NumberInput = TinyHtmlNumberInput;
  static RangerInput = TinyHtmlRangeInput;

  //////////////////////////////////////////////////

  static EmailInput = TinyHtmlEmailInput;
  static PasswordInput = TinyHtmlPasswordInput;
  static SearchInput = TinyHtmlSearchInput;
  static TelInput = TinyHtmlTelInput;
  static TextInput = TinyHtmlTextInput;
  static UrlInput = TinyHtmlUrlInput;

  //////////////////////////////////////////////////////

  static ColorInput = TinyHtmlColorInput;
  static FileInput = TinyHtmlFileInput;
  static HiddenInput = TinyHtmlHiddenInput;
  static ImgInput = TinyHtmlImageInput;

  ////////////////////////////////////////////////////

  static Audio = TinyHtmlAudio;
  static Button = TinyHtmlButton;
  static Canvas = TinyHtmlCanvas;
  static Embed = TinyHtmlEmbed;
  static Form = TinyHtmlForm;
  static Icon = TinyHtmlIcon;
  static Iframe = TinyHtmlIframe;
  static Img = TinyHtmlImage;
  static Input = TinyHtmlInput;
  static Anchor = TinyHtmlAnchor;
  static Object = TinyHtmlObject;
  static Select = TinyHtmlSelect;
  static Textarea = TinyHtmlTextarea;
  static Video = TinyHtmlVideo;
  static Media = TinyHtmlMedia;

  static Source = TinyHtmlSource;
  static Datalist = TinyHtmlDatalist;
  static Link = TinyHtmlLink;
  static Script = TinyHtmlScript;
  static Style = TinyHtmlStyle;

  ////////////////////////////////////////////////////

  static Element = TinyHtmlTemplate;

  ////////////////////////////////////////////////////

  constructor() {
    throw new Error('Forbidden!!!');
  }
}

/**
export {
  TinyHtmlButtonInput,
  TinyHtmlResetInput,
  TinyHtmlSubmitInput,
  /////////////////////////////////////////////////////
  TinyHtmlNumberInput,
  TinyHtmlRangeInput,
  //////////////////////////////////////////////////
  TinyHtmlEmailInput,
  TinyHtmlPasswordInput,
  TinyHtmlSearchInput,
  TinyHtmlTelInput,
  TinyHtmlTextInput,
  TinyHtmlUrlInput,
  //////////////////////////////////////////////////////
  TinyHtmlColorInput,
  TinyHtmlFileInput,
  TinyHtmlHiddenInput,
  TinyHtmlImageInput,
  ////////////////////////////////////////////////////
  TinyHtmlAudio,
  TinyHtmlButton,
  TinyHtmlCanvas,
  TinyHtmlEmbed,
  TinyHtmlForm,
  TinyHtmlTemplate,
  TinyHtmlIcon,
  TinyHtmlIframe,
  TinyHtmlImage,
  TinyHtmlInput,
  TinyHtmlAnchor,
  TinyHtmlObject,
  TinyHtmlSelect,
  TinyHtmlTextarea,
  TinyHtmlVideo,
  TinyHtmlMedia,
  TinyHtmlSource,
  TinyHtmlDatalist,
  TinyHtmlLink,
  TinyHtmlScript,
  TinyHtmlStyle,
};
 */

module.exports = TinyHtmlElems;
