@postnord/pn-marketweb-components 1.0.3 → 1.0.7

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 (229) hide show
  1. package/cjs/convert-57b3dd5e.js +1730 -0
  2. package/cjs/{index-0f43b450.js → index-b58d2618.js} +82 -0
  3. package/cjs/index-f472d191.js +181 -0
  4. package/cjs/loader.cjs.js +2 -2
  5. package/cjs/pn-choice-button_2.cjs.entry.js +78 -0
  6. package/cjs/pn-find-service-and-price-store-7ced0e29.js +21 -0
  7. package/cjs/pn-find-service-and-price.cjs.entry.js +246 -0
  8. package/cjs/pn-language-selector_9.cjs.entry.js +646 -0
  9. package/cjs/pn-mainnav-link.cjs.entry.js +45 -0
  10. package/cjs/pn-mainnav-store-dda9827f.js +18 -0
  11. package/cjs/pn-market-web-components.cjs.js +2 -2
  12. package/cjs/pn-marketweb-sitefooter.cjs.entry.js +145 -0
  13. package/cjs/{pn-siteheader.cjs.entry.js → pn-marketweb-siteheader.cjs.entry.js} +14 -11
  14. package/cjs/pn-product-pricelist-result.cjs.entry.js +34 -0
  15. package/cjs/pn-product-pricelist-store-ffd73312.js +16 -0
  16. package/cjs/pn-product-pricelist.cjs.entry.js +110 -0
  17. package/cjs/pn-product-tile_3.cjs.entry.js +49 -0
  18. package/cjs/pn-site-footer_2.cjs.entry.js +36 -0
  19. package/collection/collection-manifest.json +22 -3
  20. package/collection/components/input/pn-choice-button/choice-button.stories.js +34 -0
  21. package/collection/components/input/pn-choice-button/pn-choice-button.css +66 -0
  22. package/collection/components/input/pn-choice-button/pn-choice-button.js +170 -0
  23. package/collection/components/layout-components/pn-marketweb-sitefooter/pn-marketweb-sitefooter-types.js +10 -0
  24. package/collection/components/layout-components/pn-marketweb-sitefooter/pn-marketweb-sitefooter.css +0 -0
  25. package/collection/components/layout-components/pn-marketweb-sitefooter/pn-marketweb-sitefooter.js +166 -0
  26. package/collection/components/layout-components/pn-marketweb-sitefooter/pn-marketweb-sitefooter.stories.js +54 -0
  27. package/collection/components/layout-components/{pn-siteheader → pn-marketweb-sitefooter}/translations.js +0 -0
  28. package/collection/components/layout-components/pn-marketweb-siteheader/pn-marketweb-siteheader-login.css +34 -0
  29. package/collection/components/layout-components/{pn-siteheader/pn-siteheader-login.js → pn-marketweb-siteheader/pn-marketweb-siteheader-login.js} +6 -6
  30. package/collection/components/layout-components/{pn-siteheader/pn-siteheader-loginmanager.js → pn-marketweb-siteheader/pn-marketweb-siteheader-loginmanager.js} +0 -0
  31. package/collection/components/layout-components/{pn-siteheader/pn-siteheader-search.css → pn-marketweb-siteheader/pn-marketweb-siteheader-search.css} +0 -0
  32. package/collection/components/layout-components/{pn-siteheader/pn-siteheader-search.js → pn-marketweb-siteheader/pn-marketweb-siteheader-search.js} +5 -6
  33. package/collection/components/layout-components/{pn-siteheader/pn-siteheader-types.js → pn-marketweb-siteheader/pn-marketweb-siteheader-types.js} +0 -0
  34. package/collection/components/layout-components/{pn-siteheader/pn-siteheader.css → pn-marketweb-siteheader/pn-marketweb-siteheader.css} +21 -21
  35. package/collection/components/layout-components/{pn-siteheader/pn-siteheader.js → pn-marketweb-siteheader/pn-marketweb-siteheader.js} +13 -10
  36. package/collection/components/layout-components/{pn-siteheader/pn-siteheader.stories.js → pn-marketweb-siteheader/pn-marketweb-siteheader.stories.js} +2 -2
  37. package/collection/components/layout-components/pn-marketweb-siteheader/translations.js +47 -0
  38. package/collection/components/navigation/pn-language-selector/language-selector.stories.js +43 -0
  39. package/collection/components/navigation/pn-language-selector/pn-language-selector-option.css +74 -0
  40. package/collection/components/navigation/pn-language-selector/pn-language-selector-option.js +148 -0
  41. package/collection/components/navigation/pn-language-selector/pn-language-selector-types.js +1 -0
  42. package/collection/components/navigation/pn-language-selector/pn-language-selector.css +32 -0
  43. package/collection/components/navigation/pn-language-selector/pn-language-selector.js +92 -0
  44. package/collection/components/navigation/pn-language-selector/translations.js +17 -0
  45. package/collection/components/navigation/pn-mainnav/main-nav.stories.js +92 -0
  46. package/collection/components/navigation/pn-mainnav/pn-main-nav-mockdata.js +5851 -0
  47. package/collection/components/navigation/pn-mainnav/pn-mainnav-level.css +139 -0
  48. package/collection/components/navigation/pn-mainnav/pn-mainnav-level.js +93 -0
  49. package/collection/components/navigation/pn-mainnav/pn-mainnav-link.css +221 -0
  50. package/collection/components/navigation/pn-mainnav/pn-mainnav-link.js +126 -0
  51. package/collection/components/navigation/pn-mainnav/pn-mainnav-list.css +51 -0
  52. package/collection/components/navigation/pn-mainnav/pn-mainnav-list.js +46 -0
  53. package/collection/components/navigation/pn-mainnav/pn-mainnav-store.js +14 -0
  54. package/collection/components/navigation/pn-mainnav/pn-mainnav.css +100 -0
  55. package/collection/components/navigation/pn-mainnav/pn-mainnav.js +200 -0
  56. package/collection/components/navigation/pn-mainnav/translations.js +32 -0
  57. package/collection/components/navigation/pn-mainnav/types.js +1 -0
  58. package/collection/components/navigation/pn-site-footer/pn-site-footer-col.css +20 -0
  59. package/collection/components/navigation/pn-site-footer/pn-site-footer-col.js +14 -0
  60. package/collection/components/navigation/pn-site-footer/pn-site-footer.css +72 -0
  61. package/collection/components/navigation/pn-site-footer/pn-site-footer.js +50 -0
  62. package/collection/components/navigation/pn-site-footer/site-footer.stories.js +87 -0
  63. package/collection/components/navigation/pn-site-selector/pn-site-selector-i18n.js +18 -0
  64. package/collection/components/navigation/pn-site-selector/pn-site-selector-item.css +62 -0
  65. package/collection/components/navigation/pn-site-selector/pn-site-selector-item.js +103 -0
  66. package/collection/components/navigation/pn-site-selector/pn-site-selector-types.js +1 -0
  67. package/collection/components/navigation/pn-site-selector/pn-site-selector.css +29 -0
  68. package/collection/components/navigation/pn-site-selector/pn-site-selector.js +96 -0
  69. package/collection/components/navigation/pn-site-selector/site-selector.stories.js +35 -0
  70. package/collection/components/widgets/pn-find-service-and-price/data.js +53 -0
  71. package/collection/components/widgets/pn-find-service-and-price/find-service-and-price.stories.js +27 -0
  72. package/collection/components/widgets/pn-find-service-and-price/libs/convertnode.js +58 -0
  73. package/collection/components/widgets/pn-find-service-and-price/pn-find-service-and-price-result.css +0 -0
  74. package/collection/components/widgets/pn-find-service-and-price/pn-find-service-and-price-result.js +101 -0
  75. package/collection/components/widgets/pn-find-service-and-price/pn-find-service-and-price-store.js +18 -0
  76. package/collection/components/widgets/pn-find-service-and-price/pn-find-service-and-price-translations.js +61 -0
  77. package/collection/components/widgets/pn-find-service-and-price/pn-find-service-and-price-types.js +1 -0
  78. package/collection/components/widgets/pn-find-service-and-price/pn-find-service-and-price.css +52 -0
  79. package/collection/components/widgets/pn-find-service-and-price/pn-find-service-and-price.js +229 -0
  80. package/collection/components/widgets/pn-find-service-and-price/runconvert.js +2 -0
  81. package/collection/components/widgets/pn-product-pricelist/data.js +51 -0
  82. package/collection/components/widgets/pn-product-pricelist/libs/convert.js +43 -0
  83. package/collection/components/widgets/pn-product-pricelist/libs/convertnode.js +58 -0
  84. package/collection/components/widgets/pn-product-pricelist/pn-product-pricelist-result.css +0 -0
  85. package/collection/components/widgets/pn-product-pricelist/pn-product-pricelist-result.js +86 -0
  86. package/collection/components/widgets/pn-product-pricelist/pn-product-pricelist-store.js +13 -0
  87. package/collection/components/widgets/pn-product-pricelist/pn-product-pricelist-translations.js +36 -0
  88. package/collection/components/widgets/pn-product-pricelist/pn-product-pricelist-types.js +1 -0
  89. package/collection/components/widgets/pn-product-pricelist/pn-product-pricelist.css +6 -0
  90. package/collection/components/widgets/pn-product-pricelist/pn-product-pricelist.js +157 -0
  91. package/collection/components/widgets/pn-product-pricelist/pn-product-pricelist.stories.js +35 -0
  92. package/collection/components/widgets/pn-product-pricelist/runconvert.js +2 -0
  93. package/collection/components/widgets/pn-product-tile/pn-product-tile-info.css +3 -0
  94. package/collection/components/widgets/pn-product-tile/pn-product-tile-info.js +70 -0
  95. package/collection/components/widgets/pn-product-tile/pn-product-tile-price.css +21 -0
  96. package/collection/components/widgets/pn-product-tile/pn-product-tile-price.js +99 -0
  97. package/collection/components/widgets/pn-product-tile/pn-product-tile.css +48 -0
  98. package/collection/components/widgets/pn-product-tile/pn-product-tile.js +21 -0
  99. package/collection/components/widgets/pn-product-tile/product-tile.stories.js +50 -0
  100. package/collection/globals/shared/productprice/convert.js +43 -0
  101. package/collection/globals/shared/productprice/product-price-types.js +1 -0
  102. package/custom-elements/index.d.ts +126 -12
  103. package/custom-elements/index.js +3042 -27
  104. package/esm/convert-b49a0857.js +1728 -0
  105. package/esm/{index-1e3839a0.js → index-52dc19ca.js} +79 -1
  106. package/esm/index-7c277874.js +179 -0
  107. package/esm/loader.js +2 -2
  108. package/esm/pn-choice-button_2.entry.js +73 -0
  109. package/esm/pn-find-service-and-price-store-0c7083bd.js +19 -0
  110. package/esm/pn-find-service-and-price.entry.js +242 -0
  111. package/esm/pn-language-selector_9.entry.js +634 -0
  112. package/esm/pn-mainnav-link.entry.js +41 -0
  113. package/esm/pn-mainnav-store-a0726338.js +15 -0
  114. package/esm/pn-market-web-components.js +2 -2
  115. package/esm/pn-marketweb-sitefooter.entry.js +141 -0
  116. package/esm/{pn-siteheader.entry.js → pn-marketweb-siteheader.entry.js} +14 -11
  117. package/esm/pn-product-pricelist-result.entry.js +30 -0
  118. package/esm/pn-product-pricelist-store-82211c4a.js +14 -0
  119. package/esm/pn-product-pricelist.entry.js +106 -0
  120. package/esm/pn-product-tile_3.entry.js +43 -0
  121. package/esm/pn-site-footer_2.entry.js +31 -0
  122. package/esm-es5/convert-b49a0857.js +13 -0
  123. package/esm-es5/index-52dc19ca.js +1 -0
  124. package/esm-es5/index-7c277874.js +1 -0
  125. package/esm-es5/loader.js +1 -1
  126. package/esm-es5/pn-choice-button_2.entry.js +1 -0
  127. package/esm-es5/pn-find-service-and-price-store-0c7083bd.js +1 -0
  128. package/esm-es5/pn-find-service-and-price.entry.js +1 -0
  129. package/esm-es5/pn-language-selector_9.entry.js +1 -0
  130. package/esm-es5/pn-mainnav-link.entry.js +1 -0
  131. package/esm-es5/pn-mainnav-store-a0726338.js +1 -0
  132. package/esm-es5/pn-market-web-components.js +1 -1
  133. package/esm-es5/pn-marketweb-sitefooter.entry.js +1 -0
  134. package/esm-es5/pn-marketweb-siteheader.entry.js +1 -0
  135. package/esm-es5/pn-product-pricelist-result.entry.js +1 -0
  136. package/esm-es5/pn-product-pricelist-store-82211c4a.js +1 -0
  137. package/esm-es5/pn-product-pricelist.entry.js +1 -0
  138. package/esm-es5/pn-product-tile_3.entry.js +1 -0
  139. package/esm-es5/pn-site-footer_2.entry.js +1 -0
  140. package/package.json +6 -3
  141. package/pn-market-web-components/p-05d06f7f.system.js +1 -0
  142. package/pn-market-web-components/p-0a756d7d.system.entry.js +1 -0
  143. package/pn-market-web-components/p-1905c548.entry.js +1 -0
  144. package/pn-market-web-components/p-1fe6de09.entry.js +1 -0
  145. package/pn-market-web-components/p-21e0e386.js +13 -0
  146. package/pn-market-web-components/p-23743bec.system.entry.js +1 -0
  147. package/pn-market-web-components/p-23d34c82.system.entry.js +1 -0
  148. package/pn-market-web-components/p-27502f43.system.entry.js +1 -0
  149. package/pn-market-web-components/p-2fa246f1.system.js +1 -0
  150. package/pn-market-web-components/p-3ae74105.system.entry.js +1 -0
  151. package/pn-market-web-components/p-44f74289.system.entry.js +1 -0
  152. package/pn-market-web-components/p-46018354.system.js +1 -0
  153. package/pn-market-web-components/p-4bf9a9ff.js +1 -0
  154. package/pn-market-web-components/p-4f283190.js +1 -0
  155. package/pn-market-web-components/p-5f1ad0b7.entry.js +1 -0
  156. package/pn-market-web-components/p-62700d6e.system.js +1 -0
  157. package/pn-market-web-components/p-64a6c2fb.js +1 -0
  158. package/pn-market-web-components/p-7331d3bb.system.js +1 -0
  159. package/pn-market-web-components/p-91624bd5.system.js +13 -0
  160. package/pn-market-web-components/p-986d3894.entry.js +1 -0
  161. package/pn-market-web-components/p-a5179982.system.entry.js +1 -0
  162. package/pn-market-web-components/p-be245b29.entry.js +1 -0
  163. package/pn-market-web-components/p-bfc523fc.js +1 -0
  164. package/pn-market-web-components/p-c06b37c7.entry.js +1 -0
  165. package/pn-market-web-components/p-c9af6ced.entry.js +1 -0
  166. package/pn-market-web-components/p-ce136600.js +1 -0
  167. package/pn-market-web-components/p-d0e7e65c.system.js +1 -0
  168. package/pn-market-web-components/p-dc5ff15f.entry.js +1 -0
  169. package/pn-market-web-components/p-e367b055.system.entry.js +1 -0
  170. package/pn-market-web-components/p-ea9afb95.system.entry.js +1 -0
  171. package/pn-market-web-components/p-ec95bda3.entry.js +1 -0
  172. package/pn-market-web-components/p-f37be6ee.system.entry.js +1 -0
  173. package/pn-market-web-components/p-fee1d1c9.entry.js +1 -0
  174. package/pn-market-web-components/pn-market-web-components.esm.js +1 -1
  175. package/pn-market-web-components/pn-market-web-components.js +1 -1
  176. package/types/components/input/pn-choice-button/pn-choice-button.d.ts +20 -0
  177. package/types/components/layout-components/pn-marketweb-sitefooter/pn-marketweb-sitefooter-types.d.ts +21 -0
  178. package/types/components/layout-components/pn-marketweb-sitefooter/pn-marketweb-sitefooter.d.ts +23 -0
  179. package/types/components/layout-components/{pn-siteheader → pn-marketweb-sitefooter}/translations.d.ts +0 -0
  180. package/types/components/layout-components/{pn-siteheader/pn-siteheader-login.d.ts → pn-marketweb-siteheader/pn-marketweb-siteheader-login.d.ts} +3 -3
  181. package/types/components/layout-components/{pn-siteheader/pn-siteheader-loginmanager.d.ts → pn-marketweb-siteheader/pn-marketweb-siteheader-loginmanager.d.ts} +0 -0
  182. package/types/components/layout-components/{pn-siteheader/pn-siteheader-search.d.ts → pn-marketweb-siteheader/pn-marketweb-siteheader-search.d.ts} +2 -2
  183. package/types/components/layout-components/{pn-siteheader/pn-siteheader-types.d.ts → pn-marketweb-siteheader/pn-marketweb-siteheader-types.d.ts} +1 -0
  184. package/types/components/layout-components/{pn-siteheader/pn-siteheader.d.ts → pn-marketweb-siteheader/pn-marketweb-siteheader.d.ts} +3 -2
  185. package/types/components/layout-components/pn-marketweb-siteheader/translations.d.ts +47 -0
  186. package/types/components/navigation/pn-language-selector/pn-language-selector-option.d.ts +12 -0
  187. package/types/components/navigation/pn-language-selector/pn-language-selector-types.d.ts +9 -0
  188. package/types/components/navigation/pn-language-selector/pn-language-selector.d.ts +15 -0
  189. package/types/components/navigation/pn-language-selector/translations.d.ts +17 -0
  190. package/types/components/navigation/pn-mainnav/pn-mainnav-level.d.ts +15 -0
  191. package/types/components/navigation/pn-mainnav/pn-mainnav-link.d.ts +19 -0
  192. package/types/components/navigation/pn-mainnav/pn-mainnav-list.d.ts +7 -0
  193. package/types/components/navigation/pn-mainnav/pn-mainnav-store.d.ts +21 -0
  194. package/types/components/navigation/pn-mainnav/pn-mainnav.d.ts +24 -0
  195. package/types/components/navigation/pn-mainnav/translations.d.ts +32 -0
  196. package/types/components/navigation/pn-mainnav/types.d.ts +6 -0
  197. package/types/components/navigation/pn-site-footer/pn-site-footer-col.d.ts +3 -0
  198. package/types/components/navigation/pn-site-footer/pn-site-footer.d.ts +6 -0
  199. package/types/components/navigation/pn-site-selector/pn-site-selector-item.d.ts +7 -0
  200. package/types/components/navigation/pn-site-selector/pn-site-selector-types.d.ts +3 -0
  201. package/types/components/navigation/pn-site-selector/pn-site-selector.d.ts +12 -0
  202. package/types/components/widgets/pn-find-service-and-price/pn-find-service-and-price-result.d.ts +9 -0
  203. package/types/components/widgets/pn-find-service-and-price/pn-find-service-and-price-store.d.ts +29 -0
  204. package/types/components/widgets/pn-find-service-and-price/pn-find-service-and-price-translations.d.ts +61 -0
  205. package/types/components/widgets/pn-find-service-and-price/pn-find-service-and-price-types.d.ts +27 -0
  206. package/types/components/widgets/pn-find-service-and-price/pn-find-service-and-price.d.ts +18 -0
  207. package/types/components/widgets/pn-product-pricelist/pn-product-pricelist-result.d.ts +7 -0
  208. package/types/components/widgets/pn-product-pricelist/pn-product-pricelist-store.d.ts +19 -0
  209. package/types/components/widgets/pn-product-pricelist/pn-product-pricelist-translations.d.ts +36 -0
  210. package/types/components/widgets/pn-product-pricelist/pn-product-pricelist-types.d.ts +7 -0
  211. package/types/components/widgets/pn-product-pricelist/pn-product-pricelist.d.ts +16 -0
  212. package/types/components/widgets/pn-product-tile/pn-product-tile-info.d.ts +6 -0
  213. package/types/components/widgets/pn-product-tile/pn-product-tile-price.d.ts +7 -0
  214. package/types/components/widgets/pn-product-tile/pn-product-tile.d.ts +3 -0
  215. package/types/components.d.ts +486 -28
  216. package/types/globals/shared/productprice/product-price-types.d.ts +19 -0
  217. package/cjs/pn-siteheader-login_2.cjs.entry.js +0 -295
  218. package/collection/components/layout-components/pn-siteheader/pn-siteheader-login.css +0 -34
  219. package/esm/pn-siteheader-login_2.entry.js +0 -290
  220. package/esm-es5/index-1e3839a0.js +0 -1
  221. package/esm-es5/pn-siteheader-login_2.entry.js +0 -1
  222. package/esm-es5/pn-siteheader.entry.js +0 -1
  223. package/pn-market-web-components/p-0e743863.system.js +0 -1
  224. package/pn-market-web-components/p-1e159db8.js +0 -1
  225. package/pn-market-web-components/p-50b6c2c1.system.entry.js +0 -1
  226. package/pn-market-web-components/p-530b52d0.system.js +0 -1
  227. package/pn-market-web-components/p-9a654a14.system.entry.js +0 -1
  228. package/pn-market-web-components/p-a1045531.entry.js +0 -1
  229. package/pn-market-web-components/p-fc344aee.entry.js +0 -1
