@everymatrix/general-footer-template 1.0.69

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 (63) hide show
  1. package/dist/cjs/app-globals-3a1e7e63.js +5 -0
  2. package/dist/cjs/custom-content-section.cjs.entry.js +9639 -0
  3. package/dist/cjs/general-footer-template.cjs.entry.js +315 -0
  4. package/dist/cjs/general-footer-template.cjs.js +25 -0
  5. package/dist/cjs/image-list.cjs.entry.js +29 -0
  6. package/dist/cjs/index-4c3922ac.js +1291 -0
  7. package/dist/cjs/index.cjs.js +2 -0
  8. package/dist/cjs/link-section-list.cjs.entry.js +62 -0
  9. package/dist/cjs/loader.cjs.js +15 -0
  10. package/dist/collection/collection-manifest.json +15 -0
  11. package/dist/collection/components/custom-content-section/custom-content-section.css +13 -0
  12. package/dist/collection/components/custom-content-section/custom-content-section.js +105 -0
  13. package/dist/collection/components/general-footer-template/demo-footer.css +160 -0
  14. package/dist/collection/components/general-footer-template/general-footer-template.css +84 -0
  15. package/dist/collection/components/general-footer-template/general-footer-template.js +321 -0
  16. package/dist/collection/components/general-footer-template/index.js +1 -0
  17. package/dist/collection/components/general-footer-template/pariuri_plus_variant.css +185 -0
  18. package/dist/collection/components/general-footer-template/variant_style_1.css +146 -0
  19. package/dist/collection/components/image-list/image-list.css +69 -0
  20. package/dist/collection/components/image-list/image-list.js +86 -0
  21. package/dist/collection/components/link-section-list/link-section-list.css +83 -0
  22. package/dist/collection/components/link-section-list/link-section-list.js +152 -0
  23. package/dist/collection/index.js +1 -0
  24. package/dist/collection/utils/utils.js +212 -0
  25. package/dist/esm/app-globals-0f993ce5.js +3 -0
  26. package/dist/esm/custom-content-section.entry.js +9635 -0
  27. package/dist/esm/general-footer-template.entry.js +311 -0
  28. package/dist/esm/general-footer-template.js +20 -0
  29. package/dist/esm/image-list.entry.js +25 -0
  30. package/dist/esm/index-7361445e.js +1265 -0
  31. package/dist/esm/index.js +1 -0
  32. package/dist/esm/link-section-list.entry.js +58 -0
  33. package/dist/esm/loader.js +11 -0
  34. package/dist/general-footer-template/general-footer-template.esm.js +1 -0
  35. package/dist/general-footer-template/index.esm.js +0 -0
  36. package/dist/general-footer-template/p-01f3f03f.entry.js +8 -0
  37. package/dist/general-footer-template/p-26b76a9c.js +2 -0
  38. package/dist/general-footer-template/p-572b7e03.entry.js +1 -0
  39. package/dist/general-footer-template/p-7e979c2e.entry.js +1 -0
  40. package/dist/general-footer-template/p-e1255160.js +1 -0
  41. package/dist/general-footer-template/p-e98c72d0.entry.js +1 -0
  42. package/dist/index.cjs.js +1 -0
  43. package/dist/index.js +1 -0
  44. package/dist/stencil.config.dev.js +17 -0
  45. package/dist/stencil.config.js +17 -0
  46. package/dist/types/Users/raul.vasile/workspace/everymatrix/widgets-monorepo/packages/stencil/general-footer-template/.stencil/packages/stencil/general-footer-template/stencil.config.d.ts +2 -0
  47. package/dist/types/Users/raul.vasile/workspace/everymatrix/widgets-monorepo/packages/stencil/general-footer-template/.stencil/packages/stencil/general-footer-template/stencil.config.dev.d.ts +2 -0
  48. package/dist/types/components/custom-content-section/custom-content-section.d.ts +19 -0
  49. package/dist/types/components/general-footer-template/general-footer-template.d.ts +75 -0
  50. package/dist/types/components/general-footer-template/index.d.ts +1 -0
  51. package/dist/types/components/image-list/image-list.d.ts +16 -0
  52. package/dist/types/components/link-section-list/link-section-list.d.ts +24 -0
  53. package/dist/types/components.d.ts +268 -0
  54. package/dist/types/index.d.ts +1 -0
  55. package/dist/types/stencil-public-runtime.d.ts +1674 -0
  56. package/dist/types/utils/utils.d.ts +95 -0
  57. package/loader/cdn.js +1 -0
  58. package/loader/index.cjs.js +1 -0
  59. package/loader/index.d.ts +24 -0
  60. package/loader/index.es2017.js +1 -0
  61. package/loader/index.js +2 -0
  62. package/loader/package.json +11 -0
  63. package/package.json +26 -0
