@zanichelli/albe-web-components 19.3.0-RC2 → 19.3.0-RC4

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.
Files changed (39) hide show
  1. package/dist/cjs/z-combobox.cjs.entry.js +4 -6
  2. package/dist/cjs/z-combobox.cjs.entry.js.map +1 -1
  3. package/dist/cjs/z-select.cjs.entry.js +8 -7
  4. package/dist/cjs/z-select.cjs.entry.js.map +1 -1
  5. package/dist/collection/components/list/z-list-group/index.stories.js +3 -0
  6. package/dist/collection/components/list/z-list-group/index.stories.js.map +1 -1
  7. package/dist/collection/components/z-combobox/index.js +4 -6
  8. package/dist/collection/components/z-combobox/index.js.map +1 -1
  9. package/dist/collection/components/z-combobox/index.stories.js +2 -0
  10. package/dist/collection/components/z-combobox/index.stories.js.map +1 -1
  11. package/dist/collection/components/z-select/index.js +8 -7
  12. package/dist/collection/components/z-select/index.js.map +1 -1
  13. package/dist/components/z-combobox.js +4 -6
  14. package/dist/components/z-combobox.js.map +1 -1
  15. package/dist/components/z-select.js +8 -7
  16. package/dist/components/z-select.js.map +1 -1
  17. package/dist/esm/z-combobox.entry.js +4 -6
  18. package/dist/esm/z-combobox.entry.js.map +1 -1
  19. package/dist/esm/z-select.entry.js +8 -7
  20. package/dist/esm/z-select.entry.js.map +1 -1
  21. package/dist/types/components/list/z-list-group/index.stories.d.ts +1 -0
  22. package/dist/types/components/z-combobox/index.stories.d.ts +1 -0
  23. package/dist/web-components-library/{p-42bbe6c8.entry.js → p-bad22f5f.entry.js} +2 -2
  24. package/dist/web-components-library/p-bad22f5f.entry.js.map +1 -0
  25. package/{www/build/p-64b3d620.entry.js → dist/web-components-library/p-f0271f86.entry.js} +2 -2
  26. package/dist/web-components-library/p-f0271f86.entry.js.map +1 -0
  27. package/dist/web-components-library/web-components-library.esm.js +1 -1
  28. package/package.json +1 -1
  29. package/www/build/{p-2ba3b584.js → p-4bab8e94.js} +1 -1
  30. package/www/build/{p-42bbe6c8.entry.js → p-bad22f5f.entry.js} +2 -2
  31. package/www/build/p-bad22f5f.entry.js.map +1 -0
  32. package/{dist/web-components-library/p-64b3d620.entry.js → www/build/p-f0271f86.entry.js} +2 -2
  33. package/www/build/p-f0271f86.entry.js.map +1 -0
  34. package/www/build/web-components-library.esm.js +1 -1
  35. package/www/index.html +1 -1
  36. package/dist/web-components-library/p-42bbe6c8.entry.js.map +0 -1
  37. package/dist/web-components-library/p-64b3d620.entry.js.map +0 -1
  38. package/www/build/p-42bbe6c8.entry.js.map +0 -1
  39. package/www/build/p-64b3d620.entry.js.map +0 -1
