{"mappings":"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","sources":["index.js","src/cg-select.ts","src/components/create-element/create-element.ts","src/components/utils/utils.ts","src/language/language.ts","src/components/theme/theme.ts"],"sourcesContent":["import { CGSelect } from './src/cg-select';\n\nexport default CGSelect;\n","import {\n createBreadCrumb,\n createInputSearch,\n createNativeSelect,\n createNativeSelectOption,\n} from './components/create-element/create-element';\nimport { ICreateBreadCrumb } from './components/create-element/create-element.interface';\n\nimport {\n clearSelect,\n createSelected,\n customStyles,\n customStylesFormat,\n getFormatItem,\n getSelectText,\n nativeOptionMultiple,\n nativeOptionOrdinary,\n} from './components/utils/utils';\nimport { IDataItem, ISelectedItems } from './components/utils/utils.interface';\n\nimport { ICgSelect, IStyle } from './interfaces/cg-select.interface';\nimport { IItems } from './interfaces/items.interface';\nimport { ru, en } from './language/language';\nimport { ILanguage } from './interfaces/language.interface';\n\nimport './main.scss';\nimport { changeTheme } from './components/theme/theme';\nimport { CustomTheme } from 'components/theme/theme.interface';\n\n/**\n * @class Class Description ICgSelect\n * @description This class implements the functionality of a custom select, with customization capabilities.\n * @author Ovsyanikov Maxim\n */\nexport class CGSelect implements ICgSelect {\n selector?: string;\n selected?: string;\n placeholder?: string;\n items?: IItems[] | string[] | any;\n theme?: string | CustomTheme;\n searchMode?: boolean;\n closeOnSelect?: boolean;\n nativeSelectMode?: boolean;\n listDisplayMode?: boolean;\n language?: string;\n label?: string;\n styles?: IStyle;\n event?: string;\n url?: string;\n multiselect?: boolean;\n multiselectTag?: boolean;\n\n /**\n * Created HTML element.\n * @type {Element | null}\n */\n private element!: Element | null;\n /**\n * Created list(ul), with class list.\n * @type {Element | null | undefined}\n */\n private list!: Element | null;\n /**\n * Select settings passed when creating an instance of the class.\n * @type {ICgSelect}\n */\n private options!: ICgSelect;\n /**\n * Unique Id for elements.\n * @type {string}\n */\n private randomId!: string;\n /**\n * Variable for carriage control.\n * @type {Element | null | undefined}\n */\n private carriage: Element | null | undefined;\n /**\n * Transferred categories.\n * @type {string}\n */\n private category?: string;\n /**\n * Selected or an array of selected items from a list.\n * @type {string[] | string}\n */\n private selectedItems!: string[] | string;\n /**\n * Array of indexes of selected elements.\n * @type {number[]}\n */\n private indexes: number[] = [];\n /**\n * Button, to control the select.\n * @type {Element | null}\n */\n private buttonAction?: Element | null;\n\n /**\n * @param {ICgSelect} setting Object accepting select settings.\n * @constructor ICgSelect class constructor.\n * @description The constructor takes an object and renders the select.\n * @example\n * options = {\n * selector: 'Unique selector',\n selected: 'Selected item',\n placeholder: '...',\n label: '...'\n items: [string|number|object],\n theme: string,\n searchMode: true/false,\n closeOnSelect: true/false,\n nativeSelectMode: true/false,\n listDisplayMode: true/false,\n language: 'ru/en',\n styles: {\n head: {\n background: '...',\n },\n list: {...},\n chips: {...},\n carriage: {...},\n placeholder: {...},\n label: {..},\n },\n event: '...',\n url: 'http/...',\n multiselect: true/false,\n multiselectTag: true/false,\n * } \n */\n constructor(setting: ICgSelect) {\n this.init(setting);\n this.render();\n this.closeSelectClick();\n this.initEvent();\n }\n\n //Getters\n /**\n * @returns {string[] | string} Returns the selected element(s) as an array / element / null.\n * @description Getter returning the selected element(s) of the select.\n */\n get value(): string | string[] {\n return this.selectedItems ?? null;\n }\n\n /**\n * @returns {number | number[]} Returns the indices of the selected element(s) as an array / empty array.\n * @description A getter that returns the indexes of the selected element(s) of the select.\n */\n get indexesOf(): number | number[] {\n return this.indexes ?? [];\n }\n\n /**\n * Private method for initializing an instance of the ICgSelect class.\n * @method init\n * @member\n * @private\n * @param {ISgSelect} setting passed select settings.\n * @description Private method. General initialization of the select. Obtaining tinctures and converting select elements.\n * @example\n * {\n selector: '.cg-dropdown_one',\n placeholder: 'Choose a car',\n items: [\n 'BMW',\n {\n id: '213sade',\n title: 'Opel',\n value: 1,\n },\n 'Mersedes',\n 'MAN',\n 'max',\n ],\n multiselect: true,\n multiselectTag: true,\n }\n */\n private init(setting: ICgSelect): void {\n const {\n items,\n multiselect,\n multiselectTag,\n url,\n selector,\n listDisplayMode,\n nativeSelectMode,\n searchMode,\n language,\n styles,\n label,\n event,\n selected,\n placeholder,\n theme,\n } = setting;\n\n this.options = setting;\n\n this.multiselect = multiselect;\n this.multiselectTag = multiselectTag;\n this.url = url;\n this.selector = selector;\n this.items = items;\n this.searchMode = searchMode;\n this.language = language;\n this.nativeSelectMode = nativeSelectMode;\n this.listDisplayMode = listDisplayMode;\n this.styles = styles;\n this.label = label;\n this.event = event;\n this.selected = selected;\n this.placeholder = placeholder;\n this.theme = theme;\n\n const elem = document.querySelector(this.selector!);\n this.element = elem;\n\n this.element?.addEventListener('click', (e) => {\n e.preventDefault();\n this.open();\n });\n\n this.items = [];\n\n if (this.url && !items) {\n this.renderUrl();\n return;\n }\n\n if (this.label) {\n const labelItem = document.createElement('h1');\n const textLabel = document.createTextNode(this.label);\n\n labelItem.appendChild(textLabel);\n labelItem.classList.add('label');\n\n this.element!.insertAdjacentElement('beforebegin', labelItem);\n }\n\n items.forEach((dataItem: any, index: number) => {\n let itemInputs: IDataItem = {\n ItemValue: dataItem,\n category: dataItem.category,\n categoryItems: dataItem.categoryItems,\n };\n\n if (itemInputs.category && itemInputs.categoryItems) {\n this.category = itemInputs.category!;\n this.items.push(this.category);\n itemInputs.categoryItems.forEach(\n (categoryItem: string | IItems | any, indexCategory: number) => {\n this.items.push(getFormatItem(categoryItem, indexCategory));\n },\n );\n } else {\n this.items.push(getFormatItem(itemInputs.ItemValue, index));\n }\n });\n }\n\n /**\n * @private\n * @method render\n * @param {string} select optional element. Passed to the initSelected.\n * @description Render elements in select.\n */\n private render(select?: string): void {\n const random = Math.random().toString(36).substring(2, 10);\n\n if (select || (select && this.styles)) {\n this.initSelected(select);\n customStyles(this.element!, this.styles!);\n } else {\n this.initSelected();\n }\n\n const ulList = document.createElement('ul');\n const nativeSelect = createNativeSelect();\n\n let inputSearch: HTMLInputElement;\n let textNode: Text;\n\n this.randomId = random;\n\n ulList.classList.add('list');\n ulList!.classList.add('classicList');\n\n if (this.styles) {\n customStylesFormat(this.styles.list!, ulList);\n }\n\n if (this.searchMode) {\n if (this.language === 'ru') {\n inputSearch = createInputSearch(random, ru.placeholder);\n } else {\n inputSearch = createInputSearch(random, en.placeholder);\n }\n\n customStylesFormat(this.styles?.search!, inputSearch);\n ulList.appendChild(inputSearch);\n }\n\n this.element?.appendChild(ulList);\n\n this.items.forEach((dataItem: IItems | any) => {\n this.element?.appendChild(nativeSelect);\n\n const liItem = document.createElement('li');\n const nativeOption = createNativeSelectOption();\n const strongItem = document.createElement('strong');\n\n liItem.classList.add('list__item');\n strongItem.classList.add('category');\n\n if (this.multiselect) {\n const checkBox = document.createElement('input');\n checkBox.type = 'checkbox';\n checkBox.setAttribute('id', `chbox-${dataItem.id}`);\n liItem.appendChild(checkBox);\n\n if (this.multiselectTag) {\n checkBox.classList.add('displayHide');\n }\n\n nativeSelect.setAttribute('multiple', 'multiple');\n }\n\n if (dataItem.title) {\n nativeOption.text = dataItem.title;\n nativeOption.value = dataItem.title;\n textNode = document.createTextNode(dataItem.title);\n\n nativeSelect.appendChild(nativeOption);\n liItem.appendChild(textNode);\n ulList.appendChild(liItem);\n } else {\n // Для отрисовки категорий\n textNode = document.createTextNode(dataItem);\n strongItem.appendChild(textNode);\n ulList.appendChild(strongItem);\n }\n });\n\n this.items.filter((item: IItems | any, index: number) => {\n if (typeof item !== 'object') {\n this.items.splice(index, 1);\n }\n\n return item;\n });\n\n this.list = this.element!.querySelector('.list');\n this.carriage = this.element!.querySelector('.caret');\n\n if (this.theme) {\n changeTheme(this.element!, this.theme!);\n }\n\n if (this.nativeSelectMode === true) {\n this.selectMode(this.nativeSelectMode);\n }\n\n if (this.listDisplayMode) {\n this.displayMode(this.listDisplayMode);\n }\n\n this.addOptionsBehaviour();\n }\n\n /**\n * @private\n * @method renderUrl\n * @description Rendering elements in the select passed from the URL and setting them up.\n */\n private async renderUrl() {\n const response = await fetch(this.url!);\n const dataUrl = await response.json();\n\n const nativeSelect = createNativeSelect();\n\n dataUrl.forEach((dataItem: IItems, index: number) => {\n const item = {\n id: dataItem.id,\n title: dataItem.title,\n value: index,\n };\n\n const ulUrl = this.element!.querySelector('.list');\n\n const nativeOption = createNativeSelectOption();\n const liUrl = document.createElement('li');\n const textUrl = document.createTextNode(item.title);\n\n if (this.multiselect) {\n const checkBox = document.createElement('input');\n checkBox.type = 'checkbox';\n\n if (this.multiselectTag) {\n checkBox.classList.add('displayHide');\n }\n\n checkBox.setAttribute('id', `chbox-${item.id}`);\n nativeSelect.setAttribute('multiple', 'multiple');\n\n liUrl.appendChild(checkBox);\n }\n\n liUrl.classList.add('list__item');\n nativeOption.value = item.title;\n nativeOption.text = item.title;\n\n nativeSelect.appendChild(nativeOption);\n liUrl.appendChild(textUrl);\n ulUrl!.appendChild(liUrl);\n\n this.items.push(item);\n });\n\n this.element!.appendChild(nativeSelect);\n\n this.items.filter((item: IItems | string | any, index: number) => {\n if (typeof item !== 'object') {\n this.items.splice(index, 1);\n }\n return item;\n });\n\n this.addOptionsBehaviour();\n }\n\n /**\n * @method initSelected\n * @param {string} select optional element. Used in the selectedIndex method.\n * @description Renders and styles the select.\n * @private\n */\n private initSelected(select?: string): void {\n if (this.selected) {\n createSelected(this.element!, this.selected);\n } else if (this.placeholder) {\n createSelected(this.element!, this.placeholder);\n } else {\n if (this.language && this.language === 'ru') {\n createSelected(this.element!, ru.selectPlaceholder);\n } else {\n createSelected(this.element!, en.selectPlaceholder);\n }\n }\n\n if (select) {\n createSelected(this.element!, select, this.styles);\n }\n\n if (this.styles) {\n customStyles(this.element!, this.styles);\n }\n }\n\n /**\n * @private\n * @description Opens and closes the list by the passed event.\n * @method initEvent\n */\n private initEvent() {\n if (this.event) {\n if (this.event === 'mouseenter') {\n this.element!.addEventListener(this.event, () => {\n this.open();\n });\n this.element!.addEventListener('mouseleave', () => {\n this.close();\n });\n }\n }\n }\n\n /**\n * @private\n * @param {boolean} oneClick optional parameter passed from the buttonControl function.\n * @description Opens a list to select an element.\n * @method open\n */\n private open(oneClick?: boolean): void {\n if (oneClick === true) {\n this.list!.classList.add('open');\n this.carriage!.classList.add('caret_rotate');\n } else {\n this.list!.classList.toggle('open');\n this.carriage!.classList.toggle('caret_rotate');\n }\n }\n\n /**\n * @private\n * @description Closes the list.\n * @method close\n */\n private close(): void {\n this.list?.classList.remove('open');\n this.carriage?.classList.remove('caret_rotate');\n }\n\n /**\n * @private\n * @description Closes the list on click outside of an element.\n * @method closeSelectClick\n */\n private closeSelectClick(): void {\n const dropdown = document.querySelector(`${this.options.selector}`);\n\n document.addEventListener('click', (e) => {\n const withinBoundaries = e.composedPath().includes(dropdown!);\n if (!withinBoundaries) {\n if (this.buttonAction) {\n return;\n } else {\n this.close();\n }\n }\n });\n }\n\n /**\n * @private\n * @description A method that implements the selection of elements in different modes.\n * @method addOptionsBehaviour\n */\n private addOptionsBehaviour() {\n const options = this.element?.querySelectorAll('.list__item');\n const select: HTMLElement | null | undefined = this.element?.querySelector('.selected');\n const nativeOption = this.element!.querySelectorAll('.nativeSelect__nativeOption');\n\n let selectedItemsClear: ISelectedItems = {\n placeholder: this.placeholder!,\n selected: this.selected!,\n theme: this.theme,\n };\n\n const ulMultipul = document.createElement('ul');\n\n if (this.multiselect) {\n this.selectedItems = [];\n ulMultipul.classList.add('multiselect-tag');\n select?.classList.add('overflow-hidden');\n }\n\n if (this.searchMode) {\n this.searchModeSelect(this.randomId);\n }\n\n options?.forEach((option: Element, index: number) => {\n option.addEventListener('click', (event) => {\n if (Array.isArray(this.selectedItems)) {\n selectedItemsClear = {\n placeholder: this.placeholder!,\n selected: this.selected!,\n selectedItems: this.selectedItems,\n indexes: this.indexes,\n multiselectTag: this.multiselectTag,\n };\n }\n\n const item: IItems = this.items[index];\n\n const checkIndex = this.indexes.indexOf(index);\n\n if (this.closeOnSelect == false || this.multiselect) {\n event.stopPropagation();\n event.preventDefault();\n }\n\n if (this.multiselect) {\n option.classList.toggle('active');\n\n const checkBox: HTMLInputElement | null = option.querySelector('input[type=\"checkbox\"]');\n\n if (checkBox) {\n if (!(event.target instanceof HTMLInputElement)) {\n checkBox.checked = !checkBox.checked;\n }\n\n if (checkIndex == -1) {\n this.indexes.push(index);\n nativeOptionMultiple(nativeOption, item.title, true);\n select!.textContent = '';\n\n if (this.multiselectTag) {\n if (Array.isArray(this.selectedItems)) {\n const dataBreadCrumb: ICreateBreadCrumb = {\n option: this.options,\n element: this.element,\n indexes: this.indexes,\n selectedItems: this.selectedItems,\n };\n\n this.selectedItems.push(item.title);\n select!.appendChild(ulMultipul);\n ulMultipul.appendChild(\n createBreadCrumb(dataBreadCrumb, item.title, index, item.id),\n );\n }\n } else {\n if (Array.isArray(this.selectedItems)) {\n this.selectedItems.push(item.title);\n select!.innerText = this.selectedItems.join(',');\n }\n }\n } else {\n if (this.multiselectTag) {\n const tagItem = document.getElementById(`tag-${index}-${item.id}`);\n ulMultipul.removeChild(tagItem!);\n }\n\n if (Array.isArray(this.selectedItems)) {\n this.selectedItems.splice(checkIndex, 1);\n this.indexes.splice(checkIndex, 1);\n nativeOptionMultiple(nativeOption, item.title, false);\n }\n }\n\n if (!this.selectedItems.length) {\n getSelectText(selectedItemsClear, select);\n } else {\n if (this.multiselectTag) {\n select!.appendChild(ulMultipul);\n } else {\n if (Array.isArray(this.selectedItems)) {\n select!.innerText = this.selectedItems.join(',');\n }\n }\n }\n }\n } else {\n select!.textContent = item.title;\n this.selectedItems = item.title;\n\n nativeOptionOrdinary(nativeOption, item.title);\n\n options.forEach((option) => {\n option.classList.remove('active');\n });\n option.classList.add('active');\n }\n\n clearSelect(select!, this.element!, selectedItemsClear);\n });\n });\n }\n\n /**\n * @private\n * @param {boolean} nativeSelectMode parameter responsible for adding native select.\n * @description Changes the display of the select on mobile devices.\n * @method selectMode\n */\n private selectMode(nativeSelectMode: boolean) {\n let win = window.outerWidth;\n\n if (nativeSelectMode === true) {\n const select = this.element!.querySelector('.cg-select');\n const list = this.element!.querySelector('.list');\n const nativeSelect = this.element!.querySelector('.nativeSelect');\n\n if (win < 576) {\n select!.classList.add('displayHide');\n list!.classList.add('displayHide');\n nativeSelect!.classList.add('nativeSelectActive');\n } else if (win > 576) {\n select!.classList.remove('displayHide');\n list!.classList.remove('displayHide');\n nativeSelect!.classList.remove('nativeSelectActive');\n nativeSelect!.classList.add('displayHide');\n }\n } else {\n return;\n }\n }\n\n /**\n * @description The method that implements the search for elements in the select.\n * @private\n * @param {string} random unique value for input element.\n * @method searchMode\n */\n private searchModeSelect(random: string) {\n const input = this.element!.querySelector(`#searchSelect-${random}`) as HTMLInputElement;\n const searchSelect = this.element!.querySelectorAll('.list__item');\n const result = document.createElement('p');\n\n let textNode: Text;\n if (this.language && this.language === 'ru') {\n textNode = document.createTextNode(`${ru.textInListSearch}`);\n } else {\n textNode = document.createTextNode(`${en.textInListSearch}`);\n }\n\n result.appendChild(textNode);\n result.classList.add('displayHide');\n result.classList.add('noRezult');\n input!.parentElement!.appendChild(result);\n\n input!.addEventListener('click', (e) => {\n e.stopPropagation();\n });\n\n if (input instanceof HTMLInputElement) {\n input!.oninput = function () {\n let valueSearch: string = input.value.trim().toLowerCase();\n let anyMatch = false;\n\n if (valueSearch != '') {\n searchSelect.forEach((elem) => {\n let isMatching = new RegExp(valueSearch, 'gi').test(elem.textContent!);\n anyMatch = anyMatch || isMatching;\n\n if (elem.textContent!.toLowerCase().search(valueSearch) == -1) {\n elem.classList.add('displayHide');\n } else {\n elem.classList.remove('displayHide');\n }\n });\n\n result.classList.toggle('displayHide', anyMatch);\n } else {\n searchSelect.forEach((elem) => {\n elem.classList.remove('displayHide');\n result.classList.add('displayHide');\n });\n }\n };\n }\n }\n\n /**\n * @private\n * @param {boolean} listDisplayMode parameter responsible for displaying the selection in the form of a modal window.\n * @description Changes the display of a sheet with a selection as a modal window.\n * @method displayMode\n */\n private displayMode(listDisplayMode: boolean): void {\n if (listDisplayMode) {\n const modal = document.createElement('div');\n const body = document.querySelector('body');\n const list = this.list!;\n\n modal.appendChild(list);\n this.element!.appendChild(modal);\n\n this.element!.addEventListener('click', () => {\n modal.classList.toggle('modal');\n list.classList.toggle('listModal');\n body!.classList.toggle('overflowHide');\n });\n } else {\n return;\n }\n }\n\n // Public methods\n\n /**\n * @param {number} numberItem returned element number.\n * @returns {HTMLElement} returns a reference to the selected HTML element.\n * @method getElement\n */\n public getElement(numberItem: number): IItems[] | any {\n if (numberItem > this.items.length) {\n return;\n }\n\n return this.items[numberItem];\n }\n\n /**\n * @param {ILanguage} language the object in which the fields for connecting the language are located has two mandatory fields placeholder, textInListSearch, selectPlaceholder.\n * @description a method that allows you to change the placeholder in the search and the text that is displayed if there is no result.\n * @method addLanguage\n */\n public addLanguage(language: ILanguage) {\n const { placeholder, textInListSearch, selectPlaceholder } = language;\n\n const select = this.element!.querySelector('.selected');\n const textNodeSelect = document.createTextNode(selectPlaceholder);\n select!.appendChild(textNodeSelect);\n\n if (this.searchMode) {\n const search = this.element!.querySelector('.inputSearch');\n const textNoRezult = this.element!.querySelector('.noRezult');\n const textNode = document.createTextNode(textInListSearch);\n\n search!.setAttribute('placeholder', placeholder);\n search!.setAttribute('placeholder', placeholder);\n\n textNoRezult!.textContent = '';\n textNoRezult!.appendChild(textNode);\n }\n }\n\n /**\n * @param {HTMLInputElement} button - HTML button.\n * @param {string} method - open/close method.\n * @description A method that allows you to open / close the select using buttons.\n * @method buttonControl\n */\n public buttonControl(button: Element, method: string) {\n if (this.listDisplayMode) {\n return;\n }\n\n this.buttonAction = button!;\n button.addEventListener('click', () => {\n if (method.toLowerCase() === 'open') {\n this.open(true);\n } else if (method.toLowerCase() === 'close') {\n this.close();\n } else {\n return;\n }\n });\n }\n\n /**\n * @param {boolean} value - Passed parameter to add the disabled attribute.\n * @description A method that allows you to toggle the state of the disabled select.\n * @method disabled\n */\n public disabled(value: boolean) {\n const select = this.element!.querySelector('.cg-select');\n const nativeSelect = this.element!.querySelector('.nativeSelect');\n\n if (value === true) {\n this.element!.setAttribute('disabled', 'true');\n nativeSelect!.setAttribute('disabled', 'true');\n select!.classList.add('disabled');\n } else {\n this.element!.removeAttribute('disabled');\n nativeSelect!.removeAttribute('disabled');\n select!.classList.remove('disabled');\n }\n }\n\n /**\n * @param {string | IItems} item added element.\n * @description adds the given element to the end of the list and redraws the list. Cannot be used when passing elements with categories.\n * @method addItem\n */\n public addItem(item: IItems | string | number) {\n if (this.category) {\n console.log('can`t add item to category');\n return;\n }\n\n if (!item) {\n return false;\n }\n\n const index = this.items.length;\n\n this.items.push(getFormatItem(item, index));\n this.render();\n }\n\n /**\n * @param {number} index the index of the element to be removed.\n * @description removes the element by index from the list and redraws it. Cannot be used when passing elements with categories.\n * @method deleteItem\n */\n public deleteItem(index: number) {\n if (this.category) {\n console.log('can`t add item to category');\n return;\n }\n\n const item = this.items[index];\n\n this.items.splice(index, 1);\n this.render();\n }\n\n /**\n * @description removes all elements from the list and redraws it.\n * @method deleteItemAll\n */\n public deleteItemAll() {\n this.items.splice(0, this.items.length);\n this.render();\n }\n\n /**\n * @param {number} index the index of the selected element.\n * @description selects the element that will be initially rendered in the select.\n * @method selectIndex\n */\n public selectIndex(index: number) {\n if (this.category) {\n console.log('can`t add item to category');\n return;\n }\n\n const options = this.element!.querySelectorAll('.list__item') as NodeListOf;\n\n if (index > options!.length) {\n return;\n }\n\n const select: string = options[index].innerText;\n this.render(select);\n }\n\n /**\n * @description Method for tracking the actions of the select, you can pass a callback\n * @param state select state.\n * @param callback\n * @method on\n */\n public on(state: string, callback: (state: any, value?: string) => any) {\n const options = this.element?.querySelectorAll('.list__item');\n let value = '';\n\n switch (state) {\n case 'select':\n options?.forEach((option: Element) => {\n option.addEventListener('click', () => {\n console.log('option:select', option.textContent);\n value = option.textContent!;\n callback(state, value);\n });\n });\n break;\n case 'close':\n this.element!.addEventListener('click', () => {\n console.log('list:close', this.list!.classList.contains('close'));\n });\n callback(state);\n break;\n case 'open':\n this.element!.addEventListener('click', () => {\n console.log('list:open', this.list!.classList.contains('open'));\n });\n callback(state);\n break;\n case 'clear':\n this.element!.addEventListener('click', () => {\n const svgIcon = this.element?.querySelector('.svg-icon');\n svgIcon?.addEventListener('click', () => {\n console.log('list:clear', svgIcon.classList.contains('svg-clear'));\n });\n });\n callback(state);\n break;\n }\n }\n}\n","import { customStylesFormat, nativeOptionMultiple } from '../utils/utils';\nimport { ICreateBreadCrumb } from './create-element.interface';\n\n/**\n * The method that creates the native select.\n * @returns {HTMLSelectElement} Returns the created native select.\n */\nexport function createNativeSelect(): HTMLSelectElement {\n const nativeSelect = document.createElement('select');\n\n nativeSelect.setAttribute('name', 'dataSelect');\n nativeSelect.classList.add('nativeSelect');\n return nativeSelect;\n}\n\n/**\n * The method that creates Options for the native select.\n * @returns {HTMLOptionElement} Returns the generated Options of the native select.\n */\nexport function createNativeSelectOption(): HTMLOptionElement {\n const nativeOption = document.createElement('option');\n\n nativeOption.classList.add('nativeSelect__nativeOption');\n return nativeOption;\n}\n\n/**\n * The method that creates and is responsible for the behavior of the chips.\n * @param {ICreateBreadCrumb} data an object that contains settings and select elements.\n * @param {string} title the name of the selected element to draw chips.\n * @param {number} index index of the selected item to draw chips.\n * @param {string} id unique id of the selected element.\n * @returns {HTMLElement} returns the generated HTMLElement chips item.\n */\nexport function createBreadCrumb(\n data: ICreateBreadCrumb,\n title: string,\n index: number,\n id: string,\n): HTMLLIElement {\n const { element, option, indexes, selectedItems } = data;\n const { placeholder, styles } = option;\n\n const selected: HTMLElement | null | undefined = element?.querySelector('.selected');\n const nativeOption = element!.querySelectorAll('.nativeSelect__nativeOption');\n\n const liChip = document.createElement('li');\n const textNode = document.createTextNode(title);\n const svgIcon = document.createElementNS('http://www.w3.org/2000/svg', 'svg');\n const path1 = document.createElementNS('http://www.w3.org/2000/svg', 'path');\n const path2 = document.createElementNS('http://www.w3.org/2000/svg', 'path');\n\n svgIcon.setAttribute('viewBox', '0 0 10 10');\n path1.setAttribute('d', 'M3,7 L7,3');\n path2.setAttribute('d', 'M3,3 L7,7');\n liChip.setAttribute('id', `tag-${index}-${id}`);\n\n svgIcon.classList.add('svg-icon');\n\n svgIcon.appendChild(path1);\n svgIcon.appendChild(path2);\n liChip.appendChild(textNode);\n liChip.appendChild(svgIcon);\n\n if (styles) {\n const { chips } = styles;\n customStylesFormat(chips!, liChip);\n }\n\n svgIcon.addEventListener('click', (event) => {\n event.preventDefault();\n event.stopPropagation();\n nativeOptionMultiple(nativeOption, title, false);\n\n const deleteIcon = indexes.indexOf(index);\n let checkBox: any;\n\n indexes.splice(deleteIcon, 1);\n selectedItems.splice(deleteIcon, 1);\n\n if (id) {\n checkBox = document.getElementById(`chbox-${id}`);\n } else {\n checkBox = document.getElementById(`chbox-${index}`);\n }\n\n checkBox.checked = false;\n checkBox.parentElement.classList.remove('active');\n\n if (!selectedItems.length) {\n selected!.innerText = placeholder!;\n }\n\n liChip.parentElement!.removeChild(liChip);\n });\n\n return liChip;\n}\n\n/**\n * The method that creates a search for elements in the select.\n * @param {string} random unique value for input element.\n * @param {string} lenguage text in specific language passed from language.ts file\n * @returns {HTMLInputElement} Returns the rendered input element.\n */\nexport function createInputSearch(random: string, lenguage: string): HTMLInputElement {\n const inputSearch = document.createElement('input');\n\n inputSearch.type = 'text';\n inputSearch.classList.add('inputSearch');\n inputSearch.setAttribute('id', `searchSelect-${random}`);\n\n if (lenguage) {\n inputSearch.setAttribute('placeholder', `${lenguage}`);\n } else {\n inputSearch.setAttribute('placeholder', 'Search...');\n }\n\n inputSearch.addEventListener('click', (e) => {\n e.preventDefault();\n });\n\n return inputSearch;\n}\n","/**\n * Utils module\n * @module Utils\n */\nimport { IStyle } from 'interfaces/cg-select.interface';\nimport { IItems } from 'interfaces/items.interface';\nimport { ISelectedItems } from './utils.interface';\n\n/**\n * Converting each item obtained from the Items field;\n * @param {any} dataItem received element passed when creating the select.\n * @param {number} index index of this element.\n * @returns {IItems} returns the formed object\n */\nexport function getFormatItem(dataItem: any, index: number): IItems {\n const random = Math.random().toString(36).substring(2, 10);\n let item: IItems;\n\n if (checkItemStruct(dataItem)) {\n return dataItem;\n } else {\n item = {\n id: random,\n title: dataItem,\n value: index,\n };\n\n return item;\n }\n}\n\n/**\n * Insert initial select text (before selection)\n * @param {ITextSelect} data the object in which the title of the select is located.\n * @param {HTMLElement | null | undefined} select select element where title will be inserted.\n * @returns {HTMLElement} returns the generated select element.\n */\nexport function getSelectText(\n data: ISelectedItems,\n select: HTMLElement | null | undefined,\n): HTMLElement {\n const { placeholder, selected } = data;\n\n if (placeholder) {\n select!.innerText = placeholder;\n } else if (selected) {\n select!.innerText = selected;\n } else {\n select!.innerText = 'Select...';\n }\n\n return select!;\n}\n\n/**\n * Checking if item contains the specified properties.\n * @param {object} item element to be checked against a certain structure.\n * @returns {boolean} returns true/false if item contains the specified properties.\n */\nexport function checkItemStruct(item: object): boolean {\n if (item && typeof item !== 'object') {\n return false;\n }\n\n return item.hasOwnProperty('id') && item.hasOwnProperty('title') && item.hasOwnProperty('value');\n}\n\n/**\n * Creating an Item Selector Button.\n * @param {HTMLElement} element instantiated class CgSelect.\n * @param {string} content placeholer passed from select settings.\n * @param {object} styles optional parameter. The object in which the settings for customizing parts of the select are located.\n */\nexport function createSelected(element: Element, content?: string, styles?: IStyle) {\n const select = document.createElement('div');\n const selected = document.createElement('p');\n const caret = document.createElement('div');\n\n select.classList.add('cg-select');\n select.classList.add('classicSelect');\n selected.classList.add('selected');\n caret.classList.add('caret');\n\n select.appendChild(selected);\n select.appendChild(caret);\n\n if (content) {\n const text = document.createTextNode(content);\n selected.appendChild(text);\n element.innerHTML = '';\n element?.insertAdjacentElement('afterbegin', select);\n } else if (styles) {\n customStyles(element!, styles);\n select.setAttribute('style', `${styles}`);\n selected.setAttribute('style', `${styles}`);\n caret.setAttribute('style', `${styles}`);\n }\n}\n\n/**\n * Creating a clear select button, with a single selection.\n * @param {HTMLElement} select place in the select that will be reassigned to ''.\n * @param {Element} element class instance CgSelect.\n * @param {ISelectedItems} dataSelectText the text that is rendered in the select.\n */\nexport function clearSelect(select: HTMLElement, element: Element, dataSelectText: ISelectedItems) {\n const { selectedItems, indexes, theme, multiselectTag } = dataSelectText;\n\n const options = element.querySelectorAll('.list__item');\n const nativeOption = element!.querySelectorAll('.nativeSelect__nativeOption');\n const svgIcon = document.createElementNS('http://www.w3.org/2000/svg', 'svg');\n const path1 = document.createElementNS('http://www.w3.org/2000/svg', 'path');\n const path2 = document.createElementNS('http://www.w3.org/2000/svg', 'path');\n const checkBox = element.querySelectorAll('li input');\n\n svgIcon.setAttribute('viewBox', '0 0 10 10');\n path1.setAttribute('d', 'M2,8 L8,2');\n path2.setAttribute('d', 'M2,2 L8,8');\n svgIcon.appendChild(path1);\n svgIcon.appendChild(path2);\n\n if (multiselectTag && multiselectTag == true) {\n return;\n }\n\n switch (theme) {\n case 'dark':\n path1.classList.add('pathWhite');\n path2.classList.add('pathWhite');\n break;\n case 'white':\n path1.classList.add('pathBlack');\n path2.classList.add('pathBlack');\n break;\n default:\n path1.classList.add('pathWhite');\n path2.classList.add('pathWhite');\n break;\n }\n\n svgIcon.classList.add('svg-icon');\n svgIcon.classList.add('svg-clear');\n\n select!.appendChild(svgIcon);\n\n svgIcon.addEventListener('click', (e) => {\n e.preventDefault();\n e.stopPropagation();\n select!.innerText = '';\n\n nativeOption.forEach((option) => {\n option.removeAttribute('selected');\n });\n\n if (Array.isArray(selectedItems)) {\n selectedItems!.splice(0);\n indexes!.splice(0);\n }\n\n checkBox.forEach((item) => {\n if (item instanceof HTMLInputElement) {\n item.checked = false;\n }\n });\n\n getSelectText(dataSelectText, select);\n\n options.forEach((option) => {\n option.classList.remove('active');\n });\n });\n}\n\n/**\n * Behavior of a native (single) select when choosing a custom one.\n * @param {NodeList} element NodeList native select.\n * @param {any} item selected element in custom select.\n */\nexport function nativeOptionOrdinary(element: NodeListOf | undefined, item: string) {\n element!.forEach((option) => {\n option.removeAttribute('selected');\n if (option.textContent === item) {\n option.setAttribute('selected', 'selected');\n }\n });\n}\n\n/**\n * The behavior of the native (Multiple) select when choosing in a custom one.\n * @param {NodeListOf | undefined} element NodeList of native select.\n * @param {string} item selected element in custom select.\n * @param {boolean} condition a special flag that adds / removes attributes from the native select.\n */\nexport function nativeOptionMultiple(\n element: NodeListOf | undefined,\n item: string,\n condition: boolean,\n) {\n element!.forEach((option) => {\n if (condition == true) {\n if (option.textContent === item) {\n option.setAttribute('selected', 'selected');\n }\n } else if (condition == false) {\n if (option.textContent === item) {\n option.removeAttribute('selected');\n }\n } else {\n return;\n }\n });\n}\n\n/**\n * Finding and styling elements derived from the styles instance CgSelect\n * @param {Element} element instantiated class CgSelect.\n * @param {object} styles object in which there are settings for customizing parts of the select.\n */\nexport function customStyles(element: Element, styles: IStyle) {\n const cgSelect = element.querySelector('.cg-select');\n const caretSelect = element.querySelector('.caret');\n const placeholderSelect = element.querySelector('.selected');\n const lableItem = element.parentElement!.querySelector('h1.label');\n\n customStylesFormat(styles.head!, cgSelect!);\n customStylesFormat(styles.caret!, caretSelect!);\n customStylesFormat(styles.lable!, lableItem!);\n\n if (placeholderSelect) {\n customStylesFormat(styles.placeholder!, placeholderSelect);\n }\n}\n\n/**\n * Generic Method for Styling a Select.\n * @param {object} elemOption an object obtained from the styles object from which we get the styles key-value.\n * @param {HTMLElement} selector HTMLElement subject to customization.\n */\nexport function customStylesFormat(elemOption: object, selector: any) {\n if (elemOption) {\n Object.entries(elemOption).forEach(([key, value]) => {\n selector.style[key] = value;\n });\n }\n}\n","import { ILanguage } from 'interfaces/language.interface';\n\nexport const ru: ILanguage = {\n selectPlaceholder: 'Выберите элемент...',\n placeholder: 'Поиск...',\n textInListSearch: 'Совпадений нет...',\n};\n\nexport const en: ILanguage = {\n selectPlaceholder: 'Select element...',\n placeholder: 'Search...',\n textInListSearch: 'No matches...',\n};\n","import { CustomTheme } from './theme.interface';\n\nexport function changeTheme(element: Element, theme: string | CustomTheme) {\n const select = element!.querySelector('.cg-select');\n const caret = element!.querySelector('.caret');\n const list = element!.querySelector('ul.list');\n const search = element!.querySelector('.inputSearch');\n const path = element.querySelectorAll('.pathWhite');\n const nativeSelect = element.querySelector('.nativeSelect');\n\n select!.classList.remove('classicSelect');\n list!.classList.remove('classicList');\n path.forEach((elem) => {\n elem.classList.remove('pathBlack');\n elem.classList.remove('pathWhite');\n });\n\n if (typeof theme === 'string') {\n switch (theme) {\n case 'dark':\n select!.classList.add('selectDark');\n list!.classList.add('listDark');\n nativeSelect?.classList.add('listDark');\n path.forEach((elem) => {\n elem.classList.add('pathWhite');\n });\n break;\n case 'white':\n select!.classList.add('selectWhite');\n caret!.classList.add('caretWhite');\n list!.classList.add('listWhite');\n nativeSelect?.classList.add('listWhite');\n path.forEach((elem) => {\n elem.classList.add('pathBlack');\n });\n\n if (search!) {\n search!.classList.add('inputWhite');\n }\n break;\n\n default:\n select!.classList.add('classicSelect');\n list!.classList.add('classicList');\n break;\n }\n } else {\n select!.classList.add(`${theme.styles.head}`);\n list!.classList.add(`${theme.styles.list}`);\n }\n}\n"],"names":[],"version":3,"file":"index.js.map"}