@@ -0,0 +1,311 @@
1
+ import { r as registerInstance, h } from './index-7361445e.js';
2
+
3
+ /**
4
+ * custom rules for component types
5
+ */
6
+ const getDevice = () => {
7
+ let userAgent = window.navigator.userAgent;
8
+ if (userAgent.toLowerCase().match(/android/i)) {
9
+ return 'Android';
10
+ }
11
+ if (userAgent.toLowerCase().match(/iphone/i)) {
12
+ return 'iPhone';
13
+ }
14
+ if (userAgent.toLowerCase().match(/ipad|ipod/i)) {
15
+ return 'iPad';
16
+ }
17
+ return 'PC';
18
+ };
19
+ const getDevicePlatform = () => {
20
+ const device = getDevice();
21
+ if (device) {
22
+ if (device === 'PC') {
23
+ return 'dk';
24
+ }
25
+ else if (device === 'iPad' || device === 'iPhone') {
26
+ return 'ios';
27
+ }
28
+ else {
29
+ return 'mtWeb';
30
+ }
31
+ }
32
+ };
33
+ const componentRules = {
34
+ "downloadApp": {
35
+ component: 'custom-content-section'
36
+ },
37
+ "link-section": {
38
+ component: 'link-section-list'
39
+ },
40
+ "copyright": {
41
+ component: 'custom-content-section'
42
+ },
43
+ "download": {
44
+ component: 'custom-content-section'
45
+ },
46
+ "helpLinks": {
47
+ component: 'image-list'
48
+ },
49
+ "license-description": {
50
+ component: 'custom-content-section'
51
+ },
52
+ "licenses": {
53
+ component: 'image-list',
54
+ },
55
+ "payment": {
56
+ component: 'image-list',
57
+ },
58
+ "social": {
59
+ component: 'image-list',
60
+ },
61
+ "sponsors": {
62
+ component: 'image-list',
63
+ },
64
+ "vendors": {
65
+ component: 'image-list',
66
+ },
67
+ };
68
+ // This method takes repeater content and changes it to fit an uniform standard for property names in order to be treated in a general case by the footer
69
+ // ex. if helpLinks repeaters use "helpImage" and socialLinks repeaters use "socialImage", both will use "image" after the normalization
70
+ const normalizeRepeaterContent = (data) => {
71
+ const repeaterResponse = {
72
+ repeaters: {
73
+ vendors: {
74
+ categoryTitle: data.gameVendorsLinksTitle,
75
+ content: []
76
+ },
77
+ "link-section": {
78
+ categoryTitle: data.helpLinksTitle,
79
+ content: []
80
+ },
81
+ helpLinks: {
82
+ categoryTitle: data.helpLinksTitle,
83
+ content: []
84
+ },
85
+ licenses: {
86
+ categoryTitle: data.licensesLinksTitle,
87
+ content: []
88
+ },
89
+ sponsors: {
90
+ categoryTitle: data.sponsorsLinksTitle,
91
+ content: []
92
+ },
93
+ payment: {
94
+ categoryTitle: data.paymentLinksTitle,
95
+ content: []
96
+ },
97
+ social: {
98
+ categoryTitle: data.socialLinksTitle,
99
+ content: []
100
+ },
101
+ downloadApp: {
102
+ categoryTitle: data.downloadAppLinksTitle,
103
+ content: []
104
+ }
105
+ },
106
+ wysiwyg: {
107
+ copyright: {
108
+ categoryTitle: 'test',
109
+ content: 'test'
110
+ },
111
+ download: {
112
+ categoryTitle: 'test',
113
+ content: 'test'
114
+ },
115
+ downloadApp: {
116
+ categoryTitle: 'test',
117
+ content: 'test'
118
+ },
119
+ "license-description": {
120
+ categoryTitle: 'test',
121
+ content: 'test'
122
+ }
123
+ }
124
+ };
125
+ const propertyNamesMap = {
126
+ helpLinks: {
127
+ repeaterName: 'helpLinksRepeater',
128
+ isExternalLink: 'helpLinkType',
129
+ image: 'helpLinkImage',
130
+ title: 'helpLinkTitle',
131
+ url: 'helpLinkUrl',
132
+ target: 'target'
133
+ },
134
+ "link-section": {
135
+ repeaterName: 'helpLinksRepeater',
136
+ isExternalLink: 'helpLinkType',
137
+ linkCategory: 'helpLinkCategory',
138
+ image: 'helpLinkImage',
139
+ title: 'helpLinkTitle',
140
+ url: 'helpLinkUrl',
141
+ target: 'target'
142
+ },
143
+ social: {
144
+ repeaterName: 'socialLinksRepeater',
145
+ isExternalLink: 'isExternalLink',
146
+ image: 'socialLinkImage',
147
+ title: 'socialLinkTitle',
148
+ url: 'socialLinkUrl',
149
+ target: 'target'
150
+ },
151
+ vendors: {
152
+ repeaterName: 'gameVendorsRepeater',
153
+ isExternalLink: 'isExternalLink',
154
+ image: 'gameVendorImage',
155
+ title: 'gameVendorTitle',
156
+ url: 'gameVendorUrl',
157
+ target: 'target'
158
+ },
159
+ licenses: {
160
+ repeaterName: 'licensesRepeater',
161
+ isExternalLink: 'isExternalLink',
162
+ image: 'licenseImage',
163
+ title: 'licenseTitle',
164
+ url: 'licenseUrl',
165
+ target: 'target'
166
+ },
167
+ payment: {
168
+ repeaterName: 'paymentMethodsRepeater',
169
+ isExternalLink: 'isExternalLink',
170
+ image: 'paymentMethodImage',
171
+ title: 'paymentTitle',
172
+ url: 'paymentUrl',
173
+ target: 'target'
174
+ },
175
+ sponsors: {
176
+ repeaterName: 'sponsorsRepeater',
177
+ isExternalLink: 'isExternalLink',
178
+ image: 'sponsorImage',
179
+ title: 'sponsorTitle',
180
+ url: 'sponsorUrl',
181
+ target: 'target'
182
+ }
183
+ };
184
+ // this goes through all of the repeater content sections and uniformize their property names so that the footer can treat them generally instead of case-by-case
185
+ Object.entries(repeaterResponse.repeaters).forEach(repeater => {
186
+ var _a, _b, _c;
187
+ if (propertyNamesMap[repeater[0]] && data[(_a = propertyNamesMap[repeater[0]]) === null || _a === void 0 ? void 0 : _a.repeaterName]) {
188
+ repeater[1].content = (_c = data[(_b = propertyNamesMap[repeater[0]]) === null || _b === void 0 ? void 0 : _b.repeaterName]) === null || _c === void 0 ? void 0 : _c.map(content => {
189
+ var _a, _b, _c, _d, _e, _f;
190
+ return {
191
+ // all properties have a null fallback - avoid undefined propagation
192
+ isExternalLink: (_a = content[propertyNamesMap[repeater[0]].isExternalLink]) !== null && _a !== void 0 ? _a : null,
193
+ linkCategory: (_b = content[propertyNamesMap[repeater[0]].linkCategory]) !== null && _b !== void 0 ? _b : null,
194
+ image: (_c = content[propertyNamesMap[repeater[0]].image]) !== null && _c !== void 0 ? _c : null,
195
+ title: (_d = content[propertyNamesMap[repeater[0]].title]) !== null && _d !== void 0 ? _d : null,
196
+ url: (_e = content[propertyNamesMap[repeater[0]].url]) !== null && _e !== void 0 ? _e : null,
197
+ target: (_f = content[propertyNamesMap[repeater[0]].target]) !== null && _f !== void 0 ? _f : null,
198
+ };
199
+ });
200
+ }
201
+ });
202
+ repeaterResponse.repeaters.downloadApp.content = data.downloadInfos.imageArea || [];
203
+ repeaterResponse.wysiwyg.downloadApp.content = data.downloadInfos.downloadDescription || '';
204
+ repeaterResponse.wysiwyg.copyright.content = data.copyright;
205
+ repeaterResponse.wysiwyg["license-description"].content = data.licenseDesc;
206
+ return repeaterResponse;
207
+ };
208
+
209
+ const demoFooterCss = ":host {\n display: block;\n}\n\n/* $-background-primary: #14202d; */\n* {\n font-family: sans-serif;\n}\n\nhtml,\nbody {\n margin: 0;\n padding: 0;\n font-family: inherit;\n}\n\n.FooterSectionContainer {\n color: var(--emw--footer-typography, var(--emw-color-thpography, #fff));\n padding: 12px;\n}\n\n/* // FOOTER CONTAINER - only serves to be read as a container */\n.FooterContainer {\n container-type: inline-size;\n container-name: footerContainer;\n}\n\n.FooterGrid {\n background-color: var(--emw--footer-color-bg, var(--emw--color-background, #0E1511));\n display: grid;\n padding: 8px 24px 0 24px;\n grid-template-rows: repeat(9, auto);\n grid-template-areas: \"one\" \"two\" \"three\" \"four\" \"five\" \"six\" \"seven\";\n}\n\n.FooterSectionContainer1 {\n position: relative;\n grid-area: one;\n}\n\n.FooterSectionContainer2 {\n position: relative;\n grid-area: two;\n}\n\n.FooterSectionContainer3 {\n position: relative;\n grid-area: three;\n}\n\n.FooterSectionContainer4 {\n position: relative;\n grid-area: four;\n}\n\n.FooterSectionContainer5 {\n grid-area: five;\n}\n\n.FooterSectionContainer6 {\n padding-top: 22px;\n grid-area: six;\n}\n\n.FooterSectionContainer7 {\n grid-area: seven;\n}\n\n/* // remove paddings */\n.FooterSectionContainer7 div {\n padding: 0;\n}\n\n@container (max-width: 750px) {\n .FooterSectionContainer3:after,\n .FooterSectionContainer2:after {\n position: absolute;\n content: \"\";\n height: 1px;\n width: 90%;\n background-color: var(--emw--color-gray-100, #444);\n }\n .FooterSectionContainer5 {\n grid-area: five;\n background-color: var(--emw--color-background-secondary, #060706);\n padding: 30px 0;\n font-size: var(--emw--font-size-medium, 16px);\n min-height: var(--emw--size-medium-plus, 100px);\n justify-self: center;\n }\n}\n/* // STYLES FOR TABLET / DESKTOP */\n@container (min-width: 750px) {\n .FooterGrid {\n background: var(--emw--footer-color-bg, var(--emw--color-background, #0E1511));\n display: grid;\n border-top: 5px solid var(--emw--footer-color-primary, var(--emw--color-primary, #22B04E));\n grid-template-rows: repeat(5, auto);\n grid-template-columns: 1fr 1fr 1fr 1fr;\n grid-template-areas: \"one two three four\" \"five five five five\" \"six six six six\" \"seven seven seven seven\";\n }\n .FooterSectionContainer1 {\n padding: 30px 40px;\n grid-area: one;\n background: var(--emw--color-background, #000000);\n }\n .FooterSectionContainer2 {\n grid-area: two;\n min-height: var(--emw--size-4x-medium, 500px);\n }\n .FooterSectionContainer3 {\n grid-area: three;\n }\n .FooterSectionContainer4 {\n grid-area: four;\n }\n .FooterSectionContainer5 {\n grid-area: five;\n background-color: var(--emw--color-background-secondary, #091217);\n padding: var(--emw--spacing-x-large, 30px) 0;\n font-size: var(--emw--font-size-medium, 16px);\n min-height: var(--emw--size-medium-plus, 100px);\n }\n .FooterSectionContainer6 {\n grid-area: six;\n padding: 0;\n }\n .FooterSectionContainer7 {\n grid-area: seven;\n padding: 0;\n }\n /* // remove paddings */\n .FooterSectionContainer5 .CustomContentSectionWrapper {\n padding: 0;\n }\n .FooterSectionContainer5 .CustomContentSectionWrapper div {\n display: flex;\n flex-direction: left;\n align-items: center;\n padding-left: var(--emw--spacing-large, 20px);\n }\n .FooterSectionContainer5 .CustomContentSectionWrapper div p {\n margin: var(--emw--spacing-2x-small, 5px);\n text-align: center;\n }\n .FooterSectionContainer6 .CustomContentSectionWrapper div p {\n text-align: center;\n }\n .FooterSectionContainer6 .ImageListWrapper {\n padding: 0;\n }\n .FooterSectionContainer6 .ImageListWrapper {\n padding: 0;\n }\n .FooterSectionContainer7 .CustomContentSectionWrapper {\n padding: 0;\n padding-bottom: var(--emw--spacing-large, 22px);\n font-size: var(--emw--font-size-small, 14px);\n }\n}";
210
+ const GeneralFooterTemplateStyle0 = demoFooterCss;
211
+
212
+ const pariuriPlusVariantCss = ":host {\n display: block;\n}\n\n/* $-background-primary: #14202d; */\n\n* {\n font-family: sans-serif;\n}\n\nhtml,\nbody {\n margin: 0;\n padding: 0;\n font-family: inherit;\n}\n\n.FooterSectionContainer {\n color: #fff;\n padding: 12px;\n}\n\n/* // FOOTER CONTAINER - only serves to be read as a container */\n.FooterContainer {\n container-type: inline-size;\n container-name: footerContainer;\n}\n\n\n.FooterGrid {\n background-color: #14202D;\n display: grid;\n padding: 8px 24px 0 24px;\n grid-template-rows: repeat(9, auto);\n grid-template-areas: \"one\"\n \"two\"\n \"three\"\n \"four\"\n \"five\"\n \"six\"\n \"seven\";\n}\n\n \n\n.FooterSectionContainer1 {\n position: relative;\n grid-area: one;\n \n}\n.FooterSectionContainer2 {\n position: relative;\n grid-area: two;\n border-bottom: 1px solid rgba(254, 254, 254, 0.2);\n}\n.FooterSectionContainer3 {\n position: relative;\n grid-area: three;\n \n}\n.FooterSectionContainer4 {\n position: relative;\n grid-area: four;\n border-bottom: 1px solid rgba(254, 254, 254, 0.2);\n}\n.FooterSectionContainer5 {\n grid-area: five;\n /* border-bottom: 1px solid #444; */\n}\n.FooterSectionContainer6 {\n padding-top: 22px;\n grid-area: six;\n}\n.FooterSectionContainer7 {\n grid-area: seven;\n}\n\n/* // remove paddings */\n.FooterSectionContainer7 div{\n padding: 0;\n}\n\n.FooterSectionContainer3:after {\n position: absolute;\n content: \"\";\n left: 30%;\n bottom: -20px;\n height: 1px;\n width: 40%;\n background-color: #444;\n}\n\n\n\n/* // STYLES FOR TABLET / DESKTOP */\n@container (min-width: 750px) {\n .FooterGrid {\n background: $-background-primary;\n display: grid;\n grid-template-rows: repeat(5, auto);\n grid-template-columns: 2fr 1fr;\n grid-template-areas: \"one two\"\n \"three four\"\n \"five five\"\n \"six six\"\n \"seven seven\";\n }\n \n \n .FooterSectionContainer1 {\n grid-area: one;\n border-bottom: 1px solid rgba(254, 254, 254, 0.2);\n }\n .FooterSectionContainer2 {\n grid-area: two;\n\n }\n .FooterSectionContainer3 {\n grid-area: three;\n border-bottom: 1px solid rgba(254, 254, 254, 0.2);\n }\n .FooterSectionContainer4 {\n grid-area: four;\n }\n .FooterSectionContainer5 {\n grid-area: five;\n }\n .FooterSectionContainer6 {\n grid-area: six;\n padding: 0;\n }\n .FooterSectionContainer7 {\n grid-area: seven;\n padding: 0;\n }\n\n /* VERTICAL BARS */\n .FooterSectionContainer3:after {\n position: absolute;\n content: \"\";\n left: initial;\n bottom:initial;\n top: 30%;\n right: 20px;\n width: 1px;\n height: 40%;\n background-color: #444;\n }\n\n /* // remove paddings */\n .FooterSectionContainer5 .CustomContentSectionWrapper {\n padding: 0;\n }\n\n .FooterSectionContainer5 .CustomContentSectionWrapper div {\n display: flex;\n flex-direction: column;\n align-items: center;\n }\n\n .FooterSectionContainer5 .CustomContentSectionWrapper div p {\n margin: 5px;\n text-align: center;\n }\n\n .FooterSectionContainer6 .CustomContentSectionWrapper div p {\n text-align: center;\n }\n\n .FooterSectionContainer6 .ImageListWrapper {\n padding: 0;\n }\n\n .FooterSectionContainer6 .ImageListWrapper {\n padding: 0;\n /* padding-bottom: 22px; */\n /* font-size: 14px; */\n }\n\n .FooterSectionContainer7 .CustomContentSectionWrapper {\n padding: 0;\n padding-bottom: 22px;\n font-size: 14px;\n }\n}";
213
+ const GeneralFooterTemplateStyle1 = pariuriPlusVariantCss;
214
+
215
+ const variantStyle1Css = ":host {\n display: block;\n}\n\n/* $-background-primary: #14202d; */\n\n* {\n font-family: sans-serif;\n}\n\nhtml,\nbody {\n margin: 0;\n padding: 0;\n font-family: inherit;\n}\n\n.footer-section__container {\n color: #777;\n padding: 12px;\n}\n\n/* // FOOTER CONTAINER - only serves to be read as a container */\n.footer-container {\n container-type: inline-size;\n container-name: footerContainer;\n}\n\n\n.footer-grid {\n background-color: #14202d;\n display: grid;\n padding: 0 50px;\n grid-template-rows: repeat(9, auto);\n grid-template-areas: \"one\"\n \"two\"\n \"three\"\n \"four\"\n \"five\"\n \"six\"\n \"seven\";\n}\n\n \n\n.footer-section__container--1 {\n grid-area: one;\n border-bottom: 1px solid #444;\n}\n.footer-section__container--2 {\n position: relative;\n grid-area: two;\n border-bottom: 1px solid #444;\n}\n.footer-section__container--3 {\n grid-area: three;\n border-bottom: 1px solid #444;\n}\n.footer-section__container--4 {\n position: relative;\n grid-area: four;\n border-bottom: 1px solid #444;\n}\n.footer-section__container--5 {\n grid-area: five;\n border-bottom: 1px solid #444;\n}\n.footer-section__container--6 {\n padding-top: 22px;\n grid-area: six;\n}\n.footer-section__container--7 {\n grid-area: seven;\n}\n\n/* // remove paddings */\n.footer-section__container--7 div{\n padding: 0;\n}\n\n\n\n/* // STYLES FOR TABLET / DESKTOP */\n@container (min-width: 750px) {\n .footer-grid {\n background: $-background-primary;\n display: grid;\n grid-template-rows: repeat(5, auto);\n grid-template-columns: 1fr 1fr;\n grid-template-areas: \"one one\"\n \"two three\"\n \"four five\"\n \"six six\"\n \"seven seven\";\n }\n \n \n .footer-section__container--1 {\n grid-area: one;\n }\n .footer-section__container--2 {\n grid-area: two;\n }\n .footer-section__container--3 {\n grid-area: three;\n }\n .footer-section__container--4 {\n grid-area: four;\n }\n .footer-section__container--5 {\n grid-area: five;\n }\n .footer-section__container--6 {\n grid-area: six;\n padding: 0;\n }\n .footer-section__container--7 {\n grid-area: seven;\n padding: 0;\n }\n\n /* VERTICAL BARS */\n .footer-section__container--2:after,\n .footer-section__container--4:after {\n position: absolute;\n content: \"\";\n top: 10%;\n right: 0;\n width: 1px;\n height: 80%;\n background-color: #444;\n }\n\n /* // remove paddings */\n .footer-section__container--6 .image-list__wrapper {\n padding: 22px 0 0 0;\n }\n\n .footer-section__container--7 .custom-content-section__wrapper {\n padding: 0;\n padding-bottom: 22px;\n font-size: 14px;\n }\n\n \n}";
216
+ const GeneralFooterTemplateStyle2 = variantStyle1Css;
217
+
218
+ const generalFooterTemplateCss = ":host {\n display: block;\n}\n\n* {\n font-family: sans-serif;\n}\n\nhtml,\nbody {\n margin: 0;\n padding: 0;\n font-family: inherit;\n}\n\n.footer-section__container {\n color: var(--emfe-w-footer-typography, var(--emfe-w-color-white, #FFFFFF));\n padding: 12px;\n}\n\n.footer-container {\n container-type: inline-size;\n container-name: footerContainer;\n}\n\n.footer-grid {\n background-color: var(--emfe-w-footer-color-bg, var(--emfe-w-color-dark-blue, #07072A));\n display: grid;\n grid-template-rows: repeat(9, auto);\n grid-template-areas: \"one\" \"two\" \"three\" \"four\" \"five\" \"six\" \"seven\";\n}\n\n.footer-section__container--1 {\n grid-area: one;\n}\n.footer-section__container--2 {\n grid-area: two;\n}\n.footer-section__container--3 {\n grid-area: three;\n}\n.footer-section__container--4 {\n grid-area: four;\n}\n.footer-section__container--5 {\n grid-area: five;\n}\n.footer-section__container--6 {\n grid-area: six;\n}\n.footer-section__container--7 {\n grid-area: seven;\n}\n\n@container (min-width: 750px) {\n .footer-grid {\n background: var(--emfe-w-footer-color-bg, var(--emfe-w-color-dark-blue, #07072A));\n display: grid;\n grid-template-rows: repeat(7, auto);\n grid-template-columns: 2fr 1fr;\n grid-template-areas: \"one two\" \"three four\" \"five five\" \"six six\" \"seven seven\" \"eight eight\" \"nine nine\";\n }\n .footer-section__container--1 {\n grid-area: one;\n }\n .footer-section__container--2 {\n grid-area: two;\n }\n .footer-section__container--3 {\n grid-area: three;\n }\n .footer-section__container--4 {\n grid-area: four;\n }\n .footer-section__container--5 {\n grid-area: five;\n }\n .footer-section__container--6 {\n grid-area: six;\n }\n .footer-section__container--7 {\n grid-area: seven;\n }\n}";
219
+ const GeneralFooterTemplateStyle3 = generalFooterTemplateCss;
220
+
221
+ const GeneralFooterTemplate = class {
222
+ constructor(hostRef) {
223
+ registerInstance(this, hostRef);
224
+ this.platform = getDevicePlatform();
225
+ /**
226
+ * Host element
227
+ */
228
+ this.MANDATORY_FIELDS = ['endpoint', 'language', 'sections'];
229
+ this.setClientStyling = () => {
230
+ let sheet = document.createElement('style');
231
+ sheet.innerHTML = this.clientStyling;
232
+ this.stylingContainer.prepend(sheet);
233
+ };
234
+ this.setClientStylingURL = () => {
235
+ let url = new URL(this.clientStylingUrl);
236
+ let cssFile = document.createElement('style');
237
+ fetch(url.href)
238
+ .then((res) => res.text())
239
+ .then((data) => {
240
+ cssFile.innerHTML = data;
241
+ setTimeout(() => { this.stylingContainer.prepend(cssFile); }, 1);
242
+ })
243
+ .catch((err) => {
244
+ console.log('error ', err);
245
+ });
246
+ };
247
+ this.language = undefined;
248
+ this.sections = undefined;
249
+ this.endpoint = undefined;
250
+ this.env = 'stage';
251
+ this.userRoles = 'everyone';
252
+ this.userid = undefined;
253
+ this.session = undefined;
254
+ this.baseUrl = undefined;
255
+ this.navigateViaEvent = 'false';
256
+ this.postMessageEvent = 'NavigateTo';
257
+ this.clientStyling = '';
258
+ this.clientStylingUrl = '';
259
+ this.hasErrors = false;
260
+ this.stylingAppends = false;
261
+ }
262
+ validateMandatoryFields() {
263
+ this.MANDATORY_FIELDS.forEach((field) => {
264
+ if (!this[field]) {
265
+ console.error(`Mandatory parameter ${field} not received`);
266
+ this.hasErrors = true;
267
+ }
268
+ });
269
+ }
270
+ componentWillLoad() {
271
+ this.sectionsList = this.sections.split(',').map(section => section.trim());
272
+ const url = new URL(`${this.endpoint}/${this.language}/footer-raw-data`);
273
+ url.searchParams.append('env', this.env);
274
+ url.searchParams.append('device', this.platform);
275
+ url.searchParams.append('userroles', this.userRoles);
276
+ this.validateMandatoryFields();
277
+ return fetch(url.href)
278
+ .then((res) => res.json())
279
+ .then((data) => {
280
+ this.footerContent = normalizeRepeaterContent(data);
281
+ });
282
+ }
283
+ componentDidRender() {
284
+ // start custom styling area
285
+ if (!this.stylingAppends && this.stylingContainer) {
286
+ if (this.clientStyling)
287
+ this.setClientStyling();
288
+ if (this.clientStylingUrl)
289
+ this.setClientStylingURL();
290
+ this.stylingAppends = true;
291
+ }
292
+ // end custom styling area
293
+ }
294
+ render() {
295
+ const footerSections = this.sectionsList.map((section, i) => {
296
+ const FooterElement = componentRules[section].component;
297
+ const elementIsRepeater = this.footerContent.repeaters.hasOwnProperty(section);
298
+ const elementIsCustom = this.footerContent.wysiwyg.hasOwnProperty(section);
299
+ return h(FooterElement, { class: `${section} FooterSectionContainer FooterSectionContainer${i + 1}`, userid: this.userid, session: this.session, "base-url": this.baseUrl, language: this.language, "navigate-via-event": this.navigateViaEvent, "post-message-event": this.postMessageEvent, ruleset: componentRules[section], repeaterContent: elementIsRepeater ? this.footerContent.repeaters[section] : null, customContent: elementIsCustom ? this.footerContent.wysiwyg[section].content : null });
300
+ });
301
+ if (this.hasErrors) {
302
+ return h("div", null, "There was an error while bootstraping the widget");
303
+ }
304
+ else {
305
+ return (h("footer", { class: "FooterContainer", ref: el => this.stylingContainer = el }, h("div", { class: "FooterGrid customStyle" }, footerSections)));
306
+ }
307
+ }
308
+ };
309
+ GeneralFooterTemplate.style = GeneralFooterTemplateStyle0 + (GeneralFooterTemplateStyle1 + (GeneralFooterTemplateStyle2 + GeneralFooterTemplateStyle3));
310
+
311
+ export { GeneralFooterTemplate as general_footer_template };
@@ -0,0 +1,20 @@
1
+ import { p as promiseResolve, b as bootstrapLazy } from './index-7361445e.js';
2
+ export { s as setNonce } from './index-7361445e.js';
3
+ import { g as globalScripts } from './app-globals-0f993ce5.js';
4
+
5
+ /*
6
+ Stencil Client Patch Browser v4.20.0 | MIT Licensed | https://stenciljs.com
7
+ */
8
+ var patchBrowser = () => {
9
+ const importMeta = import.meta.url;
10
+ const opts = {};
11
+ if (importMeta !== "") {
12
+ opts.resourcesUrl = new URL(".", importMeta).href;
13
+ }
14
+ return promiseResolve(opts);
15
+ };
16
+
17
+ patchBrowser().then(async (options) => {
18
+ await globalScripts();
19
+ return bootstrapLazy([["custom-content-section",[[2,"custom-content-section",{"customContent":[1,"custom-content"],"repeaterContent":[8,"repeater-content"],"navigateViaEvent":[516,"navigate-via-event"],"postMessageEvent":[513,"post-message-event"]}]]],["general-footer-template",[[1,"general-footer-template",{"language":[513],"sections":[513],"endpoint":[513],"env":[513],"userRoles":[513,"user-roles"],"userid":[513],"session":[513],"baseUrl":[513,"base-url"],"navigateViaEvent":[513,"navigate-via-event"],"postMessageEvent":[513,"post-message-event"],"clientStyling":[513,"client-styling"],"clientStylingUrl":[513,"client-styling-url"],"hasErrors":[32],"stylingAppends":[32]}]]],["link-section-list",[[0,"link-section-list",{"repeaterContent":[8,"repeater-content"],"baseUrl":[513,"base-url"],"language":[513],"navigateViaEvent":[4,"navigate-via-event"],"postMessageEvent":[513,"post-message-event"]}]]],["image-list",[[2,"image-list",{"repeaterContent":[8,"repeater-content"],"navigateViaEvent":[4,"navigate-via-event"],"postMessageEvent":[513,"post-message-event"]}]]]], options);
20
+ });
@@ -0,0 +1,25 @@
1
+ import { r as registerInstance, h } from './index-7361445e.js';
2
+
3
+ const imageListCss = ".sc-image-list-h {\n display: block;\n margin: 0;\n padding: 0;\n}\n\n.ImageListContainer.sc-image-list {\n height: 100%;\n}\n.ImageListWrapper.sc-image-list {\n box-sizing: border-box;\n height: 100%;\n display: flex;\n flex-direction: column;\n max-width: 90%;\n margin: auto;\n padding: var(--emw--spacing-large, 20px) 0;\n}\n.ImageListSectionTitle.sc-image-list {\n width: 100%;\n display: flex;\n justify-content: left;\n align-content: center;\n padding: var(--emw--spacing-large, 20px) var(--emw--spacing-medium, 14px) var(--emw--spacing-x-large, 30px);\n color: var(--emw--footer-typography, var(--emw-color-thpography, #fff));\n text-transform: uppercase;\n font-size: 24px;\n font-weight: 100;\n}\n.ImageListLineup.sc-image-list {\n box-sizing: border-box;\n display: flex;\n flex-wrap: wrap;\n gap: var(--emw--spacing-x-large, 30px);\n justify-content: left;\n align-items: flex-start;\n padding-left: var(--emw--spacing-large, 20px);\n}\n.ImageListIcon.sc-image-list img.sc-image-list {\n max-height: var(--emw--size-medium-2x-minus, 40px);\n}\n\na.sc-image-list {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: flex-end;\n text-decoration: none;\n}\n\na.sc-image-list p.sc-image-list {\n text-decoration: none;\n color: var(--emw--color-gray-100, #666);\n margin: 0;\n}\n\n@container (max-width: 750px) {\n .ImageListSectionTitle.sc-image-list {\n justify-content: center;\n font-size: var(--emw--font-size-medium, 16px);\n color: var(--emw--footer-typography, var(--emw-color-thpography, #fff));\n padding: var(--emw--spacing-large, 20px) 0 var(--emw--spacing-x-large, 30px);\n justify-content: center;\n }\n .ImageListLineup.sc-image-list {\n justify-content: center;\n padding: 0;\n }\n}";
4
+ const ImageListStyle0 = imageListCss;
5
+
6
+ const ImageList = class {
7
+ constructor(hostRef) {
8
+ registerInstance(this, hostRef);
9
+ this.navigateLink = (url, target, externalLink) => {
10
+ window.postMessage({ type: this.postMessageEvent, url, target, externalLink }, window.location.href);
11
+ };
12
+ this.repeaterContent = undefined;
13
+ this.navigateViaEvent = false;
14
+ this.postMessageEvent = '';
15
+ }
16
+ render() {
17
+ var _a, _b, _c;
18
+ return h("div", { key: '16df5dda83672031449915c4a87aa904032ba5a1', class: "ImageListContainer" }, h("div", { key: '5bd3f924a852ebf20cdeef3349bc68bf3f11d18d', class: "ImageListWrapper" }, h("div", { key: '1aef8f464a64f1526cf608207fae6938aba83362', class: "ImageListSectionTitle" }, (_a = this.repeaterContent) === null || _a === void 0 ? void 0 : _a.categoryTitle), h("div", { key: '0388ae28994cfa29e19e6524e720b88e4ff29b54', class: "ImageListLineup" }, (_c = (_b = this.repeaterContent) === null || _b === void 0 ? void 0 : _b.content) === null || _c === void 0 ? void 0 : _c.map(repeater => {
19
+ return (h("div", { class: 'ImageListIcon' }, this.navigateViaEvent === true ? (h("div", { class: 'ImageListIcon', style: { cursor: 'pointer' }, onClick: () => this.navigateLink(repeater === null || repeater === void 0 ? void 0 : repeater.url, repeater === null || repeater === void 0 ? void 0 : repeater.target, repeater === null || repeater === void 0 ? void 0 : repeater.isExternalLink) }, h("img", { src: repeater === null || repeater === void 0 ? void 0 : repeater.image, alt: "" }), h("p", null, repeater === null || repeater === void 0 ? void 0 : repeater.title))) : (h("a", { href: (repeater === null || repeater === void 0 ? void 0 : repeater.url) || 'javascript:void(0)', target: (repeater === null || repeater === void 0 ? void 0 : repeater.target) || '_parent' }, h("div", { class: "ImageListPositioner" }, h("img", { src: repeater === null || repeater === void 0 ? void 0 : repeater.image, alt: "" })), h("p", null, repeater === null || repeater === void 0 ? void 0 : repeater.title)))));
20
+ }))));
21
+ }
22
+ };
23
+ ImageList.style = ImageListStyle0;
24
+
25
+ export { ImageList as image_list };