@postnord/pn-marketweb-components 4.1.1 → 4.2.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 (337) hide show
  1. package/cjs/loader.cjs.js +1 -1
  2. package/cjs/pn-chat-message_2.cjs.entry.js +5 -5
  3. package/cjs/pn-chat-message_2.cjs.entry.js.map +1 -1
  4. package/cjs/pn-chat.cjs.entry.js +18 -6
  5. package/cjs/pn-chat.cjs.entry.js.map +1 -1
  6. package/cjs/pn-dropdown-choice-adds-row.cjs.entry.js +17 -3
  7. package/cjs/pn-dropdown-choice-adds-row.cjs.entry.js.map +1 -1
  8. package/cjs/pn-market-web-components.cjs.js +1 -1
  9. package/collection/components/input/pn-dropdown-choice-adds-row/pn-dropdown-choice-adds-row.js +53 -3
  10. package/collection/components/input/pn-dropdown-choice-adds-row/pn-dropdown-choice-adds-row.js.map +1 -1
  11. package/collection/components/input/pn-dropdown-choice-adds-row/pn-dropdown-choice-adds-row.stories.js +4 -0
  12. package/collection/components/widgets/pn-chat/pn-chat-message/pn-chat-message.css +27 -10
  13. package/collection/components/widgets/pn-chat/pn-chat-message/pn-chat-message.js +3 -3
  14. package/collection/components/widgets/pn-chat/pn-chat-message/pn-chat-message.js.map +1 -1
  15. package/collection/components/widgets/pn-chat/pn-chat-stories-constants.js +18 -0
  16. package/collection/components/widgets/pn-chat/pn-chat-stories-constants.js.map +1 -1
  17. package/collection/components/widgets/pn-chat/pn-chat.css +24 -13
  18. package/collection/components/widgets/pn-chat/pn-chat.js +17 -5
  19. package/collection/components/widgets/pn-chat/pn-chat.js.map +1 -1
  20. package/collection/components/widgets/pn-chat/pn-chat.stories.js +43 -0
  21. package/collection/components/widgets/pn-chat/pn-chat.stories.js.map +1 -1
  22. package/components/pn-chat-message2.js +5 -5
  23. package/components/pn-chat-message2.js.map +1 -1
  24. package/components/pn-chat.js +18 -6
  25. package/components/pn-chat.js.map +1 -1
  26. package/components/pn-dropdown-choice-adds-row.js +19 -3
  27. package/components/pn-dropdown-choice-adds-row.js.map +1 -1
  28. package/esm/loader.js +1 -1
  29. package/esm/pn-chat-message_2.entry.js +5 -5
  30. package/esm/pn-chat-message_2.entry.js.map +1 -1
  31. package/esm/pn-chat.entry.js +18 -6
  32. package/esm/pn-chat.entry.js.map +1 -1
  33. package/esm/pn-dropdown-choice-adds-row.entry.js +17 -3
  34. package/esm/pn-dropdown-choice-adds-row.entry.js.map +1 -1
  35. package/esm/pn-market-web-components.js +1 -1
  36. package/package.json +14 -17
  37. package/pn-market-web-components/p-4a8ef165.entry.js +2 -0
  38. package/pn-market-web-components/p-4a8ef165.entry.js.map +1 -0
  39. package/pn-market-web-components/p-62ce6700.entry.js +2 -0
  40. package/pn-market-web-components/p-62ce6700.entry.js.map +1 -0
  41. package/pn-market-web-components/p-6f6ed930.entry.js +2 -0
  42. package/pn-market-web-components/p-6f6ed930.entry.js.map +1 -0
  43. package/pn-market-web-components/pn-market-web-components.esm.js +1 -1
  44. package/pn-market-web-components/pn-market-web-components.esm.js.map +1 -1
  45. package/types/components/input/pn-dropdown-choice-adds-row/pn-dropdown-choice-adds-row.d.ts +2 -0
  46. package/types/components/widgets/pn-chat/pn-chat-stories-constants.d.ts +18 -0
  47. package/types/components/widgets/pn-chat/pn-chat.stories.d.ts +1 -0
  48. package/types/components.d.ts +4 -0
  49. package/umd/modules/@postnord/web-components/cjs/{index-BNXSyZmU.js → index-CNdVg5VI.js} +1 -1
  50. package/umd/modules/@postnord/web-components/cjs/{index-CAMqnx70.js → index-CfUQZtlH.js} +245 -1884
  51. package/umd/modules/@postnord/web-components/cjs/index.cjs.js +8 -5
  52. package/umd/modules/@postnord/web-components/cjs/loader.cjs.js +2 -2
  53. package/umd/modules/@postnord/web-components/cjs/pn-accordion-row.cjs.entry.js +1 -1
  54. package/umd/modules/@postnord/web-components/cjs/pn-accordion.cjs.entry.js +1 -1
  55. package/umd/modules/@postnord/web-components/cjs/pn-action-menu.cjs.entry.js +2 -2
  56. package/umd/modules/@postnord/web-components/cjs/pn-button-dropdown.cjs.entry.js +1 -1
  57. package/umd/modules/@postnord/web-components/cjs/pn-button_2.cjs.entry.js +1 -1
  58. package/umd/modules/@postnord/web-components/cjs/pn-card.cjs.entry.js +2 -2
  59. package/umd/modules/@postnord/web-components/cjs/pn-checkbox.cjs.entry.js +2 -2
  60. package/umd/modules/@postnord/web-components/cjs/pn-choice-chip.cjs.entry.js +1 -1
  61. package/umd/modules/@postnord/web-components/cjs/pn-counter.cjs.entry.js +13 -15
  62. package/umd/modules/@postnord/web-components/cjs/pn-date-picker.cjs.entry.js +12 -6
  63. package/umd/modules/@postnord/web-components/cjs/pn-fieldset.cjs.entry.js +2 -2
  64. package/umd/modules/@postnord/web-components/cjs/pn-file-upload.cjs.entry.js +2 -2
  65. package/umd/modules/@postnord/web-components/cjs/pn-footer.cjs.entry.js +2 -2
  66. package/umd/modules/@postnord/web-components/cjs/pn-header.cjs.entry.js +2 -2
  67. package/umd/modules/@postnord/web-components/cjs/pn-icon_2.cjs.entry.js +1 -1
  68. package/umd/modules/@postnord/web-components/cjs/pn-illustration.cjs.entry.js +1 -1
  69. package/umd/modules/@postnord/web-components/cjs/pn-input.cjs.entry.js +33 -16
  70. package/umd/modules/@postnord/web-components/cjs/pn-modal.cjs.entry.js +1 -1
  71. package/umd/modules/@postnord/web-components/cjs/pn-multiselect.cjs.entry.js +16 -5
  72. package/umd/modules/@postnord/web-components/cjs/pn-ocr-search.cjs.entry.js +2 -2
  73. package/umd/modules/@postnord/web-components/cjs/pn-page-nav-dropdown-item.cjs.entry.js +2 -2
  74. package/umd/modules/@postnord/web-components/cjs/pn-page-nav-item.cjs.entry.js +2 -2
  75. package/umd/modules/@postnord/web-components/cjs/pn-page-nav.cjs.entry.js +2 -2
  76. package/umd/modules/@postnord/web-components/cjs/pn-pagination.cjs.entry.js +2 -2
  77. package/umd/modules/@postnord/web-components/cjs/pn-progress-bar.cjs.entry.js +1 -1
  78. package/umd/modules/@postnord/web-components/cjs/pn-progress-indicator-step.cjs.entry.js +1 -1
  79. package/umd/modules/@postnord/web-components/cjs/pn-progress-indicator.cjs.entry.js +1 -1
  80. package/umd/modules/@postnord/web-components/cjs/pn-progress-stepper.cjs.entry.js +1 -1
  81. package/umd/modules/@postnord/web-components/cjs/pn-radio-button.cjs.entry.js +3 -3
  82. package/umd/modules/@postnord/web-components/cjs/pn-range.cjs.entry.js +3 -3
  83. package/umd/modules/@postnord/web-components/cjs/pn-read-only-button.cjs.entry.js +1 -1
  84. package/umd/modules/@postnord/web-components/cjs/pn-search-field.cjs.entry.js +2 -2
  85. package/umd/modules/@postnord/web-components/cjs/pn-segment.cjs.entry.js +2 -2
  86. package/umd/modules/@postnord/web-components/cjs/pn-segmented-control.cjs.entry.js +2 -2
  87. package/umd/modules/@postnord/web-components/cjs/pn-select.cjs.entry.js +10 -3
  88. package/umd/modules/@postnord/web-components/cjs/pn-tab.cjs.entry.js +2 -2
  89. package/umd/modules/@postnord/web-components/cjs/pn-table.cjs.entry.js +1 -1
  90. package/umd/modules/@postnord/web-components/cjs/pn-tablist.cjs.entry.js +2 -2
  91. package/umd/modules/@postnord/web-components/cjs/pn-text-link.cjs.entry.js +2 -2
  92. package/umd/modules/@postnord/web-components/cjs/pn-textarea.cjs.entry.js +19 -9
  93. package/umd/modules/@postnord/web-components/cjs/pn-tile.cjs.entry.js +2 -2
  94. package/umd/modules/@postnord/web-components/cjs/pn-toast.cjs.entry.js +2 -2
  95. package/umd/modules/@postnord/web-components/cjs/pn-toggle-switch.cjs.entry.js +3 -3
  96. package/umd/modules/@postnord/web-components/cjs/pn-tooltip.cjs.entry.js +1 -1
  97. package/umd/modules/@postnord/web-components/cjs/pn-wizard.cjs.entry.js +1 -1
  98. package/umd/modules/@postnord/web-components/cjs/pn-zipcode-search.cjs.entry.js +2 -2
  99. package/umd/modules/@postnord/web-components/cjs/postnord-web-components.cjs.js +3 -3
  100. package/umd/modules/@postnord/web-components/collection/collection-manifest.json +1 -1
  101. package/umd/modules/@postnord/web-components/collection/components/input/pn-counter/pn-counter.css +69 -27
  102. package/umd/modules/@postnord/web-components/collection/components/input/pn-counter/pn-counter.js +34 -13
  103. package/umd/modules/@postnord/web-components/collection/components/input/pn-date-picker/pn-date-picker.css +38 -1
  104. package/umd/modules/@postnord/web-components/collection/components/input/pn-date-picker/pn-date-picker.js +32 -3
  105. package/umd/modules/@postnord/web-components/collection/components/input/pn-fieldset/pn-fieldset.js +1 -1
  106. package/umd/modules/@postnord/web-components/collection/components/input/pn-file-upload/pn-file-upload.js +1 -1
  107. package/umd/modules/@postnord/web-components/collection/components/input/pn-input/pn-input.css +48 -9
  108. package/umd/modules/@postnord/web-components/collection/components/input/pn-input/pn-input.js +55 -15
  109. package/umd/modules/@postnord/web-components/collection/components/input/pn-multiselect/pn-multiselect.css +63 -22
  110. package/umd/modules/@postnord/web-components/collection/components/input/pn-multiselect/pn-multiselect.js +36 -2
  111. package/umd/modules/@postnord/web-components/collection/components/input/pn-radio-button/pn-radio-button.js +1 -1
  112. package/umd/modules/@postnord/web-components/collection/components/input/pn-range/pn-range.css +1 -1
  113. package/umd/modules/@postnord/web-components/collection/components/input/pn-range/pn-range.js +1 -1
  114. package/umd/modules/@postnord/web-components/collection/components/input/pn-search-field/pn-search-field.js +1 -1
  115. package/umd/modules/@postnord/web-components/collection/components/input/pn-segmented-control/pn-segmented-control.js +1 -1
  116. package/umd/modules/@postnord/web-components/collection/components/input/pn-segmented-control/segment/pn-segment.js +1 -1
  117. package/umd/modules/@postnord/web-components/collection/components/input/pn-select/pn-select.css +53 -14
  118. package/umd/modules/@postnord/web-components/collection/components/input/pn-select/pn-select.js +31 -1
  119. package/umd/modules/@postnord/web-components/collection/components/input/pn-textarea/pn-textarea.css +54 -5
  120. package/umd/modules/@postnord/web-components/collection/components/input/pn-textarea/pn-textarea.js +45 -13
  121. package/umd/modules/@postnord/web-components/collection/components/input/pn-toggle-switch/pn-toggle-switch.css +1 -1
  122. package/umd/modules/@postnord/web-components/collection/components/input/pn-toggle-switch/pn-toggle-switch.js +1 -1
  123. package/umd/modules/@postnord/web-components/collection/components/layout/pn-header/pn-header.js +1 -1
  124. package/umd/modules/@postnord/web-components/collection/components/navigation/pn-card/pn-card.js +1 -1
  125. package/umd/modules/@postnord/web-components/collection/components/navigation/pn-footer/pn-footer.js +1 -1
  126. package/umd/modules/@postnord/web-components/collection/components/navigation/pn-page-nav/dropdown-item/pn-page-nav-dropdown-item.js +1 -1
  127. package/umd/modules/@postnord/web-components/collection/components/navigation/pn-page-nav/item/pn-page-nav-item.js +1 -1
  128. package/umd/modules/@postnord/web-components/collection/components/navigation/pn-page-nav/menu/pn-page-nav.js +1 -1
  129. package/umd/modules/@postnord/web-components/collection/components/navigation/pn-pagination/pn-pagination.js +1 -1
  130. package/umd/modules/@postnord/web-components/collection/components/navigation/pn-tablist/pn-tablist.js +1 -1
  131. package/umd/modules/@postnord/web-components/collection/components/navigation/pn-tablist/tab/pn-tab.js +1 -1
  132. package/umd/modules/@postnord/web-components/collection/components/navigation/pn-text-link/pn-text-link.js +1 -1
  133. package/umd/modules/@postnord/web-components/collection/components/navigation/pn-tile/pn-tile.js +1 -1
  134. package/umd/modules/@postnord/web-components/collection/components/web-components/pn-ocr-search/pn-ocr-search.js +1 -1
  135. package/umd/modules/@postnord/web-components/collection/components/web-components/pn-zipcode-search/pn-zipcode-search.js +1 -1
  136. package/umd/modules/@postnord/web-components/components/helpers.js +1 -1
  137. package/umd/modules/@postnord/web-components/components/pn-card.js +1 -1
  138. package/umd/modules/@postnord/web-components/components/pn-counter.js +1 -1
  139. package/umd/modules/@postnord/web-components/components/pn-date-picker.js +1 -1
  140. package/umd/modules/@postnord/web-components/components/pn-fieldset.js +1 -1
  141. package/umd/modules/@postnord/web-components/components/pn-file-upload.js +1 -1
  142. package/umd/modules/@postnord/web-components/components/pn-footer.js +1 -1
  143. package/umd/modules/@postnord/web-components/components/pn-header.js +1 -1
  144. package/umd/modules/@postnord/web-components/components/pn-input2.js +1 -1
  145. package/umd/modules/@postnord/web-components/components/pn-multiselect.js +1 -1
  146. package/umd/modules/@postnord/web-components/components/pn-ocr-search.js +1 -1
  147. package/umd/modules/@postnord/web-components/components/pn-page-nav-dropdown-item.js +1 -1
  148. package/umd/modules/@postnord/web-components/components/pn-page-nav-item.js +1 -1
  149. package/umd/modules/@postnord/web-components/components/pn-page-nav.js +1 -1
  150. package/umd/modules/@postnord/web-components/components/pn-pagination.js +1 -1
  151. package/umd/modules/@postnord/web-components/components/pn-radio-button.js +1 -1
  152. package/umd/modules/@postnord/web-components/components/pn-range.js +1 -1
  153. package/umd/modules/@postnord/web-components/components/pn-search-field2.js +1 -1
  154. package/umd/modules/@postnord/web-components/components/pn-segment.js +1 -1
  155. package/umd/modules/@postnord/web-components/components/pn-segmented-control.js +1 -1
  156. package/umd/modules/@postnord/web-components/components/pn-select2.js +1 -1
  157. package/umd/modules/@postnord/web-components/components/pn-tab.js +1 -1
  158. package/umd/modules/@postnord/web-components/components/pn-tablist.js +1 -1
  159. package/umd/modules/@postnord/web-components/components/pn-text-link2.js +1 -1
  160. package/umd/modules/@postnord/web-components/components/pn-textarea.js +1 -1
  161. package/umd/modules/@postnord/web-components/components/pn-tile.js +1 -1
  162. package/umd/modules/@postnord/web-components/components/pn-toggle-switch.js +1 -1
  163. package/umd/modules/@postnord/web-components/components/pn-zipcode-search.js +1 -1
  164. package/umd/modules/@postnord/web-components/esm/{index-DWsprozV.js → index-CAEP792y.js} +245 -1884
  165. package/umd/modules/@postnord/web-components/esm/{index-BhpZuCL7.js → index-CosyroON.js} +1 -1
  166. package/umd/modules/@postnord/web-components/esm/index.js +9 -6
  167. package/umd/modules/@postnord/web-components/esm/loader.js +3 -3
  168. package/umd/modules/@postnord/web-components/esm/pn-accordion-row.entry.js +1 -1
  169. package/umd/modules/@postnord/web-components/esm/pn-accordion.entry.js +1 -1
  170. package/umd/modules/@postnord/web-components/esm/pn-action-menu.entry.js +2 -2
  171. package/umd/modules/@postnord/web-components/esm/pn-button-dropdown.entry.js +1 -1
  172. package/umd/modules/@postnord/web-components/esm/pn-button_2.entry.js +1 -1
  173. package/umd/modules/@postnord/web-components/esm/pn-card.entry.js +2 -2
  174. package/umd/modules/@postnord/web-components/esm/pn-checkbox.entry.js +2 -2
  175. package/umd/modules/@postnord/web-components/esm/pn-choice-chip.entry.js +1 -1
  176. package/umd/modules/@postnord/web-components/esm/pn-counter.entry.js +13 -15
  177. package/umd/modules/@postnord/web-components/esm/pn-date-picker.entry.js +12 -6
  178. package/umd/modules/@postnord/web-components/esm/pn-fieldset.entry.js +2 -2
  179. package/umd/modules/@postnord/web-components/esm/pn-file-upload.entry.js +2 -2
  180. package/umd/modules/@postnord/web-components/esm/pn-footer.entry.js +2 -2
  181. package/umd/modules/@postnord/web-components/esm/pn-header.entry.js +2 -2
  182. package/umd/modules/@postnord/web-components/esm/pn-icon_2.entry.js +1 -1
  183. package/umd/modules/@postnord/web-components/esm/pn-illustration.entry.js +1 -1
  184. package/umd/modules/@postnord/web-components/esm/pn-input.entry.js +33 -16
  185. package/umd/modules/@postnord/web-components/esm/pn-modal.entry.js +1 -1
  186. package/umd/modules/@postnord/web-components/esm/pn-multiselect.entry.js +16 -5
  187. package/umd/modules/@postnord/web-components/esm/pn-ocr-search.entry.js +2 -2
  188. package/umd/modules/@postnord/web-components/esm/pn-page-nav-dropdown-item.entry.js +2 -2
  189. package/umd/modules/@postnord/web-components/esm/pn-page-nav-item.entry.js +2 -2
  190. package/umd/modules/@postnord/web-components/esm/pn-page-nav.entry.js +2 -2
  191. package/umd/modules/@postnord/web-components/esm/pn-pagination.entry.js +2 -2
  192. package/umd/modules/@postnord/web-components/esm/pn-progress-bar.entry.js +1 -1
  193. package/umd/modules/@postnord/web-components/esm/pn-progress-indicator-step.entry.js +1 -1
  194. package/umd/modules/@postnord/web-components/esm/pn-progress-indicator.entry.js +1 -1
  195. package/umd/modules/@postnord/web-components/esm/pn-progress-stepper.entry.js +1 -1
  196. package/umd/modules/@postnord/web-components/esm/pn-radio-button.entry.js +3 -3
  197. package/umd/modules/@postnord/web-components/esm/pn-range.entry.js +3 -3
  198. package/umd/modules/@postnord/web-components/esm/pn-read-only-button.entry.js +1 -1
  199. package/umd/modules/@postnord/web-components/esm/pn-search-field.entry.js +2 -2
  200. package/umd/modules/@postnord/web-components/esm/pn-segment.entry.js +2 -2
  201. package/umd/modules/@postnord/web-components/esm/pn-segmented-control.entry.js +2 -2
  202. package/umd/modules/@postnord/web-components/esm/pn-select.entry.js +10 -3
  203. package/umd/modules/@postnord/web-components/esm/pn-tab.entry.js +2 -2
  204. package/umd/modules/@postnord/web-components/esm/pn-table.entry.js +1 -1
  205. package/umd/modules/@postnord/web-components/esm/pn-tablist.entry.js +2 -2
  206. package/umd/modules/@postnord/web-components/esm/pn-text-link.entry.js +2 -2
  207. package/umd/modules/@postnord/web-components/esm/pn-textarea.entry.js +19 -9
  208. package/umd/modules/@postnord/web-components/esm/pn-tile.entry.js +2 -2
  209. package/umd/modules/@postnord/web-components/esm/pn-toast.entry.js +2 -2
  210. package/umd/modules/@postnord/web-components/esm/pn-toggle-switch.entry.js +3 -3
  211. package/umd/modules/@postnord/web-components/esm/pn-tooltip.entry.js +1 -1
  212. package/umd/modules/@postnord/web-components/esm/pn-wizard.entry.js +1 -1
  213. package/umd/modules/@postnord/web-components/esm/pn-zipcode-search.entry.js +2 -2
  214. package/umd/modules/@postnord/web-components/esm/postnord-web-components.js +4 -4
  215. package/umd/modules/@postnord/web-components/hydrate/index.js +3597 -3562
  216. package/umd/modules/@postnord/web-components/hydrate/index.mjs +3597 -3562
  217. package/umd/modules/@postnord/web-components/node_modules/@stencil/core/cli/index.cjs +1 -18
  218. package/umd/modules/@postnord/web-components/node_modules/@stencil/core/cli/index.js +1 -18
  219. package/umd/modules/@postnord/web-components/node_modules/@stencil/core/cli/package.json +1 -1
  220. package/umd/modules/@postnord/web-components/node_modules/@stencil/core/compiler/package.json +1 -1
  221. package/umd/modules/@postnord/web-components/node_modules/@stencil/core/compiler/stencil.js +70 -12
  222. package/umd/modules/@postnord/web-components/node_modules/@stencil/core/dev-server/client/index.js +1 -1
  223. package/umd/modules/@postnord/web-components/node_modules/@stencil/core/dev-server/client/package.json +1 -1
  224. package/umd/modules/@postnord/web-components/node_modules/@stencil/core/dev-server/connector.html +2 -2
  225. package/umd/modules/@postnord/web-components/node_modules/@stencil/core/dev-server/index.js +1 -1
  226. package/umd/modules/@postnord/web-components/node_modules/@stencil/core/dev-server/package.json +1 -1
  227. package/umd/modules/@postnord/web-components/node_modules/@stencil/core/dev-server/server-process.js +2 -19
  228. package/umd/modules/@postnord/web-components/node_modules/@stencil/core/internal/app-data/package.json +1 -1
  229. package/umd/modules/@postnord/web-components/node_modules/@stencil/core/internal/app-globals/package.json +1 -1
  230. package/umd/modules/@postnord/web-components/node_modules/@stencil/core/internal/client/index.js +214 -1832
  231. package/umd/modules/@postnord/web-components/node_modules/@stencil/core/internal/client/package.json +1 -1
  232. package/umd/modules/@postnord/web-components/node_modules/@stencil/core/internal/client/patch-browser.js +1 -1
  233. package/umd/modules/@postnord/web-components/node_modules/@stencil/core/internal/client/shadow-css.js +3 -3
  234. package/umd/modules/@postnord/web-components/node_modules/@stencil/core/internal/hydrate/index.js +5172 -5086
  235. package/umd/modules/@postnord/web-components/node_modules/@stencil/core/internal/hydrate/package.json +1 -1
  236. package/umd/modules/@postnord/web-components/node_modules/@stencil/core/internal/hydrate/runner.js +234 -263
  237. package/umd/modules/@postnord/web-components/node_modules/@stencil/core/internal/package.json +1 -1
  238. package/umd/modules/@postnord/web-components/node_modules/@stencil/core/internal/stencil-public-compiler.d.ts +10 -0
  239. package/umd/modules/@postnord/web-components/node_modules/@stencil/core/internal/testing/index.js +113 -74
  240. package/umd/modules/@postnord/web-components/node_modules/@stencil/core/internal/testing/jsx-dev-runtime.d.ts +2 -0
  241. package/umd/modules/@postnord/web-components/node_modules/@stencil/core/internal/testing/jsx-dev-runtime.js +8 -0
  242. package/umd/modules/@postnord/web-components/node_modules/@stencil/core/internal/testing/jsx-runtime.d.ts +2 -0
  243. package/umd/modules/@postnord/web-components/node_modules/@stencil/core/internal/testing/jsx-runtime.js +9 -0
  244. package/umd/modules/@postnord/web-components/node_modules/@stencil/core/internal/testing/package.json +1 -1
  245. package/umd/modules/@postnord/web-components/node_modules/@stencil/core/mock-doc/index.cjs +13 -25
  246. package/umd/modules/@postnord/web-components/node_modules/@stencil/core/mock-doc/index.d.ts +4 -3
  247. package/umd/modules/@postnord/web-components/node_modules/@stencil/core/mock-doc/index.js +13 -25
  248. package/umd/modules/@postnord/web-components/node_modules/@stencil/core/mock-doc/package.json +1 -1
  249. package/umd/modules/@postnord/web-components/node_modules/@stencil/core/package.json +13 -2
  250. package/umd/modules/@postnord/web-components/node_modules/@stencil/core/screenshot/index.js +1 -18
  251. package/umd/modules/@postnord/web-components/node_modules/@stencil/core/screenshot/package.json +1 -1
  252. package/umd/modules/@postnord/web-components/node_modules/@stencil/core/screenshot/pixel-match.js +1 -1
  253. package/umd/modules/@postnord/web-components/node_modules/@stencil/core/sys/node/index.js +34 -34
  254. package/umd/modules/@postnord/web-components/node_modules/@stencil/core/sys/node/package.json +1 -1
  255. package/umd/modules/@postnord/web-components/node_modules/@stencil/core/sys/node/worker.js +1 -1
  256. package/umd/modules/@postnord/web-components/node_modules/@stencil/core/testing/index.js +19 -1
  257. package/umd/modules/@postnord/web-components/node_modules/@stencil/core/testing/package.json +1 -1
  258. package/umd/modules/@postnord/web-components/package.json +19 -19
  259. package/umd/modules/@postnord/web-components/postnord-web-components/index.esm.js +1 -1
  260. package/umd/modules/@postnord/web-components/postnord-web-components/{p-215a8bab.entry.js → p-01ac1c67.entry.js} +1 -1
  261. package/umd/modules/@postnord/web-components/postnord-web-components/p-0dd15cc3.entry.js +5 -0
  262. package/umd/modules/@postnord/web-components/postnord-web-components/{p-f94947bd.entry.js → p-0e94a4dd.entry.js} +1 -1
  263. package/umd/modules/@postnord/web-components/postnord-web-components/{p-511bdc31.entry.js → p-0ed2ee53.entry.js} +1 -1
  264. package/umd/modules/@postnord/web-components/postnord-web-components/{p-e545c35d.entry.js → p-109ba1fc.entry.js} +1 -1
  265. package/umd/modules/@postnord/web-components/postnord-web-components/p-153311c8.entry.js +5 -0
  266. package/umd/modules/@postnord/web-components/postnord-web-components/{p-9d3890d0.entry.js → p-1a3c49ba.entry.js} +1 -1
  267. package/umd/modules/@postnord/web-components/postnord-web-components/{p-c9b8ed0a.entry.js → p-2610f8ab.entry.js} +1 -1
  268. package/umd/modules/@postnord/web-components/postnord-web-components/p-267c323e.entry.js +5 -0
  269. package/umd/modules/@postnord/web-components/postnord-web-components/{p-dfa861a7.entry.js → p-2a364778.entry.js} +1 -1
  270. package/umd/modules/@postnord/web-components/postnord-web-components/{p-5cbd90c0.entry.js → p-2a682ff9.entry.js} +1 -1
  271. package/umd/modules/@postnord/web-components/postnord-web-components/{p-b54f1a65.entry.js → p-2cce8a9f.entry.js} +1 -1
  272. package/umd/modules/@postnord/web-components/postnord-web-components/{p-44a6fe18.entry.js → p-2f4ad4a4.entry.js} +1 -1
  273. package/umd/modules/@postnord/web-components/postnord-web-components/{p-c867fce9.entry.js → p-306ec758.entry.js} +1 -1
  274. package/umd/modules/@postnord/web-components/postnord-web-components/{p-1d7b9fe8.entry.js → p-38e44ed0.entry.js} +1 -1
  275. package/umd/modules/@postnord/web-components/postnord-web-components/{p-66b77e7e.entry.js → p-3c96cb61.entry.js} +1 -1
  276. package/umd/modules/@postnord/web-components/postnord-web-components/{p-7ec29574.entry.js → p-3d2cac86.entry.js} +1 -1
  277. package/umd/modules/@postnord/web-components/postnord-web-components/{p-499ce292.entry.js → p-3d459401.entry.js} +1 -1
  278. package/umd/modules/@postnord/web-components/postnord-web-components/{p-795f8d58.entry.js → p-3deb5a9e.entry.js} +1 -1
  279. package/umd/modules/@postnord/web-components/postnord-web-components/p-41c09d4d.entry.js +5 -0
  280. package/umd/modules/@postnord/web-components/postnord-web-components/p-484dfaa4.entry.js +5 -0
  281. package/umd/modules/@postnord/web-components/postnord-web-components/{p-61af0540.entry.js → p-50116c0d.entry.js} +1 -1
  282. package/umd/modules/@postnord/web-components/postnord-web-components/{p-b8b5201d.entry.js → p-502b8430.entry.js} +1 -1
  283. package/umd/modules/@postnord/web-components/postnord-web-components/{p-96871fc2.entry.js → p-5b7c1333.entry.js} +1 -1
  284. package/umd/modules/@postnord/web-components/postnord-web-components/{p-3bc56c7f.entry.js → p-67f55491.entry.js} +1 -1
  285. package/umd/modules/@postnord/web-components/postnord-web-components/{p-cc1291a6.entry.js → p-838c17b9.entry.js} +1 -1
  286. package/umd/modules/@postnord/web-components/postnord-web-components/{p-e221d65e.entry.js → p-849d48c6.entry.js} +1 -1
  287. package/umd/modules/@postnord/web-components/postnord-web-components/{p-584c2057.entry.js → p-89aaa3c8.entry.js} +1 -1
  288. package/umd/modules/@postnord/web-components/postnord-web-components/{p-2becf18d.entry.js → p-8b2b6f5d.entry.js} +1 -1
  289. package/umd/modules/@postnord/web-components/postnord-web-components/p-93db2b9e.entry.js +5 -0
  290. package/umd/modules/@postnord/web-components/postnord-web-components/{p-99d7a33d.entry.js → p-97ffc4b3.entry.js} +1 -1
  291. package/umd/modules/@postnord/web-components/postnord-web-components/{p-0j4cY0b7.js → p-BlM_xfdt.js} +1 -1
  292. package/umd/modules/@postnord/web-components/postnord-web-components/p-CAEP792y.js +6 -0
  293. package/umd/modules/@postnord/web-components/postnord-web-components/{p-26233654.entry.js → p-b0710b87.entry.js} +1 -1
  294. package/umd/modules/@postnord/web-components/postnord-web-components/p-b3c4e3e8.entry.js +5 -0
  295. package/umd/modules/@postnord/web-components/postnord-web-components/{p-e5d0281b.entry.js → p-b8c4423b.entry.js} +1 -1
  296. package/umd/modules/@postnord/web-components/postnord-web-components/p-ba59528f.entry.js +5 -0
  297. package/umd/modules/@postnord/web-components/postnord-web-components/{p-92aa5cfa.entry.js → p-c0ae367c.entry.js} +1 -1
  298. package/umd/modules/@postnord/web-components/postnord-web-components/{p-ddc430a5.entry.js → p-c4c4c75b.entry.js} +1 -1
  299. package/umd/modules/@postnord/web-components/postnord-web-components/p-c843ae5e.entry.js +5 -0
  300. package/umd/modules/@postnord/web-components/postnord-web-components/{p-323e7706.entry.js → p-d1e27524.entry.js} +1 -1
  301. package/umd/modules/@postnord/web-components/postnord-web-components/{p-190d83cf.entry.js → p-d214e930.entry.js} +1 -1
  302. package/umd/modules/@postnord/web-components/postnord-web-components/{p-66fdb323.entry.js → p-d7091312.entry.js} +1 -1
  303. package/umd/modules/@postnord/web-components/postnord-web-components/{p-8f732dd9.entry.js → p-db2b7e5d.entry.js} +1 -1
  304. package/umd/modules/@postnord/web-components/postnord-web-components/p-e3fb693e.entry.js +5 -0
  305. package/umd/modules/@postnord/web-components/postnord-web-components/{p-10cb744b.entry.js → p-e83de0b1.entry.js} +1 -1
  306. package/umd/modules/@postnord/web-components/postnord-web-components/{p-bde90f4f.entry.js → p-ea50ecd2.entry.js} +1 -1
  307. package/umd/modules/@postnord/web-components/postnord-web-components/{p-1c376e6a.entry.js → p-edc28eee.entry.js} +1 -1
  308. package/umd/modules/@postnord/web-components/postnord-web-components/postnord-web-components.esm.js +1 -1
  309. package/umd/modules/@postnord/web-components/types/components/input/pn-counter/pn-counter.d.ts +27 -26
  310. package/umd/modules/@postnord/web-components/types/components/input/pn-input/pn-input.d.ts +9 -0
  311. package/umd/modules/@postnord/web-components/types/components/input/pn-select/pn-select.d.ts +3 -0
  312. package/umd/modules/@postnord/web-components/types/components/input/pn-textarea/pn-textarea.d.ts +10 -8
  313. package/umd/modules/@postnord/web-components/types/components.d.ts +72 -0
  314. package/umd/modules/@postnord/web-components/vscode-data.json +24 -0
  315. package/umd/pn-marketweb-init.js +1 -1
  316. package/umd/pn-marketweb-salesforce.js +1 -1
  317. package/vscode-data.json +8 -0
  318. package/collection/components/data-visualization/pn-stats-info/pn-stats-info-data/animationHelper.test.js +0 -95
  319. package/collection/components/data-visualization/pn-stats-info/pn-stats-info-data/animationHelper.test.js.map +0 -1
  320. package/pn-market-web-components/p-22a8fd6e.entry.js +0 -2
  321. package/pn-market-web-components/p-22a8fd6e.entry.js.map +0 -1
  322. package/pn-market-web-components/p-8afc2d30.entry.js +0 -2
  323. package/pn-market-web-components/p-8afc2d30.entry.js.map +0 -1
  324. package/pn-market-web-components/p-f97e58b8.entry.js +0 -2
  325. package/pn-market-web-components/p-f97e58b8.entry.js.map +0 -1
  326. package/types/components/data-visualization/pn-stats-info/pn-stats-info-data/animationHelper.test.d.ts +0 -1
  327. package/umd/modules/@postnord/web-components/postnord-web-components/p-1bd12040.entry.js +0 -5
  328. package/umd/modules/@postnord/web-components/postnord-web-components/p-5a36a4ce.entry.js +0 -5
  329. package/umd/modules/@postnord/web-components/postnord-web-components/p-5ca4200c.entry.js +0 -5
  330. package/umd/modules/@postnord/web-components/postnord-web-components/p-8751c301.entry.js +0 -5
  331. package/umd/modules/@postnord/web-components/postnord-web-components/p-DWsprozV.js +0 -6
  332. package/umd/modules/@postnord/web-components/postnord-web-components/p-a6363f85.entry.js +0 -5
  333. package/umd/modules/@postnord/web-components/postnord-web-components/p-b46922c6.entry.js +0 -5
  334. package/umd/modules/@postnord/web-components/postnord-web-components/p-de3ae08d.entry.js +0 -5
  335. package/umd/modules/@postnord/web-components/postnord-web-components/p-e6c7e352.entry.js +0 -5
  336. package/umd/modules/@postnord/web-components/postnord-web-components/p-ee6a305b.entry.js +0 -5
  337. package/umd/modules/@postnord/web-components/postnord-web-components/p-f667cb91.entry.js +0 -5