@@ -1,295 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- const index = require('./index-0f43b450.js');
6
-
7
- class PNLoginManager {
8
- constructor(options = null) {
9
- var _a;
10
- this.eventTarget = (window !== null && window !== void 0 ? window : document === null || document === void 0 ? void 0 : document.body);
11
- this.endpoint = "";
12
- this.storagePrefix = "pn-user";
13
- this.baseUrls = {
14
- at: 'https://atportal.postnord.com/api/unified-login/backend',
15
- prod: 'https://portal.postnord.com/api/unified-login/backend',
16
- };
17
- this.events = {
18
- loginstatechange: "loginstatechange"
19
- };
20
- this.endpoints = {
21
- authorizationEndpoint: `/authorization`,
22
- tokenExchangeEndpoint: `/token`,
23
- userInfoEndpoint: `/user`,
24
- logoutEndpoint: `/logout`,
25
- };
26
- this.keys = {
27
- token: 'token',
28
- user: 'user',
29
- expire: 'expire',
30
- expireDate: 'expiredate'
31
- };
32
- this.store = {
33
- get: (key) => {
34
- const value = window.sessionStorage.getItem(`${this.storagePrefix}-${key}`);
35
- if (!value) {
36
- return value;
37
- }
38
- if (value.indexOf('{') === 0) {
39
- try {
40
- return JSON.parse(value);
41
- }
42
- catch (e) {
43
- }
44
- }
45
- if (value.indexOf(',') !== -1) {
46
- return value.split(',');
47
- }
48
- return value;
49
- },
50
- set: (key, value) => {
51
- if (typeof value === "object" && typeof value.length === "undefined") {
52
- window.sessionStorage.setItem(`${this.storagePrefix}-${key}`, JSON.stringify(value));
53
- return;
54
- }
55
- window.sessionStorage.setItem(`${this.storagePrefix}-${key}`, value);
56
- },
57
- remove: (key) => {
58
- window.sessionStorage.removeItem(`${this.storagePrefix}-${key}`);
59
- },
60
- };
61
- if (!options) {
62
- return;
63
- }
64
- this.eventTarget = (options.eventTarget) ? options.eventTarget : this.eventTarget;
65
- this.endpoint = options.endpoint ? options.endpoint : `${window.location.protocol}//${window.location.host}`;
66
- (_a = this.storagePrefix) !== null && _a !== void 0 ? _a : (this.storagePrefix = options.storagePrefix);
67
- }
68
- init() {
69
- this.checkParameters();
70
- this.checkExpireTime();
71
- if (this.store.get(this.keys.token) && !this.store.get(this.keys.user)) {
72
- this.fetchUserInfo();
73
- }
74
- this.loginStateChange();
75
- }
76
- isLoggedIn() {
77
- const isLoggedIn = (this.store.get(this.keys.token) && this.store.get(this.keys.user)) ? true : false;
78
- return isLoggedIn;
79
- }
80
- getLoginUrl(redirectPage = "") {
81
- const currentPage = window.location.href;
82
- redirectPage = redirectPage ? redirectPage : currentPage;
83
- return `${this.getBaseUrl()}${this.endpoints.authorizationEndpoint}?redirectionUrl=${redirectPage}`;
84
- }
85
- getLogoutUrl(redirectPage = "") {
86
- const currentPage = window.location.href;
87
- redirectPage = redirectPage ? redirectPage : currentPage;
88
- return `${this.getBaseUrl()}${this.endpoints.logoutEndpoint}?redirectionUrl=${redirectPage}&authorization=${this.store.get(this.keys.token)}`;
89
- }
90
- getUserInfo() {
91
- if (this.isLoggedIn()) {
92
- return this.store.get(this.keys.user);
93
- }
94
- }
95
- getEventTarget() {
96
- return this.eventTarget;
97
- }
98
- checkExpireTime() {
99
- const expire = this.store.get(this.keys.expire);
100
- if (!expire) {
101
- return;
102
- }
103
- const now = new Date();
104
- const expireDate = new Date(Math.floor(parseInt(expire, 10) * 1000));
105
- if (now > expireDate) {
106
- console.info('Login time has expired');
107
- this.clearUserData();
108
- this.loginStateChange();
109
- }
110
- }
111
- checkParameters() {
112
- if (!(window === null || window === void 0 ? void 0 : window.location)) {
113
- return;
114
- }
115
- const params = new URLSearchParams(window.location.search);
116
- if (params.get("oneTimeCode")) {
117
- const oneTimeCode = params.get("oneTimeCode");
118
- this.getToken(oneTimeCode);
119
- const currentHref = window.location.href;
120
- const paramPrefix = (currentHref.indexOf('?oneTimeCode') !== -1) ? "?" : "&";
121
- history.replaceState({}, document.querySelector('title').innerText, currentHref.replace(`${paramPrefix}oneTimeCode=${oneTimeCode}`, ''));
122
- }
123
- }
124
- async fetchUserInfo() {
125
- const token = this.store.get(this.keys.token);
126
- const reqConfig = {
127
- method: 'GET',
128
- headers: {
129
- 'Accept': 'application/json',
130
- 'Content-Type': 'application/json',
131
- 'Authorization': token
132
- },
133
- };
134
- const response = await fetch(`${this.getBaseUrl()}${this.endpoints.userInfoEndpoint}`, reqConfig);
135
- const data = await response.json();
136
- if (data) {
137
- try {
138
- const { idToken, expiryTime } = data;
139
- const userInfo = this.parseUserInfo(idToken);
140
- this.store.set(this.keys.user, userInfo);
141
- // 10 Min early expire
142
- this.store.set(this.keys.expire, expiryTime);
143
- this.store.set(this.keys.expireDate, new Date(Math.floor(parseInt(expiryTime, 10) * 1000)));
144
- this.loginStateChange();
145
- }
146
- catch (e) {
147
- console.error('Unable to get user information', e);
148
- }
149
- }
150
- }
151
- clearUserData() {
152
- this.store.remove(this.keys.user);
153
- this.store.remove(this.keys.token);
154
- this.store.remove(this.keys.expire);
155
- this.store.remove(this.keys.expireDate);
156
- }
157
- async getToken(oneTimeCode) {
158
- this.clearUserData();
159
- const response = await fetch(`${this.getBaseUrl()}${this.endpoints.tokenExchangeEndpoint}?oneTimeCode=${oneTimeCode}`);
160
- const { token } = await response.json();
161
- if (typeof token === "string" && token) {
162
- this.store.set(this.keys.token, token);
163
- }
164
- this.fetchUserInfo();
165
- }
166
- loginStateChange() {
167
- if (!this.eventTarget) {
168
- return;
169
- }
170
- this.eventTarget.dispatchEvent(new CustomEvent(this.events.loginstatechange, {
171
- detail: this.isLoggedIn()
172
- }));
173
- }
174
- getBaseUrl() {
175
- const atEnvironments = ["localhost", "integration.", 'local.'];
176
- const useATEnv = atEnvironments.filter(x => this.endpoint.indexOf(x) !== -1).length > 0;
177
- if (useATEnv) {
178
- return this.baseUrls.at;
179
- }
180
- return this.baseUrls.prod;
181
- }
182
- parseUserInfo(idToken) {
183
- var base64Url = idToken.split('.')[1];
184
- var base64 = base64Url.replace(/-/g, '+').replace(/_/g, '/');
185
- var jsonPayload = decodeURIComponent(atob(base64).split('').map(function (c) {
186
- return '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2);
187
- }).join(''));
188
- return JSON.parse(jsonPayload);
189
- }
190
- }
191
-
192
- const pnSiteheaderLoginCss = "pn-siteheader-login{padding:1rem 0;margin-right:1.6rem}pn-siteheader-login strong{padding:0.8rem 1.6rem;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}pn-siteheader-login ul,pn-siteheader-login li{list-style:none;margin:0;padding:0}pn-siteheader-login li{padding:0.8rem 1.6rem}pn-siteheader-login li a{display:block;width:100%}pn-siteheader-login li a[tabindex],pn-siteheader-login li a[style]{text-decoration:none}pn-siteheader-login li pn-button{display:block;width:100%}pn-siteheader-login pn-nav-dropdown{display:none}pn-siteheader-login.hydrated pn-nav-dropdown{display:block}";
193
-
194
- const PnSiteheaderLogin = class {
195
- constructor(hostRef) {
196
- index.registerInstance(this, hostRef);
197
- /** Specifies which endpoint domain we should load from */
198
- this.endpoint = "";
199
- // Login dialog
200
- this.loginDialog = null;
201
- this.loginManager = null;
202
- this.loggedIn = false;
203
- this.toggleButtonText = "";
204
- }
205
- componentWillLoad() {
206
- this.loginManager = new PNLoginManager({ endpoint: this.endpoint, eventTarget: this.hostElement });
207
- this.init();
208
- }
209
- async init() {
210
- this.toggleButtonText = this.loginDialog.loginMenuLinkText;
211
- this.hostElement.addEventListener(this.loginManager.events.loginstatechange, this.onLoginStateChange.bind(this));
212
- this.loginManager.init();
213
- this.setToggleButtonText();
214
- }
215
- setToggleButtonText() {
216
- const userInfo = this.loginManager.getUserInfo();
217
- if (this.loggedIn) {
218
- if (userInfo === null || userInfo === void 0 ? void 0 : userInfo.given_name) {
219
- this.toggleButtonText = userInfo.given_name + ((userInfo === null || userInfo === void 0 ? void 0 : userInfo.family_name) ? ` ${userInfo === null || userInfo === void 0 ? void 0 : userInfo.family_name}` : "");
220
- }
221
- else {
222
- this.toggleButtonText = this.loginDialog.loggedInButtonText;
223
- }
224
- }
225
- else {
226
- this.toggleButtonText = this.loginDialog.loginMenuLinkText;
227
- }
228
- }
229
- onLoginStateChange(e) {
230
- this.loggedIn = e.detail;
231
- this.setToggleButtonText();
232
- }
233
- render() {
234
- var _a, _b, _c;
235
- if (!this.loginDialog) {
236
- return;
237
- }
238
- return (index.h("pn-nav-dropdown", { label: this.toggleButtonText, icon: "user", class: "siteheader-logindialog" }, (!this.loginDialog.overrideLoginMenu) ?
239
- index.h("div", { "data-loggedin": this.loggedIn + '' }, (!this.loggedIn) ?
240
- index.h("div", null, (_a = this.loginDialog.loginTitle) !== null && _a !== void 0 ? _a : index.h("strong", null, this.loginDialog.loginTitle), ((_b = this.loginDialog.loginMenuLinks) === null || _b === void 0 ? void 0 : _b.length) > 0 ?
241
- index.h("ul", null, this.loginDialog.loginMenuLinks.map((link, i) => {
242
- const href = (i === 0 && !link.href) ? this.loginManager.getLoginUrl() : link.href;
243
- return (index.h("li", null, index.h("a", Object.assign({ href: href }, (link.openInNewWindow && { target: '_blank' })), index.h("pn-button", { appearance: (link.primaryLinkApperance ? "dark" : "light") }, link.linkText))));
244
- }))
245
- : (index.h("ul", null, index.h("li", null, index.h("a", { href: this.loginManager.getLoginUrl(this.loginDialog.loginUrl), target: "_top" }, index.h("pn-button", null, this.loginDialog.loginLinkText))), index.h("li", null, index.h("a", { href: this.loginDialog.registerUrl, target: "_top" }, index.h("pn-button", { appearance: "light", variant: "outlined" }, this.loginDialog.createLoginLinkText))))))
246
- :
247
- index.h("div", null, index.h("ul", null, this.loginDialog.loggedInLinks.map((link) => {
248
- const isLogoutLink = link.href.indexOf('logout');
249
- const href = (isLogoutLink) ? this.loginManager.getLogoutUrl(link.href.replace('logout', '')) : link.href;
250
- return (index.h("li", null, index.h("a", Object.assign({ href: href }, (link.openInNewWindow && { target: '_blank' })), index.h("pn-button", { appearance: (link.primaryLinkApperance ? "dark" : "light"), onClick: () => {
251
- if (isLogoutLink) {
252
- this.loginManager.clearUserData();
253
- }
254
- } }, link.linkText))));
255
- }))))
256
- :
257
- index.h("div", null, index.h("ul", null, (_c = this.loginDialog.loginMenuLinks) === null || _c === void 0 ? void 0 : _c.map(link => index.h("li", null, index.h("a", { href: link.href, target: link.openInNewWindow ? "_blank" : "_self", class: "btn btn-link" }, link.linkText)))))));
258
- }
259
- get hostElement() { return index.getElement(this); }
260
- };
261
- PnSiteheaderLogin.style = pnSiteheaderLoginCss;
262
-
263
- const pnSiteheaderSearchCss = ".siteheader-search a{display:none}@media screen and (min-width: 48em){.siteheader-search a{display:block}}.siteheader-search pn-search-field.button-icon pn-button,.siteheader-search pn-button{display:-ms-inline-flexbox;display:inline-flex}.siteheader-search pn-search-field.button-icon pn-button button,.siteheader-search pn-button button{-ms-flex-item-align:center;align-self:center;padding:0;height:2.3em;width:2.3em;line-height:0;min-height:unset;min-width:unset}.siteheader-search pn-search-field.button-icon pn-button pn-icon,.siteheader-search pn-button pn-icon{margin-left:0}.siteheader-search form{-ms-flex-pack:center;justify-content:center;-ms-flex-align:center;align-items:center;width:auto;-ms-flex:none;flex:none;display:-ms-flexbox;display:flex;padding:0;margin:0 0 0 0.4rem;position:relative}@media screen and (min-width: 60em){.siteheader-search form{margin-right:1.6rem}}.siteheader-search form pn-search-field{min-width:13.5em}.siteheader-search form pn-search-field .input-container{-ms-flex-item-align:center;align-self:center}.siteheader-search form pn-search-field input{height:auto;min-height:1em;padding:0.6em 0.75em}";
264
-
265
- const PnSiteheaderSearch = class {
266
- constructor(hostRef) {
267
- index.registerInstance(this, hostRef);
268
- // Display option, show only link
269
- this.showOnlyLink = false;
270
- // Hide search option
271
- this.hideSearch = false;
272
- // Search data
273
- this.search = {};
274
- }
275
- componentWillLoad() {
276
- }
277
- render() {
278
- if (!this.search.formActionUrl || this.hideSearch) {
279
- return;
280
- }
281
- return (index.h("div", { class: "siteheader-search" }, (this.showOnlyLink) ? (index.h("a", { href: this.search.formActionUrl, title: this.i18n.searchlabel }, index.h("pn-button", { appearance: "light", icon: "search" }))) :
282
- (index.h("form", { method: "get", action: this.search.formActionUrl, role: "search" }, index.h("pn-search-field", { label: this.i18n.searchlabel, name: "q", button: "icon", onSearch: () => {
283
- const form = this.hostElement.querySelector('form');
284
- console.log('form', form);
285
- if (form) {
286
- form.submit();
287
- }
288
- }, placeholder: this.i18n.searchplaceholder })))));
289
- }
290
- get hostElement() { return index.getElement(this); }
291
- };
292
- PnSiteheaderSearch.style = pnSiteheaderSearchCss;
293
-
294
- exports.pn_siteheader_login = PnSiteheaderLogin;
295
- exports.pn_siteheader_search = PnSiteheaderSearch;
@@ -1,34 +0,0 @@
1
- pn-siteheader-login {
2
- padding: 1rem 0;
3
- margin-right: 1.6rem;
4
- }
5
- pn-siteheader-login strong {
6
- padding: 0.8rem 1.6rem;
7
- display: flex;
8
- align-items: center;
9
- }
10
- pn-siteheader-login ul, pn-siteheader-login li {
11
- list-style: none;
12
- margin: 0;
13
- padding: 0;
14
- }
15
- pn-siteheader-login li {
16
- padding: 0.8rem 1.6rem;
17
- }
18
- pn-siteheader-login li a {
19
- display: block;
20
- width: 100%;
21
- }
22
- pn-siteheader-login li a[tabindex], pn-siteheader-login li a[style] {
23
- text-decoration: none;
24
- }
25
- pn-siteheader-login li pn-button {
26
- display: block;
27
- width: 100%;
28
- }
29
- pn-siteheader-login pn-nav-dropdown {
30
- display: none;
31
- }
32
- pn-siteheader-login.hydrated pn-nav-dropdown {
33
- display: block;
34
- }
@@ -1,290 +0,0 @@
1
- import { r as registerInstance, h, g as getElement } from './index-1e3839a0.js';
2
-
3
- class PNLoginManager {
4
- constructor(options = null) {
5
- var _a;
6
- this.eventTarget = (window !== null && window !== void 0 ? window : document === null || document === void 0 ? void 0 : document.body);
7
- this.endpoint = "";
8
- this.storagePrefix = "pn-user";
9
- this.baseUrls = {
10
- at: 'https://atportal.postnord.com/api/unified-login/backend',
11
- prod: 'https://portal.postnord.com/api/unified-login/backend',
12
- };
13
- this.events = {
14
- loginstatechange: "loginstatechange"
15
- };
16
- this.endpoints = {
17
- authorizationEndpoint: `/authorization`,
18
- tokenExchangeEndpoint: `/token`,
19
- userInfoEndpoint: `/user`,
20
- logoutEndpoint: `/logout`,
21
- };
22
- this.keys = {
23
- token: 'token',
24
- user: 'user',
25
- expire: 'expire',
26
- expireDate: 'expiredate'
27
- };
28
- this.store = {
29
- get: (key) => {
30
- const value = window.sessionStorage.getItem(`${this.storagePrefix}-${key}`);
31
- if (!value) {
32
- return value;
33
- }
34
- if (value.indexOf('{') === 0) {
35
- try {
36
- return JSON.parse(value);
37
- }
38
- catch (e) {
39
- }
40
- }
41
- if (value.indexOf(',') !== -1) {
42
- return value.split(',');
43
- }
44
- return value;
45
- },
46
- set: (key, value) => {
47
- if (typeof value === "object" && typeof value.length === "undefined") {
48
- window.sessionStorage.setItem(`${this.storagePrefix}-${key}`, JSON.stringify(value));
49
- return;
50
- }
51
- window.sessionStorage.setItem(`${this.storagePrefix}-${key}`, value);
52
- },
53
- remove: (key) => {
54
- window.sessionStorage.removeItem(`${this.storagePrefix}-${key}`);
55
- },
56
- };
57
- if (!options) {
58
- return;
59
- }
60
- this.eventTarget = (options.eventTarget) ? options.eventTarget : this.eventTarget;
61
- this.endpoint = options.endpoint ? options.endpoint : `${window.location.protocol}//${window.location.host}`;
62
- (_a = this.storagePrefix) !== null && _a !== void 0 ? _a : (this.storagePrefix = options.storagePrefix);
63
- }
64
- init() {
65
- this.checkParameters();
66
- this.checkExpireTime();
67
- if (this.store.get(this.keys.token) && !this.store.get(this.keys.user)) {
68
- this.fetchUserInfo();
69
- }
70
- this.loginStateChange();
71
- }
72
- isLoggedIn() {
73
- const isLoggedIn = (this.store.get(this.keys.token) && this.store.get(this.keys.user)) ? true : false;
74
- return isLoggedIn;
75
- }
76
- getLoginUrl(redirectPage = "") {
77
- const currentPage = window.location.href;
78
- redirectPage = redirectPage ? redirectPage : currentPage;
79
- return `${this.getBaseUrl()}${this.endpoints.authorizationEndpoint}?redirectionUrl=${redirectPage}`;
80
- }
81
- getLogoutUrl(redirectPage = "") {
82
- const currentPage = window.location.href;
83
- redirectPage = redirectPage ? redirectPage : currentPage;
84
- return `${this.getBaseUrl()}${this.endpoints.logoutEndpoint}?redirectionUrl=${redirectPage}&authorization=${this.store.get(this.keys.token)}`;
85
- }
86
- getUserInfo() {
87
- if (this.isLoggedIn()) {
88
- return this.store.get(this.keys.user);
89
- }
90
- }
91
- getEventTarget() {
92
- return this.eventTarget;
93
- }
94
- checkExpireTime() {
95
- const expire = this.store.get(this.keys.expire);
96
- if (!expire) {
97
- return;
98
- }
99
- const now = new Date();
100
- const expireDate = new Date(Math.floor(parseInt(expire, 10) * 1000));
101
- if (now > expireDate) {
102
- console.info('Login time has expired');
103
- this.clearUserData();
104
- this.loginStateChange();
105
- }
106
- }
107
- checkParameters() {
108
- if (!(window === null || window === void 0 ? void 0 : window.location)) {
109
- return;
110
- }
111
- const params = new URLSearchParams(window.location.search);
112
- if (params.get("oneTimeCode")) {
113
- const oneTimeCode = params.get("oneTimeCode");
114
- this.getToken(oneTimeCode);
115
- const currentHref = window.location.href;
116
- const paramPrefix = (currentHref.indexOf('?oneTimeCode') !== -1) ? "?" : "&";
117
- history.replaceState({}, document.querySelector('title').innerText, currentHref.replace(`${paramPrefix}oneTimeCode=${oneTimeCode}`, ''));
118
- }
119
- }
120
- async fetchUserInfo() {
121
- const token = this.store.get(this.keys.token);
122
- const reqConfig = {
123
- method: 'GET',
124
- headers: {
125
- 'Accept': 'application/json',
126
- 'Content-Type': 'application/json',
127
- 'Authorization': token
128
- },
129
- };
130
- const response = await fetch(`${this.getBaseUrl()}${this.endpoints.userInfoEndpoint}`, reqConfig);
131
- const data = await response.json();
132
- if (data) {
133
- try {
134
- const { idToken, expiryTime } = data;
135
- const userInfo = this.parseUserInfo(idToken);
136
- this.store.set(this.keys.user, userInfo);
137
- // 10 Min early expire
138
- this.store.set(this.keys.expire, expiryTime);
139
- this.store.set(this.keys.expireDate, new Date(Math.floor(parseInt(expiryTime, 10) * 1000)));
140
- this.loginStateChange();
141
- }
142
- catch (e) {
143
- console.error('Unable to get user information', e);
144
- }
145
- }
146
- }
147
- clearUserData() {
148
- this.store.remove(this.keys.user);
149
- this.store.remove(this.keys.token);
150
- this.store.remove(this.keys.expire);
151
- this.store.remove(this.keys.expireDate);
152
- }
153
- async getToken(oneTimeCode) {
154
- this.clearUserData();
155
- const response = await fetch(`${this.getBaseUrl()}${this.endpoints.tokenExchangeEndpoint}?oneTimeCode=${oneTimeCode}`);
156
- const { token } = await response.json();
157
- if (typeof token === "string" && token) {
158
- this.store.set(this.keys.token, token);
159
- }
160
- this.fetchUserInfo();
161
- }
162
- loginStateChange() {
163
- if (!this.eventTarget) {
164
- return;
165
- }
166
- this.eventTarget.dispatchEvent(new CustomEvent(this.events.loginstatechange, {
167
- detail: this.isLoggedIn()
168
- }));
169
- }
170
- getBaseUrl() {
171
- const atEnvironments = ["localhost", "integration.", 'local.'];
172
- const useATEnv = atEnvironments.filter(x => this.endpoint.indexOf(x) !== -1).length > 0;
173
- if (useATEnv) {
174
- return this.baseUrls.at;
175
- }
176
- return this.baseUrls.prod;
177
- }
178
- parseUserInfo(idToken) {
179
- var base64Url = idToken.split('.')[1];
180
- var base64 = base64Url.replace(/-/g, '+').replace(/_/g, '/');
181
- var jsonPayload = decodeURIComponent(atob(base64).split('').map(function (c) {
182
- return '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2);
183
- }).join(''));
184
- return JSON.parse(jsonPayload);
185
- }
186
- }
187
-
188
- const pnSiteheaderLoginCss = "pn-siteheader-login{padding:1rem 0;margin-right:1.6rem}pn-siteheader-login strong{padding:0.8rem 1.6rem;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}pn-siteheader-login ul,pn-siteheader-login li{list-style:none;margin:0;padding:0}pn-siteheader-login li{padding:0.8rem 1.6rem}pn-siteheader-login li a{display:block;width:100%}pn-siteheader-login li a[tabindex],pn-siteheader-login li a[style]{text-decoration:none}pn-siteheader-login li pn-button{display:block;width:100%}pn-siteheader-login pn-nav-dropdown{display:none}pn-siteheader-login.hydrated pn-nav-dropdown{display:block}";
189
-
190
- const PnSiteheaderLogin = class {
191
- constructor(hostRef) {
192
- registerInstance(this, hostRef);
193
- /** Specifies which endpoint domain we should load from */
194
- this.endpoint = "";
195
- // Login dialog
196
- this.loginDialog = null;
197
- this.loginManager = null;
198
- this.loggedIn = false;
199
- this.toggleButtonText = "";
200
- }
201
- componentWillLoad() {
202
- this.loginManager = new PNLoginManager({ endpoint: this.endpoint, eventTarget: this.hostElement });
203
- this.init();
204
- }
205
- async init() {
206
- this.toggleButtonText = this.loginDialog.loginMenuLinkText;
207
- this.hostElement.addEventListener(this.loginManager.events.loginstatechange, this.onLoginStateChange.bind(this));
208
- this.loginManager.init();
209
- this.setToggleButtonText();
210
- }
211
- setToggleButtonText() {
212
- const userInfo = this.loginManager.getUserInfo();
213
- if (this.loggedIn) {
214
- if (userInfo === null || userInfo === void 0 ? void 0 : userInfo.given_name) {
215
- this.toggleButtonText = userInfo.given_name + ((userInfo === null || userInfo === void 0 ? void 0 : userInfo.family_name) ? ` ${userInfo === null || userInfo === void 0 ? void 0 : userInfo.family_name}` : "");
216
- }
217
- else {
218
- this.toggleButtonText = this.loginDialog.loggedInButtonText;
219
- }
220
- }
221
- else {
222
- this.toggleButtonText = this.loginDialog.loginMenuLinkText;
223
- }
224
- }
225
- onLoginStateChange(e) {
226
- this.loggedIn = e.detail;
227
- this.setToggleButtonText();
228
- }
229
- render() {
230
- var _a, _b, _c;
231
- if (!this.loginDialog) {
232
- return;
233
- }
234
- return (h("pn-nav-dropdown", { label: this.toggleButtonText, icon: "user", class: "siteheader-logindialog" }, (!this.loginDialog.overrideLoginMenu) ?
235
- h("div", { "data-loggedin": this.loggedIn + '' }, (!this.loggedIn) ?
236
- h("div", null, (_a = this.loginDialog.loginTitle) !== null && _a !== void 0 ? _a : h("strong", null, this.loginDialog.loginTitle), ((_b = this.loginDialog.loginMenuLinks) === null || _b === void 0 ? void 0 : _b.length) > 0 ?
237
- h("ul", null, this.loginDialog.loginMenuLinks.map((link, i) => {
238
- const href = (i === 0 && !link.href) ? this.loginManager.getLoginUrl() : link.href;
239
- return (h("li", null, h("a", Object.assign({ href: href }, (link.openInNewWindow && { target: '_blank' })), h("pn-button", { appearance: (link.primaryLinkApperance ? "dark" : "light") }, link.linkText))));
240
- }))
241
- : (h("ul", null, h("li", null, h("a", { href: this.loginManager.getLoginUrl(this.loginDialog.loginUrl), target: "_top" }, h("pn-button", null, this.loginDialog.loginLinkText))), h("li", null, h("a", { href: this.loginDialog.registerUrl, target: "_top" }, h("pn-button", { appearance: "light", variant: "outlined" }, this.loginDialog.createLoginLinkText))))))
242
- :
243
- h("div", null, h("ul", null, this.loginDialog.loggedInLinks.map((link) => {
244
- const isLogoutLink = link.href.indexOf('logout');
245
- const href = (isLogoutLink) ? this.loginManager.getLogoutUrl(link.href.replace('logout', '')) : link.href;
246
- return (h("li", null, h("a", Object.assign({ href: href }, (link.openInNewWindow && { target: '_blank' })), h("pn-button", { appearance: (link.primaryLinkApperance ? "dark" : "light"), onClick: () => {
247
- if (isLogoutLink) {
248
- this.loginManager.clearUserData();
249
- }
250
- } }, link.linkText))));
251
- }))))
252
- :
253
- h("div", null, h("ul", null, (_c = this.loginDialog.loginMenuLinks) === null || _c === void 0 ? void 0 : _c.map(link => h("li", null, h("a", { href: link.href, target: link.openInNewWindow ? "_blank" : "_self", class: "btn btn-link" }, link.linkText)))))));
254
- }
255
- get hostElement() { return getElement(this); }
256
- };
257
- PnSiteheaderLogin.style = pnSiteheaderLoginCss;
258
-
259
- const pnSiteheaderSearchCss = ".siteheader-search a{display:none}@media screen and (min-width: 48em){.siteheader-search a{display:block}}.siteheader-search pn-search-field.button-icon pn-button,.siteheader-search pn-button{display:-ms-inline-flexbox;display:inline-flex}.siteheader-search pn-search-field.button-icon pn-button button,.siteheader-search pn-button button{-ms-flex-item-align:center;align-self:center;padding:0;height:2.3em;width:2.3em;line-height:0;min-height:unset;min-width:unset}.siteheader-search pn-search-field.button-icon pn-button pn-icon,.siteheader-search pn-button pn-icon{margin-left:0}.siteheader-search form{-ms-flex-pack:center;justify-content:center;-ms-flex-align:center;align-items:center;width:auto;-ms-flex:none;flex:none;display:-ms-flexbox;display:flex;padding:0;margin:0 0 0 0.4rem;position:relative}@media screen and (min-width: 60em){.siteheader-search form{margin-right:1.6rem}}.siteheader-search form pn-search-field{min-width:13.5em}.siteheader-search form pn-search-field .input-container{-ms-flex-item-align:center;align-self:center}.siteheader-search form pn-search-field input{height:auto;min-height:1em;padding:0.6em 0.75em}";
260
-
261
- const PnSiteheaderSearch = class {
262
- constructor(hostRef) {
263
- registerInstance(this, hostRef);
264
- // Display option, show only link
265
- this.showOnlyLink = false;
266
- // Hide search option
267
- this.hideSearch = false;
268
- // Search data
269
- this.search = {};
270
- }
271
- componentWillLoad() {
272
- }
273
- render() {
274
- if (!this.search.formActionUrl || this.hideSearch) {
275
- return;
276
- }
277
- return (h("div", { class: "siteheader-search" }, (this.showOnlyLink) ? (h("a", { href: this.search.formActionUrl, title: this.i18n.searchlabel }, h("pn-button", { appearance: "light", icon: "search" }))) :
278
- (h("form", { method: "get", action: this.search.formActionUrl, role: "search" }, h("pn-search-field", { label: this.i18n.searchlabel, name: "q", button: "icon", onSearch: () => {
279
- const form = this.hostElement.querySelector('form');
280
- console.log('form', form);
281
- if (form) {
282
- form.submit();
283
- }
284
- }, placeholder: this.i18n.searchplaceholder })))));
285
- }
286
- get hostElement() { return getElement(this); }
287
- };
288
- PnSiteheaderSearch.style = pnSiteheaderSearchCss;
289
-
290
- export { PnSiteheaderLogin as pn_siteheader_login, PnSiteheaderSearch as pn_siteheader_search };