@zanichelli/albe-web-components 18.4.0-rc6 → 18.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +28 -0
- package/dist/cjs/index-96af6326.js +4 -0
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/{utils-a6d8a0b7.js → utils-a5d151ea.js} +1 -1
- package/dist/cjs/{utils-a6d8a0b7.js.map → utils-a5d151ea.js.map} +1 -1
- package/dist/cjs/web-components-library.cjs.js +1 -1
- package/dist/cjs/z-date-picker.cjs.entry.js +1 -1
- package/dist/cjs/z-range-picker.cjs.entry.js +1 -1
- package/dist/cjs/z-result-card.cjs.entry.js +80 -0
- package/dist/cjs/z-result-card.cjs.entry.js.map +1 -0
- package/dist/cjs/z-select.cjs.entry.js +5 -3
- package/dist/cjs/z-select.cjs.entry.js.map +1 -1
- package/dist/collection/collection-manifest.json +1 -0
- package/dist/collection/components/css-components/z-cover/index.stories.js +40 -0
- package/dist/collection/components/css-components/z-cover/index.stories.js.map +1 -0
- package/dist/collection/components/css-components/z-cover/styles.css +69 -0
- package/dist/collection/components/file-upload/z-file-upload/index.js +1 -1
- package/dist/collection/components/result-card/z-result-card/index.js +184 -0
- package/dist/collection/components/result-card/z-result-card/index.js.map +1 -0
- package/dist/collection/components/result-card/z-result-card/styles.css +147 -0
- package/dist/collection/components/result-card/z-result-card/z-result-card.stories.js +98 -0
- package/dist/collection/components/result-card/z-result-card/z-result-card.stories.js.map +1 -0
- package/dist/collection/components/z-select/index.js +5 -3
- package/dist/collection/components/z-select/index.js.map +1 -1
- package/dist/components/index.d.ts +2 -0
- package/dist/components/index.js +1 -0
- package/dist/components/index.js.map +1 -1
- package/dist/components/z-result-card.d.ts +11 -0
- package/dist/components/z-result-card.js +107 -0
- package/dist/components/z-result-card.js.map +1 -0
- package/dist/components/z-select.js +5 -3
- package/dist/components/z-select.js.map +1 -1
- package/dist/esm/index-c8ceadeb.js +4 -0
- package/dist/esm/loader.js +1 -1
- package/dist/esm/{utils-ae56fbe5.js → utils-9b99e7a0.js} +1 -1
- package/dist/esm/{utils-ae56fbe5.js.map → utils-9b99e7a0.js.map} +1 -1
- package/dist/esm/web-components-library.js +1 -1
- package/dist/esm/z-date-picker.entry.js +1 -1
- package/dist/esm/z-range-picker.entry.js +1 -1
- package/dist/esm/z-result-card.entry.js +76 -0
- package/dist/esm/z-result-card.entry.js.map +1 -0
- package/dist/esm/z-select.entry.js +5 -3
- package/dist/esm/z-select.entry.js.map +1 -1
- package/dist/types/components/css-components/z-cover/index.stories.d.ts +12 -0
- package/dist/types/components/result-card/z-result-card/index.d.ts +41 -0
- package/dist/types/components/result-card/z-result-card/z-result-card.stories.d.ts +10 -0
- package/dist/types/components.d.ts +61 -0
- package/dist/web-components-library/p-302041ec.entry.js +2 -0
- package/dist/web-components-library/p-302041ec.entry.js.map +1 -0
- package/{www/build/p-0bf8d989.entry.js → dist/web-components-library/p-811e9ae0.entry.js} +2 -2
- package/{www/build/p-6a48d114.entry.js → dist/web-components-library/p-8b4ae80a.entry.js} +2 -2
- package/{www/build/p-e327ad03.entry.js → dist/web-components-library/p-8e7554c4.entry.js} +2 -2
- package/dist/web-components-library/p-8e7554c4.entry.js.map +1 -0
- package/dist/web-components-library/{p-00e88046.js → p-c08fe3cc.js} +1 -1
- package/dist/web-components-library/web-components-library.css +70 -0
- package/dist/web-components-library/web-components-library.esm.js +1 -1
- package/dist/web-components-library/web-components-library.esm.js.map +1 -1
- package/package.json +1 -1
- package/react/components.d.ts +1 -0
- package/react/components.js +2 -1
- package/react/components.js.map +1 -1
- package/www/build/{p-e8f76911.js → p-0666df4a.js} +1 -1
- package/www/build/p-302041ec.entry.js +2 -0
- package/www/build/p-302041ec.entry.js.map +1 -0
- package/{dist/web-components-library/p-0bf8d989.entry.js → www/build/p-811e9ae0.entry.js} +2 -2
- package/{dist/web-components-library/p-6a48d114.entry.js → www/build/p-8b4ae80a.entry.js} +2 -2
- package/{dist/web-components-library/p-e327ad03.entry.js → www/build/p-8e7554c4.entry.js} +2 -2
- package/www/build/p-8e7554c4.entry.js.map +1 -0
- package/www/build/{p-dda8d321.css → p-92615446.css} +70 -0
- package/www/build/{p-00e88046.js → p-c08fe3cc.js} +1 -1
- package/www/build/web-components-library.css +70 -0
- package/www/build/web-components-library.esm.js +1 -1
- package/www/build/web-components-library.esm.js.map +1 -1
- package/www/index.html +1 -1
- package/dist/web-components-library/p-e327ad03.entry.js.map +0 -1
- package/www/build/p-e327ad03.entry.js.map +0 -1
- /package/dist/types/home/{runner/work/design-system → utente/Scrivania/Progetti-Zanichelli}/design-system/.stencil/docs/grid/index.stories.d.ts +0 -0
- /package/dist/types/home/{runner/work/design-system → utente/Scrivania/Progetti-Zanichelli}/design-system/.stencil/docs/iconset/index.stories.d.ts +0 -0
- /package/dist/types/home/{runner/work/design-system → utente/Scrivania/Progetti-Zanichelli}/design-system/.stencil/docs/themes/index.stories.d.ts +0 -0
- /package/dist/types/home/{runner/work/design-system → utente/Scrivania/Progetti-Zanichelli}/design-system/.stencil/docs/typography/index.stories.d.ts +0 -0
- /package/dist/web-components-library/{p-0bf8d989.entry.js.map → p-811e9ae0.entry.js.map} +0 -0
- /package/dist/web-components-library/{p-6a48d114.entry.js.map → p-8b4ae80a.entry.js.map} +0 -0
- /package/dist/web-components-library/{p-00e88046.js.map → p-c08fe3cc.js.map} +0 -0
- /package/www/build/{p-0bf8d989.entry.js.map → p-811e9ae0.entry.js.map} +0 -0
- /package/www/build/{p-6a48d114.entry.js.map → p-8b4ae80a.entry.js.map} +0 -0
- /package/www/build/{p-00e88046.js.map → p-c08fe3cc.js.map} +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["stylesCss","ZSelectStyle0","ZSelect","constructor","hostRef","this","itemsList","itemIdKeyMap","resetKey","randomId","ControlSize","BIG","toggleSelectUl","bind","handleSelectFocus","watchItems","getInitialItemsArray","selectedItem","findSelectedItem","flattenedList","flattenTreeItems","forEach","item","key","id","getFocusedItemHandler","e","focusedItemId","target","getSelectedItem","getValue","getSelectedValue","setValue","value","values","push","length","updateSelection","emitOptionSelect","optionSelect","emit","htmlid","selected","emitResetSelect","resetSelect","componentWillLoad","componentWillRender","filterItems","searchString","items","JSON","parse","mapSelectedItemToItemsArray","initialItemsList","map","_a","prevList","hasTreeItems","filterTree","filter","name","toUpperCase","includes","getHighlightedText","matchingParent","match","newItem","Object","assign","children","showChildrenOfMatchingParent","text","search","upperText","upperSearch","start","indexOf","end","substring","hasAutocomplete","boolean","autocomplete","handleInputChange","detail","isOpen","selectedId","found","selectItem","disabled","flatItems","index","flatten","subItems","itm","arrowsSelectNav","idOrReset","showResetIcon","resetItem","arrows","KeyboardCode","ARROW_DOWN","ARROW_UP","preventDefault","stopPropagation","f","unshift","currentIndex","findIndex","k","lastIndex","newIndex","focusSelectItem","host","querySelector","focus","selfFocusOnClose","readonly","document","addEventListener","removeEventListener","handleInputClick","closest","clickedElement","getClickedElement","hasAttribute","KeyboardEvent","ESC","ENTER","TAB","getElementTree","find","elem","nodeName","toLowerCase","MouseEvent","scrollToLetter","letter","foundItem","charAt","renderInput","h","class","placeholder","replace","label","ariaLabel","icon","hasclearicon","message","status","undefined","role","size","onClick","onKeyUp","handleKeyboardSubmit","onKeyDown","current","onInputChange","onKeyPress","String","fromCharCode","keyCode","renderSelectUl","fixed","isfixed","tabindex","listSizeType","renderResetItem","renderSelectUlItems","hide","hasGroupItems","clickable","dividerType","ListDividerType","ELEMENT","ListSize","MEDIUM","onClickItem","renderItem","lastItem","thisItemKey","HEADER","innerHTML","NONE","SMALL","X_SMALL","renderNoSearchResults","renderSelectGroupItems","renderGroupedTree","array","isLastItem","parentHasSiblings","renderTreeItems","isLastChild","isTopLevel","hasDivider","_b","tabIndex","title","child","arr","grouped","reduce","acc","category","entries","some","groupItems","slot","i","style","zIndex","height","newData","group","zListItem","color","fill","noresultslabel","renderMessage","render"],"sources":["src/components/z-select/styles.css?tag=z-select&encapsulation=scoped","src/components/z-select/index.tsx"],"sourcesContent":[":host {\n display: inline-block;\n width: inherit;\n color: var(--color-form-default-text);\n font-family: var(--font-family-sans);\n font-size: var(--font-size-3);\n font-weight: var(--font-rg);\n}\n\n:host([size=\"small\"]),\n:host([size=\"x-small\"]) {\n font-size: var(--font-size-2);\n}\n\n.select-wrapper > z-input {\n width: 100%;\n}\n\n.select-wrapper > z-input .input-icon {\n cursor: pointer;\n}\n\n.select-wrapper > div {\n position: relative;\n}\n\n.select-wrapper > div.closed {\n overflow: hidden;\n height: 0;\n}\n\n.select-wrapper .ul-scroll-wrapper {\n position: absolute;\n width: 100%;\n box-sizing: border-box;\n border-top: none;\n background: var(--color-form-background);\n box-shadow: var(--shadow-2);\n outline: none;\n}\n\n.select-wrapper .closed .ul-scroll-wrapper {\n z-index: 10;\n}\n\n.select-wrapper .open .ul-scroll-wrapper {\n z-index: 20;\n}\n\n.select-wrapper .ul-scroll-wrapper.fixed {\n position: static;\n}\n\n.select-wrapper z-list {\n --background-color-list-element: var(--color-form-background);\n --background-hover-color-list-element: var(--color-form-surface03);\n --background-active-color-list-element: var(--color-form-surface03);\n}\n\n.select-wrapper .ul-scroll-wrapper > z-list {\n position: relative;\n overflow: auto;\n max-height: 240px;\n padding: 0 calc(var(--space-unit) * 1.5);\n outline: none;\n}\n\n.select-wrapper .ul-scroll-wrapper z-list z-list-element[disabled] {\n color: var(--color-form-disabled03);\n}\n\n.select-wrapper .ul-scroll-wrapper z-list z-list-element .list-element-container {\n display: flex;\n align-items: center;\n padding: calc(var(--space-unit) / 2) var(--space-unit);\n column-gap: var(--space-unit);\n}\n\n.select-wrapper .ul-scroll-wrapper z-list z-list-element .list-element-container .list-element-content {\n margin-right: auto;\n}\n\n.select-wrapper .ul-scroll-wrapper z-list z-list-element .list-element-container > z-icon + .list-element-content {\n padding: calc(var(--space-unit) * 0.5) var(--space-unit);\n}\n\n:host([size=\"x-small\"])\n .select-wrapper\n .ul-scroll-wrapper\n z-list\n z-list-element\n .list-element-container\n .list-element-content {\n padding: 0;\n}\n\n:host([size=\"small\"]) .select-wrapper .ul-scroll-wrapper z-list z-list-element .list-element-container > z-icon {\n --z-icon-width: 16px;\n --z-icon-height: 16px;\n}\n\n:host([size=\"x-small\"]) .select-wrapper .ul-scroll-wrapper z-list z-list-element .list-element-container > z-icon {\n --z-icon-width: 14px;\n --z-icon-height: 14px;\n}\n\n:host([size=\"x-small\"])\n .select-wrapper\n .ul-scroll-wrapper\n z-list\n z-list-element\n .list-element-container\n > z-icon\n + .list-element-content {\n padding: 0 var(--space-unit);\n}\n\n.select-wrapper .ul-scroll-wrapper z-list z-list-element .list-element-container .list-element-content.selected {\n font-weight: var(--font-sb);\n}\n\n.select-wrapper .ul-scroll-wrapper .no-results z-icon {\n margin-right: var(--space-unit);\n}\n\n.z-list-group-title {\n color: var(--color-form-default-text);\n}\n\n.reset-item {\n color: var(--color-form-active-primary);\n fill: var(--color-form-active-primary);\n}\n\n.reset-item-content {\n display: flex;\n align-items: center;\n}\n\n.reset-item.reset-item-margin .reset-item-content {\n margin-left: var(--space-unit);\n}\n\n.reset-item .reset-item-content > z-icon {\n margin-right: var(--space-unit);\n}\n\n.reset-item.hide {\n display: none;\n}\n\n.tree-list-reset-item {\n padding: var(--space-unit) 0;\n}\n\nz-list-element {\n position: relative;\n display: block;\n}\n\nz-list z-list-element::before {\n position: absolute;\n z-index: 100;\n top: 3px;\n left: -15px;\n width: 8px;\n height: 1em;\n border-bottom: 1px solid var(--color-form-disabled01-icon);\n border-left: 1px solid var(--color-form-disabled01-icon);\n content: \"\";\n cursor: pointer;\n}\n\nz-list z-list-element::after {\n position: absolute;\n z-index: 100;\n top: 5px;\n left: -15px;\n width: 8px;\n height: 100%;\n border-left: 1px solid var(--color-form-disabled01-icon);\n content: \"\";\n cursor: pointer;\n}\n\nz-list z-list-element:last-child::after {\n display: none;\n}\n\nz-list > z-list-element::before,\nz-list > z-list-element::after,\nz-list > z-list-group > z-list-element::before,\nz-list > z-list-group > z-list-element::after {\n display: none;\n}\n\nz-list > div.children-node {\n padding-left: calc(var(--space-unit) * 2);\n}\n\nz-list-element.grouped-tree-parent-node {\n padding-top: 0;\n padding-left: calc(var(--space-unit) * 2);\n}\n\nz-list-element > .list-element {\n display: flex;\n justify-content: space-between;\n padding: calc(var(--space-unit) * 1.25) 0;\n cursor: pointer;\n}\n\nz-list-element > .list-element:focus:focus-visible {\n box-shadow: var(--shadow-focus-primary);\n outline: none;\n}\n\nz-list-element > .list-element .item.ellipsis {\n overflow: hidden;\n}\n\nz-list-element .list-element::after {\n position: absolute;\n top: 0;\n right: -1px;\n display: block;\n width: 100%;\n height: 40px;\n content: \"\";\n transform: translateX(-100%);\n}\n\nz-list-element.tree-search-item {\n padding-top: 0;\n}\n\nz-list-element.tree-search-item .list-element::after {\n position: absolute;\n top: 8px;\n right: -25px;\n display: block;\n width: 100%;\n height: 40px;\n content: \"\";\n transform: translateX(-100%);\n}\n\nz-list-element.grouped-tree-parent-node .list-element::after {\n position: absolute;\n top: 8px;\n right: -25px;\n display: block;\n width: 100%;\n height: 40px;\n content: \"\";\n transform: translateX(-100%);\n}\n\nz-list-element:not([disabled]) > .list-element:hover,\nz-list-element:not([disabled]) > .list-element:hover::after {\n z-index: -1;\n background-color: var(--color-form-surface03);\n cursor: pointer;\n}\n\n.item-label.selected {\n font-weight: bold;\n}\n\nz-list-element:focus {\n box-shadow: var(--shadow-focus-primary);\n outline: none;\n}\n\n.item.ellipsis {\n display: inline-block;\n overflow: hidden;\n max-width: 100%;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\nz-list > z-list-element.grouped-tree-parent-node > .list-element:hover::after,\nz-list-element.tree-search-item .list-element:hover::after,\nz-list > z-list-group > z-list-element.grouped-tree-parent-node > .list-element:hover::after {\n position: absolute;\n z-index: -1;\n top: 8px;\n right: -18px;\n display: block;\n width: 100%;\n height: 40px;\n content: \"\";\n transform: translateX(-100%);\n}\n\nz-list-element > .list-element:hover::after {\n position: absolute;\n z-index: -1;\n top: 0;\n right: 0;\n display: block;\n width: 100%;\n height: 40px;\n content: \"\";\n transform: translateX(-100%);\n}\n\n.children-node z-list-element::before,\n.children-node z-list-element::after {\n left: -15px;\n}\n\n.children-node .children-node z-list-element::before,\n.children-node .children-node z-list-element::after {\n left: -15px;\n}\n\n.children-node > z-list-element {\n padding: 0;\n}\n","import {Component, Element, Event, EventEmitter, Listen, Method, Prop, State, Watch, h} from \"@stencil/core\";\nimport {ControlSize, InputStatus, KeyboardCode, ListDividerType, ListSize, SelectItem} from \"../../beans\";\nimport {boolean, getClickedElement, getElementTree, handleKeyboardSubmit, randomId} from \"../../utils/utils\";\n\n@Component({\n tag: \"z-select\",\n styleUrl: \"styles.css\",\n shadow: false,\n scoped: true,\n})\nexport class ZSelect {\n @Element() host: HTMLZSelectElement;\n\n /** the id of the input element */\n @Prop()\n htmlid = `id-${randomId()}`;\n\n /** the input select options */\n @Prop()\n items: SelectItem[] | string;\n\n /** the input name */\n @Prop()\n name?: string;\n\n /** the input label */\n @Prop()\n label?: string;\n\n /** the input aria-label */\n @Prop()\n ariaLabel = \"\";\n\n /** the input is disabled */\n @Prop()\n disabled?: boolean = false;\n\n /** the input is readonly */\n @Prop()\n readonly?: boolean = false;\n\n /** the input placeholder (optional) */\n @Prop()\n placeholder?: string;\n\n /** the input html title (optional) */\n @Prop()\n htmltitle?: string;\n\n /** the input status (optional) */\n @Prop()\n status?: InputStatus;\n\n /** input helper message (optional) - if set to `false` message won't be displayed */\n @Prop()\n message?: string | boolean = true;\n\n /** the input has autocomplete option */\n @Prop()\n autocomplete?: boolean = false;\n\n /** no result text message */\n @Prop()\n noresultslabel?: string = \"Nessun risultato\";\n\n /** */\n @Prop()\n hasGroupItems?: boolean;\n\n /** */\n @Prop()\n hasTreeItems?: boolean;\n\n /** If true and an item matches the search string, children of matching item are shown even if they don't match the search string */\n @Prop()\n showChildrenOfMatchingParent?: boolean;\n\n /** When fixed, it occupies space and pushes down next elements. */\n @Prop()\n isfixed?: boolean = false;\n\n /** */\n @Prop()\n resetItem?: string;\n\n /** Available sizes: `big`, `small` and `x-small`. Defaults to `big`. */\n @Prop()\n size?: ControlSize = ControlSize.BIG;\n\n @State()\n isOpen = false;\n\n @State()\n selectedItem: null | SelectItem = null;\n\n @State()\n focusedItemId: string;\n\n @State()\n searchString: null | string;\n\n @State()\n private flattenedList: {item: SelectItem; key: number}[] = [];\n\n private itemsList: SelectItem[] = [];\n\n private itemIdKeyMap: Record<string, number> = {};\n\n private readonly resetKey = -1;\n\n constructor() {\n this.toggleSelectUl = this.toggleSelectUl.bind(this);\n this.handleSelectFocus = this.handleSelectFocus.bind(this);\n }\n\n @Watch(\"items\")\n watchItems(): void {\n this.itemsList = this.getInitialItemsArray();\n\n this.selectedItem = this.findSelectedItem(this.itemsList);\n\n this.flattenedList = this.flattenTreeItems(this.itemsList);\n this.itemIdKeyMap = {};\n this.flattenedList.forEach(({item, key}) => {\n this.itemIdKeyMap[item.id] = key;\n });\n }\n\n @Listen(\"ariaDescendantFocus\")\n getFocusedItemHandler(e: CustomEvent): void {\n this.focusedItemId = (e.target as Element).id;\n }\n\n /** get the input selected options */\n @Method()\n async getSelectedItem(): Promise<SelectItem> {\n return this.selectedItem;\n }\n\n /** get the input value */\n @Method()\n async getValue(): Promise<string> {\n return this.getSelectedValue();\n }\n\n /** set the input value */\n @Method()\n async setValue(value: string | string[]): Promise<void> {\n let values: string[] = [];\n if (typeof value === \"string\") {\n values.push(value);\n } else {\n values = value;\n }\n\n this.itemsList = this.getInitialItemsArray();\n if (values.length) {\n this.updateSelection(this.itemsList, values[0]);\n }\n this.selectedItem = this.findSelectedItem(this.itemsList);\n }\n\n /** Emitted on select option selection, returns select id, selected item id */\n @Event()\n optionSelect: EventEmitter;\n\n private emitOptionSelect(): void {\n this.optionSelect.emit({\n id: this.htmlid,\n selected: this.getSelectedValue(),\n });\n }\n\n /** Emitted on reset selected item, returns select id, selected item id */\n @Event()\n resetSelect: EventEmitter;\n\n private emitResetSelect(): void {\n this.resetSelect.emit({\n id: this.htmlid,\n });\n }\n\n componentWillLoad(): void {\n this.watchItems();\n }\n\n componentWillRender(): void {\n this.filterItems(this.searchString);\n }\n\n private getInitialItemsArray(): SelectItem[] {\n return typeof this.items === \"string\" ? JSON.parse(this.items) : this.items;\n }\n\n private mapSelectedItemToItemsArray(): SelectItem[] {\n const initialItemsList = this.getInitialItemsArray();\n\n return initialItemsList.map((item: SelectItem) => {\n item.selected = item.id === this.selectedItem?.id;\n\n return item;\n });\n }\n\n private getSelectedValue(): string {\n return this.selectedItem?.id;\n }\n\n private filterItems(searchString: string): void {\n const prevList = this.mapSelectedItemToItemsArray();\n\n if (!searchString?.length) {\n this.itemsList = prevList;\n\n return;\n }\n\n if (this.hasTreeItems) {\n this.itemsList = this.filterTree(prevList, searchString, false);\n } else {\n this.itemsList = prevList\n .filter((item: SelectItem) => item.name.toUpperCase().includes(searchString.toUpperCase()))\n .map((item: SelectItem) => {\n item.name = this.getHighlightedText(item.name, searchString);\n\n return item;\n });\n }\n\n this.flattenedList = this.flattenTreeItems(this.itemsList);\n this.itemIdKeyMap = {};\n this.flattenedList.forEach(({item, key}) => {\n this.itemIdKeyMap[item.id] = key;\n });\n }\n\n private filterTree(items: SelectItem[], searchString: string, matchingParent: boolean): SelectItem[] {\n if (!items) {\n return [];\n }\n\n return items\n .map((item) => {\n const match = item.name.toUpperCase().includes(searchString.toUpperCase());\n\n const newItem: SelectItem = {...item};\n if (newItem.children && newItem.children.length > 0) {\n newItem.children = this.filterTree(newItem.children, searchString, match);\n }\n\n if (match) {\n newItem.name = this.getHighlightedText(newItem.name, searchString);\n }\n if (\n match ||\n (newItem.children && newItem.children.length > 0) ||\n (this.showChildrenOfMatchingParent && matchingParent)\n ) {\n return newItem;\n }\n\n return null;\n })\n .filter((item) => item !== null) as SelectItem[];\n }\n\n private getHighlightedText(text: string, search: string): string {\n const upperText = text.toUpperCase();\n const upperSearch = search.toUpperCase();\n const start = upperText.indexOf(upperSearch);\n\n if (start === -1) {\n return text;\n }\n\n const end = start + search.length;\n\n return text.substring(0, start) + `<strong>${text.substring(start, end)}</strong>` + text.substring(end);\n }\n\n private hasAutocomplete(): boolean {\n return boolean(this.autocomplete) === true;\n }\n\n private handleInputChange(e: CustomEvent): void {\n this.searchString = e.detail.value;\n if (!this.isOpen) {\n this.toggleSelectUl();\n }\n }\n\n private updateSelection(items: SelectItem[], selectedId: string): void {\n if (items) {\n items.forEach((item) => {\n item.selected = item.id === selectedId;\n if (item.children && item.children.length > 0) {\n this.updateSelection(item.children, selectedId);\n }\n });\n }\n }\n\n private findSelectedItem(items: SelectItem[]): SelectItem | null {\n if (items) {\n for (const item of items) {\n if (item.selected) {\n return item;\n }\n if (item.children && item.children.length > 0) {\n const found = this.findSelectedItem(item.children);\n if (found) {\n return found;\n }\n }\n }\n }\n\n return null;\n }\n\n private selectItem(selected: null | SelectItem): void {\n if (selected?.disabled) {\n return;\n }\n\n this.itemsList = this.getInitialItemsArray();\n\n if (selected) {\n this.updateSelection(this.itemsList, selected.id);\n }\n\n this.selectedItem = this.findSelectedItem(this.itemsList);\n this.emitOptionSelect();\n this.toggleSelectUl(true);\n\n if (this.searchString) {\n this.searchString = null;\n }\n }\n\n private flattenTreeItems(items: SelectItem[]): {item: SelectItem; key: number}[] {\n const flatItems: {item: SelectItem; key: number}[] = [];\n let index = 0;\n\n function flatten(subItems: SelectItem[]): void {\n subItems.forEach((itm) => {\n flatItems.push({item: itm, key: index++});\n if (itm.children && itm.children.length > 0) {\n flatten(itm.children);\n }\n });\n }\n\n flatten(items);\n\n return flatItems;\n }\n\n private arrowsSelectNav(e: KeyboardEvent, idOrReset: string | number): void {\n const showResetIcon = this.resetItem && !!this.selectedItem;\n const arrows = [KeyboardCode.ARROW_DOWN, KeyboardCode.ARROW_UP];\n\n if (!arrows.includes(e.key as KeyboardCode)) {\n return;\n }\n\n e.preventDefault();\n e.stopPropagation();\n\n const flatItems = [...this.flattenedList].filter((f) => !f.item.disabled);\n\n if (this.resetItem && showResetIcon) {\n flatItems.unshift({\n item: {id: \"__RESET_ITEM__\"} as SelectItem,\n key: this.resetKey,\n });\n }\n\n let currentIndex: number;\n if (typeof idOrReset === \"number\") {\n currentIndex = flatItems.findIndex((f) => f.key === idOrReset);\n } else {\n const k = this.itemIdKeyMap[idOrReset];\n currentIndex = flatItems.findIndex((f) => f.key === k);\n }\n\n if (!this.isOpen) {\n this.toggleSelectUl();\n\n if (currentIndex === -1) {\n currentIndex = -1;\n }\n }\n\n const lastIndex = flatItems.length - 1;\n\n let newIndex = currentIndex;\n\n if (e.key === KeyboardCode.ARROW_DOWN) {\n do {\n newIndex = newIndex === lastIndex ? 0 : newIndex + 1;\n } while (flatItems[newIndex].item.disabled);\n } else {\n do {\n newIndex = newIndex <= 0 ? lastIndex : newIndex - 1;\n } while (flatItems[newIndex].item.disabled);\n }\n\n this.focusSelectItem(flatItems[newIndex].key);\n }\n\n private focusSelectItem(key: number): void {\n this.host.querySelector<HTMLDivElement>(`#${this.htmlid}_key_${key}`)?.focus();\n }\n\n private toggleSelectUl(selfFocusOnClose = false): void {\n if (this.disabled || this.readonly) {\n return;\n }\n\n if (!this.isOpen) {\n document.addEventListener(\"click\", this.handleSelectFocus);\n document.addEventListener(\"keyup\", this.handleSelectFocus);\n } else {\n document.removeEventListener(\"click\", this.handleSelectFocus);\n document.removeEventListener(\"keyup\", this.handleSelectFocus);\n if (selfFocusOnClose) {\n (this.host.querySelector(`#${this.htmlid}_input`) as HTMLInputElement)?.focus();\n }\n }\n\n this.focusedItemId = \"\";\n this.isOpen = !this.isOpen;\n }\n\n private handleInputClick(e: MouseEvent | KeyboardEvent): void {\n if ((e.target as HTMLElement).closest(\".reset-icon\")) {\n e.stopPropagation();\n\n return;\n }\n\n this.toggleSelectUl();\n }\n\n private handleSelectFocus(e: MouseEvent | KeyboardEvent): void {\n const clickedElement = getClickedElement();\n if (clickedElement?.hasAttribute(\"disabled\")) {\n return;\n }\n\n if (e instanceof KeyboardEvent && e.key === KeyboardCode.ESC) {\n e.stopPropagation();\n\n return this.toggleSelectUl(true);\n }\n\n if (e instanceof KeyboardEvent && (e.key === KeyboardCode.ENTER || e.key !== KeyboardCode.TAB)) {\n return;\n }\n\n if (\n !getElementTree(clickedElement).find(\n (elem: HTMLElement) => elem.nodeName.toLowerCase() === \"z-input\" && elem.id === `${this.htmlid}_input`\n )\n ) {\n this.toggleSelectUl(e instanceof MouseEvent);\n }\n }\n\n private scrollToLetter(letter: string): void {\n const foundItem = this.itemsList.findIndex((item: SelectItem) => item.name.charAt(0) === letter);\n if (foundItem > -1) {\n this.focusSelectItem(this.itemIdKeyMap[this.itemsList[foundItem].id]);\n }\n }\n\n private renderInput(): HTMLZInputElement {\n return (\n <z-input\n class={{\n \"active-select\": this.isOpen,\n \"cursor-select\": !this.autocomplete,\n }}\n id={`${this.htmlid}_input`}\n htmlid={`${this.htmlid}_select_input`}\n placeholder={this.placeholder}\n value={!this.isOpen && this.selectedItem ? this.selectedItem.name.replace(/<[^>]+>/g, \"\") : null}\n label={this.label}\n aria-expanded={this.isOpen ? \"true\" : \"false\"}\n aria-label={this.ariaLabel}\n aria-controls={`${this.htmlid}_list`}\n aria-autocomplete={this.hasAutocomplete() ? \"list\" : \"none\"}\n aria-activedescendant={this.isOpen ? this.focusedItemId : \"\"}\n icon={this.isOpen ? \"caret-up\" : \"caret-down\"}\n hasclearicon={this.hasAutocomplete()}\n message={false}\n name={this.name}\n disabled={this.disabled}\n readonly={this.readonly || (!this.hasAutocomplete() && this.isOpen)}\n status={this.isOpen ? undefined : this.status}\n role=\"combobox\"\n size={this.size}\n onClick={(e: MouseEvent) => {\n this.handleInputClick(e);\n }}\n onKeyUp={(e: KeyboardEvent) => {\n if (e.key !== KeyboardCode.ENTER) {\n e.preventDefault();\n }\n handleKeyboardSubmit(e, this.toggleSelectUl);\n }}\n onKeyDown={(e: KeyboardEvent) => {\n const current = this.selectedItem\n ? this.itemIdKeyMap[this.selectedItem.id]\n : this.resetItem\n ? this.resetKey\n : \"\";\n\n return this.arrowsSelectNav(e, current);\n }}\n onInputChange={(e: CustomEvent) => {\n this.handleInputChange(e);\n }}\n onKeyPress={(e: KeyboardEvent) => {\n if (!this.hasAutocomplete()) {\n e.preventDefault();\n this.scrollToLetter(String.fromCharCode(e.keyCode));\n }\n }}\n />\n );\n }\n\n private renderSelectUl(): HTMLDivElement {\n return (\n <div class={this.isOpen ? \"open\" : \"closed\"}>\n <div\n class={{\n \"ul-scroll-wrapper\": true,\n \"fixed\": this.isfixed,\n }}\n >\n <z-list\n role=\"listbox\"\n aria-label={this.ariaLabel || this.label}\n tabindex={this.disabled || this.readonly || !this.isOpen ? -1 : 0}\n id={`${this.htmlid}_list`}\n aria-multiselectable={false}\n size={this.listSizeType()}\n class={{\n \"disabled\": this.disabled,\n \"readonly\": this.readonly,\n [`input-${this.status}`]: !this.isOpen && !!this.status,\n \"z-scrollbar\": true,\n }}\n >\n {this.resetItem && this.renderResetItem()}\n {this.renderSelectUlItems()}\n </z-list>\n </div>\n </div>\n );\n }\n\n private renderResetItem(): HTMLZListElementElement {\n return (\n <z-list-element\n class={{\n \"hide\": !this.selectedItem || !this.resetItem,\n \"reset-item\": true,\n \"reset-item-margin\": !this.hasGroupItems,\n }}\n clickable={true}\n disabled={false}\n dividerType={ListDividerType.ELEMENT}\n role=\"option\"\n tabindex=\"0\"\n aria-selected=\"false\"\n id={`${this.htmlid}_key_${this.resetKey}`}\n size={this.hasTreeItems ? ListSize.MEDIUM : this.listSizeType()}\n onClickItem={() => {\n this.selectedItem = null;\n this.searchString = null;\n this.emitResetSelect();\n }}\n onKeyDown={(e: KeyboardEvent) => this.arrowsSelectNav(e, this.resetKey)}\n >\n <div\n class={{\n \"reset-item-content\": true,\n \"tree-list-reset-item\": this.hasTreeItems,\n }}\n >\n <z-icon name=\"multiply-circled\" />\n <span>{this.resetItem}</span>\n </div>\n </z-list-element>\n );\n }\n\n private renderItem(item: SelectItem, lastItem: boolean): HTMLZListElementElement {\n const thisItemKey = this.itemIdKeyMap[item.id];\n\n return (\n <z-list-element\n clickable={!item.disabled}\n disabled={item.disabled}\n dividerType={lastItem ? ListDividerType.HEADER : ListDividerType.ELEMENT}\n role=\"option\"\n tabindex={item.disabled || !this.isOpen ? -1 : 0}\n aria-selected={item.selected ? \"true\" : \"false\"}\n id={`${this.htmlid}_key_${thisItemKey}`}\n size={this.listSizeType()}\n onClickItem={() => this.selectItem(item)}\n onKeyDown={(e: KeyboardEvent) => this.arrowsSelectNav(e, thisItemKey)}\n >\n <div class=\"list-element-container\">\n <div\n class={{\n \"selected\": !!item.selected,\n \"list-element-content\": true,\n }}\n innerHTML={item.name}\n />\n {item.icon && <z-tag icon={item.icon}></z-tag>}\n </div>\n </z-list-element>\n );\n }\n\n private listSizeType(): ListSize {\n if (this.hasTreeItems) {\n return ListSize.NONE;\n }\n\n if (this.size === ControlSize.SMALL || this.size === ControlSize.X_SMALL) {\n return ListSize.SMALL;\n }\n\n return ListSize.MEDIUM;\n }\n\n //eslint-disable-next-line\n private renderSelectUlItems(): any {\n if (!this.itemsList.length) {\n return this.renderNoSearchResults();\n }\n\n if (this.hasGroupItems && !this.hasTreeItems) {\n return this.renderSelectGroupItems();\n } else if (this.hasGroupItems && this.hasTreeItems) {\n return this.renderGroupedTree();\n }\n\n return this.itemsList.map((item: SelectItem, index, array) => {\n const isLastItem = index === array.length - 1;\n const parentHasSiblings = array.length > 1;\n\n if (this.hasTreeItems) {\n return this.renderTreeItems(item, isLastItem, parentHasSiblings, true);\n }\n\n return this.renderItem(item, isLastItem);\n });\n }\n\n private renderTreeItems(\n item: SelectItem,\n isLastChild: boolean,\n parentHasSiblings: boolean,\n isTopLevel?: boolean\n ): HTMLZListElementElement[] {\n const thisItemKey = this.itemIdKeyMap[item.id];\n\n const hasDivider = this.hasGroupItems\n ? undefined\n : this.hasGroupItems\n ? isLastChild && !parentHasSiblings\n ? ListDividerType.ELEMENT\n : undefined\n : isTopLevel && parentHasSiblings && !isLastChild\n ? ListDividerType.ELEMENT\n : undefined;\n\n return (\n <z-list-element\n clickable={!item.disabled}\n disabled={item.disabled}\n class={{\n \"grouped-tree-parent-node\": this.hasGroupItems && !!item.children?.length,\n \"tree-search-item\": this.hasGroupItems && isTopLevel && !item.children?.length && !!this.searchString,\n }}\n size={this.listSizeType()}\n dividerType={hasDivider}\n hasTreeItems={this.hasTreeItems}\n >\n <div\n id={`${this.htmlid}_key_${thisItemKey}`}\n role=\"option\"\n class=\"list-element\"\n tabIndex={0}\n onClick={() => this.selectItem(item)}\n onKeyDown={(e: KeyboardEvent) => {\n this.arrowsSelectNav(e, thisItemKey);\n if (e.key === KeyboardCode.ENTER) {\n this.selectItem(item);\n }\n }}\n >\n <span class=\"item ellipsis\">\n <span\n class={{\n \"item-label\": true,\n \"selected\": !!item.selected,\n }}\n title={item.name}\n innerHTML={item.selected ? `<strong>${item.name}</strong>` : item.name}\n />\n </span>\n {item.icon && <z-tag icon={item.icon}></z-tag>}\n </div>\n {item.children && item.children.length > 0 ? (\n <z-list>\n <div class=\"children-node\">\n {item.children.map((child, index, arr) =>\n this.renderTreeItems(\n child,\n index === arr.length - 1,\n arr.length > 1,\n false // isTopLevel = false for children\n )\n )}\n </div>\n </z-list>\n ) : null}\n </z-list-element>\n );\n }\n\n private renderGroupedTree(): HTMLZListGroupElement[] {\n const grouped = this.itemsList.reduce(\n (acc, item) => {\n const category = item.category || \"Altra categoria\";\n acc[category] = acc[category] || [];\n acc[category].push(item);\n\n return acc;\n },\n {} as Record<string, SelectItem[]>\n );\n\n return Object.entries(grouped).map(([category, items], index, entries) => {\n const parentHasSiblings = Object.values(grouped).some((groupItems) => groupItems.length > 1);\n // const parentHasSiblings = items.length > 1;\n\n return (\n <z-list-group\n divider-type={index === entries.length - 1 ? undefined : ListDividerType.ELEMENT}\n hasTreeItems={true}\n >\n <span\n class=\"body-3-sb z-list-group-title\"\n slot=\"header-title\"\n >\n {category}\n </span>\n <z-list>\n {items.map((item, i, arr) => [\n this.renderTreeItems(item, i === arr.length - 1, parentHasSiblings, true),\n i < arr.length - 1 ? (\n <z-divider\n key={`divider-${i}`}\n style={{zIndex: \"100\", height: \"var(--border-size-small)\"}}\n />\n ) : null,\n ])}\n </z-list>\n {index !== entries.length - 1 && <z-divider style={{zIndex: \"100\", height: \"var(--border-size-small)\"}} />}\n </z-list-group>\n );\n });\n }\n\n private renderSelectGroupItems(): HTMLZListElementElement[] {\n const newData = this.itemsList.reduce(\n (group, item, index, array) => {\n const {category} = item;\n const lastItem = array.length === index + 1;\n const zListItem = this.renderItem(item, lastItem);\n\n group[category] = group[category] ?? [];\n group[category].push(zListItem);\n\n return group;\n },\n {} as Record<string, HTMLZListElementElement[]>\n );\n\n return Object.entries(newData).map(([key, value]) => {\n return (\n <z-list-group divider-type={ListDividerType.ELEMENT}>\n <span\n class=\"body-3-sb z-list-group-title\"\n slot=\"header-title\"\n >\n {key}\n </span>\n {value.map((item) => item)}\n </z-list-group>\n );\n });\n }\n\n private renderNoSearchResults(): HTMLZListElementElement {\n return (\n <z-list-element\n color=\"color-primary01\"\n class=\"no-results\"\n size={this.hasTreeItems ? ListSize.MEDIUM : this.listSizeType()}\n >\n <z-icon\n name=\"multiply-circle\"\n fill=\"color-primary01-icon\"\n />\n {this.noresultslabel}\n </z-list-element>\n );\n }\n\n private renderMessage(): HTMLZInputMessageElement {\n if (boolean(this.message) === false) {\n return;\n }\n\n return (\n <z-input-message\n message={boolean(this.message) === true ? undefined : (this.message as string)}\n status={this.status}\n class={this.size}\n disabled={this.disabled}\n />\n );\n }\n\n render(): HTMLDivElement {\n return (\n <div class=\"select-wrapper\">\n {this.renderInput()}\n {this.renderSelectUl()}\n {this.renderMessage()}\n </div>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|