@sapudex/web-components 2.2.0 → 2.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (273) hide show
  1. package/.eslintignore +3 -0
  2. package/bundle.esm.js +3 -0
  3. package/cypress/fixtures/contact-numbers.ts +10 -0
  4. package/cypress/fixtures/event-ribbon-links.ts +5 -0
  5. package/cypress/specs/Accordion.cy.tsx +25 -2
  6. package/cypress/specs/AccordionItem.cy.tsx +1 -1
  7. package/cypress/specs/Avatar.cy.tsx +1 -1
  8. package/cypress/specs/AvatarGroup.cy.tsx +1 -2
  9. package/cypress/specs/Badge.cy.tsx +1 -1
  10. package/cypress/specs/Contact.cy.tsx +92 -0
  11. package/cypress/specs/ContactItem.cy.tsx +56 -0
  12. package/cypress/specs/CountrySelector.cy.tsx +10 -4
  13. package/cypress/specs/EventRibbon.cy.tsx +110 -0
  14. package/cypress/specs/Footer.cy.tsx +1 -1
  15. package/cypress/specs/ListItem.cy.tsx +1 -1
  16. package/cypress/specs/PhoneNumberField.cy.tsx +4 -2
  17. package/cypress/specs/Review.cy.tsx +1 -3
  18. package/cypress/specs/ReviewItem.cy.tsx +1 -1
  19. package/cypress/specs/SecondaryNavigationDesktop.cy.tsx +123 -116
  20. package/cypress/specs/SecondaryNavigationMobile.cy.tsx +27 -38
  21. package/cypress/specs/SelectBox.cy.tsx +93 -88
  22. package/cypress/specs/Slider.cy.tsx +1 -1
  23. package/cypress/specs/StatusBadge.cy.tsx +1 -1
  24. package/cypress/specs/StatusMessage.cy.tsx +1 -1
  25. package/cypress/specs/Switch.cy.tsx +1 -2
  26. package/cypress/specs/Table.cy.tsx +1 -9
  27. package/cypress/specs/Tag.cy.tsx +1 -1
  28. package/cypress/specs/TagGroup.cy.tsx +1 -2
  29. package/cypress/specs/TextField.cy.tsx +1 -1
  30. package/cypress/specs/Textarea.cy.tsx +1 -1
  31. package/cypress/specs/Toast.cy.tsx +1 -1
  32. package/cypress/specs/Tooltip.cy.tsx +1 -2
  33. package/cypress/specs/TruncatedText.cy.tsx +2 -1
  34. package/cypress/specs/Upload.cy.tsx +1 -2
  35. package/cypress/specs/UploadItem.cy.tsx +1 -1
  36. package/cypress/specs/Wizard.cy.tsx +7 -4
  37. package/cypress/support/commands.ts +31 -2
  38. package/cypress/support/component-imports.instrumented.ts +95 -0
  39. package/cypress/support/component-imports.src.ts +95 -0
  40. package/cypress/support/component.ts +1 -1
  41. package/cypress.config.ts +6 -0
  42. package/dist/Accordion.d.ts +7 -1
  43. package/dist/Accordion.js +3 -3
  44. package/dist/Accordion.js.map +1 -1
  45. package/dist/Assets.js +31 -0
  46. package/dist/Assets.js.map +1 -1
  47. package/dist/AssetsVariables.js +4 -0
  48. package/dist/AssetsVariables.js.map +1 -1
  49. package/dist/Button.d.ts +7 -0
  50. package/dist/Button.js +3 -0
  51. package/dist/Button.js.map +1 -1
  52. package/dist/Contact.d.ts +102 -0
  53. package/dist/Contact.js +152 -0
  54. package/dist/Contact.js.map +1 -0
  55. package/dist/ContactItem.d.ts +67 -0
  56. package/dist/ContactItem.js +96 -0
  57. package/dist/ContactItem.js.map +1 -0
  58. package/dist/ContactItemTemplate.d.ts +2 -0
  59. package/dist/ContactItemTemplate.js +13 -0
  60. package/dist/ContactItemTemplate.js.map +1 -0
  61. package/dist/ContactTemplate.d.ts +4 -0
  62. package/dist/ContactTemplate.js +29 -0
  63. package/dist/ContactTemplate.js.map +1 -0
  64. package/dist/CountrySelector.d.ts +2 -4
  65. package/dist/CountrySelector.js +3 -5
  66. package/dist/CountrySelector.js.map +1 -1
  67. package/dist/DatePicker.js +2 -1
  68. package/dist/DatePicker.js.map +1 -1
  69. package/dist/EventRibbon.d.ts +80 -0
  70. package/dist/EventRibbon.js +111 -0
  71. package/dist/EventRibbon.js.map +1 -0
  72. package/dist/EventRibbonTemplate.d.ts +2 -0
  73. package/dist/EventRibbonTemplate.js +7 -0
  74. package/dist/EventRibbonTemplate.js.map +1 -0
  75. package/dist/Footer.d.ts +0 -1
  76. package/dist/Footer.js +7 -9
  77. package/dist/Footer.js.map +1 -1
  78. package/dist/HeroBanner.d.ts +1 -1
  79. package/dist/List.d.ts +1 -1
  80. package/dist/List.js +1 -1
  81. package/dist/List.js.map +1 -1
  82. package/dist/MastheadItem.d.ts +1 -3
  83. package/dist/MastheadItem.js +6 -11
  84. package/dist/MastheadItem.js.map +1 -1
  85. package/dist/MastheadMenu.d.ts +0 -1
  86. package/dist/MastheadMenu.js +2 -4
  87. package/dist/MastheadMenu.js.map +1 -1
  88. package/dist/MastheadProfileMenu.d.ts +0 -1
  89. package/dist/MastheadProfileMenu.js +2 -4
  90. package/dist/MastheadProfileMenu.js.map +1 -1
  91. package/dist/MastheadShell.d.ts +4 -1
  92. package/dist/MastheadShell.js +21 -5
  93. package/dist/MastheadShell.js.map +1 -1
  94. package/dist/Pagination.d.ts +17 -3
  95. package/dist/Pagination.js +33 -31
  96. package/dist/Pagination.js.map +1 -1
  97. package/dist/PhoneNumberField.d.ts +5 -5
  98. package/dist/PhoneNumberField.js +1 -1
  99. package/dist/PhoneNumberField.js.map +1 -1
  100. package/dist/SearchableListBase.d.ts +9 -0
  101. package/dist/SearchableListBase.js +15 -3
  102. package/dist/SearchableListBase.js.map +1 -1
  103. package/dist/SecondaryNavigation.d.ts +0 -1
  104. package/dist/SecondaryNavigation.js +2 -4
  105. package/dist/SecondaryNavigation.js.map +1 -1
  106. package/dist/TextField.d.ts +7 -0
  107. package/dist/TextField.js +3 -0
  108. package/dist/TextField.js.map +1 -1
  109. package/dist/Wizard.d.ts +20 -1
  110. package/dist/Wizard.js +22 -9
  111. package/dist/Wizard.js.map +1 -1
  112. package/dist/WizardTemplate.js +1 -1
  113. package/dist/WizardTemplate.js.map +1 -1
  114. package/dist/assets/{InputSuggestions-KGCQrV_T.js → InputSuggestions-CYW_6A8K.js} +1 -1
  115. package/dist/assets/{ListItemStandardExpandableTextTemplate-D4zLIdLd.js → ListItemStandardExpandableTextTemplate-BDrgWGjT.js} +1 -1
  116. package/dist/assets/{bundle.esm-Diw1zQ-o.js → bundle.esm-DRCvw6Ji.js} +235 -225
  117. package/dist/assets/messagebundle_en-BK8-Eyic.js +1 -0
  118. package/dist/css/themes/Accordion.css +1 -1
  119. package/dist/css/themes/Button.css +1 -1
  120. package/dist/css/themes/Contact.css +1 -0
  121. package/dist/css/themes/ContactItem.css +1 -0
  122. package/dist/css/themes/DatePickerPopover.css +1 -1
  123. package/dist/css/themes/EventRibbon.css +1 -0
  124. package/dist/css/themes/MastheadCountrySelector.css +1 -1
  125. package/dist/css/themes/MastheadItem.css +1 -1
  126. package/dist/css/themes/MastheadShell.css +1 -1
  127. package/dist/css/themes/Modal.css +1 -1
  128. package/dist/css/themes/Pagination.css +1 -1
  129. package/dist/css/themes/RatingIndicator.css +1 -1
  130. package/dist/css/themes/Slider.css +1 -1
  131. package/dist/css/themes/TextField.css +1 -1
  132. package/dist/custom-elements-internal.json +823 -99
  133. package/dist/custom-elements.json +783 -83
  134. package/dist/data/CountryListISO3166.d.ts +13 -4
  135. package/dist/data/CountryListISO3166.js +8 -0
  136. package/dist/data/CountryListISO3166.js.map +1 -1
  137. package/dist/generated/assets/i18n/messagebundle_en.json +1 -1
  138. package/dist/generated/i18n/i18n-defaults.d.ts +3 -1
  139. package/dist/generated/i18n/i18n-defaults.js +3 -1
  140. package/dist/generated/i18n/i18n-defaults.js.map +1 -1
  141. package/dist/generated/templates/AccordionTemplate.lit.js +4 -2
  142. package/dist/generated/templates/AccordionTemplate.lit.js.map +1 -1
  143. package/dist/generated/templates/MastheadItemTemplate.lit.js +25 -22
  144. package/dist/generated/templates/MastheadItemTemplate.lit.js.map +1 -1
  145. package/dist/generated/templates/PaginationTemplate.lit.js +1 -1
  146. package/dist/generated/templates/PaginationTemplate.lit.js.map +1 -1
  147. package/dist/generated/templates/PhoneNumberFieldTemplate.lit.js +2 -2
  148. package/dist/generated/templates/PhoneNumberFieldTemplate.lit.js.map +1 -1
  149. package/dist/generated/themes/Accordion.css.d.ts +1 -1
  150. package/dist/generated/themes/Accordion.css.js +1 -1
  151. package/dist/generated/themes/Accordion.css.js.map +1 -1
  152. package/dist/generated/themes/Button.css.d.ts +1 -1
  153. package/dist/generated/themes/Button.css.js +1 -1
  154. package/dist/generated/themes/Button.css.js.map +1 -1
  155. package/dist/generated/themes/Contact.css.d.ts +2 -0
  156. package/dist/generated/themes/Contact.css.js +8 -0
  157. package/dist/generated/themes/Contact.css.js.map +1 -0
  158. package/dist/generated/themes/ContactItem.css.d.ts +2 -0
  159. package/dist/generated/themes/ContactItem.css.js +8 -0
  160. package/dist/generated/themes/ContactItem.css.js.map +1 -0
  161. package/dist/generated/themes/DatePickerPopover.css.d.ts +1 -1
  162. package/dist/generated/themes/DatePickerPopover.css.js +1 -1
  163. package/dist/generated/themes/DatePickerPopover.css.js.map +1 -1
  164. package/dist/generated/themes/EventRibbon.css.d.ts +2 -0
  165. package/dist/generated/themes/EventRibbon.css.js +8 -0
  166. package/dist/generated/themes/EventRibbon.css.js.map +1 -0
  167. package/dist/generated/themes/MastheadCountrySelector.css.d.ts +1 -1
  168. package/dist/generated/themes/MastheadCountrySelector.css.js +1 -1
  169. package/dist/generated/themes/MastheadCountrySelector.css.js.map +1 -1
  170. package/dist/generated/themes/MastheadItem.css.d.ts +1 -1
  171. package/dist/generated/themes/MastheadItem.css.js +1 -1
  172. package/dist/generated/themes/MastheadItem.css.js.map +1 -1
  173. package/dist/generated/themes/MastheadShell.css.d.ts +1 -1
  174. package/dist/generated/themes/MastheadShell.css.js +1 -1
  175. package/dist/generated/themes/MastheadShell.css.js.map +1 -1
  176. package/dist/generated/themes/Modal.css.d.ts +1 -1
  177. package/dist/generated/themes/Modal.css.js +1 -1
  178. package/dist/generated/themes/Modal.css.js.map +1 -1
  179. package/dist/generated/themes/Pagination.css.d.ts +1 -1
  180. package/dist/generated/themes/Pagination.css.js +1 -1
  181. package/dist/generated/themes/Pagination.css.js.map +1 -1
  182. package/dist/generated/themes/RatingIndicator.css.d.ts +1 -1
  183. package/dist/generated/themes/RatingIndicator.css.js +1 -1
  184. package/dist/generated/themes/RatingIndicator.css.js.map +1 -1
  185. package/dist/generated/themes/Slider.css.d.ts +1 -1
  186. package/dist/generated/themes/Slider.css.js +1 -1
  187. package/dist/generated/themes/Slider.css.js.map +1 -1
  188. package/dist/generated/themes/TextField.css.d.ts +1 -1
  189. package/dist/generated/themes/TextField.css.js +1 -1
  190. package/dist/generated/themes/TextField.css.js.map +1 -1
  191. package/dist/messagebundle.properties +5 -0
  192. package/dist/messagebundle_en.properties +3 -0
  193. package/dist/types/ContactItemIcon.d.ts +6 -0
  194. package/dist/types/ContactItemIcon.js +8 -0
  195. package/dist/types/ContactItemIcon.js.map +1 -0
  196. package/dist/types/EventRibbon.d.ts +37 -0
  197. package/dist/types/EventRibbon.js +43 -0
  198. package/dist/types/EventRibbon.js.map +1 -0
  199. package/dist/utils/parseArrayFromString.d.ts +2 -0
  200. package/dist/utils/parseArrayFromString.js +5 -0
  201. package/dist/utils/parseArrayFromString.js.map +1 -0
  202. package/dist/vscode.html-custom-data.json +183 -1
  203. package/dist/web-types.json +321 -2
  204. package/filter-coverage.js +58 -0
  205. package/package.json +8 -3
  206. package/src/Accordion.hbs +13 -9
  207. package/src/Accordion.ts +7 -4
  208. package/src/Assets.ts +29 -0
  209. package/src/AssetsVariables.ts +4 -0
  210. package/src/Button.ts +9 -0
  211. package/src/Contact.ts +200 -0
  212. package/src/ContactItem.ts +119 -0
  213. package/src/ContactItemTemplate.tsx +22 -0
  214. package/src/ContactTemplate.tsx +105 -0
  215. package/src/CountrySelector.ts +5 -8
  216. package/src/DatePicker.ts +2 -1
  217. package/src/EventRibbon.ts +143 -0
  218. package/src/EventRibbonTemplate.tsx +18 -0
  219. package/src/Footer.ts +7 -10
  220. package/src/List.ts +1 -1
  221. package/src/MastheadItem.hbs +8 -0
  222. package/src/MastheadItem.ts +8 -16
  223. package/src/MastheadMenu.ts +2 -5
  224. package/src/MastheadProfileMenu.ts +2 -5
  225. package/src/MastheadShell.ts +25 -5
  226. package/src/Pagination.hbs +7 -3
  227. package/src/Pagination.ts +48 -31
  228. package/src/PhoneNumberField.hbs +1 -1
  229. package/src/PhoneNumberField.ts +7 -2
  230. package/src/SearchableListBase.ts +24 -3
  231. package/src/SecondaryNavigation.ts +3 -5
  232. package/src/TextField.ts +9 -0
  233. package/src/Wizard.ts +39 -11
  234. package/src/WizardTemplate.tsx +5 -1
  235. package/src/data/CountryListISO3166.ts +10 -2
  236. package/src/generated/i18n/i18n-defaults.ts +2 -2
  237. package/src/generated/templates/AccordionTemplate.lit.ts +4 -2
  238. package/src/generated/templates/MastheadItemTemplate.lit.ts +25 -22
  239. package/src/generated/templates/PaginationTemplate.lit.ts +1 -1
  240. package/src/generated/templates/PhoneNumberFieldTemplate.lit.ts +1 -1
  241. package/src/generated/themes/Accordion.css.ts +1 -1
  242. package/src/generated/themes/Button.css.ts +1 -1
  243. package/src/generated/themes/Contact.css.ts +9 -0
  244. package/src/generated/themes/ContactItem.css.ts +9 -0
  245. package/src/generated/themes/DatePickerPopover.css.ts +1 -1
  246. package/src/generated/themes/EventRibbon.css.ts +9 -0
  247. package/src/generated/themes/MastheadCountrySelector.css.ts +1 -1
  248. package/src/generated/themes/MastheadItem.css.ts +1 -1
  249. package/src/generated/themes/MastheadShell.css.ts +1 -1
  250. package/src/generated/themes/Modal.css.ts +1 -1
  251. package/src/generated/themes/Pagination.css.ts +1 -1
  252. package/src/generated/themes/RatingIndicator.css.ts +1 -1
  253. package/src/generated/themes/Slider.css.ts +1 -1
  254. package/src/generated/themes/TextField.css.ts +1 -1
  255. package/src/i18n/messagebundle.properties +5 -0
  256. package/src/i18n/messagebundle_en.properties +3 -0
  257. package/src/themes/Accordion.css +1 -0
  258. package/src/themes/Button.css +74 -26
  259. package/src/themes/Contact.css +184 -0
  260. package/src/themes/ContactItem.css +44 -0
  261. package/src/themes/DatePickerPopover.css +64 -6
  262. package/src/themes/EventRibbon.css +411 -0
  263. package/src/themes/MastheadCountrySelector.css +8 -5
  264. package/src/themes/MastheadItem.css +12 -4
  265. package/src/themes/MastheadShell.css +3 -1
  266. package/src/themes/Modal.css +8 -4
  267. package/src/themes/Pagination.css +19 -0
  268. package/src/themes/TextField.css +2 -13
  269. package/src/types/ContactItemIcon.ts +7 -0
  270. package/src/types/EventRibbon.ts +51 -0
  271. package/src/utils/parseArrayFromString.ts +5 -0
  272. package/swap-component-imports.js +18 -0
  273. package/dist/assets/messagebundle_en-CVKgy_9L.js +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"CountrySelector.js","sourceRoot":"","sources":["../src/CountrySelector.ts"],"names":[],"mappings":"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","sourcesContent":["import customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport executeTemplate from \"@ui5/webcomponents-base/dist/renderer/executeTemplate.js\";\nimport {\n isEscape,\n isTabPrevious,\n isTabNext,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport type Popover from \"@ui5/webcomponents/dist/Popover.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event-strict.js\";\nimport Button from \"@ui5/webcomponents/dist/Button.js\";\nimport type { ResizeObserverCallback } from \"@ui5/webcomponents-base/dist/delegate/ResizeHandler.js\";\nimport ResizeHandler from \"@ui5/webcomponents-base/dist/delegate/ResizeHandler.js\";\nimport \"@ui5/webcomponents-icons/dist/navigation-down-arrow.js\";\nimport \"@ui5/webcomponents-icons/dist/navigation-up-arrow.js\";\nimport type { Country } from \"./data/CountryListISO3166.js\";\nimport { CountryListDB } from \"./data/CountryListISO3166.js\";\nimport { COUNTRY_SELECT } from \"./generated/i18n/i18n-defaults.js\";\nimport Search from \"./Search.js\";\nimport UDExDropdown from \"./Dropdown.js\";\nimport UDExList from \"./List.js\";\nimport UDExSearchableListBase from \"./SearchableListBase.js\";\nimport UDExListItem from \"./ListItem.js\";\nimport UDExTextField from \"./TextField.js\";\nimport UDExValueState from \"./types/common.js\";\nimport StatusMessage from \"./StatusMessage.js\";\nimport type { UDExSearchKeydownEventDetail } from \"./Search.js\";\nimport type { UDExSearchableListBaseEvents } from \"./SearchableListBase.js\";\nimport CountrySelectorTemplate from \"./generated/templates/CountrySelectorTemplate.lit.js\";\nimport SearchableListBaseTemplate from \"./generated/templates/SearchableListBaseTemplate.lit.js\";\n\n// Styles\nimport CountrySelectorCss from \"./generated/themes/CountrySelector.css.js\";\n\ntype UDExCountrySelectorChangeSearchEventDetail = {\n value: string,\n}\n\n/**\n * @class\n *\n * <h3 class=\"comment-api-title\">Overview</h3>\n *\n *\n * <h3>Usage</h3>\n *\n * For the <code>udex-country-selector</code>\n * <h3>ES6 Module Import</h3>\n *\n * <code>import \"@sapudex/web-components/dist/CountrySelector.js\";</code>\n *\n * @constructor\n * @extends UDExSearchableListBase\n * @tagname udex-country-selector\n * @public\n */\n@customElement({\n tag: \"udex-country-selector\",\n renderer: litRender,\n styles: CountrySelectorCss,\n template: CountrySelectorTemplate,\n dependencies: [\n Search,\n Button,\n UDExList,\n UDExListItem,\n UDExDropdown,\n UDExTextField,\n StatusMessage,\n ],\n})\n\n/**\n * Fired before the dropdown pane is opened.\n *\n * @public\n */\n@event(\"before-open\", { bubbles: true })\n\n/**\n * Fired after the dropdown pane is opened.\n *\n * @public\n */\n@event(\"open\", { bubbles: true })\n\n/**\n * Fired before the dropdown pane is closed.\n *\n * @public\n */\n@event(\"before-close\", { bubbles: true })\n\n/**\n * Fired after the dropdown pane is closed.\n *\n * @public\n */\n@event(\"close\", { bubbles: true })\n\n/**\n * Fired event when the user submitted the value in the search.\n *\n * @public\n */\n@event(\"change-search\", { bubbles: true })\n\n/**\n * Fired event when the user clicks on the reset button in the search.\n *\n * @public\n */\n@event(\"reset-search\", { bubbles: true })\n\n/**\n * Fired event when the user clicks on the submitted icon in the search.\n *\n * @public\n */\n@event(\"submit-search\", { bubbles: true })\n\nclass UDExCountrySelector extends UDExSearchableListBase {\n eventDetails!: {\n \"open\": void,\n \"close\": void,\n \"before-close\": void,\n \"before-open\": void,\n \"change-search\": UDExCountrySelectorChangeSearchEventDetail,\n } & Omit<UDExSearchableListBaseEvents, \"change-search\">;\n\n /**\n * Defines label text for the input field.\n *\n * @default undefined\n * @public\n */\n @property({ type: String })\n label?: string;\n\n /**\n * Defines the accessible ARIA name of the component.\n *\n * @default undefined\n * @public\n */\n @property()\n accessibleName?: string;\n\n /**\n * Receives id (or many ids) of the elements that label the component.\n * @default \"\"\n * @public\n */\n @property()\n accessibleNameRef: string = \"\";\n\n /**\n * Defines whether the component is required.\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n required!: boolean;\n\n /**\n * Allows control over the height.\n *\n * @public\n */\n @property({ type: String })\n height?: string;\n\n /**\n * Defines whether the component is in disabled state.\n * <br><br>\n * <b>Note:</b> A disabled component is completely noninteractive.\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n disabled!: boolean;\n\n /**\n * Defines whether the component is read-only.\n * <br><br>\n * <b>Note:</b> A read-only component is not editable,\n * but still provides visual feedback upon user interaction.\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n readonly!: boolean;\n\n /**\n * Defines whether the component is display-only.\n * <br><br>\n * <b>Note:</b> A display-only component is not editable,\n * but still provides visual feedback upon user interaction, input border is not visible.\n *\n * @default false\n * @public\n */\n\n @property({ type: Boolean })\n displayonly!: boolean;\n\n /**\n * Allows to define the initially preselected country.\n *\n * @default \"\"\n * @public\n */\n @property({ type: String })\n preselectedCountry!: string;\n\n /**\n * Allows to define the list of blocked country.\n *\n * @default \"\"\n * @public\n */\n @property({ type: String })\n blockedCountryCodes?: string;\n\n /**\n * Defines the placeholder of the search.\n *\n * @default \"\"\n * @public\n */\n @property({ type: String })\n searchPlaceholder!: string;\n\n /**\n * Defines the value state of the component.\n *\n * @default \"Standard\"\n * @public\n */\n @property()\n valueState: `${UDExValueState}` = UDExValueState.Standard;\n\n /**\n * Defines supporting text under the country selector.\n *\n * @default undefined\n * @public\n */\n @property({ type: String })\n supportingText?: string;\n\n /**\n *\n * @public\n */\n @property({ type: Boolean })\n hideFlagImages?: boolean;\n\n @property({ type: Boolean })\n _open?: boolean = false;\n\n countryList: Country[] = CountryListDB;\n selectedCountry!: Country | undefined;\n _trigger!: HTMLElement;\n\n _dropdown!: UDExDropdown;\n _search!: Search;\n _handleResizeBound: ResizeObserverCallback;\n\n @i18n(\"@sapudex/web-components\")\n static i18nBundle: I18nBundle;\n\n constructor() {\n super();\n this._shouldFilterItems = false;\n this._handleResizeBound = this._handleResize.bind(this);\n this._filteredItems = [];\n }\n\n onEnterDOM(): void {\n ResizeHandler.register(this, this._handleResizeBound);\n }\n\n onExitDOM(): void {\n ResizeHandler.deregister(this, this._handleResizeBound);\n }\n\n onBeforeRendering(): void {\n if (this.blockedCountryCodes?.length) {\n const blockedCountryCodesArray = this.blockedCountryCodes.split(\",\").map(code => code.trim().toUpperCase());\n this.countryList = this.countryList.filter(country => !blockedCountryCodesArray?.includes(country.iso.toUpperCase()));\n }\n\n if (!this.selectedCountry) {\n this.selectedCountry = this.countryList.find(country => country.iso.toUpperCase() === this.preselectedCountry?.toUpperCase());\n }\n\n this.prepareCountrySelectorItems();\n\n if (!this._shouldFilterItems) {\n this._filteredItems = this.getProcessedItems();\n }\n }\n\n onAfterRendering() {\n this._dropdown = this.getDropdown();\n this._search = this.getSearch();\n this._trigger = this.getTrigger();\n }\n\n getTrigger(): HTMLElement {\n return this.shadowRoot!.querySelector(\".udex-country-selector__dropdown\")!;\n }\n\n _dropdownClose() {\n this.fireDecoratorEvent(\"close\");\n }\n\n _dropdownOpen() {\n this.fireDecoratorEvent(\"open\");\n }\n\n _dropdownBeforeOpen() {\n this._open = true;\n this.onResetSearch();\n this.fireDecoratorEvent(\"before-open\");\n }\n\n _dropdownBeforeClose() {\n this._open = false;\n this.fireDecoratorEvent(\"before-close\");\n }\n\n get searchableList() {\n this.defaultAccessibleRole = \"listbox\";\n return executeTemplate(UDExCountrySelector.searchableListBaseTemplate, this);\n }\n\n static get searchableListBaseTemplate() {\n return SearchableListBaseTemplate;\n }\n\n _handleResize() {\n this._dropdown.style.setProperty(\"--udex-dropdown-pane-width\", `${this._trigger.offsetWidth}px`);\n }\n\n handleCloseSearch() {\n this.getInput()?.shadowRoot!.querySelector<Button>(\"[udex-control-button]\")?.focus();\n }\n\n handleItemPress(e: CustomEvent) {\n this.onItemPress(e);\n const target = e.target as HTMLElement;\n const item: any = this.getItemFromList(target?.getAttribute(\"data-token-id\") as string);\n this.selectedCountry = this.countryList.find(country => country.iso === item._id);\n this.dropDownClose();\n }\n\n handleKeyPress(keyEvent: KeyboardEvent) {\n const key = keyEvent.key;\n this._dropdown.open = true;\n this._search.focus();\n this._search.value = key;\n this.onValueSearch(key);\n }\n\n handleInputMouseDown(e: CustomEvent): void {\n e.preventDefault();\n }\n\n onValueSearch(searchValue: string) {\n this._shouldFilterItems = true;\n this._filteredItems = this.filterItems(this.getProcessedItems(), searchValue);\n this.fireDecoratorEvent(\"change-search\", { value: searchValue });\n }\n\n handleTriggerClick() {\n if (!this.isOpenerDisabled) {\n this._dropdown.open = !this._dropdown.open;\n }\n }\n\n handleValueSearch(e: CustomEvent) {\n this.onValueSearch(e.detail.value as string);\n }\n\n handleSubmitSearch() {\n this.onSubmitSearch();\n }\n\n handleKeyDownSearch(keyEvent: CustomEvent<UDExSearchKeydownEventDetail>) {\n const { detail: { e } } = keyEvent;\n\n if (isTabPrevious(e) || isEscape(e)) {\n e.preventDefault();\n this.dropDownClose();\n this.handleCloseSearch();\n }\n }\n\n handleKeyDownDropdown(e: KeyboardEvent) {\n if ((isTabNext(e) && (e.target !== this._search || this.isListEmpty))) {\n this.dropDownClose();\n }\n }\n\n dropDownClose(): void {\n this._dropdown.open = false;\n }\n\n handleResetSearch() {\n this.onResetSearch();\n }\n\n prepareCountrySelectorItems(): void {\n this.items.length = 0;\n this.countryList.forEach(country => {\n const selected = country.iso.toUpperCase() === this.selectedCountry?.iso.toUpperCase();\n this.items.push({\n label: this.getCountryLabel(country.countryName, country.localName),\n innerHTML: this.getItemTemplate(country),\n selected,\n _id: country.iso.toUpperCase(),\n } as UDExListItem);\n });\n }\n\n getItemTemplate(country: Country) {\n return this.hideFlagImages ? undefined : `<span class=\"udex-country-selector-item__image\" style=\"background-position:${country.flagX}\">`;\n }\n\n getCountryLabel(countryName?: string, localName?: string): string | null {\n return localName ? `${countryName} (${localName})` : countryName || null;\n }\n\n get ariaControls(): string | null | undefined {\n const list = this.shadowRoot!.querySelector<UDExList>(\"[udex-list]\");\n return list?.getAttribute(\"id\");\n }\n\n get selectedCountryFlagX(): string | undefined {\n return this.selectedCountry?.flagX;\n }\n\n get selectedCountryFlagY(): string | undefined {\n return this.selectedCountry?.flagY;\n }\n\n get selectedCountryName(): string | null {\n return this.selectedCountry ? this.getCountryLabel(this.selectedCountry.countryName, this.selectedCountry.localName) : \"\";\n }\n\n get flagAriaLabel(): string {\n return this.getCountryLabel(this.selectedCountry?.countryName, this.selectedCountry?.localName) || \"None\";\n }\n\n get triggerIcon(): string {\n return this._open ? \"navigation-up-arrow\" : \"navigation-down-arrow\";\n }\n\n get countrySelectorClasses(): string {\n const baseClass = \"udex-country-selector__dropdown\";\n return this.hideFlagImages ? `${baseClass} ${baseClass}--hide-flag` : baseClass;\n }\n\n get countrySelectorTriggerClasses(): string {\n const baseClass = \"udex-country-selector__trigger\";\n const classes = [baseClass];\n\n if (this.disabled) {\n classes.push(`${baseClass}--disabled`);\n }\n\n if (this.readonly) {\n classes.push(`${baseClass}--readonly`);\n }\n\n if (this.displayonly) {\n classes.push(`${baseClass}--displayonly`);\n }\n\n return classes.join(\" \");\n }\n\n get showFlagImages(): boolean {\n return !this.hideFlagImages;\n }\n\n get isOpenerDisabled(): boolean {\n return this.readonly || this.displayonly || this.disabled;\n }\n\n getSearch(): Search {\n return this.shadowRoot!.querySelector<Search>(\"[udex-search]\")!;\n }\n\n getDropdownPopover(): Popover {\n return this._dropdown.shadowRoot!.querySelector<Popover>(\"[ui5-popover]\")!;\n }\n\n getDropdown(): UDExDropdown {\n return this.shadowRoot!.querySelector<UDExDropdown>(\"[udex-dropdown]\")!;\n }\n\n getInput(): UDExTextField {\n return this.shadowRoot!.querySelector<UDExTextField>(\"[udex-text-field]\")!;\n }\n\n get effectiveAriaLabel(): string {\n return this.label || this.accessibleName || UDExCountrySelector.i18nBundle.getText(COUNTRY_SELECT);\n }\n}\n\nUDExCountrySelector.define();\n\nexport default UDExCountrySelector;\n"]}
