@zanichelli/albe-web-components 16.0.0 → 16.2.0-rc

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 (159) hide show
  1. package/dist/cjs/{index-5cc0f0ca.js → index-4592ad31.js} +4 -3
  2. package/dist/cjs/index-4592ad31.js.map +1 -0
  3. package/dist/cjs/{index-066b8da0.js → index-597156d1.js} +2 -2
  4. package/dist/cjs/{index-066b8da0.js.map → index-597156d1.js.map} +1 -1
  5. package/dist/cjs/index-bab7a651.js.map +1 -1
  6. package/dist/cjs/{index-98822eac.js → index-ca821253.js} +3 -3
  7. package/dist/cjs/{index-98822eac.js.map → index-ca821253.js.map} +1 -1
  8. package/dist/cjs/loader.cjs.js +1 -1
  9. package/dist/cjs/web-components-library.cjs.js +1 -1
  10. package/dist/cjs/z-app-header_12.cjs.entry.js +4 -5
  11. package/dist/cjs/z-app-header_12.cjs.entry.js.map +1 -1
  12. package/dist/cjs/z-card.cjs.entry.js +5 -5
  13. package/dist/cjs/z-card.cjs.entry.js.map +1 -1
  14. package/dist/cjs/z-select.cjs.entry.js +4 -4
  15. package/dist/cjs/z-select.cjs.entry.js.map +1 -1
  16. package/dist/cjs/z-table.cjs.entry.js +3 -3
  17. package/dist/cjs/z-td.cjs.entry.js +1 -1
  18. package/dist/cjs/z-th.cjs.entry.js +1 -1
  19. package/dist/cjs/z-tr.cjs.entry.js +3 -3
  20. package/dist/collection/beans/index.js.map +1 -1
  21. package/dist/collection/components/table/cells/z-td/index.js +27 -2
  22. package/dist/collection/components/table/cells/z-td/index.js.map +1 -1
  23. package/dist/collection/components/table/cells/z-td/styles.css +4 -0
  24. package/dist/collection/components/table/cells/z-th/styles.css +4 -0
  25. package/dist/collection/components/z-card/index.js +5 -5
  26. package/dist/collection/components/z-card/index.js.map +1 -1
  27. package/dist/collection/components/z-card/index.spec.js +26 -7
  28. package/dist/collection/components/z-card/index.spec.js.map +1 -1
  29. package/dist/collection/components/z-card/index.stories.js +17 -6
  30. package/dist/collection/components/z-card/index.stories.js.map +1 -1
  31. package/dist/collection/components/z-card/styles.css +10 -2
  32. package/dist/collection/components/z-searchbar/index.js +3 -22
  33. package/dist/collection/components/z-searchbar/index.js.map +1 -1
  34. package/dist/collection/components/z-searchbar/index.spec.js +1 -5
  35. package/dist/collection/components/z-searchbar/index.spec.js.map +1 -1
  36. package/dist/collection/components/z-searchbar/index.stories.js +131 -4
  37. package/dist/collection/components/z-searchbar/index.stories.js.map +1 -1
  38. package/dist/collection/components/z-searchbar/styles.css +94 -11
  39. package/dist/collection/components/z-searchbar/test.e2e.js +90 -0
  40. package/dist/collection/components/z-searchbar/test.e2e.js.map +1 -0
  41. package/dist/collection/components/z-select/index.js +3 -3
  42. package/dist/collection/components/z-select/index.js.map +1 -1
  43. package/dist/collection/components/z-select/index.spec.js +71 -0
  44. package/dist/collection/components/z-select/index.spec.js.map +1 -1
  45. package/dist/collection/components/z-select/styles.css +5 -0
  46. package/dist/collection/components/z-tag/styles.css +4 -0
  47. package/dist/components/index2.js.map +1 -1
  48. package/dist/components/index23.js +3 -5
  49. package/dist/components/index23.js.map +1 -1
  50. package/dist/components/index24.js +1 -1
  51. package/dist/components/index24.js.map +1 -1
  52. package/dist/components/z-card.js +5 -5
  53. package/dist/components/z-card.js.map +1 -1
  54. package/dist/components/z-select.js +24 -18
  55. package/dist/components/z-select.js.map +1 -1
  56. package/dist/components/z-td.js +5 -3
  57. package/dist/components/z-td.js.map +1 -1
  58. package/dist/components/z-th.js +1 -1
  59. package/dist/components/z-th.js.map +1 -1
  60. package/dist/esm/{index-18018bb5.js → index-7a28ff39.js} +2 -2
  61. package/dist/esm/{index-18018bb5.js.map → index-7a28ff39.js.map} +1 -1
  62. package/dist/esm/{index-50bbb22e.js → index-8dab69a7.js} +3 -3
  63. package/dist/esm/{index-50bbb22e.js.map → index-8dab69a7.js.map} +1 -1
  64. package/dist/esm/{index-292b4dd2.js → index-b147cad9.js} +5 -4
  65. package/dist/esm/index-b147cad9.js.map +1 -0
  66. package/dist/esm/index-b7dbacb4.js.map +1 -1
  67. package/dist/esm/loader.js +1 -1
  68. package/dist/esm/web-components-library.js +1 -1
  69. package/dist/esm/z-app-header_12.entry.js +4 -5
  70. package/dist/esm/z-app-header_12.entry.js.map +1 -1
  71. package/dist/esm/z-card.entry.js +5 -5
  72. package/dist/esm/z-card.entry.js.map +1 -1
  73. package/dist/esm/z-select.entry.js +4 -4
  74. package/dist/esm/z-select.entry.js.map +1 -1
  75. package/dist/esm/z-table.entry.js +3 -3
  76. package/dist/esm/z-td.entry.js +1 -1
  77. package/dist/esm/z-th.entry.js +1 -1
  78. package/dist/esm/z-tr.entry.js +3 -3
  79. package/dist/types/beans/index.d.ts +1 -0
  80. package/dist/types/components/table/cells/z-td/index.d.ts +5 -1
  81. package/dist/types/components/z-card/index.d.ts +3 -3
  82. package/dist/types/components/z-card/index.stories.d.ts +6 -1
  83. package/dist/types/components/z-searchbar/index.d.ts +0 -2
  84. package/dist/types/components/z-searchbar/index.stories.d.ts +64 -1
  85. package/dist/types/components.d.ts +10 -10
  86. package/dist/web-components-library/p-088a31dc.entry.js +2 -0
  87. package/dist/web-components-library/p-088a31dc.entry.js.map +1 -0
  88. package/dist/web-components-library/p-26b5c84d.js +2 -0
  89. package/{www/build/p-8de7ea6e.js.map → dist/web-components-library/p-26b5c84d.js.map} +1 -1
  90. package/dist/web-components-library/{p-83eff308.entry.js → p-3f745628.entry.js} +2 -2
  91. package/dist/web-components-library/p-3f745628.entry.js.map +1 -0
  92. package/dist/web-components-library/p-57ecb5a7.entry.js +2 -0
  93. package/dist/web-components-library/p-57ecb5a7.entry.js.map +1 -0
  94. package/dist/web-components-library/p-6037cdf3.js.map +1 -1
  95. package/dist/web-components-library/{p-c6b269ce.entry.js → p-64c7c4c1.entry.js} +2 -2
  96. package/dist/web-components-library/{p-ae94e377.js → p-738670e2.js} +2 -2
  97. package/dist/web-components-library/p-888c6510.entry.js +2 -0
  98. package/dist/web-components-library/p-8e9ecc01.entry.js +2 -0
  99. package/dist/web-components-library/p-d6b4833b.js +2 -0
  100. package/dist/web-components-library/p-d6b4833b.js.map +1 -0
  101. package/dist/web-components-library/p-ed2c8484.entry.js +2 -0
  102. package/dist/web-components-library/web-components-library.esm.js +1 -1
  103. package/dist/web-components-library/web-components-library.esm.js.map +1 -1
  104. package/package.json +1 -1
  105. package/www/build/p-088a31dc.entry.js +2 -0
  106. package/www/build/p-088a31dc.entry.js.map +1 -0
  107. package/www/build/p-26b5c84d.js +2 -0
  108. package/{dist/web-components-library/p-8de7ea6e.js.map → www/build/p-26b5c84d.js.map} +1 -1
  109. package/www/build/{p-83eff308.entry.js → p-3f745628.entry.js} +2 -2
  110. package/www/build/p-3f745628.entry.js.map +1 -0
  111. package/www/build/p-57ecb5a7.entry.js +2 -0
  112. package/www/build/p-57ecb5a7.entry.js.map +1 -0
  113. package/www/build/p-6037cdf3.js.map +1 -1
  114. package/www/build/{p-c6b269ce.entry.js → p-64c7c4c1.entry.js} +2 -2
  115. package/www/build/{p-ae94e377.js → p-738670e2.js} +2 -2
  116. package/www/build/p-888c6510.entry.js +2 -0
  117. package/www/build/p-8e9ecc01.entry.js +2 -0
  118. package/www/build/p-9ebcf35a.js +2 -0
  119. package/www/build/p-d6b4833b.js +2 -0
  120. package/www/build/p-d6b4833b.js.map +1 -0
  121. package/www/build/p-ed2c8484.entry.js +2 -0
  122. package/www/build/web-components-library.esm.js +1 -1
  123. package/www/build/web-components-library.esm.js.map +1 -1
  124. package/www/index.html +1 -1
  125. package/dist/cjs/index-5cc0f0ca.js.map +0 -1
  126. package/dist/esm/index-292b4dd2.js.map +0 -1
  127. package/dist/web-components-library/p-18690383.entry.js +0 -2
  128. package/dist/web-components-library/p-18690383.entry.js.map +0 -1
  129. package/dist/web-components-library/p-1edbac5f.entry.js +0 -2
  130. package/dist/web-components-library/p-5a5481be.entry.js +0 -2
  131. package/dist/web-components-library/p-5a5481be.entry.js.map +0 -1
  132. package/dist/web-components-library/p-83eff308.entry.js.map +0 -1
  133. package/dist/web-components-library/p-8de7ea6e.js +0 -2
  134. package/dist/web-components-library/p-9f2a7cf0.js +0 -2
  135. package/dist/web-components-library/p-9f2a7cf0.js.map +0 -1
  136. package/dist/web-components-library/p-bf2a057d.entry.js +0 -2
  137. package/dist/web-components-library/p-e0323da3.entry.js +0 -2
  138. package/www/build/p-18690383.entry.js +0 -2
  139. package/www/build/p-18690383.entry.js.map +0 -1
  140. package/www/build/p-1edbac5f.entry.js +0 -2
  141. package/www/build/p-5a5481be.entry.js +0 -2
  142. package/www/build/p-5a5481be.entry.js.map +0 -1
  143. package/www/build/p-774b449d.js +0 -2
  144. package/www/build/p-83eff308.entry.js.map +0 -1
  145. package/www/build/p-8de7ea6e.js +0 -2
  146. package/www/build/p-9f2a7cf0.js +0 -2
  147. package/www/build/p-9f2a7cf0.js.map +0 -1
  148. package/www/build/p-bf2a057d.entry.js +0 -2
  149. package/www/build/p-e0323da3.entry.js +0 -2
  150. /package/dist/web-components-library/{p-c6b269ce.entry.js.map → p-64c7c4c1.entry.js.map} +0 -0
  151. /package/dist/web-components-library/{p-ae94e377.js.map → p-738670e2.js.map} +0 -0
  152. /package/dist/web-components-library/{p-1edbac5f.entry.js.map → p-888c6510.entry.js.map} +0 -0
  153. /package/dist/web-components-library/{p-bf2a057d.entry.js.map → p-8e9ecc01.entry.js.map} +0 -0
  154. /package/dist/web-components-library/{p-e0323da3.entry.js.map → p-ed2c8484.entry.js.map} +0 -0
  155. /package/www/build/{p-c6b269ce.entry.js.map → p-64c7c4c1.entry.js.map} +0 -0
  156. /package/www/build/{p-ae94e377.js.map → p-738670e2.js.map} +0 -0
  157. /package/www/build/{p-1edbac5f.entry.js.map → p-888c6510.entry.js.map} +0 -0
  158. /package/www/build/{p-bf2a057d.entry.js.map → p-8e9ecc01.entry.js.map} +0 -0
  159. /package/www/build/{p-e0323da3.entry.js.map → p-ed2c8484.entry.js.map} +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"names":["stylesCss","ZSelectStyle0","ZSelect","constructor","hostRef","this","itemsList","randomId","ControlSize","BIG","toggleSelectUl","bind","selectItem","handleSelectFocus","watchItems","getInitialItemsArray","selectedItem","find","item","selected","getFocusedItemHandler","e","focusedItemId","target","id","getSelectedItem","getValue","getSelectedValue","setValue","value","values","push","includes","emitOptionSelect","optionSelect","emit","htmlid","emitResetSelect","resetSelect","componentWillLoad","componentWillRender","filterItems","searchString","items","JSON","parse","mapSelectedItemToItemsArray","initialItemsList","map","_a","prevList","length","filter","name","toUpperCase","start","indexOf","end","newName","substring","hasAutocomplete","boolean","autocomplete","handleInputChange","detail","isOpen","disabled","i","arrowsSelectNav","key","showResetIcon","resetItem","arrows","KeyboardCode","ARROW_DOWN","ARROW_UP","preventDefault","stopPropagation","index","focusSelectItem","focusElem","element","querySelector","focus","selfFocusOnClose","readonly","document","addEventListener","removeEventListener","handleInputClick","cp","composedPath","clearIcon","classList","contains","KeyboardEvent","ESC","TAB","ENTER","tree","getElementTree","getClickedElement","parent","elem","nodeName","toLowerCase","MouseEvent","scrollToLetter","letter","foundItem","charAt","renderInput","h","class","placeholder","replace","label","ariaLabel","icon","hasclearicon","message","status","undefined","role","size","onClick","onKeyUp","keyCode","handleKeyboardSubmit","onKeyDown","onInputChange","onKeyPress","String","fromCharCode","renderSelectUl","tabindex","fixed","isfixed","listSizeType","filled","renderResetItem","renderSelectUlItems","hide","hasGroupItems","clickable","dividerType","ListDividerType","ELEMENT","onClickItem","renderItem","lastItem","HEADER","innerHTML","SMALL","X_SMALL","ListSize","MEDIUM","renderNoSearchResults","renderSelectGroupItems","array","itemKey","newData","reduce","group","category","zListItem","Object","entries","slot","color","fill","noresultslabel","renderMessage","render"],"sources":["src/components/z-select/styles.css?tag=z-select&encapsulation=scoped","src/components/z-select/index.tsx"],"sourcesContent":[":host {\n display: inline-block;\n width: inherit;\n color: var(--color-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 > 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 padding: calc(var(--space-unit) * 0.5) var(--space-unit);\n border: var(--border-size-small) solid var(--gray200);\n border-top: none;\n background: var(--color-surface01);\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 .ul-scroll-wrapper > z-list {\n position: relative;\n overflow: auto;\n max-height: 240px;\n padding: calc(var(--space-unit) * 0.5);\n outline: none;\n\n /* Firefox scrollbar */\n scrollbar-color: var(--color-primary01) transparent;\n}\n\n.select-wrapper .ul-scroll-wrapper > z-list::-webkit-scrollbar {\n width: 10px;\n background: linear-gradient(to right, transparent 0 3px, var(--gray200) 3px 7px, transparent 7px 10px);\n border-radius: var(--border-radius);\n}\n\n.select-wrapper .ul-scroll-wrapper > z-list::-webkit-scrollbar-track {\n background-color: transparent;\n}\n\n.select-wrapper .ul-scroll-wrapper > z-list::-webkit-scrollbar-thumb {\n width: 10px;\n background-color: var(--color-primary01);\n border-radius: var(--border-radius);\n}\n\n.select-wrapper .ul-scroll-wrapper > z-list::-webkit-scrollbar-thumb:hover {\n background-color: var(--color-hover-primary);\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-left: calc(var(--space-unit) * 1.5);\n}\n\n.select-wrapper .ul-scroll-wrapper z-list z-list-element .list-element-container .list-element-content {\n display: block;\n padding: calc(var(--space-unit) * 0.5) 0;\n}\n\n.select-wrapper .ul-scroll-wrapper z-list z-list-element .list-element-container > z-icon + .list-element-content {\n display: block;\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: bold;\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(--gray800);\n}\n\n.reset-item {\n color: var(--color-primary01);\n fill: var(--color-primary01);\n}\n\n.reset-item-content {\n display: flex;\n align-items: center;\n}\n\n.reset-item.reset-item-margin .reset-item-content {\n margin-left: calc(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","import {Component, Element, Event, EventEmitter, Listen, Method, Prop, State, Watch, h} from \"@stencil/core\";\nimport {ControlSize, InputStatus, KeyboardCode, ListDividerType, ListSize, SelectItem} from \"../../beans\";\nimport {boolean, getClickedElement, getElementTree, handleKeyboardSubmit, randomId} from \"../../utils/utils\";\n\n@Component({\n tag: \"z-select\",\n styleUrl: \"styles.css\",\n shadow: false,\n scoped: true,\n})\nexport class ZSelect {\n @Element() element: 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 /** 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.selectItem = this.selectItem.bind(this);\n this.handleSelectFocus = this.handleSelectFocus.bind(this);\n }\n\n @Watch(\"items\")\n watchItems(): void {\n this.itemsList = this.getInitialItemsArray();\n this.selectedItem = this.itemsList.find((item: SelectItem) => item.selected);\n }\n\n @Listen(\"ariaDescendantFocus\")\n getFocusedItemHandler(e: CustomEvent): void {\n this.focusedItemId = (e.target as Element).id;\n }\n\n /** get the input selected options */\n @Method()\n async getSelectedItem(): Promise<SelectItem> {\n return this.selectedItem;\n }\n\n /** get the input value */\n @Method()\n async getValue(): Promise<string> {\n return this.getSelectedValue();\n }\n\n /** set the input value */\n @Method()\n async setValue(value: string | string[]): Promise<void> {\n let values: string[] = [];\n if (typeof value === \"string\") {\n values.push(value);\n } else {\n values = value;\n }\n\n this.selectedItem = this.itemsList.find((item: SelectItem) => values.includes(item.id));\n }\n\n /** Emitted on select option selection, returns select id, selected item id */\n @Event()\n optionSelect: EventEmitter;\n\n private emitOptionSelect(): void {\n this.optionSelect.emit({\n id: this.htmlid,\n selected: this.getSelectedValue(),\n });\n }\n\n /** Emitted on reset selected item, returns select id, selected item id */\n @Event()\n resetSelect: EventEmitter;\n\n private emitResetSelect(): void {\n this.resetSelect.emit({\n id: this.htmlid,\n });\n }\n\n componentWillLoad(): void {\n this.watchItems();\n }\n\n componentWillRender(): void {\n this.filterItems(this.searchString);\n }\n\n private getInitialItemsArray(): SelectItem[] {\n return typeof this.items === \"string\" ? JSON.parse(this.items) : this.items;\n }\n\n private mapSelectedItemToItemsArray(): SelectItem[] {\n const initialItemsList = this.getInitialItemsArray();\n\n return initialItemsList.map((item: SelectItem) => {\n item.selected = item.id === this.selectedItem?.id;\n\n return item;\n });\n }\n\n private getSelectedValue(): string {\n return this.selectedItem?.id;\n }\n\n private filterItems(searchString: string): void {\n const prevList = this.mapSelectedItemToItemsArray();\n if (!searchString?.length) {\n this.itemsList = prevList;\n } else {\n this.itemsList = prevList\n .filter((item: SelectItem) => {\n return item.name.toUpperCase().includes(searchString.toUpperCase());\n })\n .map((item: SelectItem) => {\n const start = item.name.toUpperCase().indexOf(searchString.toUpperCase());\n const end = start + searchString.length;\n const newName =\n item.name.substring(0, start) +\n `<strong>${item.name.substring(start, end)}</strong>` +\n item.name.substring(end, item.name.length);\n item.name = newName;\n\n return item;\n });\n }\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 selectItem(item: null | SelectItem, selected: boolean): void {\n if (item && item.disabled) {\n return;\n }\n\n this.itemsList = this.mapSelectedItemToItemsArray();\n this.itemsList = this.itemsList.map((i: SelectItem) => {\n i.selected = false;\n if (i.id === item?.id) {\n i.selected = selected;\n }\n\n return i;\n });\n\n this.selectedItem = this.itemsList.find((item: SelectItem) => item.selected);\n\n this.emitOptionSelect();\n\n if (this.searchString) {\n this.searchString = null;\n }\n }\n\n private arrowsSelectNav(e: KeyboardEvent, key: number): void {\n const showResetIcon = this.resetItem && !!this.selectedItem;\n const arrows = [KeyboardCode.ARROW_DOWN, KeyboardCode.ARROW_UP];\n if (!arrows.includes(e.key as KeyboardCode)) {\n return;\n }\n\n e.preventDefault();\n e.stopPropagation();\n\n if (!this.isOpen) {\n this.toggleSelectUl();\n }\n\n let index: number;\n\n if (this.resetItem) {\n if (e.key === KeyboardCode.ARROW_DOWN) {\n index = key + 1 === this.itemsList.length + 1 ? +!showResetIcon : key + 1;\n } else if (e.key === KeyboardCode.ARROW_UP) {\n index = key <= +!showResetIcon ? this.itemsList.length : key - 1;\n }\n }\n\n if (!this.resetItem) {\n if (e.key === KeyboardCode.ARROW_DOWN) {\n index = key + 1 === this.itemsList.length ? 0 : key + 1;\n } else if (e.key === KeyboardCode.ARROW_UP) {\n index = key <= 0 ? this.itemsList.length - 1 : key - 1;\n }\n }\n\n this.focusSelectItem(index);\n }\n\n private focusSelectItem(index: number): void {\n const focusElem: HTMLLIElement = this.element.querySelector(`#${this.htmlid}_${index}`);\n if (focusElem) {\n focusElem.focus();\n }\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.element.querySelector(`#${this.htmlid}_input`) as HTMLInputElement).focus();\n }\n }\n\n this.focusedItemId = \"\";\n this.isOpen = !this.isOpen;\n }\n\n private handleInputClick(e: MouseEvent | KeyboardEvent): void {\n const cp = e.composedPath();\n const clearIcon = cp.find((item: HTMLElement) => item.classList && item.classList.contains(\"reset-icon\"));\n if (clearIcon) {\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 && e.key !== KeyboardCode.ENTER) {\n return;\n }\n\n const tree = getElementTree(getClickedElement());\n const parent = tree.find((elem: HTMLElement) => {\n return elem.nodeName.toLowerCase() === \"z-input\" && elem.id === `${this.htmlid}_input`;\n });\n\n if (!parent) {\n this.toggleSelectUl(e instanceof MouseEvent ? true : false);\n }\n }\n\n private scrollToLetter(letter: string): void {\n const foundItem = this.itemsList.find((item: SelectItem) => item.name.charAt(0) === letter);\n if (foundItem) {\n this.focusSelectItem(this.itemsList.indexOf(foundItem));\n }\n }\n\n private renderInput(): HTMLZInputElement {\n return (\n <z-input\n class={{\n \"active-select\": this.isOpen,\n \"cursor-select\": !this.autocomplete,\n }}\n id={`${this.htmlid}_input`}\n htmlid={`${this.htmlid}_select_input`}\n placeholder={this.placeholder}\n value={!this.isOpen && this.selectedItem ? this.selectedItem.name.replace(/<[^>]+>/g, \"\") : null}\n label={this.label}\n aria-expanded={this.isOpen ? \"true\" : \"false\"}\n aria-label={this.ariaLabel}\n aria-controls={`${this.htmlid}_list`}\n aria-autocomplete={this.hasAutocomplete() ? \"list\" : \"none\"}\n aria-activedescendant={this.isOpen ? this.focusedItemId : \"\"}\n icon={this.isOpen ? \"caret-up\" : \"caret-down\"}\n hasclearicon={this.hasAutocomplete()}\n message={false}\n disabled={this.disabled}\n readonly={this.readonly || (!this.hasAutocomplete() && this.isOpen)}\n status={this.isOpen ? undefined : this.status}\n role=\"combobox\"\n size={this.size}\n onClick={(e: MouseEvent) => {\n this.handleInputClick(e);\n }}\n onKeyUp={(e: KeyboardEvent) => {\n if (e.keyCode !== 13) {\n e.preventDefault();\n }\n handleKeyboardSubmit(e, this.toggleSelectUl);\n }}\n onKeyDown={(e: KeyboardEvent) => {\n return this.arrowsSelectNav(\n e,\n this.selectedItem ? this.itemsList.indexOf(this.selectedItem) : this.resetItem ? 0 : -1\n );\n }}\n onInputChange={(e: CustomEvent) => {\n this.handleInputChange(e);\n }}\n onKeyPress={(e: KeyboardEvent) => {\n if (!this.hasAutocomplete()) {\n e.preventDefault();\n this.scrollToLetter(String.fromCharCode(e.keyCode));\n }\n }}\n />\n );\n }\n\n private renderSelectUl(): HTMLDivElement {\n return (\n <div\n class={this.isOpen ? \"open\" : \"closed\"}\n tabindex=\"-1\"\n >\n <div\n class={{\n \"ul-scroll-wrapper\": true,\n \"fixed\": this.isfixed,\n }}\n tabindex=\"-1\"\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 filled: !!this.selectedItem,\n [`input-${this.status}`]: !this.isOpen && !!this.status,\n }}\n >\n {this.resetItem && this.renderResetItem()}\n {this.renderSelectUlItems()}\n </z-list>\n </div>\n </div>\n );\n }\n\n private renderResetItem(): HTMLZListElementElement {\n return (\n <z-list-element\n class={{\n \"hide\": !this.selectedItem || !this.resetItem,\n \"reset-item\": true,\n \"reset-item-margin\": !this.hasGroupItems,\n }}\n clickable={true}\n disabled={false}\n dividerType={ListDividerType.ELEMENT}\n role=\"option\"\n tabindex=\"0\"\n aria-selected=\"false\"\n id={`${this.htmlid}_${this.resetItem ? \"0\" : \"none\"}`}\n size={this.listSizeType()}\n onClickItem={() => {\n this.selectedItem = null;\n this.searchString = null;\n this.emitResetSelect();\n }}\n onKeyDown={(e: KeyboardEvent) => this.arrowsSelectNav(e, 0)}\n >\n <div class=\"reset-item-content\">\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, key: number, 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=\"option\"\n tabindex={item.disabled || !this.isOpen ? -1 : 0}\n aria-selected={item.selected ? \"true\" : \"false\"}\n id={`${this.htmlid}_${key}`}\n size={this.listSizeType()}\n onClickItem={() => this.selectItem(item, true)}\n onKeyDown={(e: KeyboardEvent) => this.arrowsSelectNav(e, key)}\n >\n <div class=\"list-element-container\">\n {item.icon && <z-icon name={item.icon} />}\n <span\n class={{\n \"selected\": !!item.selected,\n \"list-element-content\": true,\n }}\n innerHTML={item.name}\n />\n </div>\n </z-list-element>\n );\n }\n\n private listSizeType(): ListSize {\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(): HTMLZListElementElement | HTMLZListElementElement[] {\n if (!this.itemsList.length) {\n return this.renderNoSearchResults();\n }\n\n if (this.hasGroupItems) {\n return this.renderSelectGroupItems();\n }\n\n return this.itemsList.map((item: SelectItem, key, array) => {\n const lastItem = array.length === key + 1;\n const itemKey = this.resetItem ? key + 1 : key;\n\n return this.renderItem(item, itemKey, lastItem);\n });\n }\n\n private renderSelectGroupItems(): HTMLZListElementElement | HTMLZListElementElement[] {\n const newData = this.itemsList.reduce((group, item, index, array) => {\n const {category} = item;\n const lastItem = array.length === index + 1;\n const itemKey = this.resetItem ? index + 1 : index;\n const zListItem = this.renderItem(item, itemKey, lastItem);\n\n group[category] = group[category] ?? [];\n group[category].push(zListItem);\n\n return group;\n }, {});\n\n return Object.entries(newData as {[key: string]: HTMLZListElementElement[]}).map(([key, value]) => {\n return (\n <z-list-group divider-type={ListDividerType.ELEMENT}>\n <span\n class=\"body-3-sb z-list-group-title\"\n slot=\"header-title\"\n >\n {key}\n </span>\n {value.map((item) => item)}\n </z-list-group>\n );\n });\n }\n\n private renderNoSearchResults(): HTMLZListElementElement {\n return (\n <z-list-element\n color=\"blue500\"\n class=\"no-results\"\n size={this.listSizeType()}\n >\n <z-icon\n name=\"multiply-circle\"\n fill=\"blue500\"\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 />\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,2 +0,0 @@
1
- export{Z as z_tr}from"./p-ae94e377.js";import"./p-cfa39bd3.js";import"./p-2c184714.js";import"./p-6037cdf3.js";import"./p-2c886e8b.js";import"./p-9f2a7cf0.js";import"./p-8de7ea6e.js";
2
- //# sourceMappingURL=p-1edbac5f.entry.js.map
@@ -1,2 +0,0 @@
1
- import{r as t,h as o,a,g as e}from"./p-cfa39bd3.js";import{C as r}from"./p-6037cdf3.js";const i=':host{--aspect-ratio:1.62;--z-card--border-color:var(--gray200);--z-card--color-cover-background:var(--color-surface01);--z-card--text-background:var(--color-surface01);--z-card--text-border-radius:none;--z-card--text-border:none;--z-card--text-padding:calc(var(--space-unit) * 2) var(--space-unit);position:relative;display:flex;flex-direction:column;font-family:var(--font-family-sans);font-weight:var(--font-rg)}*,::slotted(*){box-sizing:border-box}:host(:not([variant="overlay"])) .cover-container{position:relative;width:100%}.cover-container{padding-bottom:calc(100% / var(--aspect-ratio))}::slotted([slot="cover"]),.color-cover{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover;object-position:center}.cover-container>z-icon{--z-icon-width:calc(var(--space-unit) * 11);--z-icon-height:var(--z-icon-width);position:absolute;top:calc(50% - calc(var(--z-icon-height) / 2));left:calc(50% - calc(var(--z-icon-width) / 2));fill:var(--color-primary01)}.color-cover{background-color:var(--z-card--color-cover-background)}.content{display:flex;flex-direction:column;padding-top:var(--space-unit)}.color-cover .cover-content{display:flex;height:100%;flex-direction:column;justify-content:flex-end;padding:var(--space-unit)}::slotted([slot="metadata"]),::slotted([slot="title"]),::slotted([slot="text"]){display:-webkit-inline-box;overflow:hidden;-webkit-box-orient:vertical}::slotted([slot="title"]:not(:last-child)),::slotted([slot="text"]:not(:last-child)){margin-bottom:var(--space-unit)}::slotted([slot="title"])::before{position:absolute;z-index:1;top:0;right:0;bottom:0;left:0;content:""}::slotted([slot="metadata"]:not(:last-child)){margin:0 0 calc(var(--space-unit) * 0.25);-webkit-line-clamp:1;text-transform:uppercase}::slotted([slot="title"]){margin:0;color:inherit;font-size:inherit;font-weight:var(--font-sb);-webkit-line-clamp:2;text-decoration:none}::slotted([slot="title"]:focus){box-shadow:var(--shadow-focus-primary);outline:none !important}::slotted([slot="text"]){margin:0;-webkit-line-clamp:3}.actions{position:relative;z-index:2;display:flex;flex-direction:row;align-items:center}::slotted([slot="action"]:not(:last-child)){margin-right:calc(var(--space-unit) * 2)}::slotted([slot="action"]:focus){box-shadow:var(--shadow-focus-primary);outline:none !important}:host([clickable]) ::slotted([slot="title"]:focus:focus-visible)::before{box-shadow:var(--shadow-focus-primary)}:host([clickable]) ::slotted([slot="title"]:focus:focus-visible){box-shadow:none !important;outline:none !important}:host([variant="text"]){border:var(--z-card--text-border);background-color:var(--z-card--text-background);border-radius:var(--z-card--text-border-radius)}:host([show-shadow])>.content,:host([variant="border"])>.content,:host([variant="shadow"])>.content{height:100%;padding:var(--space-unit) var(--space-unit) calc(var(--space-unit) * 2)}:host([variant="text"])>.content{padding:var(--z-card--text-padding)}:host([variant="border"]) .actions,:host([variant="shadow"]) .actions{margin-top:auto}:host([variant="border"]){border:var(--border-size-small) solid var(--z-card--border-color)}:host([variant="border"][clickable]:hover)>.content{background:var(--color-background)}:host([variant="border"][clickable]:focus:focus-visible){box-shadow:var(--shadow-focus-primary)}:host([variant="border"][clickable]:active){border-color:transparent}:host([variant="shadow"]),:host([show-shadow]){box-shadow:var(--shadow-2)}:host([variant="shadow"][clickable]:hover),:host([clickable][show-shadow]:hover){box-shadow:var(--shadow-4)}:host([variant="shadow"][clickable]:focus:focus-visible),:host([clickable][show-shadow]:focus:focus-visible){box-shadow:var(--shadow-focus-primary)}:host([variant="shadow"][clickable]:active),:host([clickable][show-shadow]:active){box-shadow:none}:host([variant="overlay"]) .content{position:absolute;top:0;right:0;bottom:0;left:0;justify-content:flex-end;padding:var(--space-unit);background-image:linear-gradient(to top, rgb(0 0 0 / 100%), rgb(0 0 0 / 0%));color:var(--color-text-inverse);fill:var(--color-text-inverse)}';const s=i;const n=class{constructor(o){t(this,o);this.variant=undefined;this.coverIcon=undefined;this.showShadow=false;this.clickable=false;this.hasCoverImage=undefined}componentWillLoad(){this.hasCoverImage=this.host.querySelector('[slot="cover"]')!==null}renderColorCoverCard(){return[o("div",{class:"cover-container"},o("div",{class:"color-cover"},o("div",{class:"cover-content"},o("slot",{name:"metadata"}),o("slot",{name:"title"})))),o("div",{class:"content"},o("slot",{name:"text"}),o("div",{class:"actions"},o("slot",{name:"action"})))]}renderContentDiv(){return o("div",{class:"content"},o("slot",{name:"metadata"}),o("slot",{name:"title"}),o("slot",{name:"text"}),o("div",{class:"actions"},o("slot",{name:"action"})))}render(){if(this.variant===r.TEXT){return o(a,null,this.renderContentDiv())}if(this.variant===r.OVERLAY||this.hasCoverImage){return o(a,null,o("div",{class:"cover-container"},this.hasCoverImage&&[o("slot",{name:"cover"}),this.variant!==r.OVERLAY&&this.coverIcon&&o("z-icon",{name:this.coverIcon})],!this.hasCoverImage&&o("div",{class:"color-cover"})),this.renderContentDiv())}return o(a,null,this.renderColorCoverCard())}get host(){return e(this)}};n.style=s;export{n as z_card};
2
- //# sourceMappingURL=p-5a5481be.entry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["stylesCss","ZCardStyle0","ZCard","componentWillLoad","this","hasCoverImage","host","querySelector","renderColorCoverCard","h","class","name","renderContentDiv","render","variant","CardVariant","TEXT","Host","OVERLAY","coverIcon"],"sources":["src/components/z-card/styles.css?tag=z-card&encapsulation=shadow","src/components/z-card/index.tsx"],"sourcesContent":["/* The width of the card must be set by its container,\nrespecting the grid indications of the design. */\n\n:host {\n /* Override this var to change the cover's aspect ratio */\n --aspect-ratio: 1.62;\n --z-card--border-color: var(--gray200);\n --z-card--color-cover-background: var(--color-surface01);\n --z-card--text-background: var(--color-surface01);\n --z-card--text-border-radius: none;\n --z-card--text-border: none;\n --z-card--text-padding: calc(var(--space-unit) * 2) var(--space-unit);\n\n position: relative;\n display: flex;\n flex-direction: column;\n font-family: var(--font-family-sans);\n font-weight: var(--font-rg);\n}\n\n*,\n::slotted(*) {\n box-sizing: border-box;\n}\n\n:host(:not([variant=\"overlay\"])) .cover-container {\n position: relative;\n width: 100%;\n}\n\n/* Old good trick with percentage padding to keep the aspect ratio.\nUnfortunately the `aspect-ratio` property is still experimental */\n.cover-container {\n padding-bottom: calc(100% / var(--aspect-ratio));\n}\n\n::slotted([slot=\"cover\"]),\n.color-cover {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n object-fit: cover;\n object-position: center;\n}\n\n.cover-container > z-icon {\n --z-icon-width: calc(var(--space-unit) * 11);\n --z-icon-height: var(--z-icon-width);\n\n position: absolute;\n top: calc(50% - calc(var(--z-icon-height) / 2));\n left: calc(50% - calc(var(--z-icon-width) / 2));\n fill: var(--color-primary01);\n}\n\n.color-cover {\n background-color: var(--z-card--color-cover-background);\n}\n\n.content {\n display: flex;\n flex-direction: column;\n padding-top: var(--space-unit);\n}\n\n.color-cover .cover-content {\n display: flex;\n height: 100%;\n flex-direction: column;\n justify-content: flex-end;\n padding: var(--space-unit);\n}\n\n/* Truncates overflowing text */\n::slotted([slot=\"metadata\"]),\n::slotted([slot=\"title\"]),\n::slotted([slot=\"text\"]) {\n display: -webkit-inline-box;\n overflow: hidden;\n -webkit-box-orient: vertical;\n}\n\n::slotted([slot=\"title\"]:not(:last-child)),\n::slotted([slot=\"text\"]:not(:last-child)) {\n margin-bottom: var(--space-unit);\n}\n\n::slotted([slot=\"title\"])::before {\n position: absolute;\n z-index: 1;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n content: \"\";\n}\n\n::slotted([slot=\"metadata\"]:not(:last-child)) {\n margin: 0 0 calc(var(--space-unit) * 0.25);\n -webkit-line-clamp: 1;\n text-transform: uppercase;\n}\n\n::slotted([slot=\"title\"]) {\n margin: 0;\n color: inherit;\n font-size: inherit;\n font-weight: var(--font-sb);\n -webkit-line-clamp: 2;\n text-decoration: none;\n}\n\n::slotted([slot=\"title\"]:focus) {\n box-shadow: var(--shadow-focus-primary);\n outline: none !important;\n}\n\n::slotted([slot=\"text\"]) {\n margin: 0;\n -webkit-line-clamp: 3;\n}\n\n.actions {\n position: relative;\n z-index: 2;\n display: flex;\n flex-direction: row;\n align-items: center;\n}\n\n::slotted([slot=\"action\"]:not(:last-child)) {\n margin-right: calc(var(--space-unit) * 2);\n}\n\n::slotted([slot=\"action\"]:focus) {\n box-shadow: var(--shadow-focus-primary);\n outline: none !important;\n}\n\n:host([clickable]) ::slotted([slot=\"title\"]:focus:focus-visible)::before {\n box-shadow: var(--shadow-focus-primary);\n}\n\n:host([clickable]) ::slotted([slot=\"title\"]:focus:focus-visible) {\n box-shadow: none !important;\n outline: none !important;\n}\n\n:host([variant=\"text\"]) {\n border: var(--z-card--text-border);\n background-color: var(--z-card--text-background);\n border-radius: var(--z-card--text-border-radius);\n}\n\n:host([show-shadow]) > .content,\n:host([variant=\"border\"]) > .content,\n:host([variant=\"shadow\"]) > .content {\n height: 100%;\n padding: var(--space-unit) var(--space-unit) calc(var(--space-unit) * 2);\n}\n\n:host([variant=\"text\"]) > .content {\n padding: var(--z-card--text-padding);\n}\n\n:host([variant=\"border\"]) .actions,\n:host([variant=\"shadow\"]) .actions {\n margin-top: auto;\n}\n\n/* Border */\n:host([variant=\"border\"]) {\n border: var(--border-size-small) solid var(--z-card--border-color);\n}\n\n:host([variant=\"border\"][clickable]:hover) > .content {\n background: var(--color-background);\n}\n\n:host([variant=\"border\"][clickable]:focus:focus-visible) {\n box-shadow: var(--shadow-focus-primary);\n}\n\n:host([variant=\"border\"][clickable]:active) {\n border-color: transparent;\n}\n\n/* Shadow */\n:host([variant=\"shadow\"]),\n:host([show-shadow]) {\n box-shadow: var(--shadow-2);\n}\n\n:host([variant=\"shadow\"][clickable]:hover),\n:host([clickable][show-shadow]:hover) {\n box-shadow: var(--shadow-4);\n}\n\n:host([variant=\"shadow\"][clickable]:focus:focus-visible),\n:host([clickable][show-shadow]:focus:focus-visible) {\n box-shadow: var(--shadow-focus-primary);\n}\n\n:host([variant=\"shadow\"][clickable]:active),\n:host([clickable][show-shadow]:active) {\n box-shadow: none;\n}\n\n/* Overlay */\n:host([variant=\"overlay\"]) .content {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n justify-content: flex-end;\n padding: var(--space-unit);\n background-image: linear-gradient(to top, rgb(0 0 0 / 100%), rgb(0 0 0 / 0%));\n color: var(--color-text-inverse);\n fill: var(--color-text-inverse);\n}\n","import {Component, Element, Host, Prop, State, h} from \"@stencil/core\";\nimport {CardVariant} from \"../../beans\";\n\n/**\n * ZCard component.\n * @cssprop --aspect-ratio - Cover aspect ratio. Default: `1.62`\n * @cssprop --z-card--border-color - Default: `var(--gray200)`\n * @cssprop --z-card--color-cover-background - Cover color. Default: `var(--color-surface01)`\n * @cssprop --z-card--text-background - Background color for the `text` variant. Default: `var(--color-surface01)`\n * @cssprop --z-card--text-border-radius - Default: `none`\n * @cssprop --z-card--text-border - Configure CSS `border`. Default: `none`\n * @cssprop --z-card--text-padding - Configure CSS `padding`. Default: `none`\n * @slot cover - Image cover\n * @slot metadata - Metadata\n * @slot title - Title\n * @slot text - Text content\n * @slot action - Actions\n */\n@Component({\n tag: \"z-card\",\n styleUrl: \"styles.css\",\n shadow: true,\n})\nexport class ZCard {\n /**\n * Card variant.\n * Can be one of \"text\", \"border\", \"shadow\", \"overlay\".\n * Leave it undefined for the default card.\n */\n @Prop({reflect: true})\n variant: CardVariant;\n\n /** Name of the icon to place over the image cover */\n @Prop()\n coverIcon: string;\n\n /** Enable shadow. Default: false. */\n @Prop({reflect: true})\n showShadow = false;\n\n /** Enable 'clickable' style like hover and focus style. */\n @Prop({reflect: true})\n clickable = false;\n\n @Element() host: HTMLZCardElement;\n\n @State()\n hasCoverImage: boolean;\n\n componentWillLoad(): void {\n this.hasCoverImage = this.host.querySelector('[slot=\"cover\"]') !== null;\n }\n\n /**\n * Template for a card without image cover.\n * A colored background replaces the image and some data is moved over it.\n */\n private renderColorCoverCard(): HTMLDivElement[] {\n return [\n <div class=\"cover-container\">\n <div class=\"color-cover\">\n <div class=\"cover-content\">\n <slot name=\"metadata\"></slot>\n <slot name=\"title\"></slot>\n </div>\n </div>\n </div>,\n <div class=\"content\">\n <slot name=\"text\"></slot>\n <div class=\"actions\">\n <slot name=\"action\"></slot>\n </div>\n </div>,\n ];\n }\n\n /**\n * Template for the content div.\n */\n private renderContentDiv(): HTMLDivElement {\n return (\n <div class=\"content\">\n <slot name=\"metadata\"></slot>\n <slot name=\"title\"></slot>\n <slot name=\"text\"></slot>\n <div class=\"actions\">\n <slot name=\"action\"></slot>\n </div>\n </div>\n );\n }\n\n render(): HTMLZCardElement {\n if (this.variant === CardVariant.TEXT) {\n return <Host>{this.renderContentDiv()}</Host>;\n }\n\n if (this.variant === CardVariant.OVERLAY || this.hasCoverImage) {\n return (\n <Host>\n <div class=\"cover-container\">\n {this.hasCoverImage && [\n <slot name=\"cover\"></slot>,\n this.variant !== CardVariant.OVERLAY && this.coverIcon && <z-icon name={this.coverIcon}></z-icon>,\n ]}\n {!this.hasCoverImage && <div class=\"color-cover\"></div>}\n </div>\n {this.renderContentDiv()}\n </Host>\n );\n }\n\n return <Host>{this.renderColorCoverCard()}</Host>;\n }\n}\n"],"mappings":"wFAAA,MAAMA,EAAY,y+HAClB,MAAAC,EAAeD,E,MCsBFE,EAAK,M,yFAeH,M,eAID,M,6BAOZ,iBAAAC,GACEC,KAAKC,cAAgBD,KAAKE,KAAKC,cAAc,oBAAsB,I,CAO7D,oBAAAC,GACN,MAAO,CACLC,EAAA,OAAKC,MAAM,mBACTD,EAAA,OAAKC,MAAM,eACTD,EAAA,OAAKC,MAAM,iBACTD,EAAA,QAAME,KAAK,aACXF,EAAA,QAAME,KAAK,aAIjBF,EAAA,OAAKC,MAAM,WACTD,EAAA,QAAME,KAAK,SACXF,EAAA,OAAKC,MAAM,WACTD,EAAA,QAAME,KAAK,a,CASX,gBAAAC,GACN,OACEH,EAAA,OAAKC,MAAM,WACTD,EAAA,QAAME,KAAK,aACXF,EAAA,QAAME,KAAK,UACXF,EAAA,QAAME,KAAK,SACXF,EAAA,OAAKC,MAAM,WACTD,EAAA,QAAME,KAAK,Y,CAMnB,MAAAE,GACE,GAAIT,KAAKU,UAAYC,EAAYC,KAAM,CACrC,OAAOP,EAACQ,EAAI,KAAEb,KAAKQ,mB,CAGrB,GAAIR,KAAKU,UAAYC,EAAYG,SAAWd,KAAKC,cAAe,CAC9D,OACEI,EAACQ,EAAI,KACHR,EAAA,OAAKC,MAAM,mBACRN,KAAKC,eAAiB,CACrBI,EAAA,QAAME,KAAK,UACXP,KAAKU,UAAYC,EAAYG,SAAWd,KAAKe,WAAaV,EAAA,UAAQE,KAAMP,KAAKe,cAE7Ef,KAAKC,eAAiBI,EAAA,OAAKC,MAAM,iBAEpCN,KAAKQ,mB,CAKZ,OAAOH,EAACQ,EAAI,KAAEb,KAAKI,uB","ignoreList":[]}