@@ -1,2 +0,0 @@
1
- import{r as e,c as o,g as t,h as n,d}from"./p-b3a13b6a.js";import{d as r}from"./p-3e4d9396.js";const i="pn-button-dropdown .pn-button-dropdown>pn-button>.pn-button{min-height:initial}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;border-width:0}@media screen and (max-width: 767px){.sr-only-mobile{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;border-width:0}}pn-dropdown-choice-adds-row{display:block;width:80rem}pn-dropdown-choice-adds-row .pn-row-select-dropdown{width:50%;margin-bottom:1rem}@media only screen and (max-width: 640px){pn-dropdown-choice-adds-row .pn-row-select-dropdown{width:100%}}pn-dropdown-choice-adds-row .pn-dropdown-choice-table{width:100%;border-spacing:0rem;border:none !important}pn-dropdown-choice-adds-row .pn-dropdown-choice-table thead th{text-align:left;padding:1rem 0.5rem}pn-dropdown-choice-adds-row .pn-dropdown-choice-table thead th label{color:#5e554a;font-size:1.4rem;font-weight:400}pn-dropdown-choice-adds-row .pn-dropdown-choice-table .generated-table-row{display:flex;margin-bottom:2rem}pn-dropdown-choice-adds-row .pn-dropdown-choice-table .table-header{display:flex;margin:2rem 0 3rem 0;font-weight:500}pn-dropdown-choice-adds-row .pn-dropdown-choice-table .table-header-dropdown,pn-dropdown-choice-adds-row .pn-dropdown-choice-table .table-header-column,pn-dropdown-choice-adds-row .pn-dropdown-choice-table .table-header-name,pn-dropdown-choice-adds-row .pn-dropdown-choice-table .tr-dropdown,pn-dropdown-choice-adds-row .pn-dropdown-choice-table .tr-column,pn-dropdown-choice-adds-row .pn-dropdown-choice-table .tr-name{padding-right:0.5rem;width:35%}pn-dropdown-choice-adds-row .pn-dropdown-choice-table .table-header-dropdown pn-select,pn-dropdown-choice-adds-row .pn-dropdown-choice-table .table-header-column pn-select,pn-dropdown-choice-adds-row .pn-dropdown-choice-table .table-header-name pn-select,pn-dropdown-choice-adds-row .pn-dropdown-choice-table .tr-dropdown pn-select,pn-dropdown-choice-adds-row .pn-dropdown-choice-table .tr-column pn-select,pn-dropdown-choice-adds-row .pn-dropdown-choice-table .tr-name pn-select{width:95%}pn-dropdown-choice-adds-row .pn-dropdown-choice-table .table-header-input,pn-dropdown-choice-adds-row .pn-dropdown-choice-table .tr-input{width:15%}pn-dropdown-choice-adds-row .pn-dropdown-choice-table .table-header-input pn-input,pn-dropdown-choice-adds-row .pn-dropdown-choice-table .tr-input pn-input{width:100%}pn-dropdown-choice-adds-row .pn-dropdown-choice-table .table-header-delete,pn-dropdown-choice-adds-row .pn-dropdown-choice-table .tr-delete{margin:1rem;width:15%}pn-dropdown-choice-adds-row .pn-dropdown-choice-table tbody td{padding:0.5rem}pn-dropdown-choice-adds-row .pn-dropdown-choice-table tbody tr:nth-child(even){background-color:#effbff}pn-dropdown-choice-adds-row .pn-dropdown-choice-table tbody .tr-delete{text-align:center}pn-dropdown-choice-adds-row .pn-dropdown-choice-table tfoot td small{color:#a70707;vertical-align:middle}pn-dropdown-choice-adds-row .pn-dropdown-choice-table tfoot td pn-icon{margin-right:0.25em;vertical-align:middle}";const s=i;const c=class{constructor(t){e(this,t);this.rowvalues=o(this,"rowvalues",7);this.dropdownData=null;this.languageCode=null;this.addRowDropdownName="";this.addRowDropdownPlaceholder="";this.addRowDropdownLabel="";this.rowNameLabel="";this.rowHasDropdown=true;this.rowDropdownLabel="";this.rowDropdownPlaceholder="";this.rowInputLabel="";this.rowDeleteButtonText="";this.totalInputLimit=0;this.inputLimitWarning=null;this.inputEmptyWarning=null;this.dropdownEmptyWarning=null;this.nextRowIndex=null;this.rowSelectDropdownArr=null;this.formValue=null}get hostElement(){return t(this)}pnRowSelectDropdown=null;tableHead=null;tableBody=null;_dropdownData;rowvalues;dropdownDataWatcher(){if(typeof this.dropdownData==="string"){this._dropdownData=JSON.parse(this.dropdownData)}else{this._dropdownData=this.dropdownData}}componentWillLoad(){this.dropdownDataWatcher()}componentDidLoad(){this.setInitialValues();this.addEventHandlers()}addEventHandlers(){this.pnRowSelectDropdown.addEventListener("change",r(this.addRowElement.bind(this),500))}setInitialValues(){this.nextRowIndex=0;this.setRowSelectDropdownArr()}setRowSelectDropdownArr(){this.rowSelectDropdownArr=[];this._dropdownData.forEach((e=>{this.rowSelectDropdownArr.push(e.label)}))}formRowEvent=e=>{const o=r(this.updateHiddenFieldValue.bind(this),500);if(e.target.matches("input")){["change","keyup"].forEach((t=>{e.target.addEventListener(t,o)}))}else{const t=e.target.closest(".generated-table-row")?.querySelector("pn-select");if(t){t.addEventListener("change",o)}}};updateHiddenFieldValue(){try{const e=[...this.tableBody.querySelectorAll(".generated-table-row")];const o=this.hostElement.querySelector(".pn-row-select-dropdown");if(!o){return}if(!e.length){o.setAttribute("error",`${this.dropdownEmptyWarning||"This field cannot be empty"}`);this.formValue="";this.rowvalues.emit("");return}let t=true;const n=e.map((e=>{const o=e.querySelector(".tr-name");const n=e.querySelector(".tr-dropdown");const d=e.querySelector(".tr-input");if(!o||!d){t=false;return null}const r={row:[{name:this.rowNameLabel,value:o.innerHTML}]};if(n&&n.querySelector("pn-select")){const e=n.querySelector("pn-select");const o=e?.querySelector("select");const d=o?.value||"";if(!d){t=false}else{r.row.push({name:this.rowDropdownLabel,value:d})}}const i=d.querySelector("input");const s=parseInt(i?.value||"0",10);if(s>0){r.row.push({name:this.rowInputLabel,value:s.toString()})}else{t=false}return r}));if(!t||!n.length||n.includes(null)){this.formValue="";this.rowvalues.emit("");return}this.formValue=`PN-JSON|${JSON.stringify(n)}`;if(this.validateInputs()){this.rowvalues.emit(this.formValue)}else{this.rowvalues.emit("")}}catch(e){console.error("Error updating field value: ",e);this.formValue=""}}addRowElement(e){const o=e.target;const t=o?.value;if(!t){return}const n=this.hostElement.querySelector(".pn-row-select-dropdown");n?.removeAttribute("error");if(!this.tableBody){console.error("tableBody is not defined.");return}const d=document.createElement("div");d.setAttribute("index",`${this.nextRowIndex}`);d.className="generated-table-row";d.onclick=e=>this.formRowEvent(e);const r=document.createElement("div");r.className="tr-name";r.innerHTML=t;r.dataset.name=t;d.appendChild(r);const i=this._dropdownData?.find((e=>e.label===t));if(i?.values?.length){this.rowHasDropdown=true;const e=this.createDropdownColumn(t);d.appendChild(e)}else{this.rowHasDropdown=false;const e=document.createElement("div");e.className="tr-column";d.appendChild(e)}const s=this.createInputColumn(t);d.appendChild(s);const c=this.createDeleteButtonColumn();d.appendChild(c);this.tableBody.appendChild(d);this.updateRowSelectDropdown();this.nextRowIndex++;o.value=""}getCurrentRow(e){return this.hostElement.querySelectorAll(`.tr-name[data-name='${e}'`)}createDropdownColumn(e){const o=document.createElement("div");o.setAttribute("class","tr-dropdown");const t=this._dropdownData.find((o=>o.label===e));const n=[];const d=this.getCurrentRow(e);d.forEach((e=>{n.push(e.parentElement?.querySelector(".tr-dropdown [aria-selected=true]")?.textContent)}));if(t.values.length){const n=document.createElement("pn-select");n.setAttribute("name",`${e}-dropdown`);n.setAttribute("placeholder",this.rowDropdownPlaceholder);n.setAttribute("required","true");n.setAttribute("error","");const d=document.createElement("option");d.setAttribute("value","");d.textContent=this.rowDropdownPlaceholder;d.selected=true;d.disabled=true;n.appendChild(d);t.values.forEach((e=>{const o=document.createElement("option");o.setAttribute("label",e.label);o.setAttribute("value",e.label);o.textContent=e.label;n.appendChild(o)}));o.appendChild(n)}return o}createInputColumn(e){const o=document.createElement("div");o.setAttribute("class","tr-input");const t=document.createElement("pn-input");t.setAttribute("type","number");t.setAttribute("name",`${e}-input`);t.setAttribute("placeholder","0");if(this.totalInputLimit>0){t.setAttribute("max",`${this.totalInputLimit}`)}t.setAttribute("min","0");t.setAttribute("error","");o.appendChild(t);return o}createDeleteButtonColumn(){const e=document.createElement("div");e.setAttribute("class","tr-delete");const o=document.createElement("pn-button");o.onclick=e=>this.deleteRow(e);o.setAttribute("appearance","warning");o.setAttribute("small","true");o.appendChild(document.createTextNode(this.rowDeleteButtonText));e.appendChild(o);return e}updateRowSelectDropdown(){[].map.call(this.tableBody.querySelectorAll(".tr-name"),(e=>{const o=e?.parentElement?.querySelector(".tr-dropdown");const t=o?.querySelector(".pn-select-content span")?.textContent;const n={rowName:e?.innerHTML,selectedValue:o?.querySelector("[aria-selected=true]")?.textContent,placeholder:t};return n}));const e=this.pnRowSelectDropdown.querySelectorAll("option");e.forEach((e=>{e.removeAttribute("selected")}))}deleteRow(e){e.preventDefault();this.nextRowIndex--;const o=e.currentTarget;const t=o.closest(".generated-table-row");t.remove();const n=[...this.tableBody.querySelectorAll(".generated-table-row")];n.map(((e,o)=>{e.setAttribute("index",`${o}`)}));this.updateHiddenFieldValue();this.updateRowSelectDropdown()}validateInputs(){const e=this.tableBody.querySelectorAll("pn-select");const o=this.tableBody.querySelectorAll("pn-input");let t=false;let n=false;if(e){e.forEach((e=>{if(!e){return}const o=e.querySelector("select");const n=o?.value||"";if(n===null||n===""){e.setAttribute("error",`${this.dropdownEmptyWarning||"This field cannot be empty"}`);t=true}else{e.setAttribute("error","")}}))}if(o){o.forEach((e=>{if(e){const o=e.querySelector("input");let t=parseInt(o.value);if(this.totalInputLimit<t&&e.hasAttribute("max")){e.setAttribute("error",`${this.inputLimitWarning||"Amount too high"}`);n=true}else if(t<=0||isNaN(t)){e.setAttribute("error",`${this.inputEmptyWarning||"This field cannot be empty"}`);n=true}else{e.setAttribute("error","");n=false}}}))}if(t||n){return false}return true}render(){return n(d,{key:"4d75a1a804885406d9bf70647ee031b283001316"},n("div",{key:"4db2eab15b25d322bd8081f22fa0dfb4e40ff1d8",class:"dropdown-choice-form-row"},n("pn-select",{key:"34479df6fd80391a95628b34a9d3d4007a43700a",ref:e=>this.pnRowSelectDropdown=e,name:this.addRowDropdownName,label:this.addRowDropdownLabel,class:"pn-row-select-dropdown",language:this.languageCode},n("option",{key:"c445488973b9c7127a55f0f83cfb46276f3a165e",value:"",selected:true,disabled:true},this.addRowDropdownPlaceholder),this.rowSelectDropdownArr?.map((e=>n("option",{label:e,value:e},e))))),n("div",{key:"15abdc5dae3056d3e81069c01e67245aacba5c59",class:"dropdown-choice-form-row"},n("div",{key:"2386cfc37b14b5769e095596f191054b2fb3e0af",class:"pn-dropdown-choice-table"},n("div",{key:"123b39e0fc0dba53aa35da0dea41178f77633c76",ref:e=>this.tableHead=e},this.nextRowIndex===0?null:n("div",{class:"table-header"},n("div",{class:"table-header-name"},n("label",null,this.rowNameLabel)),n("div",{class:"table-header-dropdown"},n("label",null,this.rowDropdownLabel)),n("div",{class:"table-header-input"},n("label",null,this.rowInputLabel)),n("div",{class:"table-header-delete"}))),n("div",{key:"8d6e932979cd2065cbf77a70e74e30d087351b24",ref:e=>this.tableBody=e,class:"pn-dropdown-choice-table-slot"},n("slot",{key:"8957b9b3b30d090c51bc993ff4676f91a2846a15"})))))}static get watchers(){return{dropdownData:["dropdownDataWatcher"]}}};c.style=s;export{c as pn_dropdown_choice_adds_row};
2
- //# sourceMappingURL=p-22a8fd6e.entry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["pnDropdownChoiceAddsRowCss","PnDropdownChoiceAddsRowStyle0","pnDropdownChoiceAddsRow","pnRowSelectDropdown","tableHead","tableBody","_dropdownData","rowvalues","dropdownDataWatcher","this","dropdownData","JSON","parse","componentWillLoad","componentDidLoad","setInitialValues","addEventHandlers","addEventListener","debounce","addRowElement","bind","nextRowIndex","setRowSelectDropdownArr","rowSelectDropdownArr","forEach","element","push","label","formRowEvent","e","debouncedAddValue","updateHiddenFieldValue","target","matches","eventName","rowDropdown","closest","querySelector","allRows","querySelectorAll","mainDropdown","hostElement","length","setAttribute","dropdownEmptyWarning","formValue","emit","allRowsValid","formValues","map","row","nameElm","dropdownElm","inputElm","rowData","name","rowNameLabel","value","innerHTML","pnSelect","nativeSelect","dropdownSelection","rowDropdownLabel","input","inputValue","parseInt","rowInputLabel","toString","includes","stringify","validateInputs","error","console","selectedElement","selectedValue","removeAttribute","newRow","document","createElement","className","onclick","rowNameColumn","dataset","appendChild","selectedR","find","item","values","rowHasDropdown","dropdownCol","createDropdownColumn","emptyDropdownCol","rowInputColumn","createInputColumn","deleteButton","createDeleteButtonColumn","updateRowSelectDropdown","getCurrentRow","dropdownColumn","selectedItem","arr","selectedOptionValues","currentRow","parentElement","textContent","dropdown","rowDropdownPlaceholder","placeholder","selected","disabled","childItem","childOption","inputColumn","totalInputLimit","buttonColumn","buttonElm","deleteRow","createTextNode","rowDeleteButtonText","call","el","dropdownPlaceholder","rowName","selectOptions","elm","preventDefault","targetElm","currentTarget","targetRow","remove","index","dropdownSelections","numberInputs","selectionEmpty","showWarning","dropdownElem","selection","dropdownVal","inputElem","currentNumber","currentValue","hasAttribute","inputLimitWarning","isNaN","inputEmptyWarning","render","h","Host","key","class","ref","addRowDropdownName","addRowDropdownLabel","language","languageCode","addRowDropdownPlaceholder"],"sources":["src/components/input/pn-dropdown-choice-adds-row/pn-dropdown-choice-adds-row.scss?tag=pn-dropdown-choice-adds-row","src/components/input/pn-dropdown-choice-adds-row/pn-dropdown-choice-adds-row.tsx"],"sourcesContent":["@import '../../../globals/main.scss';\n\npn-dropdown-choice-adds-row {\n display: block;\n width: 80rem;\n\n .pn-row-select-dropdown {\n width: 50%;\n margin-bottom: 1rem;\n }\n\n @media only screen and (max-width: 640px) {\n .pn-row-select-dropdown {\n width: 100%;\n }\n }\n\n .pn-dropdown-choice-table {\n width: 100%;\n border-spacing: 0rem;\n border: none !important;\n\n thead {\n th {\n text-align: left;\n padding: 1rem 0.5rem;\n\n label {\n color: $gray700;\n font-size: 1.4rem;\n font-weight: 400;\n }\n }\n }\n \n .generated-table-row {\n display: flex;\n margin-bottom: 2rem;\n }\n\n .table-header {\n display: flex;\n margin: 2rem 0 3rem 0;\n font-weight: 500;\n }\n\n .table-header, .tr {\n &-dropdown, &-column, &-name {\n padding-right: 0.5rem;\n width: 35%;\n\n pn-select {\n width: 95%;\n }\n }\n\n &-input {\n width: 15%;\n\n pn-input {\n width: 100%;\n }\n }\n\n &-delete {\n margin: 1rem;\n width: 15%;\n }\n }\n\n tbody {\n td {\n padding: 0.5rem;\n }\n\n tr:nth-child(even) {\n background-color: #effbff;\n }\n\n .tr-delete {\n text-align: center;\n }\n }\n\n tfoot {\n td {\n small {\n color: $warning;\n vertical-align: middle;\n }\n\n pn-icon {\n margin-right: 0.25em;\n vertical-align: middle;\n }\n }\n }\n }\n}\n","import { Component, Prop, h, Element, State, Host, Watch, Event, EventEmitter } from '@stencil/core';\nimport { FormValue, RowValue, Root } from './types';\nimport debounce from 'debounce';\n\n@Component({\n tag: 'pn-dropdown-choice-adds-row',\n styleUrl: 'pn-dropdown-choice-adds-row.scss',\n})\nexport class pnDropdownChoiceAddsRow {\n @Element() hostElement: Element;\n pnRowSelectDropdown: HTMLElement = null;\n tableHead: HTMLElement = null;\n tableBody: HTMLElement = null;\n private _dropdownData: Root[];\n\n @Prop() dropdownData: string | Root[] = null;\n @Prop() languageCode: string = null;\n @Prop() addRowDropdownName: string = '';\n @Prop() addRowDropdownPlaceholder: string = '';\n @Prop() addRowDropdownLabel: string = '';\n @Prop() rowNameLabel: string = '';\n @Prop() rowHasDropdown: boolean = true;\n @Prop() rowDropdownLabel: string = '';\n @Prop() rowDropdownPlaceholder: string = '';\n @Prop() rowInputLabel: string = '';\n @Prop() rowDeleteButtonText: string = '';\n @Prop() totalInputLimit: number = 0;\n @Prop() inputLimitWarning: string = null;\n @Prop() inputEmptyWarning: string = null;\n @Prop() dropdownEmptyWarning: string = null;\n\n @State() nextRowIndex: number = null;\n @State() rowSelectDropdownArr: string[] = null;\n @State() formValue: string = null;\n\n @Event() rowvalues: EventEmitter<string>;\n\n @Watch('dropdownData')\n dropdownDataWatcher() {\n if (typeof this.dropdownData === 'string') {\n this._dropdownData = JSON.parse(this.dropdownData);\n } else {\n this._dropdownData = this.dropdownData;\n }\n }\n\n componentWillLoad() {\n this.dropdownDataWatcher();\n }\n\n componentDidLoad() {\n this.setInitialValues();\n this.addEventHandlers();\n }\n\n addEventHandlers() {\n this.pnRowSelectDropdown.addEventListener('change', debounce(this.addRowElement.bind(this), 500));\n }\n\n setInitialValues() {\n this.nextRowIndex = 0;\n this.setRowSelectDropdownArr();\n }\n\n setRowSelectDropdownArr() {\n this.rowSelectDropdownArr = [];\n this._dropdownData.forEach(element => {\n this.rowSelectDropdownArr.push(element.label);\n });\n }\n\n formRowEvent = e => {\n const debouncedAddValue = debounce(this.updateHiddenFieldValue.bind(this), 500);\n\n if (e.target.matches('input')) {\n ['change', 'keyup'].forEach(eventName => {\n e.target.addEventListener(eventName, debouncedAddValue);\n });\n } else {\n const rowDropdown = e.target.closest('.generated-table-row')?.querySelector('pn-select') as HTMLElement;\n if (rowDropdown) {\n rowDropdown.addEventListener('change', debouncedAddValue);\n }\n }\n };\n\n updateHiddenFieldValue() {\n try {\n const allRows = [...this.tableBody.querySelectorAll('.generated-table-row')];\n const mainDropdown = this.hostElement.querySelector('.pn-row-select-dropdown');\n\n if (!mainDropdown) {\n return;\n }\n\n if (!allRows.length) {\n mainDropdown.setAttribute('error', `${this.dropdownEmptyWarning || \"This field cannot be empty\"}`);\n this.formValue = '';\n this.rowvalues.emit('');\n return;\n }\n\n let allRowsValid = true;\n const formValues = allRows.map(row => {\n const nameElm = row.querySelector('.tr-name');\n const dropdownElm = row.querySelector('.tr-dropdown');\n const inputElm = row.querySelector('.tr-input');\n\n if (!nameElm || !inputElm) {\n allRowsValid = false;\n return null;\n }\n\n const rowData = {\n row: [\n {\n name: this.rowNameLabel,\n value: nameElm.innerHTML\n }\n ]\n };\n\n if (dropdownElm && dropdownElm.querySelector('pn-select')) {\n const pnSelect = dropdownElm.querySelector('pn-select');\n const nativeSelect = pnSelect?.querySelector('select');\n const dropdownSelection = nativeSelect?.value || '';\n if (!dropdownSelection) {\n allRowsValid = false;\n } else {\n rowData.row.push({\n name: this.rowDropdownLabel,\n value: dropdownSelection\n });\n }\n }\n\n const input = inputElm.querySelector('input');\n const inputValue = parseInt(input?.value || '0', 10);\n if (inputValue > 0) {\n rowData.row.push({\n name: this.rowInputLabel,\n value: inputValue.toString()\n });\n } else {\n allRowsValid = false;\n }\n return rowData;\n });\n\n if (!allRowsValid || !formValues.length || formValues.includes(null)) {\n this.formValue = '';\n this.rowvalues.emit('');\n return;\n }\n\n this.formValue = `PN-JSON|${JSON.stringify(formValues)}`;\n \n if (this.validateInputs()) {\n this.rowvalues.emit(this.formValue);\n } else {\n this.rowvalues.emit('');\n }\n\n } catch (error) {\n console.error('Error updating field value: ', error);\n this.formValue = '';\n }\n }\n\n addRowElement(e: CustomEvent) {\n const selectedElement = e.target as HTMLSelectElement;\n const selectedValue = selectedElement?.value;\n\n if (!selectedValue) {\n return;\n }\n\n const mainDropdown = this.hostElement.querySelector('.pn-row-select-dropdown');\n mainDropdown?.removeAttribute('error');\n\n if (!this.tableBody) {\n console.error('tableBody is not defined.');\n return;\n }\n\n const newRow = document.createElement('div');\n newRow.setAttribute('index', `${this.nextRowIndex}`);\n newRow.className = 'generated-table-row';\n newRow.onclick = e => this.formRowEvent(e);\n\n const rowNameColumn = document.createElement('div');\n rowNameColumn.className = 'tr-name';\n rowNameColumn.innerHTML = selectedValue;\n rowNameColumn.dataset.name = selectedValue;\n newRow.appendChild(rowNameColumn);\n\n const selectedR = this._dropdownData?.find(item => item.label === selectedValue);\n\n if (selectedR?.values?.length) {\n this.rowHasDropdown = true;\n const dropdownCol = this.createDropdownColumn(selectedValue);\n newRow.appendChild(dropdownCol);\n } else {\n this.rowHasDropdown = false;\n const emptyDropdownCol = document.createElement('div');\n emptyDropdownCol.className = 'tr-column';\n newRow.appendChild(emptyDropdownCol);\n }\n\n const rowInputColumn = this.createInputColumn(selectedValue);\n newRow.appendChild(rowInputColumn);\n\n const deleteButton = this.createDeleteButtonColumn();\n newRow.appendChild(deleteButton);\n\n this.tableBody.appendChild(newRow);\n\n this.updateRowSelectDropdown();\n this.nextRowIndex++;\n selectedElement.value = '';\n }\n\n getCurrentRow(selectedValue: string) {\n return this.hostElement.querySelectorAll(`.tr-name[data-name='${selectedValue}'`);\n }\n\n createDropdownColumn(selectedValue: string) {\n const dropdownColumn = document.createElement('div');\n dropdownColumn.setAttribute('class', 'tr-dropdown');\n const selectedItem = this._dropdownData.find(arr => arr.label === selectedValue);\n const selectedOptionValues = [];\n const currentRow = this.getCurrentRow(selectedValue);\n\n currentRow.forEach(row => {\n selectedOptionValues.push(row.parentElement?.querySelector('.tr-dropdown [aria-selected=true]')?.textContent);\n });\n\n if (selectedItem.values.length) {\n const dropdown = document.createElement('pn-select');\n dropdown.setAttribute('name', `${selectedValue}-dropdown`);\n dropdown.setAttribute('placeholder', this.rowDropdownPlaceholder);\n dropdown.setAttribute('required', 'true');\n dropdown.setAttribute('error', '');\n\n const placeholder = document.createElement('option');\n placeholder.setAttribute(\"value\", \"\");\n placeholder.textContent = this.rowDropdownPlaceholder;\n placeholder.selected = true;\n placeholder.disabled = true;\n dropdown.appendChild(placeholder);\n\n selectedItem.values.forEach(childItem => {\n const childOption = document.createElement('option');\n childOption.setAttribute(\"label\", childItem.label);\n childOption.setAttribute(\"value\", childItem.label);\n childOption.textContent = childItem.label;\n dropdown.appendChild(childOption);\n });\n\n dropdownColumn.appendChild(dropdown);\n }\n\n return dropdownColumn;\n }\n\n createInputColumn(selectedValue: string) {\n const inputColumn = document.createElement('div');\n inputColumn.setAttribute('class', 'tr-input');\n const inputElm = document.createElement('pn-input');\n inputElm.setAttribute('type', 'number');\n inputElm.setAttribute('name', `${selectedValue}-input`);\n inputElm.setAttribute('placeholder', '0');\n if (this.totalInputLimit > 0) {\n inputElm.setAttribute('max', `${this.totalInputLimit}`);\n }\n inputElm.setAttribute('min', '0');\n inputElm.setAttribute('error', '');\n inputColumn.appendChild(inputElm);\n return inputColumn;\n }\n\n createDeleteButtonColumn() {\n const buttonColumn = document.createElement('div');\n buttonColumn.setAttribute('class', 'tr-delete');\n const buttonElm = document.createElement('pn-button');\n buttonElm.onclick = e => this.deleteRow(e);\n buttonElm.setAttribute('appearance', 'warning');\n buttonElm.setAttribute('small', 'true');\n buttonElm.appendChild(document.createTextNode(this.rowDeleteButtonText));\n buttonColumn.appendChild(buttonElm);\n return buttonColumn;\n }\n\n updateRowSelectDropdown() {\n type Row = { rowName: string; selectedValue: string; placeholder: string };\n\n const rows: Row[] = [].map.call(this.tableBody.querySelectorAll('.tr-name'), el => {\n const dropdownColumn = el?.parentElement?.querySelector('.tr-dropdown');\n const dropdownPlaceholder = dropdownColumn?.querySelector('.pn-select-content span')?.textContent;\n const row: Row = {\n rowName: el?.innerHTML,\n selectedValue: dropdownColumn?.querySelector('[aria-selected=true]')?.textContent,\n placeholder: dropdownPlaceholder,\n };\n return row;\n });\n\n const selectOptions = this.pnRowSelectDropdown.querySelectorAll('option');\n selectOptions.forEach(elm => {\n elm.removeAttribute('selected');\n });\n }\n\n deleteRow(e: Event) {\n e.preventDefault();\n this.nextRowIndex--;\n const targetElm = e.currentTarget as HTMLButtonElement;\n const targetRow = targetElm.closest('.generated-table-row');\n targetRow.remove();\n const allRows = [...this.tableBody.querySelectorAll('.generated-table-row')];\n\n allRows.map((elm, index) => {\n elm.setAttribute('index', `${index}`);\n });\n this.updateHiddenFieldValue()\n this.updateRowSelectDropdown();\n }\n\n validateInputs() {\n const dropdownSelections = this.tableBody.querySelectorAll('pn-select');\n const numberInputs = this.tableBody.querySelectorAll('pn-input');\n let selectionEmpty = false;\n let showWarning = false;\n\n if (dropdownSelections) {\n dropdownSelections.forEach(dropdownElem => {\n if (!dropdownElem) {\n return;\n }\n\n const selection = dropdownElem.querySelector('select');\n const dropdownVal = selection?.value || '';\n\n if (dropdownVal === null || dropdownVal === \"\") {\n dropdownElem.setAttribute('error', `${this.dropdownEmptyWarning || \"This field cannot be empty\"}`);\n selectionEmpty = true;\n } else {\n dropdownElem.setAttribute('error', '');\n }\n });\n }\n\n if (numberInputs) {\n numberInputs.forEach(inputElem => {\n if (inputElem) {\n const currentNumber = inputElem.querySelector(\"input\");\n let currentValue = parseInt(currentNumber.value);\n\n if (this.totalInputLimit < currentValue && inputElem.hasAttribute('max')) {\n inputElem.setAttribute('error', `${this.inputLimitWarning || \"Amount too high\"}`);\n showWarning = true;\n } else if (currentValue <= 0 || isNaN(currentValue)) {\n inputElem.setAttribute('error', `${this.inputEmptyWarning || \"This field cannot be empty\"}`);\n showWarning = true;\n } else {\n inputElem.setAttribute('error', '');\n showWarning = false;\n }\n }\n });\n }\n\n if (selectionEmpty || showWarning) {\n return false;\n }\n\n return true;\n }\n\n render() {\n return (\n <Host>\n <div class=\"dropdown-choice-form-row\">\n <pn-select\n ref={el => (this.pnRowSelectDropdown = el as HTMLElement)}\n name={this.addRowDropdownName}\n label={this.addRowDropdownLabel}\n class=\"pn-row-select-dropdown\"\n language={this.languageCode}>\n <option value=\"\" selected disabled>{this.addRowDropdownPlaceholder}</option>\n {this.rowSelectDropdownArr?.map((value: string) => <option label={value} value={value}>{value}</option>)}\n </pn-select>\n </div>\n <div class=\"dropdown-choice-form-row\">\n <div class=\"pn-dropdown-choice-table\">\n <div ref={el => (this.tableHead = el as HTMLElement)}>\n {this.nextRowIndex === 0 ? null : (\n <div class=\"table-header\">\n <div class=\"table-header-name\">\n <label>{this.rowNameLabel}</label>\n </div>\n <div class=\"table-header-dropdown\">\n <label>{this.rowDropdownLabel}</label>\n </div>\n <div class=\"table-header-input\">\n <label>{this.rowInputLabel}</label>\n </div>\n <div class=\"table-header-delete\"></div>\n </div>\n )}\n </div>\n <div ref={el => (this.tableBody = el as HTMLElement)} class=\"pn-dropdown-choice-table-slot\">\n <slot></slot>\n </div>\n </div>\n </div>\n </Host>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,2 +0,0 @@
1
- import{r as e,h as t,F as a,d as i}from"./p-b3a13b6a.js";import{a as n}from"./p-36b39340.js";import{c as s}from"./p-366fd15a.js";import{m as h}from"./p-b2f2fbb6.js";import{L as r}from"./p-8d78b631.js";import{P as o}from"./p-6bec8d72.js";import"./p-3478f368.js";const l='<svg class="pn-icon-svg" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24"><path fill="#000" fill-rule="evenodd" d="M21 11.998a1 1 0 0 1-.577.908l-15 7a1 1 0 0 1-1.237-1.487l4.585-6.42-1.46-2.043A1 1 0 1 1 8.94 8.794l1.875 2.625a1 1 0 0 1 0 1.162l-2.788 3.903 9.599-4.48L6.58 6.909a1 1 0 1 1 .838-1.816l13 6a1 1 0 0 1 .581.906M5 4a1 1 0 0 1 1 1v.01a1 1 0 1 1-2 0V5a1 1 0 0 1 1-1" clip-rule="evenodd"/></svg>';const c=l;const d='<svg class="pn-icon-svg" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24"><path fill="#000" fill-rule="evenodd" d="M12.388 2c5.522 0 10 4.477 10 10s-4.478 10-10 10H2l1.355-4.064-.798-3.987a8.8 8.8 0 0 1-.17-1.717V12c0-5.523 4.478-10 10-10m8 10a8 8 0 0 0-16 0v.232q0 .67.13 1.325l.902 4.507L4.775 20h7.612a8 8 0 0 0 8-8m-12.5-1.5a1.5 1.5 0 1 1 0 3 1.5 1.5 0 0 1 0-3m6 1.5a1.5 1.5 0 1 0-3 0 1.5 1.5 0 0 0 3 0m3-1.5a1.5 1.5 0 1 1 0 3 1.5 1.5 0 0 1 0-3" clip-rule="evenodd"/></svg>';const p=d;const m={sv:{relatedContentAriaLabel:"Relaterat innehåll",chatMinimizedAriaLabel:"Chatten är minimerad",chatOpenedAriaLabel:"Chatten är öppen",minimizeChatAriaLabel:"Minimera chatten",closeChatAriaLabel:"Stäng chatten",openChatAriaLabel:"Öppna chatten",chatControlsAriaLabel:"Chattkontroller",chatMessagesAriaLabel:"Chattmeddelanden",sentMessageAriaLabel:"Meddelande skickat",writeChatMessagePlaceholder:"Skriv ett meddelande...",waitingForAnswerLabel:"Väntar på svar",sendButtonText:"Skicka",loadingText:"Laddar..."},en:{relatedContentAriaLabel:"Related content",chatMinimizedAriaLabel:"Chat is minimized",chatOpenedAriaLabel:"Chat is open",minimizeChatAriaLabel:"Minimize chat",closeChatAriaLabel:"Close chat",openChatAriaLabel:"Open chat",chatControlsAriaLabel:"Chat controls",chatMessagesAriaLabel:"Chat messages",sentMessageAriaLabel:"Message sent",writeChatMessagePlaceholder:"Type a message...",waitingForAnswerLabel:"Waiting for answer",sendButtonText:"Send",loadingText:"Loading..."},da:{relatedContentAriaLabel:"Relateret indhold",chatMinimizedAriaLabel:"Chatten er minimeret",chatOpenedAriaLabel:"Chatten er åben",minimizeChatAriaLabel:"Minimer chatten",closeChatAriaLabel:"Luk chatten",openChatAriaLabel:"Åbn chatten",chatControlsAriaLabel:"Chatkontroller",chatMessagesAriaLabel:"Chatbeskeder",sentMessageAriaLabel:"Besked sendt",writeChatMessagePlaceholder:"Skriv en besked...",waitingForAnswerLabel:"Venter på svar",sendButtonText:"Send",loadingText:"Indlæser..."},no:{relatedContentAriaLabel:"Relatert innhold",chatMinimizedAriaLabel:"Chatten er minimert",chatOpenedAriaLabel:"Chatten er åpen",minimizeChatAriaLabel:"Minimer chatten",closeChatAriaLabel:"Lukk chatten",openChatAriaLabel:"Åpne chatten",chatControlsAriaLabel:"Chatkontroller",chatMessagesAriaLabel:"Chatmeldinger",sentMessageAriaLabel:"Melding sendt",writeChatMessagePlaceholder:"Skriv en melding...",waitingForAnswerLabel:"Venter på svar",sendButtonText:"Send",loadingText:"Laster..."},fi:{relatedContentAriaLabel:"Aiheeseen liittyvä sisältö",chatMinimizedAriaLabel:"Keskustelu on pienennetty",chatOpenedAriaLabel:"Keskustelu on auki",minimizeChatAriaLabel:"Pienennä keskustelu",closeChatAriaLabel:"Sulje keskustelu",openChatAriaLabel:"Avaa keskustelu",chatControlsAriaLabel:"Keskustelun hallinta",chatMessagesAriaLabel:"Keskusteluviestit",sentMessageAriaLabel:"Viesti lähetetty",writeChatMessagePlaceholder:"Kirjoita viesti...",waitingForAnswerLabel:"Odotetaan vastausta",sendButtonText:"Lähetä",loadingText:"Ladataan..."}};const b="pn-button-dropdown .pn-button-dropdown>pn-button>.pn-button{min-height:initial}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;border-width:0}@media screen and (max-width: 767px){.sr-only-mobile{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;border-width:0}}.pn-chat{display:flex;flex-direction:column;height:600px;width:100%;max-width:400px;box-shadow:0 4px 12px rgba(0, 0, 0, 0.1);border-radius:1.6rem}@media (max-width: 768px){.pn-chat:not(.minimized){position:absolute;height:100dvh;width:100dvw;max-width:100%;top:0;left:0}.pn-chat.minimized{height:70px;border-radius:0.8rem 0.8rem 0 0}}@media (min-width: 768px) and (max-width: 1024px){.pn-chat{max-width:350px}}.pn-chat .chat-header{background-color:#005d92;color:#ffffff;padding:0.8rem;padding-left:1.6rem;display:flex;justify-content:space-between;align-items:center}@media (min-width: 768px){.pn-chat .chat-header{border-radius:1.6rem 1.6rem 0 0}}.pn-chat .chat-header .chat-controls{display:flex}.pn-chat .chat-header pn-button.minimize-btn button.pn-button{padding-bottom:0}.pn-chat .chat-header pn-button.minimize-btn button.pn-button .pn-button-content{align-items:flex-end}.pn-chat .chat-header #chat-title{margin:0;font-size:2rem;font-weight:400;line-height:1.4}.pn-chat .chat-main{display:flex;flex-direction:column;flex-grow:1;overflow-y:auto;gap:1.6rem;padding:1.6rem;padding-bottom:3.2rem;border-left:1px solid #d3cecb;border-right:1px solid #d3cecb;background-color:#ffffff}.pn-chat .chat-main.loading-chat-main{display:flex;justify-content:center;align-items:center;padding-bottom:1.6rem}.pn-chat .chat-loading-spinner{background-color:#005d92;width:4.8rem;height:4.8rem;border-radius:4.8rem;display:flex;align-items:center;justify-content:center}.pn-chat .chat-loading-content{color:#2d2013;font-size:1.6rem;font-weight:400}.pn-chat .chat-overview{text-align:center}.pn-chat .chat-messages{display:flex;flex-direction:column;gap:1.6rem;text-align:center}.pn-chat .card-container .slider-wrapper{margin:0}.pn-chat .card-container .slides-container{display:flex;gap:1rem}.pn-chat .card-container .slide:nth-child(even) [data-card]{width:calc(100% - 1rem)}@keyframes pulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:0.5;transform:scale(0.95)}}.pn-chat .chat-footer{background:#ffffff;border:1px solid #d3cecb;border-top:none}.pn-chat .chat-footer .form{display:flex;gap:0.7rem;padding:1rem}.pn-chat .chat-input-container{display:flex;flex-grow:1;justify-content:space-between;gap:0.7rem;background:#f9f8f8;border-radius:6.4rem}.pn-chat .chat-input-container .chat-text-input{text-indent:0.8rem;border:none;background:transparent;width:100%;outline:0.2rem solid transparent;outline-offset:0.2rem}.pn-chat .chat-input-container .chat-text-input:focus{border-radius:6.4rem}.pn-chat .chat-input-container .chat-text-input:focus-visible{outline-color:#005d92}.pn-chat .chat-input-container .chat-disabled-button{display:flex;width:3.5em;min-height:3em;min-width:0;align-items:center;justify-content:center}.pn-chat.minimized{background:transparent;border:initial;box-shadow:initial;max-width:50px;max-height:50px;min-width:initial;min-height:initial;transform:scale(0.95);cursor:pointer}.pn-chat.minimized .minimize-btn,.pn-chat.minimized .close-btn{position:absolute;top:0;right:0;bottom:0;left:0}.pn-chat.minimized .minimize-btn button,.pn-chat.minimized .close-btn button{display:none}.pn-chat.minimized .chat-main,.pn-chat.minimized .chat-footer{display:none}.pn-chat.closed{display:none}.pn-chat .open-chat-btn .pn-button{width:5.6rem;height:5.6rem}.pn-chat .open-chat-btn .pn-icon svg{width:3.2rem;height:3.2rem}.pn-chat .indicator-icon{padding:0.2rem 0.8rem;margin-right:auto;margin-top:1rem;margin-bottom:2rem;visibility:hidden}@media (max-width: 768px){body.chat-open{overflow:hidden}}";const u=b;const f=class{constructor(t){e(this,t);this.endpoint=undefined;this.customerSegment=undefined;this.mainHeading="";this.relatedContentAriaLabel=undefined;this.chatMinimizedAriaLabel=undefined;this.chatOpenedAriaLabel=undefined;this.minimizeChatAriaLabel=undefined;this.closeChatAriaLabel=undefined;this.openChatAriaLabel=undefined;this.chatControlsAriaLabel=undefined;this.chatMessagesAriaLabel=undefined;this.sentMessageAriaLabel=undefined;this.writeChatMessagePlaceholder=undefined;this.waitingForAnswerLabel=undefined;this.sendButtonText=undefined;this.loadingText=undefined;this.carouselSlidesToShow=1;this.messages=undefined;this.language="sv";this.market="se";this.itemId="";this.pnChatId="00000000-0000-0000-0000-000000000000";this.forceOpen=false;this.isLoggedIn=false;this.message="";this.messagesData=undefined;this.isMinimized=true;this.isClosed=false;this.lastMessageId="";this.i18n=undefined}chatId;_defaultChatId="00000000-0000-0000-0000-000000000000";_defaultAlternativeChatId="1";chatLocalStorageKey="sf-chat-state";chatMessagesContainer;chatRef;inputRef;storage=new r;_chatService;_chatSegment="#chat";_forceClose=false;componentWillLoad(){this._forceClose=false;this._chatService=new o(this.endpoint,this.market,this.language);this.messagesData={header:{},messages:[]};let e=this.storage.get(this.chatLocalStorageKey);if(e&&e.isLoggedIn===!this.isLoggedIn){this.storage.remove(this.chatLocalStorageKey)}else if(e&&e.chatId){this.chatId=e?.chatId??this.chatId}this.setTranslations();setInterval((()=>{this.updateChat()}),1500)}setTranslations(){if(this.language&&m[this.language]){this.i18n=m[this.language]}}getTranslation(e){const t=this[e];if(t===undefined||t===null||t===""){return m[this.language]?.[e]??m["en"][e]}return t}async updateChat(){if(this.isMinimized||this.isClosed){return}let e=this.lastMessageId;await this._chatService.fetchMessages(this.chatId,this.messagesData).then((t=>{this.lastMessageId=this._chatService.GetLastMessageId(t?.messages,this.lastMessageId);let a=document.getElementsByClassName("pn-chat-before");let i=Array.from(a);t.messages.forEach((e=>{i.forEach((t=>{if(e.content!=null&&(t.textContent.trim()===e.content.trim()||t.textContent.trim().includes(e.content.trim()))){t.remove()}}));this.renderMessage(e)}));if(e!==this.lastMessageId){this._chatService.updateLastMessageId(this.chatId,this.lastMessageId);this.messagesData=t;t.messages.forEach((e=>{this.renderMessage(e)}))}}))}async setStartValues(){if(this._forceClose){this._forceClose=false;return}if((!this.chatId||this.chatId===this._defaultChatId||this.chatId===this._defaultAlternativeChatId)&&!this.isMinimized){this.chatId=await this._chatService.startChat(this.pnChatId,this.itemId);this.storage.set(this.chatLocalStorageKey,{chatId:this.chatId,isLoggedIn:this.isLoggedIn})}if(this.chatId){this.storage.set(this.chatLocalStorageKey,{chatId:this.chatId,isLoggedIn:this.isLoggedIn});await this.fetchMessages();this.lastMessageId=this._chatService.GetLastMessageId(this.messagesData.messages,this.lastMessageId)}}async fetchMessages(){await this._chatService.fetchMessages(this.chatId,this.messagesData).then((e=>{this.lastMessageId=this._chatService.GetLastMessageId(this.messagesData.messages,this.lastMessageId);this.messagesData=e;let t=document.getElementsByClassName("pn-chat-before");let a=Array.from(t);e.messages.forEach((e=>{a.forEach((t=>{if(t.textContent.trim()===e.content.trim()||t.textContent.trim().includes(e.content.trim())){t.remove()}}));this.renderMessage(e)}));return e}))}async handleSend(){if(!this.message?.trim()){return}let e=this.message;this.message="";this.createBeforeElement(e);let t=await this._chatService.sendMessage(e,this.itemId,this.chatId,this.lastMessageId,"Text");this.lastMessageId=t;this.lastMessageId=this._chatService.GetLastMessageId(this.messagesData.messages,this.lastMessageId);this.announceToScreenReader(this.getTranslation("sentMessageAriaLabel"))}groupMessages(){const e=[];let a=[];const i=()=>{if(a.length>0){const i={slides:a.map((e=>{const t=`\n <pn-chat-message customerSegment=${this.customerSegment} data-card role="article" category=${e.category}>\n <h2 class="card-heading">${e.heading}</h2>\n <p>${e.content}</p>\n ${e.buttons?.map((e=>`\n <pn-button\n href="${e.href}"\n class="${e.class}"\n appearance="${e.appearance}"\n variant="${e.variant}"\n small="${e.small}"\n role="button"\n >\n ${e.content}\n </pn-button>\n `)).join("")||""}\n </pn-chat-message>\n `;return t}))};e.push(t("pn-marketweb-carousel",{class:"card-container",nextButtonLabel:"Next",previousButtonLabel:"Previous",ariaNavigationLabel:this.getTranslation("relatedContentAriaLabel"),slidesToShow:this.carouselSlidesToShow,source:JSON.stringify(i)}));a=[]}};this.messagesData.messages.forEach(((t,n)=>{if(t.category==="Card"){a.push(t);if(n===this.messagesData.messages.length-1||this.messagesData.messages[n+1]?.category!=="Card"){i()}}else{i();e.push(this.renderMessage(t))}}));return e}handleKeyPress=e=>{if(e.key==="Enter"&&this.message.trim()){e.preventDefault();this.handleSend()}};handleSendMessage=e=>{if(this.message.trim()){e.preventDefault();this.handleSend()}};handleButtonKeyDown(e){if(e.key==="Enter"||e.key===" "){e.preventDefault();e.target.click()}}handleKeyDown(e){if(e.key==="Escape"&&this.isMinimized&&!this.isClosed){this.toggleChat()}}handleMessagesChange(e){if(e){this.handleSend()}}handleNewChatId(){this.chatId=this.pnChatId===this._defaultAlternativeChatId?this._defaultChatId:this.pnChatId;this.messagesData.messages=[];this.isMinimized=false;this.setStartValues()}handleSameChatId(){this.isMinimized=false}scrollToBottom(){const e=new MutationObserver(((e,t)=>{const a=document.getElementById("chat-main");if(a){setTimeout((()=>{a.scrollTo({top:a.scrollHeight,behavior:"smooth"})}),500);t.disconnect()}}));e.observe(document.body,{childList:true,subtree:true})}closeChat=()=>{this._forceClose=true;this.storage.remove(this.chatLocalStorageKey);this.chatId=null;this.pnChatId=this._defaultChatId;let e=document.getElementsByTagName("pn-chat")[0];e.setAttribute("item-id","");let t=window.location.href.includes(this._chatSegment);if(t){this.isMinimized=!this.isMinimized;this.announceToScreenReader(this.isMinimized?this.getTranslation("chatMinimizedAriaLabel"):this.getTranslation("chatOpenedAriaLabel"));document.body.classList.toggle("chat-open");window.location.href=window.location.href.split(this._chatSegment)[0]}else{this._forceClose=false;this.toggleChat()}};toggleChat=()=>{this.isMinimized=!this.isMinimized;this.announceToScreenReader(this.isMinimized?this.getTranslation("chatMinimizedAriaLabel"):this.getTranslation("chatOpenedAriaLabel"));document.body.classList.toggle("chat-open");if(!this.isMinimized&&!this.chatId){this.setStartValues()}};announceToScreenReader(e){const t=document.createElement("div");t.setAttribute("role","status");t.setAttribute("aria-live","polite");t.classList.add("sr-only");t.textContent=e;document.body.appendChild(t);setTimeout((()=>t.remove()),1e3)}renderMessage(e){switch(e.category){case"Bot":return this.renderBaseMessage(e);case"Button":return this.renderButtonMessage(e);case"ButtonResponse":return this.renderBaseMessage(e);case"Link":return this.renderLinkMessage(e);case"Card":return this.renderCardMessage(e);case"User":return this.renderBaseMessage(e);case"Agent":return this.renderAgentMessage(e);case"System":return this.renderBaseMessage(e)}}renderBaseMessage(e){return t("pn-chat-message",{customerSegment:this.customerSegment,category:e.category,agentName:"",role:"log","aria-live":"polite"},e.content)}renderAgentMessage(e){return t("pn-chat-message",{customerSegment:this.customerSegment,category:e.category,agentName:e.agentName,role:"log","aria-live":"polite"},e.content)}renderButtonMessage(e){let a={};if(e?.props){try{a=JSON.parse(e.props)}catch(e){console.error("Error parsing button props",e instanceof Error?e.message:"Unknown error")}}const i=()=>{if(a["data-action"]==="minimize"){this.toggleChat()}if(a["dataAction"]==="choice"&&a["dataOptionChoice"]){(async()=>{await this.handleSendChoice(a["dataOptionChoice"],e.content)})()}};return t("pn-chat-message",{customerSegment:this.customerSegment,category:e.category},t("pn-button",{class:e.class,role:"button",...a,onClick:i,onKeyDown:e=>this.handleButtonKeyDown(e)},e.content))}createBeforeElement(e){const t=this.chatMessagesContainer;const a=document.createElement("pn-chat-message");a.setAttribute("customerSegment",this.customerSegment);a.setAttribute("category","User");a.classList.add("pn-chat-before");a.textContent=e;t.appendChild(a);this.scrollToBottom();a.scrollIntoView()}async handleSendChoice(e,t){this.createBeforeElement(t);let a=await this._chatService.sendMessage(e,this.itemId,this.chatId,this.lastMessageId,"Choice");this.lastMessageId=a;this.lastMessageId=this._chatService.GetLastMessageId(this.messagesData.messages,this.lastMessageId);this.announceToScreenReader(this.getTranslation("sentMessageAriaLabel"))}renderLinkMessage(e){return t("pn-chat-message",{customerSegment:this.customerSegment,category:e.category},t("a",{href:e.href,role:"link",rel:"noopener noreferrer"},t("span",{class:"content"},e.content),t("pn-icon",{icon:n,color:"blue700","aria-hidden":"true",role:"presentation"})))}renderCardMessage(e){return t("pn-chat-message",{customerSegment:this.customerSegment,category:e.category,"data-card":true,role:"article"},t("h2",{class:"card-heading"},e.heading),t("p",null,e.content),e.buttons&&t("div",{class:"cta"},e.buttons?.map((e=>t("pn-button",{href:e.href,class:e.class,appearance:e.appearance,variant:e.variant,small:e.small,role:"button",onKeyDown:e=>this.handleButtonKeyDown(e)},e.content)))))}render(){const e="chat-main";const n="chat-input";const r=this.messagesData?.header.button;return t(i,{key:"0cf24e9474bc0e7e39ec51b8e9bf7646f4ac21d8",class:this.customerSegment},!this.isClosed&&this.messagesData&&t("div",{key:"f275614056e1f2df7972377ae3041ab690eae830",class:`pn-chat ${this.isMinimized?"minimized":""} ${this.isClosed?"closed":""}`,ref:e=>this.chatRef=e,role:"region","aria-label":this.mainHeading},!this.isMinimized&&t(a,{key:"8bc0f594242ab297bc95e091a95bd382c1ce0b31"},t("header",{key:"7a20b62deac0cb3fa34bf3abf7dba3f8eccb94e7",class:"chat-header",role:"banner"},t("h1",{key:"0dbe95cfd3ca8856fc95bfd3e0a6e970b87ec6df",id:"chat-title"},this.mainHeading),t("div",{key:"3c7ecf77edb890a351882a22a0910cdc8e2abc7b",class:"chat-controls",role:"toolbar","aria-label":this.getTranslation("chatControlsAriaLabel")},t("pn-button",{key:"564dd6d3c7234356f3805b4e0808411d97e41292",icon:h,"icon-only":"true",class:"minimize-btn",onClick:this.toggleChat,"aria-expanded":!this.isMinimized,"aria-controls":e,"aria-label":this.getTranslation("minimizeChatAriaLabel"),variant:"borderless",tooltip:this.getTranslation("minimizeChatAriaLabel")}),t("pn-button",{key:"5d2873c2409d3caa7887bf9b99de5f64b5c8af22",icon:s,"icon-only":"true",class:"close-btn",onClick:this.closeChat,"aria-expanded":!this.isMinimized,"aria-label":this.getTranslation("closeChatAriaLabel"),variant:"borderless",tooltip:this.getTranslation("closeChatAriaLabel")}))),(this.messagesData?.messages?.length??0)>0?t("main",{id:e,class:"chat-main",role:"main","aria-labelledby":"chat-title"},this.messagesData.header&&t("div",{class:"chat-overview"},t("div",{class:"body"},this.messagesData.header.body),r&&t("pn-button",{href:r.href,class:r.class,appearance:r.appearance,variant:r.variant,small:r.small,role:"button",onKeyDown:e=>this.handleButtonKeyDown(e)},r.content)),t("div",{ref:e=>this.chatMessagesContainer=e,class:"chat-messages",role:"log","aria-live":"polite","aria-label":this.getTranslation("chatMessagesAriaLabel")},this.groupMessages()),t("pn-icon",{class:"indicator-icon","aria-label":this.getTranslation("waitingForAnswerLabel"),role:"presentation"})):t("main",{id:e,class:"chat-main loading-chat-main",role:"main","aria-labelledby":"chat-title"},t("div",{class:"chat-loading-spinner"},t("pn-spinner",{light:"true",size:"1.5"})),t("span",{class:"chat-loading-content"},this.getTranslation("loadingText"))),t("footer",{key:"6d8a4b4e0ce587c39f307f5ad37dd7498eaaaa4a",class:"chat-footer",role:"contentinfo"},t("div",{key:"b2879f8c86f2d01cd9563d21d9303b2e4d649503",class:"form",role:"form","aria-labelledby":n},t("label",{key:"9af815bef9cf42c18379839844bcf0101bd3921e",htmlFor:n,class:"sr-only"},this.getTranslation("writeChatMessagePlaceholder")),t("div",{key:"97007d97f8fe0a7c5f8b8e9c25bbe20918679484",class:"chat-input-container"},t("input",{key:"6e156d7ad63763316d2be89b925099fa03984232",id:n,class:"chat-text-input",ref:e=>this.inputRef=e,type:"text",placeholder:this.getTranslation("writeChatMessagePlaceholder"),value:this.message,onInput:e=>this.message=e.target.value,onKeyPress:this.handleKeyPress,maxLength:3990}),!this.message.trim()?t("div",{class:"chat-disabled-button",role:"button","aria-label":this.getTranslation("sendButtonText"),"aria-disabled":"true",tabIndex:-1},t("pn-icon",{color:"gray400",icon:c})):t("pn-button",{"icon-only":"true",variant:"borderless",appearance:"light",icon:c,onClick:this.handleSendMessage,disabled:!this.message.trim(),"aria-label":this.getTranslation("sendButtonText"),tooltip:this.getTranslation("sendButtonText")}))))),this.isMinimized&&t("pn-button",{key:"98f1a01a3774b504c91e72279133f46d327c723f",icon:p,"icon-only":"true",class:"open-chat-btn",onClick:this.toggleChat,tooltip:this.getTranslation("openChatAriaLabel"),"aria-label":this.getTranslation("openChatAriaLabel"),"aria-expanded":!this.isMinimized})))}static get watchers(){return{messages:["handleMessagesChange"],pnChatId:["handleNewChatId"],forceOpen:["handleSameChatId"],isMinimized:["scrollToBottom"]}}};f.style=u;export{f as pn_chat};
2
- //# sourceMappingURL=p-8afc2d30.entry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["icon","submit","talk_bubble","translations","sv","relatedContentAriaLabel","chatMinimizedAriaLabel","chatOpenedAriaLabel","minimizeChatAriaLabel","closeChatAriaLabel","openChatAriaLabel","chatControlsAriaLabel","chatMessagesAriaLabel","sentMessageAriaLabel","writeChatMessagePlaceholder","waitingForAnswerLabel","sendButtonText","loadingText","en","da","no","fi","pnChatCss","PnChatStyle0","PnChat","chatId","_defaultChatId","_defaultAlternativeChatId","chatLocalStorageKey","chatMessagesContainer","chatRef","inputRef","storage","LocalStorageService","_chatService","_chatSegment","_forceClose","componentWillLoad","this","PnChatService","endpoint","market","language","messagesData","header","messages","storageId","get","isLoggedIn","remove","setTranslations","setInterval","updateChat","i18n","getTranslation","key","value","undefined","isMinimized","isClosed","prevLastMessageId","lastMessageId","fetchMessages","then","newMessages","GetLastMessageId","htmlCollection","document","getElementsByClassName","elements","Array","from","forEach","message","element","content","textContent","trim","includes","renderMessage","updateLastMessageId","setStartValues","startChat","pnChatId","itemId","set","handleSend","createBeforeElement","responseId","sendMessage","announceToScreenReader","groupMessages","result","currentCardGroup","flushCardGroup","length","carouselData","slides","map","card","cardHtml","customerSegment","category","heading","buttons","button","href","class","appearance","variant","small","join","push","h","nextButtonLabel","previousButtonLabel","ariaNavigationLabel","slidesToShow","carouselSlidesToShow","source","JSON","stringify","index","handleKeyPress","event","preventDefault","handleSendMessage","handleButtonKeyDown","target","click","handleKeyDown","toggleChat","handleMessagesChange","newMessage","handleNewChatId","handleSameChatId","scrollToBottom","observer","MutationObserver","_","obs","chatMain","getElementById","setTimeout","scrollTo","top","scrollHeight","behavior","disconnect","observe","body","childList","subtree","closeChat","chatElement","getElementsByTagName","setAttribute","hasActiveShipmentInUrl","window","location","classList","toggle","split","announcement","createElement","add","appendChild","renderBaseMessage","renderButtonMessage","renderLinkMessage","renderCardMessage","renderAgentMessage","agentName","role","props","parse","error","console","Error","handleClick","handleSendChoice","onClick","onKeyDown","e","targetElement","chatMessage","scrollIntoView","choiceId","rel","arrow_right","color","render","mainId","inputId","headerButton","Host","ref","el","mainHeading","Fragment","id","minus","tooltip","close","light","size","htmlFor","type","placeholder","onInput","onKeyPress","maxLength","tabIndex","disabled"],"sources":["node_modules/pn-design-assets/pn-assets/icons/submit.js","node_modules/pn-design-assets/pn-assets/icons/talk_bubble.js","src/components/widgets/pn-chat/translations.ts","src/components/widgets/pn-chat/pn-chat.scss?tag=pn-chat","src/components/widgets/pn-chat/pn-chat.tsx"],"sourcesContent":["const icon = '<svg class=\"pn-icon-svg\" xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\"><path fill=\"#000\" fill-rule=\"evenodd\" d=\"M21 11.998a1 1 0 0 1-.577.908l-15 7a1 1 0 0 1-1.237-1.487l4.585-6.42-1.46-2.043A1 1 0 1 1 8.94 8.794l1.875 2.625a1 1 0 0 1 0 1.162l-2.788 3.903 9.599-4.48L6.58 6.909a1 1 0 1 1 .838-1.816l13 6a1 1 0 0 1 .581.906M5 4a1 1 0 0 1 1 1v.01a1 1 0 1 1-2 0V5a1 1 0 0 1 1-1\" clip-rule=\"evenodd\"/></svg>';\nexport const submit = icon;\n","const icon = '<svg class=\"pn-icon-svg\" xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\"><path fill=\"#000\" fill-rule=\"evenodd\" d=\"M12.388 2c5.522 0 10 4.477 10 10s-4.478 10-10 10H2l1.355-4.064-.798-3.987a8.8 8.8 0 0 1-.17-1.717V12c0-5.523 4.478-10 10-10m8 10a8 8 0 0 0-16 0v.232q0 .67.13 1.325l.902 4.507L4.775 20h7.612a8 8 0 0 0 8-8m-12.5-1.5a1.5 1.5 0 1 1 0 3 1.5 1.5 0 0 1 0-3m6 1.5a1.5 1.5 0 1 0-3 0 1.5 1.5 0 0 0 3 0m3-1.5a1.5 1.5 0 1 1 0 3 1.5 1.5 0 0 1 0-3\" clip-rule=\"evenodd\"/></svg>';\nexport const talk_bubble = icon;\nexport const talkBubble = icon;\n","export const translations = {\n 'sv': {\n relatedContentAriaLabel: 'Relaterat innehåll',\n chatMinimizedAriaLabel: 'Chatten är minimerad',\n chatOpenedAriaLabel: 'Chatten är öppen',\n minimizeChatAriaLabel: 'Minimera chatten',\n closeChatAriaLabel: 'Stäng chatten',\n openChatAriaLabel: 'Öppna chatten',\n chatControlsAriaLabel: 'Chattkontroller',\n chatMessagesAriaLabel: 'Chattmeddelanden',\n sentMessageAriaLabel: 'Meddelande skickat',\n writeChatMessagePlaceholder: 'Skriv ett meddelande...',\n waitingForAnswerLabel: 'Väntar på svar',\n sendButtonText: 'Skicka',\n loadingText: 'Laddar...',\n },\n 'en': {\n relatedContentAriaLabel: 'Related content',\n chatMinimizedAriaLabel: 'Chat is minimized',\n chatOpenedAriaLabel: 'Chat is open',\n minimizeChatAriaLabel: 'Minimize chat',\n closeChatAriaLabel: 'Close chat',\n openChatAriaLabel: 'Open chat',\n chatControlsAriaLabel: 'Chat controls',\n chatMessagesAriaLabel: 'Chat messages',\n sentMessageAriaLabel: 'Message sent',\n writeChatMessagePlaceholder: 'Type a message...',\n waitingForAnswerLabel: 'Waiting for answer',\n sendButtonText: 'Send',\n loadingText: 'Loading...',\n },\n 'da': {\n relatedContentAriaLabel: 'Relateret indhold',\n chatMinimizedAriaLabel: 'Chatten er minimeret',\n chatOpenedAriaLabel: 'Chatten er åben',\n minimizeChatAriaLabel: 'Minimer chatten',\n closeChatAriaLabel: 'Luk chatten',\n openChatAriaLabel: 'Åbn chatten',\n chatControlsAriaLabel: 'Chatkontroller',\n chatMessagesAriaLabel: 'Chatbeskeder',\n sentMessageAriaLabel: 'Besked sendt',\n writeChatMessagePlaceholder: 'Skriv en besked...',\n waitingForAnswerLabel: 'Venter på svar',\n sendButtonText: 'Send',\n loadingText: 'Indlæser...',\n },\n 'no': {\n relatedContentAriaLabel: 'Relatert innhold',\n chatMinimizedAriaLabel: 'Chatten er minimert',\n chatOpenedAriaLabel: 'Chatten er åpen',\n minimizeChatAriaLabel: 'Minimer chatten',\n closeChatAriaLabel: 'Lukk chatten',\n openChatAriaLabel: 'Åpne chatten',\n chatControlsAriaLabel: 'Chatkontroller',\n chatMessagesAriaLabel: 'Chatmeldinger',\n sentMessageAriaLabel: 'Melding sendt',\n writeChatMessagePlaceholder: 'Skriv en melding...',\n waitingForAnswerLabel: 'Venter på svar',\n sendButtonText: 'Send',\n loadingText: 'Laster...',\n },\n 'fi': {\n relatedContentAriaLabel: 'Aiheeseen liittyvä sisältö',\n chatMinimizedAriaLabel: 'Keskustelu on pienennetty',\n chatOpenedAriaLabel: 'Keskustelu on auki',\n minimizeChatAriaLabel: 'Pienennä keskustelu',\n closeChatAriaLabel: 'Sulje keskustelu',\n openChatAriaLabel: 'Avaa keskustelu',\n chatControlsAriaLabel: 'Keskustelun hallinta',\n chatMessagesAriaLabel: 'Keskusteluviestit',\n sentMessageAriaLabel: 'Viesti lähetetty',\n writeChatMessagePlaceholder: 'Kirjoita viesti...',\n waitingForAnswerLabel: 'Odotetaan vastausta',\n sendButtonText: 'Lähetä',\n loadingText: 'Ladataan...',\n },\n};","@import '../../../globals/main.scss';\n$spacing: 1.6rem;\n\n.pn-chat {\n @media (max-width: 768px) {\n &:not(.minimized) {\n position: absolute;\n height: 100dvh;\n width: 100dvw;\n max-width: 100%;\n top: 0;\n left: 0;\n }\n\n &.minimized {\n height: 70px;\n border-radius: 0.8rem 0.8rem 0 0;\n }\n }\n\n @media (min-width: 768px) and (max-width: 1024px) {\n max-width: 350px;\n\n }\n\n display: flex;\n flex-direction: column;\n height: 600px;\n width: 100%;\n max-width: 400px;\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);\n border-radius: 1.6rem;\n\n .chat-header {\n background-color: $blue700;\n color: $white;\n padding: 0.8rem;\n padding-left: 1.6rem;\n display: flex;\n justify-content: space-between;\n align-items: center;\n\n @media (min-width: 768px) {\n border-radius: 1.6rem 1.6rem 0 0;\n }\n\n .chat-controls {\n display: flex;\n }\n\n pn-button.minimize-btn {\n button.pn-button {\n padding-bottom: 0;\n\n .pn-button-content {\n align-items: flex-end;\n }\n }\n }\n }\n\n .chat-header #chat-title {\n margin: 0;\n font-size: 2rem;\n font-weight: 400;\n line-height: 1.4;\n }\n\n .chat-main {\n display: flex;\n flex-direction: column;\n flex-grow: 1;\n overflow-y: auto;\n gap: $spacing;\n padding: $spacing;\n padding-bottom: $spacing * 2;\n border-left: 1px solid $gray200;\n border-right: 1px solid $gray200;\n background-color: $white;\n\n &.loading-chat-main {\n display: flex;\n justify-content: center;\n align-items: center;\n padding-bottom: 1.6rem;\n }\n }\n\n .chat-loading-spinner {\n background-color: $blue700;\n width: 4.8rem;\n height: 4.8rem;\n border-radius: 4.8rem;\n display: flex;\n align-items: center;\n justify-content: center;\n }\n\n .chat-loading-content {\n color: $gray900;\n font-size: 1.6rem;\n font-weight: 400;\n }\n\n .chat-overview {\n text-align: center;\n }\n\n .chat-messages {\n display: flex;\n flex-direction: column;\n gap: $spacing;\n text-align: center;\n }\n\n .card-container {\n .slider-wrapper {\n margin: 0;\n }\n\n $card-gap: 1rem;\n\n .slides-container {\n display: flex;\n gap: $card-gap;\n }\n\n .slide:nth-child(even) [data-card] {\n width: calc(100% - $card-gap);\n }\n }\n\n @keyframes pulse {\n\n 0%,\n 100% {\n opacity: 1;\n transform: scale(1);\n }\n\n 50% {\n opacity: 0.5;\n transform: scale(0.95);\n }\n }\n\n .chat-footer {\n background: $white;\n border: 1px solid $gray200;\n border-top: none;\n }\n\n .chat-footer .form {\n display: flex;\n gap: 0.7rem;\n padding: 1rem;\n }\n\n .chat-input-container {\n display: flex;\n flex-grow: 1;\n justify-content: space-between;\n gap: 0.7rem;\n background: $gray25;\n border-radius: 6.4rem;\n\n .chat-text-input {\n text-indent: 0.8rem;\n border: none;\n background: transparent;\n width: 100%;\n outline: 0.2rem solid transparent;\n outline-offset: 0.2rem;\n\n &:focus {\n border-radius: 6.4rem;\n }\n\n &:focus-visible {\n outline-color: $blue700;\n }\n }\n\n .chat-disabled-button {\n display: flex;\n width: 3.5em;\n min-height: 3em;\n min-width: 0;\n align-items: center;\n justify-content: center;\n }\n }\n\n &.minimized {\n background: transparent;\n border: initial;\n box-shadow: initial;\n max-width: 50px;\n max-height: 50px;\n min-width: initial;\n min-height: initial;\n transform: scale(0.95);\n\n cursor: pointer;\n\n .minimize-btn,\n .close-btn {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n\n button {\n display: none;\n }\n }\n\n .chat-main,\n .chat-footer {\n display: none;\n }\n }\n\n &.closed {\n display: none;\n }\n\n .open-chat-btn {\n .pn-button {\n width: 5.6rem;\n height: 5.6rem;\n }\n\n .pn-icon svg {\n width: 3.2rem;\n height: 3.2rem;\n }\n }\n\n .indicator-icon {\n padding: 0.2rem 0.8rem;\n margin-right: auto;\n margin-top: 1rem;\n margin-bottom: 2rem;\n visibility: hidden;\n }\n}\n\nbody.chat-open {\n @media (max-width: 768px) {\n overflow: hidden;\n }\n}","import { Component, h, Prop, State, Host, Watch, Listen, Fragment } from '@stencil/core';\nimport { minus, close, arrow_right, talk_bubble, submit } from 'pn-design-assets/pn-assets/icons.js';\nimport { AgentMessage, BaseMessage, ButtonMessage, CardMessage, ChatMessage, ChatMessages, CustomerSegment, LinkMessage } from './types';\nimport { LocalStorageService } from '@/globals/LocalStorageService';\nimport { JSX } from 'react';\nimport { PnChatService } from './pn-chat.service';\nimport { translations } from './translations';\nimport type { Translationsi18n } from './types';\n\n@Component({\n tag: 'pn-chat',\n styleUrl: 'pn-chat.scss',\n})\nexport class PnChat {\n @Prop() endpoint!: string;\n @Prop() customerSegment!: CustomerSegment;\n @Prop() mainHeading: string = '';\n @Prop() relatedContentAriaLabel: string;\n @Prop() chatMinimizedAriaLabel: string;\n @Prop() chatOpenedAriaLabel: string;\n @Prop() minimizeChatAriaLabel: string;\n @Prop() closeChatAriaLabel: string;\n @Prop() openChatAriaLabel: string;\n @Prop() chatControlsAriaLabel: string;\n @Prop() chatMessagesAriaLabel: string;\n @Prop() sentMessageAriaLabel: string;\n @Prop() writeChatMessagePlaceholder: string;\n @Prop() waitingForAnswerLabel: string;\n @Prop() sendButtonText: string;\n @Prop() loadingText: string;\n @Prop() carouselSlidesToShow: number = 1;\n @Prop() messages: string;\n @Prop() language: string = 'sv';\n @Prop() market: string = 'se';\n @Prop() itemId?: string = '';\n @Prop() pnChatId: string = '00000000-0000-0000-0000-000000000000';\n @Prop() forceOpen: boolean = false;\n @Prop() isLoggedIn: boolean = false;\n\n @State() private message: string = '';\n @State() private messagesData: ChatMessages;\n @State() private isMinimized: boolean = true;\n @State() private isClosed: boolean = false;\n @State() private lastMessageId: string = '';\n @State() i18n: any;\n\n private chatId: string;\n\n private readonly _defaultChatId: string = '00000000-0000-0000-0000-000000000000';\n private readonly _defaultAlternativeChatId: string = '1';\n private readonly chatLocalStorageKey = 'sf-chat-state';\n private chatMessagesContainer?: HTMLElement;\n private chatRef?: HTMLDivElement;\n private inputRef?: HTMLInputElement;\n private storage: LocalStorageService = new LocalStorageService();\n private _chatService: PnChatService;\n private _chatSegment: string = \"#chat\";\n private _forceClose: boolean = false;\n\n componentWillLoad(): void {\n this._forceClose = false;\n this._chatService = new PnChatService(this.endpoint, this.market, this.language);\n this.messagesData = {\n header: {},\n messages: [],\n };\n\n let storageId = this.storage.get(this.chatLocalStorageKey);\n\n if (storageId && storageId.isLoggedIn === !this.isLoggedIn) {\n this.storage.remove(this.chatLocalStorageKey);\n }\n else if (storageId && storageId.chatId) {\n this.chatId = storageId?.chatId ?? this.chatId;\n }\n\n this.setTranslations();\n\n setInterval(() => {\n this.updateChat();\n }, 1500);\n }\n\n setTranslations() {\n if (this.language && translations[this.language]) {\n this.i18n = translations[this.language];\n }\n }\n\nprivate getTranslation(key: keyof Translationsi18n): string {\n const value = this[key];\n if (value === undefined || value === null || value === '') {\n return translations[this.language]?.[key] ?? translations['en'][key];\n }\n return value;\n}\n\n private async updateChat() {\n if (this.isMinimized || this.isClosed) {\n return;\n }\n\n let prevLastMessageId = this.lastMessageId;\n\n await this._chatService.fetchMessages(this.chatId, this.messagesData).then(newMessages => {\n this.lastMessageId = this._chatService.GetLastMessageId(newMessages?.messages, this.lastMessageId);\n let htmlCollection = document.getElementsByClassName('pn-chat-before');\n let elements = Array.from(htmlCollection);\n\n newMessages.messages.forEach(message => {\n elements.forEach(element => {\n if (message.content != null && (element.textContent.trim() === message.content.trim() || element.textContent.trim().includes(message.content.trim()))) {\n element.remove();\n }\n });\n this.renderMessage(message);\n });\n\n if (prevLastMessageId !== this.lastMessageId) {\n this._chatService.updateLastMessageId(this.chatId, this.lastMessageId);\n this.messagesData = newMessages;\n newMessages.messages.forEach(message => {\n this.renderMessage(message);\n });\n }\n });\n }\n\n private async setStartValues() {\n if (this._forceClose) {\n this._forceClose = false;\n return;\n }\n\n if ((!this.chatId || this.chatId === this._defaultChatId || this.chatId === this._defaultAlternativeChatId) && !this.isMinimized) {\n this.chatId = await this._chatService.startChat(this.pnChatId, this.itemId);\n this.storage.set(this.chatLocalStorageKey, { chatId: this.chatId, isLoggedIn: this.isLoggedIn });\n }\n\n if (this.chatId) {\n this.storage.set(this.chatLocalStorageKey, { chatId: this.chatId, isLoggedIn: this.isLoggedIn });\n await this.fetchMessages();\n this.lastMessageId = this._chatService.GetLastMessageId(this.messagesData.messages, this.lastMessageId);\n }\n }\n\n private async fetchMessages() {\n let newMessages = await this._chatService.fetchMessages(this.chatId, this.messagesData).then(newMessages => {\n this.lastMessageId = this._chatService.GetLastMessageId(this.messagesData.messages, this.lastMessageId);\n this.messagesData = newMessages;\n let htmlCollection = document.getElementsByClassName('pn-chat-before');\n let elements = Array.from(htmlCollection);\n\n newMessages.messages.forEach(message => {\n elements.forEach(element => {\n if (element.textContent.trim() === message.content.trim() || element.textContent.trim().includes(message.content.trim())) {\n element.remove();\n }\n });\n this.renderMessage(message);\n });\n return newMessages;\n });\n }\n\n private async handleSend() {\n if (!this.message?.trim()) {\n return;\n }\n\n let message = this.message;\n this.message = '';\n this.createBeforeElement(message);\n\n let responseId = await this._chatService.sendMessage(message, this.itemId, this.chatId, this.lastMessageId, 'Text');\n this.lastMessageId = responseId;\n this.lastMessageId = this._chatService.GetLastMessageId(this.messagesData.messages, this.lastMessageId);\n\n this.announceToScreenReader(this.getTranslation('sentMessageAriaLabel'));\n };\n\n private groupMessages(): JSX.Element[] {\n const result: JSX.Element[] = [];\n let currentCardGroup: CardMessage[] = [];\n\n const flushCardGroup = () => {\n if (currentCardGroup.length > 0) {\n const carouselData = {\n slides: currentCardGroup.map(card => {\n const cardHtml = `\n <pn-chat-message customerSegment=${this.customerSegment} data-card role=\"article\" category=${card.category}>\n <h2 class=\"card-heading\">${card.heading}</h2>\n <p>${card.content}</p>\n ${card.buttons\n ?.map(\n button => `\n <pn-button\n href=\"${button.href}\"\n class=\"${button.class}\"\n appearance=\"${button.appearance}\"\n variant=\"${button.variant}\"\n small=\"${button.small}\"\n role=\"button\"\n >\n ${button.content}\n </pn-button>\n `,\n )\n .join('') || ''\n }\n </pn-chat-message>\n `;\n return cardHtml;\n }),\n };\n result.push(\n <pn-marketweb-carousel\n class=\"card-container\"\n nextButtonLabel=\"Next\"\n previousButtonLabel=\"Previous\"\n ariaNavigationLabel={this.getTranslation('relatedContentAriaLabel')}\n slidesToShow={this.carouselSlidesToShow}\n source={JSON.stringify(carouselData)}\n ></pn-marketweb-carousel>,\n );\n currentCardGroup = [];\n }\n };\n\n this.messagesData.messages.forEach((message, index) => {\n if (message.category === 'Card') {\n currentCardGroup.push(message as CardMessage);\n\n if (index === this.messagesData.messages.length - 1 || this.messagesData.messages[index + 1]?.category !== 'Card') {\n flushCardGroup();\n }\n } else {\n flushCardGroup();\n result.push(this.renderMessage(message));\n }\n });\n\n return result;\n }\n\n private handleKeyPress = (event: KeyboardEvent) => {\n if (event.key === 'Enter' && this.message.trim()) {\n event.preventDefault();\n this.handleSend();\n }\n };\n\n private handleSendMessage = (event: MouseEvent) => {\n if (this.message.trim()) {\n event.preventDefault();\n this.handleSend();\n }\n }\n\n private handleButtonKeyDown(event: KeyboardEvent) {\n if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault();\n (event.target as HTMLElement).click();\n }\n }\n\n @Listen('keydown')\n handleKeyDown(event: KeyboardEvent) {\n if (event.key === 'Escape' && this.isMinimized && !this.isClosed) {\n this.toggleChat();\n }\n }\n\n @Watch('messages')\n handleMessagesChange(newMessage: string): void {\n if (newMessage) {\n this.handleSend();\n }\n }\n\n @Watch('pnChatId')\n handleNewChatId() {\n this.chatId = this.pnChatId === this._defaultAlternativeChatId ? this._defaultChatId : this.pnChatId;\n this.messagesData.messages = [];\n this.isMinimized = false;\n this.setStartValues();\n }\n\n @Watch('forceOpen')\n handleSameChatId() {\n this.isMinimized = false;\n }\n\n @Watch('isMinimized')\n scrollToBottom() {\n const observer = new MutationObserver((_, obs) => {\n const chatMain = document.getElementById('chat-main');\n if (chatMain) {\n setTimeout(() => {\n chatMain.scrollTo({\n top: chatMain.scrollHeight,\n behavior: 'smooth'\n });\n }, 500)\n obs.disconnect();\n }\n });\n observer.observe(document.body, { childList: true, subtree: true, });\n }\n\n private closeChat = () => {\n this._forceClose = true;\n this.storage.remove(this.chatLocalStorageKey);\n this.chatId = null;\n this.pnChatId = this._defaultChatId;\n let chatElement = document.getElementsByTagName('pn-chat')[0];\n chatElement.setAttribute('item-id', '');\n\n let hasActiveShipmentInUrl = window.location.href.includes(this._chatSegment);\n if (hasActiveShipmentInUrl) {\n this.isMinimized = !this.isMinimized;\n this.announceToScreenReader(this.isMinimized ? this.getTranslation('chatMinimizedAriaLabel') : this.getTranslation('chatOpenedAriaLabel'));\n document.body.classList.toggle('chat-open');\n window.location.href = window.location.href.split(this._chatSegment)[0];\n }\n else {\n this._forceClose = false;\n this.toggleChat();\n }\n }\n\n private toggleChat = () => {\n this.isMinimized = !this.isMinimized;\n this.announceToScreenReader(this.isMinimized ? this.getTranslation('chatMinimizedAriaLabel') : this.getTranslation('chatOpenedAriaLabel'));\n document.body.classList.toggle('chat-open');\n\n if (!this.isMinimized && !this.chatId) {\n this.setStartValues();\n }\n };\n\n private announceToScreenReader(message: string) {\n const announcement = document.createElement('div');\n announcement.setAttribute('role', 'status');\n announcement.setAttribute('aria-live', 'polite');\n announcement.classList.add('sr-only');\n announcement.textContent = message;\n document.body.appendChild(announcement);\n setTimeout(() => announcement.remove(), 1000);\n }\n\n private renderMessage(message: ChatMessage): JSX.Element {\n switch (message.category) {\n case 'Bot':\n return this.renderBaseMessage(message);\n case 'Button':\n return this.renderButtonMessage(message);\n case 'ButtonResponse':\n return this.renderBaseMessage(message);\n case 'Link':\n return this.renderLinkMessage(message);\n case 'Card':\n return this.renderCardMessage(message);\n case 'User':\n return this.renderBaseMessage(message);\n case 'Agent':\n return this.renderAgentMessage(message);\n case 'System':\n return this.renderBaseMessage(message);\n }\n }\n\n private renderBaseMessage(message: BaseMessage): JSX.Element {\n return (\n <pn-chat-message customerSegment={this.customerSegment} category={message.category} agentName='' role=\"log\" aria-live=\"polite\">\n {message.content}\n </pn-chat-message>\n );\n }\n\n private renderAgentMessage(message: AgentMessage): JSX.Element {\n return (\n <pn-chat-message customerSegment={this.customerSegment} category={message.category} agentName={message.agentName} role=\"log\" aria-live=\"polite\">\n {message.content}\n </pn-chat-message>\n );\n }\n\n private renderButtonMessage(message: ButtonMessage): JSX.Element {\n let props = {};\n\n if (message?.props) {\n try {\n props = JSON.parse(message.props);\n } catch (error) {\n console.error('Error parsing button props', error instanceof Error ? error.message : 'Unknown error');\n }\n }\n\n const handleClick = () => {\n if (props['data-action'] === 'minimize') {\n this.toggleChat();\n }\n if (props['dataAction'] === 'choice' && props['dataOptionChoice']) {\n (async () => {\n await this.handleSendChoice(props['dataOptionChoice'], message.content);\n })();\n }\n };\n\n return (\n <pn-chat-message customerSegment={this.customerSegment} category={message.category}>\n <pn-button class={message.class} role=\"button\" {...props} onClick={handleClick} onKeyDown={e => this.handleButtonKeyDown(e)}>\n {message.content}\n </pn-button>\n </pn-chat-message>\n );\n }\n\n private createBeforeElement(content: string) {\n const targetElement = this.chatMessagesContainer;\n const chatMessage = document.createElement('pn-chat-message');\n chatMessage.setAttribute('customerSegment', this.customerSegment);\n chatMessage.setAttribute('category', 'User');\n chatMessage.classList.add('pn-chat-before');\n chatMessage.textContent = content;\n\n targetElement.appendChild(chatMessage);\n this.scrollToBottom();\n chatMessage.scrollIntoView();\n }\n\n private async handleSendChoice(choiceId: string, content: string) {\n this.createBeforeElement(content);\n\n let responseId = await this._chatService.sendMessage(choiceId, this.itemId, this.chatId, this.lastMessageId, 'Choice');\n this.lastMessageId = responseId;\n this.lastMessageId = this._chatService.GetLastMessageId(this.messagesData.messages, this.lastMessageId);\n\n this.announceToScreenReader(this.getTranslation('sentMessageAriaLabel'));\n }\n\n private renderLinkMessage(message: LinkMessage): JSX.Element {\n return (\n <pn-chat-message customerSegment={this.customerSegment} category={message.category}>\n <a href={message.href} role=\"link\" rel=\"noopener noreferrer\">\n <span class=\"content\">{message.content}</span>\n <pn-icon icon={arrow_right} color=\"blue700\" aria-hidden=\"true\" role=\"presentation\" />\n </a>\n </pn-chat-message>\n );\n }\n\n private renderCardMessage(message: CardMessage): JSX.Element {\n return (\n <pn-chat-message customerSegment={this.customerSegment} category={message.category} data-card role=\"article\">\n <h2 class=\"card-heading\">{message.heading}</h2>\n <p>{message.content}</p>\n {message.buttons && (\n <div class=\"cta\">\n {message.buttons?.map(button => (\n <pn-button\n href={button.href}\n class={button.class}\n appearance={button.appearance}\n variant={button.variant}\n small={button.small}\n role=\"button\"\n onKeyDown={e => this.handleButtonKeyDown(e)}\n >\n {button.content}\n </pn-button>\n ))}\n </div>\n )}\n </pn-chat-message>\n );\n }\n\n render() {\n const mainId = 'chat-main';\n const inputId = 'chat-input';\n const headerButton = this.messagesData?.header.button;\n\n return (\n <Host class={this.customerSegment}>\n {!this.isClosed && this.messagesData && (\n <div\n class={`pn-chat ${this.isMinimized ? 'minimized' : ''} ${this.isClosed ? 'closed' : ''}`}\n ref={el => (this.chatRef = el as HTMLDivElement)}\n role=\"region\"\n aria-label={this.mainHeading}\n >\n {!this.isMinimized && (\n <Fragment>\n <header class=\"chat-header\" role=\"banner\">\n <h1 id=\"chat-title\">{this.mainHeading}</h1>\n <div class=\"chat-controls\" role=\"toolbar\" aria-label={this.getTranslation('chatControlsAriaLabel')}>\n <pn-button\n icon={minus}\n icon-only=\"true\"\n class=\"minimize-btn\"\n onClick={this.toggleChat}\n aria-expanded={!this.isMinimized}\n aria-controls={mainId}\n aria-label={this.getTranslation('minimizeChatAriaLabel')}\n variant=\"borderless\"\n tooltip={this.getTranslation('minimizeChatAriaLabel')}\n />\n <pn-button\n icon={close}\n icon-only=\"true\"\n class=\"close-btn\"\n onClick={this.closeChat}\n aria-expanded={!this.isMinimized}\n aria-label={this.getTranslation('closeChatAriaLabel')}\n variant=\"borderless\"\n tooltip={this.getTranslation('closeChatAriaLabel')}\n />\n </div>\n </header>\n {(this.messagesData?.messages?.length ?? 0) > 0 ?\n (<main id={mainId} class=\"chat-main\" role=\"main\" aria-labelledby=\"chat-title\">\n {this.messagesData.header && (\n <div class=\"chat-overview\">\n <div class=\"body\">{this.messagesData.header.body}</div>\n {headerButton && (\n <pn-button\n href={headerButton.href}\n class={headerButton.class}\n appearance={headerButton.appearance}\n variant={headerButton.variant}\n small={headerButton.small}\n role=\"button\"\n onKeyDown={e => this.handleButtonKeyDown(e)}\n >\n {headerButton.content}\n </pn-button>\n )}\n </div>\n )}\n <div ref={el => (this.chatMessagesContainer = el as HTMLElement)} class=\"chat-messages\" role=\"log\" aria-live=\"polite\" aria-label={this.getTranslation('chatMessagesAriaLabel')}>\n {this.groupMessages()}\n </div>\n <pn-icon\n class=\"indicator-icon\"\n aria-label={this.getTranslation('waitingForAnswerLabel')}\n role=\"presentation\"\n ></pn-icon>\n </main>)\n : (<main id={mainId} class=\"chat-main loading-chat-main\" role=\"main\" aria-labelledby=\"chat-title\">\n <div class=\"chat-loading-spinner\">\n <pn-spinner light=\"true\" size=\"1.5\"></pn-spinner>\n </div>\n <span class=\"chat-loading-content\">{this.getTranslation('loadingText')}</span>\n </main>)}\n <footer class=\"chat-footer\" role=\"contentinfo\">\n <div class=\"form\" role=\"form\" aria-labelledby={inputId}>\n <label htmlFor={inputId} class=\"sr-only\">\n {this.getTranslation('writeChatMessagePlaceholder')}\n </label>\n <div class=\"chat-input-container\">\n <input\n id={inputId}\n class=\"chat-text-input\"\n ref={el => (this.inputRef = el as HTMLInputElement)}\n type=\"text\"\n placeholder={this.getTranslation('writeChatMessagePlaceholder')}\n value={this.message}\n onInput={(e: Event) => (this.message = (e.target as HTMLInputElement).value)}\n onKeyPress={this.handleKeyPress}\n maxLength={3990}\n />\n {!this.message.trim() ? (\n <div\n class=\"chat-disabled-button\"\n role=\"button\"\n aria-label={this.getTranslation('sendButtonText')}\n aria-disabled=\"true\"\n tabIndex={-1}>\n <pn-icon color=\"gray400\" icon={submit}></pn-icon>\n </div>\n ) : (\n <pn-button\n icon-only=\"true\"\n variant=\"borderless\"\n appearance=\"light\"\n icon={submit}\n onClick={this.handleSendMessage}\n disabled={!this.message.trim()}\n aria-label={this.getTranslation('sendButtonText')}\n tooltip={this.getTranslation('sendButtonText')}>\n </pn-button>\n )}\n </div>\n </div>\n </footer>\n </Fragment>\n )}\n {this.isMinimized && (\n <pn-button\n icon={talk_bubble}\n icon-only=\"true\"\n class=\"open-chat-btn\"\n onClick={this.toggleChat}\n tooltip={this.getTranslation('openChatAriaLabel')}\n aria-label={this.getTranslation('openChatAriaLabel')}\n aria-expanded={!this.isMinimized}\n ></pn-button>\n )}\n </div>\n )}\n </Host>\n );\n }\n}"],"mappings":"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","ignoreList":[]}
@@ -1,2 +0,0 @@
1
- import{r as e,h as t,d as s,g as a}from"./p-b3a13b6a.js";import{a as i}from"./p-575f557a.js";import{a as n}from"./p-36b39340.js";const r='<svg class="pn-icon-svg" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24"><path fill="#000" fill-rule="evenodd" d="M2 12C2 6.477 6.477 2 12 2s10 4.477 10 10-4.477 10-10 10c-.97 0-1.908-.138-2.797-.397-1.242-.36-2.352-.61-3.409-.464l-2.095.29A1 1 0 0 1 2.572 20.3l.289-2.095c.146-1.057-.103-2.167-.464-3.41A10 10 0 0 1 2 12m10-8a8 8 0 0 0-7.683 10.239c.364 1.252.734 2.724.525 4.24l-.108.788.787-.11c1.516-.208 2.988.162 4.24.526.71.206 1.46.317 2.239.317a8 8 0 1 0 0-16m-.034 4.5c-.445 0-.84.285-.981.707l-.037.11a1 1 0 0 1-1.897-.633l.037-.11A3.03 3.03 0 0 1 11.966 6.5h.18C13.734 6.5 15 7.807 15 9.371a2.83 2.83 0 0 1-1.553 2.523.81.81 0 0 0-.447.724V13a1 1 0 1 1-2 0v-.382c0-1.064.6-2.037 1.553-2.512A.83.83 0 0 0 13 9.37a.87.87 0 0 0-.854-.871zm.034 6a1.5 1.5 0 1 0 0 3 1.5 1.5 0 0 0 0-3" clip-rule="evenodd"/></svg>';const o=r;const h="pn-button-dropdown .pn-button-dropdown>pn-button>.pn-button{min-height:initial}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;border-width:0}@media screen and (max-width: 767px){.sr-only-mobile{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;border-width:0}}pn-chat-message{display:flex;text-align:left}pn-chat-message.user,pn-chat-message.buttonresponse{justify-content:flex-end}pn-chat-message.system-message{text-align:center;justify-content:center}pn-chat-message .message-container{border-radius:0.8rem;display:flex;gap:1rem;max-width:75%;overflow-x:hidden}pn-chat-message .message-container .category{width:2.6rem}pn-chat-message .message-container.bot .message,pn-chat-message .message-container.agent .message{background-color:#f3f2f2}pn-chat-message .message-container.link{flex-basis:100%}pn-chat-message .message-container.link .message{background-color:#effbff;box-shadow:0px 0.6px 1.8px 0px rgba(0, 0, 0, 0.1), 0px 3.2px 7.2px 0px rgba(0, 0, 0, 0.13);transition:box-shadow ease-in-out 0.5s;padding:0}pn-chat-message .message-container.link .message:hover{box-shadow:0px 0.6px 1.8px 0px rgba(0, 0, 0, 0.2), 0px 3.2px 7.2px 0px rgba(0, 0, 0, 0.23)}pn-chat-message .message-container.link .message a{color:#000000;display:flex;justify-content:space-between;padding:1rem 1.6rem;text-decoration:none}pn-chat-message .message-container.link .business.message{background-color:#fdefee}pn-chat-message .message-container.button{flex-basis:100%;text-align:center;max-width:unset}pn-chat-message .message-container.button .message{padding:0}pn-chat-message .message-container.card{border:solid 1px #d3cecb;border-radius:1.6rem;flex-basis:100%;max-width:100%}pn-chat-message .message-container.card .message{display:flex;flex-direction:column;gap:0.8rem;padding:1.6rem}pn-chat-message .message-container.card .card-heading{font-size:1.6rem;line-height:2.4rem;font-weight:700}pn-chat-message .message-container.card .cta{display:flex;flex-direction:row;gap:0.5rem}pn-chat-message .message-container.card .read-more{align-self:flex-start;margin-top:auto}pn-chat-message .message-container.user .message,pn-chat-message .message-container.buttonresponse .message{background-color:#e0f8ff;color:#2d2013;border-radius:0.8rem 0.8rem 0 0.8rem}pn-chat-message .message-container .message{border-radius:0 0.8rem 0.8rem 0.8rem;display:inline-block;flex:1 1 auto;font-size:1.4rem;line-height:2rem;padding:1rem 1.6rem;word-wrap:break-word;overflow-wrap:break-word;white-space:normal;word-break:break-word}@media (max-width: 767px){pn-chat-message .message-container .message{font-size:1.6rem}}pn-chat-message .message-container.agent .category .pn-icon{background-color:#00a0d6;color:#ffffff;text-align:center;border-radius:50%;display:inline-block;width:2.5rem;height:2.5rem;font-weight:500;font-size:1.2rem;line-height:2.6rem}pn-chat-message[data-card]{height:100%}";const c=h;const l=class{constructor(t){e(this,t);this.category=undefined;this.customerSegment=undefined;this.agentName=undefined}robotIcon='<?xml version="1.0" encoding="UTF-8"?> <svg id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" viewBox="0 0 20 20"> \x3c!-- Generator: Adobe Illustrator 29.5.1, SVG Export Plug-In . SVG Version: 2.1.0 Build 141) --\x3e <defs> <style> .st0 { fill: none; } .st1 { fill: #8eddf9; } .st2 { fill: #f3f2f2; } .st3 { fill: #0d234b; } .st4 { fill: #f06365; } .st5 { clip-path: url(#clippath); } .st6 { fill: #005d92; } </style> <clipPath id="clippath"> <rect class="st0" width="20" height="20"/> </clipPath> </defs> <g class="st5"> <g> <path class="st2" d="M10,20c5.5,0,10-4.5,10-10S15.5,0,10,0,0,4.5,0,10s4.5,10,10,10Z"/> <path class="st3" d="M10.5,4h-.5v2.8h.5v-2.8Z"/> <path class="st3" d="M10.2,4.3c.5,0,1-.4,1-1s-.4-1-1-1-1,.4-1,1,.4,1,1,1Z"/> <path class="st3" d="M9,5h2.4c1,0,1.8.8,1.8,1.8h-6c0-1,.8-1.8,1.8-1.8Z"/> <path class="st4" d="M17,10.3v-.8c0-1.9-1.5-3.5-3.5-3.5h-7.1c-1.9,0-3.5,1.6-3.5,3.5v.8h14.1Z"/> <path d="M13.9,16.1l-3.7.4v-.4s3.6-.4,3.6-.4c.8,0,1.6-.4,2.1-1s.7-2.9.7-3.7h.4c0,.9-.2,3.3-.8,3.9-.6.7-1.4,1.1-2.3,1.2Z"/> <path class="st4" d="M16.3,12.1v-3.6h.2c1,0,1.8.8,1.8,1.8s-.8,1.8-1.8,1.8h-.2Z"/> <path class="st4" d="M3.7,8.5v3.6h-.2c-1,0-1.8-.8-1.8-1.8s.8-1.8,1.8-1.8h.2Z"/> <path class="st3" d="M13.1,6.6h-6.2c-1.8,0-3.3,1.5-3.3,3.3v2.1c0,1.8,1.5,3.3,3.3,3.3h6.2c1.8,0,3.3-1.5,3.3-3.3v-2.1c0-1.8-1.5-3.3-3.3-3.3Z"/> <path class="st6" d="M12.8,7.8h-5.6c-1.4,0-2.5,1.1-2.5,2.5v1.4c0,1.4,1.1,2.4,2.5,2.4h5.6c1.4,0,2.4-1.1,2.4-2.4v-1.4c0-1.4-1.1-2.5-2.4-2.5Z"/> <path class="st1" d="M12.3,11.9c.5,0,1-.4,1-1s-.4-1-1-1-1,.4-1,1,.4,1,1,1Z"/> <path class="st1" d="M7.7,11.9c.5,0,1-.4,1-1s-.4-1-1-1-1,.4-1,1,.4,1,1,1Z"/> <path d="M11,15.8h-1.5c-.3,0-.5.2-.5.5h0c0,.3.2.5.5.5h1.5c.3,0,.5-.2.5-.5h0c0-.3-.2-.5-.5-.5Z"/> </g> </g> </svg>';blue700="blue700";getIcon(){let e=null;switch(this.category){case"Bot":return this.robotIcon;case"Agent":return this.agentName;case"Link":return o}return e}getMessageClass(){switch(this.category){case"ButtonResponse":return"buttonresponse";case"User":return"user";case"System":return"system-message";default:return undefined}}render(){const e=this.customerSegment?.toLowerCase()||"";const a=this.category?.toLowerCase()||"";return t(s,{key:"0bd86ed5a6709fca909aa09b9b8bf6c497c230a2",class:this.getMessageClass()},t("div",{key:"190cdd88c6b715022bad825d19f97ef2720005b9",class:`message-container ${a}`},this.getIcon()&&t("span",{key:"d7ae83dba633e39b5cc08e38526acd3f3b2f8427",class:"category"},t("pn-icon",{key:"8331458b12bc1669cba3cfc637abc2280516feec",icon:this.getIcon(),color:this.blue700,"aria-hidden":"true",role:"presentation"})),t("span",{key:"5aa89b7fe5ff9f65f69453b23d835aad16c68190",class:`message ${e}`},t("slot",{key:"1565b98e7b83884d8bc30a5dfcd9fce88e607a1d"}))))}};l.style=c;const d="pn-button-dropdown .pn-button-dropdown>pn-button>.pn-button{min-height:initial}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;border-width:0}@media screen and (max-width: 767px){.sr-only-mobile{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;border-width:0}}pn-marketweb-carousel{display:inline-block}pn-marketweb-carousel .pn-marketweb-carousel .slider-wrapper{margin:1rem;overflow:hidden;position:relative;touch-action:pan-y pinch-zoom}pn-marketweb-carousel .pn-marketweb-carousel .slides-container{display:flex;width:100%;list-style:none;margin:0;padding:0;overflow:hidden;position:relative;touch-action:none;transition:transform 0.5s ease-in-out;user-select:none}pn-marketweb-carousel .pn-marketweb-carousel .slides-container[data-partial=false] .slide{width:100%}pn-marketweb-carousel .pn-marketweb-carousel [data-slide]{flex:0 0 auto;transition:transform 0.5s ease-in-out}pn-marketweb-carousel .pn-marketweb-carousel .nav-button{cursor:pointer;display:flex;position:absolute;top:0;bottom:0;transform:translateY(-50%);height:2rem;margin:auto;padding:0;opacity:0.85;transition:opacity 200ms;z-index:1}pn-marketweb-carousel .pn-marketweb-carousel .nav-button.invisible{opacity:0}pn-marketweb-carousel .pn-marketweb-carousel .nav-button[data-show=false]{display:none}pn-marketweb-carousel .pn-marketweb-carousel .nav-button:hover,pn-marketweb-carousel .pn-marketweb-carousel .nav-button:focus{opacity:1}pn-marketweb-carousel .pn-marketweb-carousel [data-nav-button-prev]{left:1.75rem;border-radius:0 2rem 2rem 0}pn-marketweb-carousel .pn-marketweb-carousel [data-nav-button-next]{right:1.75rem;border-radius:2rem 0 0 2rem}@media (prefers-reduced-motion: reduce){pn-marketweb-carousel .slides-container{transition:none}pn-marketweb-carousel [data-slide]{transition:none}}";const p=d;const u=class{constructor(t){e(this,t);this.previousButtonLabel=undefined;this.nextButtonLabel=undefined;this.ariaNavigationLabel=undefined;this.source=undefined;this.slidesToShow=1;this.showCarouselButtons=true;this.showFirstSlidePrevButton=false;this.showLastSlideNextButton=false;this.slidesData=[];this.currentSlide=0;this.isDragging=false;this.slideWidth=0}static DEFAULTS={SWIPE_THRESHOLD_PX:50,ANIMATION_DURATION_MS:300,OVERSCROLL_LIMIT_PERCENT:30};get hostElement(){return a(this)}slides=null;slidesContainer=null;totalSlides=0;prevButton=null;nextButton=null;dragStartX=0;listeners=[];memoizedSlideWidth=null;componentWillLoad(){this.setInitialValues()}componentDidLoad(){this.setupCarousel();window.addEventListener("resize",this.handleResize)}disconnectedCallback(){this.cleanup();window.removeEventListener("resize",this.handleResize)}async goToSlide(e){if(e>=0&&e<this.totalSlides){this.currentSlide=e;this.moveSlides();this.updateNavButtons()}}async getCurrentSlide(){return this.currentSlide}handleSourceChange(e){if(e){this.setInitialValues()}}setInitialValues(){if(!this.source?.trim()){console.warn("No source provided for carousel");return}try{const e=JSON.parse(this.source);if(!e?.slides){throw new Error("Invalid slides data structure")}if(Array.isArray(e.slides)){this.slidesData=e.slides;this.showCarouselButtons=this.slidesData.length>1}else{throw new Error("Slides data is not an array")}}catch(e){console.error("Error parsing carousel source:",e instanceof Error?e.message:"Unknown error");this.slidesData=[]}}setupCarousel(){this.initializeElements();this.attachEventListeners();this.updateNavButtons()}initializeElements(){this.slidesContainer=this.hostElement.querySelector("[data-slides-container]");this.slides=this.hostElement.querySelectorAll("[data-slide]");this.totalSlides=this.slides?.length??0;if(this.showCarouselButtons){this.prevButton=this.hostElement.querySelector("[data-nav-button-prev]");this.nextButton=this.hostElement.querySelector("[data-nav-button-next]")}this.slideWidth=100/this.slidesToShow}attachEventListeners(){if(!this.slidesContainer)return;const e=(e,t,s,a)=>{e.addEventListener(t,s,a);this.listeners.push({element:e,event:t,handler:s})};e(this.slidesContainer,"touchstart",this.handleTouchStart,{passive:true});e(this.slidesContainer,"touchmove",this.handleTouchMove,{passive:false});e(this.slidesContainer,"touchend",this.handleTouchEnd,{passive:true});e(this.slidesContainer,"mousedown",this.handleTouchStart);e(this.slidesContainer,"mousemove",this.handleTouchMove);e(this.slidesContainer,"mouseup",this.handleTouchEnd);e(this.slidesContainer,"mouseleave",this.handleTouchEnd);if(this.showCarouselButtons){this.nextButton&&e(this.nextButton,"click",this.handleNextClick);this.prevButton&&e(this.prevButton,"click",this.handlePrevClick)}}cleanup(){this.listeners.forEach((({element:e,event:t,handler:s})=>{e.removeEventListener(t,s)}));this.listeners=[]}handleResize=()=>{this.memoizedSlideWidth=null};getSlideWidth(){if(!this.memoizedSlideWidth&&this.slidesContainer){this.memoizedSlideWidth=this.slidesContainer.offsetWidth}return this.memoizedSlideWidth??0}handleNextClick=e=>{e.stopPropagation();this.nextSlide()};handlePrevClick=e=>{e.stopPropagation();this.prevSlide()};handleTouchStart=e=>{if(e.target.classList.contains("nav-button"))return;this.isDragging=true;this.dragStartX="touches"in e?e.touches[0].clientX:e.clientX};handleTouchMove=e=>{if(!this.isDragging)return;if("touches"in e){e.preventDefault()}const t="touches"in e?e.touches[0].clientX:e.clientX;const s=t-this.dragStartX;const a=s/this.getSlideWidth()*100;this.moveSlides(a)};handleTouchEnd=e=>{if(!this.isDragging)return;this.isDragging=false;const t="changedTouches"in e?e.changedTouches[0].clientX:e.clientX;const s=t-this.dragStartX;if(Math.abs(s)>u.DEFAULTS.SWIPE_THRESHOLD_PX){if(s>0&&this.currentSlide>0){this.currentSlide--}else if(s<0&&this.currentSlide<this.totalSlides-1){this.currentSlide++}}this.moveSlides();this.updateNavButtons()};calculateProportionalTranslation(){return-200+(this.slidesToShow-1)*100}moveSlides(e=0){if(!this.slides||!this.slidesContainer){return}try{this.slides.forEach(((t,s)=>{if(t){t.style.width=`${this.slideWidth}%`;let a=0;if(this.slidesToShow===1){a=-100*this.currentSlide}else{if(this.totalSlides===2){if(this.currentSlide===1){a=-50}}else{if(this.currentSlide===1){a=-100}else if(this.currentSlide===2){if(s===0){a=-100}else{a=this.calculateProportionalTranslation()}}}}a+=e;t.style.transform=`translateX(${a}%)`;t.style.position="relative";let i;if(this.slidesToShow===1){i=s===this.currentSlide}else{i=this.currentSlide===0||this.totalSlides===2||this.currentSlide===1&&a===-100||this.currentSlide===2&&(s===0&&a===-100||s>0)}t.setAttribute("aria-hidden",(!i).toString())}}))}catch(e){console.error("Error moving slides:",e)}}updateNavButtons(){if(!this.showCarouselButtons)return;const e=this.currentSlide===0;const t=this.currentSlide===this.totalSlides-1;if(this.prevButton){this.prevButton.classList.toggle("invisible",e&&!this.showFirstSlidePrevButton);this.prevButton.dataset.show=e?`${this.showFirstSlidePrevButton}`:"true"}if(this.nextButton){this.nextButton.classList.toggle("invisible",t&&!this.showLastSlideNextButton);this.nextButton.dataset.show=t?`${this.showLastSlideNextButton}`:"true"}}nextSlide(){if(this.currentSlide>=this.totalSlides-1){this.currentSlide=0}else{this.currentSlide++}this.moveSlides();this.updateNavButtons()}prevSlide(){if(this.currentSlide<=0){this.currentSlide=this.totalSlides-1}else{this.currentSlide--}this.moveSlides();this.updateNavButtons()}render(){return t(s,{key:"c80db60a09f02cfeec55338910211c5a27ebedab"},t("div",{key:"836a9635ebfbadddadfececd8e7f1f94f355f89b",class:"pn-marketweb-carousel"},t("section",{key:"838b05eb1e8db65b84011b16ba7409dcf23b5eb3",class:"slider-wrapper"},this.showCarouselButtons&&t("div",{key:"3a3fe23b4a586f047b5391b5b8406e02884d1620",class:"nav-buttons",role:"group","aria-label":this.ariaNavigationLabel},t("pn-button",{key:"9d47e97795ad23bf118b54e2e72730e1819b9d3b",appearance:"light",icon:i,"icon-only":"true",tooltip:this.previousButtonLabel,class:`nav-button ${this.currentSlide===0&&!this.showFirstSlidePrevButton?"invisible":""}`,"data-nav-button-prev":true,"area-label":this.previousButtonLabel,"aria-disabled":this.currentSlide===0&&!this.showFirstSlidePrevButton}),t("pn-button",{key:"58e1c0363129d693f052ec59bd1a3b427db9bc56",appearance:"light",icon:n,"icon-only":"true",tooltip:this.nextButtonLabel,class:"nav-button","data-nav-button-next":true,"area-label":this.nextButtonLabel,"aria-disabled":this.currentSlide===this.totalSlides-1&&!this.showLastSlideNextButton})),this.slidesData&&t("ul",{key:"1c942f7d043a65e1b73a1bec69fbfdc3691c92f7",class:"slides-container","data-slides-container":true,"data-partial":this.slidesToShow===1?"false":"true","aria-live":"polite",style:{display:"flex",transform:"none"}},this.slidesData.map(((e,s)=>t("li",{class:"slide","data-slide":true,innerHTML:e,style:{width:this.slideWidth+"%"},"aria-hidden":s!==this.currentSlide})))))))}static get watchers(){return{source:["handleSourceChange"]}}};u.style=p;export{l as pn_chat_message,u as pn_marketweb_carousel};
2
- //# sourceMappingURL=p-f97e58b8.entry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["icon","faq","pnChatMessageCss","PnChatMessageStyle0","PnChatMessage","robotIcon","blue700","getIcon","this","category","agentName","getMessageClass","undefined","render","segmentClass","customerSegment","toLowerCase","categoryClass","h","Host","key","class","color","role","pnMarketwebCarouselCss","PnMarketwebCarouselStyle0","PnMarketwebCarousel","static","SWIPE_THRESHOLD_PX","ANIMATION_DURATION_MS","OVERSCROLL_LIMIT_PERCENT","slides","slidesContainer","totalSlides","prevButton","nextButton","dragStartX","listeners","memoizedSlideWidth","componentWillLoad","setInitialValues","componentDidLoad","setupCarousel","window","addEventListener","handleResize","disconnectedCallback","cleanup","removeEventListener","goToSlide","index","currentSlide","moveSlides","updateNavButtons","getCurrentSlide","handleSourceChange","newValue","source","trim","console","warn","parsedData","JSON","parse","Error","Array","isArray","slidesData","showCarouselButtons","length","error","message","initializeElements","attachEventListeners","hostElement","querySelector","querySelectorAll","slideWidth","slidesToShow","addListener","element","event","handler","options","push","handleTouchStart","passive","handleTouchMove","handleTouchEnd","handleNextClick","handlePrevClick","forEach","getSlideWidth","offsetWidth","e","stopPropagation","nextSlide","prevSlide","target","classList","contains","isDragging","touches","clientX","preventDefault","currentPosition","diff","percentMove","changedTouches","Math","abs","DEFAULTS","calculateProportionalTranslation","extraTranslate","slide","style","width","translation","transform","position","isVisible","setAttribute","toString","isFirstSlide","isLastSlide","toggle","showFirstSlidePrevButton","dataset","show","showLastSlideNextButton","ariaNavigationLabel","appearance","arrow_left","tooltip","previousButtonLabel","arrow_right","nextButtonLabel","display","map","innerHTML"],"sources":["node_modules/pn-design-assets/pn-assets/icons/faq.js","src/components/widgets/pn-chat/pn-chat-message/pn-chat-message.scss?tag=pn-chat-message","src/components/widgets/pn-chat/pn-chat-message/pn-chat-message.tsx","src/components/widgets/pn-marketweb-carousel/pn-marketweb-carousel.scss?tag=pn-marketweb-carousel","src/components/widgets/pn-marketweb-carousel/pn-marketweb-carousel.tsx"],"sourcesContent":["const icon = '<svg class=\"pn-icon-svg\" xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\"><path fill=\"#000\" fill-rule=\"evenodd\" d=\"M2 12C2 6.477 6.477 2 12 2s10 4.477 10 10-4.477 10-10 10c-.97 0-1.908-.138-2.797-.397-1.242-.36-2.352-.61-3.409-.464l-2.095.29A1 1 0 0 1 2.572 20.3l.289-2.095c.146-1.057-.103-2.167-.464-3.41A10 10 0 0 1 2 12m10-8a8 8 0 0 0-7.683 10.239c.364 1.252.734 2.724.525 4.24l-.108.788.787-.11c1.516-.208 2.988.162 4.24.526.71.206 1.46.317 2.239.317a8 8 0 1 0 0-16m-.034 4.5c-.445 0-.84.285-.981.707l-.037.11a1 1 0 0 1-1.897-.633l.037-.11A3.03 3.03 0 0 1 11.966 6.5h.18C13.734 6.5 15 7.807 15 9.371a2.83 2.83 0 0 1-1.553 2.523.81.81 0 0 0-.447.724V13a1 1 0 1 1-2 0v-.382c0-1.064.6-2.037 1.553-2.512A.83.83 0 0 0 13 9.37a.87.87 0 0 0-.854-.871zm.034 6a1.5 1.5 0 1 0 0 3 1.5 1.5 0 0 0 0-3\" clip-rule=\"evenodd\"/></svg>';\nexport const faq = icon;\n","@import '../../../../globals/main.scss';\n$userChatMessageBackgroundColor: $blue50;\n$userChatMessageTextColor: $gray900;\n$privateChatMessageLinkColor: $blue25;\n$businessChatMessageLinkColor: $coral50;\n\n$message-padding: 1rem 1.6rem;\n\npn-chat-message {\n display: flex;\n text-align: left;\n\n &.user,\n &.buttonresponse {\n justify-content: flex-end;\n }\n\n &.system-message {\n text-align: center;\n justify-content: center;\n }\n\n .message-container {\n border-radius: 0.8rem;\n display: flex;\n gap: 1rem;\n max-width: 75%;\n overflow-x: hidden;\n\n .category {\n width: 2.6rem;\n }\n\n &.bot,\n &.agent {\n .message {\n background-color: $gray50;\n }\n }\n\n &.link {\n flex-basis: 100%;\n\n .message {\n $box-shadow-offset-x: 0px 0.6px 1.8px 0px;\n $box-shadow-offset-y: 0px 3.2px 7.2px 0px;\n\n background-color: $privateChatMessageLinkColor;\n box-shadow: $box-shadow-offset-x rgba(0, 0, 0, 0.10), $box-shadow-offset-y rgba(0, 0, 0, 0.13);\n transition: box-shadow ease-in-out 0.5s;\n\n &:hover {\n box-shadow: $box-shadow-offset-x rgba(0, 0, 0, 0.2), $box-shadow-offset-y rgba(0, 0, 0, 0.23);\n }\n\n padding: 0;\n\n a {\n color: $black;\n display: flex;\n justify-content: space-between;\n padding: $message-padding;\n text-decoration: none;\n }\n }\n }\n\n &.link .business.message {\n background-color: $businessChatMessageLinkColor;\n }\n\n &.button {\n flex-basis: 100%;\n text-align: center;\n max-width: unset;\n\n .message {\n padding: 0;\n }\n }\n\n &.card {\n border: solid 1px $gray200;\n border-radius: 1.6rem;\n flex-basis: 100%;\n max-width: 100%;\n\n .message {\n display: flex;\n flex-direction: column;\n gap: 0.8rem;\n padding: 1.6rem;\n }\n\n .card-heading {\n font-size: 1.6rem;\n line-height: 2.4rem;\n font-weight: 700;\n }\n\n .cta {\n display: flex;\n flex-direction: row;\n gap: 0.5rem;\n }\n\n .read-more {\n align-self: flex-start;\n margin-top: auto;\n }\n }\n\n &.user,\n &.buttonresponse {\n .message {\n background-color: $userChatMessageBackgroundColor;\n color: $userChatMessageTextColor;\n border-radius: 0.8rem 0.8rem 0 0.8rem;\n }\n }\n\n .message {\n border-radius: 0 0.8rem 0.8rem 0.8rem;\n display: inline-block;\n flex: 1 1 auto;\n font-size: 1.4rem;\n line-height: 2rem;\n padding: $message-padding;\n word-wrap: break-word;\n overflow-wrap: break-word;\n white-space: normal;\n word-break: break-word;\n\n @media (max-width: 767px) {\n font-size: 1.6rem;\n }\n }\n\n &.agent {\n .category .pn-icon {\n background-color: $blue400;\n color: $white;\n text-align: center;\n border-radius: 50%;\n display: inline-block;\n width: 2.5rem;\n height: 2.5rem;\n font-weight: 500;\n font-size: 1.2rem;\n line-height: 2.6rem;\n }\n }\n }\n\n &[data-card] {\n height: 100%;\n }\n}","import { Component, Host, Prop, h } from '@stencil/core';\nimport { faq, user } from 'pn-design-assets/pn-assets/icons.js';\n\nimport { AgentMessage, CustomerSegment, MessageCategory } from '../types';\n\n@Component({\n tag: 'pn-chat-message',\n styleUrl: 'pn-chat-message.scss',\n})\nexport class PnChatMessage {\n @Prop() category!: MessageCategory;\n @Prop() customerSegment!: CustomerSegment;\n @Prop() agentName: string;\n\n private robotIcon: string = '<?xml version=\"1.0\" encoding=\"UTF-8\"?> <svg id=\"Layer_1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" version=\"1.1\" viewBox=\"0 0 20 20\"> <!-- Generator: Adobe Illustrator 29.5.1, SVG Export Plug-In . SVG Version: 2.1.0 Build 141) --> <defs> <style> .st0 { fill: none; } .st1 { fill: #8eddf9; } .st2 { fill: #f3f2f2; } .st3 { fill: #0d234b; } .st4 { fill: #f06365; } .st5 { clip-path: url(#clippath); } .st6 { fill: #005d92; } </style> <clipPath id=\"clippath\"> <rect class=\"st0\" width=\"20\" height=\"20\"/> </clipPath> </defs> <g class=\"st5\"> <g> <path class=\"st2\" d=\"M10,20c5.5,0,10-4.5,10-10S15.5,0,10,0,0,4.5,0,10s4.5,10,10,10Z\"/> <path class=\"st3\" d=\"M10.5,4h-.5v2.8h.5v-2.8Z\"/> <path class=\"st3\" d=\"M10.2,4.3c.5,0,1-.4,1-1s-.4-1-1-1-1,.4-1,1,.4,1,1,1Z\"/> <path class=\"st3\" d=\"M9,5h2.4c1,0,1.8.8,1.8,1.8h-6c0-1,.8-1.8,1.8-1.8Z\"/> <path class=\"st4\" d=\"M17,10.3v-.8c0-1.9-1.5-3.5-3.5-3.5h-7.1c-1.9,0-3.5,1.6-3.5,3.5v.8h14.1Z\"/> <path d=\"M13.9,16.1l-3.7.4v-.4s3.6-.4,3.6-.4c.8,0,1.6-.4,2.1-1s.7-2.9.7-3.7h.4c0,.9-.2,3.3-.8,3.9-.6.7-1.4,1.1-2.3,1.2Z\"/> <path class=\"st4\" d=\"M16.3,12.1v-3.6h.2c1,0,1.8.8,1.8,1.8s-.8,1.8-1.8,1.8h-.2Z\"/> <path class=\"st4\" d=\"M3.7,8.5v3.6h-.2c-1,0-1.8-.8-1.8-1.8s.8-1.8,1.8-1.8h.2Z\"/> <path class=\"st3\" d=\"M13.1,6.6h-6.2c-1.8,0-3.3,1.5-3.3,3.3v2.1c0,1.8,1.5,3.3,3.3,3.3h6.2c1.8,0,3.3-1.5,3.3-3.3v-2.1c0-1.8-1.5-3.3-3.3-3.3Z\"/> <path class=\"st6\" d=\"M12.8,7.8h-5.6c-1.4,0-2.5,1.1-2.5,2.5v1.4c0,1.4,1.1,2.4,2.5,2.4h5.6c1.4,0,2.4-1.1,2.4-2.4v-1.4c0-1.4-1.1-2.5-2.4-2.5Z\"/> <path class=\"st1\" d=\"M12.3,11.9c.5,0,1-.4,1-1s-.4-1-1-1-1,.4-1,1,.4,1,1,1Z\"/> <path class=\"st1\" d=\"M7.7,11.9c.5,0,1-.4,1-1s-.4-1-1-1-1,.4-1,1,.4,1,1,1Z\"/> <path d=\"M11,15.8h-1.5c-.3,0-.5.2-.5.5h0c0,.3.2.5.5.5h1.5c.3,0,.5-.2.5-.5h0c0-.3-.2-.5-.5-.5Z\"/> </g> </g> </svg>';\n private blue700 = 'blue700';\n\n getIcon() {\n let icon = null;\n \n switch (this.category) {\n case 'Bot':\n return this.robotIcon;\n case 'Agent':\n return this.agentName;\n case 'Link':\n return faq;\n }\n\n return icon;\n }\n\n getMessageClass(): string {\n switch (this.category) {\n case 'ButtonResponse':\n return 'buttonresponse';\n case 'User':\n return 'user';\n case 'System':\n return 'system-message';\n default: \n return undefined;\n }\n }\n\n render() {\n const segmentClass = this.customerSegment?.toLowerCase() || '';\n const categoryClass = this.category?.toLowerCase() || '';\n return (\n <Host class={ this.getMessageClass() }>\n <div class={`message-container ${categoryClass}`}>\n {this.getIcon() && (\n <span class=\"category\">\n <pn-icon icon={this.getIcon()} color={this.blue700} aria-hidden=\"true\" role=\"presentation\"></pn-icon>\n </span>\n )}\n <span class={`message ${segmentClass}`}>\n <slot></slot>\n </span>\n </div>\n </Host>\n );\n }\n}\n","@import '../../../globals/main.scss';\n\npn-marketweb-carousel {\n display: inline-block;\n\n .pn-marketweb-carousel {\n .slider-wrapper {\n margin: 1rem;\n overflow: hidden;\n position: relative;\n touch-action: pan-y pinch-zoom;\n }\n\n .slides-container {\n display: flex;\n width: 100%;\n list-style: none;\n margin: 0;\n padding: 0;\n overflow: hidden;\n position: relative;\n touch-action: none;\n transition: transform 0.5s ease-in-out;\n user-select: none;\n\n &[data-partial='false'] .slide {\n width: 100%;\n }\n }\n\n [data-slide] {\n flex: 0 0 auto;\n transition: transform 0.5s ease-in-out;\n }\n\n .nav-button {\n cursor: pointer;\n display: flex;\n position: absolute;\n top: 0;\n bottom: 0;\n transform: translateY(-50%);\n height: 2rem;\n margin: auto;\n padding: 0;\n opacity: 0.85;\n transition: opacity 200ms;\n z-index: 1;\n\n &.invisible {\n opacity: 0;\n }\n\n &[data-show='false'] {\n display: none;\n }\n\n &:hover,\n &:focus {\n opacity: 1;\n }\n }\n\n [data-nav-button-prev] {\n left: 1.75rem;\n border-radius: 0 2rem 2rem 0;\n }\n\n [data-nav-button-next] {\n right: 1.75rem;\n border-radius: 2rem 0 0 2rem;\n }\n }\n\n @media (prefers-reduced-motion: reduce) {\n .slides-container {\n transition: none;\n }\n\n [data-slide] {\n transition: none;\n }\n }\n}\n","import { Component, Host, Prop, Element, State, h, Watch, Method } from '@stencil/core';\nimport { arrow_left, arrow_right } from 'pn-design-assets/pn-assets/icons.js';\n\ninterface CarouselData {\n slides: string[];\n}\n\ninterface EventListenerConfig {\n element: HTMLElement;\n event: string;\n handler: EventListener;\n}\n\n@Component({\n tag: 'pn-marketweb-carousel',\n styleUrl: 'pn-marketweb-carousel.scss',\n})\nexport class PnMarketwebCarousel {\n private static readonly DEFAULTS = {\n SWIPE_THRESHOLD_PX: 50,\n ANIMATION_DURATION_MS: 300,\n OVERSCROLL_LIMIT_PERCENT: 30,\n } as const;\n\n @Element() private hostElement!: HTMLElement;\n\n @Prop() previousButtonLabel!: string;\n @Prop() nextButtonLabel!: string;\n @Prop() ariaNavigationLabel!: string;\n @Prop() source!: string;\n @Prop() slidesToShow: number = 1;\n @Prop() showCarouselButtons: boolean = true;\n @Prop() showFirstSlidePrevButton: boolean = false;\n @Prop() showLastSlideNextButton: boolean = false;\n\n @State() private slidesData: string[] = [];\n @State() private currentSlide: number = 0;\n @State() private isDragging: boolean = false;\n @State() private slideWidth: number = 0;\n\n private slides: NodeListOf<HTMLElement> | null = null;\n private slidesContainer: HTMLElement | null = null;\n private totalSlides: number = 0;\n private prevButton: HTMLElement | null = null;\n private nextButton: HTMLElement | null = null;\n private dragStartX: number = 0;\n private listeners: EventListenerConfig[] = [];\n private memoizedSlideWidth: number | null = null;\n\n componentWillLoad(): void {\n this.setInitialValues();\n }\n\n componentDidLoad(): void {\n this.setupCarousel();\n window.addEventListener('resize', this.handleResize);\n }\n\n disconnectedCallback(): void {\n this.cleanup();\n window.removeEventListener('resize', this.handleResize);\n }\n\n @Method()\n async goToSlide(index: number): Promise<void> {\n if (index >= 0 && index < this.totalSlides) {\n this.currentSlide = index;\n this.moveSlides();\n this.updateNavButtons();\n }\n }\n\n @Method()\n async getCurrentSlide(): Promise<number> {\n return this.currentSlide;\n }\n\n @Watch('source')\n handleSourceChange(newValue: string): void {\n if (newValue) {\n this.setInitialValues();\n }\n }\n\n private setInitialValues(): void {\n if (!this.source?.trim()) {\n console.warn('No source provided for carousel');\n return;\n }\n\n try {\n const parsedData = JSON.parse(this.source) as CarouselData;\n\n if (!parsedData?.slides) {\n throw new Error('Invalid slides data structure');\n }\n\n if (Array.isArray(parsedData.slides)) {\n this.slidesData = parsedData.slides;\n this.showCarouselButtons = this.slidesData.length > 1;\n } else {\n throw new Error('Slides data is not an array');\n }\n } catch (error) {\n console.error('Error parsing carousel source:', error instanceof Error ? error.message : 'Unknown error');\n this.slidesData = [];\n }\n }\n\n private setupCarousel(): void {\n this.initializeElements();\n this.attachEventListeners();\n this.updateNavButtons();\n }\n\n private initializeElements(): void {\n this.slidesContainer = this.hostElement.querySelector<HTMLElement>('[data-slides-container]');\n this.slides = this.hostElement.querySelectorAll<HTMLElement>('[data-slide]');\n this.totalSlides = this.slides?.length ?? 0;\n\n if (this.showCarouselButtons) {\n this.prevButton = this.hostElement.querySelector<HTMLElement>('[data-nav-button-prev]');\n this.nextButton = this.hostElement.querySelector<HTMLElement>('[data-nav-button-next]');\n }\n\n this.slideWidth = 100 / this.slidesToShow;\n }\n\n private attachEventListeners(): void {\n if (!this.slidesContainer) return;\n\n const addListener = (element: HTMLElement, event: string, handler: EventListener, options?: AddEventListenerOptions) => {\n element.addEventListener(event, handler, options);\n this.listeners.push({ element, event, handler });\n };\n\n // Touch events\n addListener(this.slidesContainer, 'touchstart', this.handleTouchStart as EventListener, { passive: true });\n addListener(this.slidesContainer, 'touchmove', this.handleTouchMove as EventListener, { passive: false });\n addListener(this.slidesContainer, 'touchend', this.handleTouchEnd as EventListener, { passive: true });\n\n // Mouse events\n addListener(this.slidesContainer, 'mousedown', this.handleTouchStart as EventListener);\n addListener(this.slidesContainer, 'mousemove', this.handleTouchMove as EventListener);\n addListener(this.slidesContainer, 'mouseup', this.handleTouchEnd as EventListener);\n addListener(this.slidesContainer, 'mouseleave', this.handleTouchEnd as EventListener);\n\n if (this.showCarouselButtons) {\n this.nextButton && addListener(this.nextButton, 'click', this.handleNextClick);\n this.prevButton && addListener(this.prevButton, 'click', this.handlePrevClick);\n }\n }\n\n private cleanup(): void {\n this.listeners.forEach(({ element, event, handler }) => {\n element.removeEventListener(event, handler);\n });\n this.listeners = [];\n }\n\n private handleResize = (): void => {\n this.memoizedSlideWidth = null;\n };\n\n private getSlideWidth(): number {\n if (!this.memoizedSlideWidth && this.slidesContainer) {\n this.memoizedSlideWidth = this.slidesContainer.offsetWidth;\n }\n return this.memoizedSlideWidth ?? 0;\n }\n\n private handleNextClick = (e: Event): void => {\n e.stopPropagation();\n this.nextSlide();\n };\n\n private handlePrevClick = (e: Event): void => {\n e.stopPropagation();\n this.prevSlide();\n };\n\n private handleTouchStart = (e: TouchEvent | MouseEvent): void => {\n if ((e.target as HTMLElement).classList.contains('nav-button')) return;\n\n this.isDragging = true;\n this.dragStartX = 'touches' in e ? e.touches[0].clientX : e.clientX;\n };\n\n private handleTouchMove = (e: TouchEvent | MouseEvent): void => {\n if (!this.isDragging) return;\n\n if ('touches' in e) {\n e.preventDefault();\n }\n\n const currentPosition = 'touches' in e ? e.touches[0].clientX : e.clientX;\n const diff = currentPosition - this.dragStartX;\n const percentMove = (diff / this.getSlideWidth()) * 100;\n\n this.moveSlides(percentMove);\n };\n\n private handleTouchEnd = (e: TouchEvent | MouseEvent): void => {\n if (!this.isDragging) return;\n\n this.isDragging = false;\n\n const currentPosition = 'changedTouches' in e ? e.changedTouches[0].clientX : e.clientX;\n const diff = currentPosition - this.dragStartX;\n\n if (Math.abs(diff) > PnMarketwebCarousel.DEFAULTS.SWIPE_THRESHOLD_PX) {\n if (diff > 0 && this.currentSlide > 0) {\n this.currentSlide--;\n } else if (diff < 0 && this.currentSlide < this.totalSlides - 1) {\n this.currentSlide++;\n }\n }\n\n this.moveSlides();\n this.updateNavButtons();\n };\n\n private calculateProportionalTranslation(): number {\n // Calculate proportional translation based on slidesToShow\n return -200 + (this.slidesToShow - 1) * 100;\n }\n\n private moveSlides(extraTranslate: number = 0): void {\n if (!this.slides || !this.slidesContainer) {\n return;\n }\n\n try {\n this.slides.forEach((slide, index) => {\n if (slide) {\n // Set each slide's width\n slide.style.width = `${this.slideWidth}%`;\n\n let translation = 0;\n\n if (this.slidesToShow === 1) {\n // Full slide view\n translation = -100 * this.currentSlide;\n } else {\n // Partial slide view\n if (this.totalSlides === 2) {\n // Special case for 2 slides\n if (this.currentSlide === 1) {\n translation = -50; // Both slides move by -50%\n }\n } else {\n // 3 or more slides\n if (this.currentSlide === 1) {\n // Second slide showing - all slides move -100%\n translation = -100;\n } else if (this.currentSlide === 2) {\n // Third slide showing\n if (index === 0) {\n translation = -100; // First slide stays at -100%\n } else {\n // Calculate proportional translation\n translation = this.calculateProportionalTranslation();\n }\n }\n }\n }\n\n // Add any extra translation from dragging\n translation += extraTranslate;\n\n slide.style.transform = `translateX(${translation}%)`;\n slide.style.position = 'relative';\n\n // Update visibility for screen readers\n let isVisible;\n\n if (this.slidesToShow === 1) {\n isVisible = index === this.currentSlide;\n } else {\n isVisible =\n this.currentSlide === 0 || // First slide showing\n this.totalSlides === 2 || // Two slides - both visible\n (this.currentSlide === 1 && translation === -100) || // Second slide showing\n (this.currentSlide === 2 &&\n ((index === 0 && translation === -100) || // First slide still visible\n index > 0)); // Second and third slides visible\n }\n\n slide.setAttribute('aria-hidden', (!isVisible).toString());\n }\n });\n } catch (error) {\n console.error('Error moving slides:', error);\n }\n }\n\n private updateNavButtons(): void {\n if (!this.showCarouselButtons) return;\n\n const isFirstSlide = this.currentSlide === 0;\n const isLastSlide = this.currentSlide === this.totalSlides - 1;\n\n if (this.prevButton) {\n this.prevButton.classList.toggle('invisible', isFirstSlide && !this.showFirstSlidePrevButton);\n this.prevButton.dataset.show = isFirstSlide ? `${this.showFirstSlidePrevButton}` : 'true';\n }\n\n if (this.nextButton) {\n this.nextButton.classList.toggle('invisible', isLastSlide && !this.showLastSlideNextButton);\n this.nextButton.dataset.show = isLastSlide ? `${this.showLastSlideNextButton}` : 'true';\n }\n }\n\n private nextSlide(): void {\n if (this.currentSlide >= this.totalSlides - 1) {\n this.currentSlide = 0;\n } else {\n this.currentSlide++;\n }\n this.moveSlides();\n this.updateNavButtons();\n }\n\n private prevSlide(): void {\n if (this.currentSlide <= 0) {\n this.currentSlide = this.totalSlides - 1;\n } else {\n this.currentSlide--;\n }\n this.moveSlides();\n this.updateNavButtons();\n }\n\n render() {\n return (\n <Host>\n <div class=\"pn-marketweb-carousel\">\n <section class=\"slider-wrapper\">\n {this.showCarouselButtons && (\n <div class=\"nav-buttons\" role=\"group\" aria-label={this.ariaNavigationLabel}>\n <pn-button\n appearance=\"light\"\n icon={arrow_left}\n icon-only=\"true\"\n tooltip={this.previousButtonLabel}\n class={`nav-button ${this.currentSlide === 0 && !this.showFirstSlidePrevButton ? 'invisible' : ''}`}\n data-nav-button-prev\n area-label={this.previousButtonLabel}\n aria-disabled={this.currentSlide === 0 && !this.showFirstSlidePrevButton}>\n </pn-button>\n <pn-button\n appearance=\"light\"\n icon={arrow_right}\n icon-only=\"true\"\n tooltip={this.nextButtonLabel}\n class=\"nav-button\"\n data-nav-button-next\n area-label={this.nextButtonLabel}\n aria-disabled={this.currentSlide === this.totalSlides - 1 && !this.showLastSlideNextButton}>\n </pn-button>\n </div>\n )}\n {this.slidesData && (\n <ul\n class=\"slides-container\"\n data-slides-container\n data-partial={this.slidesToShow === 1 ? 'false' : 'true'}\n aria-live=\"polite\"\n style={{ display: 'flex', transform: 'none' }}\n >\n {this.slidesData.map((slide, index) => (\n <li class=\"slide\" data-slide innerHTML={slide} style={{ width: this.slideWidth + '%' }} aria-hidden={index !== this.currentSlide}></li>\n ))}\n </ul>\n )}\n </section>\n </div>\n </Host>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,5 +0,0 @@
1
- /*!
2
- * Built with Stencil
3
- * By PostNord.
4
- */
5
- import{t as e,r as i,c as t,g as l,h as n,a as s}from"./p-DWsprozV.js";import{uuidv4 as a,getBytesFromHumanReadableFileSize as o,awaitTopbar as r,ripple as d,en as p}from"./index.esm.js";import{a as c}from"./p-B88w-Zxn.js";import{c as h}from"./p-BpI8peGn.js";class f extends Error{element;code;data;constructor(e,i,t="INVALID",l=null){super(e),this.name="PNFileUploadError",this.element=i,this.code=t,this.data=l}}const u={CLICKORDRAG:{sv:"Klicka eller dra en fil hit",en:"Click or drag a file here",da:"Klik eller træk en fil hertil",fi:"Klikkaa tai vedä tiedosto tähän",no:"Klikk eller dra en fil hit"},ACCEPTEDFORMATS:{sv:"Filformat som stöds",en:"Supported formats",da:"Støttede filformater",fi:"Tuetut tiedostomuodot",no:"Understøttede filformater"},MAXFILESIZE:{sv:"Max filstorlek",en:"Max filesize",da:"Max filstørrelse",fi:"Maksimitiedostokoko",no:"Maks filstørrelse"},REMOVE_FILE:{sv:"Ta bort filen",en:"Remove file",da:"Fjern fil",fi:"Poista tiedosto",no:"Fjern fil"}},m=class{constructor(e){i(this,e),this.filesAdded=t(this,"filesAdded"),this.update=t(this,"update"),this.fileuploaderror=t(this,"fileuploaderror"),this.valid=t(this,"valid"),this.uploadFile=t(this,"uploadFile"),this.uploadCancelled=t(this,"uploadCancelled"),this.uploadCompleted=t(this,"uploadCompleted")}id=`pn-file-upload-${a()}`;idFileUpload=`${this.id}-label`;idHelpertext=`${this.id}-helpertext`;idAccepttext=`${this.id}-accept`;fileInputElement;invalid=!1;maxSizeInBytes=0;get hostElement(){return l(this)}files=[];isHovering=!1;label;helpertext;language=null;hideProgress=!1;name;accept;maxSize="";capture;limit=1;multiple;required=!1;disabled=!1;handleLimit(){this.multiple=this.limit>1}handleMaxBytes(){this.maxSizeInBytes=o(this.maxSize)}filesAdded;update;fileuploaderror;valid;uploadFile;uploadCancelled;uploadCompleted;async componentWillLoad(){this.handleLimit(),this.handleMaxBytes(),null===this.language&&await r(this.hostElement)}async startUpload(){if(!this.files.length)return;this.files=this.files.map(((e,i)=>("queue"===e.status&&(e.status="start",this.uploadFile.emit({file:e,index:i,uploader:this})),e)));const e=this.files.map((e=>e.xhrPromise().catch((()=>{}))));return Promise.all(e).then((e=>{const i=e.filter((e=>e));this.uploadCompleted.emit(i)}))}async clearUpload(){this.files=[],this.fileInputElement.value="",this.invalid=!1,this.filesAdded.emit([])}async removeFile(e){let i=!0;const t=[];for(const l in this.files){const n=this.files[l];if(n.filename)if(n.uuid!==e.uuid){try{this._validateFileSize(n),this._validateFileType(n),i=!0}catch(e){i=!1,n.error=e,n.progress=0,n.status="error"}t.push(n)}else"start"===n.status&&(n.xhr.abort(),this.uploadCancelled.emit(n))}this.filesAdded.emit(t),this.files=t,this.invalid=!i||!this._isNotGreaterThanLimit(),this._checkValidity(),this._emitUpdateEvent()}async updateFile(e,i=null){let t=this.files;if(null===i)for(const l in t)if(t[l].uuid===e.uuid){i=l;break}t[i]&&(e.progress>=100?(e.progress=100,e.status="completed"):e.progress<0&&(e.status="start",e.progress=0),e.error&&(e.progress=0,e.status="error",e.errorMessage=e.errorMessage||"There was an error uploading your file, please try again"),t[i]=e),this.files=[...t]}async _addFilesFromFileList(e){if(this.disabled||this.invalid)return;const i=Array.from(e),t=[];if(this.multiple)i.forEach((e=>t.push(this._addFile(e))));else{const e=i[0];1===this.limit?(this.files=[],t.push(this._addFile(e))):t.push(this._addFile(e))}return Promise.all(t).then((()=>{this.filesAdded.emit(this.files),this._isNotGreaterThanLimit(),this._checkValidity(),this._emitUpdateEvent()}))}async _onAddFile(){const e=this.fileInputElement.files;return await this._addFilesFromFileList(e)}_onDragOverFile(e){e.preventDefault(),e.stopPropagation(),this.isHovering=!0}_onDragLeaveFile(e){e.preventDefault(),e.stopPropagation(),this.isHovering=!1}_onDropFile(e){e.preventDefault(),e.stopPropagation(),this.isHovering=!1,d(e,this.hostElement,".pn-dropzone-inner"),this._addFilesFromFileList(e.dataTransfer.files)}_validateFileType(e){const i=this.accept?this.accept.split(","):[];if(i.length){let t=!1;for(const l of i){const i=l.trim().toLowerCase(),n=/^\w+\/[a-z\.\-]+$/i,s=e.filename.match(/\.\w{3,4}($|\?)/)?.[0]?.toLowerCase();if(n.test(i)&&e.contentType===i||s===i){t=!0;break}}if(!t){const i=new f("Invalid file type.",this.hostElement,"INVALID_FILE_TYPE",e);throw this.invalid=!0,this.fileuploaderror.emit(i),i}}}_validateFileSize(e){if(this.maxSizeInBytes>0&&e.filesize>this.maxSizeInBytes){const i=new f(`You can only add up to ${this.maxSize}.`,this.hostElement,"MAX_FILE_SIZE",e);throw this.invalid=!0,this.fileuploaderror.emit(i),i}}_validateLimit(){if(this.limit&&this.files.length>this.limit){const e=new f(`You can only add up to ${this.limit} files.`,this.hostElement,"MAX_LIMIT",this.files);throw this.invalid=!0,this.fileuploaderror.emit(e),e}}_isNotGreaterThanLimit(){try{return this._validateLimit(),!0}catch(e){return!1}}_checkValidity(){return this.invalid||this.valid.emit(this),!this.invalid}_createBase64FromFile(e){return new Promise(((i,t)=>{const l=new FileReader;l.onload=()=>i(l.result),l.onerror=e=>t(e),l.onabort=()=>t("ABORTED"),l.readAsDataURL(e)}))}async _addFile(e){return this._createBase64FromFile(e).then((i=>{const t=i.split(","),l=t[1],n=t[0].split(":")[1].split(";")[0],s=new XMLHttpRequest,o={uuid:a(),filename:e.name,filesize:e.size,progress:0,status:"queue",base64:l,contentType:n,error:null,errorMessage:"",file:e,xhr:s};try{this._validateFileSize(o),this._validateFileType(o)}catch(e){o.error=e,o.progress=0,o.status="error"}return o.xhrPromise=()=>new Promise(((e,i)=>{s.responseType="json",s.addEventListener("progress",(e=>{e.lengthComputable?(o.progress=e.loaded/e.total*100,this.updateFile(o)):(o.progress=100,this.updateFile(o))})),s.addEventListener("load",(i=>e(i.target.response))),s.addEventListener("error",(e=>{o.error=e,o.errorMessage="There was an error uploading your file, please try again",this.updateFile(o);const t=new f("There was an error uploading your file, please try again",this.hostElement,"UPLOAD_SERVER_ERROR",o);this.fileuploaderror.emit(t),i(e)}))})),this.files=[...this.files,o],o}))}_emitUpdateEvent(){this.update.emit({files:this.files,element:this.hostElement})}translate(e){return u?.[e]?.[this.language||p]||e}isLoading(e){return"start"===e.status}getFileItemClass=e=>{let i="files-list-item";return e.error&&(i+=" files-list-item-error"),i};getFileIcon(e){return e.error?c:100===e.progress?h:'<svg class="pn-icon-svg" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24"><path fill="#000" fill-rule="evenodd" d="M9 7.5a4.5 4.5 0 1 1 9 0V16a6 6 0 0 1-12 0v-3a1 1 0 1 1 2 0v3a4 4 0 0 0 8 0V7.5a2.5 2.5 0 0 0-5 0V16a1 1 0 1 0 2 0v-6a1 1 0 1 1 2 0v6a3 3 0 1 1-6 0zM7 9a1 1 0 0 1 1 1v.1a1 1 0 1 1-2 0V10a1 1 0 0 1 1-1" clip-rule="evenodd"/></svg>'}getFileColor(e){return e.error?"warning":100===e.progress?"green700":"gray900"}describedBy(){const e=[this.accept&&this.idAccepttext,this.helpertext&&this.idHelpertext].filter(Boolean);return e.length?e.join(","):null}render(){return n(s,{key:"1c7df13d284805a69618cac9130a3599dac09afa"},n("div",{key:"e6f37c7ac6e0283c06049562b3e20b11cf89f1c3",class:"pn-file-upload-container"},n("div",{key:"7647d0f6afdccef876e8c86b084b7b1106715764",class:"pn-dropzone-container"},n("input",{key:"a5cc41ce25c13ef1d4046b0fb9c45372da932b86",id:this.idFileUpload,class:"pn-file-upload-input",type:"file",name:this.name,multiple:this.multiple,accept:this.accept,capture:this.capture,disabled:this.disabled,required:this.required,"aria-describedby":this.describedBy(),"aria-invalid":this.invalid?.toString(),onClick:e=>d(e,this.hostElement,".pn-dropzone-inner"),onChange:()=>this._onAddFile(),onDragOver:e=>this._onDragOverFile(e),onDragLeave:e=>this._onDragLeaveFile(e),onDrop:e=>this._onDropFile(e),ref:e=>this.fileInputElement=e}),n("div",{key:"ccd799f14663e8d645fcea967e526a4be89324dd",class:"pn-dropzone-inner","data-hover":this.isHovering,"data-invalid":this.invalid},n("pn-icon",{key:"42c98b09e804d9fa8747c16cfe20773dfecd286c",class:"pn-file-upload-icon-element",icon:'<svg class="pn-icon-svg" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24"><path fill="#000" fill-rule="evenodd" d="M3 8a3 3 0 0 1 3-3h12a3 3 0 0 1 3 3v7a3 3 0 0 1-3 3h-2a1 1 0 1 1 0-2h2a1 1 0 0 0 1-1V8a1 1 0 0 0-1-1H6a1 1 0 0 0-1 1v7a1 1 0 0 0 1 1h2a1 1 0 1 1 0 2H6a3 3 0 0 1-3-3zm9 0a1 1 0 0 1 .707.293l4 4a1 1 0 0 1-1.414 1.414L13 11.414V17a1 1 0 1 1-2 0v-5.586l-2.293 2.293a1 1 0 0 1-1.414-1.414l4-4A1 1 0 0 1 12 8m-1 12.1V20a1 1 0 1 1 2 0v.1a1 1 0 1 1-2 0" clip-rule="evenodd"/></svg>',color:"blue700"}),n("label",{key:"d4c0d0d127830a82cc6c05e6b2bdb7007b87384c",htmlFor:this.idFileUpload,class:"pn-file-upload-title"},this.label||this.translate("CLICKORDRAG")),this.helpertext&&n("p",{key:"7dc83f69dd408af25194e644075ab7d852da4564",id:this.idHelpertext,class:"pn-file-upload-subtitle"},this.helpertext),this.accept&&n("p",{key:"64ba6ca78c6b2c9b626e7c4d4ca45074bbd0a6c7",id:this.idAccepttext,class:"pn-file-upload-subtitle"},this.translate("ACCEPTEDFORMATS"),": ",this.accept,this.maxSize&&n("span",{key:"1bf59a1291145d6adc7e9c6c2516f98e4b1522b2"}," ","(",this.translate("MAXFILESIZE"),": ",this.maxSize,")")))),!!this.files.length&&n("ul",{key:"06a0f4c327edee2c192e8b8fb38eb9ce5ab7e51a",class:"files-list"},this.files.map((e=>n("li",{class:"files-list-item-container",key:e.uuid},n("div",{class:this.getFileItemClass(e)},n("div",{class:"file-list-item-title"},n("pn-icon",{icon:this.getFileIcon(e),color:this.getFileColor(e)}),this.hideProgress||0===e.progress?n("div",{class:"filename"},e.filename):n("pn-progress-bar",{label:e.filename,progress:e.progress,error:e.error&&e.errorMessage})),n("pn-button",{small:!0,variant:"borderless",arialabel:`${this.translate("REMOVE_FILE")} ${e.filename}`,appearance:e.error?"warning":"light",icon:'<svg class="pn-icon-svg" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24"><path fill="#000" fill-rule="evenodd" d="M10.5 4a1 1 0 0 0-1 1h5a1 1 0 0 0-1-1zm6 1a3 3 0 0 0-3-3h-3a3 3 0 0 0-3 3h-2A2.5 2.5 0 0 0 5 9.95V19a3 3 0 0 0 3 3h8a3 3 0 0 0 3-3V9.95A2.5 2.5 0 0 0 18.5 5zm.5 5H7v9a1 1 0 0 0 1 1h8a1 1 0 0 0 1-1zM5.5 7a.5.5 0 0 0 0 1h13a.5.5 0 0 0 0-1zm4.5 5a1 1 0 0 1 1 1v4a1 1 0 1 1-2 0v-4a1 1 0 0 1 1-1m4 0a1 1 0 0 1 1 1v4a1 1 0 1 1-2 0v-4a1 1 0 0 1 1-1" clip-rule="evenodd"/></svg>',iconOnly:!0,tooltip:this.translate("REMOVE_FILE"),loading:this.isLoading(e),onClick:()=>this.removeFile(e)})),e.error?n("div",{class:"files-list-item-text-error"},e.errorMessage||e.error.message):null)))),n("slot",{key:"38c1a1703b7d2c418ecc76823f32248c5d8b1ec7"})))}static get watchers(){return{limit:[{handleLimit:0}],maxSize:[{handleMaxBytes:0}]}}};m.style=`${e("pn-file-upload")}.hover .pn-file-upload-container .pn-dropzone-container{background-color:#e0f8ff}${e("pn-file-upload")} .pn-file-upload-input{position:absolute;z-index:1;left:0;top:0;opacity:0;height:100%;width:100%;-webkit-tap-highlight-color:transparent}${e("pn-file-upload")} .pn-file-upload-input:hover{cursor:pointer}${e("pn-file-upload")} .pn-file-upload-input:hover+.pn-dropzone-inner{border-color:#005d92;background-color:#e0f8ff}${e("pn-file-upload")} .pn-file-upload-input:focus-visible+.pn-dropzone-inner{border-color:#005d92;outline-color:#005d92}${e("pn-file-upload")} .pn-file-upload-input:disabled{pointer-events:none}${e("pn-file-upload")} .pn-file-upload-input:disabled+.pn-dropzone-inner{pointer-events:none;background-color:#f3f2f2;border-color:#2d2013}${e("pn-file-upload")} .pn-file-upload-input:disabled+.pn-dropzone-inner .headline a{color:#5e554a}${e("pn-file-upload")} .pn-file-upload-input:disabled+.pn-dropzone-inner .pn-icon-svg path{fill:#5e554a}${e("pn-file-upload")} .pn-file-upload-container{position:relative;display:flex;flex-direction:column;gap:1em}${e("pn-file-upload")} .pn-file-upload-container .pn-dropzone-container{position:relative}${e("pn-file-upload")} .pn-file-upload-container .pn-dropzone-inner{position:relative;text-align:center;overflow:hidden;padding:2.5em;border:0.0625em #969087 dashed;border-radius:0.5em;display:flex;flex-direction:column;align-items:center;gap:0.5em;outline:0.2rem solid transparent;outline-offset:0.2rem;transition-property:background-color, outline-color, border-color;transition-duration:0.2s;transition-timing-function:cubic-bezier(0.7, 0, 0.3, 1)}@media (prefers-reduced-motion: reduce){${e("pn-file-upload")} .pn-file-upload-container .pn-dropzone-inner{transition-duration:0s;transition-delay:0s}}${e("pn-file-upload")} .pn-file-upload-container .pn-dropzone-inner .pn-ripple{animation:ripple 0.4s cubic-bezier(0.7, 0, 0.3, 1);position:absolute;border-radius:50%;background-color:#005d92;transform:translate(-50%, -50%) scale(0);opacity:0.1;pointer-events:none;z-index:3}@keyframes ripple{to{transform:translate(-50%, -50%) scale(1);opacity:0}}${e("pn-file-upload")} .pn-file-upload-container .pn-dropzone-inner[data-hover]{background-color:#e0f8ff;border-color:#005d92}${e("pn-file-upload")} .pn-file-upload-container .pn-dropzone-inner[data-invalid]{border-color:#a70707}${e("pn-file-upload")} .pn-file-upload-container .pn-dropzone-inner .pn-file-upload-dropzone{display:flex;flex-direction:row;align-items:center;justify-content:center;gap:0.5em}${e("pn-file-upload")} .files-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:1em}${e("pn-file-upload")} .files-list .filename{font-weight:400;font-size:0.75em}${e("pn-file-upload")} .files-list .files-list-item{display:flex;flex-direction:row;flex-wrap:nowrap;justify-content:space-between;align-items:center;background:#f9f8f8;padding:1em;border-radius:0.5em}${e("pn-file-upload")} .files-list .files-list-item .file-list-item-title{display:flex;align-items:center;gap:0.5em;margin-right:0.5em}${e("pn-file-upload")} .files-list .files-list-item>${e("pn-progress-bar")}{margin-right:25em;flex:1}${e("pn-file-upload")} .files-list .files-list-item.files-list-item-error{color:#a70707;background-color:#fdefee}${e("pn-file-upload")} .files-list .files-list-item-text-error{color:#a70707;font-size:0.875em;font-weight:300;margin-top:0.25em}${e("pn-file-upload")} .pn-file-upload-title{color:#2d2013}${e("pn-file-upload")} .pn-file-upload-subtitle{color:#5e554a;font-size:0.75em}`;export{m as pn_file_upload}
@@ -1,5 +0,0 @@
1
- /*!
2
- * Built with Stencil
3
- * By PostNord.
4
- */
5
- import{t,M as e,r as i,c as n,g as l,h as o,a as s}from"./p-DWsprozV.js";import{a as c}from"./p-0j4cY0b7.js";import{a as r}from"./p-B88w-Zxn.js";import{c as p}from"./p-DrYFvs2M.js";import{c as a}from"./p-BvuWkoyY.js";import{uuidv4 as u,awaitTopbar as d,ripple as h,getTotalHeightOffset as m,en as b}from"./index.esm.js";const f={SELECT_AN_OPTION:{en:"Select an option",sv:"Välj ett alternativ",da:"Vælg en mulighed",fi:"Valitse vaihtoehto",no:"Velg et alternativ"},SELECT_ALL_OPTIONS:{en:"Select all options",sv:"Välj alla alternativ",da:"Vælg alle muligheder",fi:"Valitse kaikki vaihtoehdot",no:"Velg alle alternativer"},SELECT_FOUND_OPTIONS:{en:"Select {number} options",sv:"Välj {number} alternativ",da:"Vælg {number} muligheder",fi:"Valitse {number} vaihtoehtoa",no:"Velg {number} alternativer"},SELECTED_OPTIONS:{en:"Selected options.",sv:"Valda alternativ.",da:"Valgte muligheder.",fi:"Valitut vaihtoehdot.",no:"Valgte alternativer."},BUTTON_OPEN:{en:"Open list",sv:"Öppna listan",da:"Open list",fi:"Open list",no:"Open list"},BUTTON_CLOSE:{en:"Close list",sv:"Stäng listan",da:"Close list",fi:"Close list",no:"Close list"},REMOVE:{en:"Remove",sv:"Ta bort",da:"Remove",fi:"Remove",no:"Remove"},REMOVED:{en:"Removed",sv:"Tog bort",da:"Fjernet",fi:"Poistettu",no:"Fjernet"},MORE_OPTION:{en:"more option.",sv:"alternativ till.",da:"mulighed mere.",fi:"vaihtoehto lisää.",no:"alternativ til."},MORE_OPTIONS:{en:"more options.",sv:"fler alternativ.",da:"more options.",fi:"more options.",no:"more options."},SEARCH:{en:"Search",sv:"Sök",da:"Søg",fi:"Hae",no:"Søk"},RESULTS_FOUND:{en:"options found",sv:"alternativ hittades",da:"muligheder fundet",fi:"vaihtoehtoja löytyi",no:"alternativer funnet"},NO_SEARCH_RESULTS:{en:"No options found",sv:"Inga alternativ hittades",da:"Ingen muligheder fundet",fi:"Vaihtoehtoja ei löytynyt",no:"Finner ingen alternativer"},NO_OPTIONS:{en:"No options available",sv:"Inga alternativ tillgängliga",da:"Ingen tilgængelige muligheder",fi:"Ei vaihtoehtoja",no:"Ingen tilgjengelige alternativer"}},g=class extends(e(c)){constructor(t){super(),i(this,t),this.toggleSelect=n(this,"toggleSelect"),this.allOptions=n(this,"allOptions"),this.selectedOption=n(this,"selectedOption"),this.selectedAllOptions=n(this,"selectedAllOptions"),this.searchInput=n(this,"searchInput")}id=`pn-multiselect-${u()}`;idLegend=`${this.id}-legend`;idButton=`${this.id}-button`;idOptions=`${this.id}-options`;idHelper=`${this.id}-text`;idChips=`${this.id}-chips`;idSr=`${this.id}-sr`;elGroup;elButton;elInput;elList;elChips;srTimer;get hostElement(){return l(this)}isSearching=!1;open=!1;upwards=!1;srMessage;label;helpertext;placeholder;name;selectId=this.id;selectName;icon;language=null;options;selectAll=!1;allValue="pn_multiselect_all";search=!1;searchQuery="";itemCount=5;maxHeight;top=!1;bottom=!1;required=!1;disabled=!1;invalid=!1;error;handleOpen(){this.open?(this.addGlobalEventListeners(),this.handleDirection(),this.handleMaxHeight(),this.handleWidth()):this.removeGlobalEventListeners(),this.dropdownHandler()}handleSearch(){this.search||(this.options=[...this.options.map((t=>{const e={...t,hide:!1};return e?.group?.length&&e.group.map((t=>({...t,hide:!1}))),e}))])}handleSearchQuery(){this.search&&"string"==typeof this.searchQuery&&this.handleInputSearch()}handleSelectId(){const t=this.selectId;this.idLegend=`${t}-legend`,this.idButton=`${t}-button`,this.idOptions=`${t}-options`,this.idHelper=`${t}-text`,this.idChips=`${t}-chips`,this.idSr=`${t}-sr`}handleResize(){this.open&&(this.toggleOpen(!1),this.elList.style.removeProperty("--pn-select-options-width"),this.elList.style.removeProperty("--pn-select-max-height"))}toggleSelect;allOptions;selectedOption;selectedAllOptions;searchInput;async componentWillLoad(){this.handleSelectId(),null===this.language&&await d(this.hostElement)}componentDidLoad(){this.searchQuery?.length&&this.handleSearchQuery()}globalEvents=t=>{const e=t.target,i=e?.closest(this.hostElement.localName);i||this.toggleOpen(!1)};addGlobalEventListeners(){this.hostElement.getRootNode().addEventListener("click",this.globalEvents)}removeGlobalEventListeners(){this.hostElement.getRootNode().removeEventListener("click",this.globalEvents)}dropdownHandler(){this.open?this.openDropdown(this.elList):this.closeDropdown(this.elList)}emitEvents(t,e){if(this.allOptions.emit(this.options),t)return this.selectedOption.emit(t);const i={checked:e,searching:this.isSearching};this.search&&this.optionsTotal()!==this.optionsSearch().length&&(i.query=this.searchQuery,i.found=this.optionsSearch()),this.selectedAllOptions.emit(i)}optionsChecked(){const t=this.options?.reduce(((t,e)=>{const i=e.group?[...e.group.filter((({checked:t})=>t))]:[];return e.checked&&t.push(e),i?.length&&t.push(...i),t}),[]);return t}optionsTotal(){return this.options?.reduce(((t,e)=>t+(e?.group?.length?e.group.length+1:1)),0)}optionsIndex(t){const e=({group:e=[]})=>e?.findIndex((({value:e})=>e===t)),i=this.options.findIndex((i=>i.value===t||-1!==e(i)));return{indexGroup:i,indexNested:e(this.options?.[i])}}optionsCheckedTotal(){return this.optionsChecked()?.length}optionsCheckedPreview(){return this.optionsChecked()?.slice(0,this.itemCount)}optionsCheckedLabels(){return this.optionsChecked()?.map((({label:t})=>t))?.join(", ")}optionsSearch(){const t=this.options?.reduce(((t,e)=>{const i=e.group?[...e.group.filter((({hide:t})=>!t))]:[];return e.hide||t.push(e),i?.length&&t.push(...i),t}),[]);return t}noResults(){return 0===this.optionsSearch()?.length}isIndeterminate(t){const e=this.options?.[t];if(e?.group?.length){const t=e.group.every((({checked:t})=>t)),i=e.group.every((({checked:t})=>!t));return!(t||i)}return!1}optionSelect({val:t,checked:e,chip:i}){if(t===this.allValue)return this.optionSelectAll(e);const n=this.options,{indexGroup:l,indexNested:o}=this.optionsIndex(t),s=n[l]?.group,c=s?.[o];if(c?.value){n[l].group[o].checked=e;const t=s?.every((({checked:t})=>t));n[l].checked=!!t}else n[l].checked=e,s?.length&&(n[l].group=s?.map((t=>({...t,checked:e}))));const r=-1===o?n[l]:n[l].group[o];this.emitEvents(r),this.options=[...n],"number"==typeof i&&(this.handleSrMesssage(`${this.translate("REMOVED")} ${r.label}`),requestAnimationFrame((()=>{const t=i===this.optionsCheckedTotal()?i-1:i,e=Array.from(this.elChips.children)?.[t];e?.querySelector("button").focus({preventScroll:!0})})))}optionSelectAll(t){this.options=[...this.options.map((e=>{const i={...e,checked:this.isSearching&&e.hide?e.checked:t};i.group&&(i.group=[...i.group.map((e=>({...e,checked:this.isSearching&&e.hide?e.checked:t})))]);const n=i?.group?.every((({checked:t})=>t));return i?.group?.length&&(i.checked=n),i}))],this.emitEvents(null,t)}optionSelected(t){return!!this.optionsChecked()?.find((({value:e,checked:i})=>e===t&&i))}translate(t){const e=f?.[t]?.[this.language||b];return e.includes("{number}")?e.replace("{number}",this.optionsSearch().length):e}getRect(t){return t?.getBoundingClientRect()}ripple({clientX:t,clientY:e,target:i}){const n=0===t&&0===e,l=i.nextElementSibling,{x:o,width:s,y:c,top:r}=this.getRect(l);h(n?{clientX:o+s-24,clientY:c-r}:{clientX:t,clientY:e},l)}handleSrMesssage(t){this.srMessage=t,clearTimeout(this.srTimer),this.srTimer=setTimeout((()=>this.srMessage=null),2e3)}handleDirection(){if(this.top)return this.upwards=!0;if(this.bottom)return this.upwards=!1;const{bottom:t,top:e}=this.getRect(this.elInput),i=window.innerHeight-t-16;this.upwards=(e-16)/2>i}handleMaxHeight(){if(this.maxHeight)return this.elGroup.style.setProperty("--pn-select-max-height",this.maxHeight);const{bottom:t,top:e}=this.getRect(this.elInput),i=this.upwards?e:t,n=m(),l=this.upwards?n+16:16,o=this.upwards?i-l:window.innerHeight-i-l;this.elGroup.style.setProperty("--pn-select-max-height",`${Math.ceil(o)}px`)}handleWidth(){const{width:t}=this.getRect(this.elInput);this.elGroup.style.setProperty("--pn-select-options-width",`${Math.ceil(t)}px`)}setFocus(){this.search?this.elInput.focus({preventScroll:!0}):this.elButton.focus({preventScroll:!0})}hasError(){return this.invalid||!!this.error}hasMessage(){return!!this.helpertext||!!this.error}toggleOpen(t){"boolean"==typeof t&&t===this.open||(this.open=t??!this.open,this.toggleSelect.emit({open:this.open}))}handleInputKeyboard(t){t.stopImmediatePropagation();const{code:e}=t;if("Escape"===e)return this.toggleOpen(!1);!this.open&&e.match(/^(Space|Enter)$|Arrow|^Key.*$/)&&this.toggleOpen()}setSearchQuery(t){this.open||this.toggleOpen(!0),this.searchQuery=t}handleInputSearch(){if(this.isEmpty())return;const t=this.searchQuery,e=({label:e,helpertext:i,value:n})=>`${e} ${i} ${n}`.trim().toLowerCase().includes(t.toLowerCase()),i=this.options.map((t=>{const i=t?.group?.map((t=>({...t,hide:!e(t)})))||[],n=e(t)||i?.some((({hide:t})=>!t));return t.hide=!n,t?.group?.length&&(t.group=[...i]),t}));this.isSearching=""!==t,this.options=[...i],this.searchInput.emit({query:t,found:this.optionsSearch()})}getListItem(t){const{value:e}=this.options[t];return this.elList.querySelector(`.pn-multiselect-option-input[value='${e}']`)}getOptionIndex(t,e,i){const n=this.optionsTotal()-1;if("End"===i)return n;if("Home"===i)return 0;const l=this.options.findIndex((({value:e})=>e===t))+e.find((t=>"number"==typeof t));return l>=n?n:l<=0?0:l}checkboxNav(t,e){const{code:i}=t,n="Tab"===i,l="Space"===i,o="Enter"===i,s="Escape"===i,c=["ArrowUp"===i&&-1,"ArrowDown"===i&&1,"PageUp"===i&&-10,"PageDown"===i&&10,"Home"===i&&0,"End"===i&&this.optionsTotal()-1,n,l,o,s];if(!c.some((t=>"number"==typeof t||t)))return;if(n||l||o)return;if(t.stopImmediatePropagation(),t.preventDefault(),s)return this.setFocus(),this.toggleOpen(!1);const r=this.getOptionIndex(e,c,i);return this.getListItem(r)?.focus()}handleBlur(t){const e=t.target,i=t.relatedTarget;"pn-multiselect-chip-button"===(i||e)?.className&&this.toggleOpen(!1)}handleLabel(){this.disabled||this.setFocus()}isEmpty(){return 0===(this.options?.length||0)}showSelectAll(){return this.selectAll&&!this.isEmpty()&&!this.noResults()}showEmptyOption(){return this.isSearching&&this.noResults()||this.isEmpty()}getPlaceholder(){return this.placeholder||this.translate(this.search?"SEARCH":"SELECT_AN_OPTION")}handleChange({target:t}){const{value:e,checked:i}=t;this.optionSelect({val:e,checked:i})}additonalOptions(){const t=this.optionsCheckedTotal()-this.itemCount;return`${t} ${this.translate("MORE_OPTION"+(1===t?"":"S"))}`}describedBy(){const t=[this.search&&this.idChips,this.srMessage&&this.idSr,!!this.helpertext&&this.idHelper].filter(Boolean);return t.length?t.join(" "):null}renderOption({label:t,value:e,checked:i,helpertext:n,icon:l,id:s=`${this.selectId}-${e||t}`,invalid:c,disabled:r,hide:p,group:a},u,d){return o("li",{class:"pn-multiselect-option",key:s,hidden:p},o("input",{type:"checkbox",id:s,class:"pn-multiselect-option-input",checked:i??this.optionSelected(e),indeterminate:void 0===d&&this.isIndeterminate(u),name:this.name,value:e,disabled:this.disabled||r,required:this.required,"aria-invalid":c?"true":null,"aria-describedby":n?`${s}-helper`:null,onClick:t=>this.ripple(t),onKeyDown:t=>this.checkboxNav(t,e),onBlur:t=>this.handleBlur(t)}),o("div",{class:"pn-multiselect-option-content"},!!l&&o("pn-icon",{icon:l,color:"blue900"}),o("div",{class:"pn-multiselect-option-text"},o("label",{class:"pn-multiselect-option-label",htmlFor:s},o("span",null,t)),n&&o("p",{class:"pn-multiselect-option-helper",id:`${s}-helper`},n)),o("div",{class:"pn-multiselect-option-checkbox"},o("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"none"},o("polyline",{class:"pn-multiselect-option-checkbox-checkmark-path",points:"4,12 9,17 20,6","stroke-width":"3"}),o("polyline",{class:"pn-multiselect-option-checkbox-indeterminate-path",points:"4,12 20,12","stroke-width":"3"})))),a?.length&&o("ul",{class:"pn-multiselect-optgroup"},a?.map(((t,e)=>this.renderOption(t,u,e)))))}renderOptions(){return o("ul",{id:this.idOptions,class:"pn-multiselect-options","data-open":this.open,"data-upwards":this.upwards,onChange:t=>this.handleChange(t),style:{height:"0px"},ref:t=>this.elList=t},this.showSelectAll()&&this.renderOption({label:this.translate(`SELECT_${this.isSearching?"FOUND":"ALL"}_OPTIONS`),value:this.allValue,checked:this.optionsTotal()===this.optionsCheckedTotal()}),this.options?.map(((t,e)=>this.renderOption(t,e))),this.showEmptyOption()&&o("li",{class:"pn-multiselect-option"},o("div",{class:"pn-multiselect-option-content",role:"alert"},o("div",{class:"pn-multiselect-option-text"},o("span",{class:"pn-multiselect-option-label"},this.translate(this.isEmpty()?"NO_OPTIONS":"NO_SEARCH_RESULTS"))))))}renderChips(){return o("ul",{id:this.idChips,class:"pn-multiselect-chips","aria-label":this.translate("SELECTED_OPTIONS"),ref:t=>this.elChips=t},this.optionsCheckedPreview()?.map((({label:t,value:e},i)=>o("li",{class:"pn-multiselect-chip","aria-setsize":this.optionsCheckedTotal(),"aria-posinset":i+1,key:`${t}-${e}`},o("span",{class:"pn-multiselect-chip-label"},t),o("button",{type:"button",class:"pn-multiselect-chip-button","aria-label":`${this.translate("REMOVE")} ${t}`,onClick:()=>this.optionSelect({val:e,checked:!1,chip:i})},o("pn-icon",{icon:a,small:!0,color:"blue700"}))))),this.optionsCheckedTotal()>this.itemCount&&o("li",{class:"pn-multiselect-chip","data-count":!0},o("span",{class:"pn-multiselect-chip-label"},"+ ",this.additonalOptions())))}render(){return o(s,{key:"9b25af2f368c47c8820ae000ed1389215cd952a2"},o("fieldset",{key:"3aa70d5b8d62ee84616afe853c2ea746c991fc67",class:"pn-multiselect","data-icon":!!this.icon,"data-error":this.hasError(),disabled:this.disabled},this.label&&o("legend",{key:"2e1bd83a8c6cb64bc9da287c70abcffccb334cbb",id:this.idLegend,class:"pn-multiselect-label",onClick:()=>this.handleLabel()},o("span",{key:"1d3073c63643320b9b9fde625832d89e41edaa35"},this.label),!!this.optionsChecked()?.length&&o("span",{key:"316c9d892808df273840dcac243971e5fb5d2b62"},this.optionsCheckedTotal(),"/",this.optionsTotal())),o("div",{key:"f79e79c0406ca659a6380902a6c8296df89bde97",class:"pn-multiselect-group",ref:t=>this.elGroup=t},o("div",{key:"73bc49a104f3846a41fa65f4e6e2623dba0806c2",class:"pn-multiselect-input"},!!this.icon&&o("pn-icon",{key:"a68a06de67861057dd6d853ab53b7a34d76ca7ee",class:"pn-multiselect-icon","data-custom":!0,icon:this.icon}),o("input",{key:"5df7e2ededf6e196ae47053ce650628391bc282d",tabindex:this.search?null:"-1",type:this.search?"search":"input",id:this.selectId,class:"pn-multiselect-element",value:this.search?this.searchQuery:this.optionsCheckedLabels(),name:this.selectName,placeholder:this.getPlaceholder(),required:this.search?null:this.required,"aria-labelledby":this.idLegend,"aria-describedby":this.describedBy(),"aria-controls":`${this.idOptions} ${this.search?this.idChips:""}`,"aria-invalid":this.hasError()?.toString(),disabled:this.disabled,readonly:!this.search,onClick:()=>this.search&&this.open?null:this.toggleOpen(),onKeyDown:t=>this.handleInputKeyboard(t),onBlur:t=>this.handleBlur(t),onInput:t=>this.search&&this.setSearchQuery(t.target.value),ref:t=>this.elInput=t}),this.hasError()&&o("pn-icon",{key:"5204a96efe2e88fee5d762a89b0623b1f8a163ce",class:"pn-multiselect-icon","data-error":!0,icon:r,color:"warning"}),o("button",{key:"78a487b3afc8c91e588d7922f3a2b490e9173d2f",id:this.idButton,type:"button",class:"pn-multiselect-button","aria-label":this.translate("BUTTON_"+(this.open?"CLOSE":"OPEN")),"aria-describedby":this.search?null:this.selectId,"aria-controls":this.idOptions,"aria-expanded":this.open.toString(),onClick:()=>this.toggleOpen(),ref:t=>this.elButton=t},o("pn-icon",{key:"061e6c886b21d559c439d2e689cfc02b328d87c9",class:"pn-multiselect-icon",icon:p,color:"blue700"}))),this.renderOptions()),this.hasMessage()&&o("p",{key:"a1c3cdabb02dfc2403dbe55cc4ce2fb38f71578c",id:this.idHelper,class:"pn-multiselect-description",role:this.error?"alert":null},o("span",{key:"3f9428b50a5d440866462e52181e13aa3b894e6a"},this.error||this.helpertext)),this.search&&this.renderChips(),o("slot",{key:"74dc717f4f662fbc53b0e73f0690a10a13feeb22"}),this.search&&o("p",{key:"85126ac7f1b59b4f2fd988bff08b5b2bcb561cbb",id:this.idSr,class:"pn-multiselect-sr-only",role:"alert","aria-live":"assertive"},this.srMessage&&o("span",{key:"45615fbfb30b133134d06c6fbee20a75a1dd61bd"},this.srMessage))))}static get watchers(){return{open:[{handleOpen:0}],search:[{handleSearch:0}],searchQuery:[{handleSearchQuery:0}],selectId:[{handleSelectId:0}]}}};g.style=`${t("pn-multiselect")}{display:inline-block}${t("pn-multiselect")} .pn-multiselect{border:0;margin:0;padding:0}${t("pn-multiselect")} .pn-multiselect[data-icon] .pn-multiselect-element{padding-left:3em}${t("pn-multiselect")} .pn-multiselect[data-error] .pn-multiselect-element{padding-right:5.5em;border-color:#a70707}${t("pn-multiselect")} .pn-multiselect[data-error] .pn-multiselect-element:hover{border-color:#500715}${t("pn-multiselect")} .pn-multiselect[data-error] .pn-multiselect-element:focus-visible{background-color:#ffffff;border-color:#a70707;outline-color:#a70707}${t("pn-multiselect")} .pn-multiselect-label{cursor:pointer;display:flex;justify-content:space-between;align-items:flex-end;font-weight:400;color:#2d2013;margin:0 0 0.25em 0;gap:0.5em;-webkit-tap-highlight-color:transparent;transition-property:color;transition-duration:0.2s;transition-timing-function:cubic-bezier(0.7, 0, 0.3, 1)}@media (prefers-reduced-motion: reduce){${t("pn-multiselect")} .pn-multiselect-label{transition-duration:0s;transition-delay:0s}}${t("pn-multiselect")} .pn-multiselect-label>span{font-size:0.875em}${t("pn-multiselect")} .pn-multiselect-label{width:100%}${t("pn-multiselect")} .pn-multiselect-sr-only{position:absolute;height:1px;width:1px;overflow:hidden;clip:rect(1px, 1px, 1px, 1px);margin:-1px;white-space:nowrap}${t("pn-multiselect")} .pn-multiselect-group{position:relative;padding:0;margin:0}${t("pn-multiselect")} .pn-multiselect-input{position:relative}${t("pn-multiselect")} .pn-multiselect-input>${t("pn-icon")}{pointer-events:none;position:absolute;top:0.75em;right:3.5em}${t("pn-multiselect")} .pn-multiselect-input>${t("pn-icon")}[data-custom]{left:0.75em;right:unset}${t("pn-multiselect")} .pn-multiselect-button{cursor:pointer;position:absolute;right:0.75em;top:50%;transform:translateY(-50%);padding:0;margin:0;border:0;width:2em;height:2em;font-size:1em;border-radius:50%;background-color:transparent;-webkit-tap-highlight-color:transparent;transition-property:background-color, outline-color, border-color;transition-duration:0.2s;transition-timing-function:cubic-bezier(0.7, 0, 0.3, 1)}@media (prefers-reduced-motion: reduce){${t("pn-multiselect")} .pn-multiselect-button{transition-duration:0s;transition-delay:0s}}${t("pn-multiselect")} .pn-multiselect-button{outline:0.2rem solid transparent;outline-offset:0.2rem}${t("pn-multiselect")} .pn-multiselect-button:focus-visible{outline-color:#005d92;background-color:#ffffff;border-color:#005d92}${t("pn-multiselect")} .pn-multiselect-button>${t("pn-icon")}>svg>path{transition-property:transform;transition-duration:0.2s;transition-timing-function:cubic-bezier(0.7, 0, 0.3, 1)}@media (prefers-reduced-motion: reduce){${t("pn-multiselect")} .pn-multiselect-button>${t("pn-icon")}>svg>path{transition-duration:0s;transition-delay:0s}}${t("pn-multiselect")} .pn-multiselect-button>${t("pn-icon")}>svg>path{transition-delay:0.2s;transform-origin:center;transform:rotate(0deg)}${t("pn-multiselect")} .pn-multiselect-button:hover{background-color:#effbff}${t("pn-multiselect")} .pn-multiselect-button[aria-expanded=true]{background-color:#effbff}${t("pn-multiselect")} .pn-multiselect-button[aria-expanded=true]>${t("pn-icon")}>svg>path{transform:rotate(180deg);transition-delay:0s}${t("pn-multiselect")} .pn-multiselect-element{color:#2d2013;background-color:#ffffff;border:0.0625em solid #969087;border-radius:0.5em;padding:0.75em;font-family:inherit;font-size:1em;font-weight:500;line-height:1.5em;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent}${t("pn-multiselect")} .pn-multiselect-element:-webkit-autofill,${t("pn-multiselect")} .pn-multiselect-element:-webkit-autofill:hover,${t("pn-multiselect")} .pn-multiselect-element:-webkit-autofill:focus,${t("pn-multiselect")} .pn-multiselect-element:-webkit-autofill:active{-webkit-box-shadow:0 0 0 10em #e0f8ff inset;-webkit-text-fill-color:#2d2013}${t("pn-multiselect")} .pn-multiselect-element{outline:0.2rem solid transparent;outline-offset:0.2rem}${t("pn-multiselect")} .pn-multiselect-element:focus-visible{outline-color:#005d92;background-color:#ffffff;border-color:#005d92}${t("pn-multiselect")} .pn-multiselect-element{transition-property:outline-color, background-color, border-color, color;transition-duration:0.2s;transition-timing-function:cubic-bezier(0.7, 0, 0.3, 1)}@media (prefers-reduced-motion: reduce){${t("pn-multiselect")} .pn-multiselect-element{transition-duration:0s;transition-delay:0s}}${t("pn-multiselect")} .pn-multiselect-element::placeholder{color:#5e554a;font-weight:normal}${t("pn-multiselect")} .pn-multiselect-element:hover{border-color:#005d92}${t("pn-multiselect")} .pn-multiselect-element:disabled{color:#5e554a;background-color:#f3f2f2;border-color:#f3f2f2}${t("pn-multiselect")} .pn-multiselect-element{cursor:text;text-align:left;transition-delay:0.1s, 0.1s, 0s;width:100%;padding-right:3.5em;display:flex;align-items:center;justify-content:space-between;gap:0.5em;overflow:hidden;text-overflow:ellipsis}${t("pn-multiselect")} .pn-multiselect-element:disabled{color:#5e554a;background-color:#f3f2f2;border-color:#f3f2f2;pointer-events:none}${t("pn-multiselect")} .pn-multiselect-element:disabled+.pn-multiselect-button{pointer-events:none}${t("pn-multiselect")} .pn-multiselect-element:disabled+.pn-multiselect-button path{fill:#5e554a}${t("pn-multiselect")} .pn-multiselect-element:placeholder{color:#5e554a;font-weight:normal}${t("pn-multiselect")} .pn-multiselect-element[type=input]:hover{cursor:pointer;color:#2d2013;background-color:#effbff;transition-delay:0s}${t("pn-multiselect")} .pn-multiselect-element[type=input]:hover[aria-invalid=true]{background-color:#fdefee}${t("pn-multiselect")} .pn-multiselect-element:focus-visible{transition-delay:0s}${t("pn-multiselect")} .pn-multiselect-element::-webkit-search-cancel-button,${t("pn-multiselect")} .pn-multiselect-element::-webkit-search-decoration{-webkit-appearance:none;-moz-appearance:none;appearance:none}${t("pn-multiselect")} .pn-multiselect-options{scroll-behavior:smooth;position:absolute;z-index:10;top:calc(100% + 0.5em);left:0;right:0;background-color:#ffffff;box-shadow:0em 0.075em 0.225em 0em rgba(0, 0, 0, 0.1), 0em 0.4em 0.9em 0em rgba(0, 0, 0, 0.13);border-radius:0.5em;list-style:none;margin:0;padding:0;width:var(--pn-select-options-width);max-height:var(--pn-select-max-height);overflow-y:auto;overflow-x:hidden;display:flex;flex-direction:column;visibility:hidden;transform-origin:top left}${t("pn-multiselect")} .pn-multiselect-options[data-open]{visibility:visible}${t("pn-multiselect")} .pn-multiselect-options[data-upwards]{top:unset;bottom:calc(100% + 0.5em);transform-origin:bottom left;box-shadow:0 -0.0625em 0.125em rgba(0, 0, 0, 0.2)}${t("pn-multiselect")} .pn-multiselect-options[data-moving]{overflow:hidden;visibility:visible}${t("pn-multiselect")} .pn-multiselect-options::-webkit-scrollbar{background-color:#ffffff;width:0.875em;border-radius:0.5em}${t("pn-multiselect")} .pn-multiselect-options::-webkit-scrollbar-track{background-color:#ffffff;border-radius:0.5em}${t("pn-multiselect")} .pn-multiselect-options::-webkit-scrollbar-thumb{cursor:pointer;background-color:#969087;border-radius:1em;border:0.25em solid #ffffff}${t("pn-multiselect")} .pn-multiselect-options::-webkit-scrollbar-thumb:hover{background-color:#5e554a}${t("pn-multiselect")} .pn-multiselect-options::-webkit-scrollbar-corner,${t("pn-multiselect")} .pn-multiselect-options::-webkit-scrollbar-button{display:none}${t("pn-multiselect")} .pn-multiselect-options>${t("pn-input")}{padding:0.5em}${t("pn-multiselect")} .pn-multiselect-optgroup{list-style:none;padding:0}${t("pn-multiselect")} .pn-multiselect-optgroup>.pn-multiselect-option>.pn-multiselect-option-content{padding-left:2em}${t("pn-multiselect")} .pn-multiselect-chips{list-style:none;display:flex;flex-wrap:wrap;gap:0.5em;padding:0;margin:0.5em 0 0 0;color:#5e554a;font-weight:400}${t("pn-multiselect")} .pn-multiselect-chips:empty{display:none}${t("pn-multiselect")} .pn-multiselect-chip{margin:0;display:inline-flex;align-items:center;gap:0.25em;background-color:#ffffff;border-radius:0.5em;padding:0.125em 0.25em 0.125em 0.5em;line-height:1.5em;border:0.0625em solid #5e554a;outline:0.2rem solid transparent;outline-offset:0.2rem;transition-property:background-color, outline-color, border-color, color;transition-duration:0.2s;transition-timing-function:cubic-bezier(0.7, 0, 0.3, 1)}@media (prefers-reduced-motion: reduce){${t("pn-multiselect")} .pn-multiselect-chip{transition-duration:0s;transition-delay:0s}}${t("pn-multiselect")} .pn-multiselect-chip:focus-within{color:#005d92;outline-color:#005d92;background-color:#effbff;border-color:#005d92}${t("pn-multiselect")} .pn-multiselect-chip[data-count]{pointer-events:none;border:0;padding-left:0;padding-right:0;background-color:unset}${t("pn-multiselect")} .pn-multiselect-chip-label{font-size:0.875em;white-space:nowrap}${t("pn-multiselect")} .pn-multiselect-chip-button{cursor:pointer;font-size:1em;padding:0.25em;height:1.5em;width:1.5em;border:0;background-color:unset;border-radius:50%;transition-property:background-color;transition-duration:0.2s;transition-timing-function:cubic-bezier(0.7, 0, 0.3, 1)}@media (prefers-reduced-motion: reduce){${t("pn-multiselect")} .pn-multiselect-chip-button{transition-duration:0s;transition-delay:0s}}${t("pn-multiselect")} .pn-multiselect-chip-button{-webkit-tap-highlight-color:transparent}${t("pn-multiselect")} .pn-multiselect-chip-button:hover{background-color:#8eddf9}${t("pn-multiselect")} .pn-multiselect-chip-button:focus{outline:0}${t("pn-multiselect")} .pn-multiselect-no-results{margin:0;padding:0.75em}${t("pn-multiselect")} .pn-multiselect-description{color:#5e554a;font-size:0.875em;font-weight:400;margin:0.25em 0 0 0;display:flex;flex-direction:column;gap:0.25em}${t("pn-multiselect")} .pn-multiselect-description[role=alert]{color:#a70707}${t("pn-multiselect")} .pn-multiselect-option{position:relative;margin:0;padding:0}${t("pn-multiselect")} .pn-multiselect-option .pn-ripple{animation:ripple 0.4s cubic-bezier(0.7, 0, 0.3, 1);position:absolute;border-radius:50%;background-color:#005d92;transform:translate(-50%, -50%) scale(0);opacity:0.1;pointer-events:none;z-index:3}@keyframes ripple{to{transform:translate(-50%, -50%) scale(1);opacity:0}}${t("pn-multiselect")} .pn-multiselect-option-input{cursor:pointer;position:absolute;opacity:0;left:0;top:0;height:100%;width:100%;margin:0;-webkit-tap-highlight-color:transparent}${t("pn-multiselect")} .pn-multiselect-option-input:disabled{pointer-events:none}${t("pn-multiselect")} .pn-multiselect-option-input:disabled+.pn-multiselect-option-content{color:#5e554a;background-color:#f3f2f2;border-color:#f3f2f2;pointer-events:none}${t("pn-multiselect")} .pn-multiselect-option-input:disabled+.pn-multiselect-option-content .pn-multiselect-option-checkbox{background-color:#f3f2f2;border-color:#969087}${t("pn-multiselect")} .pn-multiselect-option-input:disabled+.pn-multiselect-option-content path{fill:#5e554a}${t("pn-multiselect")} .pn-multiselect-option-input:disabled:checked+.pn-multiselect-option-content{color:#5e554a;background-color:#f3f2f2;border-color:#f3f2f2}${t("pn-multiselect")} .pn-multiselect-option-input:disabled:checked+.pn-multiselect-option-content .pn-multiselect-option-checkbox{background-color:#969087;border-color:#969087}${t("pn-multiselect")} .pn-multiselect-option-input:disabled:checked+.pn-multiselect-option-content path{fill:#5e554a}${t("pn-multiselect")} .pn-multiselect-option-input[aria-invalid=true]+.pn-multiselect-option-content .pn-multiselect-option-checkbox{border-color:#a70707}${t("pn-multiselect")} .pn-multiselect-option-input[aria-invalid=true]+.pn-multiselect-option-content .pn-ripple{background-color:#a70707}${t("pn-multiselect")} .pn-multiselect-option-input[aria-invalid=true]:checked+.pn-multiselect-option-content{background-color:#fdefee}${t("pn-multiselect")} .pn-multiselect-option-input[aria-invalid=true]:checked+.pn-multiselect-option-content .pn-multiselect-option-checkbox{background-color:#a70707;border-color:#a70707}${t("pn-multiselect")} .pn-multiselect-option-input[aria-invalid=true]:checked:focus-visible+.pn-multiselect-option-content{background-color:#fdefee}${t("pn-multiselect")} .pn-multiselect-option-input[aria-invalid=true]:checked:focus-visible+.pn-multiselect-option-content .pn-multiselect-option-checkbox{background-color:#500715;border-color:#500715}${t("pn-multiselect")} .pn-multiselect-option-input[aria-invalid=true]:checked:hover+.pn-multiselect-option-content{background-color:#fef7f6}${t("pn-multiselect")} .pn-multiselect-option-input[aria-invalid=true]:checked:hover+.pn-multiselect-option-content .pn-multiselect-option-checkbox{background-color:#500715;border-color:#500715}${t("pn-multiselect")} .pn-multiselect-option-input[aria-invalid=true]:hover+.pn-multiselect-option-content{background-color:#fef7f6}${t("pn-multiselect")} .pn-multiselect-option-input[aria-invalid=true]:hover+.pn-multiselect-option-content .pn-multiselect-option-checkbox{background-color:#fdefee;border-color:#a70707}${t("pn-multiselect")} .pn-multiselect-option-input[aria-invalid=true]:focus-visible+.pn-multiselect-option-content .pn-multiselect-option-checkbox{outline-color:#a70707;background-color:#fdefee;border-color:#a70707}${t("pn-multiselect")} .pn-multiselect-option-input:hover+.pn-multiselect-option-content{background-color:#effbff}${t("pn-multiselect")} .pn-multiselect-option-input:hover+.pn-multiselect-option-content .pn-multiselect-option-checkbox{border-color:#005d92;background-color:#e0f8ff}${t("pn-multiselect")} .pn-multiselect-option-input:focus-visible+.pn-multiselect-option-content .pn-multiselect-option-checkbox{outline-color:#005d92;background-color:#e0f8ff;border-color:#005d92}${t("pn-multiselect")} .pn-multiselect-option-input:checked+.pn-multiselect-option-content{background-color:#e0f8ff}${t("pn-multiselect")} .pn-multiselect-option-input:checked+.pn-multiselect-option-content .pn-multiselect-option-checkbox{border-color:#005d92;background-color:#005d92}${t("pn-multiselect")} .pn-multiselect-option-input:checked+.pn-multiselect-option-content .pn-multiselect-option-checkbox svg polyline.pn-multiselect-option-checkbox-checkmark-path{transition-delay:0.2s;stroke-dashoffset:0}${t("pn-multiselect")} .pn-multiselect-option-input:checked:hover+.pn-multiselect-option-content{background-color:#effbff}${t("pn-multiselect")} .pn-multiselect-option-input:checked:hover+.pn-multiselect-option-content .pn-multiselect-option-checkbox{border-color:#0d234b;background-color:#0d234b}${t("pn-multiselect")} .pn-multiselect-option-input:checked:focus-visible+.pn-multiselect-option-content{background-color:#e0f8ff}${t("pn-multiselect")} .pn-multiselect-option-input:checked:focus-visible+.pn-multiselect-option-content .pn-multiselect-option-checkbox{border-color:#0d234b;background-color:#0d234b}${t("pn-multiselect")} .pn-multiselect-option-input:indeterminate+.pn-multiselect-option-content .pn-multiselect-option-checkbox{background-color:#005d92;border-color:#005d92}${t("pn-multiselect")} .pn-multiselect-option-input:indeterminate+.pn-multiselect-option-content svg .pn-multiselect-option-checkbox-checkmark-path{stroke-dashoffset:23}${t("pn-multiselect")} .pn-multiselect-option-input:indeterminate+.pn-multiselect-option-content svg .pn-multiselect-option-checkbox-indeterminate-path{stroke-dashoffset:0}${t("pn-multiselect")} .pn-multiselect-option-input:indeterminate:hover+.pn-multiselect-option-content .pn-multiselect-option-checkbox{background-color:#0d234b;border-color:#0d234b}${t("pn-multiselect")} .pn-multiselect-option-content{position:relative;overflow:hidden;z-index:-1;display:flex;align-items:center;padding:0.75em 1em;gap:0.5em;background-color:#ffffff;transition-property:background-color;transition-duration:0.2s;transition-timing-function:cubic-bezier(0.7, 0, 0.3, 1)}@media (prefers-reduced-motion: reduce){${t("pn-multiselect")} .pn-multiselect-option-content{transition-duration:0s;transition-delay:0s}}${t("pn-multiselect")} .pn-multiselect-option-text{flex:1;text-overflow:ellipsis;overflow:hidden}${t("pn-multiselect")} .pn-multiselect-option-label{color:#2d2013;font-weight:400}${t("pn-multiselect")} .pn-multiselect-option-helper{color:#5e554a;margin:0}${t("pn-multiselect")} .pn-multiselect-option-checkbox{background-color:#ffffff;flex:0 0 1.5em;width:1.5em;height:1.5em;border:0.0625em solid #969087;border-radius:0.25em;outline:0.2rem solid transparent;outline-offset:0.2rem;transition-property:background-color, border-color, outline-color;transition-duration:0.2s;transition-timing-function:cubic-bezier(0.7, 0, 0.3, 1)}@media (prefers-reduced-motion: reduce){${t("pn-multiselect")} .pn-multiselect-option-checkbox{transition-duration:0s;transition-delay:0s}}${t("pn-multiselect")} .pn-multiselect-option-checkbox svg polyline{stroke:#ffffff;stroke-linecap:round;stroke-dasharray:23;transition-property:stroke-dashoffset;transition-duration:0.2s;transition-timing-function:cubic-bezier(0.7, 0, 0.3, 1)}@media (prefers-reduced-motion: reduce){${t("pn-multiselect")} .pn-multiselect-option-checkbox svg polyline{transition-duration:0s;transition-delay:0s}}${t("pn-multiselect")} .pn-multiselect-option-checkbox svg polyline{transition-delay:0s}${t("pn-multiselect")} .pn-multiselect-option-checkbox svg polyline.pn-multiselect-option-checkbox-checkmark-path{stroke-dashoffset:23}${t("pn-multiselect")} .pn-multiselect-option-checkbox svg polyline.pn-multiselect-option-checkbox-indeterminate-path{stroke-dashoffset:23}`;export{g as pn_multiselect}
@@ -1,5 +0,0 @@
1
- /*!
2
- * Built with Stencil
3
- * By PostNord.
4
- */
5
- import{t as e,r as t,g as a,h as r,a as n}from"./p-DWsprozV.js";import{uuidv4 as o}from"./index.esm.js";const i=class{constructor(e){t(this,e)}id=`pn-textarea-${o()}`;idHelper=`${this.id}-text`;get hostElement(){return a(this)}content;label;value="";helpertext;textareaid=this.id;name;form;rows=2;cols=20;wrap="soft";maxlength;autocomplete="off";spellcheck=!1;placeholder;resize=!1;required=!1;valid=!1;invalid=!1;error;disabled=!1;readonly=!1;componentWillLoad(){this.textareaid!==this.id&&(this.idHelper=`${this.textareaid}-helper`)}setVal(e){this.value=e.target.value}hasError(){return this.invalid||!!this.error}hasMessage(){return!(!this.helpertext?.length&&!this.error?.length)}render(){return r(n,{key:"c568c2ad0a3b3afe84f455684c747d9fcc152ea5"},r("div",{key:"08708e20ab42d72385744f877d0d9a7e2e9a7725",class:"pn-textarea","data-valid":this.valid,"data-error":this.hasError(),"data-resize":this.resize},r("label",{key:"01a8257a0bc3bab14d08c167f833a4aa1d8077bd",class:"pn-textarea-label",htmlFor:this.textareaid},r("span",{key:"627d6e4b22a344372a834e79382146b127c3a495"},this.label),this.maxlength>=1&&r("span",{key:"a33a760b4e1491922fc6a333cdd98fabace1ca1c"},`${this.value?.length||0}/${this.maxlength}`)),r("textarea",{key:"4ea874aac0a2e3a3cfd6850e3fbd8415fbd659d8",class:"pn-textarea-element",id:this.textareaid,name:this.name,rows:this.rows,cols:this.cols,wrap:this.wrap,autocomplete:this.autocomplete,spellcheck:this.spellcheck,placeholder:this.placeholder,maxlength:this.maxlength,required:this.required,disabled:this.disabled,readonly:this.readonly,"aria-describedby":this.hasMessage()?this.idHelper:null,"aria-invalid":this.hasError().toString(),onInput:e=>this.setVal(e),value:this.value}),this.hasMessage()&&r("p",{key:"de47982ee3125cfdb5651ebb50715d03df9459e1",id:this.idHelper,class:"pn-textarea-text",role:this.error?.length?"alert":null},r("span",{key:"dc885dee87a3e715f26fa950dfce7d68131edeae"},this.error||this.helpertext))))}};i.style=`${e("pn-textarea")}{display:inline-flex;flex-direction:column}${e("pn-textarea")} .pn-textarea-label{cursor:pointer;display:flex;justify-content:space-between;align-items:flex-end;font-weight:400;color:#2d2013;margin:0 0 0.25em 0;gap:0.5em;-webkit-tap-highlight-color:transparent;transition-property:color;transition-duration:0.2s;transition-timing-function:cubic-bezier(0.7, 0, 0.3, 1)}@media (prefers-reduced-motion: reduce){${e("pn-textarea")} .pn-textarea-label{transition-duration:0s;transition-delay:0s}}${e("pn-textarea")} .pn-textarea-label>span{font-size:0.875em}${e("pn-textarea")} .pn-textarea-text{color:#5e554a;font-size:0.875em;font-weight:400;margin:0.25em 0 0 0;display:flex;flex-direction:column;gap:0.25em}${e("pn-textarea")} .pn-textarea-text>${e("pn-icon")}{margin-right:0.25em}${e("pn-textarea")} .pn-textarea-element{color:#2d2013;background-color:#ffffff;border:0.0625em solid #969087;border-radius:0.5em;padding:0.75em;font-family:inherit;font-size:1em;font-weight:500;line-height:1.5em;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent}${e("pn-textarea")} .pn-textarea-element:-webkit-autofill,${e("pn-textarea")} .pn-textarea-element:-webkit-autofill:hover,${e("pn-textarea")} .pn-textarea-element:-webkit-autofill:focus,${e("pn-textarea")} .pn-textarea-element:-webkit-autofill:active{-webkit-box-shadow:0 0 0 10em #e0f8ff inset;-webkit-text-fill-color:#2d2013}${e("pn-textarea")} .pn-textarea-element{outline:0.2rem solid transparent;outline-offset:0.2rem}${e("pn-textarea")} .pn-textarea-element:focus-visible{outline-color:#005d92;background-color:#ffffff;border-color:#005d92}${e("pn-textarea")} .pn-textarea-element{transition-property:outline-color, background-color, border-color, color;transition-duration:0.2s;transition-timing-function:cubic-bezier(0.7, 0, 0.3, 1)}@media (prefers-reduced-motion: reduce){${e("pn-textarea")} .pn-textarea-element{transition-duration:0s;transition-delay:0s}}${e("pn-textarea")} .pn-textarea-element::placeholder{color:#5e554a;font-weight:normal}${e("pn-textarea")} .pn-textarea-element:hover{border-color:#005d92}${e("pn-textarea")} .pn-textarea-element:disabled{color:#5e554a;background-color:#f3f2f2;border-color:#f3f2f2}${e("pn-textarea")} .pn-textarea-element::-webkit-scrollbar{background-color:#ffffff;width:0.875em;border-radius:0.5em}${e("pn-textarea")} .pn-textarea-element::-webkit-scrollbar-track{background-color:#ffffff;border-radius:0.5em}${e("pn-textarea")} .pn-textarea-element::-webkit-scrollbar-thumb{cursor:pointer;background-color:#969087;border-radius:1em;border:0.25em solid #ffffff}${e("pn-textarea")} .pn-textarea-element::-webkit-scrollbar-thumb:hover{background-color:#5e554a}${e("pn-textarea")} .pn-textarea-element::-webkit-scrollbar-corner,${e("pn-textarea")} .pn-textarea-element::-webkit-scrollbar-button{display:none}${e("pn-textarea")} .pn-textarea-element{width:100%;resize:none}${e("pn-textarea")} .pn-textarea-element:read-only{border-color:#ffffff}${e("pn-textarea")} .pn-textarea-element::-webkit-resizer{background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%3E%0A%20%20%3Cpath%20d%3D%22M7%2017L17%207M12%2017L17%2012%22%20stroke%3D%22%23005D92%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%2F%3E%0A%3C%2Fsvg%3E");background-repeat:no-repeat;background-position:center}${e("pn-textarea")} .pn-textarea[data-valid]>.pn-textarea-label{color:#005e41}${e("pn-textarea")} .pn-textarea[data-valid]>.pn-textarea-element{border-color:#005e41}${e("pn-textarea")} .pn-textarea[data-valid]>.pn-textarea-element:hover{border-color:#002f24}${e("pn-textarea")} .pn-textarea[data-valid]>.pn-textarea-element:focus-visible{background-color:#ffffff;border-color:#005e41;outline-color:#005e41}${e("pn-textarea")} .pn-textarea[data-error]>.pn-textarea-label{color:#a70707}${e("pn-textarea")} .pn-textarea[data-error]>.pn-textarea-element{border-color:#a70707}${e("pn-textarea")} .pn-textarea[data-error]>.pn-textarea-element:hover{border-color:#500715}${e("pn-textarea")} .pn-textarea[data-error]>.pn-textarea-element:focus-visible{background-color:#ffffff;border-color:#a70707;outline-color:#a70707}${e("pn-textarea")} .pn-textarea[data-error]>.pn-textarea-text[role=alert]{color:#a70707}${e("pn-textarea")} .pn-textarea[data-resize]>.pn-textarea-element{resize:vertical}`;export{i as pn_textarea}