@everymatrix/lottery-banner 0.0.16 → 0.0.18

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 (29) hide show
  1. package/dist/cjs/{index-4511b749.js → index-0a0cc64c.js} +18 -1
  2. package/dist/cjs/index.cjs.js +2 -2
  3. package/dist/cjs/loader.cjs.js +2 -2
  4. package/dist/cjs/lottery-banner-a5256c5a.js +3032 -0
  5. package/dist/cjs/lottery-banner.cjs.entry.js +2 -2
  6. package/dist/cjs/lottery-banner.cjs.js +2 -2
  7. package/dist/collection/components/lottery-banner/lottery-banner.css +7 -3
  8. package/dist/collection/components/lottery-banner/lottery-banner.js +76 -3
  9. package/dist/collection/utils/locale.utils.js +5 -2
  10. package/dist/collection/utils/utils.js +42 -1
  11. package/dist/esm/{index-0b45dd81.js → index-58dd14ef.js} +18 -2
  12. package/dist/esm/index.js +2 -2
  13. package/dist/esm/loader.js +3 -3
  14. package/dist/esm/lottery-banner-925a2ddf.js +3030 -0
  15. package/dist/esm/lottery-banner.entry.js +2 -2
  16. package/dist/esm/lottery-banner.js +3 -3
  17. package/dist/lottery-banner/index-58dd14ef.js +2 -0
  18. package/dist/lottery-banner/index.esm.js +1 -1
  19. package/dist/lottery-banner/lottery-banner-925a2ddf.js +1 -0
  20. package/dist/lottery-banner/lottery-banner.entry.js +1 -1
  21. package/dist/lottery-banner/lottery-banner.esm.js +1 -1
  22. package/dist/types/components/lottery-banner/lottery-banner.d.ts +18 -1
  23. package/dist/types/components.d.ts +29 -2
  24. package/dist/types/utils/utils.d.ts +10 -0
  25. package/package.json +1 -1
  26. package/dist/cjs/lottery-banner-73236552.js +0 -252
  27. package/dist/esm/lottery-banner-89c08855.js +0 -250
  28. package/dist/lottery-banner/index-0b45dd81.js +0 -2
  29. package/dist/lottery-banner/lottery-banner-89c08855.js +0 -1
@@ -2,8 +2,8 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- const lotteryBanner = require('./lottery-banner-73236552.js');
6
- require('./index-4511b749.js');
5
+ const lotteryBanner = require('./lottery-banner-a5256c5a.js');
6
+ require('./index-0a0cc64c.js');
7
7
 
8
8
 
9
9
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- const index = require('./index-4511b749.js');
5
+ const index = require('./index-0a0cc64c.js');
6
6
  const appGlobals = require('./app-globals-3a1e7e63.js');
7
7
 
