@zanichelli/albe-web-components 18.3.2 → 18.3.3
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 +7 -0
- package/dist/cjs/z-app-header_12.cjs.entry.js +3 -3
- package/dist/cjs/z-app-header_12.cjs.entry.js.map +1 -1
- package/dist/cjs/z-combobox.cjs.entry.js +1 -1
- package/dist/cjs/z-combobox.cjs.entry.js.map +1 -1
- package/dist/cjs/z-pagination.cjs.entry.js +11 -8
- package/dist/cjs/z-pagination.cjs.entry.js.map +1 -1
- package/dist/cjs/z-select.cjs.entry.js +2 -2
- package/dist/cjs/z-select.cjs.entry.js.map +1 -1
- package/dist/collection/components/css-components/z-label/index.stories.js +10 -0
- package/dist/collection/components/css-components/z-label/index.stories.js.map +1 -0
- package/dist/collection/components/z-combobox/styles.css +13 -1
- package/dist/collection/components/z-input/index.js +2 -2
- package/dist/collection/components/z-input/index.js.map +1 -1
- package/dist/collection/components/z-input/styles.css +1 -13
- package/dist/collection/components/z-pagination/index.js +12 -7
- package/dist/collection/components/z-pagination/index.js.map +1 -1
- package/dist/collection/components/z-pagination/index.stories.js +31 -13
- package/dist/collection/components/z-pagination/index.stories.js.map +1 -1
- package/dist/collection/components/z-pagination/styles.css +4 -8
- package/dist/collection/components/z-select/index.js +2 -2
- package/dist/collection/components/z-select/index.js.map +1 -1
- package/dist/collection/components/z-select/index.stories.js +1 -0
- package/dist/collection/components/z-select/index.stories.js.map +1 -1
- package/dist/components/index11.js +3 -3
- package/dist/components/index11.js.map +1 -1
- package/dist/components/z-combobox.js +1 -1
- package/dist/components/z-combobox.js.map +1 -1
- package/dist/components/z-pagination.js +11 -8
- package/dist/components/z-pagination.js.map +1 -1
- package/dist/components/z-select.js +2 -2
- package/dist/components/z-select.js.map +1 -1
- package/dist/esm/z-app-header_12.entry.js +3 -3
- package/dist/esm/z-app-header_12.entry.js.map +1 -1
- package/dist/esm/z-combobox.entry.js +1 -1
- package/dist/esm/z-combobox.entry.js.map +1 -1
- package/dist/esm/z-pagination.entry.js +11 -8
- package/dist/esm/z-pagination.entry.js.map +1 -1
- package/dist/esm/z-select.entry.js +2 -2
- package/dist/esm/z-select.entry.js.map +1 -1
- package/dist/types/components/css-components/z-label/index.stories.d.ts +9 -0
- package/dist/types/components/z-pagination/index.d.ts +2 -0
- package/dist/types/components/z-pagination/index.stories.d.ts +64 -2
- package/dist/types/components/z-select/index.stories.d.ts +1 -0
- package/dist/types/components.d.ts +8 -0
- package/dist/web-components-library/{p-93150ae0.entry.js → p-550a5e46.entry.js} +2 -2
- package/dist/web-components-library/{p-93150ae0.entry.js.map → p-550a5e46.entry.js.map} +1 -1
- package/dist/web-components-library/p-c6b7c8e4.entry.js +2 -0
- package/dist/web-components-library/p-c6b7c8e4.entry.js.map +1 -0
- package/dist/web-components-library/{p-ccb2318f.entry.js → p-e353d03a.entry.js} +2 -2
- package/dist/web-components-library/{p-ccb2318f.entry.js.map → p-e353d03a.entry.js.map} +1 -1
- package/dist/web-components-library/p-f7d7cf44.entry.js +2 -0
- package/dist/web-components-library/p-f7d7cf44.entry.js.map +1 -0
- package/dist/web-components-library/web-components-library.css +11 -0
- package/dist/web-components-library/web-components-library.esm.js +1 -1
- package/package.json +1 -1
- package/www/build/{p-93150ae0.entry.js → p-550a5e46.entry.js} +2 -2
- package/www/build/{p-93150ae0.entry.js.map → p-550a5e46.entry.js.map} +1 -1
- package/www/build/{p-40433daa.js → p-84f32d71.js} +1 -1
- package/www/build/p-c6b7c8e4.entry.js +2 -0
- package/www/build/p-c6b7c8e4.entry.js.map +1 -0
- package/www/build/{p-56d35027.css → p-dda8d321.css} +11 -0
- package/www/build/{p-ccb2318f.entry.js → p-e353d03a.entry.js} +2 -2
- package/www/build/{p-ccb2318f.entry.js.map → p-e353d03a.entry.js.map} +1 -1
- package/www/build/p-f7d7cf44.entry.js +2 -0
- package/www/build/p-f7d7cf44.entry.js.map +1 -0
- package/www/build/web-components-library.css +11 -0
- package/www/build/web-components-library.esm.js +1 -1
- package/www/index.html +1 -1
- package/dist/web-components-library/p-7df942c9.entry.js +0 -2
- package/dist/web-components-library/p-7df942c9.entry.js.map +0 -1
- package/dist/web-components-library/p-8cbb9bbe.entry.js +0 -2
- package/dist/web-components-library/p-8cbb9bbe.entry.js.map +0 -1
- package/www/build/p-7df942c9.entry.js +0 -2
- package/www/build/p-7df942c9.entry.js.map +0 -1
- package/www/build/p-8cbb9bbe.entry.js +0 -2
- package/www/build/p-8cbb9bbe.entry.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
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","match","newItem","Object","assign","children","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 /** 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);\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): 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\n if (newItem.children && newItem.children.length > 0) {\n newItem.children = this.filterTree(newItem.children, searchString);\n }\n\n if (match) {\n newItem.name = this.getHighlightedText(newItem.name, searchString);\n }\n\n if (match || (newItem.children && newItem.children.length > 0)) {\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 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":"qMAAA,MAAMA,EAAY,6gPAClB,MAAAC,EAAeD,E,MCSFE,EAAO,MAgGlB,WAAAC,CAAAC,G,8FANQC,KAAAC,UAA0B,GAE1BD,KAAAE,aAAuC,GAE9BF,KAAAG,UAAY,E,YAzFpB,MAAMC,M,6EAgBH,G,cAIS,M,cAIA,M,uFAgBQ,K,kBAIJ,M,oBAIC,mB,sEAYN,M,mCAQCC,EAAYC,I,YAGxB,M,kBAGyB,K,4EASyB,GASzDN,KAAKO,eAAiBP,KAAKO,eAAeC,KAAKR,MAC/CA,KAAKS,kBAAoBT,KAAKS,kBAAkBD,KAAKR,K,CAIvD,UAAAU,GACEV,KAAKC,UAAYD,KAAKW,uBAEtBX,KAAKY,aAAeZ,KAAKa,iBAAiBb,KAAKC,WAE/CD,KAAKc,cAAgBd,KAAKe,iBAAiBf,KAAKC,WAChDD,KAAKE,aAAe,GACpBF,KAAKc,cAAcE,SAAQ,EAAEC,OAAMC,UACjClB,KAAKE,aAAae,EAAKE,IAAMD,CAAG,G,CAKpC,qBAAAE,CAAsBC,GACpBrB,KAAKsB,cAAiBD,EAAEE,OAAmBJ,E,CAK7C,qBAAMK,GACJ,OAAOxB,KAAKY,Y,CAKd,cAAMa,GACJ,OAAOzB,KAAK0B,kB,CAKd,cAAMC,CAASC,GACb,IAAIC,EAAmB,GACvB,UAAWD,IAAU,SAAU,CAC7BC,EAAOC,KAAKF,E,KACP,CACLC,EAASD,C,CAGX5B,KAAKC,UAAYD,KAAKW,uBACtB,GAAIkB,EAAOE,OAAQ,CACjB/B,KAAKgC,gBAAgBhC,KAAKC,UAAW4B,EAAO,G,CAE9C7B,KAAKY,aAAeZ,KAAKa,iBAAiBb,KAAKC,U,CAOzC,gBAAAgC,GACNjC,KAAKkC,aAAaC,KAAK,CACrBhB,GAAInB,KAAKoC,OACTC,SAAUrC,KAAK0B,oB,CAQX,eAAAY,GACNtC,KAAKuC,YAAYJ,KAAK,CACpBhB,GAAInB,KAAKoC,Q,CAIb,iBAAAI,GACExC,KAAKU,Y,CAGP,mBAAA+B,GACEzC,KAAK0C,YAAY1C,KAAK2C,a,CAGhB,oBAAAhC,GACN,cAAcX,KAAK4C,QAAU,SAAWC,KAAKC,MAAM9C,KAAK4C,OAAS5C,KAAK4C,K,CAGhE,2BAAAG,GACN,MAAMC,EAAmBhD,KAAKW,uBAE9B,OAAOqC,EAAiBC,KAAKhC,I,MAC3BA,EAAKoB,SAAWpB,EAAKE,OAAO+B,EAAAlD,KAAKY,gBAAY,MAAAsC,SAAA,SAAAA,EAAE/B,IAE/C,OAAOF,CAAI,G,CAIP,gBAAAS,G,MACN,OAAOwB,EAAAlD,KAAKY,gBAAY,MAAAsC,SAAA,SAAAA,EAAE/B,E,CAGpB,WAAAuB,CAAYC,GAClB,MAAMQ,EAAWnD,KAAK+C,8BAEtB,KAAKJ,IAAY,MAAZA,SAAY,SAAZA,EAAcZ,QAAQ,CACzB/B,KAAKC,UAAYkD,EAEjB,M,CAGF,GAAInD,KAAKoD,aAAc,CACrBpD,KAAKC,UAAYD,KAAKqD,WAAWF,EAAUR,E,KACtC,CACL3C,KAAKC,UAAYkD,EACdG,QAAQrC,GAAqBA,EAAKsC,KAAKC,cAAcC,SAASd,EAAaa,iBAC3EP,KAAKhC,IACJA,EAAKsC,KAAOvD,KAAK0D,mBAAmBzC,EAAKsC,KAAMZ,GAE/C,OAAO1B,CAAI,G,CAIjBjB,KAAKc,cAAgBd,KAAKe,iBAAiBf,KAAKC,WAChDD,KAAKE,aAAe,GACpBF,KAAKc,cAAcE,SAAQ,EAAEC,OAAMC,UACjClB,KAAKE,aAAae,EAAKE,IAAMD,CAAG,G,CAI5B,UAAAmC,CAAWT,EAAqBD,GACtC,IAAKC,EAAO,CACV,MAAO,E,CAGT,OAAOA,EACJK,KAAKhC,IACJ,MAAM0C,EAAQ1C,EAAKsC,KAAKC,cAAcC,SAASd,EAAaa,eAE5D,MAAMI,EAAOC,OAAAC,OAAA,GAAmB7C,GAEhC,GAAI2C,EAAQG,UAAYH,EAAQG,SAAShC,OAAS,EAAG,CACnD6B,EAAQG,SAAW/D,KAAKqD,WAAWO,EAAQG,SAAUpB,E,CAGvD,GAAIgB,EAAO,CACTC,EAAQL,KAAOvD,KAAK0D,mBAAmBE,EAAQL,KAAMZ,E,CAGvD,GAAIgB,GAAUC,EAAQG,UAAYH,EAAQG,SAAShC,OAAS,EAAI,CAC9D,OAAO6B,C,CAGT,OAAO,IAAI,IAEZN,QAAQrC,GAASA,IAAS,M,CAGvB,kBAAAyC,CAAmBM,EAAcC,GACvC,MAAMC,EAAYF,EAAKR,cACvB,MAAMW,EAAcF,EAAOT,cAC3B,MAAMY,EAAQF,EAAUG,QAAQF,GAEhC,GAAIC,KAAW,EAAG,CAChB,OAAOJ,C,CAGT,MAAMM,EAAMF,EAAQH,EAAOlC,OAE3B,OAAOiC,EAAKO,UAAU,EAAGH,GAAS,WAAWJ,EAAKO,UAAUH,EAAOE,cAAkBN,EAAKO,UAAUD,E,CAG9F,eAAAE,GACN,OAAOC,EAAQzE,KAAK0E,gBAAkB,I,CAGhC,iBAAAC,CAAkBtD,GACxBrB,KAAK2C,aAAetB,EAAEuD,OAAOhD,MAC7B,IAAK5B,KAAK6E,OAAQ,CAChB7E,KAAKO,gB,EAID,eAAAyB,CAAgBY,EAAqBkC,GAC3C,GAAIlC,EAAO,CACTA,EAAM5B,SAASC,IACbA,EAAKoB,SAAWpB,EAAKE,KAAO2D,EAC5B,GAAI7D,EAAK8C,UAAY9C,EAAK8C,SAAShC,OAAS,EAAG,CAC7C/B,KAAKgC,gBAAgBf,EAAK8C,SAAUe,E,MAMpC,gBAAAjE,CAAiB+B,GACvB,GAAIA,EAAO,CACT,IAAK,MAAM3B,KAAQ2B,EAAO,CACxB,GAAI3B,EAAKoB,SAAU,CACjB,OAAOpB,C,CAET,GAAIA,EAAK8C,UAAY9C,EAAK8C,SAAShC,OAAS,EAAG,CAC7C,MAAMgD,EAAQ/E,KAAKa,iBAAiBI,EAAK8C,UACzC,GAAIgB,EAAO,CACT,OAAOA,C,IAMf,OAAO,I,CAGD,UAAAC,CAAW3C,GACjB,GAAIA,IAAQ,MAARA,SAAQ,SAARA,EAAU4C,SAAU,CACtB,M,CAGFjF,KAAKC,UAAYD,KAAKW,uBAEtB,GAAI0B,EAAU,CACZrC,KAAKgC,gBAAgBhC,KAAKC,UAAWoC,EAASlB,G,CAGhDnB,KAAKY,aAAeZ,KAAKa,iBAAiBb,KAAKC,WAC/CD,KAAKiC,mBACLjC,KAAKO,eAAe,MAEpB,GAAIP,KAAK2C,aAAc,CACrB3C,KAAK2C,aAAe,I,EAIhB,gBAAA5B,CAAiB6B,GACvB,MAAMsC,EAA+C,GACrD,IAAIC,EAAQ,EAEZ,SAASC,EAAQC,GACfA,EAASrE,SAASsE,IAChBJ,EAAUpD,KAAK,CAACb,KAAMqE,EAAKpE,IAAKiE,MAChC,GAAIG,EAAIvB,UAAYuB,EAAIvB,SAAShC,OAAS,EAAG,CAC3CqD,EAAQE,EAAIvB,S,KAKlBqB,EAAQxC,GAER,OAAOsC,C,CAGD,eAAAK,CAAgBlE,EAAkBmE,GACxC,MAAMC,EAAgBzF,KAAK0F,aAAe1F,KAAKY,aAC/C,MAAM+E,EAAS,CAACC,EAAaC,WAAYD,EAAaE,UAEtD,IAAKH,EAAOlC,SAASpC,EAAEH,KAAsB,CAC3C,M,CAGFG,EAAE0E,iBACF1E,EAAE2E,kBAEF,MAAMd,EAAY,IAAIlF,KAAKc,eAAewC,QAAQ2C,IAAOA,EAAEhF,KAAKgE,WAEhE,GAAIjF,KAAK0F,WAAaD,EAAe,CACnCP,EAAUgB,QAAQ,CAChBjF,KAAM,CAACE,GAAI,kBACXD,IAAKlB,KAAKG,U,CAId,IAAIgG,EACJ,UAAWX,IAAc,SAAU,CACjCW,EAAejB,EAAUkB,WAAWH,GAAMA,EAAE/E,MAAQsE,G,KAC/C,CACL,MAAMa,EAAIrG,KAAKE,aAAasF,GAC5BW,EAAejB,EAAUkB,WAAWH,GAAMA,EAAE/E,MAAQmF,G,CAGtD,IAAKrG,KAAK6E,OAAQ,CAChB7E,KAAKO,iBAEL,GAAI4F,KAAkB,EAAG,CACvBA,GAAgB,C,EAIpB,MAAMG,EAAYpB,EAAUnD,OAAS,EAErC,IAAIwE,EAAWJ,EAEf,GAAI9E,EAAEH,MAAQ0E,EAAaC,WAAY,CACrC,EAAG,CACDU,EAAWA,IAAaD,EAAY,EAAIC,EAAW,C,OAC5CrB,EAAUqB,GAAUtF,KAAKgE,S,KAC7B,CACL,EAAG,CACDsB,EAAWA,GAAY,EAAID,EAAYC,EAAW,C,OAC3CrB,EAAUqB,GAAUtF,KAAKgE,S,CAGpCjF,KAAKwG,gBAAgBtB,EAAUqB,GAAUrF,I,CAGnC,eAAAsF,CAAgBtF,G,OACtBgC,EAAAlD,KAAKyG,KAAKC,cAA8B,IAAI1G,KAAKoC,cAAclB,QAAM,MAAAgC,SAAA,SAAAA,EAAEyD,O,CAGjE,cAAApG,CAAeqG,EAAmB,O,MACxC,GAAI5G,KAAKiF,UAAYjF,KAAK6G,SAAU,CAClC,M,CAGF,IAAK7G,KAAK6E,OAAQ,CAChBiC,SAASC,iBAAiB,QAAS/G,KAAKS,mBACxCqG,SAASC,iBAAiB,QAAS/G,KAAKS,kB,KACnC,CACLqG,SAASE,oBAAoB,QAAShH,KAAKS,mBAC3CqG,SAASE,oBAAoB,QAAShH,KAAKS,mBAC3C,GAAImG,EAAkB,EACpB1D,EAAClD,KAAKyG,KAAKC,cAAc,IAAI1G,KAAKoC,mBAAoC,MAAAc,SAAA,SAAAA,EAAEyD,O,EAI5E3G,KAAKsB,cAAgB,GACrBtB,KAAK6E,QAAU7E,KAAK6E,M,CAGd,gBAAAoC,CAAiB5F,GACvB,GAAKA,EAAEE,OAAuB2F,QAAQ,eAAgB,CACpD7F,EAAE2E,kBAEF,M,CAGFhG,KAAKO,gB,CAGC,iBAAAE,CAAkBY,GACxB,MAAM8F,EAAiBC,IACvB,GAAID,IAAc,MAAdA,SAAc,SAAdA,EAAgBE,aAAa,YAAa,CAC5C,M,CAGF,GAAIhG,aAAaiG,eAAiBjG,EAAEH,MAAQ0E,EAAa2B,IAAK,CAC5DlG,EAAE2E,kBAEF,OAAOhG,KAAKO,eAAe,K,CAG7B,GAAIc,aAAaiG,gBAAkBjG,EAAEH,MAAQ0E,EAAa4B,OAASnG,EAAEH,MAAQ0E,EAAa6B,KAAM,CAC9F,M,CAGF,IACGC,EAAeP,GAAgBQ,MAC7BC,GAAsBA,EAAKC,SAASC,gBAAkB,WAAaF,EAAKzG,KAAO,GAAGnB,KAAKoC,iBAE1F,CACApC,KAAKO,eAAec,aAAa0G,W,EAI7B,cAAAC,CAAeC,GACrB,MAAMC,EAAYlI,KAAKC,UAAUmG,WAAWnF,GAAqBA,EAAKsC,KAAK4E,OAAO,KAAOF,IACzF,GAAIC,GAAa,EAAG,CAClBlI,KAAKwG,gBAAgBxG,KAAKE,aAAaF,KAAKC,UAAUiI,GAAW/G,I,EAI7D,WAAAiH,GACN,OACEC,EAAA,WACEC,MAAO,CACL,gBAAiBtI,KAAK6E,OACtB,iBAAkB7E,KAAK0E,cAEzBvD,GAAI,GAAGnB,KAAKoC,eACZA,OAAQ,GAAGpC,KAAKoC,sBAChBmG,YAAavI,KAAKuI,YAClB3G,OAAQ5B,KAAK6E,QAAU7E,KAAKY,aAAeZ,KAAKY,aAAa2C,KAAKiF,QAAQ,WAAY,IAAM,KAC5FC,MAAOzI,KAAKyI,MAAK,gBACFzI,KAAK6E,OAAS,OAAS,QAAO,aACjC7E,KAAK0I,UAAS,gBACX,GAAG1I,KAAKoC,cAAa,oBACjBpC,KAAKwE,kBAAoB,OAAS,OAAM,wBACpCxE,KAAK6E,OAAS7E,KAAKsB,cAAgB,GAC1DqH,KAAM3I,KAAK6E,OAAS,WAAa,aACjC+D,aAAc5I,KAAKwE,kBACnBqE,QAAS,MACT5D,SAAUjF,KAAKiF,SACf4B,SAAU7G,KAAK6G,WAAc7G,KAAKwE,mBAAqBxE,KAAK6E,OAC5DiE,OAAQ9I,KAAK6E,OAASkE,UAAY/I,KAAK8I,OACvCE,KAAK,WACLC,KAAMjJ,KAAKiJ,KACXC,QAAU7H,IACRrB,KAAKiH,iBAAiB5F,EAAE,EAE1B8H,QAAU9H,IACR,GAAIA,EAAEH,MAAQ0E,EAAa4B,MAAO,CAChCnG,EAAE0E,gB,CAEJqD,EAAqB/H,EAAGrB,KAAKO,eAAe,EAE9C8I,UAAYhI,IACV,MAAMiI,EAAUtJ,KAAKY,aACjBZ,KAAKE,aAAaF,KAAKY,aAAaO,IACpCnB,KAAK0F,UACH1F,KAAKG,SACL,GAEN,OAAOH,KAAKuF,gBAAgBlE,EAAGiI,EAAQ,EAEzCC,cAAgBlI,IACdrB,KAAK2E,kBAAkBtD,EAAE,EAE3BmI,WAAanI,IACX,IAAKrB,KAAKwE,kBAAmB,CAC3BnD,EAAE0E,iBACF/F,KAAKgI,eAAeyB,OAAOC,aAAarI,EAAEsI,S,KAO5C,cAAAC,GACN,OACEvB,EAAA,OAAKC,MAAOtI,KAAK6E,OAAS,OAAS,UACjCwD,EAAA,OACEC,MAAO,CACL,oBAAqB,KACrBuB,MAAS7J,KAAK8J,UAGhBzB,EAAA,UACEW,KAAK,UAAS,aACFhJ,KAAK0I,WAAa1I,KAAKyI,MACnCsB,SAAU/J,KAAKiF,UAAYjF,KAAK6G,WAAa7G,KAAK6E,QAAU,EAAI,EAChE1D,GAAI,GAAGnB,KAAKoC,cAAa,uBACH,MACtB6G,KAAMjJ,KAAKgK,eACX1B,MAAO,CACLrD,SAAYjF,KAAKiF,SACjB4B,SAAY7G,KAAK6G,SACjB,CAAC,SAAS7G,KAAK8I,WAAY9I,KAAK6E,UAAY7E,KAAK8I,OACjD,cAAe,OAGhB9I,KAAK0F,WAAa1F,KAAKiK,kBACvBjK,KAAKkK,wB,CAOR,eAAAD,GACN,OACE5B,EAAA,kBACEC,MAAO,CACL6B,MAASnK,KAAKY,eAAiBZ,KAAK0F,UACpC,aAAc,KACd,qBAAsB1F,KAAKoK,eAE7BC,UAAW,KACXpF,SAAU,MACVqF,YAAaC,EAAgBC,QAC7BxB,KAAK,SACLe,SAAS,IAAG,gBACE,QACd5I,GAAI,GAAGnB,KAAKoC,cAAcpC,KAAKG,WAC/B8I,KAAMjJ,KAAKoD,aAAeqH,EAASC,OAAS1K,KAAKgK,eACjDW,YAAa,KACX3K,KAAKY,aAAe,KACpBZ,KAAK2C,aAAe,KACpB3C,KAAKsC,iBAAiB,EAExB+G,UAAYhI,GAAqBrB,KAAKuF,gBAAgBlE,EAAGrB,KAAKG,WAE9DkI,EAAA,OACEC,MAAO,CACL,qBAAsB,KACtB,uBAAwBtI,KAAKoD,eAG/BiF,EAAA,UAAQ9E,KAAK,qBACb8E,EAAA,YAAOrI,KAAK0F,Y,CAMZ,UAAAkF,CAAW3J,EAAkB4J,GACnC,MAAMC,EAAc9K,KAAKE,aAAae,EAAKE,IAE3C,OACEkH,EAAA,kBACEgC,WAAYpJ,EAAKgE,SACjBA,SAAUhE,EAAKgE,SACfqF,YAAaO,EAAWN,EAAgBQ,OAASR,EAAgBC,QACjExB,KAAK,SACLe,SAAU9I,EAAKgE,WAAajF,KAAK6E,QAAU,EAAI,EAAC,gBACjC5D,EAAKoB,SAAW,OAAS,QACxClB,GAAI,GAAGnB,KAAKoC,cAAc0I,IAC1B7B,KAAMjJ,KAAKgK,eACXW,YAAa,IAAM3K,KAAKgF,WAAW/D,GACnCoI,UAAYhI,GAAqBrB,KAAKuF,gBAAgBlE,EAAGyJ,IAEzDzC,EAAA,OAAKC,MAAM,0BACTD,EAAA,OACEC,MAAO,CACLjG,WAAcpB,EAAKoB,SACnB,uBAAwB,MAE1B2I,UAAW/J,EAAKsC,OAEjBtC,EAAK0H,MAAQN,EAAA,SAAOM,KAAM1H,EAAK0H,Q,CAMhC,YAAAqB,GACN,GAAIhK,KAAKoD,aAAc,CACrB,OAAOqH,EAASQ,I,CAGlB,GAAIjL,KAAKiJ,OAAS5I,EAAY6K,OAASlL,KAAKiJ,OAAS5I,EAAY8K,QAAS,CACxE,OAAOV,EAASS,K,CAGlB,OAAOT,EAASC,M,CAIV,mBAAAR,GACN,IAAKlK,KAAKC,UAAU8B,OAAQ,CAC1B,OAAO/B,KAAKoL,uB,CAGd,GAAIpL,KAAKoK,gBAAkBpK,KAAKoD,aAAc,CAC5C,OAAOpD,KAAKqL,wB,MACP,GAAIrL,KAAKoK,eAAiBpK,KAAKoD,aAAc,CAClD,OAAOpD,KAAKsL,mB,CAGd,OAAOtL,KAAKC,UAAUgD,KAAI,CAAChC,EAAkBkE,EAAOoG,KAClD,MAAMC,EAAarG,IAAUoG,EAAMxJ,OAAS,EAC5C,MAAM0J,EAAoBF,EAAMxJ,OAAS,EAEzC,GAAI/B,KAAKoD,aAAc,CACrB,OAAOpD,KAAK0L,gBAAgBzK,EAAMuK,EAAYC,EAAmB,K,CAGnE,OAAOzL,KAAK4K,WAAW3J,EAAMuK,EAAW,G,CAIpC,eAAAE,CACNzK,EACA0K,EACAF,EACAG,G,QAEA,MAAMd,EAAc9K,KAAKE,aAAae,EAAKE,IAE3C,MAAM0K,EAAa7L,KAAKoK,cACpBrB,UACA/I,KAAKoK,cACHuB,IAAgBF,EACdlB,EAAgBC,QAChBzB,UACF6C,GAAcH,IAAsBE,EAClCpB,EAAgBC,QAChBzB,UAER,OACEV,EAAA,kBACEgC,WAAYpJ,EAAKgE,SACjBA,SAAUhE,EAAKgE,SACfqD,MAAO,CACL,2BAA4BtI,KAAKoK,mBAAmBlH,EAAAjC,EAAK8C,YAAQ,MAAAb,SAAA,SAAAA,EAAEnB,QACnE,mBAAoB/B,KAAKoK,eAAiBwB,MAAeE,EAAA7K,EAAK8C,YAAQ,MAAA+H,SAAA,SAAAA,EAAE/J,WAAY/B,KAAK2C,cAE3FsG,KAAMjJ,KAAKgK,eACXM,YAAauB,EACbzI,aAAcpD,KAAKoD,cAEnBiF,EAAA,OACElH,GAAI,GAAGnB,KAAKoC,cAAc0I,IAC1B9B,KAAK,SACLV,MAAM,eACNyD,SAAU,EACV7C,QAAS,IAAMlJ,KAAKgF,WAAW/D,GAC/BoI,UAAYhI,IACVrB,KAAKuF,gBAAgBlE,EAAGyJ,GACxB,GAAIzJ,EAAEH,MAAQ0E,EAAa4B,MAAO,CAChCxH,KAAKgF,WAAW/D,E,IAIpBoH,EAAA,QAAMC,MAAM,iBACVD,EAAA,QACEC,MAAO,CACL,aAAc,KACdjG,WAAcpB,EAAKoB,UAErB2J,MAAO/K,EAAKsC,KACZyH,UAAW/J,EAAKoB,SAAW,WAAWpB,EAAKsC,gBAAkBtC,EAAKsC,QAGrEtC,EAAK0H,MAAQN,EAAA,SAAOM,KAAM1H,EAAK0H,QAEjC1H,EAAK8C,UAAY9C,EAAK8C,SAAShC,OAAS,EACvCsG,EAAA,cACEA,EAAA,OAAKC,MAAM,iBACRrH,EAAK8C,SAASd,KAAI,CAACgJ,EAAO9G,EAAO+G,IAChClM,KAAK0L,gBACHO,EACA9G,IAAU+G,EAAInK,OAAS,EACvBmK,EAAInK,OAAS,EACb,WAKN,K,CAKF,iBAAAuJ,GACN,MAAMa,EAAUnM,KAAKC,UAAUmM,QAC7B,CAACC,EAAKpL,KACJ,MAAMqL,EAAWrL,EAAKqL,UAAY,kBAClCD,EAAIC,GAAYD,EAAIC,IAAa,GACjCD,EAAIC,GAAUxK,KAAKb,GAEnB,OAAOoL,CAAG,GAEZ,IAGF,OAAOxI,OAAO0I,QAAQJ,GAASlJ,KAAI,EAAEqJ,EAAU1J,GAAQuC,EAAOoH,KAC5D,MAAMd,EAAoB5H,OAAOhC,OAAOsK,GAASK,MAAMC,GAAeA,EAAW1K,OAAS,IAG1F,OACEsG,EAAA,+BACgBlD,IAAUoH,EAAQxK,OAAS,EAAIgH,UAAYwB,EAAgBC,QACzEpH,aAAc,MAEdiF,EAAA,QACEC,MAAM,+BACNoE,KAAK,gBAEJJ,GAEHjE,EAAA,cACGzF,EAAMK,KAAI,CAAChC,EAAM0L,EAAGT,IAAQ,CAC3BlM,KAAK0L,gBAAgBzK,EAAM0L,IAAMT,EAAInK,OAAS,EAAG0J,EAAmB,MACpEkB,EAAIT,EAAInK,OAAS,EACfsG,EAAA,aACEnH,IAAK,WAAWyL,IAChBC,MAAO,CAACC,OAAQ,MAAOC,OAAQ,8BAE/B,SAGP3H,IAAUoH,EAAQxK,OAAS,GAAKsG,EAAA,aAAWuE,MAAO,CAACC,OAAQ,MAAOC,OAAQ,8BAC9D,G,CAKb,sBAAAzB,GACN,MAAM0B,EAAU/M,KAAKC,UAAUmM,QAC7B,CAACY,EAAO/L,EAAMkE,EAAOoG,K,MACnB,MAAMe,SAACA,GAAYrL,EACnB,MAAM4J,EAAWU,EAAMxJ,SAAWoD,EAAQ,EAC1C,MAAM8H,EAAYjN,KAAK4K,WAAW3J,EAAM4J,GAExCmC,EAAMV,IAAYpJ,EAAA8J,EAAMV,MAAS,MAAApJ,SAAA,EAAAA,EAAI,GACrC8J,EAAMV,GAAUxK,KAAKmL,GAErB,OAAOD,CAAK,GAEd,IAGF,OAAOnJ,OAAO0I,QAAQQ,GAAS9J,KAAI,EAAE/B,EAAKU,KAEtCyG,EAAA,+BAA4BkC,EAAgBC,SAC1CnC,EAAA,QACEC,MAAM,+BACNoE,KAAK,gBAEJxL,GAEFU,EAAMqB,KAAKhC,GAASA,M,CAMrB,qBAAAmK,GACN,OACE/C,EAAA,kBACE6E,MAAM,kBACN5E,MAAM,aACNW,KAAMjJ,KAAKoD,aAAeqH,EAASC,OAAS1K,KAAKgK,gBAEjD3B,EAAA,UACE9E,KAAK,kBACL4J,KAAK,yBAENnN,KAAKoN,e,CAKJ,aAAAC,GACN,GAAI5I,EAAQzE,KAAK6I,WAAa,MAAO,CACnC,M,CAGF,OACER,EAAA,mBACEQ,QAASpE,EAAQzE,KAAK6I,WAAa,KAAOE,UAAa/I,KAAK6I,QAC5DC,OAAQ9I,KAAK8I,OACbR,MAAOtI,KAAKiJ,KACZhE,SAAUjF,KAAKiF,U,CAKrB,MAAAqI,GACE,OACEjF,EAAA,OAAAnH,IAAA,2CAAKoH,MAAM,kBACRtI,KAAKoI,cACLpI,KAAK4J,iBACL5J,KAAKqN,gB","ignoreList":[]}
|
|
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","match","newItem","Object","assign","children","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 /** 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);\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): 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\n if (newItem.children && newItem.children.length > 0) {\n newItem.children = this.filterTree(newItem.children, searchString);\n }\n\n if (match) {\n newItem.name = this.getHighlightedText(newItem.name, searchString);\n }\n\n if (match || (newItem.children && newItem.children.length > 0)) {\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":[]}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{r as t,c as i,h as a,a as n,g as o}from"./p-75c4a726.js";import{I as s}from"./p-dfcf9936.js";const e="z-pagination{--z-pagination--page-button-width:64px;--z-pagination--pages-container-max-width:100%;--z-pagination-background-color:var(--color-background);--z-pagination-background-color-hover:var(--color-surface01);display:flex;max-width:100%;flex-flow:column wrap;font-family:var(--font-family-sans);font-weight:var(--font-rg);gap:calc(var(--space-unit) * 2) calc(var(--space-unit) * 4)}z-pagination,z-pagination *{box-sizing:border-box}z-pagination button{height:100%}z-pagination z-icon{fill:var(--color-primary01-icon)}z-pagination *:disabled z-icon{fill:var(--color-disabled03)}z-pagination .page-label{margin-right:calc(var(--space-unit) * 3);color:var(--color-default-text)}z-pagination .pagination-bar{display:flex;max-width:100%;height:48px;align-items:center}z-pagination .pagination-bar button{display:flex;align-items:center;justify-content:center;border:none;margin:0;background-color:var(--z-pagination-background-color);color:var(--color-primary01);cursor:pointer;font-family:inherit;font-weight:inherit;transition:background-color 0.15s ease-out,\n color 0.15s ease-out,\n border-bottom-color 0.15s ease-out,\n font-size 0.15s ease-in-out,\n font-weight 0.15s ease-in-out}z-pagination .pagination-bar button:focus-visible{background-color:var(--color-surface01);outline:none}z-pagination .pagination-bar .pagination-button{padding:calc(var(--space-unit) * 2);font-weight:var(--font-sb);text-transform:uppercase;white-space:nowrap}z-pagination .pagination-bar .navigation-button{padding:calc(var(--space-unit) * 2) calc(var(--space-unit) * 1.5)}z-pagination .pagination-bar .pagination-button:disabled,z-pagination .pagination-bar .navigation-button:disabled{color:var(--color-disabled03);cursor:default;fill:var(--color-disabled03);pointer-events:none}z-pagination .pagination-bar .page-button,z-pagination .pagination-bar .ellipsis-button{width:var(--z-pagination--page-button-width)}z-pagination .pages-container{position:relative;display:inline-flex;max-width:100%;height:100%;overflow-x:auto;scroll-behavior:smooth;scroll-snap-align:center;scrollbar-width:none}z-pagination .pages-container::-webkit-scrollbar{display:none}z-pagination .pages-chunk{display:flex;scroll-snap-align:center}z-pagination .pagination-bar .page-button{padding-top:var(--border-size-large) solid transparent;border-bottom:var(--border-size-large) solid transparent;font-size:var(--font-size-2);font-weight:var(--font-sb)}z-pagination .pagination-bar .page-button[data-current]{border-bottom-color:var(--color-primary01);font-size:var(--font-size-7)}z-pagination .go-to-page{display:flex;flex-direction:column}z-pagination .go-to-page .inputs{display:flex;column-gap:var(--space-unit)}z-pagination .go-to-page .inputs z-input{width:calc(var(--space-unit) * 11)}z-pagination .go-to-page .inputs z-input input,z-pagination .mobile-go-to-page z-input input{padding:0 calc(var(--space-unit) * 1.5) !important;appearance:none}z-pagination .mobile-go-to-page{display:flex;height:100%;flex:1 auto;align-items:center;justify-content:center;background-color:var(--color-surface02)}z-pagination .mobile-go-to-page z-input{width:var(--z-pagination--page-button-width);margin-right:var(--space-unit)}z-pagination .mobile-go-to-page z-input input{text-align:center}z-pagination .mobile-go-to-page z-input input::-webkit-outer-spin-button,z-pagination .mobile-go-to-page z-input input::-webkit-inner-spin-button{appearance:none}z-pagination .mobile-go-to-page>span{font-size:var(--font-size-2)}@media (hover: hover){z-pagination .pagination-bar button:hover{background-color:var(--z-pagination-background-color-hover)}z-pagination .pagination-bar .page-button:hover{border-bottom-color:var(--color-hover-primary);color:var(--color-hover-primary)}}@media (min-width: 768px){z-pagination{--z-pagination--page-button-width:88px;flex-direction:row;align-items:flex-end}z-pagination .pages-container{max-width:var(--z-pagination--pages-container-max-width)}}";const r=e;const l=class{constructor(a){t(this,a);this.pageChanged=i(this,"pageChanged",7);this.label=undefined;this.navArrows=true;this.totalPages=undefined;this.skip=0;this.edges=false;this.split=undefined;this.visiblePages=undefined;this.currentPage=1;this.goToPage=undefined;this._visiblePages=this.visiblePages;this.isMobile=false;this.goToPageValue=null}setPagesContainerWidth(){if(!this._visiblePages||this.split){this.host.style.setProperty("--z-pagination--pages-container-max-width","100%");return}const t=window.getComputedStyle(this.host);const i=t.getPropertyValue("--z-pagination--page-button-width");this.host.style.setProperty("--z-pagination--pages-container-max-width",`calc(${i} * ${this._visiblePages})`)}setVisiblePages(){this._visiblePages=Math.min(this.visiblePages||this.totalPages,this.totalPages)}onPageChanged(){this.pageChanged.emit(this.currentPage);this.scrollToPage()}onSplitChanged(){if(this.split){this.edges=false}}onResize(){this.setMobile()}setMobile(){const t="screen and (max-width: 767px)";this.isMobile=window.matchMedia(t).matches}getPagesChunks(){const t=Array.from({length:this.totalPages},((t,i)=>i+1));const i=[];const a=Math.ceil(t.length/this._visiblePages);for(let n=0;n<a;n++){i.push(t.slice(n*this._visiblePages,(n+1)*this._visiblePages))}return i}scrollToPage(){var t,i;const a=this.host.querySelector(".pages-container");const n=this.host.querySelector(`[data-page="${this.currentPage}"]`);const o=this.host.querySelector(".navigation-button");if(!n||!a){return}const s=a.getBoundingClientRect().width;const e=n.getBoundingClientRect().width;const r=(i=(t=o===null||o===void 0?void 0:o.getBoundingClientRect())===null||t===void 0?void 0:t.width)!==null&&i!==void 0?i:0;a.scrollLeft=this.currentPage*e-r-s/2}selectPage(t){this.currentPage=Math.min(Math.max(t,1),this.totalPages)}renderPage(t){return a("button",{class:"page-button",type:"button","aria-current":this.currentPage===t?"page":"false",title:`Vai alla pagina ${t}`,"data-page":t,"data-current":this.currentPage===t,onClick:()=>this.selectPage(t)},t)}renderEllipsisButton(t){return a("button",{class:"ellipsis-button",type:"button",title:`Vai alla pagina ${t}`,onClick:()=>this.selectPage(t)},"…")}renderPages(){const t=this.getPagesChunks();if(t.length<=0){return}return t.map((t=>a("div",{class:"pages-chunk"},t.map((t=>this.renderPage(t))))))}renderSplitPages(){if(this.totalPages<=this.split*2+5){return Array.from({length:this.totalPages},((t,i)=>this.renderPage(i+1)))}if(this.currentPage<=this.split*2+2){return[...Array.from({length:this.split*2+3},((t,i)=>this.renderPage(i+1))),this.renderEllipsisButton(this.split*2+4),this.renderPage(this.totalPages)]}if(this.currentPage>this.split*2+2&&this.currentPage<this.totalPages-this.split*2-1){return[this.renderPage(1),this.renderEllipsisButton(this.currentPage-this.split-1),...Array.from({length:this.split*2+1},((t,i)=>this.renderPage(this.currentPage-this.split+i))),this.renderEllipsisButton(this.currentPage+this.split+1),this.renderPage(this.totalPages)]}return[this.renderPage(1),this.renderEllipsisButton(this.totalPages-this.split*2-3),...Array.from({length:this.split*2+3},((t,i)=>this.renderPage(this.totalPages-this.split*2-2+i)))]}renderBackButton(){return a("button",{class:"navigation-button",type:"button",title:"Vai alla pagina precedente",disabled:this.currentPage===1,onClick:()=>this.selectPage(this.currentPage-1)},a("z-icon",{name:"chevron-left"}))}renderForwardButton(){return a("button",{class:"navigation-button",type:"button",title:"Vai alla prossima pagina",disabled:this.currentPage===this.totalPages,onClick:()=>this.selectPage(this.currentPage+1)},a("z-icon",{name:"chevron-right"}))}renderMobile(){const t=this.getPagesChunks();return[this.label&&a("span",{class:"page-label body-1-sb"},this.label),a("div",{class:"pagination-bar"},this.renderBackButton(),!this.goToPage&&a("div",{class:"pages-container",role:"navigation",tabIndex:-1},t.length>0&&t.map((t=>a("div",{class:"pages-chunk"},t.map((t=>this.renderPage(t))))))),this.goToPage&&a("form",{class:"mobile-go-to-page",onSubmit:t=>{t.preventDefault();this.selectPage(this.goToPageValue)}},a("z-input",{class:"go-to-page-input",type:s.NUMBER,min:1,max:this.totalPages,message:false,onInput:t=>{this.goToPageValue=t.target.value},placeholder:this.currentPage.toString(),hasclearicon:false}),a("span",null,`/${this.totalPages}`)),this.renderForwardButton())]}componentDidLoad(){this.setVisiblePages()}componentDidRender(){if(this.split){this.edges=false}this.setPagesContainerWidth();this.setMobile();this.scrollToPage()}render(){if(this.isMobile){return a(n,null,this.renderMobile())}return a(n,null,a("div",{class:"pagination-bar"},this.label&&a("span",{class:"page-label body-1-sb"},this.label),this.edges&&a("button",{class:"pagination-button",type:"button",title:"Vai alla pagina 1",disabled:this.currentPage===1,onClick:()=>this.selectPage(1)},"Pagina 1"),this.skip<this.totalPages&&this.skip>1&&a("button",{class:"pagination-button",type:"button",title:`Vai alla pagina ${this.currentPage-this.skip}`,disabled:this.currentPage<=this.skip,onClick:()=>this.selectPage(this.currentPage-this.skip)},"-",this.skip),this.navArrows&&this.renderBackButton(),a("div",{class:"pages-container",role:"navigation",tabIndex:-1},this.split?this.renderSplitPages():this.renderPages()),this.navArrows&&this.renderForwardButton(),this.skip<this.totalPages&&this.skip>1&&a("button",{class:"pagination-button",type:"button",title:`Vai alla pagina ${this.currentPage+this.skip}`,disabled:this.currentPage>this.totalPages-this.skip,onClick:()=>this.selectPage(this.currentPage+this.skip)},"+",this.skip),this.edges&&a("button",{class:"pagination-button",type:"button",title:`Vai alla pagina ${this.totalPages}`,disabled:this.currentPage===this.totalPages,onClick:()=>this.selectPage(this.totalPages)},"Pagina ",this.totalPages)),this.goToPage&&a("div",{class:"go-to-page"},a("span",{class:"z-label body-5-sb"},"Vai a pagina:"),a("div",{class:"inputs"},a("z-input",{class:"go-to-page-input",type:s.NUMBER,min:1,max:this.totalPages,message:false,placeholder:"2",hasclearicon:false,onInput:t=>{this.goToPageValue=t.target.value},onKeyDown:t=>t.key==="Enter"&&this.selectPage(this.goToPageValue)}),a("z-button",{disabled:!this.goToPageValue,title:"Vai alla pagina inserita",onClick:()=>this.selectPage(this.goToPageValue)},"vai"))))}get host(){return o(this)}static get watchers(){return{_visiblePages:["setPagesContainerWidth"],visiblePages:["setVisiblePages"],currentPage:["onPageChanged"],split:["onSplitChanged"]}}};l.style=r;export{l as z_pagination};
|
|
2
|
+
//# sourceMappingURL=p-f7d7cf44.entry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["stylesCss","ZPaginationStyle0","ZPagination","this","visiblePages","setPagesContainerWidth","_visiblePages","split","host","style","setProperty","pagesContainerStyle","window","getComputedStyle","pageButtonWidth","getPropertyValue","setVisiblePages","Math","min","totalPages","onPageChanged","pageChanged","emit","currentPage","scrollToPage","onSplitChanged","edges","onResize","setMobile","mobileMediaQuery","isMobile","matchMedia","matches","getPagesChunks","pages","Array","from","length","_","i","chunks","chunksCount","ceil","index","push","slice","container","querySelector","pageBtn","navBtn","containerWidth","getBoundingClientRect","width","pageBtnWidth","navBtnWidth","_b","_a","scrollLeft","selectPage","page","max","renderPage","h","class","type","title","onClick","renderEllipsisButton","renderPages","pagesChunks","map","chunk","renderSplitPages","renderBackButton","disabled","name","renderForwardButton","renderMobile","label","goToPage","role","tabIndex","onSubmit","ev","preventDefault","goToPageValue","InputType","NUMBER","message","onInput","target","value","placeholder","toString","hasclearicon","componentDidLoad","componentDidRender","render","Host","skip","navArrows","onKeyDown","key"],"sources":["src/components/z-pagination/styles.css?tag=z-pagination","src/components/z-pagination/index.tsx"],"sourcesContent":["z-pagination {\n --z-pagination--page-button-width: 64px;\n --z-pagination--pages-container-max-width: 100%;\n --z-pagination-background-color: var(--color-background);\n --z-pagination-background-color-hover: var(--color-surface01);\n\n display: flex;\n max-width: 100%;\n flex-flow: column wrap;\n font-family: var(--font-family-sans);\n font-weight: var(--font-rg);\n gap: calc(var(--space-unit) * 2) calc(var(--space-unit) * 4);\n}\n\nz-pagination,\nz-pagination * {\n box-sizing: border-box;\n}\n\nz-pagination button {\n height: 100%;\n}\n\nz-pagination z-icon {\n fill: var(--color-primary01-icon);\n}\n\nz-pagination *:disabled z-icon {\n fill: var(--color-disabled03);\n}\n\nz-pagination .page-label {\n margin-right: calc(var(--space-unit) * 3);\n color: var(--color-default-text);\n}\n\nz-pagination .pagination-bar {\n display: flex;\n max-width: 100%;\n height: 48px;\n align-items: center;\n}\n\nz-pagination .pagination-bar button {\n display: flex;\n align-items: center;\n justify-content: center;\n border: none;\n margin: 0;\n background-color: var(--z-pagination-background-color);\n color: var(--color-primary01);\n cursor: pointer;\n font-family: inherit;\n font-weight: inherit;\n transition:\n background-color 0.15s ease-out,\n color 0.15s ease-out,\n border-bottom-color 0.15s ease-out,\n font-size 0.15s ease-in-out,\n font-weight 0.15s ease-in-out;\n}\n\nz-pagination .pagination-bar button:focus-visible {\n background-color: var(--color-surface01);\n outline: none;\n}\n\nz-pagination .pagination-bar .pagination-button {\n padding: calc(var(--space-unit) * 2);\n font-weight: var(--font-sb);\n text-transform: uppercase;\n white-space: nowrap;\n}\n\nz-pagination .pagination-bar .navigation-button {\n padding: calc(var(--space-unit) * 2) calc(var(--space-unit) * 1.5);\n}\n\nz-pagination .pagination-bar .pagination-button:disabled,\nz-pagination .pagination-bar .navigation-button:disabled {\n color: var(--color-disabled03);\n cursor: default;\n fill: var(--color-disabled03);\n pointer-events: none;\n}\n\nz-pagination .pagination-bar .page-button,\nz-pagination .pagination-bar .ellipsis-button {\n width: var(--z-pagination--page-button-width);\n}\n\nz-pagination .pages-container {\n position: relative;\n display: inline-flex;\n max-width: 100%;\n height: 100%;\n overflow-x: auto;\n scroll-behavior: smooth;\n scroll-snap-align: center;\n\n /* hide scrollbar in Firefox */\n scrollbar-width: none;\n}\n\nz-pagination .pages-container::-webkit-scrollbar {\n display: none;\n}\n\nz-pagination .pages-chunk {\n display: flex;\n scroll-snap-align: center;\n}\n\nz-pagination .pagination-bar .page-button {\n padding-top: var(--border-size-large) solid transparent;\n border-bottom: var(--border-size-large) solid transparent;\n font-size: var(--font-size-2);\n font-weight: var(--font-sb);\n}\n\nz-pagination .pagination-bar .page-button[data-current] {\n border-bottom-color: var(--color-primary01);\n font-size: var(--font-size-7);\n}\n\nz-pagination .go-to-page {\n display: flex;\n flex-direction: column;\n}\n\nz-pagination .go-to-page .inputs {\n display: flex;\n column-gap: var(--space-unit);\n}\n\nz-pagination .go-to-page .inputs z-input {\n width: calc(var(--space-unit) * 11);\n}\n\nz-pagination .go-to-page .inputs z-input input,\nz-pagination .mobile-go-to-page z-input input {\n padding: 0 calc(var(--space-unit) * 1.5) !important;\n appearance: none;\n}\n\nz-pagination .mobile-go-to-page {\n display: flex;\n height: 100%;\n flex: 1 auto;\n align-items: center;\n justify-content: center;\n background-color: var(--color-surface02);\n}\n\nz-pagination .mobile-go-to-page z-input {\n width: var(--z-pagination--page-button-width);\n margin-right: var(--space-unit);\n}\n\nz-pagination .mobile-go-to-page z-input input {\n text-align: center;\n}\n\nz-pagination .mobile-go-to-page z-input input::-webkit-outer-spin-button,\nz-pagination .mobile-go-to-page z-input input::-webkit-inner-spin-button {\n appearance: none;\n}\n\nz-pagination .mobile-go-to-page > span {\n font-size: var(--font-size-2);\n}\n\n@media (hover: hover) {\n z-pagination .pagination-bar button:hover {\n background-color: var(--z-pagination-background-color-hover);\n }\n\n z-pagination .pagination-bar .page-button:hover {\n border-bottom-color: var(--color-hover-primary);\n color: var(--color-hover-primary);\n }\n}\n\n@media (min-width: 768px) {\n z-pagination {\n --z-pagination--page-button-width: 88px;\n\n flex-direction: row;\n align-items: flex-end;\n }\n\n z-pagination .pages-container {\n max-width: var(--z-pagination--pages-container-max-width);\n }\n}\n","import {Component, Element, Event, EventEmitter, Host, Listen, Prop, State, Watch, h} from \"@stencil/core\";\nimport {InputType} from \"../../beans\";\n\n/**\n * Pagination bar component.\n * @cssprop --z-pagination-background-color - background of the pagination's tabs. The default is --color-background\n * @cssprop --z-pagination-background-color-hover - background of the pagination's tabs on hover. The default is --color-surface01\n */\n@Component({\n tag: \"z-pagination\",\n styleUrl: \"styles.css\",\n})\nexport class ZPagination {\n @Element() host: HTMLZPaginationElement;\n\n /** Pagination label placed before the bar. */\n @Prop()\n label?: string;\n\n /** Enable navigation arrows. */\n @Prop()\n navArrows = true;\n\n /** Total number of pages. Required. */\n @Prop()\n totalPages!: number;\n\n /** Number of pages to skip. */\n @Prop()\n skip = 0;\n\n /** Enable buttons to go to the first and last pages. */\n @Prop()\n edges = false;\n\n /** Number of pages to show left/right of the current, before showing \"load more\" symbol (…). */\n @Prop()\n split?: number;\n\n /** Number of pages to show at a time. If not set, all pages will be shown. */\n @Prop()\n visiblePages?: number;\n\n /** Current page. */\n @Prop({mutable: true})\n currentPage = 1;\n\n /** Whether to show \"go to page\" feature. */\n @Prop()\n goToPage: boolean;\n\n /**\n * Internal visible pages variable.\n * Needed to better handle conflicting props like `visiblePages` and `split`.\n * This state will change based on props values and validation,\n * keeping original `visiblePages` value intact.\n */\n @State()\n private _visiblePages = this.visiblePages;\n\n /** Used to hides/change some functionalities on smaller screen sizes */\n @State()\n isMobile = false;\n\n /** Value of the go to page input */\n @State()\n goToPageValue = null;\n\n /** Event emitted when the current page has changed. */\n @Event()\n pageChanged: EventEmitter;\n\n /**\n * Set the max width of the pages container.\n */\n @Watch(\"_visiblePages\")\n setPagesContainerWidth(): void {\n if (!this._visiblePages || this.split) {\n this.host.style.setProperty(\"--z-pagination--pages-container-max-width\", \"100%\");\n\n return;\n }\n\n const pagesContainerStyle = window.getComputedStyle(this.host);\n const pageButtonWidth = pagesContainerStyle.getPropertyValue(\"--z-pagination--page-button-width\");\n this.host.style.setProperty(\n \"--z-pagination--pages-container-max-width\",\n `calc(${pageButtonWidth} * ${this._visiblePages})`\n );\n }\n\n /**\n * Set visible pages.\n * Ensure that the visible pages are always <= the total pages.\n * If `visiblePages` isn't set, fallback to the total pages.\n */\n @Watch(\"visiblePages\")\n setVisiblePages(): void {\n this._visiblePages = Math.min(this.visiblePages || this.totalPages, this.totalPages);\n }\n\n /**\n * On page changed.\n * @emits pageChanged\n */\n @Watch(\"currentPage\")\n onPageChanged(): void {\n this.pageChanged.emit(this.currentPage);\n this.scrollToPage();\n }\n\n /**\n * On split changed.\n * Empty `edges` value. The split feature wins over the pages chunks and edges.\n */\n @Watch(\"split\")\n onSplitChanged(): void {\n if (this.split) {\n this.edges = false;\n }\n }\n\n /**\n * Hide stuff on mobile.\n */\n @Listen(\"resize\", {target: \"window\", passive: true})\n onResize(): void {\n this.setMobile();\n }\n\n /**\n * Set functionalities according to screen size.\n */\n private setMobile(): void {\n const mobileMediaQuery = \"screen and (max-width: 767px)\";\n this.isMobile = window.matchMedia(mobileMediaQuery).matches;\n }\n\n /**\n * Get a list of pages chunks, each of `visiblePages` length.\n * @returns {number[][]}\n */\n private getPagesChunks(): number[][] {\n // array of numbers from 1 to `totalPages`\n const pages = Array.from({length: this.totalPages}, (_, i) => i + 1);\n\n const chunks = [];\n const chunksCount = Math.ceil(pages.length / this._visiblePages);\n for (let index = 0; index < chunksCount; index++) {\n chunks.push(pages.slice(index * this._visiblePages, (index + 1) * this._visiblePages));\n }\n\n return chunks;\n }\n\n /**\n * Scroll to the left the chunk of pages containing the current page.\n */\n private scrollToPage(): void {\n const container = this.host.querySelector(\".pages-container\") as HTMLElement;\n const pageBtn = this.host.querySelector(`[data-page=\"${this.currentPage}\"]`) as HTMLElement;\n const navBtn = this.host.querySelector(\".navigation-button\") as HTMLElement;\n\n if (!pageBtn || !container) {\n return;\n }\n\n const containerWidth = container.getBoundingClientRect().width;\n const pageBtnWidth = pageBtn.getBoundingClientRect().width;\n const navBtnWidth = navBtn?.getBoundingClientRect()?.width ?? 0;\n\n container.scrollLeft = this.currentPage * pageBtnWidth - navBtnWidth - containerWidth / 2;\n }\n\n /**\n * Select a page.\n * Do validations on the passed value before assigning it to `currentPage`.\n * @param {number} page Page number to set\n */\n private selectPage(page): void {\n this.currentPage = Math.min(Math.max(page, 1), this.totalPages);\n }\n\n /**\n * Render page number button.\n * @param {number} page Page number to render\n * @returns {HTMLButtonElement}\n */\n private renderPage(page): HTMLButtonElement {\n return (\n <button\n class=\"page-button\"\n type=\"button\"\n aria-current={this.currentPage === page ? \"page\" : \"false\"}\n title={`Vai alla pagina ${page}`}\n data-page={page}\n data-current={this.currentPage === page}\n onClick={() => this.selectPage(page)}\n >\n {page}\n </button>\n );\n }\n\n /**\n * Render split button.\n * @param {number} page Page to select on click.\n * @returns {HTMLButtonElement}\n */\n private renderEllipsisButton(page): HTMLButtonElement {\n return (\n <button\n class=\"ellipsis-button\"\n type=\"button\"\n title={`Vai alla pagina ${page}`}\n onClick={() => this.selectPage(page)}\n >\n …\n </button>\n );\n }\n\n /**\n * Render chunked page buttons.\n * @returns {HTMLDivElement[]}\n */\n private renderPages(): HTMLDivElement[] {\n const pagesChunks = this.getPagesChunks();\n if (pagesChunks.length <= 0) {\n return;\n }\n\n return pagesChunks.map((chunk) => <div class=\"pages-chunk\">{chunk.map((page) => this.renderPage(page))}</div>);\n }\n\n /**\n * Render page buttons when split feature is enabled.\n * @returns {HTMLButtonElement[]}\n */\n private renderSplitPages(): HTMLButtonElement[] {\n // left and right split pages, current page, first and last page, left and right ellipsis button\n if (this.totalPages <= this.split * 2 + 5) {\n // Too few pages: ellipsis will never be rendered, so let's just render all pages and that's it.\n return Array.from({length: this.totalPages}, (_, i) => this.renderPage(i + 1));\n }\n\n if (this.currentPage <= this.split * 2 + 2) {\n // Render first (2 * split + 3) pages, ellipsis, then last page.\n return [\n ...Array.from({length: this.split * 2 + 3}, (_, i) => this.renderPage(i + 1)),\n this.renderEllipsisButton(this.split * 2 + 4),\n this.renderPage(this.totalPages),\n ];\n }\n\n if (this.currentPage > this.split * 2 + 2 && this.currentPage < this.totalPages - this.split * 2 - 1) {\n // Render first page, ellipsis, current page surrounded by (split) pages both before and after, another ellipsis, then last page.\n return [\n this.renderPage(1),\n this.renderEllipsisButton(this.currentPage - this.split - 1),\n ...Array.from({length: this.split * 2 + 1}, (_, i) => this.renderPage(this.currentPage - this.split + i)),\n this.renderEllipsisButton(this.currentPage + this.split + 1),\n this.renderPage(this.totalPages),\n ];\n }\n\n // Render first page, ellipsis, then last (2 * split + 3) pages.\n return [\n this.renderPage(1),\n this.renderEllipsisButton(this.totalPages - this.split * 2 - 3),\n ...Array.from({length: this.split * 2 + 3}, (_, i) => this.renderPage(this.totalPages - this.split * 2 - 2 + i)),\n ];\n }\n\n private renderBackButton(): HTMLButtonElement {\n return (\n <button\n class=\"navigation-button\"\n type=\"button\"\n title=\"Vai alla pagina precedente\"\n disabled={this.currentPage === 1}\n onClick={() => this.selectPage(this.currentPage - 1)}\n >\n <z-icon name=\"chevron-left\"></z-icon>\n </button>\n );\n }\n\n private renderForwardButton(): HTMLButtonElement {\n return (\n <button\n class=\"navigation-button\"\n type=\"button\"\n title=\"Vai alla prossima pagina\"\n disabled={this.currentPage === this.totalPages}\n onClick={() => this.selectPage(this.currentPage + 1)}\n >\n <z-icon name=\"chevron-right\"></z-icon>\n </button>\n );\n }\n\n private renderMobile(): HTMLElement[] {\n const pagesChunks = this.getPagesChunks();\n\n return [\n this.label && <span class=\"page-label body-1-sb\">{this.label}</span>,\n\n <div class=\"pagination-bar\">\n {this.renderBackButton()}\n\n {!this.goToPage && (\n <div\n class=\"pages-container\"\n role=\"navigation\"\n tabIndex={-1}\n >\n {pagesChunks.length > 0 &&\n pagesChunks.map((chunk) => <div class=\"pages-chunk\">{chunk.map((page) => this.renderPage(page))}</div>)}\n </div>\n )}\n\n {this.goToPage && (\n <form\n class=\"mobile-go-to-page\"\n onSubmit={(ev) => {\n ev.preventDefault();\n this.selectPage(this.goToPageValue);\n }}\n >\n <z-input\n class=\"go-to-page-input\"\n type={InputType.NUMBER}\n min={1}\n max={this.totalPages}\n message={false}\n onInput={(ev: InputEvent) => {\n this.goToPageValue = (ev.target as HTMLZInputElement).value;\n }}\n placeholder={this.currentPage.toString()}\n hasclearicon={false}\n ></z-input>\n <span>{`/${this.totalPages}`}</span>\n </form>\n )}\n\n {this.renderForwardButton()}\n </div>,\n ];\n }\n\n componentDidLoad(): void {\n this.setVisiblePages();\n }\n\n componentDidRender(): void {\n if (this.split) {\n this.edges = false;\n }\n\n this.setPagesContainerWidth();\n this.setMobile();\n this.scrollToPage();\n }\n\n render(): HTMLZPaginationElement {\n if (this.isMobile) {\n return <Host>{this.renderMobile()}</Host>;\n }\n\n return (\n <Host>\n <div class=\"pagination-bar\">\n {this.label && <span class=\"page-label body-1-sb\">{this.label}</span>}\n\n {this.edges && (\n <button\n class=\"pagination-button\"\n type=\"button\"\n title=\"Vai alla pagina 1\"\n disabled={this.currentPage === 1}\n onClick={() => this.selectPage(1)}\n >\n Pagina 1\n </button>\n )}\n\n {this.skip < this.totalPages && this.skip > 1 && (\n <button\n class=\"pagination-button\"\n type=\"button\"\n title={`Vai alla pagina ${this.currentPage - this.skip}`}\n disabled={this.currentPage <= this.skip}\n onClick={() => this.selectPage(this.currentPage - this.skip)}\n >\n -{this.skip}\n </button>\n )}\n\n {this.navArrows && this.renderBackButton()}\n\n <div\n class=\"pages-container\"\n role=\"navigation\"\n tabIndex={-1}\n >\n {this.split ? this.renderSplitPages() : this.renderPages()}\n </div>\n\n {this.navArrows && this.renderForwardButton()}\n\n {this.skip < this.totalPages && this.skip > 1 && (\n <button\n class=\"pagination-button\"\n type=\"button\"\n title={`Vai alla pagina ${this.currentPage + this.skip}`}\n disabled={this.currentPage > this.totalPages - this.skip}\n onClick={() => this.selectPage(this.currentPage + this.skip)}\n >\n +{this.skip}\n </button>\n )}\n\n {this.edges && (\n <button\n class=\"pagination-button\"\n type=\"button\"\n title={`Vai alla pagina ${this.totalPages}`}\n disabled={this.currentPage === this.totalPages}\n onClick={() => this.selectPage(this.totalPages)}\n >\n Pagina {this.totalPages}\n </button>\n )}\n </div>\n {this.goToPage && (\n <div class=\"go-to-page\">\n <span class=\"z-label body-5-sb\">Vai a pagina:</span>\n <div class=\"inputs\">\n <z-input\n class=\"go-to-page-input\"\n type={InputType.NUMBER}\n min={1}\n max={this.totalPages}\n message={false}\n placeholder=\"2\"\n hasclearicon={false}\n onInput={(ev: InputEvent) => {\n this.goToPageValue = (ev.target as HTMLZInputElement).value;\n }}\n onKeyDown={(ev) => ev.key === \"Enter\" && this.selectPage(this.goToPageValue)}\n ></z-input>\n <z-button\n disabled={!this.goToPageValue}\n title=\"Vai alla pagina inserita\"\n onClick={() => this.selectPage(this.goToPageValue)}\n >\n vai\n </z-button>\n </div>\n </div>\n )}\n </Host>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -2110,6 +2110,17 @@ a.z-fab {
|
|
|
2110
2110
|
}
|
|
2111
2111
|
}
|
|
2112
2112
|
|
|
2113
|
+
.z-label {
|
|
2114
|
+
display: block;
|
|
2115
|
+
padding-bottom: var(--space-unit);
|
|
2116
|
+
color: var(--color-default-text);
|
|
2117
|
+
font-family: var(--font-family-sans);
|
|
2118
|
+
font-size: var(--font-size-1);
|
|
2119
|
+
font-weight: var(--font-sb);
|
|
2120
|
+
text-align: left;
|
|
2121
|
+
text-transform: uppercase;
|
|
2122
|
+
}
|
|
2123
|
+
|
|
2113
2124
|
button.z-link {
|
|
2114
2125
|
padding: 0;
|
|
2115
2126
|
border: 0;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{p as e,H as a,b as t}from"./p-75c4a726.js";export{s as setNonce}from"./p-75c4a726.js";import{g as o}from"./p-e1255160.js";var i=()=>{{l(a.prototype)}const t=import.meta.url;const o={};if(t!==""){o.resourcesUrl=new URL(".",t).href}return e(o)};var l=e=>{const a=e.cloneNode;e.cloneNode=function(e){if(this.nodeName==="TEMPLATE"){return a.call(this,e)}const t=a.call(this,false);const o=this.childNodes;if(e){for(let e=0;e<o.length;e++){if(o[e].nodeType!==2){t.appendChild(o[e].cloneNode(true))}}}return t}};i().then((async e=>{await o();return t(JSON.parse('[["p-93150ae0",[[1,"z-app-header",{"stuck":[516],"enableOffcanvas":[1540,"enable-offcanvas"],"enableSearch":[516,"enable-search"],"searchPlaceholder":[1,"search-placeholder"],"searchString":[1025,"search-string"],"searchPageUrl":[1,"search-page-url"],"enableZLogo":[516,"enable-z-logo"],"drawerOpen":[1028,"drawer-open"],"_stuck":[32],"menuLength":[32],"isMobile":[32],"isTablet":[32]},[[5,"focusin","manageMenus"],[5,"click","manageMenus"],[1,"keydown","handleKeydown"]],{"_stuck":["onStuck"],"drawerOpen":["setMenuFloatingMode"],"stuck":["onStuckChange"]}],[1,"z-searchbar",{"htmlid":[513],"preventSubmit":[4,"prevent-submit"],"value":[1],"placeholder":[1],"autocomplete":[4],"autocompleteMinChars":[2,"autocomplete-min-chars"],"resultsCount":[2,"results-count"],"searchHelperLabel":[1,"search-helper-label"],"resultsItems":[1,"results-items"],"sortResultsItems":[4,"sort-results-items"],"showSearchButton":[4,"show-search-button"],"searchButtonIconOnly":[4,"search-button-icon-only"],"size":[1],"variant":[1],"searchString":[32],"currResultsCount":[32],"showResults":[32],"isMobile":[32],"selectedItem":[32]},[[4,"click","handleOutsideClick"]],{"resultsItems":["watchItems"],"resultsCount":["watchResultsCount"],"value":["watchValue"],"searchString":["watchSearchString"],"showResults":["watchShowResults"]}],[6,"z-offcanvas",{"variant":[513],"open":[1540],"transitiondirection":[513],"skipLoadAnimation":[4,"skip-load-animation"],"skipAnimation":[32]},[[2,"click","stopEvent"],[2,"focusin","stopEvent"]],{"variant":["handlePageOverflow"],"open":["onOpenChanged"]}],[6,"z-tag",{"icon":[1],"expandable":[4]}],[1,"z-list-group",{"size":[513],"dividerType":[513,"divider-type"],"dividerSize":[513,"divider-size"],"dividerColor":[513,"divider-color"],"listType":[513,"list-type"],"hasTreeItems":[4,"has-tree-items"]}],[1,"z-list",{"size":[513],"listType":[513,"list-type"],"role":[513]}],[1,"z-list-element",{"alignButton":[513,"align-button"],"clickable":[516],"dividerColor":[1,"divider-color"],"dividerType":[1,"divider-type"],"dividerSize":[1,"divider-size"],"expandable":[516],"expandableStyle":[1,"expandable-style"],"listElementId":[514,"list-element-id"],"size":[513],"color":[513],"disabled":[516],"listElementPosition":[513,"list-element-position"],"listType":[513,"list-type"],"hasTreeItems":[4,"has-tree-items"],"role":[513],"htmlTabindex":[2,"html-tabindex"],"showInnerContent":[32]},[[4,"accessibleFocus","accessibleFocusHandler"]]],[2,"z-input",{"htmlid":[1],"type":[1],"name":[1],"label":[1],"ariaLabel":[1,"aria-label"],"ariaExpanded":[1,"aria-expanded"],"ariaControls":[1,"aria-controls"],"ariaAutocomplete":[1,"aria-autocomplete"],"ariaActivedescendant":[1,"aria-activedescendant"],"value":[1025],"disabled":[516],"readonly":[4],"required":[4],"checked":[1028],"placeholder":[1],"htmltitle":[1],"status":[1],"message":[8],"labelPosition":[1,"label-position"],"autocomplete":[1],"role":[1],"hasclearicon":[4],"icon":[1],"min":[2],"minlength":[2],"max":[2],"maxlength":[2],"step":[2],"pattern":[1],"size":[513],"isTyping":[32],"passwordHidden":[32],"isChecked":[64]},[[4,"inputCheck","inputCheckListener"]]],[1,"z-input-message",{"message":[1],"status":[513],"disabled":[516],"statusRole":[32]},null,{"message":["onMessageChange"],"status":["onMessageChange"]}],[2,"z-divider",{"size":[1],"color":[1],"orientation":[1]}],[6,"z-button",{"ariaLabel":[513,"aria-label"],"role":[1],"htmlrole":[1],"href":[1],"target":[1],"htmlid":[1],"name":[1],"disabled":[516],"type":[1],"variant":[513],"icon":[1],"size":[513]}],[1,"z-icon",{"name":[1],"height":[8],"width":[8],"iconid":[1],"fill":[1]}]]],["p-37a34984",[[1,"z-app-header-deprecated",{"stuck":[516],"hero":[1],"overlay":[516],"flow":[513],"drawerOpen":[516,"drawer-open"],"enableSearch":[516,"enable-search"],"searchPlaceholder":[1,"search-placeholder"],"searchString":[1025,"search-string"],"searchPageUrl":[1,"search-page-url"],"_stuck":[32],"currentViewport":[32],"menuLength":[32]},[[9,"resize","evaluateViewport"]],{"_stuck":["onStuck"],"drawerOpen":["setMenuFloatingMode"],"stuck":["onStuckMode"]}]]],["p-ccb2318f",[[2,"z-select",{"htmlid":[1],"items":[1],"name":[1],"label":[1],"ariaLabel":[1,"aria-label"],"disabled":[4],"readonly":[4],"placeholder":[1],"htmltitle":[1],"status":[1],"message":[8],"autocomplete":[4],"noresultslabel":[1],"hasGroupItems":[4,"has-group-items"],"hasTreeItems":[4,"has-tree-items"],"isfixed":[4],"resetItem":[1,"reset-item"],"size":[1],"isOpen":[32],"selectedItem":[32],"focusedItemId":[32],"searchString":[32],"flattenedList":[32],"getSelectedItem":[64],"getValue":[64],"setValue":[64]},[[0,"ariaDescendantFocus","getFocusedItemHandler"]],{"items":["watchItems"]}]]],["p-93af4721",[[1,"z-breadcrumb",{"pathStyle":[513,"path-style"],"homepageVariant":[1,"homepage-variant"],"maxNodesToShow":[2,"max-nodes-to-show"],"preventFollowUrl":[4,"prevent-follow-url"],"overflowMenuItemRows":[2,"overflow-menu-item-rows"],"truncateChar":[2,"truncate-char"],"viewPortWidth":[32],"hasOverflow":[32],"popoverEllipsisOpen":[32]},[[9,"resize","handleResize"]],{"maxNodesToShow":["handlePropChange"],"viewPortWidth":["handleResizeUp"]}]]],["p-8cbb9bbe",[[1,"z-combobox",{"inputid":[1],"items":[1],"label":[1],"disabled":[516],"hassearch":[4],"searchlabel":[1],"searchplaceholder":[1],"searchtitle":[1],"noresultslabel":[1],"isopen":[1028],"isfixed":[4],"closesearchtext":[1],"hascheckall":[4],"checkalltext":[1],"uncheckalltext":[1],"maxcheckableitems":[2],"hasgroupitems":[4],"size":[1],"searchValue":[32],"selectedCounter":[32],"renderItemsList":[32],"focusedItemId":[32],"checkboxes":[32]},null,{"items":["watchItems"],"searchValue":["watchSearchValue"],"checkboxes":["watchCheckboxes"]}]]],["p-d60b9285",[[1,"z-myz-card-dictionary",{"name":[1],"cover":[1],"disabled":[4],"flipped":[1028],"flipbuttonlabel":[1],"hideinfobtn":[4]},[[0,"flipCard","handleFlipCard"]]]]],["p-2726182b",[[6,"z-file-upload",{"type":[513],"buttonVariant":[1,"button-variant"],"acceptedFormat":[1,"accepted-format"],"fileMaxSize":[2,"file-max-size"],"mainTitle":[1,"main-title"],"description":[1],"uploadBtnLabel":[1,"upload-btn-label"],"dragAndDropLabel":[1,"drag-and-drop-label"],"allowedFilesMessage":[1,"allowed-files-message"],"uploadClickableMessage":[1,"upload-clickable-message"],"uploadMessage":[1,"upload-message"],"errorModalTitle":[1,"error-modal-title"],"errorModalMessage":[1,"error-modal-message"],"uploadedFilesLabel":[1,"uploaded-files-label"],"hasFileSection":[4,"has-file-section"],"inputName":[1,"input-name"],"showErrors":[4,"show-errors"],"_type":[32],"files":[32],"invalidFiles":[32],"input":[32],"getFiles":[64],"removeFile":[64]},[[0,"removeFile","onFileRemoved"],[0,"fileDropped","fileDroppedListener"]]]]],["p-7df942c9",[[0,"z-pagination",{"label":[1],"navArrows":[4,"nav-arrows"],"totalPages":[2,"total-pages"],"skip":[2],"edges":[4],"split":[2],"visiblePages":[2,"visible-pages"],"currentPage":[1026,"current-page"],"goToPage":[4,"go-to-page"],"_visiblePages":[32],"isMobile":[32],"goToPageValue":[32]},[[9,"resize","onResize"]],{"_visiblePages":["setPagesContainerWidth"],"visiblePages":["setVisiblePages"],"currentPage":["onPageChanged"],"split":["onSplitChanged"]}]]],["p-49f99fa3",[[1,"z-tree-list",{"items":[1],"htmlAriaLabelledby":[513,"html-aria-labelledby"],"htmlSectionTitle":[513,"html-section-title"]},null,{"items":["watchItems"]}]]],["p-996446e2",[[1,"z-carousel",{"isLoading":[4,"is-loading"],"label":[1],"single":[516],"arrowsPosition":[513,"arrows-position"],"progressMode":[1,"progress-mode"],"fixedArrows":[516,"fixed-arrows"],"ghostLoadingHeight":[2,"ghost-loading-height"],"infinite":[4],"current":[32],"items":[32],"highlightedIndicator":[32],"canNavigatePrev":[32],"canNavigateNext":[32]},null,{"current":["onIndexChange"],"single":["onSingleModeChange"],"infinite":["onInfiniteModeChange"]}]]],["p-6a48d114",[[4,"z-date-picker",{"datePickerId":[1,"date-picker-id"],"ariaLabel":[1,"aria-label"],"label":[1],"mode":[1],"name":[1],"value":[1],"flatpickrPosition":[32],"inputError":[32]},[[2,"keydown","handleKeyDown"]],{"mode":["setupPickers"]}]]],["p-604602a8",[[2,"z-file",{"fileNumber":[2,"file-number"],"fileName":[1,"file-name"],"allowPopover":[32],"popoverVisible":[32]},[[1,"mouseover","onMouseOver"],[1,"mouseleave","onMouseLeave"],[0,"interactiveIconClick","onInteractiveIconClick"]]]]],["p-0bf8d989",[[0,"z-range-picker",{"rangePickerId":[1,"range-picker-id"],"firstAriaLabel":[1,"first-aria-label"],"firstLabel":[1,"first-label"],"secondAriaLabel":[1,"second-aria-label"],"secondLabel":[1,"second-label"],"mode":[1],"firstPickerReadOnly":[4,"first-picker-read-only"],"lastPickerReadOnly":[4,"last-picker-read-only"],"firstPickerPlaceholder":[1,"first-picker-placeholder"],"lastPickerPlaceholder":[1,"last-picker-placeholder"],"flatpickrPosition":[32],"activeInput":[32],"firstInputError":[32],"lastInputError":[32]},[[18,"click","handleClick"],[18,"keyup","handleKeyDown"]],{"firstPickerReadOnly":["setupFirstPickersReadOnly"],"lastPickerReadOnly":["setupLastPickersReadOnly"],"mode":["setupPickers"]}]]],["p-cf837902",[[1,"z-td",{"colspan":[2],"sticky":[516],"showMenu":[513,"show-menu"],"popoverPosition":[1,"popover-position"],"isMenuOpen":[32]},null,{"colspan":["updateColspan"]}]]],["p-0bd2b21e",[[1,"z-th",{"colspan":[2],"showMenu":[513,"show-menu"],"showSorting":[513,"show-sorting"],"sticky":[516],"sortDirection":[1025,"sort-direction"],"sorted":[1540],"popoverPosition":[1,"popover-position"],"isMenuOpen":[32]},null,{"colspan":["updateColspan"]}]]],["p-1ef90472",[[4,"z-anchor-navigation",{"hideUnselected":[516,"hide-unselected"],"autoCurrent":[4,"auto-current"],"collapsedLabel":[1,"collapsed-label"],"collapsed":[32]}]]],["p-a3860bef",[[1,"z-book-card",{"variant":[513],"cover":[1],"operaTitle":[1,"opera-title"],"volumeTitle":[1,"volume-title"],"authors":[1],"isbn":[1],"isbnLabel":[1,"isbn-label"],"year":[1],"ebookUrl":[1,"ebook-url"],"fallbackCover":[1,"fallback-cover"],"titleHtmlTag":[1,"title-html-tag"]}]]],["p-b0856b23",[[1,"z-book-card-app",{"logo":[1],"name":[1],"link":[1],"laz":[4],"info":[1]}]]],["p-6598aee0",[[1,"z-myz-card-alert",{"iconname":[1],"contenttext":[1],"actiontext":[1],"type":[1]}]]],["p-8ca5851b",[[1,"z-myz-card-info",{"data":[1],"htmltabindex":[2],"hiddenContent":[32],"tooltip":[32]}]]],["p-a2217ed8",[[1,"z-myz-list",{"inputrawdata":[1],"list":[1040]},null,{"inputrawdata":["oninputrawdataChange"]}]]],["p-d9592fa6",[[1,"z-otp",{"inputNum":[2,"input-num"],"status":[1],"message":[1]}]]],["p-c1d89e00",[[1,"z-accordion",{"label":[1],"icon":[1],"size":[513],"isDisabled":[516,"is-disabled"],"open":[1540],"highlight":[516],"variant":[513],"shadow":[516]},null,{"isDisabled":["onDisabledChange"]}]]],["p-d8d7db0e",[[1,"z-book-card-deprecated",{"variant":[1],"cover":[1],"operaTitle":[1,"opera-title"],"volumeTitle":[1,"volume-title"],"authors":[1],"isbn":[1],"isbnLabel":[1,"isbn-label"],"ribbon":[1],"ribbonIcon":[1,"ribbon-icon"],"ribbonInteractive":[4,"ribbon-interactive"],"borderless":[4],"fallbackCover":[1,"fallback-cover"],"operaTitleTag":[1,"opera-title-tag"],"isMobile":[32],"hasResources":[32],"showResources":[32]}]]],["p-209db20e",[[1,"z-button-sort",{"buttonid":[1],"label":[1],"desclabel":[1],"counter":[2],"sortlabelasc":[1],"sortlabeldesc":[1],"isselected":[1028],"sortasc":[1028],"allowTooltip":[32]}]]],["p-f73d8a87",[[1,"z-card",{"variant":[513],"coverIcon":[1,"cover-icon"],"showShadow":[516,"show-shadow"],"clickable":[516],"hasCoverImage":[32]}]]],["p-40fc2770",[[1,"z-info-box",{"boxid":[1],"isclosable":[4]}]]],["p-611e6579",[[1,"z-menu",{"active":[516],"floating":[516],"open":[1540],"verticalContext":[516,"vertical-context"],"htmlTabindex":[2,"html-tabindex"],"hasHeader":[32],"hasContent":[32],"setFocus":[64],"focusLastItem":[64]},[[4,"click","onItemClick"],[0,"keydown","onKeyDown"]],{"open":["onOpenChanged"],"htmlTabindex":["setLabelA11yAttrs"]}]]],["p-5a24e268",[[1,"z-menu-deprecated",{"active":[516],"floating":[516],"open":[1540],"verticalContext":[516,"vertical-context"],"hasHeader":[32],"hasContent":[32]},[[4,"click","handleClick"]],{"open":["onOpenChanged"]}]]],["p-6949d27d",[[1,"z-menu-section",{"active":[516],"htmlTabindex":[2,"html-tabindex"],"open":[1028],"hasItems":[32],"items":[32],"focusLastItem":[64],"setFocus":[64]},[[0,"keydown","onItemsKeydown"]],{"open":["onOpenChange"],"htmlTabindex":["onTabindexChange"]}]]],["p-816fd6dc",[[1,"z-menu-section-deprecated",{"active":[516],"open":[32],"hasContent":[32]},[[4,"click","handleClick"]]]]],["p-e853ccde",[[1,"z-myz-card-icon",{"icon":[1],"isdisabled":[4],"ariaLabel":[1,"aria-label"]}]]],["p-c8eef88d",[[4,"z-navigation-tabs",{"ariaLabel":[1,"aria-label"],"orientation":[513],"size":[513],"selectedTab":[1026,"selected-tab"],"canNavigate":[32],"canNavigatePrev":[32],"canNavigateNext":[32]},[[0,"click","handleTabClick"],[0,"focusin","onTabFocusIn"],[0,"keydown","navigateThroughTabs"],[0,"focusout","onTabFocusOut"]],{"canNavigate":["checkScrollEnabled"],"selectedTab":["onTabSelected"]}]]],["p-684c8fcb",[[1,"z-notification",{"contenticonname":[1],"actiontext":[1],"type":[513],"showclose":[4],"showshadow":[516],"sticky":[516]}]]],["p-3cb9a131",[[6,"z-panel-elem",{"elemid":[1],"imgurl":[1],"imgalt":[1],"linkicon":[1],"linklabel":[1],"url":[1],"target":[1],"isdisabled":[4],"descrSlotName":[1,"descr-slot-name"]}]]],["p-f609b40e",[[1,"z-section-title",{"dividerPosition":[1,"divider-position"],"uppercase":[516]}]]],["p-3d8cdd34",[[1,"z-slideshow",{"slideshowid":[1],"data":[1],"device":[32],"currentSlide":[32]},null,{"data":["watchData"]}]]],["p-07da09b0",[[1,"z-stepper-item",{"index":[2],"href":[1],"pressed":[4],"checked":[4],"disabled":[4]}]]],["p-1dd6dff4",[[1,"z-toast-notification",{"heading":[1],"message":[1],"closebutton":[4],"autoclose":[2],"pauseonfocusloss":[4],"type":[1],"isdraggable":[4],"draggablepercentage":[2],"transition":[1],"percentage":[32]},null,{"isdraggable":["watchPropIsdraggable"],"autoclose":["watchPropAutoclose"],"pauseonfocusloss":["watchPropPauseonfocusloss"]}]]],["p-ee7185cf",[[1,"z-toggle-button",{"label":[1],"isdisabled":[4],"avoidclick":[4],"opened":[1028],"ariaLabel":[1,"aria-label"]}]]],["p-6b679226",[[6,"z-toggle-switch",{"disabled":[516],"labelPosition":[513,"label-position"],"checked":[1028],"htmlid":[1]}]]],["p-e4627f9a",[[1,"z-tooltip",{"position":[513],"dark":[516],"open":[1540],"bindTo":[1,"bind-to"],"closable":[4]},[[0,"openChange","onPopoverOpenChange"]]]]],["p-83e3b2ff",[[1,"z-tr",{"expandable":[516],"expanded":[32],"expandableContentId":[32]},[[0,"colspanchange","updateColumns"]],{"expandable":["updateColumns"]}]]],["p-e8bab6ad",[[4,"z-aria-alert",{"mode":[1]}]]],["p-564ddab3",[[1,"z-avatar",{"size":[1],"text":[1],"textColor":[1,"text-color"],"backgroundColor":[1,"background-color"],"image":[1025]}]]],["p-430916e9",[[1,"z-cover-hero",{"variant":[513],"contentPosition":[513,"content-position"],"preserveAspectRatio":[516,"preserve-aspect-ratio"]},[[2,"load","onImgLoad"]]]]],["p-fed6d4ac",[[1,"z-logo",{"width":[2],"height":[2],"imageAlt":[1,"image-alt"],"link":[1],"targetBlank":[4,"target-blank"],"mobileLogo":[4,"mobile-logo"]}]]],["p-506d2cdb",[[1,"z-myz-card-footer",{"titolo":[1],"autori":[1],"isbn":[1],"faded":[4],"cardtype":[1],"opened":[4],"customContent":[4,"custom-content"],"isOpen":[32],"allowTooltipAuthors":[32]},[[0,"toggleClick","handleToggle"]]]]],["p-a9d05a92",[[1,"z-myz-card-footer-sections"]]],["p-a1d45a8b",[[1,"z-myz-card-list",{"listdata":[1]}]]],["p-b0f758e7",[[2,"z-skip-to-content",{"variant":[513],"links":[1025],"visible":[32],"visibleLink":[32]},[[4,"focusout","handleFocusOutSkipToContent"],[4,"focusin","handleFocusSkipToContent"]]]]],["p-dc46730d",[[1,"z-stepper"]]],["p-fd7c7885",[[1,"z-table",{"bordered":[516],"expandable":[32]}]]],["p-237fcaa9",[[1,"z-tbody"]]],["p-39a968af",[[1,"z-tfoot",{"sticky":[516]}]]],["p-a22b7aa0",[[1,"z-thead",{"sticky":[516]}]]],["p-b1561f18",[[1,"z-toast-notification-list",{"position":[513],"newestontop":[4]},null,{"newestontop":["watchPropNewestontop"]}]]],["p-5cda7027",[[1,"z-visually-hidden"]]],["p-222d4160",[[6,"z-chip",{"icon":[1],"type":[513],"interactiveIcon":[513,"interactive-icon"],"disabled":[516],"ariaLabel":[1,"aria-label"]}]]],["p-b705fba3",[[1,"z-info-reveal",{"icon":[1],"position":[513],"label":[1],"ariaLabel":[1,"aria-label"],"size":[513],"open":[32]},[[9,"resize","adjustPanelPosition"],[10,"keydown","handleEscapeKey"]],{"position":["adjustPanelPosition"],"open":["adjustPanelPosition"]}]]],["p-43aea424",[[1,"z-myz-list-item",{"text":[1],"link":[1],"linktarget":[1],"icon":[1],"listitemid":[1],"action":[1],"underlined":[4]}]]],["p-8ec302f8",[[1,"z-alert",{"type":[1]}]]],["p-b376a58c",[[1,"z-ghost-loading"]]],["p-96b5a35d",[[1,"z-dragdrop-area",{"dragAndDropLabel":[1,"drag-and-drop-label"],"dragging":[32]}],[1,"z-modal",{"modalid":[1],"modaltitle":[1],"modalsubtitle":[1],"closeButtonLabel":[1,"close-button-label"],"alertdialog":[4],"closable":[4],"scrollInside":[4,"scroll-inside"],"lockPageScroll":[4,"lock-page-scroll"],"open":[64],"close":[64]},[[0,"keydown","handleKeyDown"]]]]],["p-2a657ab1",[[1,"z-myz-card",{"faded":[4],"cardtype":[1],"ispressed":[4],"ishighlighted":[4]}],[1,"z-myz-card-body"],[1,"z-myz-card-cover",{"img":[1],"titolo":[1],"faded":[4],"defaultimg":[1]}],[1,"z-myz-card-header",{"titolo":[1],"faded":[4],"cardtype":[1],"allowTooltip":[32]}]]],["p-43f9569d",[[1,"z-popover",{"position":[513],"open":[1540],"bindTo":[1,"bind-to"],"showArrow":[516,"show-arrow"],"center":[516],"closable":[4],"currentPosition":[32]},[[8,"keyup","closePopoverWithKeyboard"],[18,"click","handleOutsideClick"]],{"position":["validatePosition"],"open":["onOpen"]}]]]]'),e)}));
|
|
1
|
+
import{p as e,H as a,b as t}from"./p-75c4a726.js";export{s as setNonce}from"./p-75c4a726.js";import{g as o}from"./p-e1255160.js";var i=()=>{{l(a.prototype)}const t=import.meta.url;const o={};if(t!==""){o.resourcesUrl=new URL(".",t).href}return e(o)};var l=e=>{const a=e.cloneNode;e.cloneNode=function(e){if(this.nodeName==="TEMPLATE"){return a.call(this,e)}const t=a.call(this,false);const o=this.childNodes;if(e){for(let e=0;e<o.length;e++){if(o[e].nodeType!==2){t.appendChild(o[e].cloneNode(true))}}}return t}};i().then((async e=>{await o();return t(JSON.parse('[["p-550a5e46",[[1,"z-app-header",{"stuck":[516],"enableOffcanvas":[1540,"enable-offcanvas"],"enableSearch":[516,"enable-search"],"searchPlaceholder":[1,"search-placeholder"],"searchString":[1025,"search-string"],"searchPageUrl":[1,"search-page-url"],"enableZLogo":[516,"enable-z-logo"],"drawerOpen":[1028,"drawer-open"],"_stuck":[32],"menuLength":[32],"isMobile":[32],"isTablet":[32]},[[5,"focusin","manageMenus"],[5,"click","manageMenus"],[1,"keydown","handleKeydown"]],{"_stuck":["onStuck"],"drawerOpen":["setMenuFloatingMode"],"stuck":["onStuckChange"]}],[1,"z-searchbar",{"htmlid":[513],"preventSubmit":[4,"prevent-submit"],"value":[1],"placeholder":[1],"autocomplete":[4],"autocompleteMinChars":[2,"autocomplete-min-chars"],"resultsCount":[2,"results-count"],"searchHelperLabel":[1,"search-helper-label"],"resultsItems":[1,"results-items"],"sortResultsItems":[4,"sort-results-items"],"showSearchButton":[4,"show-search-button"],"searchButtonIconOnly":[4,"search-button-icon-only"],"size":[1],"variant":[1],"searchString":[32],"currResultsCount":[32],"showResults":[32],"isMobile":[32],"selectedItem":[32]},[[4,"click","handleOutsideClick"]],{"resultsItems":["watchItems"],"resultsCount":["watchResultsCount"],"value":["watchValue"],"searchString":["watchSearchString"],"showResults":["watchShowResults"]}],[6,"z-offcanvas",{"variant":[513],"open":[1540],"transitiondirection":[513],"skipLoadAnimation":[4,"skip-load-animation"],"skipAnimation":[32]},[[2,"click","stopEvent"],[2,"focusin","stopEvent"]],{"variant":["handlePageOverflow"],"open":["onOpenChanged"]}],[6,"z-tag",{"icon":[1],"expandable":[4]}],[1,"z-list-group",{"size":[513],"dividerType":[513,"divider-type"],"dividerSize":[513,"divider-size"],"dividerColor":[513,"divider-color"],"listType":[513,"list-type"],"hasTreeItems":[4,"has-tree-items"]}],[1,"z-list",{"size":[513],"listType":[513,"list-type"],"role":[513]}],[1,"z-list-element",{"alignButton":[513,"align-button"],"clickable":[516],"dividerColor":[1,"divider-color"],"dividerType":[1,"divider-type"],"dividerSize":[1,"divider-size"],"expandable":[516],"expandableStyle":[1,"expandable-style"],"listElementId":[514,"list-element-id"],"size":[513],"color":[513],"disabled":[516],"listElementPosition":[513,"list-element-position"],"listType":[513,"list-type"],"hasTreeItems":[4,"has-tree-items"],"role":[513],"htmlTabindex":[2,"html-tabindex"],"showInnerContent":[32]},[[4,"accessibleFocus","accessibleFocusHandler"]]],[2,"z-input",{"htmlid":[1],"type":[1],"name":[1],"label":[1],"ariaLabel":[1,"aria-label"],"ariaExpanded":[1,"aria-expanded"],"ariaControls":[1,"aria-controls"],"ariaAutocomplete":[1,"aria-autocomplete"],"ariaActivedescendant":[1,"aria-activedescendant"],"value":[1025],"disabled":[516],"readonly":[4],"required":[4],"checked":[1028],"placeholder":[1],"htmltitle":[1],"status":[1],"message":[8],"labelPosition":[1,"label-position"],"autocomplete":[1],"role":[1],"hasclearicon":[4],"icon":[1],"min":[2],"minlength":[2],"max":[2],"maxlength":[2],"step":[2],"pattern":[1],"size":[513],"isTyping":[32],"passwordHidden":[32],"isChecked":[64]},[[4,"inputCheck","inputCheckListener"]]],[1,"z-input-message",{"message":[1],"status":[513],"disabled":[516],"statusRole":[32]},null,{"message":["onMessageChange"],"status":["onMessageChange"]}],[2,"z-divider",{"size":[1],"color":[1],"orientation":[1]}],[6,"z-button",{"ariaLabel":[513,"aria-label"],"role":[1],"htmlrole":[1],"href":[1],"target":[1],"htmlid":[1],"name":[1],"disabled":[516],"type":[1],"variant":[513],"icon":[1],"size":[513]}],[1,"z-icon",{"name":[1],"height":[8],"width":[8],"iconid":[1],"fill":[1]}]]],["p-37a34984",[[1,"z-app-header-deprecated",{"stuck":[516],"hero":[1],"overlay":[516],"flow":[513],"drawerOpen":[516,"drawer-open"],"enableSearch":[516,"enable-search"],"searchPlaceholder":[1,"search-placeholder"],"searchString":[1025,"search-string"],"searchPageUrl":[1,"search-page-url"],"_stuck":[32],"currentViewport":[32],"menuLength":[32]},[[9,"resize","evaluateViewport"]],{"_stuck":["onStuck"],"drawerOpen":["setMenuFloatingMode"],"stuck":["onStuckMode"]}]]],["p-e353d03a",[[2,"z-select",{"htmlid":[1],"items":[1],"name":[1],"label":[1],"ariaLabel":[1,"aria-label"],"disabled":[4],"readonly":[4],"placeholder":[1],"htmltitle":[1],"status":[1],"message":[8],"autocomplete":[4],"noresultslabel":[1],"hasGroupItems":[4,"has-group-items"],"hasTreeItems":[4,"has-tree-items"],"isfixed":[4],"resetItem":[1,"reset-item"],"size":[1],"isOpen":[32],"selectedItem":[32],"focusedItemId":[32],"searchString":[32],"flattenedList":[32],"getSelectedItem":[64],"getValue":[64],"setValue":[64]},[[0,"ariaDescendantFocus","getFocusedItemHandler"]],{"items":["watchItems"]}]]],["p-93af4721",[[1,"z-breadcrumb",{"pathStyle":[513,"path-style"],"homepageVariant":[1,"homepage-variant"],"maxNodesToShow":[2,"max-nodes-to-show"],"preventFollowUrl":[4,"prevent-follow-url"],"overflowMenuItemRows":[2,"overflow-menu-item-rows"],"truncateChar":[2,"truncate-char"],"viewPortWidth":[32],"hasOverflow":[32],"popoverEllipsisOpen":[32]},[[9,"resize","handleResize"]],{"maxNodesToShow":["handlePropChange"],"viewPortWidth":["handleResizeUp"]}]]],["p-c6b7c8e4",[[1,"z-combobox",{"inputid":[1],"items":[1],"label":[1],"disabled":[516],"hassearch":[4],"searchlabel":[1],"searchplaceholder":[1],"searchtitle":[1],"noresultslabel":[1],"isopen":[1028],"isfixed":[4],"closesearchtext":[1],"hascheckall":[4],"checkalltext":[1],"uncheckalltext":[1],"maxcheckableitems":[2],"hasgroupitems":[4],"size":[1],"searchValue":[32],"selectedCounter":[32],"renderItemsList":[32],"focusedItemId":[32],"checkboxes":[32]},null,{"items":["watchItems"],"searchValue":["watchSearchValue"],"checkboxes":["watchCheckboxes"]}]]],["p-d60b9285",[[1,"z-myz-card-dictionary",{"name":[1],"cover":[1],"disabled":[4],"flipped":[1028],"flipbuttonlabel":[1],"hideinfobtn":[4]},[[0,"flipCard","handleFlipCard"]]]]],["p-2726182b",[[6,"z-file-upload",{"type":[513],"buttonVariant":[1,"button-variant"],"acceptedFormat":[1,"accepted-format"],"fileMaxSize":[2,"file-max-size"],"mainTitle":[1,"main-title"],"description":[1],"uploadBtnLabel":[1,"upload-btn-label"],"dragAndDropLabel":[1,"drag-and-drop-label"],"allowedFilesMessage":[1,"allowed-files-message"],"uploadClickableMessage":[1,"upload-clickable-message"],"uploadMessage":[1,"upload-message"],"errorModalTitle":[1,"error-modal-title"],"errorModalMessage":[1,"error-modal-message"],"uploadedFilesLabel":[1,"uploaded-files-label"],"hasFileSection":[4,"has-file-section"],"inputName":[1,"input-name"],"showErrors":[4,"show-errors"],"_type":[32],"files":[32],"invalidFiles":[32],"input":[32],"getFiles":[64],"removeFile":[64]},[[0,"removeFile","onFileRemoved"],[0,"fileDropped","fileDroppedListener"]]]]],["p-f7d7cf44",[[0,"z-pagination",{"label":[1],"navArrows":[4,"nav-arrows"],"totalPages":[2,"total-pages"],"skip":[2],"edges":[4],"split":[2],"visiblePages":[2,"visible-pages"],"currentPage":[1026,"current-page"],"goToPage":[4,"go-to-page"],"_visiblePages":[32],"isMobile":[32],"goToPageValue":[32]},[[9,"resize","onResize"]],{"_visiblePages":["setPagesContainerWidth"],"visiblePages":["setVisiblePages"],"currentPage":["onPageChanged"],"split":["onSplitChanged"]}]]],["p-49f99fa3",[[1,"z-tree-list",{"items":[1],"htmlAriaLabelledby":[513,"html-aria-labelledby"],"htmlSectionTitle":[513,"html-section-title"]},null,{"items":["watchItems"]}]]],["p-996446e2",[[1,"z-carousel",{"isLoading":[4,"is-loading"],"label":[1],"single":[516],"arrowsPosition":[513,"arrows-position"],"progressMode":[1,"progress-mode"],"fixedArrows":[516,"fixed-arrows"],"ghostLoadingHeight":[2,"ghost-loading-height"],"infinite":[4],"current":[32],"items":[32],"highlightedIndicator":[32],"canNavigatePrev":[32],"canNavigateNext":[32]},null,{"current":["onIndexChange"],"single":["onSingleModeChange"],"infinite":["onInfiniteModeChange"]}]]],["p-6a48d114",[[4,"z-date-picker",{"datePickerId":[1,"date-picker-id"],"ariaLabel":[1,"aria-label"],"label":[1],"mode":[1],"name":[1],"value":[1],"flatpickrPosition":[32],"inputError":[32]},[[2,"keydown","handleKeyDown"]],{"mode":["setupPickers"]}]]],["p-604602a8",[[2,"z-file",{"fileNumber":[2,"file-number"],"fileName":[1,"file-name"],"allowPopover":[32],"popoverVisible":[32]},[[1,"mouseover","onMouseOver"],[1,"mouseleave","onMouseLeave"],[0,"interactiveIconClick","onInteractiveIconClick"]]]]],["p-0bf8d989",[[0,"z-range-picker",{"rangePickerId":[1,"range-picker-id"],"firstAriaLabel":[1,"first-aria-label"],"firstLabel":[1,"first-label"],"secondAriaLabel":[1,"second-aria-label"],"secondLabel":[1,"second-label"],"mode":[1],"firstPickerReadOnly":[4,"first-picker-read-only"],"lastPickerReadOnly":[4,"last-picker-read-only"],"firstPickerPlaceholder":[1,"first-picker-placeholder"],"lastPickerPlaceholder":[1,"last-picker-placeholder"],"flatpickrPosition":[32],"activeInput":[32],"firstInputError":[32],"lastInputError":[32]},[[18,"click","handleClick"],[18,"keyup","handleKeyDown"]],{"firstPickerReadOnly":["setupFirstPickersReadOnly"],"lastPickerReadOnly":["setupLastPickersReadOnly"],"mode":["setupPickers"]}]]],["p-cf837902",[[1,"z-td",{"colspan":[2],"sticky":[516],"showMenu":[513,"show-menu"],"popoverPosition":[1,"popover-position"],"isMenuOpen":[32]},null,{"colspan":["updateColspan"]}]]],["p-0bd2b21e",[[1,"z-th",{"colspan":[2],"showMenu":[513,"show-menu"],"showSorting":[513,"show-sorting"],"sticky":[516],"sortDirection":[1025,"sort-direction"],"sorted":[1540],"popoverPosition":[1,"popover-position"],"isMenuOpen":[32]},null,{"colspan":["updateColspan"]}]]],["p-1ef90472",[[4,"z-anchor-navigation",{"hideUnselected":[516,"hide-unselected"],"autoCurrent":[4,"auto-current"],"collapsedLabel":[1,"collapsed-label"],"collapsed":[32]}]]],["p-a3860bef",[[1,"z-book-card",{"variant":[513],"cover":[1],"operaTitle":[1,"opera-title"],"volumeTitle":[1,"volume-title"],"authors":[1],"isbn":[1],"isbnLabel":[1,"isbn-label"],"year":[1],"ebookUrl":[1,"ebook-url"],"fallbackCover":[1,"fallback-cover"],"titleHtmlTag":[1,"title-html-tag"]}]]],["p-b0856b23",[[1,"z-book-card-app",{"logo":[1],"name":[1],"link":[1],"laz":[4],"info":[1]}]]],["p-6598aee0",[[1,"z-myz-card-alert",{"iconname":[1],"contenttext":[1],"actiontext":[1],"type":[1]}]]],["p-8ca5851b",[[1,"z-myz-card-info",{"data":[1],"htmltabindex":[2],"hiddenContent":[32],"tooltip":[32]}]]],["p-a2217ed8",[[1,"z-myz-list",{"inputrawdata":[1],"list":[1040]},null,{"inputrawdata":["oninputrawdataChange"]}]]],["p-d9592fa6",[[1,"z-otp",{"inputNum":[2,"input-num"],"status":[1],"message":[1]}]]],["p-c1d89e00",[[1,"z-accordion",{"label":[1],"icon":[1],"size":[513],"isDisabled":[516,"is-disabled"],"open":[1540],"highlight":[516],"variant":[513],"shadow":[516]},null,{"isDisabled":["onDisabledChange"]}]]],["p-d8d7db0e",[[1,"z-book-card-deprecated",{"variant":[1],"cover":[1],"operaTitle":[1,"opera-title"],"volumeTitle":[1,"volume-title"],"authors":[1],"isbn":[1],"isbnLabel":[1,"isbn-label"],"ribbon":[1],"ribbonIcon":[1,"ribbon-icon"],"ribbonInteractive":[4,"ribbon-interactive"],"borderless":[4],"fallbackCover":[1,"fallback-cover"],"operaTitleTag":[1,"opera-title-tag"],"isMobile":[32],"hasResources":[32],"showResources":[32]}]]],["p-209db20e",[[1,"z-button-sort",{"buttonid":[1],"label":[1],"desclabel":[1],"counter":[2],"sortlabelasc":[1],"sortlabeldesc":[1],"isselected":[1028],"sortasc":[1028],"allowTooltip":[32]}]]],["p-f73d8a87",[[1,"z-card",{"variant":[513],"coverIcon":[1,"cover-icon"],"showShadow":[516,"show-shadow"],"clickable":[516],"hasCoverImage":[32]}]]],["p-40fc2770",[[1,"z-info-box",{"boxid":[1],"isclosable":[4]}]]],["p-611e6579",[[1,"z-menu",{"active":[516],"floating":[516],"open":[1540],"verticalContext":[516,"vertical-context"],"htmlTabindex":[2,"html-tabindex"],"hasHeader":[32],"hasContent":[32],"setFocus":[64],"focusLastItem":[64]},[[4,"click","onItemClick"],[0,"keydown","onKeyDown"]],{"open":["onOpenChanged"],"htmlTabindex":["setLabelA11yAttrs"]}]]],["p-5a24e268",[[1,"z-menu-deprecated",{"active":[516],"floating":[516],"open":[1540],"verticalContext":[516,"vertical-context"],"hasHeader":[32],"hasContent":[32]},[[4,"click","handleClick"]],{"open":["onOpenChanged"]}]]],["p-6949d27d",[[1,"z-menu-section",{"active":[516],"htmlTabindex":[2,"html-tabindex"],"open":[1028],"hasItems":[32],"items":[32],"focusLastItem":[64],"setFocus":[64]},[[0,"keydown","onItemsKeydown"]],{"open":["onOpenChange"],"htmlTabindex":["onTabindexChange"]}]]],["p-816fd6dc",[[1,"z-menu-section-deprecated",{"active":[516],"open":[32],"hasContent":[32]},[[4,"click","handleClick"]]]]],["p-e853ccde",[[1,"z-myz-card-icon",{"icon":[1],"isdisabled":[4],"ariaLabel":[1,"aria-label"]}]]],["p-c8eef88d",[[4,"z-navigation-tabs",{"ariaLabel":[1,"aria-label"],"orientation":[513],"size":[513],"selectedTab":[1026,"selected-tab"],"canNavigate":[32],"canNavigatePrev":[32],"canNavigateNext":[32]},[[0,"click","handleTabClick"],[0,"focusin","onTabFocusIn"],[0,"keydown","navigateThroughTabs"],[0,"focusout","onTabFocusOut"]],{"canNavigate":["checkScrollEnabled"],"selectedTab":["onTabSelected"]}]]],["p-684c8fcb",[[1,"z-notification",{"contenticonname":[1],"actiontext":[1],"type":[513],"showclose":[4],"showshadow":[516],"sticky":[516]}]]],["p-3cb9a131",[[6,"z-panel-elem",{"elemid":[1],"imgurl":[1],"imgalt":[1],"linkicon":[1],"linklabel":[1],"url":[1],"target":[1],"isdisabled":[4],"descrSlotName":[1,"descr-slot-name"]}]]],["p-f609b40e",[[1,"z-section-title",{"dividerPosition":[1,"divider-position"],"uppercase":[516]}]]],["p-3d8cdd34",[[1,"z-slideshow",{"slideshowid":[1],"data":[1],"device":[32],"currentSlide":[32]},null,{"data":["watchData"]}]]],["p-07da09b0",[[1,"z-stepper-item",{"index":[2],"href":[1],"pressed":[4],"checked":[4],"disabled":[4]}]]],["p-1dd6dff4",[[1,"z-toast-notification",{"heading":[1],"message":[1],"closebutton":[4],"autoclose":[2],"pauseonfocusloss":[4],"type":[1],"isdraggable":[4],"draggablepercentage":[2],"transition":[1],"percentage":[32]},null,{"isdraggable":["watchPropIsdraggable"],"autoclose":["watchPropAutoclose"],"pauseonfocusloss":["watchPropPauseonfocusloss"]}]]],["p-ee7185cf",[[1,"z-toggle-button",{"label":[1],"isdisabled":[4],"avoidclick":[4],"opened":[1028],"ariaLabel":[1,"aria-label"]}]]],["p-6b679226",[[6,"z-toggle-switch",{"disabled":[516],"labelPosition":[513,"label-position"],"checked":[1028],"htmlid":[1]}]]],["p-e4627f9a",[[1,"z-tooltip",{"position":[513],"dark":[516],"open":[1540],"bindTo":[1,"bind-to"],"closable":[4]},[[0,"openChange","onPopoverOpenChange"]]]]],["p-83e3b2ff",[[1,"z-tr",{"expandable":[516],"expanded":[32],"expandableContentId":[32]},[[0,"colspanchange","updateColumns"]],{"expandable":["updateColumns"]}]]],["p-e8bab6ad",[[4,"z-aria-alert",{"mode":[1]}]]],["p-564ddab3",[[1,"z-avatar",{"size":[1],"text":[1],"textColor":[1,"text-color"],"backgroundColor":[1,"background-color"],"image":[1025]}]]],["p-430916e9",[[1,"z-cover-hero",{"variant":[513],"contentPosition":[513,"content-position"],"preserveAspectRatio":[516,"preserve-aspect-ratio"]},[[2,"load","onImgLoad"]]]]],["p-fed6d4ac",[[1,"z-logo",{"width":[2],"height":[2],"imageAlt":[1,"image-alt"],"link":[1],"targetBlank":[4,"target-blank"],"mobileLogo":[4,"mobile-logo"]}]]],["p-506d2cdb",[[1,"z-myz-card-footer",{"titolo":[1],"autori":[1],"isbn":[1],"faded":[4],"cardtype":[1],"opened":[4],"customContent":[4,"custom-content"],"isOpen":[32],"allowTooltipAuthors":[32]},[[0,"toggleClick","handleToggle"]]]]],["p-a9d05a92",[[1,"z-myz-card-footer-sections"]]],["p-a1d45a8b",[[1,"z-myz-card-list",{"listdata":[1]}]]],["p-b0f758e7",[[2,"z-skip-to-content",{"variant":[513],"links":[1025],"visible":[32],"visibleLink":[32]},[[4,"focusout","handleFocusOutSkipToContent"],[4,"focusin","handleFocusSkipToContent"]]]]],["p-dc46730d",[[1,"z-stepper"]]],["p-fd7c7885",[[1,"z-table",{"bordered":[516],"expandable":[32]}]]],["p-237fcaa9",[[1,"z-tbody"]]],["p-39a968af",[[1,"z-tfoot",{"sticky":[516]}]]],["p-a22b7aa0",[[1,"z-thead",{"sticky":[516]}]]],["p-b1561f18",[[1,"z-toast-notification-list",{"position":[513],"newestontop":[4]},null,{"newestontop":["watchPropNewestontop"]}]]],["p-5cda7027",[[1,"z-visually-hidden"]]],["p-222d4160",[[6,"z-chip",{"icon":[1],"type":[513],"interactiveIcon":[513,"interactive-icon"],"disabled":[516],"ariaLabel":[1,"aria-label"]}]]],["p-b705fba3",[[1,"z-info-reveal",{"icon":[1],"position":[513],"label":[1],"ariaLabel":[1,"aria-label"],"size":[513],"open":[32]},[[9,"resize","adjustPanelPosition"],[10,"keydown","handleEscapeKey"]],{"position":["adjustPanelPosition"],"open":["adjustPanelPosition"]}]]],["p-43aea424",[[1,"z-myz-list-item",{"text":[1],"link":[1],"linktarget":[1],"icon":[1],"listitemid":[1],"action":[1],"underlined":[4]}]]],["p-8ec302f8",[[1,"z-alert",{"type":[1]}]]],["p-b376a58c",[[1,"z-ghost-loading"]]],["p-96b5a35d",[[1,"z-dragdrop-area",{"dragAndDropLabel":[1,"drag-and-drop-label"],"dragging":[32]}],[1,"z-modal",{"modalid":[1],"modaltitle":[1],"modalsubtitle":[1],"closeButtonLabel":[1,"close-button-label"],"alertdialog":[4],"closable":[4],"scrollInside":[4,"scroll-inside"],"lockPageScroll":[4,"lock-page-scroll"],"open":[64],"close":[64]},[[0,"keydown","handleKeyDown"]]]]],["p-2a657ab1",[[1,"z-myz-card",{"faded":[4],"cardtype":[1],"ispressed":[4],"ishighlighted":[4]}],[1,"z-myz-card-body"],[1,"z-myz-card-cover",{"img":[1],"titolo":[1],"faded":[4],"defaultimg":[1]}],[1,"z-myz-card-header",{"titolo":[1],"faded":[4],"cardtype":[1],"allowTooltip":[32]}]]],["p-43f9569d",[[1,"z-popover",{"position":[513],"open":[1540],"bindTo":[1,"bind-to"],"showArrow":[516,"show-arrow"],"center":[516],"closable":[4],"currentPosition":[32]},[[8,"keyup","closePopoverWithKeyboard"],[18,"click","handleOutsideClick"]],{"position":["validatePosition"],"open":["onOpen"]}]]]]'),e)}));
|
|
2
2
|
//# sourceMappingURL=web-components-library.esm.js.map
|
package/www/index.html
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
<!doctype html><html dir="ltr" lang="en"><head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=5.0"> <title>Albe test application</title> <link rel="stylesheet" type="text/css" href="/build/p-
|
|
1
|
+
<!doctype html><html dir="ltr" lang="en"><head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=5.0"> <title>Albe test application</title> <link rel="stylesheet" type="text/css" href="/build/p-dda8d321.css"> <link rel="modulepreload" href="/build/p-84f32d71.js"><link rel="modulepreload" href="/build/p-5145a606.js"><link rel="modulepreload" href="/build/p-75c4a726.js"><link rel="modulepreload" href="/build/p-dfcf9936.js"><link rel="modulepreload" href="/build/p-f3145212.js"><script type="module" src="/build/p-84f32d71.js" data-stencil data-resources-url="/build/" data-stencil-namespace="web-components-library"></script> <script nomodule="" src="/build/web-components-library.js" data-stencil></script> </head> <body> <header> <z-app-header> <h1 slot="title">Albe test app</h1> </z-app-header> </header> <main></main> <style>body {
|
|
2
2
|
margin: 0;
|
|
3
3
|
}</style> </body></html>
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{r as t,c as i,h as a,a as n,g as o}from"./p-75c4a726.js";import{I as s}from"./p-dfcf9936.js";const e="z-pagination{--z-pagination--page-button-width:64px;--z-pagination--pages-container-max-width:100%;display:flex;max-width:100%;flex-flow:column wrap;font-family:var(--font-family-sans);font-weight:var(--font-rg);gap:calc(var(--space-unit) * 2) calc(var(--space-unit) * 4)}z-pagination,z-pagination *{box-sizing:border-box}z-pagination button{height:100%}z-pagination z-icon{fill:var(--color-primary01-icon)}z-pagination *:disabled z-icon{fill:var(--color-disabled03)}z-pagination .page-label{margin-right:calc(var(--space-unit) * 3);color:var(--color-default-text)}z-pagination .pagination-bar{display:flex;max-width:100%;height:48px;align-items:center}z-pagination .pagination-bar button{display:flex;align-items:center;justify-content:center;border:none;margin:0;background-color:var(--color-background);color:var(--color-primary01);cursor:pointer;font-family:inherit;font-weight:inherit;transition:background-color 0.15s ease-out,\n color 0.15s ease-out,\n border-bottom-color 0.15s ease-out,\n font-size 0.15s ease-in-out,\n font-weight 0.15s ease-in-out}z-pagination .pagination-bar button:focus-visible{background-color:var(--color-surface01);outline:none}z-pagination .pagination-bar .pagination-button{padding:calc(var(--space-unit) * 2);font-weight:var(--font-sb);text-transform:uppercase;white-space:nowrap}z-pagination .pagination-bar .navigation-button{padding:calc(var(--space-unit) * 2) calc(var(--space-unit) * 1.5)}z-pagination .pagination-bar .pagination-button:disabled,z-pagination .pagination-bar .navigation-button:disabled{color:var(--color-disabled03);cursor:default;fill:var(--color-disabled03);pointer-events:none}z-pagination .pagination-bar .page-button,z-pagination .pagination-bar .ellipsis-button{width:var(--z-pagination--page-button-width)}z-pagination .pages-container{position:relative;display:inline-flex;max-width:100%;height:100%;overflow-x:auto;scroll-behavior:smooth;scroll-snap-align:center;scrollbar-width:none}z-pagination .pages-container::-webkit-scrollbar{display:none}z-pagination .pages-chunk{display:flex;scroll-snap-align:center}z-pagination .pagination-bar .page-button{padding-top:var(--border-size-large) solid transparent;border-bottom:var(--border-size-large) solid transparent;font-size:var(--font-size-2);font-weight:var(--font-sb)}z-pagination .pagination-bar .page-button[data-current]{border-bottom-color:var(--color-primary01);font-size:var(--font-size-7)}z-pagination .go-to-page{display:flex;flex-direction:column;row-gap:var(--space-unit)}z-pagination .go-to-page .label{color:var(--color-default-text);text-transform:uppercase}z-pagination .go-to-page .inputs{display:flex;column-gap:var(--space-unit)}z-pagination .go-to-page .inputs z-input{width:calc(var(--space-unit) * 11)}z-pagination .go-to-page .inputs z-input input,z-pagination .mobile-go-to-page z-input input{padding:0 calc(var(--space-unit) * 1.5) !important;appearance:none}z-pagination .mobile-go-to-page{display:flex;height:100%;flex:1 auto;align-items:center;justify-content:center;background-color:var(--color-surface02)}z-pagination .mobile-go-to-page z-input{width:var(--z-pagination--page-button-width);margin-right:var(--space-unit)}z-pagination .mobile-go-to-page z-input input{text-align:center}z-pagination .mobile-go-to-page z-input input::-webkit-outer-spin-button,z-pagination .mobile-go-to-page z-input input::-webkit-inner-spin-button{appearance:none}z-pagination .mobile-go-to-page>span{font-size:var(--font-size-2)}@media (hover: hover){z-pagination .pagination-bar button:hover{background-color:var(--color-surface01)}z-pagination .pagination-bar .page-button:hover{border-bottom-color:var(--color-hover-primary);color:var(--color-hover-primary)}}@media (min-width: 768px){z-pagination{--z-pagination--page-button-width:88px;flex-direction:row;align-items:flex-end}z-pagination .pages-container{max-width:var(--z-pagination--pages-container-max-width)}}";const r=e;const l=class{constructor(a){t(this,a);this.pageChanged=i(this,"pageChanged",7);this.label=undefined;this.navArrows=true;this.totalPages=undefined;this.skip=0;this.edges=false;this.split=undefined;this.visiblePages=undefined;this.currentPage=1;this.goToPage=undefined;this._visiblePages=this.visiblePages;this.isMobile=false;this.goToPageValue=null}setPagesContainerWidth(){if(!this._visiblePages||this.split){this.host.style.setProperty("--z-pagination--pages-container-max-width","100%");return}const t=window.getComputedStyle(this.host);const i=t.getPropertyValue("--z-pagination--page-button-width");this.host.style.setProperty("--z-pagination--pages-container-max-width",`calc(${i} * ${this._visiblePages})`)}setVisiblePages(){this._visiblePages=Math.min(this.visiblePages||this.totalPages,this.totalPages)}onPageChanged(){this.pageChanged.emit(this.currentPage);this.scrollToPage()}onSplitChanged(){if(this.split){this.edges=false}}onResize(){this.setMobile()}setMobile(){const t="screen and (max-width: 767px)";this.isMobile=window.matchMedia(t).matches}getPagesChunks(){const t=Array.from({length:this.totalPages},((t,i)=>i+1));const i=[];const a=Math.ceil(t.length/this._visiblePages);for(let n=0;n<a;n++){i.push(t.slice(n*this._visiblePages,(n+1)*this._visiblePages))}return i}scrollToPage(){const t=this.host.querySelector(`[data-page="${this.currentPage}"]`);if(!t){return}t.scrollIntoView({behavior:"smooth",block:"nearest",inline:"center"})}selectPage(t){this.currentPage=Math.min(Math.max(t,1),this.totalPages)}renderPage(t){return a("button",{class:"page-button",type:"button","aria-current":this.currentPage===t?"page":"false",title:`Vai alla pagina ${t}`,"data-page":t,"data-current":this.currentPage===t,onClick:()=>this.selectPage(t)},t)}renderEllipsisButton(t){return a("button",{class:"ellipsis-button",type:"button",title:`Vai alla pagina ${t}`,onClick:()=>this.selectPage(t)},"…")}renderPages(){const t=this.getPagesChunks();if(t.length<=0){return}return t.map((t=>a("div",{class:"pages-chunk"},t.map((t=>this.renderPage(t))))))}renderSplitPages(){if(this.totalPages<=this.split*2+5){return Array.from({length:this.totalPages},((t,i)=>this.renderPage(i+1)))}if(this.currentPage<=this.split*2+2){return[...Array.from({length:this.split*2+3},((t,i)=>this.renderPage(i+1))),this.renderEllipsisButton(this.split*2+4),this.renderPage(this.totalPages)]}if(this.currentPage>this.split*2+2&&this.currentPage<this.totalPages-this.split*2-1){return[this.renderPage(1),this.renderEllipsisButton(this.currentPage-this.split-1),...Array.from({length:this.split*2+1},((t,i)=>this.renderPage(this.currentPage-this.split+i))),this.renderEllipsisButton(this.currentPage+this.split+1),this.renderPage(this.totalPages)]}return[this.renderPage(1),this.renderEllipsisButton(this.totalPages-this.split*2-3),...Array.from({length:this.split*2+3},((t,i)=>this.renderPage(this.totalPages-this.split*2-2+i)))]}renderBackButton(){return a("button",{class:"navigation-button",type:"button",title:"Vai alla pagina precedente",disabled:this.currentPage===1,onClick:()=>this.selectPage(this.currentPage-1)},a("z-icon",{name:"chevron-left"}))}renderForwardButton(){return a("button",{class:"navigation-button",type:"button",title:"Vai alla prossima pagina",disabled:this.currentPage===this.totalPages,onClick:()=>this.selectPage(this.currentPage+1)},a("z-icon",{name:"chevron-right"}))}renderMobile(){const t=this.getPagesChunks();return[this.label&&a("span",{class:"page-label body-1-sb"},this.label),a("div",{class:"pagination-bar"},this.renderBackButton(),!this.goToPage&&a("div",{class:"pages-container",role:"navigation",tabIndex:-1},t.length>0&&t.map((t=>a("div",{class:"pages-chunk"},t.map((t=>this.renderPage(t))))))),this.goToPage&&a("form",{class:"mobile-go-to-page",onSubmit:t=>{t.preventDefault();this.selectPage(this.goToPageValue)}},a("z-input",{class:"go-to-page-input",type:s.NUMBER,min:1,max:this.totalPages,message:false,onInput:t=>{this.goToPageValue=t.target.value},placeholder:this.currentPage.toString(),hasclearicon:false}),a("span",null,`/${this.totalPages}`)),this.renderForwardButton())]}componentDidLoad(){this.setVisiblePages()}componentDidRender(){if(this.split){this.edges=false}this.setPagesContainerWidth();this.setMobile()}render(){if(this.isMobile){return a(n,null,this.renderMobile())}return a(n,null,a("div",{class:"pagination-bar"},this.label&&a("span",{class:"page-label body-1-sb"},this.label),this.edges&&a("button",{class:"pagination-button",type:"button",title:"Vai alla pagina 1",disabled:this.currentPage===1,onClick:()=>this.selectPage(1)},"Pagina 1"),this.skip<this.totalPages&&this.skip>1&&a("button",{class:"pagination-button",type:"button",title:`Vai alla pagina ${this.currentPage-this.skip}`,disabled:this.currentPage<=this.skip,onClick:()=>this.selectPage(this.currentPage-this.skip)},"-",this.skip),this.navArrows&&this.renderBackButton(),a("div",{class:"pages-container",role:"navigation",tabIndex:-1},this.split?this.renderSplitPages():this.renderPages()),this.navArrows&&this.renderForwardButton(),this.skip<this.totalPages&&this.skip>1&&a("button",{class:"pagination-button",type:"button",title:`Vai alla pagina ${this.currentPage+this.skip}`,disabled:this.currentPage>this.totalPages-this.skip,onClick:()=>this.selectPage(this.currentPage+this.skip)},"+",this.skip),this.edges&&a("button",{class:"pagination-button",type:"button",title:`Vai alla pagina ${this.totalPages}`,disabled:this.currentPage===this.totalPages,onClick:()=>this.selectPage(this.totalPages)},"Pagina ",this.totalPages)),this.goToPage&&a("div",{class:"go-to-page"},a("span",{class:"label body-5-sb"},"Vai a pagina:"),a("div",{class:"inputs"},a("z-input",{class:"go-to-page-input",type:s.NUMBER,min:1,max:this.totalPages,message:false,placeholder:"2",hasclearicon:false,onInput:t=>{this.goToPageValue=t.target.value},onKeyDown:t=>t.key==="Enter"&&this.selectPage(this.goToPageValue)}),a("z-button",{disabled:!this.goToPageValue,title:"Vai alla pagina inserita",onClick:()=>this.selectPage(this.goToPageValue)},"vai"))))}get host(){return o(this)}static get watchers(){return{_visiblePages:["setPagesContainerWidth"],visiblePages:["setVisiblePages"],currentPage:["onPageChanged"],split:["onSplitChanged"]}}};l.style=r;export{l as z_pagination};
|
|
2
|
-
//# sourceMappingURL=p-7df942c9.entry.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["stylesCss","ZPaginationStyle0","ZPagination","this","visiblePages","setPagesContainerWidth","_visiblePages","split","host","style","setProperty","pagesContainerStyle","window","getComputedStyle","pageButtonWidth","getPropertyValue","setVisiblePages","Math","min","totalPages","onPageChanged","pageChanged","emit","currentPage","scrollToPage","onSplitChanged","edges","onResize","setMobile","mobileMediaQuery","isMobile","matchMedia","matches","getPagesChunks","pages","Array","from","length","_","i","chunks","chunksCount","ceil","index","push","slice","pageBtn","querySelector","scrollIntoView","behavior","block","inline","selectPage","page","max","renderPage","h","class","type","title","onClick","renderEllipsisButton","renderPages","pagesChunks","map","chunk","renderSplitPages","renderBackButton","disabled","name","renderForwardButton","renderMobile","label","goToPage","role","tabIndex","onSubmit","ev","preventDefault","goToPageValue","InputType","NUMBER","message","onInput","target","value","placeholder","toString","hasclearicon","componentDidLoad","componentDidRender","render","Host","skip","navArrows","onKeyDown","key"],"sources":["src/components/z-pagination/styles.css?tag=z-pagination","src/components/z-pagination/index.tsx"],"sourcesContent":["z-pagination {\n --z-pagination--page-button-width: 64px;\n --z-pagination--pages-container-max-width: 100%;\n\n display: flex;\n max-width: 100%;\n flex-flow: column wrap;\n font-family: var(--font-family-sans);\n font-weight: var(--font-rg);\n gap: calc(var(--space-unit) * 2) calc(var(--space-unit) * 4);\n}\n\nz-pagination,\nz-pagination * {\n box-sizing: border-box;\n}\n\nz-pagination button {\n height: 100%;\n}\n\nz-pagination z-icon {\n fill: var(--color-primary01-icon);\n}\n\nz-pagination *:disabled z-icon {\n fill: var(--color-disabled03);\n}\n\nz-pagination .page-label {\n margin-right: calc(var(--space-unit) * 3);\n color: var(--color-default-text);\n}\n\nz-pagination .pagination-bar {\n display: flex;\n max-width: 100%;\n height: 48px;\n align-items: center;\n}\n\nz-pagination .pagination-bar button {\n display: flex;\n align-items: center;\n justify-content: center;\n border: none;\n margin: 0;\n background-color: var(--color-background);\n color: var(--color-primary01);\n cursor: pointer;\n font-family: inherit;\n font-weight: inherit;\n transition:\n background-color 0.15s ease-out,\n color 0.15s ease-out,\n border-bottom-color 0.15s ease-out,\n font-size 0.15s ease-in-out,\n font-weight 0.15s ease-in-out;\n}\n\nz-pagination .pagination-bar button:focus-visible {\n background-color: var(--color-surface01);\n outline: none;\n}\n\nz-pagination .pagination-bar .pagination-button {\n padding: calc(var(--space-unit) * 2);\n font-weight: var(--font-sb);\n text-transform: uppercase;\n white-space: nowrap;\n}\n\nz-pagination .pagination-bar .navigation-button {\n padding: calc(var(--space-unit) * 2) calc(var(--space-unit) * 1.5);\n}\n\nz-pagination .pagination-bar .pagination-button:disabled,\nz-pagination .pagination-bar .navigation-button:disabled {\n color: var(--color-disabled03);\n cursor: default;\n fill: var(--color-disabled03);\n pointer-events: none;\n}\n\nz-pagination .pagination-bar .page-button,\nz-pagination .pagination-bar .ellipsis-button {\n width: var(--z-pagination--page-button-width);\n}\n\nz-pagination .pages-container {\n position: relative;\n display: inline-flex;\n max-width: 100%;\n height: 100%;\n overflow-x: auto;\n scroll-behavior: smooth;\n scroll-snap-align: center;\n\n /* hide scrollbar in Firefox */\n scrollbar-width: none;\n}\n\nz-pagination .pages-container::-webkit-scrollbar {\n display: none;\n}\n\nz-pagination .pages-chunk {\n display: flex;\n scroll-snap-align: center;\n}\n\nz-pagination .pagination-bar .page-button {\n padding-top: var(--border-size-large) solid transparent;\n border-bottom: var(--border-size-large) solid transparent;\n font-size: var(--font-size-2);\n font-weight: var(--font-sb);\n}\n\nz-pagination .pagination-bar .page-button[data-current] {\n border-bottom-color: var(--color-primary01);\n font-size: var(--font-size-7);\n}\n\nz-pagination .go-to-page {\n display: flex;\n flex-direction: column;\n row-gap: var(--space-unit);\n}\n\nz-pagination .go-to-page .label {\n color: var(--color-default-text);\n text-transform: uppercase;\n}\n\nz-pagination .go-to-page .inputs {\n display: flex;\n column-gap: var(--space-unit);\n}\n\nz-pagination .go-to-page .inputs z-input {\n width: calc(var(--space-unit) * 11);\n}\n\nz-pagination .go-to-page .inputs z-input input,\nz-pagination .mobile-go-to-page z-input input {\n padding: 0 calc(var(--space-unit) * 1.5) !important;\n appearance: none;\n}\n\nz-pagination .mobile-go-to-page {\n display: flex;\n height: 100%;\n flex: 1 auto;\n align-items: center;\n justify-content: center;\n background-color: var(--color-surface02);\n}\n\nz-pagination .mobile-go-to-page z-input {\n width: var(--z-pagination--page-button-width);\n margin-right: var(--space-unit);\n}\n\nz-pagination .mobile-go-to-page z-input input {\n text-align: center;\n}\n\nz-pagination .mobile-go-to-page z-input input::-webkit-outer-spin-button,\nz-pagination .mobile-go-to-page z-input input::-webkit-inner-spin-button {\n appearance: none;\n}\n\nz-pagination .mobile-go-to-page > span {\n font-size: var(--font-size-2);\n}\n\n@media (hover: hover) {\n z-pagination .pagination-bar button:hover {\n background-color: var(--color-surface01);\n }\n\n z-pagination .pagination-bar .page-button:hover {\n border-bottom-color: var(--color-hover-primary);\n color: var(--color-hover-primary);\n }\n}\n\n@media (min-width: 768px) {\n z-pagination {\n --z-pagination--page-button-width: 88px;\n\n flex-direction: row;\n align-items: flex-end;\n }\n\n z-pagination .pages-container {\n max-width: var(--z-pagination--pages-container-max-width);\n }\n}\n","import {Component, Element, Event, EventEmitter, Host, Listen, Prop, State, Watch, h} from \"@stencil/core\";\nimport {InputType} from \"../../beans\";\n\n/**\n * Pagination bar component.\n */\n@Component({\n tag: \"z-pagination\",\n styleUrl: \"styles.css\",\n})\nexport class ZPagination {\n @Element() host: HTMLZPaginationElement;\n\n /** Pagination label placed before the bar. */\n @Prop()\n label?: string;\n\n /** Enable navigation arrows. */\n @Prop()\n navArrows = true;\n\n /** Total number of pages. Required. */\n @Prop()\n totalPages!: number;\n\n /** Number of pages to skip. */\n @Prop()\n skip = 0;\n\n /** Enable buttons to go to the first and last pages. */\n @Prop()\n edges = false;\n\n /** Number of pages to show left/right of the current, before showing \"load more\" symbol (…). */\n @Prop()\n split?: number;\n\n /** Number of pages to show at a time. If not set, all pages will be shown. */\n @Prop()\n visiblePages?: number;\n\n /** Current page. */\n @Prop({mutable: true})\n currentPage = 1;\n\n /** Whether to show \"go to page\" feature. */\n @Prop()\n goToPage: boolean;\n\n /**\n * Internal visible pages variable.\n * Needed to better handle conflicting props like `visiblePages` and `split`.\n * This state will change based on props values and validation,\n * keeping original `visiblePages` value intact.\n */\n @State()\n private _visiblePages = this.visiblePages;\n\n /** Used to hides/change some functionalities on smaller screen sizes */\n @State()\n isMobile = false;\n\n /** Value of the go to page input */\n @State()\n goToPageValue = null;\n\n /** Event emitted when the current page has changed. */\n @Event()\n pageChanged: EventEmitter;\n\n /**\n * Set the max width of the pages container.\n */\n @Watch(\"_visiblePages\")\n setPagesContainerWidth(): void {\n if (!this._visiblePages || this.split) {\n this.host.style.setProperty(\"--z-pagination--pages-container-max-width\", \"100%\");\n\n return;\n }\n\n const pagesContainerStyle = window.getComputedStyle(this.host);\n const pageButtonWidth = pagesContainerStyle.getPropertyValue(\"--z-pagination--page-button-width\");\n this.host.style.setProperty(\n \"--z-pagination--pages-container-max-width\",\n `calc(${pageButtonWidth} * ${this._visiblePages})`\n );\n }\n\n /**\n * Set visible pages.\n * Ensure that the visible pages are always <= the total pages.\n * If `visiblePages` isn't set, fallback to the total pages.\n */\n @Watch(\"visiblePages\")\n setVisiblePages(): void {\n this._visiblePages = Math.min(this.visiblePages || this.totalPages, this.totalPages);\n }\n\n /**\n * On page changed.\n * @emits pageChanged\n */\n @Watch(\"currentPage\")\n onPageChanged(): void {\n this.pageChanged.emit(this.currentPage);\n this.scrollToPage();\n }\n\n /**\n * On split changed.\n * Empty `edges` value. The split feature wins over the pages chunks and edges.\n */\n @Watch(\"split\")\n onSplitChanged(): void {\n if (this.split) {\n this.edges = false;\n }\n }\n\n /**\n * Hide stuff on mobile.\n */\n @Listen(\"resize\", {target: \"window\", passive: true})\n onResize(): void {\n this.setMobile();\n }\n\n /**\n * Set functionalities according to screen size.\n */\n private setMobile(): void {\n const mobileMediaQuery = \"screen and (max-width: 767px)\";\n this.isMobile = window.matchMedia(mobileMediaQuery).matches;\n }\n\n /**\n * Get a list of pages chunks, each of `visiblePages` length.\n * @returns {number[][]}\n */\n private getPagesChunks(): number[][] {\n // array of numbers from 1 to `totalPages`\n const pages = Array.from({length: this.totalPages}, (_, i) => i + 1);\n\n const chunks = [];\n const chunksCount = Math.ceil(pages.length / this._visiblePages);\n for (let index = 0; index < chunksCount; index++) {\n chunks.push(pages.slice(index * this._visiblePages, (index + 1) * this._visiblePages));\n }\n\n return chunks;\n }\n\n /**\n * Scroll to the left the chunk of pages containing the current page.\n */\n private scrollToPage(): void {\n const pageBtn = this.host.querySelector(`[data-page=\"${this.currentPage}\"]`) as HTMLElement;\n\n if (!pageBtn) {\n return;\n }\n\n pageBtn.scrollIntoView({\n behavior: \"smooth\",\n block: \"nearest\",\n inline: \"center\",\n });\n }\n\n /**\n * Select a page.\n * Do validations on the passed value before assigning it to `currentPage`.\n * @param {number} page Page number to set\n */\n private selectPage(page): void {\n this.currentPage = Math.min(Math.max(page, 1), this.totalPages);\n }\n\n /**\n * Render page number button.\n * @param {number} page Page number to render\n * @returns {HTMLButtonElement}\n */\n private renderPage(page): HTMLButtonElement {\n return (\n <button\n class=\"page-button\"\n type=\"button\"\n aria-current={this.currentPage === page ? \"page\" : \"false\"}\n title={`Vai alla pagina ${page}`}\n data-page={page}\n data-current={this.currentPage === page}\n onClick={() => this.selectPage(page)}\n >\n {page}\n </button>\n );\n }\n\n /**\n * Render split button.\n * @param {number} page Page to select on click.\n * @returns {HTMLButtonElement}\n */\n private renderEllipsisButton(page): HTMLButtonElement {\n return (\n <button\n class=\"ellipsis-button\"\n type=\"button\"\n title={`Vai alla pagina ${page}`}\n onClick={() => this.selectPage(page)}\n >\n …\n </button>\n );\n }\n\n /**\n * Render chunked page buttons.\n * @returns {HTMLDivElement[]}\n */\n private renderPages(): HTMLDivElement[] {\n const pagesChunks = this.getPagesChunks();\n if (pagesChunks.length <= 0) {\n return;\n }\n\n return pagesChunks.map((chunk) => <div class=\"pages-chunk\">{chunk.map((page) => this.renderPage(page))}</div>);\n }\n\n /**\n * Render page buttons when split feature is enabled.\n * @returns {HTMLButtonElement[]}\n */\n private renderSplitPages(): HTMLButtonElement[] {\n // left and right split pages, current page, first and last page, left and right ellipsis button\n if (this.totalPages <= this.split * 2 + 5) {\n // Too few pages: ellipsis will never be rendered, so let's just render all pages and that's it.\n return Array.from({length: this.totalPages}, (_, i) => this.renderPage(i + 1));\n }\n\n if (this.currentPage <= this.split * 2 + 2) {\n // Render first (2 * split + 3) pages, ellipsis, then last page.\n return [\n ...Array.from({length: this.split * 2 + 3}, (_, i) => this.renderPage(i + 1)),\n this.renderEllipsisButton(this.split * 2 + 4),\n this.renderPage(this.totalPages),\n ];\n }\n\n if (this.currentPage > this.split * 2 + 2 && this.currentPage < this.totalPages - this.split * 2 - 1) {\n // Render first page, ellipsis, current page surrounded by (split) pages both before and after, another ellipsis, then last page.\n return [\n this.renderPage(1),\n this.renderEllipsisButton(this.currentPage - this.split - 1),\n ...Array.from({length: this.split * 2 + 1}, (_, i) => this.renderPage(this.currentPage - this.split + i)),\n this.renderEllipsisButton(this.currentPage + this.split + 1),\n this.renderPage(this.totalPages),\n ];\n }\n\n // Render first page, ellipsis, then last (2 * split + 3) pages.\n return [\n this.renderPage(1),\n this.renderEllipsisButton(this.totalPages - this.split * 2 - 3),\n ...Array.from({length: this.split * 2 + 3}, (_, i) => this.renderPage(this.totalPages - this.split * 2 - 2 + i)),\n ];\n }\n\n private renderBackButton(): HTMLButtonElement {\n return (\n <button\n class=\"navigation-button\"\n type=\"button\"\n title=\"Vai alla pagina precedente\"\n disabled={this.currentPage === 1}\n onClick={() => this.selectPage(this.currentPage - 1)}\n >\n <z-icon name=\"chevron-left\"></z-icon>\n </button>\n );\n }\n\n private renderForwardButton(): HTMLButtonElement {\n return (\n <button\n class=\"navigation-button\"\n type=\"button\"\n title=\"Vai alla prossima pagina\"\n disabled={this.currentPage === this.totalPages}\n onClick={() => this.selectPage(this.currentPage + 1)}\n >\n <z-icon name=\"chevron-right\"></z-icon>\n </button>\n );\n }\n\n private renderMobile(): HTMLElement[] {\n const pagesChunks = this.getPagesChunks();\n\n return [\n this.label && <span class=\"page-label body-1-sb\">{this.label}</span>,\n\n <div class=\"pagination-bar\">\n {this.renderBackButton()}\n\n {!this.goToPage && (\n <div\n class=\"pages-container\"\n role=\"navigation\"\n tabIndex={-1}\n >\n {pagesChunks.length > 0 &&\n pagesChunks.map((chunk) => <div class=\"pages-chunk\">{chunk.map((page) => this.renderPage(page))}</div>)}\n </div>\n )}\n\n {this.goToPage && (\n <form\n class=\"mobile-go-to-page\"\n onSubmit={(ev) => {\n ev.preventDefault();\n this.selectPage(this.goToPageValue);\n }}\n >\n <z-input\n class=\"go-to-page-input\"\n type={InputType.NUMBER}\n min={1}\n max={this.totalPages}\n message={false}\n onInput={(ev: InputEvent) => {\n this.goToPageValue = (ev.target as HTMLZInputElement).value;\n }}\n placeholder={this.currentPage.toString()}\n hasclearicon={false}\n ></z-input>\n <span>{`/${this.totalPages}`}</span>\n </form>\n )}\n\n {this.renderForwardButton()}\n </div>,\n ];\n }\n\n componentDidLoad(): void {\n this.setVisiblePages();\n }\n\n componentDidRender(): void {\n if (this.split) {\n this.edges = false;\n }\n\n this.setPagesContainerWidth();\n this.setMobile();\n }\n\n render(): HTMLZPaginationElement {\n if (this.isMobile) {\n return <Host>{this.renderMobile()}</Host>;\n }\n\n return (\n <Host>\n <div class=\"pagination-bar\">\n {this.label && <span class=\"page-label body-1-sb\">{this.label}</span>}\n\n {this.edges && (\n <button\n class=\"pagination-button\"\n type=\"button\"\n title=\"Vai alla pagina 1\"\n disabled={this.currentPage === 1}\n onClick={() => this.selectPage(1)}\n >\n Pagina 1\n </button>\n )}\n\n {this.skip < this.totalPages && this.skip > 1 && (\n <button\n class=\"pagination-button\"\n type=\"button\"\n title={`Vai alla pagina ${this.currentPage - this.skip}`}\n disabled={this.currentPage <= this.skip}\n onClick={() => this.selectPage(this.currentPage - this.skip)}\n >\n -{this.skip}\n </button>\n )}\n\n {this.navArrows && this.renderBackButton()}\n\n <div\n class=\"pages-container\"\n role=\"navigation\"\n tabIndex={-1}\n >\n {this.split ? this.renderSplitPages() : this.renderPages()}\n </div>\n\n {this.navArrows && this.renderForwardButton()}\n\n {this.skip < this.totalPages && this.skip > 1 && (\n <button\n class=\"pagination-button\"\n type=\"button\"\n title={`Vai alla pagina ${this.currentPage + this.skip}`}\n disabled={this.currentPage > this.totalPages - this.skip}\n onClick={() => this.selectPage(this.currentPage + this.skip)}\n >\n +{this.skip}\n </button>\n )}\n\n {this.edges && (\n <button\n class=\"pagination-button\"\n type=\"button\"\n title={`Vai alla pagina ${this.totalPages}`}\n disabled={this.currentPage === this.totalPages}\n onClick={() => this.selectPage(this.totalPages)}\n >\n Pagina {this.totalPages}\n </button>\n )}\n </div>\n {this.goToPage && (\n <div class=\"go-to-page\">\n <span class=\"label body-5-sb\">Vai a pagina:</span>\n <div class=\"inputs\">\n <z-input\n class=\"go-to-page-input\"\n type={InputType.NUMBER}\n min={1}\n max={this.totalPages}\n message={false}\n placeholder=\"2\"\n hasclearicon={false}\n onInput={(ev: InputEvent) => {\n this.goToPageValue = (ev.target as HTMLZInputElement).value;\n }}\n onKeyDown={(ev) => ev.key === \"Enter\" && this.selectPage(this.goToPageValue)}\n ></z-input>\n <z-button\n disabled={!this.goToPageValue}\n title=\"Vai alla pagina inserita\"\n onClick={() => this.selectPage(this.goToPageValue)}\n >\n vai\n </z-button>\n </div>\n </div>\n )}\n </Host>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
|