@verbb/formie-web-components 1.0.13 → 1.0.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +17 -0
- package/README.md +3 -3
- package/dist/field-utils.d.ts +3 -3
- package/dist/field-utils.d.ts.map +1 -1
- package/dist/form-element.d.ts +1 -1
- package/dist/form-element.d.ts.map +1 -1
- package/dist/{formie-core-form.d.ts → formie-client-form.d.ts} +7 -4
- package/dist/formie-client-form.d.ts.map +1 -0
- package/dist/index.d.ts +3 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +491 -432
- package/dist/registry.d.ts +1 -1
- package/dist/render-view.d.ts +3 -3
- package/dist/render-view.d.ts.map +1 -1
- package/dist/signature-element.d.ts +4 -4
- package/dist/signature-element.d.ts.map +1 -1
- package/dist/{signature_pad-D-mX46zR.js → signature_pad-dbpVgfTh.js} +32 -18
- package/dist/types.d.ts +9 -4
- package/dist/types.d.ts.map +1 -1
- package/package.json +3 -3
- package/dist/formie-core-form.d.ts.map +0 -1
package/dist/registry.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { FormieRegionKey } from './types.js';
|
|
2
2
|
export declare function assertValidCustomElementName(name: string): void;
|
|
3
3
|
/**
|
|
4
|
-
* UI overrides for `<formie-
|
|
4
|
+
* UI overrides for `<formie-client-form>`. Assign to `formie-client-form.registry` or mutate the
|
|
5
5
|
* default singleton from {@link getFormieRegistry}.
|
|
6
6
|
*/
|
|
7
7
|
export declare class FormieRegistry {
|
package/dist/render-view.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type
|
|
1
|
+
import { type ClientFormInstance, type ClientFormState } from '@verbb/formie-core';
|
|
2
2
|
import { type TemplateResult } from 'lit';
|
|
3
3
|
import { type FormieRegistry } from './registry.js';
|
|
4
4
|
import type { LitElement } from 'lit';
|
|
@@ -7,8 +7,8 @@ export type FormieRenderHost = LitElement & {
|
|
|
7
7
|
};
|
|
8
8
|
export type RenderViewContext = {
|
|
9
9
|
registry: FormieRegistry;
|
|
10
|
-
state:
|
|
11
|
-
instance:
|
|
10
|
+
state: ClientFormState;
|
|
11
|
+
instance: ClientFormInstance;
|
|
12
12
|
host: FormieRenderHost;
|
|
13
13
|
formClass: string;
|
|
14
14
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"render-view.d.ts","sourceRoot":"","sources":["../src/render-view.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"render-view.d.ts","sourceRoot":"","sources":["../src/render-view.ts"],"names":[],"mappings":"AACA,OAAO,EAaH,KAAK,kBAAkB,EACvB,KAAK,eAAe,EAEvB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAiB,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AAIzD,OAAO,EAAgC,KAAK,cAAc,EAAE,MAAM,eAAe,CAAC;AAGlF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,KAAK,CAAC;AAEtC,MAAM,MAAM,gBAAgB,GAAG,UAAU,GAAG;IACxC,aAAa,CAAC,IAAI,CAAC,EAAE,WAAW,EAAE,QAAQ,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;CAC/D,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC5B,QAAQ,EAAE,cAAc,CAAC;IACzB,KAAK,EAAE,eAAe,CAAC;IACvB,QAAQ,EAAE,kBAAkB,CAAC;IAC7B,IAAI,EAAE,gBAAgB,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;CACrB,CAAC;AAsnBF,wBAAgB,cAAc,CAAC,GAAG,EAAE,iBAAiB,GAAG,cAAc,CAsDrE;AA4BD,wBAAgB,iBAAiB,CAAC,OAAO,SAAkB,GAAG,cAAc,CAE3E;AAED,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,cAAc,CAE/D"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { LitElement } from 'lit';
|
|
2
|
-
import type {
|
|
3
|
-
/** Internal `<formie-internal-signature>` used by `<formie-
|
|
2
|
+
import type { ClientFieldDefinition, ClientFormDefinition } from '@verbb/formie-core';
|
|
3
|
+
/** Internal `<formie-internal-signature>` used by `<formie-client-form>` for draw-signature fields. */
|
|
4
4
|
export declare class FormieInternalSignature extends LitElement {
|
|
5
5
|
static styles: import("lit").CSSResult;
|
|
6
|
-
field:
|
|
7
|
-
modules:
|
|
6
|
+
field: ClientFieldDefinition;
|
|
7
|
+
modules: ClientFormDefinition['modules'];
|
|
8
8
|
value: string;
|
|
9
9
|
disabled: boolean;
|
|
10
10
|
private loadError;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"signature-element.d.ts","sourceRoot":"","sources":["../src/signature-element.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,UAAU,EAAO,MAAM,KAAK,CAAC;AAE5C,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"signature-element.d.ts","sourceRoot":"","sources":["../src/signature-element.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,UAAU,EAAO,MAAM,KAAK,CAAC;AAE5C,OAAO,KAAK,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAGtF,uGAAuG;AACvG,qBAAa,uBAAwB,SAAQ,UAAU;IACnD,OAAgB,MAAM,0BAkCpB;IAGF,KAAK,EAAG,qBAAqB,CAAC;IAG9B,OAAO,EAAE,oBAAoB,CAAC,SAAS,CAAC,CAAmE;IAG3G,KAAK,SAAM;IAGX,QAAQ,UAAS;IAGjB,OAAO,CAAC,SAAS,CAAuB;IAExC,OAAO,CAAC,GAAG,CAOK;IAEhB,OAAO,CAAC,cAAc,CAEpB;IAEa,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;IAqCnC,oBAAoB,IAAI,IAAI;IAWrC,OAAO,CAAC,WAAW,CAMjB;IAEF,OAAO,CAAC,uBAAuB;IAS/B,OAAO,CAAC,YAAY;IAcX,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAcrD,OAAO,CAAC,oBAAoB;IAoB5B,OAAO,CAAC,SAAS;IAsBR,MAAM;CAqBlB"}
|
|
@@ -21,6 +21,12 @@ var e = class {
|
|
|
21
21
|
constructor(e, t, n, r, i, a) {
|
|
22
22
|
this.startPoint = e, this.control2 = t, this.control1 = n, this.endPoint = r, this.startWidth = i, this.endWidth = a;
|
|
23
23
|
}
|
|
24
|
+
startPoint;
|
|
25
|
+
control2;
|
|
26
|
+
control1;
|
|
27
|
+
endPoint;
|
|
28
|
+
startWidth;
|
|
29
|
+
endWidth;
|
|
24
30
|
static fromPoints(e, n) {
|
|
25
31
|
let r = this.calculateControlPoints(e[0], e[1], e[2]).c2, i = this.calculateControlPoints(e[1], e[2], e[3]).c1;
|
|
26
32
|
return new t(e[1], r, i, e[2], n.start, n.end);
|
|
@@ -88,6 +94,7 @@ var i = class i extends n {
|
|
|
88
94
|
constructor(e, t = {}) {
|
|
89
95
|
super(), this.canvas = e, this.velocityFilterWeight = t.velocityFilterWeight || .7, this.minWidth = t.minWidth || .5, this.maxWidth = t.maxWidth || 2.5, this.throttle = t.throttle ?? 16, this.minDistance = t.minDistance ?? 5, this.dotSize = t.dotSize || 0, this.penColor = t.penColor || "black", this.backgroundColor = t.backgroundColor || "rgba(0,0,0,0)", this.compositeOperation = t.compositeOperation || "source-over", this.canvasContextOptions = t.canvasContextOptions ?? {}, this._strokeMoveUpdate = this.throttle ? r(i.prototype._strokeUpdate, this.throttle) : i.prototype._strokeUpdate, this._handleMouseDown = this._handleMouseDown.bind(this), this._handleMouseMove = this._handleMouseMove.bind(this), this._handleMouseUp = this._handleMouseUp.bind(this), this._handleTouchStart = this._handleTouchStart.bind(this), this._handleTouchMove = this._handleTouchMove.bind(this), this._handleTouchEnd = this._handleTouchEnd.bind(this), this._handlePointerDown = this._handlePointerDown.bind(this), this._handlePointerMove = this._handlePointerMove.bind(this), this._handlePointerUp = this._handlePointerUp.bind(this), this._handlePointerCancel = this._handlePointerCancel.bind(this), this._handleTouchCancel = this._handleTouchCancel.bind(this), this._ctx = e.getContext("2d", this.canvasContextOptions), this.clear(), this.on();
|
|
90
96
|
}
|
|
97
|
+
canvas;
|
|
91
98
|
dotSize;
|
|
92
99
|
minWidth;
|
|
93
100
|
maxWidth;
|
|
@@ -156,7 +163,7 @@ var i = class i extends n {
|
|
|
156
163
|
return this._isEmpty;
|
|
157
164
|
}
|
|
158
165
|
fromData(e, { clear: t = !0 } = {}) {
|
|
159
|
-
t && this.clear(), this._fromData(e, this._drawCurve.bind(this), this._drawDot.bind(this)), this._data = this._data.concat(e);
|
|
166
|
+
t && this.clear(), this._fromData(e, this._drawCurve.bind(this), this._drawDot.bind(this), this._drawLine.bind(this)), this._data = this._data.concat(e);
|
|
160
167
|
}
|
|
161
168
|
toData() {
|
|
162
169
|
return this._data;
|
|
@@ -184,7 +191,7 @@ var i = class i extends n {
|
|
|
184
191
|
};
|
|
185
192
|
}
|
|
186
193
|
_handleMouseDown(e) {
|
|
187
|
-
|
|
194
|
+
this._isLeftButtonPressed(e, !0) && !this._drawingStroke && this._strokeBegin(this._pointerEventToSignatureEvent(e));
|
|
188
195
|
}
|
|
189
196
|
_handleMouseMove(e) {
|
|
190
197
|
if (!this._isLeftButtonPressed(e, !0) || !this._drawingStroke) {
|
|
@@ -224,7 +231,7 @@ var i = class i extends n {
|
|
|
224
231
|
return this._strokePointerId === void 0 ? t : this._getPointerId(e) === this._strokePointerId;
|
|
225
232
|
}
|
|
226
233
|
_handlePointerDown(e) {
|
|
227
|
-
this._drawingStroke
|
|
234
|
+
!this._drawingStroke && this._isLeftButtonPressed(e) && this._allowPointerId(e, !0) && (this._strokePointerId = this._getPointerId(e), e.preventDefault(), this._strokeBegin(this._pointerEventToSignatureEvent(e)));
|
|
228
235
|
}
|
|
229
236
|
_handlePointerMove(e) {
|
|
230
237
|
if (this._allowPointerId(e)) {
|
|
@@ -236,7 +243,7 @@ var i = class i extends n {
|
|
|
236
243
|
}
|
|
237
244
|
}
|
|
238
245
|
_handlePointerUp(e) {
|
|
239
|
-
this._isLeftButtonPressed(e)
|
|
246
|
+
!this._isLeftButtonPressed(e) && this._allowPointerId(e) && (e.preventDefault(), this._strokeEnd(this._pointerEventToSignatureEvent(e)));
|
|
240
247
|
}
|
|
241
248
|
_getPointGroupOptions(e) {
|
|
242
249
|
return {
|
|
@@ -261,10 +268,7 @@ var i = class i extends n {
|
|
|
261
268
|
case "touchstart":
|
|
262
269
|
t("touchmove", this._handleTouchMove, { passive: !1 }), t("touchend", this._handleTouchEnd, { passive: !1 }), t("touchcancel", this._handleTouchCancel, { passive: !1 });
|
|
263
270
|
break;
|
|
264
|
-
case "pointerdown":
|
|
265
|
-
t("pointermove", this._handlePointerMove, { passive: !1 }), t("pointerup", this._handlePointerUp, { passive: !1 }), t("pointercancel", this._handlePointerCancel, { passive: !1 });
|
|
266
|
-
break;
|
|
267
|
-
default:
|
|
271
|
+
case "pointerdown": t("pointermove", this._handlePointerMove, { passive: !1 }), t("pointerup", this._handlePointerUp, { passive: !1 }), t("pointercancel", this._handlePointerCancel, { passive: !1 });
|
|
268
272
|
}
|
|
269
273
|
this._drawingStroke = !0;
|
|
270
274
|
let n = this._getPointGroupOptions(), r = {
|
|
@@ -347,20 +351,27 @@ var i = class i extends n {
|
|
|
347
351
|
}
|
|
348
352
|
n.closePath(), n.fill();
|
|
349
353
|
}
|
|
354
|
+
_getDotSize(e) {
|
|
355
|
+
return e.dotSize > 0 ? e.dotSize : (e.minWidth + e.maxWidth) / 2;
|
|
356
|
+
}
|
|
350
357
|
_drawDot(e, t) {
|
|
351
|
-
let n = this._ctx, r =
|
|
358
|
+
let n = this._ctx, r = this._getDotSize(t);
|
|
352
359
|
n.beginPath(), this._drawCurveSegment(e.x, e.y, r), n.closePath(), n.fillStyle = t.penColor, n.fill();
|
|
353
360
|
}
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
361
|
+
_drawLine(e, t, n) {
|
|
362
|
+
let r = this._ctx;
|
|
363
|
+
r.save(), r.beginPath(), r.moveTo(e.x, e.y), r.lineTo(t.x, t.y), r.lineWidth = this._getDotSize(n) * 2, r.lineCap = "round", r.strokeStyle = n.penColor, r.stroke(), r.restore(), this._isEmpty = !1;
|
|
364
|
+
}
|
|
365
|
+
_fromData(t, n, r, i) {
|
|
366
|
+
for (let a of t) {
|
|
367
|
+
let { points: t } = a, o = this._getPointGroupOptions(a);
|
|
368
|
+
if (t.length > 2) for (let r = 0; r < t.length; r += 1) {
|
|
369
|
+
let i = t[r], a = new e(i.x, i.y, i.pressure, i.time);
|
|
370
|
+
r === 0 && this._reset(o);
|
|
371
|
+
let s = this._addPoint(a, o);
|
|
372
|
+
s && n(s, o);
|
|
362
373
|
}
|
|
363
|
-
else this._reset(
|
|
374
|
+
else t.length === 2 ? (this._reset(o), i(t[0], t[1], o)) : (this._reset(o), r(t[0], o));
|
|
364
375
|
}
|
|
365
376
|
}
|
|
366
377
|
toSVG({ includeBackgroundColor: e = !1, includeDataUrl: t = !1 } = {}) {
|
|
@@ -382,6 +393,9 @@ var i = class i extends n {
|
|
|
382
393
|
}, (e, { penColor: t, dotSize: n, minWidth: r, maxWidth: i }) => {
|
|
383
394
|
let a = document.createElement("circle"), s = n > 0 ? n : (r + i) / 2;
|
|
384
395
|
a.setAttribute("r", s.toString()), a.setAttribute("cx", e.x.toString()), a.setAttribute("cy", e.y.toString()), a.setAttribute("fill", t), o.appendChild(a);
|
|
396
|
+
}, (e, t, n) => {
|
|
397
|
+
let r = document.createElement("line");
|
|
398
|
+
r.setAttribute("x1", e.x.toString()), r.setAttribute("y1", e.y.toString()), r.setAttribute("x2", t.x.toString()), r.setAttribute("y2", t.y.toString()), r.setAttribute("stroke", n.penColor), r.setAttribute("stroke-width", (this._getDotSize(n) * 2).toString()), r.setAttribute("stroke-linecap", "round"), o.appendChild(r);
|
|
385
399
|
}), o.outerHTML;
|
|
386
400
|
}
|
|
387
401
|
};
|
package/dist/types.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { ClientErrorAriaLive, ClientFieldDefinition } from '@verbb/formie-core';
|
|
2
2
|
/** Dispatched as `formie-control-value-change` from custom field controls (`bubbles` + `composed`). */
|
|
3
3
|
export declare const FORMIE_CONTROL_VALUE_EVENT = "formie-control-value-change";
|
|
4
4
|
/**
|
|
@@ -6,9 +6,12 @@ export declare const FORMIE_CONTROL_VALUE_EVENT = "formie-control-value-change";
|
|
|
6
6
|
* Set as properties on the host; listen for {@link FORMIE_CONTROL_VALUE_EVENT}.
|
|
7
7
|
*/
|
|
8
8
|
export type FormieFieldControlElement = HTMLElement & {
|
|
9
|
-
field:
|
|
9
|
+
field: ClientFieldDefinition;
|
|
10
10
|
value: unknown;
|
|
11
11
|
errorKey: string;
|
|
12
|
+
errors: string[];
|
|
13
|
+
errorId: string;
|
|
14
|
+
errorAriaLive: ClientErrorAriaLive;
|
|
12
15
|
disabled: boolean;
|
|
13
16
|
hidden: boolean;
|
|
14
17
|
};
|
|
@@ -18,9 +21,11 @@ export type FormieFieldControlElement = HTMLElement & {
|
|
|
18
21
|
* Use a **default slot** (or light DOM projection) where the control is rendered.
|
|
19
22
|
*/
|
|
20
23
|
export type FormieFieldElement = HTMLElement & {
|
|
21
|
-
field:
|
|
24
|
+
field: ClientFieldDefinition;
|
|
22
25
|
errors: string[];
|
|
26
|
+
errorId: string;
|
|
27
|
+
errorAriaLive: ClientErrorAriaLive;
|
|
23
28
|
};
|
|
24
|
-
/** Keys for optional custom elements that replace default layout regions on `<formie-
|
|
29
|
+
/** Keys for optional custom elements that replace default layout regions on `<formie-client-form>`. */
|
|
25
30
|
export type FormieRegionKey = 'form' | 'page' | 'errorSummary' | 'loading' | 'pageActions';
|
|
26
31
|
//# sourceMappingURL=types.d.ts.map
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAErF,uGAAuG;AACvG,eAAO,MAAM,0BAA0B,gCAAgC,CAAC;AAExE;;;GAGG;AACH,MAAM,MAAM,yBAAyB,GAAG,WAAW,GAAG;IAClD,KAAK,EAAE,qBAAqB,CAAC;IAC7B,KAAK,EAAE,OAAO,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,mBAAmB,CAAC;IACnC,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE,OAAO,CAAC;CACnB,CAAC;AAEF;;;;GAIG;AACH,MAAM,MAAM,kBAAkB,GAAG,WAAW,GAAG;IAC3C,KAAK,EAAE,qBAAqB,CAAC;IAC7B,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,mBAAmB,CAAC;CACtC,CAAC;AAEF,uGAAuG;AACvG,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,MAAM,GAAG,cAAc,GAAG,SAAS,GAAG,aAAa,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@verbb/formie-web-components",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.14",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"module": "./dist/index.js",
|
|
@@ -39,8 +39,8 @@
|
|
|
39
39
|
"build": "vite build && tsc -p tsconfig.json"
|
|
40
40
|
},
|
|
41
41
|
"dependencies": {
|
|
42
|
-
"@verbb/formie-browser": "1.0.
|
|
43
|
-
"@verbb/formie-core": "1.0.
|
|
42
|
+
"@verbb/formie-browser": "1.0.14",
|
|
43
|
+
"@verbb/formie-core": "1.0.14",
|
|
44
44
|
"lit": "^3.3.2",
|
|
45
45
|
"signature_pad": "^5.1.3"
|
|
46
46
|
},
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"formie-core-form.d.ts","sourceRoot":"","sources":["../src/formie-core-form.ts"],"names":[],"mappings":"AAAA,OAAO,EAOH,KAAK,oBAAoB,EAE5B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,UAAU,EAAE,MAAM,KAAK,CAAC;AAGjC,OAAO,EAAmD,KAAK,cAAc,EAAE,MAAM,eAAe,CAAC;AASrG,qBAAa,cAAe,SAAQ,UAAU;IACd,QAAQ,SAAM;IAEY,UAAU,SAAM;IAiBtE,MAAM,CAAC,EAAE,MAAM,CAAC;IAYhB,SAAS,EAAE,MAAM,GAAG,SAAS,CAAU;IAcvC,gBAAgB,EAAE,kBAAkB,CAAiB;IAEA,SAAS,SAAM;IAEV,cAAc,SAAmB;IAE3F,wEAAwE;IACxC,QAAQ,EAAE,cAAc,GAAG,SAAS,CAAC;IAE5D,OAAO,CAAC,SAAS,CAAuB;IAExC,OAAO,CAAC,OAAO,CAAS;IAExB,OAAO,CAAC,QAAQ,CAAkC;IAE3D,OAAO,CAAC,QAAQ,CAAqC;IAErD,OAAO,CAAC,aAAa,CAAyB;IAE9C,OAAO,CAAC,cAAc,CAAK;IAElB,gBAAgB,IAAI,WAAW,GAAG,gBAAgB;IAIlD,oBAAoB,IAAI,IAAI;IAK5B,iBAAiB,IAAI,IAAI;cAKf,UAAU,CAAC,OAAO,EAAE,GAAG,CAAC,WAAW,EAAE,OAAO,CAAC,GAAG,IAAI;IAcvE,qFAAqF;IACrF,iBAAiB,IAAI,oBAAoB,GAAG,IAAI;IAIhD,uDAAuD;IACjD,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAI7B,OAAO,KAAK,gBAAgB,GAE3B;IAED,OAAO,CAAC,QAAQ;YAWF,SAAS;cAqFJ,MAAM;CAmC5B"}
|