8
8
  /*
@@ -19,7 +19,7 @@ var patchBrowser = () => {
19
19
 
20
20
  patchBrowser().then(async (options) => {
21
21
  await appGlobals.globalScripts();
22
- return index.bootstrapLazy([["lottery-banner.cjs",[[1,"lottery-banner",{"mbSource":[513,"mb-source"],"clientStyling":[513,"client-styling"],"clientStylingUrl":[513,"client-styling-url"],"translationUrl":[513,"translation-url"],"language":[513],"logoUrl":[513,"logo-url"],"stopTime":[1,"stop-time"],"bannerTitle":[1,"banner-title"],"turnover":[1],"layout":[1]},null,{"clientStyling":["handleClientStylingChange"],"clientStylingUrl":["handleClientStylingUrlChange"],"mbSource":["handleMbSourceChange"]}]]]], options);
22
+ return index.bootstrapLazy([["lottery-banner.cjs",[[1,"lottery-banner",{"mbSource":[513,"mb-source"],"clientStyling":[513,"client-styling"],"clientStylingUrl":[513,"client-styling-url"],"translationUrl":[513,"translation-url"],"language":[513],"logoUrl":[513,"logo-url"],"stopTime":[1,"stop-time"],"startTime":[1,"start-time"],"bannerTitle":[1,"banner-title"],"turnover":[1],"layout":[1],"formattedTime":[32]},null,{"clientStyling":["handleClientStylingChange"],"clientStylingUrl":["handleClientStylingUrlChange"],"mbSource":["handleMbSourceChange"],"startTime":["handleTimeChange"],"stopTime":["handleTimeChange"]}]]]], options);
23
23
  });
24
24
 
25
25
  exports.setNonce = index.setNonce;
@@ -1,5 +1,6 @@
1
1
  :host {
2
2
  display: block;
3
+ container-type: inline-size;
3
4
  }
4
5
 
5
6
  .lottery-banner {
@@ -16,7 +17,6 @@
16
17
  border-radius: var(--lottery-banner-border-radius, 0);
17
18
  white-space: nowrap;
18
19
  height: var(--lottery-banner-height, 50px);
19
- container-type: inline-size;
20
20
  position: relative;
21
21
  box-sizing: border-box;
22
22
  }
@@ -44,6 +44,7 @@
44
44
  font-size: var(--lottery-banner-title-font-size, 1.5rem);
45
45
  font-weight: 800;
46
46
  font-style: italic;
47
+ letter-spacing: var(--lottery-banner-title-font-letter-spacing, 0.04em);
47
48
  color: var(--emw--color-typography, #000);
48
49
  }
49
50
 
@@ -62,9 +63,11 @@
62
63
  }
63
64
 
64
65
  .lottery-banner__info-item-label {
65
- font-weight: var(--lottery-banner-info-label-font-weight, 700);
66
66
  color: var(--lottery-banner-info-label-color, var(--emw--color-typography, #000));
67
67
  }
68
+ .lottery-banner__info-item-label__strong {
69
+ font-weight: var(--lottery-banner-info-label-font-weight, 700);
70
+ }
68
71
 
69
72
  .lottery-banner__info-item-value {
70
73
  font-weight: var(--lottery-banner-info-value-font-weight, inherit);
@@ -81,7 +84,8 @@
81
84
  text-align: var(--lottery-banner-mobile-title-text-align, left);
82
85
  }
83
86
  .lottery-banner__info {
84
- flex-wrap: wrap;
87
+ flex-direction: column;
88
+ align-items: flex-start;
85
89
  gap: var(--lottery-banner-mobile-info-gap, 0.1rem);
86
90
  }
87
91
  }
@@ -1,6 +1,7 @@
1
1
  import { h } from "@stencil/core";
2
2
  import { setClientStyling, setClientStylingURL, setStreamStyling } from "../../../../../../../../libs/common/src/styling/index";
3
3
  import { resolveTranslationUrl, translate } from "../../utils/locale.utils";
4
+ import { getWagerTime } from "../../utils/utils";
4
5
  export class LotteryBanner {
5
6
  constructor() {
6
7
  this.mbSource = undefined;
@@ -10,9 +11,11 @@ export class LotteryBanner {
10
11
  this.language = 'en';
11
12
  this.logoUrl = undefined;
12
13
  this.stopTime = '';
14
+ this.startTime = '';
13
15
  this.bannerTitle = undefined;
14
16
  this.turnover = undefined;
15
17
  this.layout = 'logo,title,info';
18
+ this.formattedTime = undefined;
16
19
  }
17
20
  handleClientStylingChange(newValue, oldValue) {
18
21
  if (newValue !== oldValue) {
@@ -29,10 +32,31 @@ export class LotteryBanner {
29
32
  setStreamStyling(this.stylingContainer, `${this.mbSource}.Style`, this.stylingSubscription);
30
33
  }
31
34
  }
35
+ handleTimeChange() {
36
+ this.startTimer();
37
+ }
32
38
  async componentWillLoad() {
33
39
  if (this.translationUrl) {
34
40
  resolveTranslationUrl(this.translationUrl);
35
41
  }
42
+ this.startTimer();
43
+ }
44
+ startTimer() {
45
+ if (this.timer) {
46
+ clearInterval(this.timer);
47
+ }
48
+ this.updateTime();
49
+ this.timer = setInterval(() => {
50
+ this.updateTime();
51
+ }, 1000);
52
+ }
53
+ updateTime() {
54
+ var _a;
55
+ this.formattedTime = getWagerTime(this.startTime, this.stopTime);
56
+ if ((_a = this.formattedTime) === null || _a === void 0 ? void 0 : _a.end) {
57
+ this.timer && clearInterval(this.timer);
58
+ this.lotteryBannerTimerStop.emit();
59
+ }
36
60
  }
37
61
  componentDidLoad() {
38
62
  if (this.stylingContainer) {
@@ -46,22 +70,24 @@ export class LotteryBanner {
46
70
  }
47
71
  disconnectedCallback() {
48
72
  this.stylingSubscription && this.stylingSubscription.unsubscribe();
73
+ this.timer && clearInterval(this.timer);
49
74
  }
50
75
  renderElement(item, className = '') {
76
+ var _a, _b;
51
77
  switch (item) {
52
78
  case 'logo':
53
79
  return (h("div", { class: `lottery-banner__logo-wrapper ${className}` }, this.logoUrl && h("img", { alt: "logo", src: this.logoUrl, class: "lottery-banner__logo" })));
54
80
  case 'title':
55
81
  return this.bannerTitle && h("div", { class: `lottery-banner__title ${className}` }, this.bannerTitle);
56
82
  case 'info':
57
- return (h("div", { class: `lottery-banner__info ${className}` }, this.stopTime && (h("div", { class: "lottery-banner__info-item" }, h("span", { class: "lottery-banner__info-item-label" }, translate('stopAt', this.language)), h("span", { class: "lottery-banner__info-item-value" }, this.stopTime))), (this.turnover !== null && this.turnover !== undefined) && (h("div", { class: "lottery-banner__info-item" }, h("span", { class: "lottery-banner__info-item-label" }, translate('turnover', this.language)), h("span", { class: "lottery-banner__info-item-value" }, this.turnover)))));
83
+ return (h("div", { class: `lottery-banner__info ${className}` }, ((_a = this.formattedTime) === null || _a === void 0 ? void 0 : _a.start) && (h("div", { class: "lottery-banner__info-item" }, h("span", { class: "lottery-banner__info-item-label" }, h("span", { class: "lottery-banner__info-item-label__strong" }, translate('start', this.language)), "\u00A0", translate('in', this.language)), h("span", { class: "lottery-banner__info-item-value" }, this.formattedTime.start))), ((_b = this.formattedTime) === null || _b === void 0 ? void 0 : _b.end) && (h("div", { class: "lottery-banner__info-item" }, h("span", { class: "lottery-banner__info-item-label" }, h("span", { class: "lottery-banner__info-item-label__strong" }, translate('stop', this.language)), "\u00A0", translate('at', this.language)), h("span", { class: "lottery-banner__info-item-value" }, this.formattedTime.end))), this.turnover !== null && this.turnover !== undefined && (h("div", { class: "lottery-banner__info-item" }, h("span", { class: "lottery-banner__info-item-label" }, translate('turnover', this.language)), h("span", { class: "lottery-banner__info-item-value" }, this.turnover)))));
58
84
  default:
59
85
  return null;
60
86
  }
61
87
  }
62
88
  render() {
63
89
  const layoutItems = this.layout.split(',').map((item) => item.trim());
64
- return (h("section", { key: 'd26c3cb4854c8fea2367df25b6e8cf11b23731e4', ref: (el) => (this.stylingContainer = el), class: "lottery-banner" }, layoutItems.map((item, index) => {
90
+ return (h("section", { key: '058aa04a8104d393f6066fd2738fb33cb6d832a2', ref: (el) => (this.stylingContainer = el), class: "lottery-banner" }, layoutItems.map((item, index) => {
65
91
  const isMiddle = layoutItems.length === 3 && index === 1;
66
92
  const className = isMiddle ? 'lottery-banner__item--center' : '';
67
93
  return this.renderElement(item, className);
@@ -203,6 +229,24 @@ export class LotteryBanner {
203
229
  "reflect": false,
204
230
  "defaultValue": "''"
205
231
  },
232
+ "startTime": {
233
+ "type": "string",
234
+ "mutable": false,
235
+ "complexType": {
236
+ "original": "string",
237
+ "resolved": "string",
238
+ "references": {}
239
+ },
240
+ "required": false,
241
+ "optional": false,
242
+ "docs": {
243
+ "tags": [],
244
+ "text": "Sales start time"
245
+ },
246
+ "attribute": "start-time",
247
+ "reflect": false,
248
+ "defaultValue": "''"
249
+ },
206
250
  "bannerTitle": {
207
251
  "type": "string",
208
252
  "mutable": false,
@@ -215,7 +259,7 @@ export class LotteryBanner {
215
259
  "optional": false,
216
260
  "docs": {
217
261
  "tags": [],
218
- "text": "Draw title"
262
+ "text": "Banner title"
219
263
  },
220
264
  "attribute": "banner-title",
221
265
  "reflect": false
@@ -257,6 +301,29 @@ export class LotteryBanner {
257
301
  }
258
302
  };
259
303
  }
304
+ static get states() {
305
+ return {
306
+ "formattedTime": {}
307
+ };
308
+ }
309
+ static get events() {
310
+ return [{
311
+ "method": "lotteryBannerTimerStop",
312
+ "name": "lotteryBannerTimerStop",
313
+ "bubbles": true,
314
+ "cancelable": true,
315
+ "composed": true,
316
+ "docs": {
317
+ "tags": [],
318
+ "text": "Event emitted when the timer stops"
319
+ },
320
+ "complexType": {
321
+ "original": "void",
322
+ "resolved": "void",
323
+ "references": {}
324
+ }
325
+ }];
326
+ }
260
327
  static get watchers() {
261
328
  return [{
262
329
  "propName": "clientStyling",
@@ -267,6 +334,12 @@ export class LotteryBanner {
267
334
  }, {
268
335
  "propName": "mbSource",
269
336
  "methodName": "handleMbSourceChange"
337
+ }, {
338
+ "propName": "startTime",
339
+ "methodName": "handleTimeChange"
340
+ }, {
341
+ "propName": "stopTime",
342
+ "methodName": "handleTimeChange"
270
343
  }];
271
344
  }
272
345
  }
@@ -2,8 +2,11 @@ const DEFAULT_LANGUAGE = 'en';
2
2
  const SUPPORTED_LANGUAGES = ['ro', 'en', 'fr', 'ar', 'hr'];
3
3
  const TRANSLATIONS = {
4
4
  en: {
5
- stopAt: 'Stop at',
6
- turnover: 'Turnover: '
5
+ stop: 'Stop',
6
+ at: 'at',
7
+ turnover: 'Turnover: ',
8
+ start: 'Sales Start',
9
+ in: 'in'
7
10
  },
8
11
  ro: {
9
12
  stop: 'Oprește',
@@ -1,4 +1,4 @@
1
- import { format as _format, parseISO } from "date-fns";
1
+ import { format as _format, differenceInSeconds, isBefore, isToday, isWithinInterval, parseISO } from "date-fns";
2
2
  export function format(first, middle, last) {
3
3
  return (first || '') + (middle ? ` ${middle}` : '') + (last ? ` ${last}` : '');
4
4
  }
@@ -24,3 +24,44 @@ export const formatDate = ({ date, type = 'date', format }) => {
24
24
  return '';
25
25
  }
26
26
  };
27
+ function formatTime(time) {
28
+ if (!time)
29
+ return;
30
+ if (isToday(new Date(time))) {
31
+ return formatDate({ date: time, format: 'HH:mm' });
32
+ }
33
+ return formatDate({ date: time, format: 'dd/MM/yyyy HH:mm' });
34
+ }
35
+ function formatCountdown(stopTime, _now) {
36
+ if (!stopTime)
37
+ return;
38
+ const endTime = typeof stopTime === 'string' ? parseISO(stopTime) : stopTime;
39
+ const now = _now && new Date();
40
+ let totalSeconds = differenceInSeconds(endTime, now);
41
+ if (totalSeconds < 0)
42
+ return '0D 00H 00M 00S';
43
+ const days = Math.floor(totalSeconds / 86400);
44
+ totalSeconds %= 86400;
45
+ const hours = Math.floor(totalSeconds / 3600);
46
+ totalSeconds %= 3600;
47
+ const minutes = Math.floor(totalSeconds / 60);
48
+ const seconds = totalSeconds % 60;
49
+ return `${days}D ${hours.toString().padStart(2, '0')}H ${minutes.toString().padStart(2, '0')}M ${seconds
50
+ .toString()
51
+ .padStart(2, '0')}S`;
52
+ }
53
+ export function getWagerTime(startTime, stopTime) {
54
+ const now = new Date();
55
+ if (startTime && isBefore(now, parseISO(startTime))) {
56
+ return { start: formatCountdown(startTime, now) };
57
+ }
58
+ if (startTime &&
59
+ stopTime &&
60
+ isWithinInterval(now, {
61
+ start: parseISO(startTime),
62
+ end: parseISO(stopTime)
63
+ })) {
64
+ return { end: formatTime(stopTime) };
65
+ }
66
+ return {};
67
+ }
@@ -1,5 +1,5 @@
1
1
  const NAMESPACE = 'lottery-banner';
2
- const BUILD = /* lottery-banner */ { allRenderFn: true, appendChildSlotFix: false, asyncLoading: true, asyncQueue: false, attachStyles: true, cloneNodeFix: false, cmpDidLoad: true, cmpDidRender: false, cmpDidUnload: false, cmpDidUpdate: false, cmpShouldUpdate: false, cmpWillLoad: true, cmpWillRender: false, cmpWillUpdate: false, connectedCallback: false, constructableCSS: true, cssAnnotations: true, devTools: false, disconnectedCallback: true, element: false, event: false, experimentalScopedSlotChanges: false, experimentalSlotFixes: false, formAssociated: false, hasRenderFn: true, hostListener: false, hostListenerTarget: false, hostListenerTargetBody: false, hostListenerTargetDocument: false, hostListenerTargetParent: false, hostListenerTargetWindow: false, hotModuleReplacement: false, hydrateClientSide: false, hydrateServerSide: false, hydratedAttribute: false, hydratedClass: true, hydratedSelectorName: "hydrated", initializeNextTick: false, invisiblePrehydration: true, isDebug: false, isDev: false, isTesting: false, lazyLoad: true, lifecycle: true, lifecycleDOMEvents: false, member: true, method: false, mode: false, observeAttribute: true, profile: false, prop: true, propBoolean: false, propMutable: false, propNumber: false, propString: true, reflect: true, scoped: false, scopedSlotTextContentFix: false, scriptDataOpts: false, shadowDelegatesFocus: false, shadowDom: true, slot: false, slotChildNodesFix: false, slotRelocation: false, state: false, style: true, svg: false, taskQueue: true, transformTagName: false, updatable: true, vdomAttribute: true, vdomClass: true, vdomFunctional: false, vdomKey: true, vdomListener: false, vdomPropOrAttr: true, vdomRef: true, vdomRender: true, vdomStyle: false, vdomText: true, vdomXlink: false, watchCallback: true };
2
+ const BUILD = /* lottery-banner */ { allRenderFn: true, appendChildSlotFix: false, asyncLoading: true, asyncQueue: false, attachStyles: true, cloneNodeFix: false, cmpDidLoad: true, cmpDidRender: false, cmpDidUnload: false, cmpDidUpdate: false, cmpShouldUpdate: false, cmpWillLoad: true, cmpWillRender: false, cmpWillUpdate: false, connectedCallback: false, constructableCSS: true, cssAnnotations: true, devTools: false, disconnectedCallback: true, element: false, event: true, experimentalScopedSlotChanges: false, experimentalSlotFixes: false, formAssociated: false, hasRenderFn: true, hostListener: false, hostListenerTarget: false, hostListenerTargetBody: false, hostListenerTargetDocument: false, hostListenerTargetParent: false, hostListenerTargetWindow: false, hotModuleReplacement: false, hydrateClientSide: false, hydrateServerSide: false, hydratedAttribute: false, hydratedClass: true, hydratedSelectorName: "hydrated", initializeNextTick: false, invisiblePrehydration: true, isDebug: false, isDev: false, isTesting: false, lazyLoad: true, lifecycle: true, lifecycleDOMEvents: false, member: true, method: false, mode: false, observeAttribute: true, profile: false, prop: true, propBoolean: false, propMutable: false, propNumber: false, propString: true, reflect: true, scoped: false, scopedSlotTextContentFix: false, scriptDataOpts: false, shadowDelegatesFocus: false, shadowDom: true, slot: false, slotChildNodesFix: false, slotRelocation: false, state: true, style: true, svg: false, taskQueue: true, transformTagName: false, updatable: true, vdomAttribute: true, vdomClass: true, vdomFunctional: false, vdomKey: true, vdomListener: false, vdomPropOrAttr: true, vdomRef: true, vdomRender: true, vdomStyle: false, vdomText: true, vdomXlink: false, watchCallback: true };
3
3
 
