@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.
- package/cjs/convert-57b3dd5e.js +1730 -0
- package/cjs/{index-0f43b450.js → index-b58d2618.js} +82 -0
- package/cjs/index-f472d191.js +181 -0
- package/cjs/loader.cjs.js +2 -2
- package/cjs/pn-choice-button_2.cjs.entry.js +78 -0
- package/cjs/pn-find-service-and-price-store-7ced0e29.js +21 -0
- package/cjs/pn-find-service-and-price.cjs.entry.js +246 -0
- package/cjs/pn-language-selector_9.cjs.entry.js +646 -0
- package/cjs/pn-mainnav-link.cjs.entry.js +45 -0
- package/cjs/pn-mainnav-store-dda9827f.js +18 -0
- package/cjs/pn-market-web-components.cjs.js +2 -2
- package/cjs/pn-marketweb-sitefooter.cjs.entry.js +145 -0
- package/cjs/{pn-siteheader.cjs.entry.js → pn-marketweb-siteheader.cjs.entry.js} +14 -11
- package/cjs/pn-product-pricelist-result.cjs.entry.js +34 -0
- package/cjs/pn-product-pricelist-store-ffd73312.js +16 -0
- package/cjs/pn-product-pricelist.cjs.entry.js +110 -0
- package/cjs/pn-product-tile_3.cjs.entry.js +49 -0
- package/cjs/pn-site-footer_2.cjs.entry.js +36 -0
- package/collection/collection-manifest.json +22 -3
- package/collection/components/input/pn-choice-button/choice-button.stories.js +34 -0
- package/collection/components/input/pn-choice-button/pn-choice-button.css +66 -0
- package/collection/components/input/pn-choice-button/pn-choice-button.js +170 -0
- package/collection/components/layout-components/pn-marketweb-sitefooter/pn-marketweb-sitefooter-types.js +10 -0
- package/collection/components/layout-components/pn-marketweb-sitefooter/pn-marketweb-sitefooter.css +0 -0
- package/collection/components/layout-components/pn-marketweb-sitefooter/pn-marketweb-sitefooter.js +166 -0
- package/collection/components/layout-components/pn-marketweb-sitefooter/pn-marketweb-sitefooter.stories.js +54 -0
- package/collection/components/layout-components/{pn-siteheader → pn-marketweb-sitefooter}/translations.js +0 -0
- package/collection/components/layout-components/pn-marketweb-siteheader/pn-marketweb-siteheader-login.css +34 -0
- package/collection/components/layout-components/{pn-siteheader/pn-siteheader-login.js → pn-marketweb-siteheader/pn-marketweb-siteheader-login.js} +6 -6
- package/collection/components/layout-components/{pn-siteheader/pn-siteheader-loginmanager.js → pn-marketweb-siteheader/pn-marketweb-siteheader-loginmanager.js} +0 -0
- package/collection/components/layout-components/{pn-siteheader/pn-siteheader-search.css → pn-marketweb-siteheader/pn-marketweb-siteheader-search.css} +0 -0
- package/collection/components/layout-components/{pn-siteheader/pn-siteheader-search.js → pn-marketweb-siteheader/pn-marketweb-siteheader-search.js} +5 -6
- package/collection/components/layout-components/{pn-siteheader/pn-siteheader-types.js → pn-marketweb-siteheader/pn-marketweb-siteheader-types.js} +0 -0
- package/collection/components/layout-components/{pn-siteheader/pn-siteheader.css → pn-marketweb-siteheader/pn-marketweb-siteheader.css} +21 -21
- package/collection/components/layout-components/{pn-siteheader/pn-siteheader.js → pn-marketweb-siteheader/pn-marketweb-siteheader.js} +13 -10
- package/collection/components/layout-components/{pn-siteheader/pn-siteheader.stories.js → pn-marketweb-siteheader/pn-marketweb-siteheader.stories.js} +2 -2
- package/collection/components/layout-components/pn-marketweb-siteheader/translations.js +47 -0
- package/collection/components/navigation/pn-language-selector/language-selector.stories.js +43 -0
- package/collection/components/navigation/pn-language-selector/pn-language-selector-option.css +74 -0
- package/collection/components/navigation/pn-language-selector/pn-language-selector-option.js +148 -0
- package/collection/components/navigation/pn-language-selector/pn-language-selector-types.js +1 -0
- package/collection/components/navigation/pn-language-selector/pn-language-selector.css +32 -0
- package/collection/components/navigation/pn-language-selector/pn-language-selector.js +92 -0
- package/collection/components/navigation/pn-language-selector/translations.js +17 -0
- package/collection/components/navigation/pn-mainnav/main-nav.stories.js +92 -0
- package/collection/components/navigation/pn-mainnav/pn-main-nav-mockdata.js +5851 -0
- package/collection/components/navigation/pn-mainnav/pn-mainnav-level.css +139 -0
- package/collection/components/navigation/pn-mainnav/pn-mainnav-level.js +93 -0
- package/collection/components/navigation/pn-mainnav/pn-mainnav-link.css +221 -0
- package/collection/components/navigation/pn-mainnav/pn-mainnav-link.js +126 -0
- package/collection/components/navigation/pn-mainnav/pn-mainnav-list.css +51 -0
- package/collection/components/navigation/pn-mainnav/pn-mainnav-list.js +46 -0
- package/collection/components/navigation/pn-mainnav/pn-mainnav-store.js +14 -0
- package/collection/components/navigation/pn-mainnav/pn-mainnav.css +100 -0
- package/collection/components/navigation/pn-mainnav/pn-mainnav.js +200 -0
- package/collection/components/navigation/pn-mainnav/translations.js +32 -0
- package/collection/components/navigation/pn-mainnav/types.js +1 -0
- package/collection/components/navigation/pn-site-footer/pn-site-footer-col.css +20 -0
- package/collection/components/navigation/pn-site-footer/pn-site-footer-col.js +14 -0
- package/collection/components/navigation/pn-site-footer/pn-site-footer.css +72 -0
- package/collection/components/navigation/pn-site-footer/pn-site-footer.js +50 -0
- package/collection/components/navigation/pn-site-footer/site-footer.stories.js +87 -0
- package/collection/components/navigation/pn-site-selector/pn-site-selector-i18n.js +18 -0
- package/collection/components/navigation/pn-site-selector/pn-site-selector-item.css +62 -0
- package/collection/components/navigation/pn-site-selector/pn-site-selector-item.js +103 -0
- package/collection/components/navigation/pn-site-selector/pn-site-selector-types.js +1 -0
- package/collection/components/navigation/pn-site-selector/pn-site-selector.css +29 -0
- package/collection/components/navigation/pn-site-selector/pn-site-selector.js +96 -0
- package/collection/components/navigation/pn-site-selector/site-selector.stories.js +35 -0
- package/collection/components/widgets/pn-find-service-and-price/data.js +53 -0
- package/collection/components/widgets/pn-find-service-and-price/find-service-and-price.stories.js +27 -0
- package/collection/components/widgets/pn-find-service-and-price/libs/convertnode.js +58 -0
- package/collection/components/widgets/pn-find-service-and-price/pn-find-service-and-price-result.css +0 -0
- package/collection/components/widgets/pn-find-service-and-price/pn-find-service-and-price-result.js +101 -0
- package/collection/components/widgets/pn-find-service-and-price/pn-find-service-and-price-store.js +18 -0
- package/collection/components/widgets/pn-find-service-and-price/pn-find-service-and-price-translations.js +61 -0
- package/collection/components/widgets/pn-find-service-and-price/pn-find-service-and-price-types.js +1 -0
- package/collection/components/widgets/pn-find-service-and-price/pn-find-service-and-price.css +52 -0
- package/collection/components/widgets/pn-find-service-and-price/pn-find-service-and-price.js +229 -0
- package/collection/components/widgets/pn-find-service-and-price/runconvert.js +2 -0
- package/collection/components/widgets/pn-product-pricelist/data.js +51 -0
- package/collection/components/widgets/pn-product-pricelist/libs/convert.js +43 -0
- package/collection/components/widgets/pn-product-pricelist/libs/convertnode.js +58 -0
- package/collection/components/widgets/pn-product-pricelist/pn-product-pricelist-result.css +0 -0
- package/collection/components/widgets/pn-product-pricelist/pn-product-pricelist-result.js +86 -0
- package/collection/components/widgets/pn-product-pricelist/pn-product-pricelist-store.js +13 -0
- package/collection/components/widgets/pn-product-pricelist/pn-product-pricelist-translations.js +36 -0
- package/collection/components/widgets/pn-product-pricelist/pn-product-pricelist-types.js +1 -0
- package/collection/components/widgets/pn-product-pricelist/pn-product-pricelist.css +6 -0
- package/collection/components/widgets/pn-product-pricelist/pn-product-pricelist.js +157 -0
- package/collection/components/widgets/pn-product-pricelist/pn-product-pricelist.stories.js +35 -0
- package/collection/components/widgets/pn-product-pricelist/runconvert.js +2 -0
- package/collection/components/widgets/pn-product-tile/pn-product-tile-info.css +3 -0
- package/collection/components/widgets/pn-product-tile/pn-product-tile-info.js +70 -0
- package/collection/components/widgets/pn-product-tile/pn-product-tile-price.css +21 -0
- package/collection/components/widgets/pn-product-tile/pn-product-tile-price.js +99 -0
- package/collection/components/widgets/pn-product-tile/pn-product-tile.css +48 -0
- package/collection/components/widgets/pn-product-tile/pn-product-tile.js +21 -0
- package/collection/components/widgets/pn-product-tile/product-tile.stories.js +50 -0
- package/collection/globals/shared/productprice/convert.js +43 -0
- package/collection/globals/shared/productprice/product-price-types.js +1 -0
- package/custom-elements/index.d.ts +126 -12
- package/custom-elements/index.js +3042 -27
- package/esm/convert-b49a0857.js +1728 -0
- package/esm/{index-1e3839a0.js → index-52dc19ca.js} +79 -1
- package/esm/index-7c277874.js +179 -0
- package/esm/loader.js +2 -2
- package/esm/pn-choice-button_2.entry.js +73 -0
- package/esm/pn-find-service-and-price-store-0c7083bd.js +19 -0
- package/esm/pn-find-service-and-price.entry.js +242 -0
- package/esm/pn-language-selector_9.entry.js +634 -0
- package/esm/pn-mainnav-link.entry.js +41 -0
- package/esm/pn-mainnav-store-a0726338.js +15 -0
- package/esm/pn-market-web-components.js +2 -2
- package/esm/pn-marketweb-sitefooter.entry.js +141 -0
- package/esm/{pn-siteheader.entry.js → pn-marketweb-siteheader.entry.js} +14 -11
- package/esm/pn-product-pricelist-result.entry.js +30 -0
- package/esm/pn-product-pricelist-store-82211c4a.js +14 -0
- package/esm/pn-product-pricelist.entry.js +106 -0
- package/esm/pn-product-tile_3.entry.js +43 -0
- package/esm/pn-site-footer_2.entry.js +31 -0
- package/esm-es5/convert-b49a0857.js +13 -0
- package/esm-es5/index-52dc19ca.js +1 -0
- package/esm-es5/index-7c277874.js +1 -0
- package/esm-es5/loader.js +1 -1
- package/esm-es5/pn-choice-button_2.entry.js +1 -0
- package/esm-es5/pn-find-service-and-price-store-0c7083bd.js +1 -0
- package/esm-es5/pn-find-service-and-price.entry.js +1 -0
- package/esm-es5/pn-language-selector_9.entry.js +1 -0
- package/esm-es5/pn-mainnav-link.entry.js +1 -0
- package/esm-es5/pn-mainnav-store-a0726338.js +1 -0
- package/esm-es5/pn-market-web-components.js +1 -1
- package/esm-es5/pn-marketweb-sitefooter.entry.js +1 -0
- package/esm-es5/pn-marketweb-siteheader.entry.js +1 -0
- package/esm-es5/pn-product-pricelist-result.entry.js +1 -0
- package/esm-es5/pn-product-pricelist-store-82211c4a.js +1 -0
- package/esm-es5/pn-product-pricelist.entry.js +1 -0
- package/esm-es5/pn-product-tile_3.entry.js +1 -0
- package/esm-es5/pn-site-footer_2.entry.js +1 -0
- package/package.json +6 -3
- package/pn-market-web-components/p-05d06f7f.system.js +1 -0
- package/pn-market-web-components/p-0a756d7d.system.entry.js +1 -0
- package/pn-market-web-components/p-1905c548.entry.js +1 -0
- package/pn-market-web-components/p-1fe6de09.entry.js +1 -0
- package/pn-market-web-components/p-21e0e386.js +13 -0
- package/pn-market-web-components/p-23743bec.system.entry.js +1 -0
- package/pn-market-web-components/p-23d34c82.system.entry.js +1 -0
- package/pn-market-web-components/p-27502f43.system.entry.js +1 -0
- package/pn-market-web-components/p-2fa246f1.system.js +1 -0
- package/pn-market-web-components/p-3ae74105.system.entry.js +1 -0
- package/pn-market-web-components/p-44f74289.system.entry.js +1 -0
- package/pn-market-web-components/p-46018354.system.js +1 -0
- package/pn-market-web-components/p-4bf9a9ff.js +1 -0
- package/pn-market-web-components/p-4f283190.js +1 -0
- package/pn-market-web-components/p-5f1ad0b7.entry.js +1 -0
- package/pn-market-web-components/p-62700d6e.system.js +1 -0
- package/pn-market-web-components/p-64a6c2fb.js +1 -0
- package/pn-market-web-components/p-7331d3bb.system.js +1 -0
- package/pn-market-web-components/p-91624bd5.system.js +13 -0
- package/pn-market-web-components/p-986d3894.entry.js +1 -0
- package/pn-market-web-components/p-a5179982.system.entry.js +1 -0
- package/pn-market-web-components/p-be245b29.entry.js +1 -0
- package/pn-market-web-components/p-bfc523fc.js +1 -0
- package/pn-market-web-components/p-c06b37c7.entry.js +1 -0
- package/pn-market-web-components/p-c9af6ced.entry.js +1 -0
- package/pn-market-web-components/p-ce136600.js +1 -0
- package/pn-market-web-components/p-d0e7e65c.system.js +1 -0
- package/pn-market-web-components/p-dc5ff15f.entry.js +1 -0
- package/pn-market-web-components/p-e367b055.system.entry.js +1 -0
- package/pn-market-web-components/p-ea9afb95.system.entry.js +1 -0
- package/pn-market-web-components/p-ec95bda3.entry.js +1 -0
- package/pn-market-web-components/p-f37be6ee.system.entry.js +1 -0
- package/pn-market-web-components/p-fee1d1c9.entry.js +1 -0
- package/pn-market-web-components/pn-market-web-components.esm.js +1 -1
- package/pn-market-web-components/pn-market-web-components.js +1 -1
- package/types/components/input/pn-choice-button/pn-choice-button.d.ts +20 -0
- package/types/components/layout-components/pn-marketweb-sitefooter/pn-marketweb-sitefooter-types.d.ts +21 -0
- package/types/components/layout-components/pn-marketweb-sitefooter/pn-marketweb-sitefooter.d.ts +23 -0
- package/types/components/layout-components/{pn-siteheader → pn-marketweb-sitefooter}/translations.d.ts +0 -0
- package/types/components/layout-components/{pn-siteheader/pn-siteheader-login.d.ts → pn-marketweb-siteheader/pn-marketweb-siteheader-login.d.ts} +3 -3
- package/types/components/layout-components/{pn-siteheader/pn-siteheader-loginmanager.d.ts → pn-marketweb-siteheader/pn-marketweb-siteheader-loginmanager.d.ts} +0 -0
- package/types/components/layout-components/{pn-siteheader/pn-siteheader-search.d.ts → pn-marketweb-siteheader/pn-marketweb-siteheader-search.d.ts} +2 -2
- package/types/components/layout-components/{pn-siteheader/pn-siteheader-types.d.ts → pn-marketweb-siteheader/pn-marketweb-siteheader-types.d.ts} +1 -0
- package/types/components/layout-components/{pn-siteheader/pn-siteheader.d.ts → pn-marketweb-siteheader/pn-marketweb-siteheader.d.ts} +3 -2
- package/types/components/layout-components/pn-marketweb-siteheader/translations.d.ts +47 -0
- package/types/components/navigation/pn-language-selector/pn-language-selector-option.d.ts +12 -0
- package/types/components/navigation/pn-language-selector/pn-language-selector-types.d.ts +9 -0
- package/types/components/navigation/pn-language-selector/pn-language-selector.d.ts +15 -0
- package/types/components/navigation/pn-language-selector/translations.d.ts +17 -0
- package/types/components/navigation/pn-mainnav/pn-mainnav-level.d.ts +15 -0
- package/types/components/navigation/pn-mainnav/pn-mainnav-link.d.ts +19 -0
- package/types/components/navigation/pn-mainnav/pn-mainnav-list.d.ts +7 -0
- package/types/components/navigation/pn-mainnav/pn-mainnav-store.d.ts +21 -0
- package/types/components/navigation/pn-mainnav/pn-mainnav.d.ts +24 -0
- package/types/components/navigation/pn-mainnav/translations.d.ts +32 -0
- package/types/components/navigation/pn-mainnav/types.d.ts +6 -0
- package/types/components/navigation/pn-site-footer/pn-site-footer-col.d.ts +3 -0
- package/types/components/navigation/pn-site-footer/pn-site-footer.d.ts +6 -0
- package/types/components/navigation/pn-site-selector/pn-site-selector-item.d.ts +7 -0
- package/types/components/navigation/pn-site-selector/pn-site-selector-types.d.ts +3 -0
- package/types/components/navigation/pn-site-selector/pn-site-selector.d.ts +12 -0
- package/types/components/widgets/pn-find-service-and-price/pn-find-service-and-price-result.d.ts +9 -0
- package/types/components/widgets/pn-find-service-and-price/pn-find-service-and-price-store.d.ts +29 -0
- package/types/components/widgets/pn-find-service-and-price/pn-find-service-and-price-translations.d.ts +61 -0
- package/types/components/widgets/pn-find-service-and-price/pn-find-service-and-price-types.d.ts +27 -0
- package/types/components/widgets/pn-find-service-and-price/pn-find-service-and-price.d.ts +18 -0
- package/types/components/widgets/pn-product-pricelist/pn-product-pricelist-result.d.ts +7 -0
- package/types/components/widgets/pn-product-pricelist/pn-product-pricelist-store.d.ts +19 -0
- package/types/components/widgets/pn-product-pricelist/pn-product-pricelist-translations.d.ts +36 -0
- package/types/components/widgets/pn-product-pricelist/pn-product-pricelist-types.d.ts +7 -0
- package/types/components/widgets/pn-product-pricelist/pn-product-pricelist.d.ts +16 -0
- package/types/components/widgets/pn-product-tile/pn-product-tile-info.d.ts +6 -0
- package/types/components/widgets/pn-product-tile/pn-product-tile-price.d.ts +7 -0
- package/types/components/widgets/pn-product-tile/pn-product-tile.d.ts +3 -0
- package/types/components.d.ts +486 -28
- package/types/globals/shared/productprice/product-price-types.d.ts +19 -0
- package/cjs/pn-siteheader-login_2.cjs.entry.js +0 -295
- package/collection/components/layout-components/pn-siteheader/pn-siteheader-login.css +0 -34
- package/esm/pn-siteheader-login_2.entry.js +0 -290
- package/esm-es5/index-1e3839a0.js +0 -1
- package/esm-es5/pn-siteheader-login_2.entry.js +0 -1
- package/esm-es5/pn-siteheader.entry.js +0 -1
- package/pn-market-web-components/p-0e743863.system.js +0 -1
- package/pn-market-web-components/p-1e159db8.js +0 -1
- package/pn-market-web-components/p-50b6c2c1.system.entry.js +0 -1
- package/pn-market-web-components/p-530b52d0.system.js +0 -1
- package/pn-market-web-components/p-9a654a14.system.entry.js +0 -1
- package/pn-market-web-components/p-a1045531.entry.js +0 -1
- package/pn-market-web-components/p-fc344aee.entry.js +0 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
pn-siteheader {
|
|
1
|
+
pn-marketweb-siteheader {
|
|
2
2
|
display: block;
|
|
3
3
|
}
|
|
4
|
-
pn-siteheader header {
|
|
4
|
+
pn-marketweb-siteheader header {
|
|
5
5
|
position: relative;
|
|
6
6
|
z-index: 1000;
|
|
7
7
|
display: flex;
|
|
@@ -11,12 +11,12 @@ pn-siteheader header {
|
|
|
11
11
|
justify-content: space-between;
|
|
12
12
|
}
|
|
13
13
|
@media screen and (min-width: 48em) {
|
|
14
|
-
pn-siteheader header {
|
|
14
|
+
pn-marketweb-siteheader header {
|
|
15
15
|
flex-direction: column;
|
|
16
16
|
justify-content: initial;
|
|
17
17
|
}
|
|
18
18
|
}
|
|
19
|
-
pn-siteheader .siteheader-row {
|
|
19
|
+
pn-marketweb-siteheader .siteheader-row {
|
|
20
20
|
display: flex;
|
|
21
21
|
flex-flow: row;
|
|
22
22
|
align-items: center;
|
|
@@ -25,56 +25,56 @@ pn-siteheader .siteheader-row {
|
|
|
25
25
|
background: #FFFFFF;
|
|
26
26
|
min-height: 2em;
|
|
27
27
|
}
|
|
28
|
-
pn-siteheader .siteheader-row:not(:last-child) {
|
|
28
|
+
pn-marketweb-siteheader .siteheader-row:not(:last-child) {
|
|
29
29
|
border-bottom: 0.1rem solid #F3F2F2;
|
|
30
30
|
}
|
|
31
31
|
@media screen and (min-width: 48em) {
|
|
32
|
-
pn-siteheader .siteheader-row {
|
|
32
|
+
pn-marketweb-siteheader .siteheader-row {
|
|
33
33
|
justify-content: space-between;
|
|
34
34
|
min-height: 3.2em;
|
|
35
35
|
}
|
|
36
36
|
}
|
|
37
|
-
pn-siteheader .siteheader-topright {
|
|
37
|
+
pn-marketweb-siteheader .siteheader-topright {
|
|
38
38
|
display: flex;
|
|
39
39
|
flex-direction: row;
|
|
40
40
|
}
|
|
41
|
-
pn-siteheader .siteheader-logocontainer {
|
|
41
|
+
pn-marketweb-siteheader .siteheader-logocontainer {
|
|
42
42
|
display: flex;
|
|
43
43
|
align-items: center;
|
|
44
44
|
position: relative;
|
|
45
45
|
min-height: 3em;
|
|
46
46
|
}
|
|
47
47
|
@media screen and (min-width: 48em) {
|
|
48
|
-
pn-siteheader .siteheader-logocontainer {
|
|
48
|
+
pn-marketweb-siteheader .siteheader-logocontainer {
|
|
49
49
|
position: absolute;
|
|
50
50
|
left: 50%;
|
|
51
51
|
transform: translateX(-50%);
|
|
52
52
|
}
|
|
53
53
|
}
|
|
54
|
-
pn-siteheader .siteheader-logolink {
|
|
54
|
+
pn-marketweb-siteheader .siteheader-logolink {
|
|
55
55
|
height: 100%;
|
|
56
56
|
max-height: 6.4rem;
|
|
57
57
|
display: flex;
|
|
58
58
|
align-items: center;
|
|
59
59
|
}
|
|
60
|
-
pn-siteheader .siteheader-logolink:hover, pn-siteheader .siteheader-logolink:focus, pn-siteheader .siteheader-logolink:active {
|
|
60
|
+
pn-marketweb-siteheader .siteheader-logolink:hover, pn-marketweb-siteheader .siteheader-logolink:focus, pn-marketweb-siteheader .siteheader-logolink:active {
|
|
61
61
|
box-shadow: none;
|
|
62
62
|
}
|
|
63
|
-
pn-siteheader .siteheader-logo {
|
|
63
|
+
pn-marketweb-siteheader .siteheader-logo {
|
|
64
64
|
height: 2.4rem;
|
|
65
65
|
}
|
|
66
|
-
pn-siteheader .siteheader-row > pn-siteheader-search {
|
|
66
|
+
pn-marketweb-siteheader .siteheader-row > pn-marketweb-siteheader-search {
|
|
67
67
|
display: none;
|
|
68
68
|
}
|
|
69
69
|
@media screen and (min-width: 48em) {
|
|
70
|
-
pn-siteheader .siteheader-row > pn-siteheader-search {
|
|
70
|
+
pn-marketweb-siteheader .siteheader-row > pn-marketweb-siteheader-search {
|
|
71
71
|
display: block;
|
|
72
72
|
}
|
|
73
73
|
}
|
|
74
|
-
pn-siteheader pn-spinner {
|
|
74
|
+
pn-marketweb-siteheader pn-spinner {
|
|
75
75
|
display: none;
|
|
76
76
|
}
|
|
77
|
-
pn-siteheader pn-nav-dropdown:not(.hydrated) .nav-dropdown-content-container {
|
|
77
|
+
pn-marketweb-siteheader pn-nav-dropdown:not(.hydrated) .nav-dropdown-content-container {
|
|
78
78
|
display: none;
|
|
79
79
|
}
|
|
80
80
|
|
|
@@ -107,22 +107,22 @@ pn-siteheader pn-nav-dropdown:not(.hydrated) .nav-dropdown-content-container {
|
|
|
107
107
|
margin-right: 1.6rem;
|
|
108
108
|
}
|
|
109
109
|
}
|
|
110
|
-
.siteheader-topright pn-siteheader-login {
|
|
110
|
+
.siteheader-topright pn-marketweb-siteheader-login {
|
|
111
111
|
display: none;
|
|
112
112
|
}
|
|
113
113
|
@media screen and (min-width: 48em) {
|
|
114
|
-
.siteheader-topright pn-siteheader-login {
|
|
114
|
+
.siteheader-topright pn-marketweb-siteheader-login {
|
|
115
115
|
display: block;
|
|
116
116
|
}
|
|
117
117
|
}
|
|
118
|
-
.siteheader-topright pn-siteheader-login .pn-nav-dropdown-label {
|
|
118
|
+
.siteheader-topright pn-marketweb-siteheader-login .pn-nav-dropdown-label {
|
|
119
119
|
font-size: 0;
|
|
120
120
|
}
|
|
121
|
-
.siteheader-topright pn-siteheader-login .pn-nav-dropdown-label pn-icon {
|
|
121
|
+
.siteheader-topright pn-marketweb-siteheader-login .pn-nav-dropdown-label pn-icon {
|
|
122
122
|
font-size: initial;
|
|
123
123
|
}
|
|
124
124
|
@media screen and (min-width: 60em) {
|
|
125
|
-
.siteheader-topright pn-siteheader-login .pn-nav-dropdown-label {
|
|
125
|
+
.siteheader-topright pn-marketweb-siteheader-login .pn-nav-dropdown-label {
|
|
126
126
|
font-size: initial;
|
|
127
127
|
}
|
|
128
128
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Component, Prop, h, State, Element, Listen } from "@stencil/core";
|
|
2
2
|
import { translations } from "./translations";
|
|
3
|
-
export class
|
|
3
|
+
export class PnMarketwebSiteheader {
|
|
4
4
|
constructor() {
|
|
5
5
|
this.endpointPath = "/api/navigation/header";
|
|
6
6
|
/** Specifies which market we want to show (se,dk,fi,no,com) */
|
|
@@ -87,6 +87,9 @@ export class PnSiteheader {
|
|
|
87
87
|
this.gotData = true;
|
|
88
88
|
this.fetchingData = true;
|
|
89
89
|
}
|
|
90
|
+
promotedItemId(item) {
|
|
91
|
+
return "promo-" + item.linkText.replace(/[^A-Za-z0-9.\\\/]/igm, "");
|
|
92
|
+
}
|
|
90
93
|
handleResize() {
|
|
91
94
|
requestAnimationFrame(() => {
|
|
92
95
|
this.checkMenuOverflow();
|
|
@@ -129,7 +132,7 @@ export class PnSiteheader {
|
|
|
129
132
|
h("path", { d: "M108.84,13.35c0,6.34-5.17,9-10,9S89,19.76,89,13.63c0-6.28,5.08-9,10-9S108.84,7.25,108.84,13.35Zm-6.56.18a3.4,3.4,0,1,0-6.8,0,3.29,3.29,0,0,0,3.42,3.41A3.24,3.24,0,0,0,102.28,13.54Zm-83,0c0,4.83-3.32,8.82-8.49,8.82a6.54,6.54,0,0,1-4.65-1.57v5.86H0V5.16H6.17V6.8a6.43,6.43,0,0,1,5.11-2.18C16.41,4.62,19.31,8.58,19.31,13.54Zm-6.53,0A3.27,3.27,0,0,0,9.4,10,3.28,3.28,0,0,0,6,13.54,3.29,3.29,0,0,0,9.4,16.95,3.24,3.24,0,0,0,12.78,13.54Zm103.69,0.27c0-2.54,1.54-3.32,3.6-3.32a6.56,6.56,0,0,1,2.08.3L122.3,5.1a3.92,3.92,0,0,0-1.45-.18c-3.45,0-4.38,2.18-4.38,2.18V5.16H110.3V21.84h6.17v-8ZM141.73,0V21.84h-6.16V20.21a6.43,6.43,0,0,1-5.11,2.18c-5.14,0-8-4-8-8.91s3.32-8.82,8.49-8.82a6.54,6.54,0,0,1,4.65,1.57v-5Zm-6,13.48a3.28,3.28,0,0,0-3.41-3.41A3.24,3.24,0,0,0,129,13.47,3.4,3.4,0,1,0,135.75,13.47ZM81.35,4.62c-3.6,0-4.9,2.18-4.9,2.18V5.16H70.29V21.84h6.16V13.29c0-2.11.79-3.08,2.69-3.08s2.18,1.57,2.18,3.57v8.07h6.22V11.6C87.55,7,85.34,4.62,81.35,4.62ZM64.07,1.42H57.9V21.84h6.16V10.36H67l2.81-5.2H64.07V1.42ZM50.26,11.21c-2-.3-2.87-0.3-2.87-1.09s0.81-.94,2.42-0.94a16.15,16.15,0,0,1,5.11.91L56,5.41a24.56,24.56,0,0,0-6.13-.75c-5.89,0-9,2.27-9,5.89,0,2.81,1.66,4.47,6.53,5.11,2.06,0.27,2.81.39,2.81,1.15s-0.82,1-2.24,1a16.67,16.67,0,0,1-6-1.3L40.77,21.3a22.14,22.14,0,0,0,6.68,1c6.35,0,9.28-2.24,9.28-5.89C56.72,13.54,55.15,12,50.26,11.21ZM40.19,13.35c0,6.34-5.17,9-10,9s-9.82-2.6-9.82-8.73c0-6.28,5.08-9,10-9S40.19,7.25,40.19,13.35Zm-6.56.18a3.4,3.4,0,1,0-6.8,0,3.28,3.28,0,0,0,3.41,3.41A3.24,3.24,0,0,0,33.63,13.54Z", fill: "#00A0D6", transform: "translate(0 0)" })))),
|
|
130
133
|
h("div", { class: "siteheader-topright" },
|
|
131
134
|
h("slot", { name: "toprightstart" }),
|
|
132
|
-
(this.gotData && this.loginDialog && !this.hideLogin) && (h("pn-siteheader-login", { loginDialog: this.loginDialog, endpoint: this.endpoint, i18n: this.i18n })),
|
|
135
|
+
(this.gotData && this.loginDialog && !this.hideLogin) && (h("pn-marketweb-siteheader-login", { loginDialog: this.loginDialog, endpoint: this.endpoint, i18n: this.i18n })),
|
|
133
136
|
(this.gotData && ((_e = this.languageSelector) === null || _e === void 0 ? void 0 : _e.languages)) && !this.hideLanguageSelector &&
|
|
134
137
|
h("pn-language-selector", { value: this.language }, this.languageSelector.languages.map(language => h("pn-language-selector-option", { name: language.nativeName, code: language.twoLetterISOLanguageName, selected: language.isCurrent, url: this.getLanguageVersionUrl(language) }))),
|
|
135
138
|
h("slot", { name: "toprightend" }))),
|
|
@@ -139,18 +142,18 @@ export class PnSiteheader {
|
|
|
139
142
|
h("pn-mainnav-level", null,
|
|
140
143
|
h("pn-mainnav-list", null, this.menuItems.map((item) => {
|
|
141
144
|
var _a, _b;
|
|
142
|
-
return (h("pn-mainnav-link", { name: item.name, href: item.href, itemid: item.id, target: (_a = item.linkTarget) !== null && _a !== void 0 ? _a : "_self" }, ((item.promotedMenuItems && item.promotedMenuItems.length > 0) || (item.children && item.children.length > 0)) &&
|
|
145
|
+
return (h("pn-mainnav-link", { name: item.name, href: item.href, itemid: item.id, target: (_a = item.linkTarget) !== null && _a !== void 0 ? _a : "_self", linkid: item.trackingId }, ((item.promotedMenuItems && item.promotedMenuItems.length > 0) || (item.children && item.children.length > 0)) &&
|
|
143
146
|
h("pn-mainnav-level", null,
|
|
144
147
|
item.children.length > 0 &&
|
|
145
148
|
h("pn-mainnav-list", { heading: ((_b = item.navigationHeading) !== null && _b !== void 0 ? _b : "") }, item.children.map((childitem) => {
|
|
146
149
|
var _a;
|
|
147
|
-
return (h("pn-mainnav-link", { name: childitem.name, href: childitem.href, target: (_a = childitem.linkTarget) !== null && _a !== void 0 ? _a : "_self" }));
|
|
150
|
+
return (h("pn-mainnav-link", { name: childitem.name, href: childitem.href, target: (_a = childitem.linkTarget) !== null && _a !== void 0 ? _a : "_self", linkid: childitem.trackingId }));
|
|
148
151
|
})),
|
|
149
152
|
(item.promotedMenuItems && item.promotedMenuItems.length > 0) &&
|
|
150
|
-
h("pn-mainnav-list", { heading: item.promotedMenuItemsHeader }, item.promotedMenuItems.map((childitem) => (h("pn-mainnav-link", { href: childitem.href, name: childitem.linkText, target: childitem.openInNewWindow ? "_blank" : "_self" })))))));
|
|
153
|
+
h("pn-mainnav-list", { heading: item.promotedMenuItemsHeader }, item.promotedMenuItems.map((childitem) => (h("pn-mainnav-link", { href: childitem.href, name: childitem.linkText, target: childitem.openInNewWindow ? "_blank" : "_self", linkid: this.promotedItemId(childitem) })))))));
|
|
151
154
|
})),
|
|
152
155
|
h("div", { slot: "footer", class: "siteheader-menu-footer" },
|
|
153
|
-
(this.gotData && this.loginDialog && !this.hideLogin) && (h("pn-siteheader-login", { loginDialog: this.loginDialog, endpoint: this.endpoint, i18n: this.i18n })),
|
|
156
|
+
(this.gotData && this.loginDialog && !this.hideLogin) && (h("pn-marketweb-siteheader-login", { loginDialog: this.loginDialog, endpoint: this.endpoint, i18n: this.i18n })),
|
|
154
157
|
(this.gotData && ((_f = this.languageSelector) === null || _f === void 0 ? void 0 : _f.languages)) && !this.hideLanguageSelector &&
|
|
155
158
|
h("pn-language-selector", { value: this.language }, this.languageSelector.languages.map(language => h("pn-language-selector-option", { name: language.nativeName, code: language.twoLetterISOLanguageName, selected: language.isCurrent, url: this.getLanguageVersionUrl(language) }))),
|
|
156
159
|
!this.hideSiteSelector &&
|
|
@@ -158,14 +161,14 @@ export class PnSiteheader {
|
|
|
158
161
|
(this.gotData && ((_g = this.siteSelector) === null || _g === void 0 ? void 0 : _g.currentSiteTitle)) &&
|
|
159
162
|
h("pn-site-selector-item", { heading: this.siteSelector.currentSiteTitle, description: this.siteSelector.currentSiteDescription }),
|
|
160
163
|
(this.gotData && ((_h = this.siteSelector) === null || _h === void 0 ? void 0 : _h.siteSelections)) && this.siteSelector.siteSelections.map((site) => h("pn-site-selector-item", { heading: site.linkText, description: site.linkDescription, url: site.pageLink, newwindow: site.openInNewWindow }))))))),
|
|
161
|
-
h("pn-siteheader-search", { search: this.search, "hide-search": this.hideSearch, "show-only-link": this.minimizeSearch, i18n: this.i18n }))));
|
|
164
|
+
h("pn-marketweb-siteheader-search", { search: this.search, "hide-search": this.hideSearch, "show-only-link": this.minimizeSearch, i18n: this.i18n }))));
|
|
162
165
|
}
|
|
163
|
-
static get is() { return "pn-siteheader"; }
|
|
166
|
+
static get is() { return "pn-marketweb-siteheader"; }
|
|
164
167
|
static get originalStyleUrls() { return {
|
|
165
|
-
"$": ["pn-siteheader.scss"]
|
|
168
|
+
"$": ["pn-marketweb-siteheader.scss"]
|
|
166
169
|
}; }
|
|
167
170
|
static get styleUrls() { return {
|
|
168
|
-
"$": ["pn-siteheader.css"]
|
|
171
|
+
"$": ["pn-marketweb-siteheader.css"]
|
|
169
172
|
}; }
|
|
170
173
|
static get properties() { return {
|
|
171
174
|
"market": {
|
|
@@ -39,7 +39,7 @@ export default {
|
|
|
39
39
|
};
|
|
40
40
|
|
|
41
41
|
const Template = ({ ...args }) => {
|
|
42
|
-
return `<pn-siteheader
|
|
42
|
+
return `<pn-marketweb-siteheader
|
|
43
43
|
market="${ args.market }"
|
|
44
44
|
language="${ args.language }"
|
|
45
45
|
endpoint="${ args.endpoint }"
|
|
@@ -47,7 +47,7 @@ const Template = ({ ...args }) => {
|
|
|
47
47
|
hide-language-selector="false"
|
|
48
48
|
hide-search="false"
|
|
49
49
|
hide-login="false">
|
|
50
|
-
</pn-siteheader>`;
|
|
50
|
+
</pn-marketweb-siteheader>`;
|
|
51
51
|
};
|
|
52
52
|
|
|
53
53
|
export const Primary = Template.bind({});
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
export const translations = {
|
|
2
|
+
'sv': {
|
|
3
|
+
"searchlabel": "Sök",
|
|
4
|
+
"searchplaceholder": "Vad letar du efter?",
|
|
5
|
+
"searchbuttontext": "Sök",
|
|
6
|
+
"menuHomeButton": "Hem",
|
|
7
|
+
"menuGoBackButton": "Gå tillbaka",
|
|
8
|
+
"mainMenuButton": "Meny",
|
|
9
|
+
"menuStartButton": "Start"
|
|
10
|
+
},
|
|
11
|
+
'en': {
|
|
12
|
+
"searchlabel": "Search",
|
|
13
|
+
"searchplaceholder": "Search",
|
|
14
|
+
"searchbuttontext": "Search",
|
|
15
|
+
"menuHomeButton": "Home",
|
|
16
|
+
"menuGoBackButton": "Go back",
|
|
17
|
+
"mainMenuButton": "Menu",
|
|
18
|
+
"menuStartButton": "Start"
|
|
19
|
+
},
|
|
20
|
+
'da': {
|
|
21
|
+
"searchlabel": "Søg",
|
|
22
|
+
"searchplaceholder": "Søg",
|
|
23
|
+
"searchbuttontext": "Søg",
|
|
24
|
+
"menuHomeButton": "Hjem",
|
|
25
|
+
"menuGoBackButton": "Gå tilbage",
|
|
26
|
+
"mainMenuButton": "Menu",
|
|
27
|
+
"menuStartButton": "Start"
|
|
28
|
+
},
|
|
29
|
+
'no': {
|
|
30
|
+
"searchlabel": "Søk",
|
|
31
|
+
"searchplaceholder": "Søk",
|
|
32
|
+
"searchbuttontext": "Søk",
|
|
33
|
+
"menuHomeButton": "Hjem",
|
|
34
|
+
"menuGoBackButton": "Gå tilbake",
|
|
35
|
+
"mainMenuButton": "Meny",
|
|
36
|
+
"menuStartButton": "Start"
|
|
37
|
+
},
|
|
38
|
+
'fi': {
|
|
39
|
+
"searchlabel": "Hae",
|
|
40
|
+
"searchplaceholder": "Hae",
|
|
41
|
+
"searchbuttontext": "Hae",
|
|
42
|
+
"menuHomeButton": "Koti",
|
|
43
|
+
"menuGoBackButton": "Mene takaisin",
|
|
44
|
+
"mainMenuButton": "Valikko",
|
|
45
|
+
"menuStartButton": "Alkaa"
|
|
46
|
+
}
|
|
47
|
+
};
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
|
|
2
|
+
import readme from "./readme.md";
|
|
3
|
+
|
|
4
|
+
export default {
|
|
5
|
+
title: "Navigation/Language selector",
|
|
6
|
+
parameters: {
|
|
7
|
+
notes: readme
|
|
8
|
+
}
|
|
9
|
+
};
|
|
10
|
+
|
|
11
|
+
// export const regular = () => {
|
|
12
|
+
// // Storybook Knobs ------------------------------------------//
|
|
13
|
+
// const language = select("Language", {
|
|
14
|
+
// 'Enlish':'en',
|
|
15
|
+
// 'Swedish': 'sv',
|
|
16
|
+
// 'Danish': 'da',
|
|
17
|
+
// 'Finnish': 'fi',
|
|
18
|
+
// 'Norwegian': 'no'
|
|
19
|
+
// }, 'sv');
|
|
20
|
+
|
|
21
|
+
// --------------------------------------------------------- //
|
|
22
|
+
|
|
23
|
+
const Template = ({ ...args }) => {
|
|
24
|
+
return `
|
|
25
|
+
<div style="display:flex; justify-content: space-between;">
|
|
26
|
+
<pn-language-selector value=${args.language}>
|
|
27
|
+
<pn-language-selector-option name="Example language 1" code="langcode1" selected="false" url="test"></pn-language-selector-option>
|
|
28
|
+
<pn-language-selector-option name="No link language" code="langcode2" selected="true"></pn-language-selector-option>
|
|
29
|
+
<pn-language-selector-option name="No link language 2" code="langcode3" selected="false"></pn-language-selector-option>
|
|
30
|
+
</pn-language-selector>
|
|
31
|
+
|
|
32
|
+
<pn-language-selector value=${args.language}>
|
|
33
|
+
<pn-language-selector-option name="English" code="en" selected="true" url="/"></pn-language-selector-option>
|
|
34
|
+
<pn-language-selector-option name="Svenska" code="sv" selected="false" url="/en"></pn-language-selector-option>
|
|
35
|
+
</pn-language-selector>
|
|
36
|
+
</div>
|
|
37
|
+
`;
|
|
38
|
+
};
|
|
39
|
+
|
|
40
|
+
export const Primary = Template.bind({});
|
|
41
|
+
Primary.args = {
|
|
42
|
+
language: 'sv'
|
|
43
|
+
};
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
pn-language-selector-option {
|
|
2
|
+
margin: 0;
|
|
3
|
+
padding: 0;
|
|
4
|
+
list-style: none;
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
.languageselector-button,
|
|
8
|
+
.languageselector-link {
|
|
9
|
+
width: 100%;
|
|
10
|
+
padding: 1.1rem 1.6rem 1.1rem 1.4rem;
|
|
11
|
+
display: flex;
|
|
12
|
+
align-items: center;
|
|
13
|
+
position: relative;
|
|
14
|
+
text-decoration: none;
|
|
15
|
+
border: 0;
|
|
16
|
+
cursor: pointer;
|
|
17
|
+
background-color: #FFFFFF;
|
|
18
|
+
color: #005D92;
|
|
19
|
+
font-size: 1.6rem;
|
|
20
|
+
font-weight: bold;
|
|
21
|
+
border-radius: 0;
|
|
22
|
+
}
|
|
23
|
+
.languageselector-button:hover, .languageselector-button:focus, .languageselector-button:active,
|
|
24
|
+
.languageselector-link:hover,
|
|
25
|
+
.languageselector-link:focus,
|
|
26
|
+
.languageselector-link:active {
|
|
27
|
+
color: #0D234B;
|
|
28
|
+
text-decoration: underline;
|
|
29
|
+
box-shadow: none;
|
|
30
|
+
background-color: #F3F2F2;
|
|
31
|
+
color: #005D92;
|
|
32
|
+
outline: none;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
.languageselector-itemtext {
|
|
36
|
+
display: inline-block;
|
|
37
|
+
margin-left: 1rem;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
.languageselector-radio-outer {
|
|
41
|
+
background: #fff;
|
|
42
|
+
border: 0.1em solid #D3CECB;
|
|
43
|
+
border-radius: 50%;
|
|
44
|
+
height: 1.5em;
|
|
45
|
+
width: 1.5em;
|
|
46
|
+
display: flex;
|
|
47
|
+
justify-content: center;
|
|
48
|
+
align-items: center;
|
|
49
|
+
transition: border 0.2s ease-in-out, background-color 0.2s ease-in-out, box-shadow 0.1s;
|
|
50
|
+
cursor: pointer;
|
|
51
|
+
}
|
|
52
|
+
.languageselector-radio-outer:focus > .languageselector-radio-outer, .languageselector-radio-outer:active > .languageselector-radio-outer {
|
|
53
|
+
box-shadow: 0 0 0 0.1rem white, 0 0 0 0.3rem #005D92;
|
|
54
|
+
}
|
|
55
|
+
.languageselector-radio-outer:hover > .languageselector-radio-outer {
|
|
56
|
+
border: 0.1rem solid #005D92;
|
|
57
|
+
background: #E0F8FF;
|
|
58
|
+
}
|
|
59
|
+
[selected=true] .languageselector-radio-outer {
|
|
60
|
+
border: 0.1rem solid #005D92;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
.languageselector-radio-inner {
|
|
64
|
+
transform: scale(0);
|
|
65
|
+
height: 1em;
|
|
66
|
+
width: 1em;
|
|
67
|
+
background-color: #005D92;
|
|
68
|
+
border-radius: 50%;
|
|
69
|
+
transform-origin: center center;
|
|
70
|
+
transition: transform 0.1s cubic-bezier(0.64, 0.01, 0.67, 0.92);
|
|
71
|
+
}
|
|
72
|
+
[selected=true] .languageselector-radio-inner {
|
|
73
|
+
transform: scale(1);
|
|
74
|
+
}
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
import { Component, Prop, h, Host, Event } from "@stencil/core";
|
|
2
|
+
export class PnlanguageSelectorOption {
|
|
3
|
+
constructor() {
|
|
4
|
+
/** What you write in the comment block above each prop is what ends up in the description fields in the prop table in the documentation */
|
|
5
|
+
this.name = "";
|
|
6
|
+
this.code = "";
|
|
7
|
+
this.url = "";
|
|
8
|
+
this.selected = false;
|
|
9
|
+
}
|
|
10
|
+
onOptionClick() {
|
|
11
|
+
const currentlanguage = {
|
|
12
|
+
name: this.name,
|
|
13
|
+
code: this.code,
|
|
14
|
+
url: this.url,
|
|
15
|
+
current: true
|
|
16
|
+
};
|
|
17
|
+
this.setCurrentLanguage.emit(currentlanguage);
|
|
18
|
+
}
|
|
19
|
+
render() {
|
|
20
|
+
return (h(Host, { role: "listitem", selected: (this.selected) + '', code: this.code, name: this.name }, !this.url ? (h("button", { class: "languageselector-button", "data-langcode": this.code, onClick: this.onOptionClick.bind(this) },
|
|
21
|
+
h("span", { class: "languageselector-radio-outer" },
|
|
22
|
+
h("span", { class: "languageselector-radio-inner" })),
|
|
23
|
+
h("span", { class: "languageselector-itemtext" },
|
|
24
|
+
this.name,
|
|
25
|
+
" - ",
|
|
26
|
+
this.code))) : (h("a", { href: this.url, target: "_self", class: "languageselector-link", "data-langcode": this.code },
|
|
27
|
+
h("span", { class: "languageselector-radio-outer" },
|
|
28
|
+
h("span", { class: "languageselector-radio-inner" })),
|
|
29
|
+
h("span", { class: "languageselector-itemtext" },
|
|
30
|
+
this.name,
|
|
31
|
+
" - ",
|
|
32
|
+
this.code)))));
|
|
33
|
+
}
|
|
34
|
+
static get is() { return "pn-language-selector-option"; }
|
|
35
|
+
static get originalStyleUrls() { return {
|
|
36
|
+
"$": ["pn-language-selector-option.scss"]
|
|
37
|
+
}; }
|
|
38
|
+
static get styleUrls() { return {
|
|
39
|
+
"$": ["pn-language-selector-option.css"]
|
|
40
|
+
}; }
|
|
41
|
+
static get properties() { return {
|
|
42
|
+
"name": {
|
|
43
|
+
"type": "string",
|
|
44
|
+
"mutable": false,
|
|
45
|
+
"complexType": {
|
|
46
|
+
"original": "string",
|
|
47
|
+
"resolved": "string",
|
|
48
|
+
"references": {}
|
|
49
|
+
},
|
|
50
|
+
"required": false,
|
|
51
|
+
"optional": false,
|
|
52
|
+
"docs": {
|
|
53
|
+
"tags": [],
|
|
54
|
+
"text": "What you write in the comment block above each prop is what ends up in the description fields in the prop table in the documentation"
|
|
55
|
+
},
|
|
56
|
+
"attribute": "name",
|
|
57
|
+
"reflect": false,
|
|
58
|
+
"defaultValue": "\"\""
|
|
59
|
+
},
|
|
60
|
+
"code": {
|
|
61
|
+
"type": "string",
|
|
62
|
+
"mutable": false,
|
|
63
|
+
"complexType": {
|
|
64
|
+
"original": "string",
|
|
65
|
+
"resolved": "string",
|
|
66
|
+
"references": {}
|
|
67
|
+
},
|
|
68
|
+
"required": false,
|
|
69
|
+
"optional": false,
|
|
70
|
+
"docs": {
|
|
71
|
+
"tags": [],
|
|
72
|
+
"text": ""
|
|
73
|
+
},
|
|
74
|
+
"attribute": "code",
|
|
75
|
+
"reflect": false,
|
|
76
|
+
"defaultValue": "\"\""
|
|
77
|
+
},
|
|
78
|
+
"url": {
|
|
79
|
+
"type": "string",
|
|
80
|
+
"mutable": false,
|
|
81
|
+
"complexType": {
|
|
82
|
+
"original": "string",
|
|
83
|
+
"resolved": "string",
|
|
84
|
+
"references": {}
|
|
85
|
+
},
|
|
86
|
+
"required": false,
|
|
87
|
+
"optional": false,
|
|
88
|
+
"docs": {
|
|
89
|
+
"tags": [],
|
|
90
|
+
"text": ""
|
|
91
|
+
},
|
|
92
|
+
"attribute": "url",
|
|
93
|
+
"reflect": false,
|
|
94
|
+
"defaultValue": "\"\""
|
|
95
|
+
},
|
|
96
|
+
"selected": {
|
|
97
|
+
"type": "boolean",
|
|
98
|
+
"mutable": false,
|
|
99
|
+
"complexType": {
|
|
100
|
+
"original": "boolean",
|
|
101
|
+
"resolved": "boolean",
|
|
102
|
+
"references": {}
|
|
103
|
+
},
|
|
104
|
+
"required": false,
|
|
105
|
+
"optional": false,
|
|
106
|
+
"docs": {
|
|
107
|
+
"tags": [],
|
|
108
|
+
"text": ""
|
|
109
|
+
},
|
|
110
|
+
"attribute": "selected",
|
|
111
|
+
"reflect": false,
|
|
112
|
+
"defaultValue": "false"
|
|
113
|
+
},
|
|
114
|
+
"currentLanguage": {
|
|
115
|
+
"type": "string",
|
|
116
|
+
"mutable": false,
|
|
117
|
+
"complexType": {
|
|
118
|
+
"original": "string",
|
|
119
|
+
"resolved": "string",
|
|
120
|
+
"references": {}
|
|
121
|
+
},
|
|
122
|
+
"required": false,
|
|
123
|
+
"optional": false,
|
|
124
|
+
"docs": {
|
|
125
|
+
"tags": [],
|
|
126
|
+
"text": ""
|
|
127
|
+
},
|
|
128
|
+
"attribute": "current-language",
|
|
129
|
+
"reflect": false
|
|
130
|
+
}
|
|
131
|
+
}; }
|
|
132
|
+
static get events() { return [{
|
|
133
|
+
"method": "setCurrentLanguage",
|
|
134
|
+
"name": "setCurrentLanguage",
|
|
135
|
+
"bubbles": true,
|
|
136
|
+
"cancelable": true,
|
|
137
|
+
"composed": true,
|
|
138
|
+
"docs": {
|
|
139
|
+
"tags": [],
|
|
140
|
+
"text": ""
|
|
141
|
+
},
|
|
142
|
+
"complexType": {
|
|
143
|
+
"original": "any",
|
|
144
|
+
"resolved": "any",
|
|
145
|
+
"references": {}
|
|
146
|
+
}
|
|
147
|
+
}]; }
|
|
148
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
.languageselector {
|
|
2
|
+
position: relative;
|
|
3
|
+
}
|
|
4
|
+
|
|
5
|
+
.languageselector-togglebtn {
|
|
6
|
+
cursor: pointer;
|
|
7
|
+
border: 0;
|
|
8
|
+
padding: 0.64rem 0;
|
|
9
|
+
background-color: #FFFFFF;
|
|
10
|
+
color: #005D92;
|
|
11
|
+
font-size: 1.6rem;
|
|
12
|
+
}
|
|
13
|
+
.languageselector-togglebtn:hover, .languageselector-togglebtn:focus, .languageselector-togglebtn:active {
|
|
14
|
+
color: #0D234B;
|
|
15
|
+
text-decoration: underline;
|
|
16
|
+
}
|
|
17
|
+
.languageselector-togglebtn svg {
|
|
18
|
+
width: 1.9rem;
|
|
19
|
+
height: 1.9rem;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
.languageselector-title {
|
|
23
|
+
padding: 0.8rem 1.6rem;
|
|
24
|
+
display: flex;
|
|
25
|
+
align-items: center;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
.languageselector-list {
|
|
29
|
+
margin: 0;
|
|
30
|
+
padding: 0;
|
|
31
|
+
list-style: none;
|
|
32
|
+
}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import { Component, Prop, h, State, Host, Watch, Element } from "@stencil/core";
|
|
2
|
+
import { translations } from "./translations";
|
|
3
|
+
export class PnlanguageSelector {
|
|
4
|
+
constructor() {
|
|
5
|
+
/* Current language code */
|
|
6
|
+
this.value = "";
|
|
7
|
+
this.selectedLanguageName = "";
|
|
8
|
+
this.options = [];
|
|
9
|
+
}
|
|
10
|
+
componentWillLoad() {
|
|
11
|
+
this.setTranslations();
|
|
12
|
+
}
|
|
13
|
+
componentDidLoad() {
|
|
14
|
+
this.initialize();
|
|
15
|
+
}
|
|
16
|
+
initialize() {
|
|
17
|
+
const options = [].slice.apply(this.hostElement.querySelectorAll("pn-language-selector-option"));
|
|
18
|
+
options.map((option) => {
|
|
19
|
+
// Set current label of language selector
|
|
20
|
+
if (option.getAttribute("code") == this.value || option.getAttribute("selected") == "true") {
|
|
21
|
+
this.selectedLanguageName = option.getAttribute("name");
|
|
22
|
+
}
|
|
23
|
+
// Bind event listener for when a user change language
|
|
24
|
+
option.addEventListener("setCurrentLanguage", (event) => {
|
|
25
|
+
this.onSetCurrentLanguage(event.detail);
|
|
26
|
+
});
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
onSetCurrentLanguage(option) {
|
|
30
|
+
this.value = option.code;
|
|
31
|
+
this.selectedLanguageName = option.name;
|
|
32
|
+
}
|
|
33
|
+
setTranslations() {
|
|
34
|
+
if (translations[this.value]) {
|
|
35
|
+
this.i18n = translations[this.value];
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
onValueChange() {
|
|
39
|
+
var _a;
|
|
40
|
+
const components = (_a = this.hostElement.querySelectorAll("pn-language-selector-option")) !== null && _a !== void 0 ? _a : [];
|
|
41
|
+
components.forEach((component) => {
|
|
42
|
+
// Pass values as props into slotted components
|
|
43
|
+
// component.setAttribute("current-language", this.value);
|
|
44
|
+
component.setAttribute("selected", (component.getAttribute("code") === this.value) + '');
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
render() {
|
|
48
|
+
return (h(Host, null,
|
|
49
|
+
h("pn-nav-dropdown", { label: this.selectedLanguageName, icon: "globe" },
|
|
50
|
+
h("nav", { class: "languageselector-nav", "aria-label": this.i18n.heading },
|
|
51
|
+
h("strong", { class: "languageselector-title" }, this.i18n.heading),
|
|
52
|
+
h("div", { class: "languageselector-list", role: "list" },
|
|
53
|
+
h("slot", null))))));
|
|
54
|
+
}
|
|
55
|
+
static get is() { return "pn-language-selector"; }
|
|
56
|
+
static get originalStyleUrls() { return {
|
|
57
|
+
"$": ["pn-language-selector.scss"]
|
|
58
|
+
}; }
|
|
59
|
+
static get styleUrls() { return {
|
|
60
|
+
"$": ["pn-language-selector.css"]
|
|
61
|
+
}; }
|
|
62
|
+
static get properties() { return {
|
|
63
|
+
"value": {
|
|
64
|
+
"type": "string",
|
|
65
|
+
"mutable": true,
|
|
66
|
+
"complexType": {
|
|
67
|
+
"original": "string",
|
|
68
|
+
"resolved": "string",
|
|
69
|
+
"references": {}
|
|
70
|
+
},
|
|
71
|
+
"required": false,
|
|
72
|
+
"optional": false,
|
|
73
|
+
"docs": {
|
|
74
|
+
"tags": [],
|
|
75
|
+
"text": ""
|
|
76
|
+
},
|
|
77
|
+
"attribute": "value",
|
|
78
|
+
"reflect": true,
|
|
79
|
+
"defaultValue": "\"\""
|
|
80
|
+
}
|
|
81
|
+
}; }
|
|
82
|
+
static get states() { return {
|
|
83
|
+
"selectedLanguageName": {},
|
|
84
|
+
"options": {},
|
|
85
|
+
"i18n": {}
|
|
86
|
+
}; }
|
|
87
|
+
static get elementRef() { return "hostElement"; }
|
|
88
|
+
static get watchers() { return [{
|
|
89
|
+
"propName": "value",
|
|
90
|
+
"methodName": "onValueChange"
|
|
91
|
+
}]; }
|
|
92
|
+
}
|