funnel-gfx-wc 0.1.128 → 0.1.133

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.
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var index = require('./index-C7bIxnD-.js');
3
+ var index = require('./index-BFBRUSYG.js');
4
4
 
5
5
  const Radio = props => {
6
6
  const hex = props.hex || 'currentColor';
@@ -71,12 +71,13 @@ const colorFor = (key) => _namedColors[key] || _altColors[key];
71
71
  const colorKeys = Object.keys(_namedColors);
72
72
 
73
73
  const appendToMap = (map, propName, value) => {
74
- const items = map.get(propName);
75
- if (!items) {
76
- map.set(propName, [value]);
74
+ let refs = map.get(propName);
75
+ if (!refs) {
76
+ refs = [];
77
+ map.set(propName, refs);
77
78
  }
78
- else if (!items.includes(value)) {
79
- items.push(value);
79
+ if (!refs.some((ref) => ref.deref() === value)) {
80
+ refs.push(new WeakRef(value));
80
81
  }
81
82
  };
82
83
  const debounce = (fn, ms) => {
@@ -104,33 +105,54 @@ const debounce = (fn, ms) => {
104
105
  const isConnected = (maybeElement) => !('isConnected' in maybeElement) || maybeElement.isConnected;
105
106
  const cleanupElements = debounce((map) => {
106
107
  for (let key of map.keys()) {
107
- map.set(key, map.get(key).filter(isConnected));
108
+ const refs = map.get(key).filter((ref) => {
109
+ const elm = ref.deref();
110
+ return elm && isConnected(elm);
111
+ });
112
+ map.set(key, refs);
108
113
  }
109
114
  }, 2_000);
115
+ const core = index.StencilCore;
116
+ const forceUpdate = core.forceUpdate;
117
+ const getRenderingRef = core.getRenderingRef;
110
118
  const stencilSubscription = () => {
111
- if (typeof index.getRenderingRef !== 'function') {
119
+ if (typeof getRenderingRef !== 'function' || typeof forceUpdate !== 'function') {
112
120
  // If we are not in a stencil project, we do nothing.
113
121
  // This function is not really exported by @stencil/core.
114
122
  return {};
115
123
  }
124
+ const ensureForceUpdate = forceUpdate;
125
+ const ensureGetRenderingRef = getRenderingRef;
116
126
  const elmsToUpdate = new Map();
117
127
  return {
118
128
  dispose: () => elmsToUpdate.clear(),
119
129
  get: (propName) => {
120
- const elm = index.getRenderingRef();
130
+ const elm = ensureGetRenderingRef();
121
131
  if (elm) {
122
132
  appendToMap(elmsToUpdate, propName, elm);
123
133
  }
124
134
  },
125
135
  set: (propName) => {
126
- const elements = elmsToUpdate.get(propName);
127
- if (elements) {
128
- elmsToUpdate.set(propName, elements.filter(index.forceUpdate));
136
+ const refs = elmsToUpdate.get(propName);
137
+ if (refs) {
138
+ const nextRefs = refs.filter((ref) => {
139
+ const elm = ref.deref();
140
+ if (!elm)
141
+ return false;
142
+ return ensureForceUpdate(elm);
143
+ });
144
+ elmsToUpdate.set(propName, nextRefs);
129
145
  }
130
146
  cleanupElements(elmsToUpdate);
131
147
  },
132
148
  reset: () => {
133
- elmsToUpdate.forEach((elms) => elms.forEach(index.forceUpdate));
149
+ elmsToUpdate.forEach((refs) => {
150
+ refs.forEach((ref) => {
151
+ const elm = ref.deref();
152
+ if (elm)
153
+ ensureForceUpdate(elm);
154
+ });
155
+ });
134
156
  cleanupElements(elmsToUpdate);
135
157
  },
136
158
  };
@@ -138,8 +160,11 @@ const stencilSubscription = () => {
138
160
 
139
161
  const unwrap = (val) => (typeof val === 'function' ? val() : val);
140
162
  const createObservableMap = (defaultState, shouldUpdate = (a, b) => a !== b) => {
141
- const unwrappedState = unwrap(defaultState);
142
- let states = new Map(Object.entries(unwrappedState ?? {}));
163
+ const resolveDefaultState = () => (unwrap(defaultState) ?? {});
164
+ const initialState = resolveDefaultState();
165
+ let states = new Map(Object.entries(initialState));
166
+ const proxyAvailable = typeof Proxy !== 'undefined';
167
+ const plainState = proxyAvailable ? null : {};
143
168
  const handlers = {
144
169
  dispose: [],
145
170
  get: [],
@@ -151,7 +176,10 @@ const createObservableMap = (defaultState, shouldUpdate = (a, b) => a !== b) =>
151
176
  const reset = () => {
152
177
  // When resetting the state, the default state may be a function - unwrap it to invoke it.
153
178
  // otherwise, the state won't be properly reset
154
- states = new Map(Object.entries(unwrap(defaultState) ?? {}));
179
+ states = new Map(Object.entries(resolveDefaultState()));
180
+ if (!proxyAvailable) {
181
+ syncPlainStateKeys();
182
+ }
155
183
  handlers.reset.forEach((cb) => cb());
156
184
  };
157
185
  const dispose = () => {
@@ -168,12 +196,14 @@ const createObservableMap = (defaultState, shouldUpdate = (a, b) => a !== b) =>
168
196
  const oldValue = states.get(propName);
169
197
  if (shouldUpdate(value, oldValue, propName)) {
170
198
  states.set(propName, value);
199
+ if (!proxyAvailable) {
200
+ ensurePlainProperty(propName);
201
+ }
171
202
  handlers.set.forEach((cb) => cb(propName, value, oldValue));
172
203
  }
173
204
  };
174
- const state = (typeof Proxy === 'undefined'
175
- ? {}
176
- : new Proxy(unwrappedState, {
205
+ const state = (proxyAvailable
206
+ ? new Proxy(initialState, {
177
207
  get(_, propName) {
178
208
  return get(propName);
179
209
  },
@@ -193,7 +223,11 @@ const createObservableMap = (defaultState, shouldUpdate = (a, b) => a !== b) =>
193
223
  set(propName, value);
194
224
  return true;
195
225
  },
196
- }));
226
+ })
227
+ : (() => {
228
+ syncPlainStateKeys();
229
+ return plainState;
230
+ })());
197
231
  const on = (eventName, callback) => {
198
232
  handlers[eventName].push(callback);
199
233
  return () => {
@@ -206,7 +240,10 @@ const createObservableMap = (defaultState, shouldUpdate = (a, b) => a !== b) =>
206
240
  cb(newValue);
207
241
  }
208
242
  };
209
- const resetHandler = () => cb(unwrap(defaultState)[propName]);
243
+ const resetHandler = () => {
244
+ const snapshot = resolveDefaultState();
245
+ cb(snapshot[propName]);
246
+ };
210
247
  // Register the handlers
211
248
  const unSet = on('set', setHandler);
212
249
  const unReset = on('reset', resetHandler);
@@ -249,6 +286,38 @@ const createObservableMap = (defaultState, shouldUpdate = (a, b) => a !== b) =>
249
286
  changeListeners.delete(listener);
250
287
  }
251
288
  };
289
+ function ensurePlainProperty(key) {
290
+ if (proxyAvailable || !plainState) {
291
+ return;
292
+ }
293
+ if (Object.prototype.hasOwnProperty.call(plainState, key)) {
294
+ return;
295
+ }
296
+ Object.defineProperty(plainState, key, {
297
+ configurable: true,
298
+ enumerable: true,
299
+ get() {
300
+ return get(key);
301
+ },
302
+ set(value) {
303
+ set(key, value);
304
+ },
305
+ });
306
+ }
307
+ function syncPlainStateKeys() {
308
+ if (proxyAvailable || !plainState) {
309
+ return;
310
+ }
311
+ const knownKeys = new Set(states.keys());
312
+ for (const key of Object.keys(plainState)) {
313
+ if (!knownKeys.has(key)) {
314
+ delete plainState[key];
315
+ }
316
+ }
317
+ for (const key of knownKeys) {
318
+ ensurePlainProperty(key);
319
+ }
320
+ }
252
321
  return {
253
322
  state,
254
323
  get,
@@ -10314,7 +10383,197 @@ const Eswat2Io = _props => {
10314
10383
  return (index.h("a", { class: "absolute right-8 top-8 text-clrs-gray hover:text-clrs-navy", href: url, "aria-label": who, target: "blank", title: who }, index.h(Fingerprint, { label: "eswat2" })));
10315
10384
  };
10316
10385
 
10317
- const shadowCss = "/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */\n@layer properties;\n@layer theme, base, components, utilities;\n@layer theme {\n :root,\n :host {\n --font-sans:\n ui-sans-serif, system-ui, sans-serif, 'Apple Color Emoji',\n 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji';\n --spacing: 0.25rem;\n --text-xs: 0.75rem;\n --text-xs--line-height: calc(1 / 0.75);\n --font-weight-bold: 700;\n }\n}\n@layer utilities {\n .absolute {\n position: absolute;\n }\n .relative {\n position: relative;\n }\n .top-8 {\n top: calc(var(--spacing) * 8);\n }\n .right-8 {\n right: calc(var(--spacing) * 8);\n }\n .mt-3 {\n margin-top: calc(var(--spacing) * 3);\n }\n .mt-5px {\n margin-top: 5px;\n }\n .mr-0 {\n margin-right: calc(var(--spacing) * 0);\n }\n .mr-10px {\n margin-right: 10px;\n }\n .mb-10px {\n margin-bottom: 10px;\n }\n .ml-0 {\n margin-left: calc(var(--spacing) * 0);\n }\n .ml-auto {\n margin-left: auto;\n }\n .flex {\n display: flex;\n }\n .transform {\n transform: var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,)\n var(--tw-skew-x,) var(--tw-skew-y,);\n }\n .flex-col {\n flex-direction: column;\n }\n .flex-wrap {\n flex-wrap: wrap;\n }\n .items-center {\n align-items: center;\n }\n .border-solid {\n --tw-border-style: solid;\n border-style: solid;\n }\n .border-clrs-gray {\n border-color: var(--clrs-gray, #aaaaaa);\n }\n .border-clrs-slate {\n border-color: var(--clrs-slate, #708090);\n }\n .bg-clrs-blue {\n background-color: var(--clrs-blue, #0074d9);\n }\n .bg-clrs-red {\n background-color: var(--clrs-red, #ff4136);\n }\n .bg-clrs-silver {\n background-color: var(--clrs-silver, #dddddd);\n }\n .p-4 {\n padding: calc(var(--spacing) * 4);\n }\n .align-top {\n vertical-align: top;\n }\n .font-sans {\n font-family: var(--font-sans);\n }\n .text-xs {\n font-size: var(--text-xs);\n line-height: var(--tw-leading, var(--text-xs--line-height));\n }\n .font-bold {\n --tw-font-weight: var(--font-weight-bold);\n font-weight: var(--font-weight-bold);\n }\n .text-clrs-gray {\n color: var(--clrs-gray, #aaaaaa);\n }\n .text-clrs-navy {\n color: var(--clrs-navy, #001f3f);\n }\n .text-clrs-slate4 {\n color: var(--clrs-slate4, #4e5964);\n }\n .text-clrs-white {\n color: var(--clrs-white, #ffffff);\n }\n .italic {\n font-style: italic;\n }\n .shadow {\n --tw-shadow:\n 0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.1)),\n 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1));\n box-shadow:\n var(--tw-inset-shadow), var(--tw-inset-ring-shadow),\n var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .hover\\:text-clrs-navy {\n &:hover {\n @media (hover: hover) {\n color: var(--clrs-navy, #001f3f);\n }\n }\n }\n .active\\:bg-clrs-gray {\n &:active {\n background-color: var(--clrs-gray, #aaaaaa);\n }\n }\n .active\\:text-clrs-navy {\n &:active {\n color: var(--clrs-navy, #001f3f);\n }\n }\n}\n@layer components {\n .ds1-main {\n display: flex;\n flex-direction: column;\n padding: calc(var(--spacing) * 4);\n font-family: var(--font-sans);\n color: var(--clrs-navy, #001f3f);\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n }\n .ds1-button {\n display: flex;\n align-items: center;\n --tw-border-style: solid;\n border-style: solid;\n border-color: var(--clrs-slate, #708090);\n color: var(--clrs-white, #ffffff);\n &:active {\n background-color: var(--clrs-gray, #aaaaaa);\n }\n &:active {\n color: var(--clrs-navy, #001f3f);\n }\n }\n .funnel-gfx {\n --tw-border-style: solid;\n border-style: solid;\n border-color: var(--clrs-gray, #aaaaaa);\n background-color: var(--clrs-silver, #dddddd);\n stroke-width: 1;\n }\n}\n.data-button {\n border-radius: 5px;\n border-width: 1px;\n padding: 5px;\n margin: 0px;\n margin-right: 5px;\n cursor: pointer;\n}\n.funnel-gfx {\n width: calc(100% - 20px);\n height: 100%;\n padding: 10px;\n padding-bottom: 7px;\n border-radius: 10px;\n border-width: 1px;\n}\n";
10386
+ const shadowCss = () => `/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */
10387
+ @layer properties;
10388
+ @layer theme, base, components, utilities;
10389
+ @layer theme {
10390
+ :root,
10391
+ :host {
10392
+ --font-sans:
10393
+ ui-sans-serif, system-ui, sans-serif, 'Apple Color Emoji',
10394
+ 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji';
10395
+ --spacing: 0.25rem;
10396
+ --text-xs: 0.75rem;
10397
+ --text-xs--line-height: calc(1 / 0.75);
10398
+ --font-weight-bold: 700;
10399
+ }
10400
+ }
10401
+ @layer utilities {
10402
+ .absolute {
10403
+ position: absolute;
10404
+ }
10405
+ .relative {
10406
+ position: relative;
10407
+ }
10408
+ .top-8 {
10409
+ top: calc(var(--spacing) * 8);
10410
+ }
10411
+ .right-8 {
10412
+ right: calc(var(--spacing) * 8);
10413
+ }
10414
+ .mt-3 {
10415
+ margin-top: calc(var(--spacing) * 3);
10416
+ }
10417
+ .mt-5px {
10418
+ margin-top: 5px;
10419
+ }
10420
+ .mr-0 {
10421
+ margin-right: calc(var(--spacing) * 0);
10422
+ }
10423
+ .mr-10px {
10424
+ margin-right: 10px;
10425
+ }
10426
+ .mb-10px {
10427
+ margin-bottom: 10px;
10428
+ }
10429
+ .ml-0 {
10430
+ margin-left: calc(var(--spacing) * 0);
10431
+ }
10432
+ .ml-auto {
10433
+ margin-left: auto;
10434
+ }
10435
+ .flex {
10436
+ display: flex;
10437
+ }
10438
+ .transform {
10439
+ transform: var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,)
10440
+ var(--tw-skew-x,) var(--tw-skew-y,);
10441
+ }
10442
+ .flex-col {
10443
+ flex-direction: column;
10444
+ }
10445
+ .flex-wrap {
10446
+ flex-wrap: wrap;
10447
+ }
10448
+ .items-center {
10449
+ align-items: center;
10450
+ }
10451
+ .border-solid {
10452
+ --tw-border-style: solid;
10453
+ border-style: solid;
10454
+ }
10455
+ .border-clrs-gray {
10456
+ border-color: var(--clrs-gray, #aaaaaa);
10457
+ }
10458
+ .border-clrs-slate {
10459
+ border-color: var(--clrs-slate, #708090);
10460
+ }
10461
+ .bg-clrs-blue {
10462
+ background-color: var(--clrs-blue, #0074d9);
10463
+ }
10464
+ .bg-clrs-red {
10465
+ background-color: var(--clrs-red, #ff4136);
10466
+ }
10467
+ .bg-clrs-silver {
10468
+ background-color: var(--clrs-silver, #dddddd);
10469
+ }
10470
+ .p-4 {
10471
+ padding: calc(var(--spacing) * 4);
10472
+ }
10473
+ .align-top {
10474
+ vertical-align: top;
10475
+ }
10476
+ .font-sans {
10477
+ font-family: var(--font-sans);
10478
+ }
10479
+ .text-xs {
10480
+ font-size: var(--text-xs);
10481
+ line-height: var(--tw-leading, var(--text-xs--line-height));
10482
+ }
10483
+ .font-bold {
10484
+ --tw-font-weight: var(--font-weight-bold);
10485
+ font-weight: var(--font-weight-bold);
10486
+ }
10487
+ .text-clrs-gray {
10488
+ color: var(--clrs-gray, #aaaaaa);
10489
+ }
10490
+ .text-clrs-navy {
10491
+ color: var(--clrs-navy, #001f3f);
10492
+ }
10493
+ .text-clrs-slate4 {
10494
+ color: var(--clrs-slate4, #4e5964);
10495
+ }
10496
+ .text-clrs-white {
10497
+ color: var(--clrs-white, #ffffff);
10498
+ }
10499
+ .italic {
10500
+ font-style: italic;
10501
+ }
10502
+ .shadow {
10503
+ --tw-shadow:
10504
+ 0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.1)),
10505
+ 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1));
10506
+ box-shadow:
10507
+ var(--tw-inset-shadow), var(--tw-inset-ring-shadow),
10508
+ var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
10509
+ }
10510
+ .hover\:text-clrs-navy {
10511
+ &:hover {
10512
+ @media (hover: hover) {
10513
+ color: var(--clrs-navy, #001f3f);
10514
+ }
10515
+ }
10516
+ }
10517
+ .active\:bg-clrs-gray {
10518
+ &:active {
10519
+ background-color: var(--clrs-gray, #aaaaaa);
10520
+ }
10521
+ }
10522
+ .active\:text-clrs-navy {
10523
+ &:active {
10524
+ color: var(--clrs-navy, #001f3f);
10525
+ }
10526
+ }
10527
+ }
10528
+ @layer components {
10529
+ .ds1-main {
10530
+ display: flex;
10531
+ flex-direction: column;
10532
+ padding: calc(var(--spacing) * 4);
10533
+ font-family: var(--font-sans);
10534
+ color: var(--clrs-navy, #001f3f);
10535
+ -webkit-font-smoothing: antialiased;
10536
+ -moz-osx-font-smoothing: grayscale;
10537
+ }
10538
+ .ds1-button {
10539
+ display: flex;
10540
+ align-items: center;
10541
+ --tw-border-style: solid;
10542
+ border-style: solid;
10543
+ border-color: var(--clrs-slate, #708090);
10544
+ color: var(--clrs-white, #ffffff);
10545
+ &:active {
10546
+ background-color: var(--clrs-gray, #aaaaaa);
10547
+ }
10548
+ &:active {
10549
+ color: var(--clrs-navy, #001f3f);
10550
+ }
10551
+ }
10552
+ .funnel-gfx {
10553
+ --tw-border-style: solid;
10554
+ border-style: solid;
10555
+ border-color: var(--clrs-gray, #aaaaaa);
10556
+ background-color: var(--clrs-silver, #dddddd);
10557
+ stroke-width: 1;
10558
+ }
10559
+ }
10560
+ .data-button {
10561
+ border-radius: 5px;
10562
+ border-width: 1px;
10563
+ padding: 5px;
10564
+ margin: 0px;
10565
+ margin-right: 5px;
10566
+ cursor: pointer;
10567
+ }
10568
+ .funnel-gfx {
10569
+ width: calc(100% - 20px);
10570
+ height: 100%;
10571
+ padding: 10px;
10572
+ padding-bottom: 7px;
10573
+ border-radius: 10px;
10574
+ border-width: 1px;
10575
+ }
10576
+ `;
10318
10577
 
10319
10578
  const FunnelApp = class {
10320
10579
  constructor(hostRef) {
@@ -10330,6 +10589,6 @@ const FunnelApp = class {
10330
10589
  return (index.h("div", { key: '7998626a3f01e8bb4b2ed4b2b80d8b8de4a11206', id: "app", class: "ds1-main relative" }, index.h(Eswat2Io, { key: '44437debf47c76557ac6a115eec78b43a0aa2648' }), index.h(FunnelGfx, { key: 'f0806a91f365823850ab6ccebbc1339c18dd46b1' }), index.h(DataSource, { key: 'bfe9dc2f232eac7142d416c2dff3e7d8522930b7', actions: actions, state: state }), index.h(ColorPicker, { key: '23836d760ccb38b898857abd205ae186d8f05242', actions: actions, state: state }), index.h("hr", { key: '33eae1954a6b50e6a7b8c3124e92895114a8412d', class: "ml-0 mr-0" }), index.h(DataValues, { key: '4d449b22dedd37ce95356c98b00d5137008b5345', state: state })));
10331
10590
  }
10332
10591
  };
10333
- FunnelApp.style = shadowCss;
10592
+ FunnelApp.style = shadowCss();
10334
10593
 
10335
10594
  exports.funnel_app = FunnelApp;
@@ -1,21 +1,48 @@
1
1
  'use strict';
2
2
 
3
- var index = require('./index-C7bIxnD-.js');
3
+ var index = require('./index-BFBRUSYG.js');
4
4
  var appGlobals = require('./app-globals-V2Kpy_OQ.js');
5
5
 
6
6
  var _documentCurrentScript = typeof document !== 'undefined' ? document.currentScript : null;
7
7
  /*
8
- Stencil Client Patch Browser v4.38.3 | MIT Licensed | https://stenciljs.com
8
+ Stencil Client Patch Browser v4.39.0 | MIT Licensed | https://stenciljs.com
9
9
  */
10
10
 
11
11
  var patchBrowser = () => {
12
+ if (index.BUILD.isDev && !index.BUILD.isTesting) {
13
+ index.consoleDevInfo("Running in development mode.");
14
+ }
15
+ if (index.BUILD.cloneNodeFix) {
16
+ patchCloneNodeFix(index.H.prototype);
17
+ }
18
+ const scriptElm = index.BUILD.scriptDataOpts ? index.win.document && Array.from(index.win.document.querySelectorAll("script")).find(
19
+ (s) => new RegExp(`/${index.NAMESPACE}(\\.esm)?\\.js($|\\?|#)`).test(s.src) || s.getAttribute("data-stencil-namespace") === index.NAMESPACE
20
+ ) : null;
12
21
  const importMeta = (typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('funnel-gfx-wc.cjs.js', document.baseURI).href));
13
- const opts = {};
22
+ const opts = index.BUILD.scriptDataOpts ? (scriptElm || {})["data-opts"] || {} : {};
14
23
  if (importMeta !== "") {
15
24
  opts.resourcesUrl = new URL(".", importMeta).href;
16
25
  }
17
26
  return index.promiseResolve(opts);
18
27
  };
28
+ var patchCloneNodeFix = (HTMLElementPrototype) => {
29
+ const nativeCloneNodeFn = HTMLElementPrototype.cloneNode;
30
+ HTMLElementPrototype.cloneNode = function(deep) {
31
+ if (this.nodeName === "TEMPLATE") {
32
+ return nativeCloneNodeFn.call(this, deep);
33
+ }
34
+ const clonedNode = nativeCloneNodeFn.call(this, false);
35
+ const srcChildNodes = this.childNodes;
36
+ if (deep) {
37
+ for (let i = 0; i < srcChildNodes.length; i++) {
38
+ if (srcChildNodes[i].nodeType !== 2) {
39
+ clonedNode.appendChild(srcChildNodes[i].cloneNode(true));
40
+ }
41
+ }
42
+ }
43
+ return clonedNode;
44
+ };
45
+ };
19
46
 
20
47
  patchBrowser().then(async (options) => {
21
48
  await appGlobals.globalScripts();