4
4
  /*
5
5
  Stencil Client Platform v4.19.2 | MIT Licensed | https://stenciljs.com
@@ -280,6 +280,22 @@ var parsePropertyValue = (propValue, propType) => {
280
280
  }
281
281
  return propValue;
282
282
  };
283
+ var getElement = (ref) => getHostRef(ref).$hostElement$ ;
284
+
285
+ // src/runtime/event-emitter.ts
286
+ var createEvent = (ref, name, flags) => {
287
+ const elm = getElement(ref);
288
+ return {
289
+ emit: (detail) => {
290
+ return emitEvent(elm, name, {
291
+ bubbles: !!(flags & 4 /* Bubbles */),
292
+ composed: !!(flags & 2 /* Composed */),
293
+ cancelable: !!(flags & 1 /* Cancellable */),
294
+ detail
295
+ });
296
+ }
297
+ };
298
+ };
283
299
  var emitEvent = (elm, name, opts) => {
284
300
  const ev = plt.ce(name, opts);
285
301
  elm.dispatchEvent(ev);
@@ -1148,4 +1164,4 @@ var bootstrapLazy = (lazyBundles, options = {}) => {
1148
1164
  // src/runtime/nonce.ts
1149
1165
  var setNonce = (nonce) => plt.$nonce$ = nonce;
1150
1166
 
1151
- export { bootstrapLazy as b, h, promiseResolve as p, registerInstance as r, setNonce as s };
1167
+ export { bootstrapLazy as b, createEvent as c, h, promiseResolve as p, registerInstance as r, setNonce as s };
package/dist/esm/index.js CHANGED
@@ -1,2 +1,2 @@
1
- export { L as LotteryBanner } from './lottery-banner-89c08855.js';
2
- import './index-0b45dd81.js';
1
+ export { L as LotteryBanner } from './lottery-banner-925a2ddf.js';
2
+ import './index-58dd14ef.js';
@@ -1,11 +1,11 @@
1
- import { b as bootstrapLazy } from './index-0b45dd81.js';
2
- export { s as setNonce } from './index-0b45dd81.js';
1
+ import { b as bootstrapLazy } from './index-58dd14ef.js';
2
+ export { s as setNonce } from './index-58dd14ef.js';
3
3
  import { g as globalScripts } from './app-globals-0f993ce5.js';
4
4
 
5
5
  const defineCustomElements = async (win, options) => {
6
6
  if (typeof window === 'undefined') return undefined;
7
7
  await globalScripts();
8
- return bootstrapLazy([["lottery-banner",[[1,"lottery-banner",{"mbSource":[513,"mb-source"],"clientStyling":[513,"client-styling"],"clientStylingUrl":[513,"client-styling-url"],"translationUrl":[513,"translation-url"],"language":[513],"logoUrl":[513,"logo-url"],"stopTime":[1,"stop-time"],"bannerTitle":[1,"banner-title"],"turnover":[1],"layout":[1]},null,{"clientStyling":["handleClientStylingChange"],"clientStylingUrl":["handleClientStylingUrlChange"],"mbSource":["handleMbSourceChange"]}]]]], options);
8
+ return bootstrapLazy([["lottery-banner",[[1,"lottery-banner",{"mbSource":[513,"mb-source"],"clientStyling":[513,"client-styling"],"clientStylingUrl":[513,"client-styling-url"],"translationUrl":[513,"translation-url"],"language":[513],"logoUrl":[513,"logo-url"],"stopTime":[1,"stop-time"],"startTime":[1,"start-time"],"bannerTitle":[1,"banner-title"],"turnover":[1],"layout":[1],"formattedTime":[32]},null,{"clientStyling":["handleClientStylingChange"],"clientStylingUrl":["handleClientStylingUrlChange"],"mbSource":["handleMbSourceChange"],"startTime":["handleTimeChange"],"stopTime":["handleTimeChange"]}]]]], options);
9
9
  };
10
10
 
11
11
  export { defineCustomElements };