@@ -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 l=()=>{{i(a.prototype)}const t=import.meta.url;const o={};if(t!==""){o.resourcesUrl=new URL(".",t).href}return e(o)};var i=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}};l().then((async e=>{await o();return t(JSON.parse('[["p-59fac888",[[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"],"label":[1],"htmlAriaLabel":[1,"html-aria-label"],"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"],"showBackdrop":[4,"show-backdrop"],"skipAnimation":[32]},[[4,"keydown","handleKeyDown"],[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"],"role":[513]}],[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"],"htmlAriaExpanded":[1,"html-aria-expanded"],"htmlAriaControls":[1,"html-aria-controls"],"htmlAriaAutocomplete":[1,"html-aria-autocomplete"],"htmlAriaActivedescendant":[1,"html-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":[1,"aria-label"],"role":[1],"htmlrole":[1],"href":[1],"target":[1],"htmlid":[1],"name":[1],"disabled":[516],"type":[1],"variant":[513],"icon":[1],"iconPosition":[513,"icon-position"],"size":[513]}],[1,"z-icon",{"name":[1],"height":[8],"width":[8],"iconid":[1],"fill":[1],"indicatorColor":[1,"indicator-color"]}]]],["p-b854cc3d",[[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-42bbe6c8",[[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"],"showChildrenOfMatchingParent":[4,"show-children-of-matching-parent"],"isfixed":[4],"resetItem":[1,"reset-item"],"size":[1],"isOpen":[32],"selectedItem":[32],"focusedItemId":[32],"searchString":[32],"getSelectedItem":[64],"getValue":[64],"setValue":[64]},null,{"items":["watchItems"]}]]],["p-bc15e1dc",[[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-64b3d620",[[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],"hascheckall":[4],"checkalltext":[1],"uncheckalltext":[1],"maxcheckableitems":[2],"hasgroupitems":[4],"size":[1],"htmlAriaLabel":[1,"html-aria-label"],"searchValue":[32],"selectedCounter":[32],"renderItemsList":[32],"focusedItemId":[32]},null,{"items":["watchItems"],"searchValue":["watchSearchValue"]}]]],["p-f0f53bb2",[[1,"z-myz-card-dictionary",{"name":[1],"cover":[1],"disabled":[4],"flipped":[1028],"flipbuttonlabel":[1],"hideinfobtn":[4]},[[0,"flipCard","handleFlipCard"]]]]],["p-88a9865c",[[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-41891d34",[[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-3d02ad75",[[1,"z-tree-list",{"items":[1],"htmlAriaLabelledby":[513,"html-aria-labelledby"],"htmlSectionTitle":[513,"html-section-title"]},null,{"items":["watchItems"]}]]],["p-8503c87a",[[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"],"linkTarget":[1,"link-target"],"fallbackCover":[1,"fallback-cover"],"hasMultipleCovers":[4,"has-multiple-covers"],"titleHtmlTag":[1,"title-html-tag"]}]]],["p-b421424f",[[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-b1f2388a",[[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-71f62226",[[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-d1fe7960",[[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-9af837bb",[[1,"z-td",{"colspan":[2],"sticky":[516],"showMenu":[513,"show-menu"],"popoverPosition":[1,"popover-position"],"isMenuOpen":[32]},null,{"colspan":["updateColspan"]}]]],["p-17e2fed2",[[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-8aaceeed",[[1,"z-tool",{"icon":[1],"tooltip":[1],"tooltipPosition":[1,"tooltip-position"],"htmlAriaLabel":[1,"html-aria-label"],"active":[516],"disabled":[516],"open":[1540],"indicatorColor":[1025,"indicator-color"],"tooltipOpen":[32],"hasSlottedContent":[32],"isMobile":[32],"hasNestedOpenTools":[32],"setFocus":[64],"setTabIndex":[64],"closeTooltip":[64]},[[0,"keydown","handleKeyDown"],[16,"click","onOutsideClick"],[0,"toggleSubmenu","onNestedToolToggle"],[0,"colorSelected","handleColorSelected"],[17,"focusin","handleExternalFocusin"]],{"open":["handleOpenChange"],"tooltipOpen":["handleTooltipOpenChange"]}]]],["p-6d61933f",[[4,"z-anchor-navigation",{"hideUnselected":[516,"hide-unselected"],"autoCurrent":[4,"auto-current"],"collapsedLabel":[1,"collapsed-label"],"isCollapsed":[516,"is-collapsed"],"collapsed":[32]}]]],["p-2bba665d",[[1,"z-book-card-app",{"logo":[1],"name":[1],"link":[1],"laz":[4],"info":[1]}]]],["p-d5ebbfdf",[[1,"z-myz-card-alert",{"iconname":[1],"contenttext":[1],"actiontext":[1],"type":[1]}]]],["p-5838b77c",[[1,"z-myz-card-info",{"data":[1],"htmltabindex":[2],"hiddenContent":[32],"tooltip":[32]}]]],["p-de313d96",[[1,"z-myz-list",{"inputrawdata":[1],"list":[1040]},null,{"inputrawdata":["oninputrawdataChange"]}]]],["p-6ef58a14",[[1,"z-otp",{"inputNum":[2,"input-num"],"status":[1],"message":[1]}]]],["p-31bd2a1c",[[1,"z-result-card",{"cardTitle":[1,"card-title"],"cardSubtitle":[1,"card-subtitle"],"authors":[1],"cover":[1],"fallbackCover":[1,"fallback-cover"],"hasMultipleCovers":[4,"has-multiple-covers"],"isInfoCard":[4,"is-info-card"],"titleHtmlTag":[1,"title-html-tag"]}]]],["p-8b562dca",[[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-47b7bc63",[[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-332e0361",[[1,"z-button-sort",{"buttonid":[1],"label":[1],"desclabel":[1],"counter":[2],"sortlabelasc":[1],"sortlabeldesc":[1],"isselected":[1028],"sortasc":[1028],"allowTooltip":[32]}]]],["p-66c0f993",[[1,"z-card",{"variant":[513],"coverIcon":[1,"cover-icon"],"showShadow":[516,"show-shadow"],"clickable":[516],"hasCoverImage":[32]}]]],["p-c57bb632",[[1,"z-info-box",{"boxid":[1],"isclosable":[4]}]]],["p-a3f9a5da",[[1,"z-menu",{"active":[516],"floating":[516],"open":[1540],"verticalContext":[516,"vertical-context"],"htmlTabindex":[1026,"html-tabindex"],"hasHeader":[32],"hasContent":[32],"setFocus":[64],"focusLastItem":[64]},[[4,"click","onItemClick"],[0,"keydown","onKeyDown"]],{"open":["onOpenChanged"],"htmlTabindex":["setLabelA11yAttrs"]}]]],["p-03a558ef",[[1,"z-menu-deprecated",{"active":[516],"floating":[516],"open":[1540],"verticalContext":[516,"vertical-context"],"hasHeader":[32],"hasContent":[32]},[[4,"click","handleClick"]],{"open":["onOpenChanged"]}]]],["p-4df66afe",[[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-2a04c00e",[[1,"z-menu-section-deprecated",{"active":[516],"open":[32],"hasContent":[32]},[[4,"click","handleClick"]]]]],["p-15951fc6",[[1,"z-myz-card-icon",{"icon":[1],"isdisabled":[4],"ariaLabel":[1,"aria-label"]}]]],["p-57dcff49",[[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-c5e032de",[[1,"z-notification",{"contenticonname":[1],"actiontext":[1],"type":[513],"showclose":[4],"showshadow":[516],"sticky":[516]}]]],["p-cc87d814",[[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-b4b264b1",[[1,"z-section-title",{"dividerPosition":[1,"divider-position"],"uppercase":[516]}]]],["p-b0324c7d",[[1,"z-slideshow",{"slideshowid":[1],"data":[1],"device":[32],"currentSlide":[32]},null,{"data":["watchData"]}]]],["p-19172b2c",[[1,"z-stepper-item",{"index":[514],"href":[513],"pressed":[516],"checked":[516],"disabled":[516]}]]],["p-5fda8769",[[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-dba260f2",[[1,"z-toggle-button",{"label":[1],"isdisabled":[4],"avoidclick":[4],"opened":[1028],"ariaLabel":[1,"aria-label"]}]]],["p-87edcc75",[[6,"z-toggle-switch",{"disabled":[516],"labelPosition":[513,"label-position"],"checked":[1028],"htmlid":[1]}]]],["p-901518b8",[[1,"z-tr",{"expandable":[516],"expanded":[32],"expandableContentId":[32]},[[0,"colspanchange","updateColumns"]],{"expandable":["updateColumns"]}]]],["p-c93c6135",[[4,"z-aria-alert",{"mode":[1]}]]],["p-c0b4f29d",[[1,"z-avatar",{"size":[1],"text":[1],"textColor":[1,"text-color"],"backgroundColor":[1,"background-color"],"image":[1025]}]]],["p-22b683a3",[[1,"z-color-picker",{"selectedColor":[1025,"selected-color"],"lng":[1],"htmlAriaLabel":[1,"html-aria-label"],"disableTransparent":[4,"disable-transparent"],"setFocus":[64]},[[0,"focus","setFocus"],[0,"keydown","handleKeyDown"],[0,"blur","handleBlur"]],{"disableTransparent":["validateTransparentSelection"],"selectedColor":["validateTransparentSelection","emitColorSelected"]}]]],["p-3f66654f",[[1,"z-cover-hero",{"variant":[513],"contentPosition":[513,"content-position"],"preserveAspectRatio":[516,"preserve-aspect-ratio"]},[[2,"load","onImgLoad"]]]]],["p-ddae9016",[[1,"z-logo",{"width":[2],"height":[2],"imageAlt":[1,"image-alt"],"link":[1],"targetBlank":[4,"target-blank"],"mobileLogo":[4,"mobile-logo"]}]]],["p-c645dc11",[[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-80ddecaf",[[1,"z-myz-card-footer-sections"]]],["p-90690d4d",[[1,"z-myz-card-list",{"listdata":[1]}]]],["p-83a26e88",[[2,"z-skip-to-content",{"variant":[513],"links":[1025],"visible":[32],"visibleLink":[32]},[[4,"focusout","handleFocusOutSkipToContent"],[4,"focusin","handleFocusSkipToContent"]]]]],["p-1e0d85d5",[[1,"z-stepper"]]],["p-b70ff542",[[1,"z-table",{"bordered":[516],"expandable":[32]}]]],["p-d65aeb54",[[1,"z-tbody"]]],["p-6c3d141b",[[1,"z-tfoot",{"sticky":[516]}]]],["p-a32ebcc3",[[1,"z-thead",{"sticky":[516],"isFocusable":[516,"is-focusable"]}]]],["p-90babaaa",[[1,"z-toast-notification-list",{"position":[513],"newestontop":[4]},null,{"newestontop":["watchPropNewestontop"]}]]],["p-0989655c",[[1,"z-toolbar",{"htmlAriaLabel":[1,"html-aria-label"],"currentFocusIndex":[32]},[[0,"toggleSubmenu","closeSiblingSubmenusOnOpen"],[0,"toggleTooltip","closeSiblingTooltipsOnOpen"],[0,"keydown","handleKeyDown"],[0,"focusin","handleFocusIn"]]]]],["p-5cdd431e",[[1,"z-visually-hidden"]]],["p-2f45f1ff",[[6,"z-chip",{"icon":[1],"type":[513],"interactiveIcon":[513,"interactive-icon"],"disabled":[516],"ariaLabel":[1,"aria-label"]}]]],["p-1939116a",[[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-9eba4a37",[[1,"z-myz-list-item",{"text":[1],"link":[1],"linktarget":[1],"icon":[1],"listitemid":[1],"action":[1],"underlined":[4]}]]],["p-76003048",[[1,"z-tooltip",{"position":[513],"dark":[516],"open":[1540],"bindTo":[1,"bind-to"],"closable":[4]},[[0,"openChange","onPopoverOpenChange"]]]]],["p-215b1fa5",[[1,"z-alert",{"type":[1]}]]],["p-661bce1c",[[1,"z-ghost-loading"]]],["p-c03767a4",[[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-eb9161bc",[[1,"z-book-cover",{"cover":[1],"fallbackCover":[1,"fallback-cover"],"multiple":[516],"bordered":[516]}]]],["p-e38a5dd2",[[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-f8e95a75",[[1,"z-popover",{"position":[1537],"open":[1540],"bindTo":[1,"bind-to"],"showArrow":[516,"show-arrow"],"center":[516],"closable":[4],"currentPosition":[32]},[[10,"keyup","closePopoverWithKeyboard"],[18,"click","handleOutsideClick"]],{"position":["validatePosition"],"open":["onOpen"],"bindTo":["onBindingChange"]}]]]]'),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 l=()=>{{i(a.prototype)}const t=import.meta.url;const o={};if(t!==""){o.resourcesUrl=new URL(".",t).href}return e(o)};var i=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}};l().then((async e=>{await o();return t(JSON.parse('[["p-59fac888",[[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"],"label":[1],"htmlAriaLabel":[1,"html-aria-label"],"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"],"showBackdrop":[4,"show-backdrop"],"skipAnimation":[32]},[[4,"keydown","handleKeyDown"],[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"],"role":[513]}],[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"],"htmlAriaExpanded":[1,"html-aria-expanded"],"htmlAriaControls":[1,"html-aria-controls"],"htmlAriaAutocomplete":[1,"html-aria-autocomplete"],"htmlAriaActivedescendant":[1,"html-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":[1,"aria-label"],"role":[1],"htmlrole":[1],"href":[1],"target":[1],"htmlid":[1],"name":[1],"disabled":[516],"type":[1],"variant":[513],"icon":[1],"iconPosition":[513,"icon-position"],"size":[513]}],[1,"z-icon",{"name":[1],"height":[8],"width":[8],"iconid":[1],"fill":[1],"indicatorColor":[1,"indicator-color"]}]]],["p-b854cc3d",[[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-bad22f5f",[[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"],"showChildrenOfMatchingParent":[4,"show-children-of-matching-parent"],"isfixed":[4],"resetItem":[1,"reset-item"],"size":[1],"isOpen":[32],"selectedItem":[32],"focusedItemId":[32],"searchString":[32],"getSelectedItem":[64],"getValue":[64],"setValue":[64]},null,{"items":["watchItems"]}]]],["p-bc15e1dc",[[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-f0271f86",[[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],"hascheckall":[4],"checkalltext":[1],"uncheckalltext":[1],"maxcheckableitems":[2],"hasgroupitems":[4],"size":[1],"htmlAriaLabel":[1,"html-aria-label"],"searchValue":[32],"selectedCounter":[32],"renderItemsList":[32],"focusedItemId":[32]},null,{"items":["watchItems"],"searchValue":["watchSearchValue"]}]]],["p-f0f53bb2",[[1,"z-myz-card-dictionary",{"name":[1],"cover":[1],"disabled":[4],"flipped":[1028],"flipbuttonlabel":[1],"hideinfobtn":[4]},[[0,"flipCard","handleFlipCard"]]]]],["p-88a9865c",[[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-41891d34",[[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-3d02ad75",[[1,"z-tree-list",{"items":[1],"htmlAriaLabelledby":[513,"html-aria-labelledby"],"htmlSectionTitle":[513,"html-section-title"]},null,{"items":["watchItems"]}]]],["p-8503c87a",[[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"],"linkTarget":[1,"link-target"],"fallbackCover":[1,"fallback-cover"],"hasMultipleCovers":[4,"has-multiple-covers"],"titleHtmlTag":[1,"title-html-tag"]}]]],["p-b421424f",[[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-b1f2388a",[[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-71f62226",[[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-d1fe7960",[[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-9af837bb",[[1,"z-td",{"colspan":[2],"sticky":[516],"showMenu":[513,"show-menu"],"popoverPosition":[1,"popover-position"],"isMenuOpen":[32]},null,{"colspan":["updateColspan"]}]]],["p-17e2fed2",[[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-8aaceeed",[[1,"z-tool",{"icon":[1],"tooltip":[1],"tooltipPosition":[1,"tooltip-position"],"htmlAriaLabel":[1,"html-aria-label"],"active":[516],"disabled":[516],"open":[1540],"indicatorColor":[1025,"indicator-color"],"tooltipOpen":[32],"hasSlottedContent":[32],"isMobile":[32],"hasNestedOpenTools":[32],"setFocus":[64],"setTabIndex":[64],"closeTooltip":[64]},[[0,"keydown","handleKeyDown"],[16,"click","onOutsideClick"],[0,"toggleSubmenu","onNestedToolToggle"],[0,"colorSelected","handleColorSelected"],[17,"focusin","handleExternalFocusin"]],{"open":["handleOpenChange"],"tooltipOpen":["handleTooltipOpenChange"]}]]],["p-6d61933f",[[4,"z-anchor-navigation",{"hideUnselected":[516,"hide-unselected"],"autoCurrent":[4,"auto-current"],"collapsedLabel":[1,"collapsed-label"],"isCollapsed":[516,"is-collapsed"],"collapsed":[32]}]]],["p-2bba665d",[[1,"z-book-card-app",{"logo":[1],"name":[1],"link":[1],"laz":[4],"info":[1]}]]],["p-d5ebbfdf",[[1,"z-myz-card-alert",{"iconname":[1],"contenttext":[1],"actiontext":[1],"type":[1]}]]],["p-5838b77c",[[1,"z-myz-card-info",{"data":[1],"htmltabindex":[2],"hiddenContent":[32],"tooltip":[32]}]]],["p-de313d96",[[1,"z-myz-list",{"inputrawdata":[1],"list":[1040]},null,{"inputrawdata":["oninputrawdataChange"]}]]],["p-6ef58a14",[[1,"z-otp",{"inputNum":[2,"input-num"],"status":[1],"message":[1]}]]],["p-31bd2a1c",[[1,"z-result-card",{"cardTitle":[1,"card-title"],"cardSubtitle":[1,"card-subtitle"],"authors":[1],"cover":[1],"fallbackCover":[1,"fallback-cover"],"hasMultipleCovers":[4,"has-multiple-covers"],"isInfoCard":[4,"is-info-card"],"titleHtmlTag":[1,"title-html-tag"]}]]],["p-8b562dca",[[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-47b7bc63",[[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-332e0361",[[1,"z-button-sort",{"buttonid":[1],"label":[1],"desclabel":[1],"counter":[2],"sortlabelasc":[1],"sortlabeldesc":[1],"isselected":[1028],"sortasc":[1028],"allowTooltip":[32]}]]],["p-66c0f993",[[1,"z-card",{"variant":[513],"coverIcon":[1,"cover-icon"],"showShadow":[516,"show-shadow"],"clickable":[516],"hasCoverImage":[32]}]]],["p-c57bb632",[[1,"z-info-box",{"boxid":[1],"isclosable":[4]}]]],["p-a3f9a5da",[[1,"z-menu",{"active":[516],"floating":[516],"open":[1540],"verticalContext":[516,"vertical-context"],"htmlTabindex":[1026,"html-tabindex"],"hasHeader":[32],"hasContent":[32],"setFocus":[64],"focusLastItem":[64]},[[4,"click","onItemClick"],[0,"keydown","onKeyDown"]],{"open":["onOpenChanged"],"htmlTabindex":["setLabelA11yAttrs"]}]]],["p-03a558ef",[[1,"z-menu-deprecated",{"active":[516],"floating":[516],"open":[1540],"verticalContext":[516,"vertical-context"],"hasHeader":[32],"hasContent":[32]},[[4,"click","handleClick"]],{"open":["onOpenChanged"]}]]],["p-4df66afe",[[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-2a04c00e",[[1,"z-menu-section-deprecated",{"active":[516],"open":[32],"hasContent":[32]},[[4,"click","handleClick"]]]]],["p-15951fc6",[[1,"z-myz-card-icon",{"icon":[1],"isdisabled":[4],"ariaLabel":[1,"aria-label"]}]]],["p-57dcff49",[[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-c5e032de",[[1,"z-notification",{"contenticonname":[1],"actiontext":[1],"type":[513],"showclose":[4],"showshadow":[516],"sticky":[516]}]]],["p-cc87d814",[[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-b4b264b1",[[1,"z-section-title",{"dividerPosition":[1,"divider-position"],"uppercase":[516]}]]],["p-b0324c7d",[[1,"z-slideshow",{"slideshowid":[1],"data":[1],"device":[32],"currentSlide":[32]},null,{"data":["watchData"]}]]],["p-19172b2c",[[1,"z-stepper-item",{"index":[514],"href":[513],"pressed":[516],"checked":[516],"disabled":[516]}]]],["p-5fda8769",[[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-dba260f2",[[1,"z-toggle-button",{"label":[1],"isdisabled":[4],"avoidclick":[4],"opened":[1028],"ariaLabel":[1,"aria-label"]}]]],["p-87edcc75",[[6,"z-toggle-switch",{"disabled":[516],"labelPosition":[513,"label-position"],"checked":[1028],"htmlid":[1]}]]],["p-901518b8",[[1,"z-tr",{"expandable":[516],"expanded":[32],"expandableContentId":[32]},[[0,"colspanchange","updateColumns"]],{"expandable":["updateColumns"]}]]],["p-c93c6135",[[4,"z-aria-alert",{"mode":[1]}]]],["p-c0b4f29d",[[1,"z-avatar",{"size":[1],"text":[1],"textColor":[1,"text-color"],"backgroundColor":[1,"background-color"],"image":[1025]}]]],["p-22b683a3",[[1,"z-color-picker",{"selectedColor":[1025,"selected-color"],"lng":[1],"htmlAriaLabel":[1,"html-aria-label"],"disableTransparent":[4,"disable-transparent"],"setFocus":[64]},[[0,"focus","setFocus"],[0,"keydown","handleKeyDown"],[0,"blur","handleBlur"]],{"disableTransparent":["validateTransparentSelection"],"selectedColor":["validateTransparentSelection","emitColorSelected"]}]]],["p-3f66654f",[[1,"z-cover-hero",{"variant":[513],"contentPosition":[513,"content-position"],"preserveAspectRatio":[516,"preserve-aspect-ratio"]},[[2,"load","onImgLoad"]]]]],["p-ddae9016",[[1,"z-logo",{"width":[2],"height":[2],"imageAlt":[1,"image-alt"],"link":[1],"targetBlank":[4,"target-blank"],"mobileLogo":[4,"mobile-logo"]}]]],["p-c645dc11",[[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-80ddecaf",[[1,"z-myz-card-footer-sections"]]],["p-90690d4d",[[1,"z-myz-card-list",{"listdata":[1]}]]],["p-83a26e88",[[2,"z-skip-to-content",{"variant":[513],"links":[1025],"visible":[32],"visibleLink":[32]},[[4,"focusout","handleFocusOutSkipToContent"],[4,"focusin","handleFocusSkipToContent"]]]]],["p-1e0d85d5",[[1,"z-stepper"]]],["p-b70ff542",[[1,"z-table",{"bordered":[516],"expandable":[32]}]]],["p-d65aeb54",[[1,"z-tbody"]]],["p-6c3d141b",[[1,"z-tfoot",{"sticky":[516]}]]],["p-a32ebcc3",[[1,"z-thead",{"sticky":[516],"isFocusable":[516,"is-focusable"]}]]],["p-90babaaa",[[1,"z-toast-notification-list",{"position":[513],"newestontop":[4]},null,{"newestontop":["watchPropNewestontop"]}]]],["p-0989655c",[[1,"z-toolbar",{"htmlAriaLabel":[1,"html-aria-label"],"currentFocusIndex":[32]},[[0,"toggleSubmenu","closeSiblingSubmenusOnOpen"],[0,"toggleTooltip","closeSiblingTooltipsOnOpen"],[0,"keydown","handleKeyDown"],[0,"focusin","handleFocusIn"]]]]],["p-5cdd431e",[[1,"z-visually-hidden"]]],["p-2f45f1ff",[[6,"z-chip",{"icon":[1],"type":[513],"interactiveIcon":[513,"interactive-icon"],"disabled":[516],"ariaLabel":[1,"aria-label"]}]]],["p-1939116a",[[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-9eba4a37",[[1,"z-myz-list-item",{"text":[1],"link":[1],"linktarget":[1],"icon":[1],"listitemid":[1],"action":[1],"underlined":[4]}]]],["p-76003048",[[1,"z-tooltip",{"position":[513],"dark":[516],"open":[1540],"bindTo":[1,"bind-to"],"closable":[4]},[[0,"openChange","onPopoverOpenChange"]]]]],["p-215b1fa5",[[1,"z-alert",{"type":[1]}]]],["p-661bce1c",[[1,"z-ghost-loading"]]],["p-c03767a4",[[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-eb9161bc",[[1,"z-book-cover",{"cover":[1],"fallbackCover":[1,"fallback-cover"],"multiple":[516],"bordered":[516]}]]],["p-e38a5dd2",[[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-f8e95a75",[[1,"z-popover",{"position":[1537],"open":[1540],"bindTo":[1,"bind-to"],"showArrow":[516,"show-arrow"],"center":[516],"closable":[4],"currentPosition":[32]},[[10,"keyup","closePopoverWithKeyboard"],[18,"click","handleOutsideClick"]],{"position":["validatePosition"],"open":["onOpen"],"bindTo":["onBindingChange"]}]]]]'),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-b5b5dae5.css"> <link rel="modulepreload" href="/build/p-2ba3b584.js"><link rel="modulepreload" href="/build/p-061e28d6.js"><link rel="modulepreload" href="/build/p-5145a606.js"><link rel="modulepreload" href="/build/p-75c4a726.js"><link rel="modulepreload" href="/build/p-86618221.js"><link rel="modulepreload" href="/build/p-eb15536d.js"><script type="module" src="/build/p-2ba3b584.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 {
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-b5b5dae5.css"> <link rel="modulepreload" href="/build/p-4bab8e94.js"><link rel="modulepreload" href="/build/p-061e28d6.js"><link rel="modulepreload" href="/build/p-5145a606.js"><link rel="modulepreload" href="/build/p-75c4a726.js"><link rel="modulepreload" href="/build/p-86618221.js"><link rel="modulepreload" href="/build/p-eb15536d.js"><script type="module" src="/build/p-4bab8e94.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 +0,0 @@
1
- {"version":3,"names":["stylesCss","ZSelectStyle0","ZSelect","constructor","hostRef","this","itemsList","randomId","ControlSize","BIG","toggleSelectUl","bind","handleSelectFocus","watchItems","getInitialItemsArray","selectedItem","findSelectedItem","getSelectedItem","getValue","getSelectedValue","setValue","value","values","push","length","updateSelection","emitOptionSelect","optionSelect","emit","id","htmlid","selected","emitResetSelect","resetSelect","componentWillLoad","componentWillRender","filterItems","searchString","items","JSON","parse","mapSelectedItemToItemsArray","initialItemsList","_a","getOptionId","item","getResetOptionId","getItemIdFromOptionId","optionId","replace","getGroupedItems","Object","entries","reduce","group","category","prevList","map","assign","name","getPlainText","hasTreeItems","filterTree","filter","toUpperCase","includes","getHighlightedText","matchingParent","match","newItem","children","showChildrenOfMatchingParent","text","search","upperText","upperSearch","start","indexOf","end","substring","hasAutocomplete","boolean","autocomplete","handleInputChange","e","detail","isOpen","selectedId","forEach","found","selectItem","disabled","handleResetClick","focusedItemId","handleInputKeyDown","code","KeyboardCode","ENTER","SPACE","itemId","find","ARROW_DOWN","ARROW_UP","arrowsSelectNav","arrows","key","preventDefault","stopPropagation","currElem","host","querySelector","options","Array","from","querySelectorAll","currElemIndex","firstElemIndex","lastElemIndex","focusSelectItem","nextElem","elem","scrollIntoView","block","selfFocusOnClose","readonly","document","addEventListener","removeEventListener","focus","handleInputClick","target","closest","KeyboardEvent","ESC","TAB","clickedElement","getClickedElement","hasAttribute","getElementTree","nodeName","toLowerCase","zSelect","scrollToLetter","letter","foundItem","charAt","renderInput","undefined","h","class","placeholder","label","ariaLabel","icon","hasclearicon","message","status","size","role","onClick","onKeyDown","onInputChange","onKeyPress","renderSelectUl","fixed","isfixed","tabindex","listSizeType","resetItem","renderResetItem","renderSelectUlItems","hidden","hide","hasGroupItems","clickable","dividerType","ListDividerType","ELEMENT","ListSize","MEDIUM","onClickItem","active","renderItem","lastItem","HEADER","innerHTML","NONE","SMALL","X_SMALL","renderNoSearchResults","renderGroupedTree","renderSelectGroupItems","index","array","isLastItem","parentHasSiblings","renderTreeItems","isLastChild","isTopLevel","disabledAncestor","isDisabled","hasDivider","_b","title","child","arr","groupedItems","some","groupItems","slot","i","style","zIndex","height","isLastGroup","subindex","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-surface02);\n --background-active-color-list-element: var(--color-surface02);\n}\n\n.select-wrapper .ul-scroll-wrapper > z-list {\n position: relative;\n overflow: auto;\n max-height: 240px;\n padding: var(--space-unit) calc(var(--space-unit) * 1.5);\n margin: 0;\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.active {\n box-shadow: var(--shadow-focus-primary);\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-content.active {\n box-shadow: var(--shadow-focus-primary);\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: -8px;\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: -8px;\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 > .list-element {\n display: flex;\n justify-content: space-between;\n padding: calc(var(--space-unit) * 1.5) var(--space-unit);\n cursor: pointer;\n}\n\nz-list-element > .list-element.active {\n box-shadow: var(--shadow-focus-primary);\n}\n\nz-list-element:not([disabled]) > .list-element:hover,\nz-list-element:not([disabled]) > .list-element:hover::after {\n background-color: var(--background-hover-color-list-element, var(--color-background));\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: 45px;\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 right: -25px;\n display: block;\n width: 100%;\n height: 45px;\n content: \"\";\n transform: translateX(-100%);\n}\n\nz-list-element.grouped-tree-parent-node .list-element::after {\n position: absolute;\n right: -25px;\n display: block;\n width: 100%;\n height: 45px;\n content: \"\";\n transform: translateX(-100%);\n}\n\n.item-label.selected {\n font-weight: bold;\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 right: -18px;\n display: block;\n width: 100%;\n height: 45px;\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: 45px;\n content: \"\";\n transform: translateX(-100%);\n}\n\n.children-node z-list-element::before,\n.children-node z-list-element::after {\n left: -8px;\n}\n\n.children-node .children-node z-list-element::before,\n.children-node .children-node z-list-element::after {\n left: -8px;\n}\n\n.children-node > z-list-element {\n padding: 0;\n}\n","import {Component, Element, Event, EventEmitter, Method, Prop, State, Watch, h} from \"@stencil/core\";\nimport {ControlSize, InputStatus, KeyboardCode, ListDividerType, ListSize, SelectItem} from \"../../beans\";\nimport {boolean, getClickedElement, getElementTree, getPlainText, randomId} from \"../../utils/utils\";\n\n@Component({\n tag: \"z-select\",\n styleUrl: \"styles.css\",\n shadow: false,\n scoped: true,\n})\nexport class ZSelect {\n @Element() host: HTMLZSelectElement;\n\n /** the id of the input element */\n @Prop()\n htmlid = `id-${randomId()}`;\n\n /** the input select options */\n @Prop()\n items: SelectItem[] | string = [];\n\n /** the input name */\n @Prop()\n name?: string;\n\n /** the input label */\n @Prop()\n label?: string;\n\n /** the input aria-label */\n @Prop()\n ariaLabel = \"\";\n\n /** the input is disabled */\n @Prop()\n disabled?: boolean = false;\n\n /** the input is readonly */\n @Prop()\n readonly?: boolean = false;\n\n /** the input placeholder (optional) */\n @Prop()\n placeholder?: string;\n\n /** the input html title (optional) */\n @Prop()\n htmltitle?: string;\n\n /** the input status (optional) */\n @Prop()\n status?: InputStatus;\n\n /** input helper message (optional) - if set to `false` message won't be displayed */\n @Prop()\n message?: string | boolean = true;\n\n /** the input has autocomplete option */\n @Prop()\n autocomplete?: boolean = false;\n\n /** no result text message */\n @Prop()\n noresultslabel?: string = \"Nessun risultato\";\n\n /** */\n @Prop()\n hasGroupItems?: boolean;\n\n /** */\n @Prop()\n hasTreeItems?: boolean;\n\n /** If true and an item matches the search string, children of matching item are shown even if they don't match the search string */\n @Prop()\n showChildrenOfMatchingParent?: boolean;\n\n /** When fixed, it occupies space and pushes down next elements. */\n @Prop()\n isfixed?: boolean = false;\n\n /** */\n @Prop()\n resetItem?: string;\n\n /** Available sizes: `big`, `small` and `x-small`. Defaults to `big`. */\n @Prop()\n size?: ControlSize = ControlSize.BIG;\n\n @State()\n isOpen = false;\n\n @State()\n selectedItem: null | SelectItem = null;\n\n @State()\n focusedItemId: string;\n\n @State()\n searchString: null | string;\n\n private itemsList: SelectItem[] = [];\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\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 this.updateSelection(initialItemsList, this.selectedItem?.id);\n\n return initialItemsList;\n }\n\n private getSelectedValue(): string {\n return this.selectedItem?.id;\n }\n\n private getOptionId(item: SelectItem): string {\n return `${this.htmlid}_key_${item.id}`;\n }\n\n private getResetOptionId(): string {\n return `${this.htmlid}_key_reset`;\n }\n\n private getItemIdFromOptionId(optionId: string): string {\n return optionId.replace(`${this.htmlid}_key_`, ``);\n }\n\n private getGroupedItems(): [string, SelectItem[]][] {\n if (!this.itemsList.length) {\n return [];\n }\n\n return Object.entries(\n this.itemsList.reduce(\n (group, item) => {\n const category = item.category || \"Altra categoria\";\n group[category] = group[category] || [];\n group[category].push(item);\n\n return group;\n },\n {} as Record<string, SelectItem[]>\n )\n );\n }\n\n private filterItems(searchString: string): void {\n let prevList = this.mapSelectedItemToItemsArray();\n\n if (!searchString?.length) {\n this.itemsList = prevList;\n\n return;\n }\n\n prevList = prevList.map((item) => ({...item, name: getPlainText(item.name)}));\n\n if (this.hasTreeItems) {\n this.itemsList = this.filterTree(prevList, searchString, false);\n } else {\n this.itemsList = prevList\n .filter((item: SelectItem) => item.name.toUpperCase().includes(searchString.toUpperCase()))\n .map((item: SelectItem) => {\n item.name = this.getHighlightedText(item.name, searchString);\n\n return item;\n });\n }\n }\n\n private filterTree(items: SelectItem[], searchString: string, matchingParent: boolean): SelectItem[] {\n if (!items) {\n return [];\n }\n\n return items\n .map((item) => {\n const match = item.name.toUpperCase().includes(searchString.toUpperCase());\n\n const newItem: SelectItem = {...item};\n if (newItem.children && newItem.children.length > 0) {\n newItem.children = this.filterTree(\n newItem.children.map((item) => ({...item, name: getPlainText(item.name)})),\n searchString,\n match\n );\n }\n\n if (match) {\n newItem.name = this.getHighlightedText(newItem.name, searchString);\n }\n if (\n match ||\n (newItem.children && newItem.children.length > 0) ||\n (this.showChildrenOfMatchingParent && matchingParent)\n ) {\n return newItem;\n }\n\n return null;\n })\n .filter((item) => item !== null) as SelectItem[];\n }\n\n private getHighlightedText(text: string, search: string): string {\n const upperText = text.toUpperCase();\n const upperSearch = search.toUpperCase();\n const start = upperText.indexOf(upperSearch);\n\n if (start === -1) {\n return text;\n }\n\n const end = start + search.length;\n\n return text.substring(0, start) + `<strong>${text.substring(start, end)}</strong>` + text.substring(end);\n }\n\n private hasAutocomplete(): boolean {\n return boolean(this.autocomplete) === true;\n }\n\n private handleInputChange(e: CustomEvent): void {\n this.searchString = e.detail.value;\n if (!this.isOpen) {\n this.toggleSelectUl();\n }\n }\n\n private updateSelection(items: SelectItem[], selectedId: string): void {\n if (items) {\n items.forEach((item) => {\n item.selected = item.id === selectedId;\n if (item.children && item.children.length > 0) {\n this.updateSelection(item.children, selectedId);\n }\n });\n }\n }\n\n private findSelectedItem(items: SelectItem[]): SelectItem | null {\n if (items) {\n for (const item of items) {\n if (item.selected) {\n return item;\n }\n if (item.children && item.children.length > 0) {\n const found = this.findSelectedItem(item.children);\n if (found) {\n return found;\n }\n }\n }\n }\n\n return null;\n }\n\n private selectItem(selected: null | SelectItem): void {\n if (selected?.disabled) {\n return;\n }\n\n this.itemsList = this.getInitialItemsArray();\n\n if (selected) {\n this.updateSelection(this.itemsList, selected.id);\n }\n\n this.selectedItem = this.findSelectedItem(this.itemsList);\n this.emitOptionSelect();\n this.toggleSelectUl();\n if (this.searchString) {\n this.searchString = null;\n }\n }\n\n private handleResetClick(): void {\n this.selectedItem = null;\n this.searchString = null;\n this.focusedItemId = \"\";\n this.emitResetSelect();\n this.toggleSelectUl();\n }\n\n private handleInputKeyDown(e: KeyboardEvent): void {\n switch (e.code as KeyboardCode) {\n case KeyboardCode.ENTER:\n case KeyboardCode.SPACE:\n if (this.focusedItemId) {\n if (this.focusedItemId === this.getResetOptionId()) {\n this.handleResetClick();\n } else {\n const itemId = this.getItemIdFromOptionId(this.focusedItemId);\n const item = this.itemsList.find((e) => e.id === itemId) || null;\n if (item) {\n this.selectedItem = item;\n this.emitOptionSelect();\n this.toggleSelectUl();\n }\n }\n }\n break;\n case KeyboardCode.ARROW_DOWN:\n case KeyboardCode.ARROW_UP:\n this.arrowsSelectNav(e);\n break;\n }\n }\n\n private arrowsSelectNav(e: KeyboardEvent): void {\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 currElem = this.focusedItemId ? this.host.querySelector(`#${this.focusedItemId}`) : null;\n const options = Array.from(this.host.querySelectorAll('[role=\"option\"]'));\n\n if (!options.length) {\n return;\n }\n\n const currElemIndex = currElem ? options.indexOf(currElem) : null;\n const firstElemIndex = 0;\n const lastElemIndex = options.length - 1;\n\n if (!this.isOpen) {\n this.toggleSelectUl();\n\n if (this.selectedItem) {\n this.focusSelectItem(this.getOptionId(this.selectedItem));\n\n return;\n }\n }\n\n let nextElem = null;\n if (e.code === KeyboardCode.ARROW_DOWN) {\n nextElem =\n currElemIndex === null ? options[firstElemIndex] : options[currElemIndex + 1] || options[lastElemIndex];\n } else if (e.code === KeyboardCode.ARROW_UP) {\n nextElem =\n currElemIndex === null ? options[lastElemIndex] : options[currElemIndex - 1] || options[firstElemIndex];\n }\n\n this.focusSelectItem(nextElem.id);\n }\n\n private focusSelectItem(optionId: string): void {\n this.focusedItemId = optionId;\n const elem = this.host.querySelector(`#${optionId}`) as HTMLElement;\n elem.scrollIntoView({block: \"center\"});\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}_select_input`) as HTMLInputElement)?.focus();\n }\n\n if (this.selectedItem && this.searchString) {\n this.searchString = null;\n this.filterItems(this.searchString);\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 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.TAB) {\n return;\n }\n\n const clickedElement = getClickedElement();\n if (clickedElement?.hasAttribute(\"disabled\")) {\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 const zSelect = getElementTree(clickedElement).find((e) => e.nodeName === \"Z-SELECT\");\n this.toggleSelectUl(zSelect === this.host);\n }\n }\n\n private scrollToLetter(letter: string): void {\n if (!this.itemsList.length) {\n return;\n }\n\n const foundItem = this.itemsList.find(\n (item: SelectItem) => item.name.toLowerCase().charAt(0) === letter.toLowerCase()\n );\n if (foundItem) {\n if (!this.isOpen) {\n this.toggleSelectUl();\n }\n this.focusSelectItem(this.getOptionId(foundItem));\n }\n }\n\n private renderInput(): HTMLElement[] {\n let value = null;\n if (this.selectedItem) {\n value = getPlainText(this.selectedItem.name);\n }\n if (this.isOpen && this.searchString !== undefined) {\n value = this.searchString;\n }\n\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={value}\n label={this.label}\n autocomplete=\"off\"\n aria-label={this.ariaLabel}\n icon={this.isOpen ? \"caret-up\" : \"caret-down\"}\n hasclearicon={false}\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 size={this.size}\n role=\"combobox\"\n html-aria-expanded={this.isOpen ? \"true\" : \"false\"}\n html-aria-controls={`${this.htmlid}_list`}\n html-aria-activedescendant={this.isOpen ? this.focusedItemId : \"\"}\n html-aria-autocomplete={this.hasAutocomplete() ? \"list\" : undefined}\n onClick={(e: MouseEvent) => this.handleInputClick(e)}\n onKeyDown={(e: KeyboardEvent) => this.handleInputKeyDown(e)}\n onInputChange={(e: CustomEvent) => this.handleInputChange(e)}\n onKeyPress={(e: KeyboardEvent) => {\n if (!this.hasAutocomplete()) {\n e.preventDefault();\n this.scrollToLetter(e.key);\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 const hidden = !this.selectedItem || !this.resetItem;\n\n return (\n <z-list-element\n class={{\n \"hide\": hidden,\n \"reset-item\": true,\n \"reset-item-margin\": !this.hasGroupItems,\n }}\n clickable={true}\n disabled={false}\n dividerType={ListDividerType.ELEMENT}\n role={hidden ? \"presentation\" : \"option\"}\n html-tabindex={0}\n aria-selected=\"false\"\n id={this.getResetOptionId()}\n size={this.hasTreeItems ? ListSize.MEDIUM : this.listSizeType()}\n onClickItem={() => this.handleResetClick()}\n >\n <div\n class={{\n \"reset-item-content\": true,\n \"tree-list-reset-item\": this.hasTreeItems,\n \"active\": this.focusedItemId === this.getResetOptionId(),\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 return (\n <z-list-element\n clickable={!item.disabled}\n disabled={item.disabled}\n dividerType={lastItem ? ListDividerType.HEADER : ListDividerType.ELEMENT}\n role={item.disabled ? \"presentation\" : \"option\"}\n html-tabindex={-1}\n aria-selected={item.selected ? \"true\" : \"false\"}\n id={this.getOptionId(item)}\n size={this.listSizeType()}\n onClickItem={() => this.selectItem(item)}\n >\n <div\n class={{\n \"list-element-container\": true,\n \"active\": this.focusedItemId === this.getOptionId(item),\n }}\n >\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 private renderSelectUlItems():\n | HTMLZListElementElement\n | (HTMLZListElementElement | HTMLZListElementElement[])[]\n | HTMLZListGroupElement[] {\n if (!this.itemsList.length) {\n return this.renderNoSearchResults();\n }\n\n if (this.hasGroupItems) {\n if (this.hasTreeItems) {\n return this.renderGroupedTree();\n }\n\n return this.renderSelectGroupItems();\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, item.disabled);\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 disabledAncestor?: boolean\n ): HTMLZListElementElement[] {\n const isDisabled = item.disabled || disabledAncestor;\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={isDisabled}\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 html-tabindex={null}\n role=\"presentation\"\n >\n <div\n id={this.getOptionId(item)}\n role={isDisabled ? \"presentation\" : \"option\"}\n class={{\"list-element\": true, \"active\": this.focusedItemId === this.getOptionId(item)}}\n onClick={() => this.selectItem(item)}\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.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 role=\"presentation\">\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 isDisabled\n )\n )}\n </div>\n </z-list>\n ) : null}\n </z-list-element>\n );\n }\n\n private renderGroupedTree(): HTMLZListGroupElement[] {\n const groupedItems = this.getGroupedItems();\n\n return groupedItems.map(([category, items], index, entries) => {\n const parentHasSiblings = Object.values(groupedItems).some((groupItems) => groupItems.length > 1);\n\n return (\n <z-list-group\n divider-type={index === entries.length - 1 ? undefined : ListDividerType.ELEMENT}\n hasTreeItems={true}\n aria-labelledby={`${this.htmlid}_tree_${index}`}\n >\n <span\n class=\"body-3-sb z-list-group-title\"\n slot=\"header-title\"\n id={`${this.htmlid}_tree_${index}`}\n aria-hidden=\"true\"\n >\n {category}\n </span>\n <z-list role=\"presentation\">\n {items.map((item, i, arr) => [\n this.renderTreeItems(item, i === arr.length - 1, parentHasSiblings, true, item.disabled),\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 groupedItems = this.getGroupedItems();\n\n return groupedItems.map(([key, items], index) => {\n const isLastGroup = groupedItems.length === index + 1;\n\n return (\n <z-list-group\n divider-type={ListDividerType.ELEMENT}\n aria-labelledby={`${this.htmlid}_group_${index}`}\n >\n <span\n class=\"body-3-sb z-list-group-title\"\n slot=\"header-title\"\n id={`${this.htmlid}_group_${index}`}\n aria-hidden=\"true\"\n >\n {key}\n </span>\n {items.map((item, subindex) => {\n const isLastItem = items.length === subindex + 1;\n\n return this.renderItem(item, isLastGroup && isLastItem);\n })}\n </z-list-group>\n );\n });\n }\n\n private renderNoSearchResults(): HTMLZListElementElement {\n return (\n <z-list-element\n class=\"no-results\"\n size={this.hasTreeItems ? ListSize.MEDIUM : this.listSizeType()}\n html-tabindex={null}\n role=\"presentation\"\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":[]}
@@ -1 +0,0 @@
1
- {"version":3,"names":["stylesCss","ZComboboxStyle0","ZCombobox","watchItems","this","itemsList","items","JSON","parse","selectedCounter","filter","item","checked","length","updateRenderItemsList","watchSearchValue","filterItems","searchValue","emitComboboxChange","comboboxChange","emit","id","inputid","constructor","hostRef","inputType","InputType","TEXT","randomId","ControlSize","BIG","toggleComboBox","bind","closeFilterItems","componentWillLoad","componentWillRender","getControlToListSize","size","X_SMALL","ListSize","SMALL","MEDIUM","LARGE","getOptionId","itemId","getCheckAllOptionId","allOptionsSelected","hasReachedMaxSelections","maxcheckableitems","handleHeaderKeyDown","e","code","KeyboardCode","ENTER","focusedItemId","isopen","hassearch","SPACE","preventDefault","checkOption","ESC","ARROW_DOWN","ARROW_UP","handleArrowsNavigation","handleInputKeyDown","TAB","optionId","map","Object","assign","i","includes","stopPropagation","currElem","element","shadowRoot","querySelector","options","Array","from","querySelectorAll","currElemIndex","indexOf","firstElemIndex","lastElemIndex","nextElem","scrollIntoView","block","resetRenderItemsList","renderItemsList","forEach","push","value","start","name","toUpperCase","end","newName","substring","getComboboxA11yAttributes","isZInput","role","ariaLabel","htmlAriaLabel","ariaExpanded","ariaActivedescendant","ariaControls","renderHeader","comboboxA11yAttributes","h","class","onClick","onKeyDown","tabindex","label","undefined","renderContent","renderSearchInput","join","renderItems","tabIndex","renderList","renderItem","index","isDisabled","htmlTabindex","dividerType","ListDividerType","ELEMENT","NONE","disabled","getPlainText","innerHTML","renderNoSearchResults","hasgroupitems","renderGroups","renderCheckAll","newData","reduce","group","category","zListItem","_a","listGroups","entries","key","slot","noresultslabel","htmlid","searchlabel","placeholder","searchplaceholder","htmltitle","searchtitle","type","message","onInputChange","detail","hascheckall","allChecked","dividerColor","uncheckalltext","checkalltext","render","open","fixed","isfixed"],"sources":["src/components/z-combobox/styles.css?tag=z-combobox&encapsulation=shadow","src/components/z-combobox/index.tsx"],"sourcesContent":["@import \"../css-components/z-label/styles.css\";\n\n:host {\n display: block;\n min-width: 290px;\n color: var(--color-form-default-text);\n fill: var(--color-form-default-icon);\n font-family: var(--font-family-sans);\n}\n\n:host > div.fixed {\n position: relative;\n}\n\n:host > div > .header {\n position: relative;\n z-index: 10;\n display: flex;\n min-height: 42px;\n align-items: center;\n justify-content: space-between;\n padding: 0 calc(var(--space-unit) * 1.5);\n border: var(--border-size-small) solid var(--color-form-surface04);\n margin: 0;\n background-color: var(--color-form-background);\n border-radius: var(--border-radius-small);\n cursor: pointer;\n}\n\n:host([size=\"small\"]) > div > .header {\n min-height: 34px;\n font-size: var(--font-size-2);\n}\n\n:host([size=\"x-small\"]) > div > .header {\n min-height: 30px;\n font-size: var(--font-size-2);\n}\n\n:host > div > .header:hover {\n outline: var(--border-size-medium) solid var(--color-form-surface04);\n outline-offset: -2px;\n}\n\n:host > div > div.header:focus:focus-visible {\n z-index: 16;\n box-shadow: var(--shadow-focus-primary);\n outline: none;\n}\n\n:host > div > .header > span.body-3 > span {\n font-weight: var(--font-sb);\n}\n\n:host > div > .header > z-icon {\n fill: var(--color-form-default-icon);\n transform: rotate(360deg);\n transition: all 200ms linear;\n}\n\n:host > div > .header > z-icon.small,\n:host > div > .header > z-icon.x-small {\n --z-icon-width: 16px;\n --z-icon-height: 16px;\n}\n\n:host > div.open > .header {\n border: var(--border-size-small) solid var(--color-form-active-primary);\n border-radius: var(--border-radius-small) var(--border-radius-small) 0 0;\n}\n\n:host > div.disabled {\n pointer-events: none;\n}\n\n:host > div.disabled .header {\n border-color: var(--color-form-disabled03);\n fill: var(--color-form-disabled01-icon);\n}\n\n:host > div.disabled .header > span.body-3 {\n color: var(--color-form-disabled03);\n}\n\n:host > div.disabled .header > z-icon:last-child {\n fill: var(--color-form-disabled01-icon);\n}\n\n:host > div.open > .header > z-icon {\n fill: var(--color-form-default-icon);\n transform: rotate(180deg);\n transition: all 200ms linear;\n}\n\n:host > div > div.open-combo-data {\n display: none;\n}\n\n:host > div.open > div.open-combo-data {\n position: relative;\n z-index: 12;\n display: block;\n padding: var(--space-unit) calc(var(--space-unit) * 2);\n border: var(--border-size-small) solid var(--color-form-surface03);\n border-top: 0;\n background-color: var(--color-form-background);\n border-radius: 0;\n box-shadow: var(--shadow-2);\n}\n\n:host .open .open-combo-data z-input .z-label {\n color: var(--color-form-default-text);\n}\n\n:host > div.open > div.open-combo-data > div > div {\n overflow: auto;\n max-height: 235px;\n padding: 0;\n padding-left: var(--space-unit); /* padding left and negative margin in order to enable focus */\n margin-left: calc(var(--space-unit) * -1); /* padding left and negative margin in order to enable focus */\n}\n\n:host > div.open > div.open-combo-data > z-input {\n width: 100%;\n margin-bottom: calc(var(--space-unit) * 2);\n}\n\n:host > div.open > div.open-combo-data > div > div > ul {\n max-height: 235px;\n padding: 0 calc(var(--space-unit) * 0.5); /* needed for checkbox focus shadow */\n margin: 0;\n}\n\n:host .open-combo-data z-list-element {\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:host .open-combo-data z-list-element[disabled] {\n pointer-events: none;\n}\n\n:host .open-combo-data z-list-element .option-wrap {\n display: flex;\n flex-direction: row;\n align-items: center;\n cursor: pointer;\n gap: var(--space-unit);\n}\n\n:host .open-combo-data z-list-element[size=\"medium\"] .option-wrap,\n:host .open-combo-data z-list-element[size=\"small\"] .option-wrap {\n --z-icon-width: 16px;\n --z-icon-height: 16px;\n\n font-size: var(--font-size-2);\n gap: calc(var(--space-unit) / 2);\n}\n\n:host .open-combo-data z-list-element .option-wrap > z-icon {\n fill: var(--color-primary01);\n}\n\n:host .open-combo-data z-list-element[disabled] .option-wrap > z-icon {\n fill: var(--color-disabled01);\n}\n\n:host .open-combo-data z-list-element .option-wrap > z-icon.focused {\n border-radius: var(--border-radius-small);\n box-shadow: var(--shadow-focus-primary);\n outline: none;\n}\n\n:host .open-combo-data z-list-element .option-wrap > [role=\"option\"]:focus,\n:host .open-combo-data z-list-element .option-wrap > [role=\"option\"]:focus-visible {\n outline: none;\n}\n\n::-webkit-scrollbar {\n width: 6px;\n background: linear-gradient(to right, transparent 0 1px, var(--gray200) 1px 5px, transparent 5px 6px);\n}\n\n::-webkit-scrollbar-thumb {\n background-color: var(--color-primary01);\n}\n\n::-webkit-scrollbar-thumb:hover {\n background-color: var(--color-hover-primary);\n}\n\n/* Firefox scrollbar */\n@supports not selector(::-webkit-scrollbar-track) {\n :host {\n scrollbar-color: var(--color-primary01) transparent;\n }\n}\n\n:host > div.open > z-input {\n position: relative;\n z-index: 1;\n width: 238px;\n margin: 0 calc(var(--space-unit) * 2);\n color: var(--color-form-active-primary);\n}\n\n:host > div.open > div.open-combo-data > div > div.search {\n overflow: hidden;\n max-height: none;\n margin-top: 0;\n}\n\n:host > div.open > div.open-combo-data > div > div.search > ul {\n overflow: auto;\n max-height: 180px;\n padding: var(--space-unit) calc(var(--space-unit) * 2);\n}\n\n:host .open .open-combo-data .search .no-results {\n display: flex;\n align-items: center;\n column-gap: var(--space-unit);\n}\n\n:host > .open > .open-combo-data .search .close-search {\n display: flex;\n justify-content: center;\n}\n\n:host > div.open > div.open-combo-data > div > div.search .close-search > a {\n display: inline-block;\n height: 44px;\n color: var(--color-form-active-primary);\n cursor: pointer;\n font-size: 14px;\n font-weight: var(--font-sb);\n line-height: 44px;\n text-align: center;\n text-transform: uppercase;\n}\n\n:host > div.open > div.open-combo-data > div > div.search .close-search > a:focus:focus-visible {\n box-shadow: var(--shadow-focus-primary);\n outline: none;\n}\n\n:host > div.open > div.open-combo-data > div > div.check-all-wrapper {\n /* padding left and negative margin in order to enable focus */\n padding: calc(var(--space-unit) * 2) calc(var(--space-unit) * 0.5) calc(var(--space-unit) * 2)\n calc(var(--space-unit) * 1.5);\n border-bottom: var(--border-size-small) solid var(--gray800);\n margin-bottom: var(--space-unit);\n margin-left: calc(var(--space-unit) * -1);\n text-align: left;\n}\n\n:host([size=\"small\"]) > div.open > div.open-combo-data > div > div.check-all-wrapper {\n padding: calc(var(--space-unit) * 1.5) calc(var(--space-unit) * 0.5);\n}\n\n:host([size=\"x-small\"]) > div.open > div.open-combo-data > div > div.check-all-wrapper {\n padding: var(--space-unit) calc(var(--space-unit) * 0.5);\n}\n","import {Component, Element, Event, EventEmitter, Prop, State, Watch, h} from \"@stencil/core\";\nimport {ComboItem, ControlSize, InputType, KeyboardCode, ListDividerType, ListSize} from \"../../beans\";\nimport {getPlainText, randomId} from \"../../utils/utils\";\nimport {ZInput} from \"../z-input\";\n\n@Component({\n tag: \"z-combobox\",\n styleUrl: \"styles.css\",\n shadow: true,\n})\nexport class ZCombobox {\n @Element() element: HTMLZComboboxElement;\n\n /** input unique id */\n @Prop()\n inputid = `combo-${randomId()}`;\n\n /** list items array */\n @Prop()\n items: ComboItem[] | string;\n\n /** label text */\n @Prop()\n label: string;\n\n /** the combobox is disabled */\n @Prop({reflect: true})\n disabled?: boolean = false;\n\n /** show search input flag (optional) */\n @Prop()\n hassearch?: boolean = false;\n\n /** search input label text (optional) */\n @Prop()\n searchlabel?: string;\n\n /** search input placeholder text (optional) */\n @Prop()\n searchplaceholder?: string;\n\n /** search input title text (optional) */\n @Prop()\n searchtitle?: string;\n\n /** no result text message */\n @Prop()\n noresultslabel?: string = \"Nessun risultato\";\n\n /** toggle combo list opening flag */\n @Prop({mutable: true})\n isopen = false;\n\n /** fixed style flag */\n @Prop()\n isfixed = false;\n\n /** show \"check all\" checkbox (optional) */\n @Prop()\n hascheckall?: boolean = false;\n\n /** check all label (optional) */\n @Prop()\n checkalltext?: string = \"Seleziona tutti\";\n\n /** uncheck all label (optional) */\n @Prop()\n uncheckalltext?: string = \"Deseleziona tutti\";\n\n /** max number of checkable items (0 = unlimited) */\n @Prop()\n maxcheckableitems = 0;\n\n /** group items by category */\n @Prop()\n hasgroupitems?: boolean;\n\n /** Available sizes: `big`, `small` and `x-small`. Defaults to `big`. */\n @Prop()\n size?: ControlSize = ControlSize.BIG;\n\n /** the combobox aria-label */\n @Prop()\n htmlAriaLabel?: string;\n\n @State()\n searchValue: string;\n\n @State()\n selectedCounter: number;\n\n @State()\n renderItemsList: ComboItem[] = []; // used for render only\n\n @State()\n focusedItemId = \"\";\n\n private itemsList: ComboItem[] = [];\n\n private inputType: InputType = InputType.TEXT;\n\n @Watch(\"items\")\n watchItems(): void {\n this.itemsList = typeof this.items === \"string\" ? JSON.parse(this.items) : this.items;\n this.selectedCounter = this.itemsList.filter((item) => item.checked).length;\n this.updateRenderItemsList();\n }\n\n @Watch(\"searchValue\")\n watchSearchValue(): void {\n this.filterItems(this.searchValue);\n }\n\n /** Emitted when value is checked/unchecked. Returns id, items. */\n @Event()\n comboboxChange: EventEmitter;\n\n private emitComboboxChange(): void {\n this.comboboxChange.emit({id: this.inputid, items: this.itemsList});\n }\n\n constructor() {\n this.toggleComboBox = this.toggleComboBox.bind(this);\n this.closeFilterItems = this.closeFilterItems.bind(this);\n }\n\n componentWillLoad(): void {\n this.watchItems();\n }\n\n componentWillRender(): void {\n this.selectedCounter = this.itemsList.filter((item) => item.checked).length;\n }\n\n private getControlToListSize(): ListSize {\n switch (this.size) {\n case ControlSize.X_SMALL:\n return ListSize.SMALL;\n case ControlSize.SMALL:\n return ListSize.MEDIUM;\n default:\n return ListSize.LARGE;\n }\n }\n\n private getOptionId(itemId: string): string {\n return `${this.inputid}-option-${itemId}`;\n }\n\n private getCheckAllOptionId(): string {\n return `${this.inputid}-check-all`;\n }\n\n private allOptionsSelected(): boolean {\n return this.selectedCounter === this.itemsList.length;\n }\n\n private hasReachedMaxSelections(): boolean {\n return !!(this.maxcheckableitems && this.selectedCounter >= this.maxcheckableitems);\n }\n\n private handleHeaderKeyDown(e: KeyboardEvent): void {\n if (e.code === KeyboardCode.ENTER && !this.focusedItemId) {\n this.toggleComboBox();\n }\n\n if (!this.isopen || this.hassearch) {\n return;\n }\n\n switch (e.code as KeyboardCode) {\n case KeyboardCode.SPACE:\n case KeyboardCode.ENTER:\n if (this.focusedItemId) {\n e.preventDefault();\n this.checkOption(this.focusedItemId);\n }\n break;\n case KeyboardCode.ESC:\n if (this.focusedItemId) {\n this.focusedItemId = \"\";\n }\n break;\n case KeyboardCode.ARROW_DOWN:\n case KeyboardCode.ARROW_UP:\n this.handleArrowsNavigation(e);\n break;\n }\n }\n\n private handleInputKeyDown(e: KeyboardEvent): void {\n switch (e.code as KeyboardCode) {\n case KeyboardCode.ENTER:\n case KeyboardCode.SPACE:\n if (this.focusedItemId) {\n e.preventDefault();\n this.checkOption(this.focusedItemId);\n break;\n }\n break;\n case KeyboardCode.ARROW_DOWN:\n case KeyboardCode.ARROW_UP:\n this.handleArrowsNavigation(e);\n break;\n case KeyboardCode.ESC:\n if (this.focusedItemId) {\n this.focusedItemId = \"\";\n break;\n }\n this.closeFilterItems();\n break;\n case KeyboardCode.TAB:\n this.focusedItemId = \"\";\n break;\n }\n }\n\n private checkOption(optionId: string): void {\n if (optionId === this.getCheckAllOptionId()) {\n this.itemsList = this.itemsList.map((item: ComboItem) => ({\n ...item,\n checked: !this.allOptionsSelected(),\n }));\n\n this.focusedItemId = this.getCheckAllOptionId();\n } else {\n this.itemsList = this.itemsList.map((i: ComboItem) => {\n if (optionId === this.getOptionId(i.id)) {\n i.checked = !i.checked;\n }\n\n return i;\n });\n }\n\n this.updateRenderItemsList();\n this.emitComboboxChange();\n }\n\n private handleArrowsNavigation(e: KeyboardEvent): void {\n if (![KeyboardCode.ARROW_DOWN, KeyboardCode.ARROW_UP].includes(e.code as KeyboardCode) || !this.isopen) {\n return;\n }\n\n e.preventDefault();\n e.stopPropagation();\n\n const currElem = this.focusedItemId ? this.element.shadowRoot.querySelector(`#${this.focusedItemId}`) : null;\n const options = Array.from(this.element.shadowRoot.querySelectorAll('[role=\"option\"]'));\n\n if (!options.length) {\n return;\n }\n\n const currElemIndex = currElem ? options.indexOf(currElem) : null;\n const firstElemIndex = 0;\n const lastElemIndex = options.length - 1;\n\n let nextElem = null;\n if (e.code === KeyboardCode.ARROW_DOWN) {\n nextElem =\n currElemIndex === null ? options[firstElemIndex] : options[currElemIndex + 1] || options[lastElemIndex];\n } else if (e.code === KeyboardCode.ARROW_UP) {\n nextElem =\n currElemIndex === null ? options[lastElemIndex] : options[currElemIndex - 1] || options[firstElemIndex];\n }\n\n this.focusedItemId = nextElem.id;\n nextElem.scrollIntoView({block: \"center\"});\n }\n\n private updateRenderItemsList(): void {\n if (this.searchValue) {\n this.filterItems(this.searchValue);\n } else {\n this.resetRenderItemsList();\n }\n }\n\n private resetRenderItemsList(): void {\n const renderItemsList = [];\n this.itemsList.forEach((item: ComboItem) => {\n renderItemsList.push({...item});\n });\n this.renderItemsList = renderItemsList;\n }\n\n private filterItems(value: string): void {\n if (!value) {\n return this.closeFilterItems();\n }\n\n this.resetRenderItemsList();\n this.renderItemsList = this.renderItemsList.filter((item) => {\n const start = item.name.toUpperCase().indexOf(value.toUpperCase());\n const end = start + value.length;\n const newName =\n item.name.substring(0, start) +\n \"<strong>\" +\n item.name.substring(start, end) +\n \"</strong>\" +\n item.name.substring(end, item.name.length);\n\n item.name = newName;\n\n return start >= 0;\n });\n }\n\n private closeFilterItems(): void {\n this.searchValue = \"\";\n this.resetRenderItemsList();\n }\n\n private toggleComboBox(): void {\n this.isopen = !this.isopen;\n }\n\n private getComboboxA11yAttributes(isZInput: boolean): Record<string, string> {\n const role = \"combobox\";\n const ariaLabel = this.htmlAriaLabel;\n const ariaExpanded = this.isopen ? \"true\" : \"false\";\n const ariaActivedescendant = this.isopen ? this.focusedItemId : \"\";\n const ariaControls = `${this.inputid}_list`;\n\n if (isZInput) {\n return {\n \"role\": role,\n \"aria-label\": ariaLabel,\n \"html-aria-expanded\": ariaExpanded,\n \"html-aria-activedescendant\": ariaActivedescendant,\n \"html-aria-controls\": ariaControls,\n };\n }\n\n return {\n \"role\": role,\n \"aria-label\": ariaLabel,\n \"aria-expanded\": ariaExpanded,\n \"aria-activedescendant\": ariaActivedescendant,\n \"aria-controls\": ariaControls,\n };\n }\n\n private renderHeader(): HTMLDivElement {\n const comboboxA11yAttributes = !this.hassearch ? this.getComboboxA11yAttributes(false) : {};\n\n return (\n <div\n class=\"header\"\n onClick={() => this.toggleComboBox()}\n onKeyDown={(e: KeyboardEvent) => this.handleHeaderKeyDown(e)}\n role=\"button\"\n tabindex={0}\n aria-controls=\"open-combo-data\"\n aria-expanded={this.isopen ? \"true\" : \"false\"}\n {...comboboxA11yAttributes}\n >\n <span\n class=\"body-3\"\n aria-label={\n this.label\n ? `${this.label}${this.selectedCounter > 0 ? ` - ${this.selectedCounter} selezionati` : ``}`\n : undefined\n }\n >\n {this.label}\n <span>{this.selectedCounter > 0 && ` (${this.selectedCounter})`}</span>\n </span>\n <z-icon\n name=\"caret-down\"\n class={this.size}\n />\n </div>\n );\n }\n\n private renderContent(): HTMLDivElement {\n return (\n <div\n id=\"open-combo-data\"\n class=\"open-combo-data\"\n >\n {this.hassearch && this.renderSearchInput()}\n <div\n role=\"listbox\"\n aria-label={this.label}\n aria-multiselectable=\"true\"\n id={`${this.inputid}_list`}\n aria-owns={Array.from(this.element.shadowRoot.querySelectorAll(\"[role='option']\"))\n .map((item) => item.id)\n .join(\" \")}\n >\n {this.renderItems()}\n </div>\n </div>\n );\n }\n\n private renderItems(): HTMLDivElement {\n return (\n <div\n class={this.searchValue && \"search\"}\n tabIndex={-1}\n role=\"presentation\"\n >\n {this.renderList(this.renderItemsList)}\n </div>\n );\n }\n\n private renderItem(item: ComboItem, index: number, length: number): HTMLZListElement {\n const optionId = this.getOptionId(item.id);\n const isDisabled = !item.checked && this.hasReachedMaxSelections();\n\n return (\n <z-list-element\n htmlTabindex={-1}\n dividerType={index !== length - 1 ? ListDividerType.ELEMENT : ListDividerType.NONE}\n size={this.getControlToListSize()}\n role=\"presentation\"\n disabled={!!isDisabled}\n >\n <span\n class=\"option-wrap\"\n role=\"presentation\"\n onClick={() => {\n this.focusedItemId = \"\";\n this.checkOption(optionId);\n }}\n >\n <z-icon\n name={item.checked ? \"checkbox-checked\" : \"checkbox\"}\n class={this.focusedItemId === optionId ? \"focused\" : \"\"}\n />\n <span\n id={optionId}\n role={isDisabled ? \"presentation\" : \"option\"}\n aria-selected={item.checked ? \"true\" : \"false\"}\n aria-label={getPlainText(item.name)}\n innerHTML={item.name}\n />\n </span>\n </z-list-element>\n );\n }\n\n private renderList(items: ComboItem[]): HTMLUListElement {\n if (!items) {\n return;\n }\n if (!items.length && this.searchValue) {\n return this.renderNoSearchResults();\n }\n\n if (this.hasgroupitems) {\n return this.renderGroups(items);\n }\n\n return (\n <ul role=\"presentation\">\n {this.renderCheckAll()}\n {items.map((item, i) => {\n return this.renderItem(item, i, items.length);\n })}\n </ul>\n );\n }\n\n private renderGroups(items: ComboItem[]): HTMLUListElement {\n const newData = items.reduce((group, item, index) => {\n const category = item.category || \"Altra categoria\";\n const zListItem = this.renderItem(item, index, items.length);\n\n group[category] = group[category] ?? [];\n group[category].push(zListItem);\n\n return group;\n }, {});\n\n const listGroups = Object.entries(newData as {[key: string]: HTMLZListElementElement[]}).map(\n ([key, value], index) => {\n return (\n <z-list-group\n size={this.getControlToListSize()}\n divider-type={ListDividerType.ELEMENT}\n aria-labelledby={`${this.inputid}_list_group_${index}`}\n >\n <span\n class=\"body-3-sb z-list-group-title\"\n slot=\"header-title\"\n id={`${this.inputid}_list_group_${index}`}\n aria-hidden=\"true\"\n >\n {key}\n </span>\n {value.map((item) => item)}\n </z-list-group>\n );\n }\n );\n\n return (\n <ul role=\"presentation\">\n {this.renderCheckAll()}\n {listGroups}\n </ul>\n );\n }\n\n private renderNoSearchResults(): HTMLUListElement {\n return (\n <div class=\"no-results\">\n <span>{this.noresultslabel}</span>\n </div>\n );\n }\n\n private renderSearchInput(): ZInput {\n return (\n <z-input\n htmlid={`${this.inputid}_search`}\n label={this.searchlabel}\n placeholder={this.searchplaceholder}\n htmltitle={this.searchtitle}\n type={this.inputType}\n value={this.searchValue}\n message={false}\n size={this.size}\n html-aria-autocomplete=\"list\"\n {...this.getComboboxA11yAttributes(true)}\n onKeyDown={(e: KeyboardEvent) => this.handleInputKeyDown(e)}\n onInputChange={(e: CustomEvent) => {\n this.searchValue = e.detail.value;\n this.focusedItemId = \"\";\n }}\n />\n );\n }\n\n private renderCheckAll(): HTMLDivElement {\n if (!this.hascheckall || this.searchValue) {\n return;\n }\n\n const optionId = this.getCheckAllOptionId();\n const allChecked = this.allOptionsSelected();\n const isDisabled =\n this.hasReachedMaxSelections() || (this.maxcheckableitems && this.maxcheckableitems < this.itemsList.length);\n\n return (\n <z-list-element\n class=\"check-all-wrapper\"\n role=\"presentation\"\n htmlTabindex={-1}\n dividerType={ListDividerType.ELEMENT}\n dividerColor=\"gray800\"\n size={this.getControlToListSize()}\n disabled={!!isDisabled}\n >\n <span\n class=\"option-wrap\"\n role=\"presentation\"\n onClick={() => this.checkOption(optionId)}\n >\n <z-icon\n name={allChecked ? \"checkbox-checked\" : \"checkbox\"}\n class={this.focusedItemId === optionId ? \"focused\" : \"\"}\n />\n <span\n id={optionId}\n role={isDisabled ? \"presentation\" : \"option\"}\n aria-selected={allChecked ? \"true\" : \"false\"}\n >\n {allChecked ? this.uncheckalltext : this.checkalltext}\n </span>\n </span>\n </z-list-element>\n );\n }\n\n render(): HTMLDivElement {\n return (\n <div\n data-action={`combo-${this.inputid}`}\n class={{open: this.isopen, fixed: this.isfixed, disabled: this.disabled}}\n id={this.inputid}\n >\n {this.renderHeader()}\n {!this.disabled && this.renderContent()}\n </div>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +0,0 @@
1
- {"version":3,"names":["stylesCss","ZSelectStyle0","ZSelect","constructor","hostRef","this","itemsList","randomId","ControlSize","BIG","toggleSelectUl","bind","handleSelectFocus","watchItems","getInitialItemsArray","selectedItem","findSelectedItem","getSelectedItem","getValue","getSelectedValue","setValue","value","values","push","length","updateSelection","emitOptionSelect","optionSelect","emit","id","htmlid","selected","emitResetSelect","resetSelect","componentWillLoad","componentWillRender","filterItems","searchString","items","JSON","parse","mapSelectedItemToItemsArray","initialItemsList","_a","getOptionId","item","getResetOptionId","getItemIdFromOptionId","optionId","replace","getGroupedItems","Object","entries","reduce","group","category","prevList","map","assign","name","getPlainText","hasTreeItems","filterTree","filter","toUpperCase","includes","getHighlightedText","matchingParent","match","newItem","children","showChildrenOfMatchingParent","text","search","upperText","upperSearch","start","indexOf","end","substring","hasAutocomplete","boolean","autocomplete","handleInputChange","e","detail","isOpen","selectedId","forEach","found","selectItem","disabled","handleResetClick","focusedItemId","handleInputKeyDown","code","KeyboardCode","ENTER","SPACE","itemId","find","ARROW_DOWN","ARROW_UP","arrowsSelectNav","arrows","key","preventDefault","stopPropagation","currElem","host","querySelector","options","Array","from","querySelectorAll","currElemIndex","firstElemIndex","lastElemIndex","focusSelectItem","nextElem","elem","scrollIntoView","block","selfFocusOnClose","readonly","document","addEventListener","removeEventListener","focus","handleInputClick","target","closest","KeyboardEvent","ESC","TAB","clickedElement","getClickedElement","hasAttribute","getElementTree","nodeName","toLowerCase","zSelect","scrollToLetter","letter","foundItem","charAt","renderInput","undefined","h","class","placeholder","label","ariaLabel","icon","hasclearicon","message","status","size","role","onClick","onKeyDown","onInputChange","onKeyPress","renderSelectUl","fixed","isfixed","tabindex","listSizeType","resetItem","renderResetItem","renderSelectUlItems","hidden","hide","hasGroupItems","clickable","dividerType","ListDividerType","ELEMENT","ListSize","MEDIUM","onClickItem","active","renderItem","lastItem","HEADER","innerHTML","NONE","SMALL","X_SMALL","renderNoSearchResults","renderGroupedTree","renderSelectGroupItems","index","array","isLastItem","parentHasSiblings","renderTreeItems","isLastChild","isTopLevel","disabledAncestor","isDisabled","hasDivider","_b","title","child","arr","groupedItems","some","groupItems","slot","i","style","zIndex","height","isLastGroup","subindex","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-surface02);\n --background-active-color-list-element: var(--color-surface02);\n}\n\n.select-wrapper .ul-scroll-wrapper > z-list {\n position: relative;\n overflow: auto;\n max-height: 240px;\n padding: var(--space-unit) calc(var(--space-unit) * 1.5);\n margin: 0;\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.active {\n box-shadow: var(--shadow-focus-primary);\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-content.active {\n box-shadow: var(--shadow-focus-primary);\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: -8px;\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: -8px;\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 > .list-element {\n display: flex;\n justify-content: space-between;\n padding: calc(var(--space-unit) * 1.5) var(--space-unit);\n cursor: pointer;\n}\n\nz-list-element > .list-element.active {\n box-shadow: var(--shadow-focus-primary);\n}\n\nz-list-element:not([disabled]) > .list-element:hover,\nz-list-element:not([disabled]) > .list-element:hover::after {\n background-color: var(--background-hover-color-list-element, var(--color-background));\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: 45px;\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 right: -25px;\n display: block;\n width: 100%;\n height: 45px;\n content: \"\";\n transform: translateX(-100%);\n}\n\nz-list-element.grouped-tree-parent-node .list-element::after {\n position: absolute;\n right: -25px;\n display: block;\n width: 100%;\n height: 45px;\n content: \"\";\n transform: translateX(-100%);\n}\n\n.item-label.selected {\n font-weight: bold;\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 right: -18px;\n display: block;\n width: 100%;\n height: 45px;\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: 45px;\n content: \"\";\n transform: translateX(-100%);\n}\n\n.children-node z-list-element::before,\n.children-node z-list-element::after {\n left: -8px;\n}\n\n.children-node .children-node z-list-element::before,\n.children-node .children-node z-list-element::after {\n left: -8px;\n}\n\n.children-node > z-list-element {\n padding: 0;\n}\n","import {Component, Element, Event, EventEmitter, Method, Prop, State, Watch, h} from \"@stencil/core\";\nimport {ControlSize, InputStatus, KeyboardCode, ListDividerType, ListSize, SelectItem} from \"../../beans\";\nimport {boolean, getClickedElement, getElementTree, getPlainText, randomId} from \"../../utils/utils\";\n\n@Component({\n tag: \"z-select\",\n styleUrl: \"styles.css\",\n shadow: false,\n scoped: true,\n})\nexport class ZSelect {\n @Element() host: HTMLZSelectElement;\n\n /** the id of the input element */\n @Prop()\n htmlid = `id-${randomId()}`;\n\n /** the input select options */\n @Prop()\n items: SelectItem[] | string = [];\n\n /** the input name */\n @Prop()\n name?: string;\n\n /** the input label */\n @Prop()\n label?: string;\n\n /** the input aria-label */\n @Prop()\n ariaLabel = \"\";\n\n /** the input is disabled */\n @Prop()\n disabled?: boolean = false;\n\n /** the input is readonly */\n @Prop()\n readonly?: boolean = false;\n\n /** the input placeholder (optional) */\n @Prop()\n placeholder?: string;\n\n /** the input html title (optional) */\n @Prop()\n htmltitle?: string;\n\n /** the input status (optional) */\n @Prop()\n status?: InputStatus;\n\n /** input helper message (optional) - if set to `false` message won't be displayed */\n @Prop()\n message?: string | boolean = true;\n\n /** the input has autocomplete option */\n @Prop()\n autocomplete?: boolean = false;\n\n /** no result text message */\n @Prop()\n noresultslabel?: string = \"Nessun risultato\";\n\n /** */\n @Prop()\n hasGroupItems?: boolean;\n\n /** */\n @Prop()\n hasTreeItems?: boolean;\n\n /** If true and an item matches the search string, children of matching item are shown even if they don't match the search string */\n @Prop()\n showChildrenOfMatchingParent?: boolean;\n\n /** When fixed, it occupies space and pushes down next elements. */\n @Prop()\n isfixed?: boolean = false;\n\n /** */\n @Prop()\n resetItem?: string;\n\n /** Available sizes: `big`, `small` and `x-small`. Defaults to `big`. */\n @Prop()\n size?: ControlSize = ControlSize.BIG;\n\n @State()\n isOpen = false;\n\n @State()\n selectedItem: null | SelectItem = null;\n\n @State()\n focusedItemId: string;\n\n @State()\n searchString: null | string;\n\n private itemsList: SelectItem[] = [];\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\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 this.updateSelection(initialItemsList, this.selectedItem?.id);\n\n return initialItemsList;\n }\n\n private getSelectedValue(): string {\n return this.selectedItem?.id;\n }\n\n private getOptionId(item: SelectItem): string {\n return `${this.htmlid}_key_${item.id}`;\n }\n\n private getResetOptionId(): string {\n return `${this.htmlid}_key_reset`;\n }\n\n private getItemIdFromOptionId(optionId: string): string {\n return optionId.replace(`${this.htmlid}_key_`, ``);\n }\n\n private getGroupedItems(): [string, SelectItem[]][] {\n if (!this.itemsList.length) {\n return [];\n }\n\n return Object.entries(\n this.itemsList.reduce(\n (group, item) => {\n const category = item.category || \"Altra categoria\";\n group[category] = group[category] || [];\n group[category].push(item);\n\n return group;\n },\n {} as Record<string, SelectItem[]>\n )\n );\n }\n\n private filterItems(searchString: string): void {\n let prevList = this.mapSelectedItemToItemsArray();\n\n if (!searchString?.length) {\n this.itemsList = prevList;\n\n return;\n }\n\n prevList = prevList.map((item) => ({...item, name: getPlainText(item.name)}));\n\n if (this.hasTreeItems) {\n this.itemsList = this.filterTree(prevList, searchString, false);\n } else {\n this.itemsList = prevList\n .filter((item: SelectItem) => item.name.toUpperCase().includes(searchString.toUpperCase()))\n .map((item: SelectItem) => {\n item.name = this.getHighlightedText(item.name, searchString);\n\n return item;\n });\n }\n }\n\n private filterTree(items: SelectItem[], searchString: string, matchingParent: boolean): SelectItem[] {\n if (!items) {\n return [];\n }\n\n return items\n .map((item) => {\n const match = item.name.toUpperCase().includes(searchString.toUpperCase());\n\n const newItem: SelectItem = {...item};\n if (newItem.children && newItem.children.length > 0) {\n newItem.children = this.filterTree(\n newItem.children.map((item) => ({...item, name: getPlainText(item.name)})),\n searchString,\n match\n );\n }\n\n if (match) {\n newItem.name = this.getHighlightedText(newItem.name, searchString);\n }\n if (\n match ||\n (newItem.children && newItem.children.length > 0) ||\n (this.showChildrenOfMatchingParent && matchingParent)\n ) {\n return newItem;\n }\n\n return null;\n })\n .filter((item) => item !== null) as SelectItem[];\n }\n\n private getHighlightedText(text: string, search: string): string {\n const upperText = text.toUpperCase();\n const upperSearch = search.toUpperCase();\n const start = upperText.indexOf(upperSearch);\n\n if (start === -1) {\n return text;\n }\n\n const end = start + search.length;\n\n return text.substring(0, start) + `<strong>${text.substring(start, end)}</strong>` + text.substring(end);\n }\n\n private hasAutocomplete(): boolean {\n return boolean(this.autocomplete) === true;\n }\n\n private handleInputChange(e: CustomEvent): void {\n this.searchString = e.detail.value;\n if (!this.isOpen) {\n this.toggleSelectUl();\n }\n }\n\n private updateSelection(items: SelectItem[], selectedId: string): void {\n if (items) {\n items.forEach((item) => {\n item.selected = item.id === selectedId;\n if (item.children && item.children.length > 0) {\n this.updateSelection(item.children, selectedId);\n }\n });\n }\n }\n\n private findSelectedItem(items: SelectItem[]): SelectItem | null {\n if (items) {\n for (const item of items) {\n if (item.selected) {\n return item;\n }\n if (item.children && item.children.length > 0) {\n const found = this.findSelectedItem(item.children);\n if (found) {\n return found;\n }\n }\n }\n }\n\n return null;\n }\n\n private selectItem(selected: null | SelectItem): void {\n if (selected?.disabled) {\n return;\n }\n\n this.itemsList = this.getInitialItemsArray();\n\n if (selected) {\n this.updateSelection(this.itemsList, selected.id);\n }\n\n this.selectedItem = this.findSelectedItem(this.itemsList);\n this.emitOptionSelect();\n this.toggleSelectUl();\n if (this.searchString) {\n this.searchString = null;\n }\n }\n\n private handleResetClick(): void {\n this.selectedItem = null;\n this.searchString = null;\n this.focusedItemId = \"\";\n this.emitResetSelect();\n this.toggleSelectUl();\n }\n\n private handleInputKeyDown(e: KeyboardEvent): void {\n switch (e.code as KeyboardCode) {\n case KeyboardCode.ENTER:\n case KeyboardCode.SPACE:\n if (this.focusedItemId) {\n if (this.focusedItemId === this.getResetOptionId()) {\n this.handleResetClick();\n } else {\n const itemId = this.getItemIdFromOptionId(this.focusedItemId);\n const item = this.itemsList.find((e) => e.id === itemId) || null;\n if (item) {\n this.selectedItem = item;\n this.emitOptionSelect();\n this.toggleSelectUl();\n }\n }\n }\n break;\n case KeyboardCode.ARROW_DOWN:\n case KeyboardCode.ARROW_UP:\n this.arrowsSelectNav(e);\n break;\n }\n }\n\n private arrowsSelectNav(e: KeyboardEvent): void {\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 currElem = this.focusedItemId ? this.host.querySelector(`#${this.focusedItemId}`) : null;\n const options = Array.from(this.host.querySelectorAll('[role=\"option\"]'));\n\n if (!options.length) {\n return;\n }\n\n const currElemIndex = currElem ? options.indexOf(currElem) : null;\n const firstElemIndex = 0;\n const lastElemIndex = options.length - 1;\n\n if (!this.isOpen) {\n this.toggleSelectUl();\n\n if (this.selectedItem) {\n this.focusSelectItem(this.getOptionId(this.selectedItem));\n\n return;\n }\n }\n\n let nextElem = null;\n if (e.code === KeyboardCode.ARROW_DOWN) {\n nextElem =\n currElemIndex === null ? options[firstElemIndex] : options[currElemIndex + 1] || options[lastElemIndex];\n } else if (e.code === KeyboardCode.ARROW_UP) {\n nextElem =\n currElemIndex === null ? options[lastElemIndex] : options[currElemIndex - 1] || options[firstElemIndex];\n }\n\n this.focusSelectItem(nextElem.id);\n }\n\n private focusSelectItem(optionId: string): void {\n this.focusedItemId = optionId;\n const elem = this.host.querySelector(`#${optionId}`) as HTMLElement;\n elem.scrollIntoView({block: \"center\"});\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}_select_input`) as HTMLInputElement)?.focus();\n }\n\n if (this.selectedItem && this.searchString) {\n this.searchString = null;\n this.filterItems(this.searchString);\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 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.TAB) {\n return;\n }\n\n const clickedElement = getClickedElement();\n if (clickedElement?.hasAttribute(\"disabled\")) {\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 const zSelect = getElementTree(clickedElement).find((e) => e.nodeName === \"Z-SELECT\");\n this.toggleSelectUl(zSelect === this.host);\n }\n }\n\n private scrollToLetter(letter: string): void {\n if (!this.itemsList.length) {\n return;\n }\n\n const foundItem = this.itemsList.find(\n (item: SelectItem) => item.name.toLowerCase().charAt(0) === letter.toLowerCase()\n );\n if (foundItem) {\n if (!this.isOpen) {\n this.toggleSelectUl();\n }\n this.focusSelectItem(this.getOptionId(foundItem));\n }\n }\n\n private renderInput(): HTMLElement[] {\n let value = null;\n if (this.selectedItem) {\n value = getPlainText(this.selectedItem.name);\n }\n if (this.isOpen && this.searchString !== undefined) {\n value = this.searchString;\n }\n\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={value}\n label={this.label}\n autocomplete=\"off\"\n aria-label={this.ariaLabel}\n icon={this.isOpen ? \"caret-up\" : \"caret-down\"}\n hasclearicon={false}\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 size={this.size}\n role=\"combobox\"\n html-aria-expanded={this.isOpen ? \"true\" : \"false\"}\n html-aria-controls={`${this.htmlid}_list`}\n html-aria-activedescendant={this.isOpen ? this.focusedItemId : \"\"}\n html-aria-autocomplete={this.hasAutocomplete() ? \"list\" : undefined}\n onClick={(e: MouseEvent) => this.handleInputClick(e)}\n onKeyDown={(e: KeyboardEvent) => this.handleInputKeyDown(e)}\n onInputChange={(e: CustomEvent) => this.handleInputChange(e)}\n onKeyPress={(e: KeyboardEvent) => {\n if (!this.hasAutocomplete()) {\n e.preventDefault();\n this.scrollToLetter(e.key);\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 const hidden = !this.selectedItem || !this.resetItem;\n\n return (\n <z-list-element\n class={{\n \"hide\": hidden,\n \"reset-item\": true,\n \"reset-item-margin\": !this.hasGroupItems,\n }}\n clickable={true}\n disabled={false}\n dividerType={ListDividerType.ELEMENT}\n role={hidden ? \"presentation\" : \"option\"}\n html-tabindex={0}\n aria-selected=\"false\"\n id={this.getResetOptionId()}\n size={this.hasTreeItems ? ListSize.MEDIUM : this.listSizeType()}\n onClickItem={() => this.handleResetClick()}\n >\n <div\n class={{\n \"reset-item-content\": true,\n \"tree-list-reset-item\": this.hasTreeItems,\n \"active\": this.focusedItemId === this.getResetOptionId(),\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 return (\n <z-list-element\n clickable={!item.disabled}\n disabled={item.disabled}\n dividerType={lastItem ? ListDividerType.HEADER : ListDividerType.ELEMENT}\n role={item.disabled ? \"presentation\" : \"option\"}\n html-tabindex={-1}\n aria-selected={item.selected ? \"true\" : \"false\"}\n id={this.getOptionId(item)}\n size={this.listSizeType()}\n onClickItem={() => this.selectItem(item)}\n >\n <div\n class={{\n \"list-element-container\": true,\n \"active\": this.focusedItemId === this.getOptionId(item),\n }}\n >\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 private renderSelectUlItems():\n | HTMLZListElementElement\n | (HTMLZListElementElement | HTMLZListElementElement[])[]\n | HTMLZListGroupElement[] {\n if (!this.itemsList.length) {\n return this.renderNoSearchResults();\n }\n\n if (this.hasGroupItems) {\n if (this.hasTreeItems) {\n return this.renderGroupedTree();\n }\n\n return this.renderSelectGroupItems();\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, item.disabled);\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 disabledAncestor?: boolean\n ): HTMLZListElementElement[] {\n const isDisabled = item.disabled || disabledAncestor;\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={isDisabled}\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 html-tabindex={null}\n role=\"presentation\"\n >\n <div\n id={this.getOptionId(item)}\n role={isDisabled ? \"presentation\" : \"option\"}\n class={{\"list-element\": true, \"active\": this.focusedItemId === this.getOptionId(item)}}\n onClick={() => this.selectItem(item)}\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.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 role=\"presentation\">\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 isDisabled\n )\n )}\n </div>\n </z-list>\n ) : null}\n </z-list-element>\n );\n }\n\n private renderGroupedTree(): HTMLZListGroupElement[] {\n const groupedItems = this.getGroupedItems();\n\n return groupedItems.map(([category, items], index, entries) => {\n const parentHasSiblings = Object.values(groupedItems).some((groupItems) => groupItems.length > 1);\n\n return (\n <z-list-group\n divider-type={index === entries.length - 1 ? undefined : ListDividerType.ELEMENT}\n hasTreeItems={true}\n aria-labelledby={`${this.htmlid}_tree_${index}`}\n >\n <span\n class=\"body-3-sb z-list-group-title\"\n slot=\"header-title\"\n id={`${this.htmlid}_tree_${index}`}\n aria-hidden=\"true\"\n >\n {category}\n </span>\n <z-list role=\"presentation\">\n {items.map((item, i, arr) => [\n this.renderTreeItems(item, i === arr.length - 1, parentHasSiblings, true, item.disabled),\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 groupedItems = this.getGroupedItems();\n\n return groupedItems.map(([key, items], index) => {\n const isLastGroup = groupedItems.length === index + 1;\n\n return (\n <z-list-group\n divider-type={ListDividerType.ELEMENT}\n aria-labelledby={`${this.htmlid}_group_${index}`}\n >\n <span\n class=\"body-3-sb z-list-group-title\"\n slot=\"header-title\"\n id={`${this.htmlid}_group_${index}`}\n aria-hidden=\"true\"\n >\n {key}\n </span>\n {items.map((item, subindex) => {\n const isLastItem = items.length === subindex + 1;\n\n return this.renderItem(item, isLastGroup && isLastItem);\n })}\n </z-list-group>\n );\n });\n }\n\n private renderNoSearchResults(): HTMLZListElementElement {\n return (\n <z-list-element\n class=\"no-results\"\n size={this.hasTreeItems ? ListSize.MEDIUM : this.listSizeType()}\n html-tabindex={null}\n role=\"presentation\"\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":[]}
@@ -1 +0,0 @@
1
- {"version":3,"names":["stylesCss","ZComboboxStyle0","ZCombobox","watchItems","this","itemsList","items","JSON","parse","selectedCounter","filter","item","checked","length","updateRenderItemsList","watchSearchValue","filterItems","searchValue","emitComboboxChange","comboboxChange","emit","id","inputid","constructor","hostRef","inputType","InputType","TEXT","randomId","ControlSize","BIG","toggleComboBox","bind","closeFilterItems","componentWillLoad","componentWillRender","getControlToListSize","size","X_SMALL","ListSize","SMALL","MEDIUM","LARGE","getOptionId","itemId","getCheckAllOptionId","allOptionsSelected","hasReachedMaxSelections","maxcheckableitems","handleHeaderKeyDown","e","code","KeyboardCode","ENTER","focusedItemId","isopen","hassearch","SPACE","preventDefault","checkOption","ESC","ARROW_DOWN","ARROW_UP","handleArrowsNavigation","handleInputKeyDown","TAB","optionId","map","Object","assign","i","includes","stopPropagation","currElem","element","shadowRoot","querySelector","options","Array","from","querySelectorAll","currElemIndex","indexOf","firstElemIndex","lastElemIndex","nextElem","scrollIntoView","block","resetRenderItemsList","renderItemsList","forEach","push","value","start","name","toUpperCase","end","newName","substring","getComboboxA11yAttributes","isZInput","role","ariaLabel","htmlAriaLabel","ariaExpanded","ariaActivedescendant","ariaControls","renderHeader","comboboxA11yAttributes","h","class","onClick","onKeyDown","tabindex","label","undefined","renderContent","renderSearchInput","join","renderItems","tabIndex","renderList","renderItem","index","isDisabled","htmlTabindex","dividerType","ListDividerType","ELEMENT","NONE","disabled","getPlainText","innerHTML","renderNoSearchResults","hasgroupitems","renderGroups","renderCheckAll","newData","reduce","group","category","zListItem","_a","listGroups","entries","key","slot","noresultslabel","htmlid","searchlabel","placeholder","searchplaceholder","htmltitle","searchtitle","type","message","onInputChange","detail","hascheckall","allChecked","dividerColor","uncheckalltext","checkalltext","render","open","fixed","isfixed"],"sources":["src/components/z-combobox/styles.css?tag=z-combobox&encapsulation=shadow","src/components/z-combobox/index.tsx"],"sourcesContent":["@import \"../css-components/z-label/styles.css\";\n\n:host {\n display: block;\n min-width: 290px;\n color: var(--color-form-default-text);\n fill: var(--color-form-default-icon);\n font-family: var(--font-family-sans);\n}\n\n:host > div.fixed {\n position: relative;\n}\n\n:host > div > .header {\n position: relative;\n z-index: 10;\n display: flex;\n min-height: 42px;\n align-items: center;\n justify-content: space-between;\n padding: 0 calc(var(--space-unit) * 1.5);\n border: var(--border-size-small) solid var(--color-form-surface04);\n margin: 0;\n background-color: var(--color-form-background);\n border-radius: var(--border-radius-small);\n cursor: pointer;\n}\n\n:host([size=\"small\"]) > div > .header {\n min-height: 34px;\n font-size: var(--font-size-2);\n}\n\n:host([size=\"x-small\"]) > div > .header {\n min-height: 30px;\n font-size: var(--font-size-2);\n}\n\n:host > div > .header:hover {\n outline: var(--border-size-medium) solid var(--color-form-surface04);\n outline-offset: -2px;\n}\n\n:host > div > div.header:focus:focus-visible {\n z-index: 16;\n box-shadow: var(--shadow-focus-primary);\n outline: none;\n}\n\n:host > div > .header > span.body-3 > span {\n font-weight: var(--font-sb);\n}\n\n:host > div > .header > z-icon {\n fill: var(--color-form-default-icon);\n transform: rotate(360deg);\n transition: all 200ms linear;\n}\n\n:host > div > .header > z-icon.small,\n:host > div > .header > z-icon.x-small {\n --z-icon-width: 16px;\n --z-icon-height: 16px;\n}\n\n:host > div.open > .header {\n border: var(--border-size-small) solid var(--color-form-active-primary);\n border-radius: var(--border-radius-small) var(--border-radius-small) 0 0;\n}\n\n:host > div.disabled {\n pointer-events: none;\n}\n\n:host > div.disabled .header {\n border-color: var(--color-form-disabled03);\n fill: var(--color-form-disabled01-icon);\n}\n\n:host > div.disabled .header > span.body-3 {\n color: var(--color-form-disabled03);\n}\n\n:host > div.disabled .header > z-icon:last-child {\n fill: var(--color-form-disabled01-icon);\n}\n\n:host > div.open > .header > z-icon {\n fill: var(--color-form-default-icon);\n transform: rotate(180deg);\n transition: all 200ms linear;\n}\n\n:host > div > div.open-combo-data {\n display: none;\n}\n\n:host > div.open > div.open-combo-data {\n position: relative;\n z-index: 12;\n display: block;\n padding: var(--space-unit) calc(var(--space-unit) * 2);\n border: var(--border-size-small) solid var(--color-form-surface03);\n border-top: 0;\n background-color: var(--color-form-background);\n border-radius: 0;\n box-shadow: var(--shadow-2);\n}\n\n:host .open .open-combo-data z-input .z-label {\n color: var(--color-form-default-text);\n}\n\n:host > div.open > div.open-combo-data > div > div {\n overflow: auto;\n max-height: 235px;\n padding: 0;\n padding-left: var(--space-unit); /* padding left and negative margin in order to enable focus */\n margin-left: calc(var(--space-unit) * -1); /* padding left and negative margin in order to enable focus */\n}\n\n:host > div.open > div.open-combo-data > z-input {\n width: 100%;\n margin-bottom: calc(var(--space-unit) * 2);\n}\n\n:host > div.open > div.open-combo-data > div > div > ul {\n max-height: 235px;\n padding: 0 calc(var(--space-unit) * 0.5); /* needed for checkbox focus shadow */\n margin: 0;\n}\n\n:host .open-combo-data z-list-element {\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:host .open-combo-data z-list-element[disabled] {\n pointer-events: none;\n}\n\n:host .open-combo-data z-list-element .option-wrap {\n display: flex;\n flex-direction: row;\n align-items: center;\n cursor: pointer;\n gap: var(--space-unit);\n}\n\n:host .open-combo-data z-list-element[size=\"medium\"] .option-wrap,\n:host .open-combo-data z-list-element[size=\"small\"] .option-wrap {\n --z-icon-width: 16px;\n --z-icon-height: 16px;\n\n font-size: var(--font-size-2);\n gap: calc(var(--space-unit) / 2);\n}\n\n:host .open-combo-data z-list-element .option-wrap > z-icon {\n fill: var(--color-primary01);\n}\n\n:host .open-combo-data z-list-element[disabled] .option-wrap > z-icon {\n fill: var(--color-disabled01);\n}\n\n:host .open-combo-data z-list-element .option-wrap > z-icon.focused {\n border-radius: var(--border-radius-small);\n box-shadow: var(--shadow-focus-primary);\n outline: none;\n}\n\n:host .open-combo-data z-list-element .option-wrap > [role=\"option\"]:focus,\n:host .open-combo-data z-list-element .option-wrap > [role=\"option\"]:focus-visible {\n outline: none;\n}\n\n::-webkit-scrollbar {\n width: 6px;\n background: linear-gradient(to right, transparent 0 1px, var(--gray200) 1px 5px, transparent 5px 6px);\n}\n\n::-webkit-scrollbar-thumb {\n background-color: var(--color-primary01);\n}\n\n::-webkit-scrollbar-thumb:hover {\n background-color: var(--color-hover-primary);\n}\n\n/* Firefox scrollbar */\n@supports not selector(::-webkit-scrollbar-track) {\n :host {\n scrollbar-color: var(--color-primary01) transparent;\n }\n}\n\n:host > div.open > z-input {\n position: relative;\n z-index: 1;\n width: 238px;\n margin: 0 calc(var(--space-unit) * 2);\n color: var(--color-form-active-primary);\n}\n\n:host > div.open > div.open-combo-data > div > div.search {\n overflow: hidden;\n max-height: none;\n margin-top: 0;\n}\n\n:host > div.open > div.open-combo-data > div > div.search > ul {\n overflow: auto;\n max-height: 180px;\n padding: var(--space-unit) calc(var(--space-unit) * 2);\n}\n\n:host .open .open-combo-data .search .no-results {\n display: flex;\n align-items: center;\n column-gap: var(--space-unit);\n}\n\n:host > .open > .open-combo-data .search .close-search {\n display: flex;\n justify-content: center;\n}\n\n:host > div.open > div.open-combo-data > div > div.search .close-search > a {\n display: inline-block;\n height: 44px;\n color: var(--color-form-active-primary);\n cursor: pointer;\n font-size: 14px;\n font-weight: var(--font-sb);\n line-height: 44px;\n text-align: center;\n text-transform: uppercase;\n}\n\n:host > div.open > div.open-combo-data > div > div.search .close-search > a:focus:focus-visible {\n box-shadow: var(--shadow-focus-primary);\n outline: none;\n}\n\n:host > div.open > div.open-combo-data > div > div.check-all-wrapper {\n /* padding left and negative margin in order to enable focus */\n padding: calc(var(--space-unit) * 2) calc(var(--space-unit) * 0.5) calc(var(--space-unit) * 2)\n calc(var(--space-unit) * 1.5);\n border-bottom: var(--border-size-small) solid var(--gray800);\n margin-bottom: var(--space-unit);\n margin-left: calc(var(--space-unit) * -1);\n text-align: left;\n}\n\n:host([size=\"small\"]) > div.open > div.open-combo-data > div > div.check-all-wrapper {\n padding: calc(var(--space-unit) * 1.5) calc(var(--space-unit) * 0.5);\n}\n\n:host([size=\"x-small\"]) > div.open > div.open-combo-data > div > div.check-all-wrapper {\n padding: var(--space-unit) calc(var(--space-unit) * 0.5);\n}\n","import {Component, Element, Event, EventEmitter, Prop, State, Watch, h} from \"@stencil/core\";\nimport {ComboItem, ControlSize, InputType, KeyboardCode, ListDividerType, ListSize} from \"../../beans\";\nimport {getPlainText, randomId} from \"../../utils/utils\";\nimport {ZInput} from \"../z-input\";\n\n@Component({\n tag: \"z-combobox\",\n styleUrl: \"styles.css\",\n shadow: true,\n})\nexport class ZCombobox {\n @Element() element: HTMLZComboboxElement;\n\n /** input unique id */\n @Prop()\n inputid = `combo-${randomId()}`;\n\n /** list items array */\n @Prop()\n items: ComboItem[] | string;\n\n /** label text */\n @Prop()\n label: string;\n\n /** the combobox is disabled */\n @Prop({reflect: true})\n disabled?: boolean = false;\n\n /** show search input flag (optional) */\n @Prop()\n hassearch?: boolean = false;\n\n /** search input label text (optional) */\n @Prop()\n searchlabel?: string;\n\n /** search input placeholder text (optional) */\n @Prop()\n searchplaceholder?: string;\n\n /** search input title text (optional) */\n @Prop()\n searchtitle?: string;\n\n /** no result text message */\n @Prop()\n noresultslabel?: string = \"Nessun risultato\";\n\n /** toggle combo list opening flag */\n @Prop({mutable: true})\n isopen = false;\n\n /** fixed style flag */\n @Prop()\n isfixed = false;\n\n /** show \"check all\" checkbox (optional) */\n @Prop()\n hascheckall?: boolean = false;\n\n /** check all label (optional) */\n @Prop()\n checkalltext?: string = \"Seleziona tutti\";\n\n /** uncheck all label (optional) */\n @Prop()\n uncheckalltext?: string = \"Deseleziona tutti\";\n\n /** max number of checkable items (0 = unlimited) */\n @Prop()\n maxcheckableitems = 0;\n\n /** group items by category */\n @Prop()\n hasgroupitems?: boolean;\n\n /** Available sizes: `big`, `small` and `x-small`. Defaults to `big`. */\n @Prop()\n size?: ControlSize = ControlSize.BIG;\n\n /** the combobox aria-label */\n @Prop()\n htmlAriaLabel?: string;\n\n @State()\n searchValue: string;\n\n @State()\n selectedCounter: number;\n\n @State()\n renderItemsList: ComboItem[] = []; // used for render only\n\n @State()\n focusedItemId = \"\";\n\n private itemsList: ComboItem[] = [];\n\n private inputType: InputType = InputType.TEXT;\n\n @Watch(\"items\")\n watchItems(): void {\n this.itemsList = typeof this.items === \"string\" ? JSON.parse(this.items) : this.items;\n this.selectedCounter = this.itemsList.filter((item) => item.checked).length;\n this.updateRenderItemsList();\n }\n\n @Watch(\"searchValue\")\n watchSearchValue(): void {\n this.filterItems(this.searchValue);\n }\n\n /** Emitted when value is checked/unchecked. Returns id, items. */\n @Event()\n comboboxChange: EventEmitter;\n\n private emitComboboxChange(): void {\n this.comboboxChange.emit({id: this.inputid, items: this.itemsList});\n }\n\n constructor() {\n this.toggleComboBox = this.toggleComboBox.bind(this);\n this.closeFilterItems = this.closeFilterItems.bind(this);\n }\n\n componentWillLoad(): void {\n this.watchItems();\n }\n\n componentWillRender(): void {\n this.selectedCounter = this.itemsList.filter((item) => item.checked).length;\n }\n\n private getControlToListSize(): ListSize {\n switch (this.size) {\n case ControlSize.X_SMALL:\n return ListSize.SMALL;\n case ControlSize.SMALL:\n return ListSize.MEDIUM;\n default:\n return ListSize.LARGE;\n }\n }\n\n private getOptionId(itemId: string): string {\n return `${this.inputid}-option-${itemId}`;\n }\n\n private getCheckAllOptionId(): string {\n return `${this.inputid}-check-all`;\n }\n\n private allOptionsSelected(): boolean {\n return this.selectedCounter === this.itemsList.length;\n }\n\n private hasReachedMaxSelections(): boolean {\n return !!(this.maxcheckableitems && this.selectedCounter >= this.maxcheckableitems);\n }\n\n private handleHeaderKeyDown(e: KeyboardEvent): void {\n if (e.code === KeyboardCode.ENTER && !this.focusedItemId) {\n this.toggleComboBox();\n }\n\n if (!this.isopen || this.hassearch) {\n return;\n }\n\n switch (e.code as KeyboardCode) {\n case KeyboardCode.SPACE:\n case KeyboardCode.ENTER:\n if (this.focusedItemId) {\n e.preventDefault();\n this.checkOption(this.focusedItemId);\n }\n break;\n case KeyboardCode.ESC:\n if (this.focusedItemId) {\n this.focusedItemId = \"\";\n }\n break;\n case KeyboardCode.ARROW_DOWN:\n case KeyboardCode.ARROW_UP:\n this.handleArrowsNavigation(e);\n break;\n }\n }\n\n private handleInputKeyDown(e: KeyboardEvent): void {\n switch (e.code as KeyboardCode) {\n case KeyboardCode.ENTER:\n case KeyboardCode.SPACE:\n if (this.focusedItemId) {\n e.preventDefault();\n this.checkOption(this.focusedItemId);\n break;\n }\n break;\n case KeyboardCode.ARROW_DOWN:\n case KeyboardCode.ARROW_UP:\n this.handleArrowsNavigation(e);\n break;\n case KeyboardCode.ESC:\n if (this.focusedItemId) {\n this.focusedItemId = \"\";\n break;\n }\n this.closeFilterItems();\n break;\n case KeyboardCode.TAB:\n this.focusedItemId = \"\";\n break;\n }\n }\n\n private checkOption(optionId: string): void {\n if (optionId === this.getCheckAllOptionId()) {\n this.itemsList = this.itemsList.map((item: ComboItem) => ({\n ...item,\n checked: !this.allOptionsSelected(),\n }));\n\n this.focusedItemId = this.getCheckAllOptionId();\n } else {\n this.itemsList = this.itemsList.map((i: ComboItem) => {\n if (optionId === this.getOptionId(i.id)) {\n i.checked = !i.checked;\n }\n\n return i;\n });\n }\n\n this.updateRenderItemsList();\n this.emitComboboxChange();\n }\n\n private handleArrowsNavigation(e: KeyboardEvent): void {\n if (![KeyboardCode.ARROW_DOWN, KeyboardCode.ARROW_UP].includes(e.code as KeyboardCode) || !this.isopen) {\n return;\n }\n\n e.preventDefault();\n e.stopPropagation();\n\n const currElem = this.focusedItemId ? this.element.shadowRoot.querySelector(`#${this.focusedItemId}`) : null;\n const options = Array.from(this.element.shadowRoot.querySelectorAll('[role=\"option\"]'));\n\n if (!options.length) {\n return;\n }\n\n const currElemIndex = currElem ? options.indexOf(currElem) : null;\n const firstElemIndex = 0;\n const lastElemIndex = options.length - 1;\n\n let nextElem = null;\n if (e.code === KeyboardCode.ARROW_DOWN) {\n nextElem =\n currElemIndex === null ? options[firstElemIndex] : options[currElemIndex + 1] || options[lastElemIndex];\n } else if (e.code === KeyboardCode.ARROW_UP) {\n nextElem =\n currElemIndex === null ? options[lastElemIndex] : options[currElemIndex - 1] || options[firstElemIndex];\n }\n\n this.focusedItemId = nextElem.id;\n nextElem.scrollIntoView({block: \"center\"});\n }\n\n private updateRenderItemsList(): void {\n if (this.searchValue) {\n this.filterItems(this.searchValue);\n } else {\n this.resetRenderItemsList();\n }\n }\n\n private resetRenderItemsList(): void {\n const renderItemsList = [];\n this.itemsList.forEach((item: ComboItem) => {\n renderItemsList.push({...item});\n });\n this.renderItemsList = renderItemsList;\n }\n\n private filterItems(value: string): void {\n if (!value) {\n return this.closeFilterItems();\n }\n\n this.resetRenderItemsList();\n this.renderItemsList = this.renderItemsList.filter((item) => {\n const start = item.name.toUpperCase().indexOf(value.toUpperCase());\n const end = start + value.length;\n const newName =\n item.name.substring(0, start) +\n \"<strong>\" +\n item.name.substring(start, end) +\n \"</strong>\" +\n item.name.substring(end, item.name.length);\n\n item.name = newName;\n\n return start >= 0;\n });\n }\n\n private closeFilterItems(): void {\n this.searchValue = \"\";\n this.resetRenderItemsList();\n }\n\n private toggleComboBox(): void {\n this.isopen = !this.isopen;\n }\n\n private getComboboxA11yAttributes(isZInput: boolean): Record<string, string> {\n const role = \"combobox\";\n const ariaLabel = this.htmlAriaLabel;\n const ariaExpanded = this.isopen ? \"true\" : \"false\";\n const ariaActivedescendant = this.isopen ? this.focusedItemId : \"\";\n const ariaControls = `${this.inputid}_list`;\n\n if (isZInput) {\n return {\n \"role\": role,\n \"aria-label\": ariaLabel,\n \"html-aria-expanded\": ariaExpanded,\n \"html-aria-activedescendant\": ariaActivedescendant,\n \"html-aria-controls\": ariaControls,\n };\n }\n\n return {\n \"role\": role,\n \"aria-label\": ariaLabel,\n \"aria-expanded\": ariaExpanded,\n \"aria-activedescendant\": ariaActivedescendant,\n \"aria-controls\": ariaControls,\n };\n }\n\n private renderHeader(): HTMLDivElement {\n const comboboxA11yAttributes = !this.hassearch ? this.getComboboxA11yAttributes(false) : {};\n\n return (\n <div\n class=\"header\"\n onClick={() => this.toggleComboBox()}\n onKeyDown={(e: KeyboardEvent) => this.handleHeaderKeyDown(e)}\n role=\"button\"\n tabindex={0}\n aria-controls=\"open-combo-data\"\n aria-expanded={this.isopen ? \"true\" : \"false\"}\n {...comboboxA11yAttributes}\n >\n <span\n class=\"body-3\"\n aria-label={\n this.label\n ? `${this.label}${this.selectedCounter > 0 ? ` - ${this.selectedCounter} selezionati` : ``}`\n : undefined\n }\n >\n {this.label}\n <span>{this.selectedCounter > 0 && ` (${this.selectedCounter})`}</span>\n </span>\n <z-icon\n name=\"caret-down\"\n class={this.size}\n />\n </div>\n );\n }\n\n private renderContent(): HTMLDivElement {\n return (\n <div\n id=\"open-combo-data\"\n class=\"open-combo-data\"\n >\n {this.hassearch && this.renderSearchInput()}\n <div\n role=\"listbox\"\n aria-label={this.label}\n aria-multiselectable=\"true\"\n id={`${this.inputid}_list`}\n aria-owns={Array.from(this.element.shadowRoot.querySelectorAll(\"[role='option']\"))\n .map((item) => item.id)\n .join(\" \")}\n >\n {this.renderItems()}\n </div>\n </div>\n );\n }\n\n private renderItems(): HTMLDivElement {\n return (\n <div\n class={this.searchValue && \"search\"}\n tabIndex={-1}\n role=\"presentation\"\n >\n {this.renderList(this.renderItemsList)}\n </div>\n );\n }\n\n private renderItem(item: ComboItem, index: number, length: number): HTMLZListElement {\n const optionId = this.getOptionId(item.id);\n const isDisabled = !item.checked && this.hasReachedMaxSelections();\n\n return (\n <z-list-element\n htmlTabindex={-1}\n dividerType={index !== length - 1 ? ListDividerType.ELEMENT : ListDividerType.NONE}\n size={this.getControlToListSize()}\n role=\"presentation\"\n disabled={!!isDisabled}\n >\n <span\n class=\"option-wrap\"\n role=\"presentation\"\n onClick={() => {\n this.focusedItemId = \"\";\n this.checkOption(optionId);\n }}\n >\n <z-icon\n name={item.checked ? \"checkbox-checked\" : \"checkbox\"}\n class={this.focusedItemId === optionId ? \"focused\" : \"\"}\n />\n <span\n id={optionId}\n role={isDisabled ? \"presentation\" : \"option\"}\n aria-selected={item.checked ? \"true\" : \"false\"}\n aria-label={getPlainText(item.name)}\n innerHTML={item.name}\n />\n </span>\n </z-list-element>\n );\n }\n\n private renderList(items: ComboItem[]): HTMLUListElement {\n if (!items) {\n return;\n }\n if (!items.length && this.searchValue) {\n return this.renderNoSearchResults();\n }\n\n if (this.hasgroupitems) {\n return this.renderGroups(items);\n }\n\n return (\n <ul role=\"presentation\">\n {this.renderCheckAll()}\n {items.map((item, i) => {\n return this.renderItem(item, i, items.length);\n })}\n </ul>\n );\n }\n\n private renderGroups(items: ComboItem[]): HTMLUListElement {\n const newData = items.reduce((group, item, index) => {\n const category = item.category || \"Altra categoria\";\n const zListItem = this.renderItem(item, index, items.length);\n\n group[category] = group[category] ?? [];\n group[category].push(zListItem);\n\n return group;\n }, {});\n\n const listGroups = Object.entries(newData as {[key: string]: HTMLZListElementElement[]}).map(\n ([key, value], index) => {\n return (\n <z-list-group\n size={this.getControlToListSize()}\n divider-type={ListDividerType.ELEMENT}\n aria-labelledby={`${this.inputid}_list_group_${index}`}\n >\n <span\n class=\"body-3-sb z-list-group-title\"\n slot=\"header-title\"\n id={`${this.inputid}_list_group_${index}`}\n aria-hidden=\"true\"\n >\n {key}\n </span>\n {value.map((item) => item)}\n </z-list-group>\n );\n }\n );\n\n return (\n <ul role=\"presentation\">\n {this.renderCheckAll()}\n {listGroups}\n </ul>\n );\n }\n\n private renderNoSearchResults(): HTMLUListElement {\n return (\n <div class=\"no-results\">\n <span>{this.noresultslabel}</span>\n </div>\n );\n }\n\n private renderSearchInput(): ZInput {\n return (\n <z-input\n htmlid={`${this.inputid}_search`}\n label={this.searchlabel}\n placeholder={this.searchplaceholder}\n htmltitle={this.searchtitle}\n type={this.inputType}\n value={this.searchValue}\n message={false}\n size={this.size}\n html-aria-autocomplete=\"list\"\n {...this.getComboboxA11yAttributes(true)}\n onKeyDown={(e: KeyboardEvent) => this.handleInputKeyDown(e)}\n onInputChange={(e: CustomEvent) => {\n this.searchValue = e.detail.value;\n this.focusedItemId = \"\";\n }}\n />\n );\n }\n\n private renderCheckAll(): HTMLDivElement {\n if (!this.hascheckall || this.searchValue) {\n return;\n }\n\n const optionId = this.getCheckAllOptionId();\n const allChecked = this.allOptionsSelected();\n const isDisabled =\n this.hasReachedMaxSelections() || (this.maxcheckableitems && this.maxcheckableitems < this.itemsList.length);\n\n return (\n <z-list-element\n class=\"check-all-wrapper\"\n role=\"presentation\"\n htmlTabindex={-1}\n dividerType={ListDividerType.ELEMENT}\n dividerColor=\"gray800\"\n size={this.getControlToListSize()}\n disabled={!!isDisabled}\n >\n <span\n class=\"option-wrap\"\n role=\"presentation\"\n onClick={() => this.checkOption(optionId)}\n >\n <z-icon\n name={allChecked ? \"checkbox-checked\" : \"checkbox\"}\n class={this.focusedItemId === optionId ? \"focused\" : \"\"}\n />\n <span\n id={optionId}\n role={isDisabled ? \"presentation\" : \"option\"}\n aria-selected={allChecked ? \"true\" : \"false\"}\n >\n {allChecked ? this.uncheckalltext : this.checkalltext}\n </span>\n </span>\n </z-list-element>\n );\n }\n\n render(): HTMLDivElement {\n return (\n <div\n data-action={`combo-${this.inputid}`}\n class={{open: this.isopen, fixed: this.isfixed, disabled: this.disabled}}\n id={this.inputid}\n >\n {this.renderHeader()}\n {!this.disabled && this.renderContent()}\n </div>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}