dothtml 5.2.7 → 5.2.9

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 (55) hide show
  1. package/lib/arg-callback-obj.js +64 -0
  2. package/lib/arg-callback-obj.js.map +1 -0
  3. package/lib/built-in-components/nav-link.js +24 -0
  4. package/lib/built-in-components/nav-link.js.map +1 -0
  5. package/lib/built-in-components/router.js +282 -0
  6. package/lib/built-in-components/router.js.map +1 -0
  7. package/lib/component.js +329 -0
  8. package/lib/component.js.map +1 -0
  9. package/lib/dot-util.js +62 -0
  10. package/lib/dot-util.js.map +1 -0
  11. package/lib/dot.js +1096 -0
  12. package/lib/dot.js.map +1 -0
  13. package/lib/dothtml.d.ts +1 -0
  14. package/lib/dothtml.js +37 -2
  15. package/lib/dothtml.js.map +1 -1
  16. package/lib/err.js +26 -0
  17. package/lib/err.js.map +1 -0
  18. package/lib/event-bus.js +37 -0
  19. package/lib/event-bus.js.map +1 -0
  20. package/lib/i-dot.js +3 -0
  21. package/lib/i-dot.js.map +1 -0
  22. package/lib/node-polyfill.js +14 -0
  23. package/lib/node-polyfill.js.map +1 -0
  24. package/lib/observable-array.js +274 -0
  25. package/lib/observable-array.js.map +1 -0
  26. package/lib/styling/css-types.ts/css-angle.js +22 -0
  27. package/lib/styling/css-types.ts/css-angle.js.map +1 -0
  28. package/lib/styling/css-types.ts/css-color.js +824 -0
  29. package/lib/styling/css-types.ts/css-color.js.map +1 -0
  30. package/lib/styling/css-types.ts/css-complex.js +23 -0
  31. package/lib/styling/css-types.ts/css-complex.js.map +1 -0
  32. package/lib/styling/css-types.ts/css-data-type.js +9 -0
  33. package/lib/styling/css-types.ts/css-data-type.js.map +1 -0
  34. package/lib/styling/css-types.ts/css-filter.js +121 -0
  35. package/lib/styling/css-types.ts/css-filter.js.map +1 -0
  36. package/lib/styling/css-types.ts/css-length.js +24 -0
  37. package/lib/styling/css-types.ts/css-length.js.map +1 -0
  38. package/lib/styling/css-types.ts/css-number.js +17 -0
  39. package/lib/styling/css-types.ts/css-number.js.map +1 -0
  40. package/lib/styling/css-types.ts/css-percentage.js +13 -0
  41. package/lib/styling/css-types.ts/css-percentage.js.map +1 -0
  42. package/lib/styling/css-types.ts/css-transform.js +183 -0
  43. package/lib/styling/css-types.ts/css-transform.js.map +1 -0
  44. package/lib/styling/css-types.ts/css-unknown.js +17 -0
  45. package/lib/styling/css-types.ts/css-unknown.js.map +1 -0
  46. package/lib/styling/css-types.ts/css-url.js +45 -0
  47. package/lib/styling/css-types.ts/css-url.js.map +1 -0
  48. package/lib/styling/i-dotcss.js +3 -0
  49. package/lib/styling/i-dotcss.js.map +1 -0
  50. package/lib/styling/style-builder.js +815 -0
  51. package/lib/styling/style-builder.js.map +1 -0
  52. package/lib/styling/unit-function-tables.js +27 -0
  53. package/lib/styling/unit-function-tables.js.map +1 -0
  54. package/package.json +9 -8
  55. package/lib/dothtml.js.LICENSE.txt +0 -1