1
+ {"version":3,"file":"CountrySelector.js","sourceRoot":"","sources":["../src/CountrySelector.ts"],"names":[],"mappings":"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","sourcesContent":["import customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport executeTemplate from \"@ui5/webcomponents-base/dist/renderer/executeTemplate.js\";\nimport {\n isEscape,\n isTabPrevious,\n isTabNext,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport type Popover from \"@ui5/webcomponents/dist/Popover.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event-strict.js\";\nimport Button from \"@ui5/webcomponents/dist/Button.js\";\nimport type { ResizeObserverCallback } from \"@ui5/webcomponents-base/dist/delegate/ResizeHandler.js\";\nimport ResizeHandler from \"@ui5/webcomponents-base/dist/delegate/ResizeHandler.js\";\nimport \"@ui5/webcomponents-icons/dist/navigation-down-arrow.js\";\nimport \"@ui5/webcomponents-icons/dist/navigation-up-arrow.js\";\nimport type { Country } from \"./data/CountryListISO3166.js\";\nimport { CountryListDB } from \"./data/CountryListISO3166.js\";\nimport { COUNTRY_SELECT } from \"./generated/i18n/i18n-defaults.js\";\nimport Search from \"./Search.js\";\nimport UDExDropdown from \"./Dropdown.js\";\nimport UDExList from \"./List.js\";\nimport UDExSearchableListBase from \"./SearchableListBase.js\";\nimport UDExListItem from \"./ListItem.js\";\nimport UDExTextField from \"./TextField.js\";\nimport UDExValueState from \"./types/common.js\";\nimport StatusMessage from \"./StatusMessage.js\";\nimport type { UDExSearchKeydownEventDetail } from \"./Search.js\";\nimport type { UDExSearchableListBaseEvents } from \"./SearchableListBase.js\";\nimport CountrySelectorTemplate from \"./generated/templates/CountrySelectorTemplate.lit.js\";\nimport SearchableListBaseTemplate from \"./generated/templates/SearchableListBaseTemplate.lit.js\";\n\n// Styles\nimport CountrySelectorCss from \"./generated/themes/CountrySelector.css.js\";\n\ntype UDExCountrySelectorChangeSearchEventDetail = {\n value: string,\n}\n\n/**\n * @class\n *\n * <h3 class=\"comment-api-title\">Overview</h3>\n *\n *\n * <h3>Usage</h3>\n *\n * For the <code>udex-country-selector</code>\n * <h3>ES6 Module Import</h3>\n *\n * <code>import \"@sapudex/web-components/dist/CountrySelector.js\";</code>\n *\n * @constructor\n * @extends UDExSearchableListBase\n * @tagname udex-country-selector\n * @public\n */\n@customElement({\n tag: \"udex-country-selector\",\n renderer: litRender,\n styles: CountrySelectorCss,\n template: CountrySelectorTemplate,\n dependencies: [\n Search,\n Button,\n UDExList,\n UDExListItem,\n UDExDropdown,\n UDExTextField,\n StatusMessage,\n ],\n})\n\n/**\n * Fired before the dropdown pane is opened.\n *\n * @public\n */\n@event(\"before-open\", { bubbles: true })\n\n/**\n * Fired after the dropdown pane is opened.\n *\n * @public\n */\n@event(\"open\", { bubbles: true })\n\n/**\n * Fired before the dropdown pane is closed.\n *\n * @public\n */\n@event(\"before-close\", { bubbles: true })\n\n/**\n * Fired after the dropdown pane is closed.\n *\n * @public\n */\n@event(\"close\", { bubbles: true })\n\n/**\n * Fired event when the user submitted the value in the search.\n *\n * @public\n */\n@event(\"change-search\", { bubbles: true })\n\n/**\n * Fired event when the user clicks on the reset button in the search.\n *\n * @public\n */\n@event(\"reset-search\", { bubbles: true })\n\n/**\n * Fired event when the user clicks on the submitted icon in the search.\n *\n * @public\n */\n@event(\"submit-search\", { bubbles: true })\n\nclass UDExCountrySelector extends UDExSearchableListBase {\n eventDetails!: {\n \"open\": void,\n \"close\": void,\n \"before-close\": void,\n \"before-open\": void,\n \"change-search\": UDExCountrySelectorChangeSearchEventDetail,\n } & Omit<UDExSearchableListBaseEvents, \"change-search\">;\n\n /**\n * Defines label text for the input field.\n *\n * @default undefined\n * @public\n */\n @property({ type: String })\n label?: string;\n\n /**\n * Defines the accessible ARIA name of the component.\n *\n * @default undefined\n * @public\n */\n @property()\n accessibleName?: string;\n\n /**\n * Receives id (or many ids) of the elements that label the component.\n * @default \"\"\n * @public\n */\n @property()\n accessibleNameRef: string = \"\";\n\n /**\n * Defines whether the component is required.\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n required!: boolean;\n\n /**\n * Allows control over the height.\n *\n * @public\n */\n @property({ type: String })\n height?: string;\n\n /**\n * Defines whether the component is in disabled state.\n * <br><br>\n * <b>Note:</b> A disabled component is completely noninteractive.\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n disabled!: boolean;\n\n /**\n * Defines whether the component is read-only.\n * <br><br>\n * <b>Note:</b> A read-only component is not editable,\n * but still provides visual feedback upon user interaction.\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n readonly!: boolean;\n\n /**\n * Defines whether the component is display-only.\n * <br><br>\n * <b>Note:</b> A display-only component is not editable,\n * but still provides visual feedback upon user interaction, input border is not visible.\n *\n * @default false\n * @public\n */\n\n @property({ type: Boolean })\n displayonly!: boolean;\n\n /**\n * Allows to define the initially preselected country.\n *\n * @default \"\"\n * @public\n */\n @property({ type: String })\n preselectedCountry!: string;\n\n /**\n * Allows to define the list of blocked country.\n *\n * @default \"\"\n * @public\n */\n @property({ type: String })\n blockedCountryCodes?: string;\n\n /**\n * Defines the placeholder of the search.\n *\n * @default \"\"\n * @public\n */\n @property({ type: String })\n searchPlaceholder!: string;\n\n /**\n * Defines the value state of the component.\n *\n * @default \"Standard\"\n * @public\n */\n @property()\n valueState: `${UDExValueState}` = UDExValueState.Standard;\n\n /**\n * Defines supporting text under the country selector.\n *\n * @default undefined\n * @public\n */\n @property({ type: String })\n supportingText?: string;\n\n /**\n *\n * @public\n */\n @property({ type: Boolean })\n hideFlagImages?: boolean;\n\n @property({ type: Boolean })\n _open?: boolean = false;\n\n countryList: Country[] = CountryListDB;\n selectedCountry!: Country | undefined;\n _trigger!: UDExTextField;\n\n _dropdown!: UDExDropdown;\n _search!: Search;\n _handleResizeBound: ResizeObserverCallback;\n\n constructor() {\n super();\n this._shouldFilterItems = false;\n this._handleResizeBound = this._handleResize.bind(this);\n this._filteredItems = [];\n }\n\n onEnterDOM(): void {\n ResizeHandler.register(this, this._handleResizeBound);\n }\n\n onExitDOM(): void {\n ResizeHandler.deregister(this, this._handleResizeBound);\n }\n\n onBeforeRendering(): void {\n if (this.blockedCountryCodes?.length) {\n const blockedCountryCodesArray = this.blockedCountryCodes.split(\",\").map(code => code.trim().toUpperCase());\n this.countryList = this.countryList.filter(country => !blockedCountryCodesArray?.includes(country.iso.toUpperCase()));\n }\n\n if (!this.selectedCountry) {\n this.selectedCountry = this.countryList.find(country => country.iso.toUpperCase() === this.preselectedCountry?.toUpperCase());\n }\n\n this.prepareCountrySelectorItems();\n\n if (!this._shouldFilterItems) {\n this._filteredItems = this.getProcessedItems();\n }\n }\n\n onAfterRendering() {\n this._dropdown = this.getDropdown();\n this._search = this.getSearch();\n this._trigger = this.getTrigger();\n }\n\n getTrigger(): UDExTextField {\n return this.shadowRoot!.querySelector<UDExTextField>(\"[udex-text-field]\")!;\n }\n\n _dropdownClose() {\n this.fireDecoratorEvent(\"close\");\n this._trigger.iconActive = false;\n }\n\n _dropdownOpen() {\n this.fireDecoratorEvent(\"open\");\n this._trigger.iconActive = true;\n }\n\n _dropdownBeforeOpen() {\n this._open = true;\n this.onResetSearch();\n this.fireDecoratorEvent(\"before-open\");\n }\n\n _dropdownBeforeClose() {\n this._open = false;\n this.fireDecoratorEvent(\"before-close\");\n }\n\n get searchableList() {\n this.defaultAccessibleRole = \"listbox\";\n return executeTemplate(UDExCountrySelector.searchableListBaseTemplate, this);\n }\n\n static get searchableListBaseTemplate() {\n return SearchableListBaseTemplate;\n }\n\n _handleResize() {\n this._dropdown.style.setProperty(\"--udex-dropdown-pane-width\", `${this._trigger.offsetWidth}px`);\n }\n\n handleCloseSearch() {\n this.getInput()?.shadowRoot!.querySelector<Button>(\"[udex-control-button]\")?.focus();\n }\n\n handleItemPress(e: CustomEvent) {\n this.onItemPress(e);\n const target = e.target as HTMLElement;\n const item: any = this.getItemFromList(target?.getAttribute(\"data-token-id\") as string);\n this.selectedCountry = this.countryList.find(country => country.iso === item._id);\n this.dropDownClose();\n }\n\n handleKeyPress(keyEvent: KeyboardEvent) {\n const key = keyEvent.key;\n this._dropdown.open = true;\n this._search.focus();\n this._search.value = key;\n this.onValueSearch(key);\n }\n\n handleInputMouseDown(e: CustomEvent): void {\n e.preventDefault();\n }\n\n onValueSearch(searchValue: string) {\n this._shouldFilterItems = true;\n this._filteredItems = this.filterItems(this.getProcessedItems(), searchValue);\n this.fireDecoratorEvent(\"change-search\", { value: searchValue });\n }\n\n handleTriggerClick() {\n if (!this.isOpenerDisabled) {\n this._dropdown.open = !this._dropdown.open;\n }\n }\n\n handleValueSearch(e: CustomEvent) {\n this.onValueSearch(e.detail.value as string);\n }\n\n handleSubmitSearch() {\n this.onSubmitSearch();\n }\n\n handleKeyDownSearch(keyEvent: CustomEvent<UDExSearchKeydownEventDetail>) {\n const { detail: { e } } = keyEvent;\n\n if (isTabPrevious(e) || isEscape(e)) {\n e.preventDefault();\n this.dropDownClose();\n this.handleCloseSearch();\n }\n }\n\n handleKeyDownDropdown(e: KeyboardEvent) {\n if ((isTabNext(e) && (e.target !== this._search || this.isListEmpty))) {\n this.dropDownClose();\n }\n }\n\n dropDownClose(): void {\n this._dropdown.open = false;\n }\n\n handleResetSearch() {\n this.onResetSearch();\n }\n\n prepareCountrySelectorItems(): void {\n this.items.length = 0;\n this.countryList.forEach(country => {\n const selected = country.iso.toUpperCase() === this.selectedCountry?.iso.toUpperCase();\n this.items.push({\n label: this.getCountryLabel(country.countryName, country.localName),\n innerHTML: this.getItemTemplate(country),\n selected,\n _id: country.iso.toUpperCase(),\n } as UDExListItem);\n });\n }\n\n getItemTemplate(country: Country) {\n return this.hideFlagImages ? undefined : `<span class=\"udex-country-selector-item__image\" style=\"background-position:${country.flagX}\">`;\n }\n\n getCountryLabel(countryName?: string, localName?: string): string | null {\n return localName ? `${countryName} (${localName})` : countryName || null;\n }\n\n get ariaControls(): string | null | undefined {\n const list = this.shadowRoot!.querySelector<UDExList>(\"[udex-list]\");\n return list?.getAttribute(\"id\");\n }\n\n get selectedCountryFlagX(): string | undefined {\n return this.selectedCountry?.flagX;\n }\n\n get selectedCountryFlagY(): string | undefined {\n return this.selectedCountry?.flagY;\n }\n\n get selectedCountryName(): string | null {\n return this.selectedCountry ? this.getCountryLabel(this.selectedCountry.countryName, this.selectedCountry.localName) : \"\";\n }\n\n get flagAriaLabel(): string {\n return this.getCountryLabel(this.selectedCountry?.countryName, this.selectedCountry?.localName) || \"None\";\n }\n\n get triggerIcon(): string {\n return this._open ? \"navigation-up-arrow\" : \"navigation-down-arrow\";\n }\n\n get countrySelectorClasses(): string {\n const baseClass = \"udex-country-selector__dropdown\";\n return this.hideFlagImages ? `${baseClass} ${baseClass}--hide-flag` : baseClass;\n }\n\n get countrySelectorTriggerClasses(): string {\n const baseClass = \"udex-country-selector__trigger\";\n const classes = [baseClass];\n\n if (this.disabled) {\n classes.push(`${baseClass}--disabled`);\n }\n\n if (this.readonly) {\n classes.push(`${baseClass}--readonly`);\n }\n\n if (this.displayonly) {\n classes.push(`${baseClass}--displayonly`);\n }\n\n return classes.join(\" \");\n }\n\n get showFlagImages(): boolean {\n return !this.hideFlagImages;\n }\n\n get isOpenerDisabled(): boolean {\n return this.readonly || this.displayonly || this.disabled;\n }\n\n getSearch(): Search {\n return this.shadowRoot!.querySelector<Search>(\"[udex-search]\")!;\n }\n\n getDropdownPopover(): Popover {\n return this._dropdown.shadowRoot!.querySelector<Popover>(\"[ui5-popover]\")!;\n }\n\n getDropdown(): UDExDropdown {\n return this.shadowRoot!.querySelector<UDExDropdown>(\"[udex-dropdown]\")!;\n }\n\n getInput(): UDExTextField {\n return this.shadowRoot!.querySelector<UDExTextField>(\"[udex-text-field]\")!;\n }\n\n get effectiveAriaLabel(): string {\n return this.label || this.accessibleName || UDExCountrySelector.i18nBundle.getText(COUNTRY_SELECT);\n }\n}\n\nUDExCountrySelector.define();\n\nexport default UDExCountrySelector;\n"]}
@@ -113,11 +113,12 @@ let UDExDatePicker = UDExDatePicker_1 = class UDExDatePicker extends DateCompone
113
113
  }
114
114
  _afterDropdownClose() {
115
115
  this._dropdownTrigger.active = false;
116
+ this._dropdownTrigger.iconActive = false;
116
117
  this._dropdownTrigger.shadowRoot?.querySelector("input")?.blur();
117
118
  this._tempValue = "";
118
119
  }
119
120
  _afterDropdownOpen() {
120
- this._dropdownTrigger.active = true;
121
+ this._dropdownTrigger.iconActive = true;
121
122
  }
122
123
  _closeRespPopover() {
123
124
  if (this.responsivePopover) {
@@ -1 +1 @@
1
- {"version":3,"file":"DatePicker.js","sourceRoot":"","sources":["../src/DatePicker.ts"],"names":[],"mappings":"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","sourcesContent":["import DateComponentBase from \"@ui5/webcomponents/dist/DateComponentBase.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event-strict.js\";\n// eslint-disable-next-line\nimport Calendar, { CalendarSelectionChangeEventDetail } from \"@ui5/webcomponents/dist/Calendar.js\";\nimport CalendarDate from \"@ui5/webcomponents/dist/CalendarDate.js\";\nimport \"@ui5/webcomponents/dist/Icon.js\";\nimport \"@ui5/webcomponents-icons/dist/appointment-2.js\";\nimport i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport { CALENDAR_ICON, DATEPICKER_DATE_DESCRIPTION } from \"./generated/i18n/i18n-defaults.js\";\nimport UDExTextField from \"./TextField.js\";\nimport UDExDropdown from \"./Dropdown.js\";\nimport UDExStatusMessage from \"./StatusMessage.js\";\nimport UDExValueState from \"./types/common.js\";\n\n// Template\nimport DatePickerTemplate from \"./generated/templates/DatePickerTemplate.lit.js\";\n\n// Styles\nimport DatePickerCss from \"./generated/themes/DatePicker.css.js\";\nimport DatePickerPopoverCss from \"./generated/themes/DatePickerPopover.css.js\";\n\nexport enum UDExDatePickerSelectionMode {\n Single = \"Single\",\n Range = \"Range\",\n}\n\nexport type UDExDatePickerSelectionChangeEventDetail = {\n selectedValues: Array<string>;\n selectedDates: Array<number | undefined>;\n timestamp: number | undefined;\n};\n\nexport type UDExDatePickerValueStateChangeEventDetail = {\n valueState: `${UDExValueState}`,\n valid: boolean\n}\n\n/**\n * @class\n *\n * <h3 class=\"comment-api-title\">Overview</h3>\n *\n *\n * <h3>Usage</h3>\n *\n * For the <code>udex-date-picker</code>\n * <h3>ES6 Module Import</h3>\n *\n * <code>import \"@sapudex/web-components/dist/DatePicker.js\";</code>\n *\n * @constructor\n * @author SAP SE\n * @extends DateComponentBase\n * @tagname udex-date-picker\n * @public\n */\n@customElement({\n tag: \"udex-date-picker\",\n renderer: litRender,\n styles: [DatePickerCss, DatePickerPopoverCss],\n template: DatePickerTemplate,\n dependencies: [CalendarDate, Calendar, UDExTextField, UDExDropdown, UDExStatusMessage],\n})\n/**\n * Fired when the selected dates change.\n *\n * @allowPreventDefault\n * @param {Array<string>} selectedValues The selected dates\n * @param {Array<number>} selectedDates The selected dates as UTC timestamps\n * @public\n */\n@event(\"selection-change\", { cancelable: true, bubbles: true })\n\n/**\n * Fired before the value state of the component is updated internally.\n * The event is preventable, meaning that if it's default action is\n * prevented, the component will not update the value state.\n * @allowPreventDefault\n * @public\n * @param {string} UDExValueState The new `UDExValueState` that will be set.\n * @param {boolean} valid Indicator if the value is in between the min and max value.\n */\n@event(\"value-state-change\", { bubbles: true })\n\nclass UDExDatePicker extends DateComponentBase {\n eventDetails!: {\n \"selection-change\": UDExDatePickerSelectionChangeEventDetail,\n \"value-state-change\": UDExDatePickerValueStateChangeEventDetail,\n };\n /**\n * Defines selection mode of the calendar component.\n *\n * @default \"Single\"\n * @public\n */\n @property()\n selectionMode: `${UDExDatePickerSelectionMode}` = \"Single\";\n\n /**\n * Defines whether the component is read-only.\n * <br><br>\n * <b>Note:</b> A read-only component is not editable,\n * but still provides visual feedback upon user interaction.\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n readonly!: boolean;\n\n /**\n * Defines whether the component is required.\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n required!: boolean;\n\n /**\n * Defines whether the component is in disabled state.\n * <br><br>\n * <b>Note:</b> A disabled component is completely noninteractive.\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n disabled!: boolean;\n\n /**\n * Defines supporting text under the input field.\n *\n * @default \"\"\n * @public\n */\n @property({ type: String })\n supportingText: string = \"\";\n\n /**\n * Defines the value of the input.\n *\n * @default \"\"\n * @public\n */\n @property({ type: String })\n value: string = \"\";\n\n /**\n * Sets the accessible ARIA name of the component.\n *\n * @default undefined\n * @public\n */\n @property({ type: String })\n accessibleName!: string;\n\n /**\n * Receives id (or many ids) of the elements that label the component.\n * @default \"\"\n * @public\n */\n @property()\n accessibleNameRef: string = \"\";\n\n /**\n * Defines label text for the input field.\n *\n * @default undefined\n * @public\n */\n @property({ type: String })\n label?: string;\n\n /**\n * Defines selected dates values.\n *\n * @default \"\"\n * @private\n */\n @property({ type: String, noAttribute: true })\n selectedDates: string = \"\";\n\n /**\n * Defines the value state of the component.\n *\n * @default \"Standard\"\n * @public\n */\n @property()\n valueState: `${UDExValueState}` = UDExValueState.Standard;\n\n /**\n * Defines the date format pattern (e.g., \\\"MMM dd, yyyy\\\" or \\\"MM/dd/yyyy\\\").\n * @default \"MMM dd, yyyy\"\n * @public\n */\n @property({ type: String })\n formatPattern: string = \"MMM dd, yyyy\";\n\n /**\n * The first date in the range during selection (this is a temporary value, not the first date in the value range)\n * @private\n */\n @property()\n _tempValue!: string;\n\n @i18n(\"@sapudex/web-components\")\n static i18nBundle: I18nBundle;\n\n responsivePopover?: UDExDropdown;\n\n private _prevDelimiter!: string | null;\n\n _getResponsePopover(): UDExDropdown {\n return this.shadowRoot!.querySelector<UDExDropdown>(`#udex-${this.__id!}-calendar__popover`)!;\n }\n\n /**\n * Getter for the interactive element that opens the overflow\n * @private\n */\n get _dropdownTrigger(): UDExTextField {\n return this.shadowRoot!.querySelector<UDExTextField>(\".udex-date-picker__input\")!;\n }\n\n _afterDropdownClose(): void {\n this._dropdownTrigger.active = false;\n this._dropdownTrigger.shadowRoot?.querySelector(\"input\")?.blur();\n this._tempValue = \"\";\n }\n\n _afterDropdownOpen(): void {\n this._dropdownTrigger.active = true;\n }\n\n _closeRespPopover(): void {\n if (this.responsivePopover) {\n this.responsivePopover.open = false;\n }\n }\n\n _openRespPopover(): void {\n this._dropdownTrigger.active = true;\n this.responsivePopover = this._getResponsePopover();\n this.responsivePopover.opener = this._dropdownTrigger;\n this.responsivePopover.open = true;\n }\n\n hideCalendar(): void {\n this._closeRespPopover();\n }\n\n showCalendar(): void {\n this._openRespPopover();\n }\n\n handleCalendarChange(e: CustomEvent<CalendarSelectionChangeEventDetail>): void {\n e.preventDefault();\n if (this.selectionMode === UDExDatePickerSelectionMode.Single) {\n const newValue = e.detail.selectedValues && e.detail.selectedValues[0];\n this._updateValueAndFireDecoratorEvents(newValue, true, e);\n }\n\n if (this.selectionMode === UDExDatePickerSelectionMode.Range) {\n const values = e.detail.selectedValues;\n\n if (values.length === 0) {\n return;\n }\n\n if (values.length === 1) { // Do nothing until the user selects 2 dates, we don't change any state at all for one date\n this._tempValue = values[0];\n return;\n }\n\n const newValue = this._buildValue(e.detail.selectedDates[0], e.detail.selectedDates[1]);\n this._updateValueAndFireDecoratorEvents(newValue, true, e);\n }\n\n this.hideCalendar();\n }\n\n get _effectiveDelimiter(): string {\n return \"-\";\n }\n\n _getInput(): HTMLInputElement | null | undefined {\n return this._dropdownTrigger.shadowRoot?.querySelector(\"input\");\n }\n\n _splitValueByDelimiter(value: string) {\n const valuesArray: Array<string> = [];\n const partsArray = value.split(this._prevDelimiter || this._effectiveDelimiter);\n\n // if format successfully parse the value, the value contains only single date\n if (this.getFormat().parse(value)) {\n valuesArray[0] = partsArray.join(this._effectiveDelimiter);\n valuesArray[1] = \"\";\n\n return valuesArray;\n }\n\n valuesArray[0] = partsArray.slice(0, partsArray.length / 2).join(this._effectiveDelimiter);\n valuesArray[1] = partsArray.slice(partsArray.length / 2).join(this._effectiveDelimiter);\n\n return valuesArray;\n }\n\n /**\n * Returns a UTC timestamp, representing the last date in the value string or undefined if the value is empty or there is just one date\n * @private\n */\n _extractLastTimestamp(value: string) {\n if (!value || !this._checkValueValidity(value)) {\n return undefined;\n }\n\n const dateStrings = this._splitValueByDelimiter(value);\n if (dateStrings[1]) {\n const parsedDate = this.getFormat().parse(dateStrings[1], true) as Date;\n return parsedDate.getTime() / 1000;\n }\n\n return undefined;\n }\n\n /**\n * Returns a UTC timestamp, representing the first date in the value string or undefined if the value is empty\n * @private\n */\n _extractFirstTimestamp(value: string) {\n if (!value || !this._checkValueValidity(value)) {\n return undefined;\n }\n\n const dateStrings = this._splitValueByDelimiter(value); // at least one item guaranteed due to the checks above (non-empty and valid)\n\n const parsedDate = this.getFormat().parse(dateStrings[0], true) as Date;\n return parsedDate.getTime() / 1000;\n }\n\n /**\n * Checks if a value is valid against the current date format of the DatePicker.\n * @public\n * @param value A value to be tested against the current date format\n */\n isValid(value: string): boolean {\n if (value === \"\" || value === undefined) {\n return true;\n }\n\n return !!this.getFormat().parse(value);\n }\n\n isValidRange(value: string): boolean {\n const parts = this._splitValueByDelimiter(value);\n return parts.length <= 2 && parts.every(dateString => this.isValid(dateString)); // must be at most 2 dates and each must be valid\n }\n\n isInValidRange(value: string): boolean {\n if (value === \"\" || value === undefined) {\n return true;\n }\n\n const calendarDate = this._getCalendarDateFromString(value);\n\n if (!calendarDate || !this._minDate || !this._maxDate) {\n return false;\n }\n\n return calendarDate.valueOf() >= this._minDate.valueOf() && calendarDate.valueOf() <= this._maxDate.valueOf();\n }\n\n /**\n * Checks if a date is between the minimum and maximum date.\n * @public\n * @param value A value to be checked\n */\n isInValidRangeRange(value: string): boolean {\n return this._splitValueByDelimiter(value).every(dateString => this.isInValidRange(dateString));\n }\n\n _checkValueValidity(value: string): boolean {\n let result = false;\n if (value === \"\") {\n return true;\n }\n if (this.selectionMode === UDExDatePickerSelectionMode.Single) {\n result = this.isValid(value) && this.isInValidRange(value);\n }\n if (this.selectionMode === UDExDatePickerSelectionMode.Range) {\n result = this.isValidRange(value) && this.isInValidRangeRange(value);\n }\n return result;\n }\n\n /**\n * Builds a string value out of two UTC timestamps - this method is the counterpart to _extractFirstTimestamp/_extractLastTimestamp\n * @private\n */\n _buildValue(firstDateTimestamp: number | undefined, lastDateTimestamp: number | undefined) {\n this._prevDelimiter = this._effectiveDelimiter;\n if (firstDateTimestamp) {\n const firstDateString = this._getStringFromTimestamp(firstDateTimestamp * 1000);\n\n if (!lastDateTimestamp) {\n return firstDateString;\n }\n\n const lastDateString = this._getStringFromTimestamp(lastDateTimestamp * 1000);\n return `${firstDateString} ${this._effectiveDelimiter} ${lastDateString}`;\n }\n\n return \"\";\n }\n\n /**\n * The parser understands many formats, but we need one format OR extract both dates as timestamps, flip if necessary, and build (which will use the desired format so we enforce the format too)\n * @protected\n */\n normalizeValue(value: string) {\n let result = \"\";\n if (this.selectionMode === UDExDatePickerSelectionMode.Single) {\n if (value === \"\") {\n return value;\n }\n result = this.getFormat().format(this.getFormat().parse(value, true), true); // it is important to both parse and format the date as UTC\n }\n if (this.selectionMode === UDExDatePickerSelectionMode.Range) {\n const firstDateTimestamp = this._extractFirstTimestamp(value);\n const lastDateTimestamp = this._extractLastTimestamp(value);\n if (firstDateTimestamp && lastDateTimestamp && firstDateTimestamp > lastDateTimestamp) { // if both are timestamps (not undefined), flip if necessary\n return this._buildValue(lastDateTimestamp, firstDateTimestamp);\n }\n result = this._buildValue(firstDateTimestamp, lastDateTimestamp);\n }\n return result;\n }\n\n _updateValueState() {\n const valid = this._checkValueValidity(this.value);\n const previousValueState = this.valueState;\n\n this.valueState = valid ? UDExValueState.Standard : UDExValueState.Error;\n\n const eventPrevented = !this.fireDecoratorEvent(\"value-state-change\", { valueState: this.valueState, valid });\n\n if (eventPrevented) {\n this.valueState = previousValueState;\n }\n }\n\n _buildEventData(value: string): UDExDatePickerSelectionChangeEventDetail {\n if (this.selectionMode === UDExDatePickerSelectionMode.Range) {\n return {\n selectedDates: [this._extractFirstTimestamp(value), this._extractLastTimestamp(value)],\n selectedValues: this._splitValueByDelimiter(this.value),\n timestamp: this._extractLastTimestamp(value),\n };\n }\n return {\n selectedDates: [this._extractFirstTimestamp(value)],\n selectedValues: [value],\n timestamp: this._extractFirstTimestamp(value),\n };\n }\n\n _updateValueAndFireDecoratorEvents(value: string, normalizeValue: boolean, e?: CustomEvent | null) {\n const valid = this._checkValueValidity(value);\n\n if (valid && normalizeValue) {\n value = this.normalizeValue(value); // transform valid values (in any format) to the correct format\n }\n\n this.value = value;\n this._updateValueState(); // Change the value state to Error/None, but only if needed\n\n if (!valid) { return; }\n\n if (e) {\n const { selectedDates, timestamp, selectedValues } = e.detail;\n\n this.fireDecoratorEvent(\n \"selection-change\",\n {\n timestamp,\n selectedDates,\n selectedValues,\n },\n );\n } else {\n this.fireDecoratorEvent(\n \"selection-change\",\n this._buildEventData(value),\n );\n }\n }\n\n _onInputChange(e: Event) {\n this._updateValueAndFireDecoratorEvents((e.target as UDExDatePicker).value, true);\n }\n\n handleInputClick(e: MouseEvent | KeyboardEvent): void {\n e.preventDefault();\n\n if (this.disabled || this.readonly) {\n return;\n }\n\n if (this.responsivePopover?.open) {\n this.hideCalendar();\n } else {\n this.showCalendar();\n }\n }\n\n /**\n * Used to provide selectedDates to the calendar based on the component's state\n * Override in derivatives to provide different rules for setting the calendar's selected dates\n * @protected\n */\n get _calendarSelectedDates(): Array<string> {\n if (this._tempValue) {\n return [this._tempValue];\n }\n\n if (this.value && this._checkValueValidity(this.value)) {\n return this.value.split(\" - \");\n }\n\n return [];\n }\n\n get startValue(): string {\n return this._calendarSelectedDates[0] || \"\";\n }\n\n get endValue(): string {\n return this._calendarSelectedDates[1] || \"\";\n }\n\n get accessibleIconName(): string {\n return UDExDatePicker.i18nBundle.getText(CALENDAR_ICON);\n }\n\n get dateAccessibleName(): string {\n return this.accessibleName || UDExDatePicker.i18nBundle.getText(DATEPICKER_DATE_DESCRIPTION);\n }\n\n get isRangeMode(): boolean {\n return this.selectionMode === UDExDatePickerSelectionMode.Range;\n }\n}\n\nUDExDatePicker.define();\n\nexport default UDExDatePicker;\n"]}
1
+ {"version":3,"file":"DatePicker.js","sourceRoot":"","sources":["../src/DatePicker.ts"],"names":[],"mappings":"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","sourcesContent":["import DateComponentBase from \"@ui5/webcomponents/dist/DateComponentBase.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event-strict.js\";\n// eslint-disable-next-line\nimport Calendar, { CalendarSelectionChangeEventDetail } from \"@ui5/webcomponents/dist/Calendar.js\";\nimport CalendarDate from \"@ui5/webcomponents/dist/CalendarDate.js\";\nimport \"@ui5/webcomponents/dist/Icon.js\";\nimport \"@ui5/webcomponents-icons/dist/appointment-2.js\";\nimport i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport { CALENDAR_ICON, DATEPICKER_DATE_DESCRIPTION } from \"./generated/i18n/i18n-defaults.js\";\nimport UDExTextField from \"./TextField.js\";\nimport UDExDropdown from \"./Dropdown.js\";\nimport UDExStatusMessage from \"./StatusMessage.js\";\nimport UDExValueState from \"./types/common.js\";\n\n// Template\nimport DatePickerTemplate from \"./generated/templates/DatePickerTemplate.lit.js\";\n\n// Styles\nimport DatePickerCss from \"./generated/themes/DatePicker.css.js\";\nimport DatePickerPopoverCss from \"./generated/themes/DatePickerPopover.css.js\";\n\nexport enum UDExDatePickerSelectionMode {\n Single = \"Single\",\n Range = \"Range\",\n}\n\nexport type UDExDatePickerSelectionChangeEventDetail = {\n selectedValues: Array<string>;\n selectedDates: Array<number | undefined>;\n timestamp: number | undefined;\n};\n\nexport type UDExDatePickerValueStateChangeEventDetail = {\n valueState: `${UDExValueState}`,\n valid: boolean\n}\n\n/**\n * @class\n *\n * <h3 class=\"comment-api-title\">Overview</h3>\n *\n *\n * <h3>Usage</h3>\n *\n * For the <code>udex-date-picker</code>\n * <h3>ES6 Module Import</h3>\n *\n * <code>import \"@sapudex/web-components/dist/DatePicker.js\";</code>\n *\n * @constructor\n * @author SAP SE\n * @extends DateComponentBase\n * @tagname udex-date-picker\n * @public\n */\n@customElement({\n tag: \"udex-date-picker\",\n renderer: litRender,\n styles: [DatePickerCss, DatePickerPopoverCss],\n template: DatePickerTemplate,\n dependencies: [CalendarDate, Calendar, UDExTextField, UDExDropdown, UDExStatusMessage],\n})\n/**\n * Fired when the selected dates change.\n *\n * @allowPreventDefault\n * @param {Array<string>} selectedValues The selected dates\n * @param {Array<number>} selectedDates The selected dates as UTC timestamps\n * @public\n */\n@event(\"selection-change\", { cancelable: true, bubbles: true })\n\n/**\n * Fired before the value state of the component is updated internally.\n * The event is preventable, meaning that if it's default action is\n * prevented, the component will not update the value state.\n * @allowPreventDefault\n * @public\n * @param {string} UDExValueState The new `UDExValueState` that will be set.\n * @param {boolean} valid Indicator if the value is in between the min and max value.\n */\n@event(\"value-state-change\", { bubbles: true })\n\nclass UDExDatePicker extends DateComponentBase {\n eventDetails!: {\n \"selection-change\": UDExDatePickerSelectionChangeEventDetail,\n \"value-state-change\": UDExDatePickerValueStateChangeEventDetail,\n };\n /**\n * Defines selection mode of the calendar component.\n *\n * @default \"Single\"\n * @public\n */\n @property()\n selectionMode: `${UDExDatePickerSelectionMode}` = \"Single\";\n\n /**\n * Defines whether the component is read-only.\n * <br><br>\n * <b>Note:</b> A read-only component is not editable,\n * but still provides visual feedback upon user interaction.\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n readonly!: boolean;\n\n /**\n * Defines whether the component is required.\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n required!: boolean;\n\n /**\n * Defines whether the component is in disabled state.\n * <br><br>\n * <b>Note:</b> A disabled component is completely noninteractive.\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n disabled!: boolean;\n\n /**\n * Defines supporting text under the input field.\n *\n * @default \"\"\n * @public\n */\n @property({ type: String })\n supportingText: string = \"\";\n\n /**\n * Defines the value of the input.\n *\n * @default \"\"\n * @public\n */\n @property({ type: String })\n value: string = \"\";\n\n /**\n * Sets the accessible ARIA name of the component.\n *\n * @default undefined\n * @public\n */\n @property({ type: String })\n accessibleName!: string;\n\n /**\n * Receives id (or many ids) of the elements that label the component.\n * @default \"\"\n * @public\n */\n @property()\n accessibleNameRef: string = \"\";\n\n /**\n * Defines label text for the input field.\n *\n * @default undefined\n * @public\n */\n @property({ type: String })\n label?: string;\n\n /**\n * Defines selected dates values.\n *\n * @default \"\"\n * @private\n */\n @property({ type: String, noAttribute: true })\n selectedDates: string = \"\";\n\n /**\n * Defines the value state of the component.\n *\n * @default \"Standard\"\n * @public\n */\n @property()\n valueState: `${UDExValueState}` = UDExValueState.Standard;\n\n /**\n * Defines the date format pattern (e.g., \\\"MMM dd, yyyy\\\" or \\\"MM/dd/yyyy\\\").\n * @default \"MMM dd, yyyy\"\n * @public\n */\n @property({ type: String })\n formatPattern: string = \"MMM dd, yyyy\";\n\n /**\n * The first date in the range during selection (this is a temporary value, not the first date in the value range)\n * @private\n */\n @property()\n _tempValue!: string;\n\n @i18n(\"@sapudex/web-components\")\n static i18nBundle: I18nBundle;\n\n responsivePopover?: UDExDropdown;\n\n private _prevDelimiter!: string | null;\n\n _getResponsePopover(): UDExDropdown {\n return this.shadowRoot!.querySelector<UDExDropdown>(`#udex-${this.__id!}-calendar__popover`)!;\n }\n\n /**\n * Getter for the interactive element that opens the overflow\n * @private\n */\n get _dropdownTrigger(): UDExTextField {\n return this.shadowRoot!.querySelector<UDExTextField>(\".udex-date-picker__input\")!;\n }\n\n _afterDropdownClose(): void {\n this._dropdownTrigger.active = false;\n this._dropdownTrigger.iconActive = false;\n this._dropdownTrigger.shadowRoot?.querySelector(\"input\")?.blur();\n this._tempValue = \"\";\n }\n\n _afterDropdownOpen(): void {\n this._dropdownTrigger.iconActive = true;\n }\n\n _closeRespPopover(): void {\n if (this.responsivePopover) {\n this.responsivePopover.open = false;\n }\n }\n\n _openRespPopover(): void {\n this._dropdownTrigger.active = true;\n this.responsivePopover = this._getResponsePopover();\n this.responsivePopover.opener = this._dropdownTrigger;\n this.responsivePopover.open = true;\n }\n\n hideCalendar(): void {\n this._closeRespPopover();\n }\n\n showCalendar(): void {\n this._openRespPopover();\n }\n\n handleCalendarChange(e: CustomEvent<CalendarSelectionChangeEventDetail>): void {\n e.preventDefault();\n if (this.selectionMode === UDExDatePickerSelectionMode.Single) {\n const newValue = e.detail.selectedValues && e.detail.selectedValues[0];\n this._updateValueAndFireDecoratorEvents(newValue, true, e);\n }\n\n if (this.selectionMode === UDExDatePickerSelectionMode.Range) {\n const values = e.detail.selectedValues;\n\n if (values.length === 0) {\n return;\n }\n\n if (values.length === 1) { // Do nothing until the user selects 2 dates, we don't change any state at all for one date\n this._tempValue = values[0];\n return;\n }\n\n const newValue = this._buildValue(e.detail.selectedDates[0], e.detail.selectedDates[1]);\n this._updateValueAndFireDecoratorEvents(newValue, true, e);\n }\n\n this.hideCalendar();\n }\n\n get _effectiveDelimiter(): string {\n return \"-\";\n }\n\n _getInput(): HTMLInputElement | null | undefined {\n return this._dropdownTrigger.shadowRoot?.querySelector(\"input\");\n }\n\n _splitValueByDelimiter(value: string) {\n const valuesArray: Array<string> = [];\n const partsArray = value.split(this._prevDelimiter || this._effectiveDelimiter);\n\n // if format successfully parse the value, the value contains only single date\n if (this.getFormat().parse(value)) {\n valuesArray[0] = partsArray.join(this._effectiveDelimiter);\n valuesArray[1] = \"\";\n\n return valuesArray;\n }\n\n valuesArray[0] = partsArray.slice(0, partsArray.length / 2).join(this._effectiveDelimiter);\n valuesArray[1] = partsArray.slice(partsArray.length / 2).join(this._effectiveDelimiter);\n\n return valuesArray;\n }\n\n /**\n * Returns a UTC timestamp, representing the last date in the value string or undefined if the value is empty or there is just one date\n * @private\n */\n _extractLastTimestamp(value: string) {\n if (!value || !this._checkValueValidity(value)) {\n return undefined;\n }\n\n const dateStrings = this._splitValueByDelimiter(value);\n if (dateStrings[1]) {\n const parsedDate = this.getFormat().parse(dateStrings[1], true) as Date;\n return parsedDate.getTime() / 1000;\n }\n\n return undefined;\n }\n\n /**\n * Returns a UTC timestamp, representing the first date in the value string or undefined if the value is empty\n * @private\n */\n _extractFirstTimestamp(value: string) {\n if (!value || !this._checkValueValidity(value)) {\n return undefined;\n }\n\n const dateStrings = this._splitValueByDelimiter(value); // at least one item guaranteed due to the checks above (non-empty and valid)\n\n const parsedDate = this.getFormat().parse(dateStrings[0], true) as Date;\n return parsedDate.getTime() / 1000;\n }\n\n /**\n * Checks if a value is valid against the current date format of the DatePicker.\n * @public\n * @param value A value to be tested against the current date format\n */\n isValid(value: string): boolean {\n if (value === \"\" || value === undefined) {\n return true;\n }\n\n return !!this.getFormat().parse(value);\n }\n\n isValidRange(value: string): boolean {\n const parts = this._splitValueByDelimiter(value);\n return parts.length <= 2 && parts.every(dateString => this.isValid(dateString)); // must be at most 2 dates and each must be valid\n }\n\n isInValidRange(value: string): boolean {\n if (value === \"\" || value === undefined) {\n return true;\n }\n\n const calendarDate = this._getCalendarDateFromString(value);\n\n if (!calendarDate || !this._minDate || !this._maxDate) {\n return false;\n }\n\n return calendarDate.valueOf() >= this._minDate.valueOf() && calendarDate.valueOf() <= this._maxDate.valueOf();\n }\n\n /**\n * Checks if a date is between the minimum and maximum date.\n * @public\n * @param value A value to be checked\n */\n isInValidRangeRange(value: string): boolean {\n return this._splitValueByDelimiter(value).every(dateString => this.isInValidRange(dateString));\n }\n\n _checkValueValidity(value: string): boolean {\n let result = false;\n if (value === \"\") {\n return true;\n }\n if (this.selectionMode === UDExDatePickerSelectionMode.Single) {\n result = this.isValid(value) && this.isInValidRange(value);\n }\n if (this.selectionMode === UDExDatePickerSelectionMode.Range) {\n result = this.isValidRange(value) && this.isInValidRangeRange(value);\n }\n return result;\n }\n\n /**\n * Builds a string value out of two UTC timestamps - this method is the counterpart to _extractFirstTimestamp/_extractLastTimestamp\n * @private\n */\n _buildValue(firstDateTimestamp: number | undefined, lastDateTimestamp: number | undefined) {\n this._prevDelimiter = this._effectiveDelimiter;\n if (firstDateTimestamp) {\n const firstDateString = this._getStringFromTimestamp(firstDateTimestamp * 1000);\n\n if (!lastDateTimestamp) {\n return firstDateString;\n }\n\n const lastDateString = this._getStringFromTimestamp(lastDateTimestamp * 1000);\n return `${firstDateString} ${this._effectiveDelimiter} ${lastDateString}`;\n }\n\n return \"\";\n }\n\n /**\n * The parser understands many formats, but we need one format OR extract both dates as timestamps, flip if necessary, and build (which will use the desired format so we enforce the format too)\n * @protected\n */\n normalizeValue(value: string) {\n let result = \"\";\n if (this.selectionMode === UDExDatePickerSelectionMode.Single) {\n if (value === \"\") {\n return value;\n }\n result = this.getFormat().format(this.getFormat().parse(value, true), true); // it is important to both parse and format the date as UTC\n }\n if (this.selectionMode === UDExDatePickerSelectionMode.Range) {\n const firstDateTimestamp = this._extractFirstTimestamp(value);\n const lastDateTimestamp = this._extractLastTimestamp(value);\n if (firstDateTimestamp && lastDateTimestamp && firstDateTimestamp > lastDateTimestamp) { // if both are timestamps (not undefined), flip if necessary\n return this._buildValue(lastDateTimestamp, firstDateTimestamp);\n }\n result = this._buildValue(firstDateTimestamp, lastDateTimestamp);\n }\n return result;\n }\n\n _updateValueState() {\n const valid = this._checkValueValidity(this.value);\n const previousValueState = this.valueState;\n\n this.valueState = valid ? UDExValueState.Standard : UDExValueState.Error;\n\n const eventPrevented = !this.fireDecoratorEvent(\"value-state-change\", { valueState: this.valueState, valid });\n\n if (eventPrevented) {\n this.valueState = previousValueState;\n }\n }\n\n _buildEventData(value: string): UDExDatePickerSelectionChangeEventDetail {\n if (this.selectionMode === UDExDatePickerSelectionMode.Range) {\n return {\n selectedDates: [this._extractFirstTimestamp(value), this._extractLastTimestamp(value)],\n selectedValues: this._splitValueByDelimiter(this.value),\n timestamp: this._extractLastTimestamp(value),\n };\n }\n return {\n selectedDates: [this._extractFirstTimestamp(value)],\n selectedValues: [value],\n timestamp: this._extractFirstTimestamp(value),\n };\n }\n\n _updateValueAndFireDecoratorEvents(value: string, normalizeValue: boolean, e?: CustomEvent | null) {\n const valid = this._checkValueValidity(value);\n\n if (valid && normalizeValue) {\n value = this.normalizeValue(value); // transform valid values (in any format) to the correct format\n }\n\n this.value = value;\n this._updateValueState(); // Change the value state to Error/None, but only if needed\n\n if (!valid) { return; }\n\n if (e) {\n const { selectedDates, timestamp, selectedValues } = e.detail;\n\n this.fireDecoratorEvent(\n \"selection-change\",\n {\n timestamp,\n selectedDates,\n selectedValues,\n },\n );\n } else {\n this.fireDecoratorEvent(\n \"selection-change\",\n this._buildEventData(value),\n );\n }\n }\n\n _onInputChange(e: Event) {\n this._updateValueAndFireDecoratorEvents((e.target as UDExDatePicker).value, true);\n }\n\n handleInputClick(e: MouseEvent | KeyboardEvent): void {\n e.preventDefault();\n\n if (this.disabled || this.readonly) {\n return;\n }\n\n if (this.responsivePopover?.open) {\n this.hideCalendar();\n } else {\n this.showCalendar();\n }\n }\n\n /**\n * Used to provide selectedDates to the calendar based on the component's state\n * Override in derivatives to provide different rules for setting the calendar's selected dates\n * @protected\n */\n get _calendarSelectedDates(): Array<string> {\n if (this._tempValue) {\n return [this._tempValue];\n }\n\n if (this.value && this._checkValueValidity(this.value)) {\n return this.value.split(\" - \");\n }\n\n return [];\n }\n\n get startValue(): string {\n return this._calendarSelectedDates[0] || \"\";\n }\n\n get endValue(): string {\n return this._calendarSelectedDates[1] || \"\";\n }\n\n get accessibleIconName(): string {\n return UDExDatePicker.i18nBundle.getText(CALENDAR_ICON);\n }\n\n get dateAccessibleName(): string {\n return this.accessibleName || UDExDatePicker.i18nBundle.getText(DATEPICKER_DATE_DESCRIPTION);\n }\n\n get isRangeMode(): boolean {\n return this.selectionMode === UDExDatePickerSelectionMode.Range;\n }\n}\n\nUDExDatePicker.define();\n\nexport default UDExDatePicker;\n"]}
@@ -0,0 +1,80 @@
1
+ import UI5Element from "@ui5/webcomponents-base/dist/UI5Element.js";
2
+ import type { UDExEventRibbonColorSheme, UDExEventRibbonLink, UDExEventRibbonIcon, UDExEventRibbonLogo } from "./types/EventRibbon.js";
3
+ import { UDExEventRibbonMode } from "./types/EventRibbon.js";
4
+ import "@ui5/webcomponents-icons/add-calendar.js";
5
+ import "@ui5/webcomponents-icons/media-play.js";
6
+ /**
7
+ * @class
8
+ *
9
+ * <h3 class="comment-api-title">Overview</h3>
10
+ *
11
+ *
12
+ * <h3>Usage</h3>
13
+ *
14
+ * For the <code>udex-event-ribbon</code>
15
+ * <h3>ES6 Module Import</h3>
16
+ *
17
+ * <code>import "@sapudex/web-components/dist/EventRibbon.js";</code>
18
+ *
19
+ * @constructor
20
+ * @extends UI5Element
21
+ * @public
22
+ */
23
+ declare class UDExEventRibbon extends UI5Element {
24
+ /**
25
+ * Defines the text of the event logo.
26
+ *
27
+ * @default ""
28
+ * @public
29
+ */
30
+ eventLogo: `${UDExEventRibbonLogo}`;
31
+ /**
32
+ * Defines the link details of the event ribbon.
33
+ *
34
+ * @default "{}"
35
+ * @public
36
+ */
37
+ eventLink: string;
38
+ /**
39
+ * Defines the icon displayed next to the link.
40
+ *
41
+ * @default ""
42
+ * @public
43
+ */
44
+ eventLinkIcon: `${UDExEventRibbonIcon}`;
45
+ /**
46
+ * Defines the text displayed in event ribbon.
47
+ *
48
+ * @default ""
49
+ * @public
50
+ */
51
+ eventText: string;
52
+ /**
53
+ * Defines whether event-ribbon uses dark or light theme.
54
+ *
55
+ * @default "light"
56
+ * @public
57
+ */
58
+ mode: `${UDExEventRibbonMode}`;
59
+ /**
60
+ * Defines the solid background color.
61
+ *
62
+ * @default "Blue"
63
+ * @public
64
+ */
65
+ backgroundColorScheme: UDExEventRibbonColorSheme;
66
+ /**
67
+ * Allows control over the background image source.
68
+ *
69
+ * @public
70
+ */
71
+ backgroundImage?: string;
72
+ _eventLink: UDExEventRibbonLink;
73
+ onBeforeRendering(): void;
74
+ onAfterRendering(): void;
75
+ applyColorScheme(): void;
76
+ handleKeyDown(e: KeyboardEvent): void;
77
+ get eventLogoAlt(): string;
78
+ get eventLogoPath(): string;
79
+ }
80
+ export default UDExEventRibbon;
@@ -0,0 +1,111 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ import UI5Element from "@ui5/webcomponents-base/dist/UI5Element.js";
8
+ import customElement from "@ui5/webcomponents-base/dist/decorators/customElement.js";
9
+ import property from "@ui5/webcomponents-base/dist/decorators/property.js";
10
+ import jsxRenderer from "@ui5/webcomponents-base/dist/renderer/JsxRenderer.js";
11
+ import { eventLogoText, UDExEventRibbonMode } from "./types/EventRibbon.js";
12
+ import "@ui5/webcomponents-icons/add-calendar.js";
13
+ import "@ui5/webcomponents-icons/media-play.js";
14
+ import EventRibbonTemplate from "./EventRibbonTemplate.js";
15
+ // Styles
16
+ import EventRibbonCss from "./generated/themes/EventRibbon.css.js";
17
+ import { isEnter, isSpace } from "@ui5/webcomponents-base/dist/Keys.js";
18
+ /**
19
+ * @class
20
+ *
21
+ * <h3 class="comment-api-title">Overview</h3>
22
+ *
23
+ *
24
+ * <h3>Usage</h3>
25
+ *
26
+ * For the <code>udex-event-ribbon</code>
27
+ * <h3>ES6 Module Import</h3>
28
+ *
29
+ * <code>import "@sapudex/web-components/dist/EventRibbon.js";</code>
30
+ *
31
+ * @constructor
32
+ * @extends UI5Element
33
+ * @public
34
+ */
35
+ let UDExEventRibbon = class UDExEventRibbon extends UI5Element {
36
+ constructor() {
37
+ super(...arguments);
38
+ /**
39
+ * Defines the link details of the event ribbon.
40
+ *
41
+ * @default "{}"
42
+ * @public
43
+ */
44
+ this.eventLink = "{}";
45
+ /**
46
+ * Defines whether event-ribbon uses dark or light theme.
47
+ *
48
+ * @default "light"
49
+ * @public
50
+ */
51
+ this.mode = UDExEventRibbonMode.light;
52
+ }
53
+ onBeforeRendering() {
54
+ this._eventLink = JSON.parse(this.eventLink);
55
+ }
56
+ onAfterRendering() {
57
+ this.applyColorScheme();
58
+ }
59
+ applyColorScheme() {
60
+ const backgroundColorLowercase = this.backgroundColorScheme.toLowerCase();
61
+ const backgroundColor = `var(--udex-event-ribbon-${this.mode}-${backgroundColorLowercase}-default-background-color)`;
62
+ const backgroundColorHover = `var(--udex-event-ribbon-${this.mode}-${backgroundColorLowercase}-hover-background-color)`;
63
+ this.style.setProperty("--udex-event-ribbon-background-color", backgroundColor);
64
+ this.style.setProperty("--udex-event-ribbon-hover-background-color", backgroundColorHover);
65
+ this.style.setProperty("--udex-event-ribbon-background-image", `url("${this.backgroundImage}")`);
66
+ }
67
+ handleKeyDown(e) {
68
+ if (isSpace(e) || isEnter(e)) {
69
+ e.preventDefault();
70
+ this.shadowRoot.querySelector("a")?.click();
71
+ }
72
+ }
73
+ get eventLogoAlt() {
74
+ return eventLogoText[this.eventLogo];
75
+ }
76
+ get eventLogoPath() {
77
+ return `https://cdn.udex.services.sap.com/dds/design-tokens/assets/logos/event-ribbon-logo-${this.eventLogo}.svg`;
78
+ }
79
+ };
80
+ __decorate([
81
+ property({ type: String })
82
+ ], UDExEventRibbon.prototype, "eventLogo", void 0);
83
+ __decorate([
84
+ property({ type: String })
85
+ ], UDExEventRibbon.prototype, "eventLink", void 0);
86
+ __decorate([
87
+ property({ type: String })
88
+ ], UDExEventRibbon.prototype, "eventLinkIcon", void 0);
89
+ __decorate([
90
+ property({ type: String })
91
+ ], UDExEventRibbon.prototype, "eventText", void 0);
92
+ __decorate([
93
+ property({ type: String })
94
+ ], UDExEventRibbon.prototype, "mode", void 0);
95
+ __decorate([
96
+ property({ type: String })
97
+ ], UDExEventRibbon.prototype, "backgroundColorScheme", void 0);
98
+ __decorate([
99
+ property({ type: String })
100
+ ], UDExEventRibbon.prototype, "backgroundImage", void 0);
101
+ UDExEventRibbon = __decorate([
102
+ customElement({
103
+ tag: "udex-event-ribbon",
104
+ renderer: jsxRenderer,
105
+ styles: EventRibbonCss,
106
+ template: EventRibbonTemplate,
107
+ })
108
+ ], UDExEventRibbon);
109
+ UDExEventRibbon.define();
110
+ export default UDExEventRibbon;
111
+ //# sourceMappingURL=EventRibbon.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EventRibbon.js","sourceRoot":"","sources":["../src/EventRibbon.ts"],"names":[],"mappings":"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","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport jsxRenderer from \"@ui5/webcomponents-base/dist/renderer/JsxRenderer.js\";\nimport type {\n UDExEventRibbonColorSheme, UDExEventRibbonLink, UDExEventRibbonIcon, UDExEventRibbonLogo,\n} from \"./types/EventRibbon.js\";\nimport { eventLogoText, UDExEventRibbonMode } from \"./types/EventRibbon.js\";\nimport \"@ui5/webcomponents-icons/add-calendar.js\";\nimport \"@ui5/webcomponents-icons/media-play.js\";\nimport EventRibbonTemplate from \"./EventRibbonTemplate.js\";\n\n// Styles\nimport EventRibbonCss from \"./generated/themes/EventRibbon.css.js\";\nimport { isEnter, isSpace } from \"@ui5/webcomponents-base/dist/Keys.js\";\n\n/**\n * @class\n *\n * <h3 class=\"comment-api-title\">Overview</h3>\n *\n *\n * <h3>Usage</h3>\n *\n * For the <code>udex-event-ribbon</code>\n * <h3>ES6 Module Import</h3>\n *\n * <code>import \"@sapudex/web-components/dist/EventRibbon.js\";</code>\n *\n * @constructor\n * @extends UI5Element\n * @public\n */\n@customElement({\n tag: \"udex-event-ribbon\",\n renderer: jsxRenderer,\n styles: EventRibbonCss,\n template: EventRibbonTemplate,\n})\n\nclass UDExEventRibbon extends UI5Element {\n /**\n * Defines the text of the event logo.\n *\n * @default \"\"\n * @public\n */\n @property({ type: String })\n eventLogo!: `${UDExEventRibbonLogo}`;\n\n /**\n * Defines the link details of the event ribbon.\n *\n * @default \"{}\"\n * @public\n */\n @property({ type: String })\n eventLink: string = \"{}\";\n\n /**\n * Defines the icon displayed next to the link.\n *\n * @default \"\"\n * @public\n */\n @property({ type: String })\n eventLinkIcon!: `${UDExEventRibbonIcon}`;\n\n /**\n * Defines the text displayed in event ribbon.\n *\n * @default \"\"\n * @public\n */\n @property({ type: String })\n eventText!: string;\n\n /**\n * Defines whether event-ribbon uses dark or light theme.\n *\n * @default \"light\"\n * @public\n */\n @property({ type: String })\n mode: `${UDExEventRibbonMode}` = UDExEventRibbonMode.light;\n\n /**\n * Defines the solid background color.\n *\n * @default \"Blue\"\n * @public\n */\n @property({ type: String })\n backgroundColorScheme!: UDExEventRibbonColorSheme;\n\n /**\n * Allows control over the background image source.\n *\n * @public\n */\n @property({ type: String })\n backgroundImage?: string;\n\n _eventLink!: UDExEventRibbonLink;\n\n onBeforeRendering(): void {\n this._eventLink = JSON.parse(this.eventLink);\n }\n\n onAfterRendering(): void {\n this.applyColorScheme();\n }\n\n applyColorScheme(): void {\n const backgroundColorLowercase = this.backgroundColorScheme.toLowerCase();\n const backgroundColor: string = `var(--udex-event-ribbon-${this.mode}-${backgroundColorLowercase}-default-background-color)`;\n const backgroundColorHover: string = `var(--udex-event-ribbon-${this.mode}-${backgroundColorLowercase}-hover-background-color)`;\n\n this.style.setProperty(\"--udex-event-ribbon-background-color\", backgroundColor);\n this.style.setProperty(\"--udex-event-ribbon-hover-background-color\", backgroundColorHover);\n\n this.style.setProperty(\"--udex-event-ribbon-background-image\", `url(\"${this.backgroundImage}\")`);\n }\n\n handleKeyDown(e: KeyboardEvent): void {\n if (isSpace(e) || isEnter(e)) {\n e.preventDefault();\n this.shadowRoot!.querySelector(\"a\")?.click();\n }\n }\n\n get eventLogoAlt(): string {\n return eventLogoText[this.eventLogo];\n }\n\n get eventLogoPath(): string {\n return `https://cdn.udex.services.sap.com/dds/design-tokens/assets/logos/event-ribbon-logo-${this.eventLogo}.svg`;\n }\n}\n\nUDExEventRibbon.define();\n\nexport default UDExEventRibbon;\n"]}
@@ -0,0 +1,2 @@
1
+ import type UDExEventRibbon from "./EventRibbon.js";
2
+ export default function EventRibbonTemplate(this: UDExEventRibbon): import("@ui5/webcomponents-base").JSX.Element;
@@ -0,0 +1,7 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "@ui5/webcomponents-base/jsx-runtime";
2
+ import Icon from "@ui5/webcomponents/dist/Icon.js";
3
+ export default function EventRibbonTemplate() {
4
+ const { text, target, url } = this._eventLink;
5
+ return (_jsxs("a", { onKeyDown: this.handleKeyDown, role: "banner", "aria-label": this.eventText, class: { "udex-event-ribbon__container": true, "udex-event-ribbon__container-with-background-image": this.backgroundImage }, target: target, href: url, title: text, children: [_jsx("div", { class: "udex-event-ribbon__logo", children: _jsx("img", { src: this.eventLogoPath, alt: this.eventLogoAlt }) }), this.eventText && _jsx("p", { class: "udex-event-ribbon__text", children: this.eventText }), _jsxs("div", { class: "udex-event-ribbon__link-container", children: [this.eventLinkIcon && _jsx(Icon, { name: this.eventLinkIcon }), _jsx("span", { children: text })] })] }));
6
+ }
7
+ //# sourceMappingURL=EventRibbonTemplate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EventRibbonTemplate.js","sourceRoot":"","sources":["../src/EventRibbonTemplate.tsx"],"names":[],"mappings":";AAAA,OAAO,IAAI,MAAM,iCAAiC,CAAC;AAGnD,MAAM,CAAC,OAAO,UAAU,mBAAmB;IACzC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC;IAC9C,OAAO,CACL,aAAG,SAAS,EAAE,IAAI,CAAC,aAAa,EAAE,IAAI,EAAC,QAAQ,gBAAa,IAAI,CAAC,SAAS,EAAE,KAAK,EAAG,EAAE,8BAA8B,EAAE,IAAI,EAAE,oDAAoD,EAAE,IAAI,CAAC,eAAe,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,aAC9O,cAAK,KAAK,EAAC,yBAAyB,YAClC,cAAK,GAAG,EAAE,IAAI,CAAC,aAAa,EAAE,GAAG,EAAE,IAAI,CAAC,YAAY,GAAG,GACnD,EACL,IAAI,CAAC,SAAS,IAAI,YAAG,KAAK,EAAC,yBAAyB,YAAE,IAAI,CAAC,SAAS,GAAK,EAC1E,eAAK,KAAK,EAAC,mCAAmC,aAC3C,IAAI,CAAC,aAAa,IAAI,KAAC,IAAI,IAAC,IAAI,EAAE,IAAI,CAAC,aAAa,GAAS,EAC9D,yBAAO,IAAI,GAAQ,IACf,IACJ,CACL,CAAC;AACJ,CAAC","sourcesContent":["import Icon from \"@ui5/webcomponents/dist/Icon.js\";\nimport type UDExEventRibbon from \"./EventRibbon.js\";\n\nexport default function EventRibbonTemplate(this: UDExEventRibbon) {\n const { text, target, url } = this._eventLink;\n return (\n <a onKeyDown={this.handleKeyDown} role=\"banner\" aria-label={this.eventText} class= {{ \"udex-event-ribbon__container\": true, \"udex-event-ribbon__container-with-background-image\": this.backgroundImage }} target={target} href={url} title={text}>\n <div class=\"udex-event-ribbon__logo\">\n <img src={this.eventLogoPath} alt={this.eventLogoAlt}/>\n </div>\n {this.eventText && <p class=\"udex-event-ribbon__text\">{this.eventText}</p>}\n <div class=\"udex-event-ribbon__link-container\">\n {this.eventLinkIcon && <Icon name={this.eventLinkIcon}></Icon>}\n <span>{text}</span>\n </div>\n </a>\n );\n}\n"]}
package/dist/Footer.d.ts CHANGED
@@ -208,7 +208,6 @@ declare class UDExFooter extends UI5Element {
208
208
  onEnterDOM(): void;
209
209
  _handleResize(): void;
210
210
  onBackToTopClick(e: PointerEvent): void;
211
- parseArrayFromString<T>(string: string): T[];
212
211
  get parsedRef(): string | undefined;
213
212
  get quickLinksArray(): FooterLink[];
214
213
  get trendingLinksArray(): FooterLink[];
package/dist/Footer.js CHANGED
@@ -20,6 +20,7 @@ import UDExAccordion from "./Accordion.js";
20
20
  import UDExLink from "./Link.js";
21
21
  import UDExDivider from "./Divider.js";
22
22
  import { BreakpointUtils } from "./utils/Breakpoints.js";
23
+ import parseArrayFromString from "./utils/parseArrayFromString.js";
23
24
  // Template
24
25
  import FooterTemplate from "./generated/templates/FooterTemplate.lit.js";
25
26
  // Styles
@@ -176,29 +177,26 @@ let UDExFooter = UDExFooter_1 = class UDExFooter extends UI5Element {
176
177
  this.fireFooterBaseEvent(e, "back-to-top-click");
177
178
  window.scrollTo(0, 0);
178
179
  }
179
- parseArrayFromString(string) {
180
- return string ? JSON.parse(string) : [];
181
- }
182
180
  get parsedRef() {
183
181
  return (this.logoLink && this.logoLink.length > 0) ? this.logoLink : undefined;
184
182
  }
185
183
  get quickLinksArray() {
186
- return this.parseArrayFromString(this.quickLinks);
184
+ return parseArrayFromString(this.quickLinks);
187
185
  }
188
186
  get trendingLinksArray() {
189
- return this.parseArrayFromString(this.trendingLinks);
187
+ return parseArrayFromString(this.trendingLinks);
190
188
  }
191
189
  get aboutLinksArray() {
192
- return this.parseArrayFromString(this.aboutLinks);
190
+ return parseArrayFromString(this.aboutLinks);
193
191
  }
194
192
  get siteInformationLinksArray() {
195
- return this.parseArrayFromString(this.siteInformationLinks);
193
+ return parseArrayFromString(this.siteInformationLinks);
196
194
  }
197
195
  get contactNumbersArray() {
198
- return this.parseArrayFromString(this.contactNumbersList);
196
+ return parseArrayFromString(this.contactNumbersList);
199
197
  }
200
198
  get socialLinksArray() {
201
- return this.parseArrayFromString(this.socialLinks);
199
+ return parseArrayFromString(this.socialLinks);
202
200
  }
203
201
  get isContactContainerVisible() {
204
202
  return !!this.contactNumbersArray.length || !!this.contactUsLink || !!this.chatWithUsLink;