@@ -0,0 +1,329 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const observable_array_1 = __importDefault(require("./observable-array"));
7
+ const dot_1 = __importDefault(require("./dot"));
8
+ const dot_util_1 = require("./dot-util");
9
+ const err_1 = __importDefault(require("./err"));
10
+ const arg_callback_obj_1 = require("./arg-callback-obj");
11
+ class Component {
12
+ /**
13
+ * Used internally to indicate the first time $updateStyles is called.
14
+ * This method is called by the static component builder when the component is created.
15
+ * If a prop is accessed within the style builder, the getter reads this field to mark $updateStyles as a dependency.
16
+ */
17
+ #initializingStyles;
18
+ #initializingBuild;
19
+ // A bit messy but gets us to MVP for this feature.
20
+ // Ideally this should be made a singleton somehow, perhaps put in the property metadata.
21
+ #rebuildStylesOnPropChange;
22
+ #rebuildBuilderOnPropChange;
23
+ /**
24
+ * Called once per component, on the first build.
25
+ * TODO: this shouldn't require an instance of the component. Please experiment with fixing this.
26
+ */
27
+ static initializeComponent(obj) {
28
+ if (!obj.constructor.__dotComponentInitialized) {
29
+ obj.constructor.__dotComponentInitialized = true;
30
+ // Additional generic logic that should run once per component.
31
+ obj.constructor.__dotClassNumb = dot_util_1.ClassPrefix.next;
32
+ obj.constructor.__activePropContainer = function ActivePropContainer(obj) {
33
+ this.__component = obj;
34
+ };
35
+ (0, dot_util_1.eachK)(obj.props, (k, v) => {
36
+ Component.createProp(obj.constructor.__activePropContainer, k);
37
+ });
38
+ }
39
+ }
40
+ static build(obj) {
41
+ Component.initializeComponent(obj);
42
+ dot_util_1.GlobalComponentStack.push(obj);
43
+ obj.created && obj.created(...obj.__args);
44
+ if (obj.__built)
45
+ (0, err_1.default)("CB");
46
+ obj.__built = true;
47
+ obj.__propContainer = {
48
+ activePropConstructor: obj.constructor.__activePropContainer,
49
+ rawProps: obj.props || {},
50
+ activeProps: new obj.constructor.__activePropContainer(obj),
51
+ propDependencies: {},
52
+ bindings: {}
53
+ };
54
+ // eachK(obj.props, (k,v) => {
55
+ // // Initialize it.
56
+ // cc.__propContainer.activeProps[k] = cc.__propContainer.rawProps[k];
57
+ // });
58
+ obj.props = obj.__propContainer.activeProps;
59
+ (0, dot_util_1.eachK)(obj.__propContainer.rawProps, (k, v) => {
60
+ obj.__propContainer.bindings[k] = [];
61
+ obj.props[k] = v;
62
+ });
63
+ // function ComputedContainer(){
64
+ // };
65
+ // let cc = new ComputedContainer();
66
+ // eachK(obj.computed, function(k, v){
67
+ // isF(v) ? v : ERR("XF", "computed")
68
+ // //createProp(k, CC);
69
+ // ComputedContainer.prototype[k] = v;
70
+ // Object.defineProperty(ComputedContainer.prototype, k, {
71
+ // enumerable: true,
72
+ // get: function(){
73
+ // // This was commented out pre-ts.
74
+ // //configureDependency(v(), this, k);
75
+ // return v.call(obj);
76
+ // }
77
+ // });
78
+ // });
79
+ // obj.computed = cc;
80
+ Component.initializeEventHandlers(obj);
81
+ Component.rebuild(obj);
82
+ // TODO: would be great to do this without a timer, once the DOM is updated.
83
+ // May require some type of queueing system within dot.
84
+ obj.ready && (0, dot_util_1.sT)(() => {
85
+ dot_util_1.GlobalComponentStack.push(obj);
86
+ obj.ready();
87
+ dot_util_1.GlobalComponentStack.pop();
88
+ }, 0);
89
+ dot_util_1.GlobalComponentStack.pop();
90
+ return obj.$el;
91
+ }
92
+ /**
93
+ * Called any time the component needs to be completely rebuilt.
94
+ */
95
+ static rebuild(obj) {
96
+ let oldEl = obj.$el;
97
+ if (!obj.__eventsInitialized)
98
+ obj.#initializingBuild = true;
99
+ let ret = obj.builder(...obj.__args);
100
+ obj.#initializingBuild = false;
101
+ let lst = ret.getLast();
102
+ (!lst || (lst.parentNode.childNodes.length > 1)) && (0, err_1.default)("C#", obj.name || obj.constructor.name || "(unnamed obj)");
103
+ // Note: I don't know what the justification was for using $obj.el, but all tests pass without it.
104
+ // It was removed to facilitate rebuilding the component (during a prop change).
105
+ obj["__$el"] = /*obj.$el ||*/ lst;
106
+ obj.$el["__dothtml_component"] = obj;
107
+ if (oldEl) {
108
+ // Clean it up and replace it with the new element!
109
+ }
110
+ // TODO: would there be a way to not have to create obj function for each instance?
111
+ if (obj.style) {
112
+ // obj will be the officially supported way to use dothtml.
113
+ obj.$styleBuilder = function () {
114
+ // dot.css.scopeToEl(obj.$el, !obj.__stylesSet);
115
+ dot_1.default.css.scopeToEl(obj.$el);
116
+ if (!obj.__stylesSet) {
117
+ dot_1.default.css.cacheScopedStaticStyles(obj.$el);
118
+ obj.__stylesSet = true;
119
+ }
120
+ dot_1.default.css.clearDynamicStyles(obj.$el);
121
+ obj.style(dot_1.default.css);
122
+ dot_1.default.css.unscope();
123
+ };
124
+ if (!obj.__eventsInitialized)
125
+ obj.#initializingStyles = true;
126
+ obj.$updateStyles();
127
+ obj.#initializingStyles = false;
128
+ //styler();
129
+ }
130
+ obj.built && obj.built();
131
+ }
132
+ static initializeEventHandlers(obj) {
133
+ if (!obj.__eventsInitialized) {
134
+ obj.__eventsInitialized = true;
135
+ (0, dot_util_1.eachK)(obj.events, (k, v) => {
136
+ obj.events[k] = function () {
137
+ for (let f of obj.events[k]["__handlers"]) {
138
+ f.apply(this, arguments);
139
+ }
140
+ };
141
+ obj.events[k]["__handlers"] = [];
142
+ });
143
+ }
144
+ }
145
+ static createProp(activePropContainer, name) {
146
+ // var dependencies = [];
147
+ Object.defineProperty(activePropContainer.prototype, name, {
148
+ configurable: false,
149
+ enumerable: false,
150
+ get: function () {
151
+ dot_1.default["__lastProp"] = name;
152
+ dot_1.default["__lastIndex"] = null;
153
+ dot_1.default["__lastComponent"] = this.__component;
154
+ let rawProp = this.__component.__propContainer.rawProps[name];
155
+ Component.configureDependency(this.__component, name);
156
+ return rawProp;
157
+ },
158
+ set: function (value) {
159
+ // TODO: if this value is set, get the list of dependencies, and update them by calling their dot argument callbacks.
160
+ let propVal = value;
161
+ if (value instanceof Array) {
162
+ propVal = new observable_array_1.default(value);
163
+ propVal.addEventListener("read", e => {
164
+ dot_1.default["__lastIndex"] = e.index;
165
+ });
166
+ }
167
+ this.__component.__propContainer.rawProps[name] = propVal;
168
+ for (let b of this.__component.__propContainer.bindings[name]) {
169
+ (0, dot_1.default)(b.element).as(dot_1.default.input).setVal(propVal);
170
+ }
171
+ Component.updateProp(this.__component, name);
172
+ return propVal;
173
+ }
174
+ });
175
+ }
176
+ static configureDependency(cc, name) {
177
+ // TODO: verify that there is no memory leak!!
178
+ var cb = dot_1.default["__currentArgCallback"][dot_1.default["__currentArgCallback"].length - 1];
179
+ if (cb) {
180
+ // This means this getter is being used during the invocation of an arg callback.
181
+ // Add it to a collection so that when the value is set, the appropriate component will update.
182
+ let rawProp = cc.__propContainer.rawProps[name];
183
+ if (rawProp instanceof observable_array_1.default) {
184
+ rawProp.addEventListener("itemadded", function (e) {
185
+ // TODO: More test cases to create:
186
+ // TODO: what about rendering the list length or something?
187
+ // TODO: what about a computed field based on length?
188
+ if (cb instanceof arg_callback_obj_1.ArrayArgCallback) {
189
+ cb.dotTarget._appendOrCreateDocument(cb.f(e.item, e.index), undefined, e.index);
190
+ }
191
+ else if (cb) {
192
+ Component.updateProp(cc, name);
193
+ }
194
+ });
195
+ rawProp.addEventListener("itemset", function (e) {
196
+ if (cb instanceof arg_callback_obj_1.ArrayArgCallback) {
197
+ var p = cb.dotTarget.__document;
198
+ var el = p.childNodes[e.index];
199
+ p.removeChild(el);
200
+ cb.dotTarget._appendOrCreateDocument(cb.f(e.item, e.index), undefined, e.index);
201
+ }
202
+ else if (cb) {
203
+ Component.updateProp(cc, name);
204
+ }
205
+ });
206
+ rawProp.addEventListener("itemremoved", function (e) {
207
+ if (cb instanceof arg_callback_obj_1.ArrayArgCallback) {
208
+ cb.dotTarget.__document.removeChild(cb.dotTarget.__document.childNodes[e.index]);
209
+ }
210
+ else if (cb) {
211
+ Component.updateProp(cc, name);
212
+ }
213
+ });
214
+ }
215
+ else {
216
+ }
217
+ var ar = cc.__propContainer.propDependencies[name];
218
+ if (!ar)
219
+ ar = cc.__propContainer.propDependencies[name] = [];
220
+ ar.push(cb);
221
+ }
222
+ // Again I find this a weird way to do it that kind of side-steps the above approach, but it gets the job done and is dead simple.
223
+ if (cc.#initializingStyles) {
224
+ cc.#rebuildStylesOnPropChange[name] = true;
225
+ }
226
+ if (cc.#initializingBuild) {
227
+ cc.#rebuildBuilderOnPropChange[name] = true;
228
+ }
229
+ }
230
+ static updateProp(obj, name) {
231
+ let ar = obj.__propContainer.propDependencies[name];
232
+ let value = obj.__propContainer.rawProps[name];
233
+ // // {f:contentCallback,startNode:startNode, endNode:endNode,condition:condition}
234
+ let updateStyles = false;
235
+ if (false && obj.#rebuildBuilderOnPropChange[name] && !obj.#initializingBuild) {
236
+ // Call the builder again.
237
+ }
238
+ else {
239
+ // Maybe update specific areas.
240
+ // This is admittedly more efficient.
241
+ for (let i = 0; i < (ar || []).length; i++) {
242
+ let arg = ar[i];
243
+ // TODO: this could be used to update attributes.
244
+ // But right now that relies exclusively on function setters. It's a bit weird.
245
+ arg.updateContent(dot_1.default, value);
246
+ if (obj.#rebuildStylesOnPropChange[name] || (arg instanceof arg_callback_obj_1.AttrArgCallback && arg.attr == "class")) {
247
+ updateStyles = true;
248
+ }
249
+ }
250
+ }
251
+ if (updateStyles)
252
+ obj.$updateStyles();
253
+ }
254
+ constructor(...args) {
255
+ /**
256
+ * Used internally to indicate the first time $updateStyles is called.
257
+ * This method is called by the static component builder when the component is created.
258
+ * If a prop is accessed within the style builder, the getter reads this field to mark $updateStyles as a dependency.
259
+ */
260
+ this.#initializingStyles = false;
261
+ this.#initializingBuild = false;
262
+ // A bit messy but gets us to MVP for this feature.
263
+ // Ideally this should be made a singleton somehow, perhaps put in the property metadata.
264
+ this.#rebuildStylesOnPropChange = {};
265
+ this.#rebuildBuilderOnPropChange = {};
266
+ this.__built = false;
267
+ this.__stylesSet = false;
268
+ this.__eventsInitialized = false;
269
+ this.$refs = {};
270
+ this.__args = args;
271
+ }
272
+ /**
273
+ * An optional function that gets called before the component is created, scoped to the new component object.
274
+ */
275
+ created(...args) { }
276
+ /**
277
+ * An optional function called after the element has been added. One parameter will be provided containing the added element.
278
+ */
279
+ ready() { }
280
+ /**
281
+ * An optional function called before the component is deleted.
282
+ */
283
+ deleting() { }
284
+ /**
285
+ * An optional function called after the component is deleted.
286
+ */
287
+ deleted() { }
288
+ /**
289
+ * An optional function called after the component is built.
290
+ */
291
+ built() { }
292
+ on(event, handler) {
293
+ Component.initializeEventHandlers(this);
294
+ let e = this.events && this.events[event];
295
+ if (!e)
296
+ (0, err_1.default)("UE", event);
297
+ let handlers = e["__handlers"];
298
+ if (handlers.indexOf(handler) == -1) {
299
+ handlers.push(handler);
300
+ }
301
+ }
302
+ off(event, handler) {
303
+ let e = this.events && this.events[event];
304
+ if (!e)
305
+ (0, err_1.default)("UE", event);
306
+ let handlers = e["__handlers"];
307
+ let i = handlers.indexOf(handler);
308
+ if (i > -1) {
309
+ handlers.splice(i, 1);
310
+ }
311
+ }
312
+ /**
313
+ * The main element of this component - automatically set after the builder is called.
314
+ */
315
+ get $el() {
316
+ return this.__$el;
317
+ }
318
+ $updateStyles() {
319
+ this.$styleBuilder && this.$styleBuilder();
320
+ }
321
+ }
322
+ exports.default = Component;
323
+ // Eventually we'd like to set this up. Might be overkill.
324
+ // function component<T extends { new (...args: any[]): {} }>(constructor: T) {
325
+ // return class extends constructor {
326
+ //
327
+ // };
328
+ // }
329
+ //# sourceMappingURL=component.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"component.js","sourceRoot":"","sources":["../src/component.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,62 @@
1
+ "use strict";
2
+ // Polyfill for Object.keys(...).forEach.
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.numberStep = exports.floatRegex = exports.GlobalComponentStack = exports.ClassPrefix = exports.str = exports.sT = exports.isF = exports.eachK = void 0;
5
+ function eachK(obj, cb) {
6
+ if (obj) {
7
+ var lst = Object.keys(obj);
8
+ for (var i = 0; i < lst.length; i++)
9
+ cb(lst[i], obj[lst[i]]);
10
+ }
11
+ }
12
+ exports.eachK = eachK;
13
+ function isF(v) {
14
+ return v && v.constructor && v.call && v.apply;
15
+ }
16
+ exports.isF = isF;
17
+ exports.sT = setTimeout;
18
+ function str(s, v) { return (s || "").toString(v); } // This function seems really weird.
19
+ exports.str = str;
20
+ class _ClassPrefix {
21
+ constructor() {
22
+ this.current = 0x10000;
23
+ }
24
+ reset() {
25
+ this.current = 0x10000;
26
+ }
27
+ get next() {
28
+ return this.current++;
29
+ }
30
+ }
31
+ exports.ClassPrefix = new _ClassPrefix();
32
+ exports.GlobalComponentStack = [];
33
+ exports.floatRegex = new RegExp("[-+]?[0-9]*\\.?[0-9]+(?:[eE][-+]?[0-9]+)?", "g");
34
+ /**
35
+ * Function that takes in a bunch of parameters and steps the start value toward the target based on timeRemaining and style.
36
+ * currentValue is the current value.
37
+ * targetValue is the target valaue.
38
+ * timeRemaining is the time remaining in ms.
39
+ * stepProgress is the size of this step.
40
+ * totalDuration is the duration of the entire animation from start to finish (not just this step).
41
+ * style is the type of transition (geometric=exponential, ease, linear).
42
+ * Returns the result.
43
+ */
44
+ function numberStep(startValue, targetValue, currentTime, totalDuration, style) {
45
+ startValue = Number(startValue);
46
+ targetValue = Number(targetValue);
47
+ var timeRemaining = totalDuration - currentTime;
48
+ switch (style) {
49
+ case "geometric":
50
+ case "exponential": //This is kind of stupid now that we have ease. I might come back and add it in the future. For now assume ease.
51
+ // var m = Math.exp(-1 / timeRemaining);
52
+ // return targetValue + m * (startValue - targetValue);
53
+ case "ease":
54
+ var m = (-Math.cos(Math.PI * (currentTime / totalDuration)) + 1) * 0.5;
55
+ return startValue + m * (targetValue - startValue);
56
+ case "linear":
57
+ default:
58
+ return startValue + (targetValue - startValue) * (currentTime / totalDuration);
59
+ }
60
+ }
61
+ exports.numberStep = numberStep;
62
+ //# sourceMappingURL=dot-util.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dot-util.js","sourceRoot":"","sources":["../src/dot-util.ts"],"names":[],"mappings":";AAAA,yCAAyC;;;AAIzC,SAAgB,KAAK,CAAC,GAAG,EAAE,EAAE;IACzB,IAAG,GAAG,EAAC;QACH,IAAI,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC3B,KAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE;YAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;KAC/D;AACL,CAAC;AALD,sBAKC;AAED,SAAgB,GAAG,CAAC,CAAC;IACjB,OAAO,CAAC,IAAI,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,KAAK,CAAC;AACnD,CAAC;AAFD,kBAEC;AAEY,QAAA,EAAE,GAAG,UAAU,CAAC;AAC7B,SAAgB,GAAG,CAAC,CAAS,EAAC,CAAS,IAAE,OAAO,CAAC,CAAC,IAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAA,CAAA,CAAC,CAAC,oCAAoC;AAAzG,kBAAoE;AAEpE,MAAM,YAAY;IAAlB;QACY,YAAO,GAAW,OAAO,CAAC;IAStC,CAAC;IAPG,KAAK;QACD,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IAC3B,CAAC;IAED,IAAI,IAAI;QACJ,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC;IAC1B,CAAC;CACJ;AAEY,QAAA,WAAW,GAAG,IAAI,YAAY,EAAE,CAAA;AAEhC,QAAA,oBAAoB,GAAqB,EAAE,CAAC;AAK9C,QAAA,UAAU,GAAG,IAAI,MAAM,CAAC,2CAA2C,EAAE,GAAG,CAAC,CAAC;AAErF;;;;;;;;;EASE;AACF,SAAgB,UAAU,CAAC,UAAkB,EAAE,WAAmB,EAAE,WAAmB,EAAE,aAAqB,EAAE,KAAoB;IAEnI,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;IAChC,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;IAElC,IAAI,aAAa,GAAI,aAAa,GAAG,WAAW,CAAC;IAEjD,QAAO,KAAK,EAAC;QACZ,KAAK,WAAW,CAAC;QACjB,KAAK,aAAa,CAAC,CAAA,gHAAgH;QACnI,wCAAwC;QACxC,wDAAwD;QACxD,KAAK,MAAM;YACV,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,WAAW,GAAG,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC;YACvE,OAAQ,UAAU,GAAG,CAAC,GAAG,CAAC,WAAW,GAAG,UAAU,CAAC,CAAC;QACrD,KAAK,QAAQ,CAAC;QACd;YACC,OAAO,UAAU,GAAG,CAAC,WAAW,GAAG,UAAU,CAAC,GAAG,CAAC,WAAW,GAAG,aAAa,CAAC,CAAC;KAChF;AACF,CAAC;AAnBD,gCAmBC"}