@onereach/ui-components 23.2.2 → 23.2.3-beta.5589.0
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/dist/esm/{OrCode-DzvIFmRm.mjs → OrCode-CI1Corli.mjs} +63 -64
- package/dist/esm/OrCode-CI1Corli.mjs.map +1 -0
- package/dist/esm/components/index.mjs +1 -1
- package/dist/esm/components/or-code-v3/index.mjs +1 -1
- package/dist/esm/index.mjs +1 -1
- package/dist/types/components/or-code-v3/OrCode.vue.d.ts +1 -1
- package/package.json +4 -5
- package/dist/esm/OrCode-DzvIFmRm.mjs.map +0 -1
|
@@ -1,22 +1,22 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import { O as
|
|
1
|
+
import { indentWithTab as ro } from "@codemirror/commands";
|
|
2
|
+
import { Compartment as F, EditorState as H } from "@codemirror/state";
|
|
3
|
+
import { keymap as no, EditorView as k } from "@codemirror/view";
|
|
4
|
+
import { useIdAttribute as lo, useControlAttributes as ao, useValidationAttributes as so, useProxyModelValue as io, useTheme as uo } from "@onereach/ui-components-common/hooks";
|
|
5
|
+
import { O as co } from "./OrIconButton-BlHCLpeW.mjs";
|
|
6
|
+
import { O as mo } from "./OrModal-CQhwUYFk.mjs";
|
|
7
|
+
import { basicSetup as fo } from "codemirror";
|
|
8
|
+
import { defineComponent as D, ref as h, computed as B, resolveComponent as p, openBlock as I, createElementBlock as L, normalizeClass as V, createVNode as v, withCtx as n, renderSlot as a, createTextVNode as g, toDisplayString as C, createElementVNode as W, withDirectives as z, createBlock as R, vShow as J, createCommentVNode as G, reactive as po, toRef as yo, watch as T, onMounted as bo, onUnmounted as ho, createSlots as A, withModifiers as vo } from "vue";
|
|
9
|
+
import { O as go } from "./OrError-B5ihH6-3.mjs";
|
|
10
10
|
import { O as Co } from "./OrHint-NvbZyURY.mjs";
|
|
11
11
|
import { O as So } from "./OrInputBox-6ciokFdU.mjs";
|
|
12
12
|
import { O as Oo } from "./OrLabel-DssheqEn.mjs";
|
|
13
13
|
import { _ as P } from "./_plugin-vue_export-helper-CHgC5LLL.mjs";
|
|
14
|
-
const
|
|
14
|
+
const wo = [
|
|
15
15
|
// Layout
|
|
16
16
|
"layout-column",
|
|
17
17
|
// Spacing
|
|
18
18
|
"gap-xs"
|
|
19
|
-
],
|
|
19
|
+
], $o = [
|
|
20
20
|
// Layout
|
|
21
21
|
"layout-column",
|
|
22
22
|
// Sizing
|
|
@@ -33,17 +33,16 @@ const ko = [
|
|
|
33
33
|
"!mx-0",
|
|
34
34
|
"!my-0",
|
|
35
35
|
// Theme
|
|
36
|
-
"theme-background-
|
|
37
|
-
"dark:theme-background-default-dark",
|
|
36
|
+
"theme-background-transparent",
|
|
38
37
|
// todo: https://onereach.atlassian.net/browse/UI-580
|
|
39
38
|
"dark:invert dark:hue-rotate-180"
|
|
40
|
-
],
|
|
39
|
+
], ko = [
|
|
41
40
|
// Sizing
|
|
42
41
|
"!h-full"
|
|
43
42
|
], Bo = D({
|
|
44
43
|
name: "OrCodeControl",
|
|
45
44
|
components: {
|
|
46
|
-
OrError:
|
|
45
|
+
OrError: go,
|
|
47
46
|
OrHint: Co,
|
|
48
47
|
OrInputBox: So,
|
|
49
48
|
OrLabel: Oo
|
|
@@ -96,7 +95,7 @@ const ko = [
|
|
|
96
95
|
}
|
|
97
96
|
const y = B(() => [
|
|
98
97
|
"or-code-control-v3",
|
|
99
|
-
|
|
98
|
+
...$o
|
|
100
99
|
]), m = B(() => [
|
|
101
100
|
...U
|
|
102
101
|
]);
|
|
@@ -111,12 +110,12 @@ const ko = [
|
|
|
111
110
|
}
|
|
112
111
|
});
|
|
113
112
|
function Vo(o, r, S, i, y, m) {
|
|
114
|
-
const s = p("OrLabel"), b = p("OrInputBox"), O = p("OrHint"),
|
|
113
|
+
const s = p("OrLabel"), b = p("OrInputBox"), O = p("OrHint"), w = p("OrError");
|
|
115
114
|
return I(), L("div", {
|
|
116
115
|
ref: "root",
|
|
117
116
|
class: V(o.rootStyles)
|
|
118
117
|
}, [
|
|
119
|
-
|
|
118
|
+
v(s, {
|
|
120
119
|
"control-id": o.controlId,
|
|
121
120
|
variant: "input",
|
|
122
121
|
required: o.required,
|
|
@@ -127,12 +126,12 @@ function Vo(o, r, S, i, y, m) {
|
|
|
127
126
|
]),
|
|
128
127
|
default: n(() => [
|
|
129
128
|
a(o.$slots, "label", {}, () => [
|
|
130
|
-
|
|
129
|
+
g(C(o.label), 1)
|
|
131
130
|
])
|
|
132
131
|
]),
|
|
133
132
|
_: 3
|
|
134
133
|
}, 8, ["control-id", "required", "disabled"]),
|
|
135
|
-
|
|
134
|
+
v(b, {
|
|
136
135
|
class: V(["grow"]),
|
|
137
136
|
size: "m",
|
|
138
137
|
invalid: !!o.error || !!o.$slots.error,
|
|
@@ -153,17 +152,17 @@ function Vo(o, r, S, i, y, m) {
|
|
|
153
152
|
}, {
|
|
154
153
|
default: n(() => [
|
|
155
154
|
a(o.$slots, "hint", {}, () => [
|
|
156
|
-
|
|
155
|
+
g(C(o.hint), 1)
|
|
157
156
|
])
|
|
158
157
|
]),
|
|
159
158
|
_: 3
|
|
160
159
|
}, 8, ["disabled"])), [
|
|
161
160
|
[J, !o.error]
|
|
162
161
|
]) : G("", !0),
|
|
163
|
-
z(
|
|
162
|
+
z(v(w, { disabled: o.disabled }, {
|
|
164
163
|
default: n(() => [
|
|
165
164
|
a(o.$slots, "error", {}, () => [
|
|
166
|
-
|
|
165
|
+
g(C(o.error), 1)
|
|
167
166
|
])
|
|
168
167
|
]),
|
|
169
168
|
_: 3
|
|
@@ -177,9 +176,9 @@ var c = /* @__PURE__ */ ((o) => (o.HTML = "html", o.CSS = "css", o.JS = "js", o.
|
|
|
177
176
|
const Mo = D({
|
|
178
177
|
name: "OrCode",
|
|
179
178
|
components: {
|
|
180
|
-
OrModal:
|
|
179
|
+
OrModal: mo,
|
|
181
180
|
OrCodeControl: Eo,
|
|
182
|
-
OrIconButton:
|
|
181
|
+
OrIconButton: co
|
|
183
182
|
},
|
|
184
183
|
model: {
|
|
185
184
|
prop: "modelValue",
|
|
@@ -249,16 +248,16 @@ const Mo = D({
|
|
|
249
248
|
setup(o, r) {
|
|
250
249
|
const S = h(), i = h(), y = h(), m = h(), s = B(() => [
|
|
251
250
|
"or-code-v3",
|
|
252
|
-
...
|
|
251
|
+
...wo
|
|
253
252
|
]), b = B(() => [
|
|
254
253
|
...U
|
|
255
254
|
]), O = B(() => [
|
|
256
|
-
|
|
257
|
-
]),
|
|
258
|
-
id:
|
|
259
|
-
...
|
|
260
|
-
...
|
|
261
|
-
}), E =
|
|
255
|
+
...ko
|
|
256
|
+
]), w = new F(), N = new F(), j = new F(), q = new F(), K = po({
|
|
257
|
+
id: lo(),
|
|
258
|
+
...ao(),
|
|
259
|
+
...so()
|
|
260
|
+
}), E = io(yo(o, "modelValue"), r.emit), Q = async (e) => {
|
|
262
261
|
switch (e) {
|
|
263
262
|
case c.HTML:
|
|
264
263
|
return (await import("@codemirror/lang-html")).html();
|
|
@@ -286,12 +285,12 @@ const Mo = D({
|
|
|
286
285
|
var e, t;
|
|
287
286
|
(t = (e = m.value) == null ? void 0 : e.open) == null || t.call(e);
|
|
288
287
|
}
|
|
289
|
-
const d =
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
288
|
+
const d = uo(), _ = [
|
|
289
|
+
fo,
|
|
290
|
+
no.of([
|
|
291
|
+
ro
|
|
293
292
|
]),
|
|
294
|
-
|
|
293
|
+
k.domEventHandlers({
|
|
295
294
|
input: (e) => {
|
|
296
295
|
r.emit("input", e);
|
|
297
296
|
},
|
|
@@ -308,11 +307,11 @@ const Mo = D({
|
|
|
308
307
|
r.emit("blur", e);
|
|
309
308
|
}
|
|
310
309
|
}),
|
|
311
|
-
|
|
310
|
+
k.theme({
|
|
312
311
|
"&": {
|
|
313
312
|
overflow: "hidden",
|
|
314
313
|
color: d.textColor["on-background"],
|
|
315
|
-
backgroundColor:
|
|
314
|
+
backgroundColor: "transparent"
|
|
316
315
|
},
|
|
317
316
|
"&.cm-focused": {
|
|
318
317
|
outline: "none"
|
|
@@ -333,16 +332,16 @@ const Mo = D({
|
|
|
333
332
|
backgroundColor: d.backgroundColor["primary-opacity-0-08"]
|
|
334
333
|
}
|
|
335
334
|
})
|
|
336
|
-
], x =
|
|
335
|
+
], x = H.create({
|
|
337
336
|
doc: E.value,
|
|
338
337
|
extensions: [
|
|
339
338
|
..._,
|
|
340
339
|
N.of([]),
|
|
341
|
-
|
|
342
|
-
j.of([
|
|
343
|
-
q.of([
|
|
340
|
+
w.of(o.extensions),
|
|
341
|
+
j.of([H.readOnly.of(o.readonly)]),
|
|
342
|
+
q.of([k.editable.of(!o.disabled)])
|
|
344
343
|
]
|
|
345
|
-
}), l = new
|
|
344
|
+
}), l = new k({
|
|
346
345
|
state: x,
|
|
347
346
|
dispatch: (e) => {
|
|
348
347
|
l.update([
|
|
@@ -350,7 +349,7 @@ const Mo = D({
|
|
|
350
349
|
]), e.docChanged && (E.value = String(l.state.doc));
|
|
351
350
|
}
|
|
352
351
|
});
|
|
353
|
-
return
|
|
352
|
+
return T(E, (e) => {
|
|
354
353
|
if (l.composing || l.state.doc.toString() === e)
|
|
355
354
|
return;
|
|
356
355
|
const t = e ?? "", { selection: u } = l.state;
|
|
@@ -362,19 +361,19 @@ const Mo = D({
|
|
|
362
361
|
},
|
|
363
362
|
selection: u.ranges.some((f) => f.to > t.length) ? { anchor: t.length } : u
|
|
364
363
|
});
|
|
365
|
-
}),
|
|
364
|
+
}), T([
|
|
366
365
|
() => o.extensions,
|
|
367
366
|
() => o.language,
|
|
368
367
|
() => o.readonly,
|
|
369
368
|
() => o.disabled
|
|
370
369
|
], async ([e, t, u, f], [, M, oo, eo]) => {
|
|
371
|
-
let
|
|
372
|
-
if (u !== oo &&
|
|
370
|
+
let $ = [];
|
|
371
|
+
if (u !== oo && $.push(j.reconfigure(H.readOnly.of(u))), f !== eo && $.push(q.reconfigure(k.editable.of(!f))), t !== M) {
|
|
373
372
|
const to = await Q(t);
|
|
374
|
-
|
|
373
|
+
$.push(N.reconfigure([to]));
|
|
375
374
|
}
|
|
376
|
-
|
|
377
|
-
}, { immediate: !0 }),
|
|
375
|
+
$.push(w.reconfigure(e)), l.dispatch({ effects: $ });
|
|
376
|
+
}, { immediate: !0 }), T(() => {
|
|
378
377
|
var e;
|
|
379
378
|
return (e = m.value) == null ? void 0 : e.state;
|
|
380
379
|
}, (e) => {
|
|
@@ -382,10 +381,10 @@ const Mo = D({
|
|
|
382
381
|
var t, u, f, M;
|
|
383
382
|
e === "open" ? (u = (t = y.value) == null ? void 0 : t.control) == null || u.append(l.dom) : (M = (f = i.value) == null ? void 0 : f.control) == null || M.append(l.dom);
|
|
384
383
|
});
|
|
385
|
-
}),
|
|
384
|
+
}), bo(() => {
|
|
386
385
|
var e, t;
|
|
387
386
|
(t = (e = i.value) == null ? void 0 : e.control) == null || t.append(l.dom);
|
|
388
|
-
}),
|
|
387
|
+
}), ho(() => {
|
|
389
388
|
l.destroy();
|
|
390
389
|
}), {
|
|
391
390
|
root: S,
|
|
@@ -412,7 +411,7 @@ function Io(o, r, S, i, y, m) {
|
|
|
412
411
|
ref: "root",
|
|
413
412
|
class: V(o.rootStyles)
|
|
414
413
|
}, [
|
|
415
|
-
|
|
414
|
+
v(b, {
|
|
416
415
|
ref: "control",
|
|
417
416
|
"control-id": o.controlAttributes.id,
|
|
418
417
|
label: o.label,
|
|
@@ -420,10 +419,10 @@ function Io(o, r, S, i, y, m) {
|
|
|
420
419
|
error: o.error,
|
|
421
420
|
disabled: o.disabled,
|
|
422
421
|
readonly: o.readonly
|
|
423
|
-
},
|
|
422
|
+
}, A({
|
|
424
423
|
label: n(() => [
|
|
425
424
|
a(o.$slots, "label", {}, () => [
|
|
426
|
-
|
|
425
|
+
g(C(o.label), 1)
|
|
427
426
|
])
|
|
428
427
|
]),
|
|
429
428
|
addon: n(() => [
|
|
@@ -432,13 +431,13 @@ function Io(o, r, S, i, y, m) {
|
|
|
432
431
|
o.enableFullscreen ? (I(), R(s, {
|
|
433
432
|
key: 0,
|
|
434
433
|
icon: "fullscreen",
|
|
435
|
-
onClick: r[0] || (r[0] =
|
|
434
|
+
onClick: r[0] || (r[0] = vo((w) => o.openFullscreen(), ["stop"]))
|
|
436
435
|
})) : G("", !0)
|
|
437
436
|
])
|
|
438
437
|
]),
|
|
439
438
|
hint: n(() => [
|
|
440
439
|
a(o.$slots, "hint", {}, () => [
|
|
441
|
-
|
|
440
|
+
g(C(o.hint), 1)
|
|
442
441
|
])
|
|
443
442
|
]),
|
|
444
443
|
_: 2
|
|
@@ -451,25 +450,25 @@ function Io(o, r, S, i, y, m) {
|
|
|
451
450
|
key: "0"
|
|
452
451
|
} : void 0
|
|
453
452
|
]), 1032, ["control-id", "label", "hint", "error", "disabled", "readonly"]),
|
|
454
|
-
|
|
453
|
+
v(O, {
|
|
455
454
|
ref: "modal",
|
|
456
455
|
"additional-styles": o.modalStyles,
|
|
457
456
|
size: "l"
|
|
458
|
-
},
|
|
457
|
+
}, A({
|
|
459
458
|
header: n(() => [
|
|
460
459
|
a(o.$slots, "label", {}, () => [
|
|
461
|
-
|
|
460
|
+
g(C(o.label), 1)
|
|
462
461
|
])
|
|
463
462
|
]),
|
|
464
463
|
default: n(() => [
|
|
465
|
-
|
|
464
|
+
v(b, {
|
|
466
465
|
ref: "fullscreenControl",
|
|
467
466
|
"control-id": o.controlAttributes.id,
|
|
468
467
|
hint: o.hint,
|
|
469
468
|
error: o.error,
|
|
470
469
|
disabled: o.disabled,
|
|
471
470
|
readonly: o.readonly
|
|
472
|
-
},
|
|
471
|
+
}, A({
|
|
473
472
|
addon: n(() => [
|
|
474
473
|
a(o.$slots, "addon")
|
|
475
474
|
]),
|
|
@@ -501,4 +500,4 @@ export {
|
|
|
501
500
|
c as C,
|
|
502
501
|
Po as O
|
|
503
502
|
};
|
|
504
|
-
//# sourceMappingURL=OrCode-
|
|
503
|
+
//# sourceMappingURL=OrCode-CI1Corli.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OrCode-CI1Corli.mjs","sources":["../../../components/or-code-v3/src/styles.ts","../../../components/or-code-v3/src/partials/OrCodeControl.vue","../../../components/or-code-v3/src/props.ts","../../../components/or-code-v3/src/OrCode.vue"],"sourcesContent":["export const Code: string[] = [\n // Layout\n 'layout-column',\n\n // Spacing\n 'gap-xs',\n];\n\nexport const CodeControlRoot: string[] = [\n // Layout\n 'layout-column',\n\n // Sizing\n 'h-full',\n\n // Spacing\n 'gap-xs',\n];\n\nexport const CodeControl: string[] = [\n // Layout\n 'grid',\n\n // Box\n 'w-full',\n 'h-full',\n\n // Spacing\n '!mx-0',\n '!my-0',\n\n // Theme\n 'theme-background-transparent',\n\n // todo: https://onereach.atlassian.net/browse/UI-580\n 'dark:invert dark:hue-rotate-180',\n];\n\nexport const CodeModal: string[] = [\n // Sizing\n '!h-full',\n];\n","<template>\n <div\n :ref=\"'root'\"\n :class=\"rootStyles\"\n >\n <OrLabel\n :control-id=\"controlId\"\n :variant=\"'input'\"\n :required=\"required\"\n :disabled=\"disabled\"\n >\n <slot name=\"label\">\n {{ label }}\n </slot>\n\n <template v-slot:addon>\n <slot name=\"addon\" />\n </template>\n </OrLabel>\n\n <OrInputBox\n :class=\"['grow']\"\n :size=\"'m'\"\n :invalid=\"!!error || !!$slots.error\"\n :readonly=\"readonly\"\n :disabled=\"disabled\"\n >\n <div\n :ref=\"'control'\"\n :class=\"controlStyles\"\n />\n </OrInputBox>\n\n <template v-if=\"$slots.hint || hint\">\n <OrHint\n v-show=\"!error\"\n :disabled=\"disabled\"\n >\n <slot name=\"hint\">\n {{ hint }}\n </slot>\n </OrHint>\n </template>\n\n <OrError\n v-show=\"typeof error === 'string' && error.length > 0 || $slots.error\"\n :disabled=\"disabled\"\n >\n <slot name=\"error\">\n {{ error }}\n </slot>\n </OrError>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { computed, defineComponent, ref } from 'vue';\nimport { OrErrorV3 as OrError } from '@onereach/ui-components.or-error-v3';\nimport { OrHintV3 as OrHint } from '@onereach/ui-components.or-hint-v3';\nimport { OrInputBoxV3 as OrInputBox } from '@onereach/ui-components.or-input-box-v3';\nimport { OrLabelV3 as OrLabel } from '@onereach/ui-components.or-label-v3';\nimport { CodeControl, CodeControlRoot } from '../styles';\n\nexport default defineComponent({\n name: 'OrCodeControl',\n\n components: {\n OrError,\n OrHint,\n OrInputBox,\n OrLabel,\n },\n\n props: {\n error: {\n type: [String, Boolean],\n default: undefined,\n },\n\n required: {\n type: Boolean,\n default: false,\n },\n\n controlId: {\n type: String,\n default: undefined,\n },\n\n label: {\n type: String,\n default: undefined,\n },\n\n readonly: {\n type: Boolean,\n default: false,\n },\n\n disabled: {\n type: Boolean,\n default: false,\n },\n\n hint: {\n type: String,\n default: undefined,\n },\n },\n\n expose: [\n 'root',\n 'control',\n\n 'focus',\n 'blur',\n ],\n\n setup() {\n // Refs\n const root = ref<HTMLElement>();\n const control = ref<HTMLElement>();\n\n // Methods\n function focus(): void {\n control.value?.focus();\n }\n\n function blur(): void {\n control.value?.blur();\n }\n // Styles\n const rootStyles = computed(() => [\n 'or-code-control-v3',\n ...CodeControlRoot,\n ]);\n\n const controlStyles = computed(() => [\n ...CodeControl,\n ]);\n\n return {\n root,\n control,\n rootStyles,\n controlStyles,\n focus,\n blur,\n };\n },\n});\n</script>\n","export enum CodeLanguage {\n HTML = 'html',\n CSS = 'css',\n JS = 'js',\n TS = 'ts',\n JSON = 'json',\n MD = 'md',\n}\n","<template>\n <div\n :ref=\"'root'\"\n :class=\"rootStyles\"\n >\n <OrCodeControl\n :ref=\"'control'\"\n :control-id=\"controlAttributes.id\"\n :label=\"label\"\n :hint=\"hint\"\n :error=\"error\"\n :disabled=\"disabled\"\n :readonly=\"readonly\"\n >\n <template v-slot:label>\n <slot name=\"label\">\n {{ label }}\n </slot>\n </template>\n <template v-slot:addon>\n <div :class=\"['layout-row', 'gap-xs']\">\n <slot name=\"addon\" />\n\n <OrIconButton\n v-if=\"enableFullscreen\"\n :icon=\"'fullscreen'\"\n @click.stop=\"openFullscreen()\"\n />\n </div>\n </template>\n <template v-slot:hint>\n <slot name=\"hint\">\n {{ hint }}\n </slot>\n </template>\n <template\n v-if=\"$slots.error\"\n v-slot:error\n >\n <slot name=\"error\" />\n </template>\n </OrCodeControl>\n\n <OrModal\n :ref=\"'modal'\"\n :additional-styles=\"modalStyles\"\n :size=\"'l'\"\n >\n <template v-slot:header>\n <slot name=\"label\">\n {{ label }}\n </slot>\n </template>\n\n <OrCodeControl\n :ref=\"'fullscreenControl'\"\n :control-id=\"controlAttributes.id\"\n :hint=\"hint\"\n :error=\"error\"\n :disabled=\"disabled\"\n :readonly=\"readonly\"\n >\n <template v-slot:addon>\n <slot name=\"addon\" />\n </template>\n <template\n v-if=\"$slots.error\"\n v-slot:error\n >\n <slot name=\"error\" />\n </template>\n </OrCodeControl>\n\n <template\n v-if=\"$slots.modalFooter\"\n v-slot:footer\n >\n <slot name=\"modalFooter\" />\n </template>\n </OrModal>\n </div>\n</template>\n\n<script lang=\"ts\">\n\n/* Codemirror core */\n\nimport { indentWithTab } from '@codemirror/commands';\nimport { Compartment, EditorState, Extension } from '@codemirror/state';\nimport { EditorView, keymap } from '@codemirror/view';\nimport { useControlAttributes, useIdAttribute, useProxyModelValue, useTheme, useValidationAttributes } from '@onereach/ui-components-common/hooks';\n\n/* Components */\nimport { OrIconButtonV3 as OrIconButton } from '@onereach/ui-components.or-icon-button-v3';\nimport { OrModalV3 as OrModal } from '@onereach/ui-components.or-modal-v3';\nimport { basicSetup } from 'codemirror';\nimport { PropType, computed, defineComponent, onMounted, onUnmounted, reactive, ref, toRef, watch } from 'vue';\n\nimport OrCodeControl from './partials/OrCodeControl.vue';\nimport { CodeLanguage } from './props';\nimport { Code, CodeControl, CodeModal } from './styles';\n\nexport default defineComponent({\n name: 'OrCode',\n\n components: {\n OrModal,\n OrCodeControl,\n OrIconButton,\n },\n\n model: {\n prop: 'modelValue',\n event: 'update:modelValue',\n },\n\n props: {\n modelValue: {\n type: String,\n default: undefined,\n },\n\n language: {\n type: String as PropType<CodeLanguage>,\n default: () => CodeLanguage.JS,\n },\n\n extensions: {\n type: Array as PropType<Extension[]>,\n default: () => [],\n },\n\n label: {\n type: String,\n default: undefined,\n },\n\n hint: {\n type: String,\n default: undefined,\n },\n\n error: {\n type: [String, Boolean],\n default: undefined,\n },\n\n required: {\n type: Boolean,\n default: false,\n },\n\n readonly: {\n type: Boolean,\n default: false,\n },\n\n disabled: {\n type: Boolean,\n default: false,\n },\n\n // todo: review flag prop, seems better to set 'false' default value\n enableFullscreen: {\n type: Boolean,\n default: true,\n },\n },\n\n emits: [\n 'update:modelValue',\n\n 'input',\n 'keydown',\n 'keyup',\n 'focus',\n 'blur',\n ],\n\n expose: [\n 'root',\n\n 'editorView',\n 'control',\n 'fullscreenControl',\n 'modal',\n\n 'focus',\n 'blur',\n 'openFullscreen',\n ],\n\n setup(props, context) {\n // Refs\n const root = ref<HTMLElement>();\n const control = ref<InstanceType<typeof OrCodeControl>>();\n const fullscreenControl = ref<InstanceType<typeof OrCodeControl>>();\n\n const modal = ref<InstanceType<typeof OrModal>>();\n\n // Styles\n const rootStyles = computed(() => [\n 'or-code-v3',\n ...Code,\n ]);\n\n const controlStyles = computed(() => [\n ...CodeControl,\n ]);\n\n const modalStyles = computed(() => [\n ...CodeModal,\n ]);\n\n const addedExtensionCompartment = new Compartment();\n const languageExtensionCompartment = new Compartment();\n const readonlyExtensionCompartment = new Compartment();\n const disabledExtensionCompartment = new Compartment();\n\n // State\n const controlAttributes = reactive({\n id: useIdAttribute(),\n ...useControlAttributes(),\n ...useValidationAttributes(),\n });\n\n const proxyModelValue = useProxyModelValue(toRef(props, 'modelValue'), context.emit);\n\n const getLanguageExtension = async (language: CodeLanguage) => {\n switch (language) {\n case CodeLanguage.HTML:\n return (await import('@codemirror/lang-html')).html();\n\n case CodeLanguage.CSS:\n return (await import('@codemirror/lang-css')).css();\n\n case CodeLanguage.JS:\n return (await import('@codemirror/lang-javascript')).javascript();\n\n case CodeLanguage.TS:\n return (await import('@codemirror/lang-javascript')).javascript({ typescript: true });\n\n case CodeLanguage.JSON:\n return (await import('@codemirror/lang-json')).json();\n\n case CodeLanguage.MD:\n return (await import('@codemirror/lang-markdown')).markdown();\n }\n };\n\n // Methods\n function focus(): void {\n (control.value?.focus as unknown as () => void)?.();\n }\n\n function blur(): void {\n (control.value?.blur as unknown as () => void)?.();\n }\n\n function openFullscreen(): void {\n (modal.value?.open as unknown as () => void)?.();\n }\n\n // #region Codemirror\n const theme = useTheme();\n const defaultExtensions = [\n basicSetup,\n\n keymap.of([\n indentWithTab,\n ]),\n\n EditorView.domEventHandlers({\n input: (event) => {\n context.emit('input', event);\n },\n\n keydown: (event) => {\n context.emit('keydown', event);\n },\n\n keyup: (event) => {\n context.emit('keyup', event);\n },\n\n focus: (event) => {\n context.emit('focus', event);\n },\n\n blur: (event) => {\n context.emit('blur', event);\n },\n }),\n\n EditorView.theme({\n '&': {\n overflow: 'hidden',\n\n color: theme.textColor['on-background'],\n backgroundColor: 'transparent',\n },\n\n '&.cm-focused': {\n outline: 'none',\n },\n\n '.cm-scroller': {\n fontFamily: theme.fontFamily['caption'],\n fontWeight: theme.fontWeight['caption'],\n fontSize: theme.fontSize['caption'],\n lineHeight: theme.lineHeight['caption'],\n },\n\n '.cm-gutters': {\n color: theme.textColor['on-background'],\n backgroundColor: theme.backgroundColor['primary-opacity-0-12'],\n borderColor: theme.borderColor['outline'],\n\n backdropFilter: 'blur(2px)',\n },\n\n '.cm-activeLineGutter, .cm-activeLine': {\n backgroundColor: theme.backgroundColor['primary-opacity-0-08'],\n },\n }),\n ];\n\n const state = EditorState.create({\n doc: proxyModelValue.value,\n\n extensions: [\n ...defaultExtensions,\n languageExtensionCompartment.of([]),\n addedExtensionCompartment.of(props.extensions),\n readonlyExtensionCompartment.of([EditorState.readOnly.of(props.readonly)]),\n disabledExtensionCompartment.of([EditorView.editable.of(!props.disabled)]),\n ],\n });\n\n const editorView = new EditorView({\n state,\n\n dispatch: (transaction) => {\n editorView.update([\n transaction,\n ]);\n\n if (transaction.docChanged) {\n proxyModelValue.value = String(editorView.state.doc);\n }\n },\n });\n\n watch(proxyModelValue, (value) => {\n if (editorView.composing) return;\n if (editorView.state.doc.toString() === value) return;\n\n const modelValue = value ?? '';\n const { selection } = editorView.state;\n\n editorView!.dispatch({\n changes: {\n from: 0,\n to: editorView!.state.doc.length,\n insert: modelValue,\n },\n\n selection: selection.ranges.some((range) => range.to > modelValue.length) ? { anchor: modelValue.length } : selection,\n });\n });\n\n watch([\n () => props.extensions,\n () => props.language,\n () => props.readonly,\n () => props.disabled,\n ], async ([extensions, language, readonly, disabled], [, prevLanguage, pevReadonly, pevDisabled]) => {\n let effects = [];\n\n if (readonly !== pevReadonly) {\n effects.push(readonlyExtensionCompartment.reconfigure(EditorState.readOnly.of(readonly)));\n }\n\n if (disabled !== pevDisabled) {\n effects.push(disabledExtensionCompartment.reconfigure(EditorView.editable.of(!disabled)));\n }\n\n if (language !== prevLanguage) {\n const languageExt = await getLanguageExtension(language as CodeLanguage);\n\n effects.push(languageExtensionCompartment.reconfigure([languageExt]));\n }\n\n effects.push(addedExtensionCompartment.reconfigure(extensions));\n\n editorView!.dispatch({ effects });\n }, { immediate: true });\n // #endregion\n\n // Effects\n watch(() => modal.value?.state, (value) => {\n setTimeout(() => {\n if (value === 'open') {\n (fullscreenControl.value?.control as unknown as HTMLElement)?.append(editorView.dom);\n } else {\n (control.value?.control as unknown as HTMLElement)?.append(editorView.dom);\n }\n });\n });\n\n // Lifecycle\n onMounted(() => {\n (control.value?.control as unknown as HTMLElement)?.append(editorView.dom);\n });\n\n onUnmounted(() => {\n editorView.destroy();\n });\n\n return {\n root,\n editorView,\n control,\n fullscreenControl,\n modal,\n rootStyles,\n controlStyles,\n modalStyles,\n controlAttributes,\n proxyModelValue,\n focus,\n blur,\n openFullscreen,\n };\n },\n});\n</script>\n"],"names":["Code","CodeControlRoot","CodeControl","CodeModal","_sfc_main$1","defineComponent","OrError","OrHint","OrInputBox","OrLabel","root","ref","control","focus","_a","blur","rootStyles","computed","controlStyles","_resolveComponent","_openBlock","_createElementBlock","_normalizeClass","_ctx","_component_OrLabel","_renderSlot","_createVNode","_component_OrInputBox","_withCtx","_createElementVNode","_withDirectives","_createBlock","_component_OrHint","_createCommentVNode","_component_OrError","CodeLanguage","_sfc_main","OrModal","OrCodeControl","OrIconButton","props","context","fullscreenControl","modal","modalStyles","addedExtensionCompartment","Compartment","languageExtensionCompartment","readonlyExtensionCompartment","disabledExtensionCompartment","controlAttributes","reactive","useIdAttribute","useControlAttributes","useValidationAttributes","proxyModelValue","useProxyModelValue","toRef","getLanguageExtension","language","_b","openFullscreen","theme","useTheme","defaultExtensions","basicSetup","keymap","indentWithTab","EditorView","event","state","EditorState","editorView","transaction","watch","value","modelValue","selection","range","extensions","readonly","disabled","prevLanguage","pevReadonly","pevDisabled","effects","languageExt","_d","_c","onMounted","onUnmounted","_component_OrCodeControl","_createSlots","_hoisted_1","_component_OrIconButton","_component_OrModal"],"mappings":"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"}
|
|
@@ -9,7 +9,7 @@ import { C as b, O as k } from "../OrCard-7awJu_df.mjs";
|
|
|
9
9
|
import { O as B } from "../OrCheckboxGroup-BgAvcSVe.mjs";
|
|
10
10
|
import { O as h } from "../OrCheckboxTree-DvIftMpp.mjs";
|
|
11
11
|
import { O as v } from "../OrCheckbox-CI-mxgEp.mjs";
|
|
12
|
-
import { C as L, O as M } from "../OrCode-
|
|
12
|
+
import { C as L, O as M } from "../OrCode-CI1Corli.mjs";
|
|
13
13
|
import { lintGutter as y, linter as G } from "@codemirror/lint";
|
|
14
14
|
import { javascript as N } from "@codemirror/lang-javascript";
|
|
15
15
|
import { json as H, jsonParseLinter as Q } from "@codemirror/lang-json";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { C as t, O as e } from "../../OrCode-
|
|
1
|
+
import { C as t, O as e } from "../../OrCode-CI1Corli.mjs";
|
|
2
2
|
import { lintGutter as m, linter as p } from "@codemirror/lint";
|
|
3
3
|
import { javascript as i } from "@codemirror/lang-javascript";
|
|
4
4
|
import { json as n, jsonParseLinter as s } from "@codemirror/lang-json";
|
package/dist/esm/index.mjs
CHANGED
|
@@ -9,7 +9,7 @@ import { C as b, O as k } from "./OrCard-7awJu_df.mjs";
|
|
|
9
9
|
import { O as B } from "./OrCheckboxGroup-BgAvcSVe.mjs";
|
|
10
10
|
import { O as h } from "./OrCheckboxTree-DvIftMpp.mjs";
|
|
11
11
|
import { O as v } from "./OrCheckbox-CI-mxgEp.mjs";
|
|
12
|
-
import { C as L, O as M } from "./OrCode-
|
|
12
|
+
import { C as L, O as M } from "./OrCode-CI1Corli.mjs";
|
|
13
13
|
import { lintGutter as y, linter as G } from "@codemirror/lint";
|
|
14
14
|
import { javascript as N } from "@codemirror/lang-javascript";
|
|
15
15
|
import { json as H, jsonParseLinter as Q } from "@codemirror/lang-json";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { PropType } from 'vue';
|
|
2
1
|
import { Extension } from '@codemirror/state';
|
|
3
2
|
import { EditorView } from '@codemirror/view';
|
|
3
|
+
import { PropType } from 'vue';
|
|
4
4
|
import { CodeLanguage } from './props';
|
|
5
5
|
declare const _default: import("vue").DefineComponent<{
|
|
6
6
|
modelValue: {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@onereach/ui-components",
|
|
3
|
-
"version": "23.2.
|
|
3
|
+
"version": "23.2.3-beta.5589.0",
|
|
4
4
|
"description": "Vue components library for v3",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"sideEffects": false,
|
|
@@ -46,8 +46,8 @@
|
|
|
46
46
|
"@codemirror/view": "^6",
|
|
47
47
|
"@floating-ui/dom": "1.5.3",
|
|
48
48
|
"@lezer/highlight": "*",
|
|
49
|
-
"@onereach/styles": "^23.2.
|
|
50
|
-
"@onereach/ui-components-common": "^23.2.
|
|
49
|
+
"@onereach/styles": "^23.2.3-beta.5589.0",
|
|
50
|
+
"@onereach/ui-components-common": "^23.2.3-beta.5589.0",
|
|
51
51
|
"@splidejs/splide": "4.0.6",
|
|
52
52
|
"@tiptap/core": "2.0.3",
|
|
53
53
|
"@tiptap/extension-blockquote": "2.0.3",
|
|
@@ -102,6 +102,5 @@
|
|
|
102
102
|
"publishConfig": {
|
|
103
103
|
"access": "public"
|
|
104
104
|
},
|
|
105
|
-
"npmUnpacked": "4.15.2"
|
|
106
|
-
"gitHead": "543a035984eea9f48b88b90ee9a7b45720a09968"
|
|
105
|
+
"npmUnpacked": "4.15.2"
|
|
107
106
|
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"OrCode-DzvIFmRm.mjs","sources":["../../../components/or-code-v3/src/styles.ts","../../../components/or-code-v3/src/partials/OrCodeControl.vue","../../../components/or-code-v3/src/props.ts","../../../components/or-code-v3/src/OrCode.vue"],"sourcesContent":["export const Code: string[] = [\n // Layout\n 'layout-column',\n\n // Spacing\n 'gap-xs',\n];\n\nexport const CodeControlRoot: string[] = [\n // Layout\n 'layout-column',\n\n // Sizing\n 'h-full',\n\n // Spacing\n 'gap-xs',\n];\n\nexport const CodeControl: string[] = [\n // Layout\n 'grid',\n\n // Box\n 'w-full',\n 'h-full',\n\n // Spacing\n '!mx-0',\n '!my-0',\n\n // Theme\n 'theme-background-default',\n 'dark:theme-background-default-dark',\n\n // todo: https://onereach.atlassian.net/browse/UI-580\n 'dark:invert dark:hue-rotate-180',\n];\n\nexport const CodeModal: string[] = [\n // Sizing\n '!h-full',\n];\n","<template>\n <div\n :ref=\"'root'\"\n :class=\"rootStyles\"\n >\n <OrLabel\n :control-id=\"controlId\"\n :variant=\"'input'\"\n :required=\"required\"\n :disabled=\"disabled\"\n >\n <slot name=\"label\">\n {{ label }}\n </slot>\n\n <template v-slot:addon>\n <slot name=\"addon\" />\n </template>\n </OrLabel>\n\n <OrInputBox\n :class=\"['grow']\"\n :size=\"'m'\"\n :invalid=\"!!error || !!$slots.error\"\n :readonly=\"readonly\"\n :disabled=\"disabled\"\n >\n <div\n :ref=\"'control'\"\n :class=\"controlStyles\"\n />\n </OrInputBox>\n\n <template v-if=\"$slots.hint || hint\">\n <OrHint\n v-show=\"!error\"\n :disabled=\"disabled\"\n >\n <slot name=\"hint\">\n {{ hint }}\n </slot>\n </OrHint>\n </template>\n\n <OrError\n v-show=\"typeof error === 'string' && error.length > 0 || $slots.error\"\n :disabled=\"disabled\"\n >\n <slot name=\"error\">\n {{ error }}\n </slot>\n </OrError>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { computed, defineComponent, ref } from 'vue';\nimport { OrErrorV3 as OrError } from '@onereach/ui-components.or-error-v3';\nimport { OrHintV3 as OrHint } from '@onereach/ui-components.or-hint-v3';\nimport { OrInputBoxV3 as OrInputBox } from '@onereach/ui-components.or-input-box-v3';\nimport { OrLabelV3 as OrLabel } from '@onereach/ui-components.or-label-v3';\nimport { CodeControl, CodeControlRoot } from '../styles';\n\nexport default defineComponent({\n name: 'OrCodeControl',\n\n components: {\n OrError,\n OrHint,\n OrInputBox,\n OrLabel,\n },\n\n props: {\n error: {\n type: [String, Boolean],\n default: undefined,\n },\n\n required: {\n type: Boolean,\n default: false,\n },\n\n controlId: {\n type: String,\n default: undefined,\n },\n\n label: {\n type: String,\n default: undefined,\n },\n\n readonly: {\n type: Boolean,\n default: false,\n },\n\n disabled: {\n type: Boolean,\n default: false,\n },\n\n hint: {\n type: String,\n default: undefined,\n },\n },\n\n expose: [\n 'root',\n 'control',\n\n 'focus',\n 'blur',\n ],\n\n setup() {\n // Refs\n const root = ref<HTMLElement>();\n const control = ref<HTMLElement>();\n\n // Methods\n function focus(): void {\n control.value?.focus();\n }\n\n function blur(): void {\n control.value?.blur();\n }\n // Styles\n const rootStyles = computed(() => [\n 'or-code-control-v3',\n ...CodeControlRoot,\n ]);\n\n const controlStyles = computed(() => [\n ...CodeControl,\n ]);\n\n return {\n root,\n control,\n rootStyles,\n controlStyles,\n focus,\n blur,\n };\n },\n});\n</script>\n","export enum CodeLanguage {\n HTML = 'html',\n CSS = 'css',\n JS = 'js',\n TS = 'ts',\n JSON = 'json',\n MD = 'md',\n}\n","<template>\n <div\n :ref=\"'root'\"\n :class=\"rootStyles\"\n >\n <OrCodeControl\n :ref=\"'control'\"\n :control-id=\"controlAttributes.id\"\n :label=\"label\"\n :hint=\"hint\"\n :error=\"error\"\n :disabled=\"disabled\"\n :readonly=\"readonly\"\n >\n <template v-slot:label>\n <slot name=\"label\">\n {{ label }}\n </slot>\n </template>\n <template v-slot:addon>\n <div :class=\"['layout-row', 'gap-xs']\">\n <slot name=\"addon\" />\n\n <OrIconButton\n v-if=\"enableFullscreen\"\n :icon=\"'fullscreen'\"\n @click.stop=\"openFullscreen()\"\n />\n </div>\n </template>\n <template v-slot:hint>\n <slot name=\"hint\">\n {{ hint }}\n </slot>\n </template>\n <template\n v-if=\"$slots.error\"\n v-slot:error\n >\n <slot name=\"error\" />\n </template>\n </OrCodeControl>\n\n <OrModal\n :ref=\"'modal'\"\n :additional-styles=\"modalStyles\"\n :size=\"'l'\"\n >\n <template v-slot:header>\n <slot name=\"label\">\n {{ label }}\n </slot>\n </template>\n\n <OrCodeControl\n :ref=\"'fullscreenControl'\"\n :control-id=\"controlAttributes.id\"\n :hint=\"hint\"\n :error=\"error\"\n :disabled=\"disabled\"\n :readonly=\"readonly\"\n >\n <template v-slot:addon>\n <slot name=\"addon\" />\n </template>\n <template\n v-if=\"$slots.error\"\n v-slot:error\n >\n <slot name=\"error\" />\n </template>\n </OrCodeControl>\n\n <template\n v-if=\"$slots.modalFooter\"\n v-slot:footer\n >\n <slot name=\"modalFooter\" />\n </template>\n </OrModal>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { PropType, computed, defineComponent, onMounted, onUnmounted, reactive, ref, toRef, watch } from 'vue';\nimport { useControlAttributes, useIdAttribute, useProxyModelValue, useTheme, useValidationAttributes } from '@onereach/ui-components-common/hooks';\n\n/* Codemirror core */\nimport { basicSetup } from 'codemirror';\n\nimport { indentWithTab } from '@codemirror/commands';\nimport { Compartment, EditorState, Extension } from '@codemirror/state';\nimport { EditorView, keymap } from '@codemirror/view';\n\n/* Components */\nimport { OrIconButtonV3 as OrIconButton } from '@onereach/ui-components.or-icon-button-v3';\nimport { OrModalV3 as OrModal } from '@onereach/ui-components.or-modal-v3';\n\nimport OrCodeControl from './partials/OrCodeControl.vue';\nimport { CodeLanguage } from './props';\nimport { Code, CodeControl, CodeModal } from './styles';\n\nexport default defineComponent({\n name: 'OrCode',\n\n components: {\n OrModal,\n OrCodeControl,\n OrIconButton,\n },\n\n model: {\n prop: 'modelValue',\n event: 'update:modelValue',\n },\n\n props: {\n modelValue: {\n type: String,\n default: undefined,\n },\n\n language: {\n type: String as PropType<CodeLanguage>,\n default: () => CodeLanguage.JS,\n },\n\n extensions: {\n type: Array as PropType<Extension[]>,\n default: () => [],\n },\n\n label: {\n type: String,\n default: undefined,\n },\n\n hint: {\n type: String,\n default: undefined,\n },\n\n error: {\n type: [String, Boolean],\n default: undefined,\n },\n\n required: {\n type: Boolean,\n default: false,\n },\n\n readonly: {\n type: Boolean,\n default: false,\n },\n\n disabled: {\n type: Boolean,\n default: false,\n },\n\n // todo: review flag prop, seems better to set 'false' default value\n enableFullscreen: {\n type: Boolean,\n default: true,\n },\n },\n\n emits: [\n 'update:modelValue',\n\n 'input',\n 'keydown',\n 'keyup',\n 'focus',\n 'blur',\n ],\n\n expose: [\n 'root',\n\n 'editorView',\n 'control',\n 'fullscreenControl',\n 'modal',\n\n 'focus',\n 'blur',\n 'openFullscreen',\n ],\n\n setup(props, context) {\n // Refs\n const root = ref<HTMLElement>();\n const control = ref<InstanceType<typeof OrCodeControl>>();\n const fullscreenControl = ref<InstanceType<typeof OrCodeControl>>();\n\n const modal = ref<InstanceType<typeof OrModal>>();\n\n // Styles\n const rootStyles = computed(() => [\n 'or-code-v3',\n ...Code,\n ]);\n\n const controlStyles = computed(() => [\n ...CodeControl,\n ]);\n\n const modalStyles = computed(() => [\n ...CodeModal,\n ]);\n\n const addedExtensionCompartment = new Compartment();\n const languageExtensionCompartment = new Compartment();\n const readonlyExtensionCompartment = new Compartment();\n const disabledExtensionCompartment = new Compartment();\n\n // State\n const controlAttributes = reactive({\n id: useIdAttribute(),\n ...useControlAttributes(),\n ...useValidationAttributes(),\n });\n\n const proxyModelValue = useProxyModelValue(toRef(props, 'modelValue'), context.emit);\n\n const getLanguageExtension = async (language: CodeLanguage) => {\n switch (language) {\n case CodeLanguage.HTML:\n return (await import('@codemirror/lang-html')).html();\n\n case CodeLanguage.CSS:\n return (await import('@codemirror/lang-css')).css();\n\n case CodeLanguage.JS:\n return (await import('@codemirror/lang-javascript')).javascript();\n\n case CodeLanguage.TS:\n return (await import('@codemirror/lang-javascript')).javascript({ typescript: true });\n\n case CodeLanguage.JSON:\n return (await import('@codemirror/lang-json')).json();\n\n case CodeLanguage.MD:\n return (await import('@codemirror/lang-markdown')).markdown();\n }\n };\n\n // Methods\n function focus(): void {\n (control.value?.focus as unknown as () => void)?.();\n }\n\n function blur(): void {\n (control.value?.blur as unknown as () => void)?.();\n }\n\n function openFullscreen(): void {\n (modal.value?.open as unknown as () => void)?.();\n }\n\n // #region Codemirror\n const theme = useTheme();\n const defaultExtensions = [\n basicSetup,\n\n keymap.of([\n indentWithTab,\n ]),\n\n EditorView.domEventHandlers({\n input: (event) => {\n context.emit('input', event);\n },\n\n keydown: (event) => {\n context.emit('keydown', event);\n },\n\n keyup: (event) => {\n context.emit('keyup', event);\n },\n\n focus: (event) => {\n context.emit('focus', event);\n },\n\n blur: (event) => {\n context.emit('blur', event);\n },\n }),\n\n EditorView.theme({\n '&': {\n overflow: 'hidden',\n\n color: theme.textColor['on-background'],\n backgroundColor: theme.backgroundColor['background'],\n },\n\n '&.cm-focused': {\n outline: 'none',\n },\n\n '.cm-scroller': {\n fontFamily: theme.fontFamily['caption'],\n fontWeight: theme.fontWeight['caption'],\n fontSize: theme.fontSize['caption'],\n lineHeight: theme.lineHeight['caption'],\n },\n\n '.cm-gutters': {\n color: theme.textColor['on-background'],\n backgroundColor: theme.backgroundColor['primary-opacity-0-12'],\n borderColor: theme.borderColor['outline'],\n\n backdropFilter: 'blur(2px)',\n },\n\n '.cm-activeLineGutter, .cm-activeLine': {\n backgroundColor: theme.backgroundColor['primary-opacity-0-08'],\n },\n }),\n ];\n\n const state = EditorState.create({\n doc: proxyModelValue.value,\n\n extensions: [\n ...defaultExtensions,\n languageExtensionCompartment.of([]),\n addedExtensionCompartment.of(props.extensions),\n readonlyExtensionCompartment.of([EditorState.readOnly.of(props.readonly)]),\n disabledExtensionCompartment.of([EditorView.editable.of(!props.disabled)]),\n ],\n });\n\n const editorView = new EditorView({\n state,\n\n dispatch: (transaction) => {\n editorView.update([\n transaction,\n ]);\n\n if (transaction.docChanged) {\n proxyModelValue.value = String(editorView.state.doc);\n }\n },\n });\n\n watch(proxyModelValue, (value) => {\n if (editorView.composing) return;\n if (editorView.state.doc.toString() === value) return;\n\n const modelValue = value ?? '';\n const { selection } = editorView.state;\n\n editorView!.dispatch({\n changes: {\n from: 0,\n to: editorView!.state.doc.length,\n insert: modelValue,\n },\n\n selection: selection.ranges.some((range) => range.to > modelValue.length) ? { anchor: modelValue.length } : selection,\n });\n });\n\n watch([\n () => props.extensions,\n () => props.language,\n () => props.readonly,\n () => props.disabled,\n ], async ([extensions, language, readonly, disabled], [, prevLanguage, pevReadonly, pevDisabled]) => {\n let effects = [];\n\n if (readonly !== pevReadonly) {\n effects.push(readonlyExtensionCompartment.reconfigure(EditorState.readOnly.of(readonly)));\n }\n\n if (disabled !== pevDisabled) {\n effects.push(disabledExtensionCompartment.reconfigure(EditorView.editable.of(!disabled)));\n }\n\n if (language !== prevLanguage) {\n const languageExt = await getLanguageExtension(language as CodeLanguage);\n\n effects.push(languageExtensionCompartment.reconfigure([languageExt]));\n }\n\n effects.push(addedExtensionCompartment.reconfigure(extensions));\n\n editorView!.dispatch({ effects });\n }, { immediate: true });\n // #endregion\n\n // Effects\n watch(() => modal.value?.state, (value) => {\n setTimeout(() => {\n if (value === 'open') {\n (fullscreenControl.value?.control as unknown as HTMLElement)?.append(editorView.dom);\n } else {\n (control.value?.control as unknown as HTMLElement)?.append(editorView.dom);\n }\n });\n });\n\n // Lifecycle\n onMounted(() => {\n (control.value?.control as unknown as HTMLElement)?.append(editorView.dom);\n });\n\n onUnmounted(() => {\n editorView.destroy();\n });\n\n return {\n root,\n editorView,\n control,\n fullscreenControl,\n modal,\n rootStyles,\n controlStyles,\n modalStyles,\n controlAttributes,\n proxyModelValue,\n focus,\n blur,\n openFullscreen,\n };\n },\n});\n</script>\n"],"names":["Code","CodeControlRoot","CodeControl","CodeModal","_sfc_main$1","defineComponent","OrError","OrHint","OrInputBox","OrLabel","root","ref","control","focus","_a","blur","rootStyles","computed","controlStyles","_resolveComponent","_openBlock","_createElementBlock","_normalizeClass","_ctx","_component_OrLabel","_renderSlot","_createVNode","_component_OrInputBox","_withCtx","_createElementVNode","_withDirectives","_createBlock","_component_OrHint","_createCommentVNode","_component_OrError","CodeLanguage","_sfc_main","OrModal","OrCodeControl","OrIconButton","props","context","fullscreenControl","modal","modalStyles","addedExtensionCompartment","Compartment","languageExtensionCompartment","readonlyExtensionCompartment","disabledExtensionCompartment","controlAttributes","reactive","useIdAttribute","useControlAttributes","useValidationAttributes","proxyModelValue","useProxyModelValue","toRef","getLanguageExtension","language","_b","openFullscreen","theme","useTheme","defaultExtensions","basicSetup","keymap","indentWithTab","EditorView","event","state","EditorState","editorView","transaction","watch","value","modelValue","selection","range","extensions","readonly","disabled","prevLanguage","pevReadonly","pevDisabled","effects","languageExt","_d","_c","onMounted","onUnmounted","_component_OrCodeControl","_createSlots","_hoisted_1","_component_OrIconButton","_component_OrModal"],"mappings":";;;;;;;;;;;;;AAAO,MAAMA,KAAiB;AAAA;AAAA,EAE5B;AAAA;AAAA,EAGA;AACF,GAEaC,KAA4B;AAAA;AAAA,EAEvC;AAAA;AAAA,EAGA;AAAA;AAAA,EAGA;AACF,GAEaC,IAAwB;AAAA;AAAA,EAEnC;AAAA;AAAA,EAGA;AAAA,EACA;AAAA;AAAA,EAGA;AAAA,EACA;AAAA;AAAA,EAGA;AAAA,EACA;AAAA;AAAA,EAGA;AACF,GAEaC,KAAsB;AAAA;AAAA,EAEjC;AACF,GCqBAC,KAAeC,EAAgB;AAAA,EAC7B,MAAM;AAAA,EAEN,YAAY;AAAA,IACV,SAAAC;AAAA,IACA,QAAAC;AAAA,IACA,YAAAC;AAAA,IACA,SAAAC;AAAA,EACF;AAAA,EAEA,OAAO;AAAA,IACL,OAAO;AAAA,MACL,MAAM,CAAC,QAAQ,OAAO;AAAA,MACtB,SAAS;AAAA,IACX;AAAA,IAEA,UAAU;AAAA,MACR,MAAM;AAAA,MACN,SAAS;AAAA,IACX;AAAA,IAEA,WAAW;AAAA,MACT,MAAM;AAAA,MACN,SAAS;AAAA,IACX;AAAA,IAEA,OAAO;AAAA,MACL,MAAM;AAAA,MACN,SAAS;AAAA,IACX;AAAA,IAEA,UAAU;AAAA,MACR,MAAM;AAAA,MACN,SAAS;AAAA,IACX;AAAA,IAEA,UAAU;AAAA,MACR,MAAM;AAAA,MACN,SAAS;AAAA,IACX;AAAA,IAEA,MAAM;AAAA,MACJ,MAAM;AAAA,MACN,SAAS;AAAA,IACX;AAAA,EACF;AAAA,EAEA,QAAQ;AAAA,IACN;AAAA,IACA;AAAA,IAEA;AAAA,IACA;AAAA,EACF;AAAA,EAEA,QAAQ;AAEN,UAAMC,IAAOC,KACPC,IAAUD;AAGhB,aAASE,IAAc;;AACrB,OAAAC,IAAAF,EAAQ,UAAR,QAAAE,EAAe;AAAA,IACjB;AAEA,aAASC,IAAa;;AACpB,OAAAD,IAAAF,EAAQ,UAAR,QAAAE,EAAe;AAAA,IACjB;AAEM,UAAAE,IAAaC,EAAS,MAAM;AAAA,MAChC;AAAA,MACA,GAAGhB;AAAA,IAAA,CACJ,GAEKiB,IAAgBD,EAAS,MAAM;AAAA,MACnC,GAAGf;AAAA,IAAA,CACJ;AAEM,WAAA;AAAA,MACL,MAAAQ;AAAA,MACA,SAAAE;AAAA,MACA,YAAAI;AAAA,MACA,eAAAE;AAAA,MACA,OAAAL;AAAA,MACA,MAAAE;AAAA,IAAA;AAAA,EAEJ;AACF,CAAC;;oEArJCI,EAmDM,SAAA;SAjDEC,EAAY,GAAAC,EAAA,OAAA;AAAA,IAAA,KAAA;AAAA,IAElB,OAaUC,EAAAC,EAAA,UAAA;AAAA,EAAA,GAAA;AAAA,MAXEC,GAAO;AAAA,MAChB,cAAUD,EAAA;AAAA,MACV,SAAQ;AAAA,MAAA,UAAAA,EAAA;AAAA,MAMQ,UAAKA,EAAA;AAAA,IAAA,GAAA;AAAA;QAFfE,EAAAF,EAAA,QAAA,OAAA;AAAA,MAAA,CAAA;AAAA;;;;;MAOT,GAAA;AAAA,IAAA,GACG,IAAK,cAAU,YAAA,UAAA,CAAA;AAAA,IACNG,EAAAC,GAAA;AAAA,MACT,OAAOL,EAAS,CAAM,MAAA,CAAA;AAAA,MACtB,MAAA;AAAA,MACA,SAAQ,CAAE,CAAQC,EAAA,SAAA,CAAA,CAAAA,EAAA,OAAA;AAAA,MAAA,UAAAA,EAAA;AAAA;;eAGXK,EAAS,MAAA;AAAA,QAAAC,EACT,OAAE;AAAA,UAAA,KAAA;AAAA;;;MAII,GAAA;AAAA,IACd,GAAA,GAAA,CAAA,WAAA,YAAA,UAAA,CAAA;AAAA,IAAAN,EAAA,OAAA,QAAAA,EAAA,OAAAO,GAEaV,EAAQ,GAAAW,EAAAC,GAAA;AAAA,MAAA,KAAA;AAAA;;;;;;;;;;IAcd,CAAA,IAAAC,EAAA,IAAA,EAAA;AAAA,IAAAH,EAAAJ,EAAAQ,GAAA,EAAA,UAAAX,EAAA,YAAA;AAAA,MAAA,SAAAK,EAAA,MAAA;AAAA;;;;;;;;;;;AClDD,IAAAO,sBAAAA,OACVA,EAAA,OAAO,QACPA,EAAA,MAAM,OACNA,EAAA,KAAK,MACLA,EAAA,KAAK,MACLA,EAAA,OAAO,QACPA,EAAA,KAAK,MANKA,IAAAA,KAAA,CAAA,CAAA;ACsGZ,MAAAC,KAAe/B,EAAgB;AAAA,EAC7B,MAAM;AAAA,EAEN,YAAY;AAAA,IACV,SAAAgC;AAAA,IACA,eAAAC;AAAA,IACA,cAAAC;AAAA,EACF;AAAA,EAEA,OAAO;AAAA,IACL,MAAM;AAAA,IACN,OAAO;AAAA,EACT;AAAA,EAEA,OAAO;AAAA,IACL,YAAY;AAAA,MACV,MAAM;AAAA,MACN,SAAS;AAAA,IACX;AAAA,IAEA,UAAU;AAAA,MACR,MAAM;AAAA,MACN,SAAS,MAAMJ,EAAa;AAAA,IAC9B;AAAA,IAEA,YAAY;AAAA,MACV,MAAM;AAAA,MACN,SAAS,MAAM,CAAC;AAAA,IAClB;AAAA,IAEA,OAAO;AAAA,MACL,MAAM;AAAA,MACN,SAAS;AAAA,IACX;AAAA,IAEA,MAAM;AAAA,MACJ,MAAM;AAAA,MACN,SAAS;AAAA,IACX;AAAA,IAEA,OAAO;AAAA,MACL,MAAM,CAAC,QAAQ,OAAO;AAAA,MACtB,SAAS;AAAA,IACX;AAAA,IAEA,UAAU;AAAA,MACR,MAAM;AAAA,MACN,SAAS;AAAA,IACX;AAAA,IAEA,UAAU;AAAA,MACR,MAAM;AAAA,MACN,SAAS;AAAA,IACX;AAAA,IAEA,UAAU;AAAA,MACR,MAAM;AAAA,MACN,SAAS;AAAA,IACX;AAAA;AAAA,IAGA,kBAAkB;AAAA,MAChB,MAAM;AAAA,MACN,SAAS;AAAA,IACX;AAAA,EACF;AAAA,EAEA,OAAO;AAAA,IACL;AAAA,IAEA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AAAA,EAEA,QAAQ;AAAA,IACN;AAAA,IAEA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IAEA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AAAA,EAEA,MAAMK,GAAOC,GAAS;AAEpB,UAAM/B,IAAOC,KACPC,IAAUD,KACV+B,IAAoB/B,KAEpBgC,IAAQhC,KAGRK,IAAaC,EAAS,MAAM;AAAA,MAChC;AAAA,MACA,GAAGjB;AAAA,IAAA,CACJ,GAEKkB,IAAgBD,EAAS,MAAM;AAAA,MACnC,GAAGf;AAAA,IAAA,CACJ,GAEK0C,IAAc3B,EAAS,MAAM;AAAA,MACjC,GAAGd;AAAA,IAAA,CACJ,GAEK0C,IAA4B,IAAIC,KAChCC,IAA+B,IAAID,KACnCE,IAA+B,IAAIF,KACnCG,IAA+B,IAAIH,KAGnCI,IAAoBC,GAAS;AAAA,MACjC,IAAIC,GAAe;AAAA,MACnB,GAAGC,GAAqB;AAAA,MACxB,GAAGC,GAAwB;AAAA,IAAA,CAC5B,GAEKC,IAAkBC,GAAmBC,GAAMjB,GAAO,YAAY,GAAGC,EAAQ,IAAI,GAE7EiB,IAAuB,OAAOC,MAA2B;AAC7D,cAAQA,GAAU;AAAA,QAChB,KAAKxB,EAAa;AAChB,kBAAQ,MAAM,OAAO,uBAAuB,GAAG,KAAK;AAAA,QAEtD,KAAKA,EAAa;AAChB,kBAAQ,MAAM,OAAO,sBAAsB,GAAG,IAAI;AAAA,QAEpD,KAAKA,EAAa;AAChB,kBAAQ,MAAM,OAAO,6BAA6B,GAAG,WAAW;AAAA,QAElE,KAAKA,EAAa;AACR,kBAAA,MAAM,OAAO,6BAA6B,GAAG,WAAW,EAAE,YAAY,IAAM;AAAA,QAEtF,KAAKA,EAAa;AAChB,kBAAQ,MAAM,OAAO,uBAAuB,GAAG,KAAK;AAAA,QAEtD,KAAKA,EAAa;AAChB,kBAAQ,MAAM,OAAO,2BAA2B,GAAG,SAAS;AAAA,MAChE;AAAA,IAAA;AAIF,aAAStB,IAAc;;AACpB,OAAA+C,KAAA9C,IAAAF,EAAQ,UAAR,gBAAAE,EAAe,UAAf,QAAA8C,EAAA,KAAA9C;AAAA,IACH;AAEA,aAASC,IAAa;;AACnB,OAAA6C,KAAA9C,IAAAF,EAAQ,UAAR,gBAAAE,EAAe,SAAf,QAAA8C,EAAA,KAAA9C;AAAA,IACH;AAEA,aAAS+C,IAAuB;;AAC7B,OAAAD,KAAA9C,IAAA6B,EAAM,UAAN,gBAAA7B,EAAa,SAAb,QAAA8C,EAAA,KAAA9C;AAAA,IACH;AAGA,UAAMgD,IAAQC,MACRC,IAAoB;AAAA,MACxBC;AAAA,MAEAC,GAAO,GAAG;AAAA,QACRC;AAAA,MAAA,CACD;AAAA,MAEDC,EAAW,iBAAiB;AAAA,QAC1B,OAAO,CAACC,MAAU;AACR,UAAA5B,EAAA,KAAK,SAAS4B,CAAK;AAAA,QAC7B;AAAA,QAEA,SAAS,CAACA,MAAU;AACV,UAAA5B,EAAA,KAAK,WAAW4B,CAAK;AAAA,QAC/B;AAAA,QAEA,OAAO,CAACA,MAAU;AACR,UAAA5B,EAAA,KAAK,SAAS4B,CAAK;AAAA,QAC7B;AAAA,QAEA,OAAO,CAACA,MAAU;AACR,UAAA5B,EAAA,KAAK,SAAS4B,CAAK;AAAA,QAC7B;AAAA,QAEA,MAAM,CAACA,MAAU;AACP,UAAA5B,EAAA,KAAK,QAAQ4B,CAAK;AAAA,QAC5B;AAAA,MAAA,CACD;AAAA,MAEDD,EAAW,MAAM;AAAA,QACf,KAAK;AAAA,UACH,UAAU;AAAA,UAEV,OAAON,EAAM,UAAU,eAAe;AAAA,UACtC,iBAAiBA,EAAM,gBAAgB;AAAA,QACzC;AAAA,QAEA,gBAAgB;AAAA,UACd,SAAS;AAAA,QACX;AAAA,QAEA,gBAAgB;AAAA,UACd,YAAYA,EAAM,WAAW;AAAA,UAC7B,YAAYA,EAAM,WAAW;AAAA,UAC7B,UAAUA,EAAM,SAAS;AAAA,UACzB,YAAYA,EAAM,WAAW;AAAA,QAC/B;AAAA,QAEA,eAAe;AAAA,UACb,OAAOA,EAAM,UAAU,eAAe;AAAA,UACtC,iBAAiBA,EAAM,gBAAgB,sBAAsB;AAAA,UAC7D,aAAaA,EAAM,YAAY;AAAA,UAE/B,gBAAgB;AAAA,QAClB;AAAA,QAEA,wCAAwC;AAAA,UACtC,iBAAiBA,EAAM,gBAAgB,sBAAsB;AAAA,QAC/D;AAAA,MAAA,CACD;AAAA,IAAA,GAGGQ,IAAQC,EAAY,OAAO;AAAA,MAC/B,KAAKhB,EAAgB;AAAA,MAErB,YAAY;AAAA,QACV,GAAGS;AAAA,QACHjB,EAA6B,GAAG,EAAE;AAAA,QAClCF,EAA0B,GAAGL,EAAM,UAAU;AAAA,QAC7CQ,EAA6B,GAAG,CAACuB,EAAY,SAAS,GAAG/B,EAAM,QAAQ,CAAC,CAAC;AAAA,QACzES,EAA6B,GAAG,CAACmB,EAAW,SAAS,GAAG,CAAC5B,EAAM,QAAQ,CAAC,CAAC;AAAA,MAC3E;AAAA,IAAA,CACD,GAEKgC,IAAa,IAAIJ,EAAW;AAAA,MAChC,OAAAE;AAAA,MAEA,UAAU,CAACG,MAAgB;AACzB,QAAAD,EAAW,OAAO;AAAA,UAChBC;AAAA,QAAA,CACD,GAEGA,EAAY,eACdlB,EAAgB,QAAQ,OAAOiB,EAAW,MAAM,GAAG;AAAA,MAEvD;AAAA,IAAA,CACD;AAEK,WAAAE,EAAAnB,GAAiB,CAACoB,MAAU;AAEhC,UADIH,EAAW,aACXA,EAAW,MAAM,IAAI,SAAe,MAAAG;AAAO;AAE/C,YAAMC,IAAaD,KAAS,IACtB,EAAE,WAAAE,EAAU,IAAIL,EAAW;AAEjC,MAAAA,EAAY,SAAS;AAAA,QACnB,SAAS;AAAA,UACP,MAAM;AAAA,UACN,IAAIA,EAAY,MAAM,IAAI;AAAA,UAC1B,QAAQI;AAAA,QACV;AAAA,QAEA,WAAWC,EAAU,OAAO,KAAK,CAACC,MAAUA,EAAM,KAAKF,EAAW,MAAM,IAAI,EAAE,QAAQA,EAAW,OAAW,IAAAC;AAAA,MAAA,CAC7G;AAAA,IAAA,CACF,GAEKH,EAAA;AAAA,MACJ,MAAMlC,EAAM;AAAA,MACZ,MAAMA,EAAM;AAAA,MACZ,MAAMA,EAAM;AAAA,MACZ,MAAMA,EAAM;AAAA,IAAA,GACX,OAAO,CAACuC,GAAYpB,GAAUqB,GAAUC,CAAQ,GAAG,GAAGC,GAAcC,IAAaC,EAAW,MAAM;AACnG,UAAIC,IAAU,CAAA;AAUd,UARIL,MAAaG,MACPE,EAAA,KAAKrC,EAA6B,YAAYuB,EAAY,SAAS,GAAGS,CAAQ,CAAC,CAAC,GAGtFC,MAAaG,MACPC,EAAA,KAAKpC,EAA6B,YAAYmB,EAAW,SAAS,GAAG,CAACa,CAAQ,CAAC,CAAC,GAGtFtB,MAAauB,GAAc;AACvB,cAAAI,KAAc,MAAM5B,EAAqBC,CAAwB;AAEvE,QAAA0B,EAAQ,KAAKtC,EAA6B,YAAY,CAACuC,EAAW,CAAC,CAAC;AAAA,MACtE;AAEA,MAAAD,EAAQ,KAAKxC,EAA0B,YAAYkC,CAAU,CAAC,GAElDP,EAAA,SAAS,EAAE,SAAAa,EAAA,CAAS;AAAA,IAAA,GAC/B,EAAE,WAAW,GAAA,CAAM,GAItBX,EAAM,MAAA;;AAAM,cAAA5D,IAAA6B,EAAM,UAAN,gBAAA7B,EAAa;AAAA,OAAO,CAAC6D,MAAU;AACzC,iBAAW,MAAM;;AACf,QAAIA,MAAU,UACXf,KAAA9C,IAAA4B,EAAkB,UAAlB,gBAAA5B,EAAyB,YAAzB,QAAA8C,EAA6D,OAAOY,EAAW,QAE/Ee,KAAAC,IAAA5E,EAAQ,UAAR,gBAAA4E,EAAe,YAAf,QAAAD,EAAmD,OAAOf,EAAW;AAAA,MACxE,CACD;AAAA,IAAA,CACF,GAGDiB,GAAU,MAAM;;AACb,OAAA7B,KAAA9C,IAAAF,EAAQ,UAAR,gBAAAE,EAAe,YAAf,QAAA8C,EAAmD,OAAOY,EAAW;AAAA,IAAG,CAC1E,GAEDkB,GAAY,MAAM;AAChB,MAAAlB,EAAW,QAAQ;AAAA,IAAA,CACpB,GAEM;AAAA,MACL,MAAA9D;AAAA,MACA,YAAA8D;AAAA,MACA,SAAA5D;AAAA,MACA,mBAAA8B;AAAA,MACA,OAAAC;AAAA,MACA,YAAA3B;AAAA,MACA,eAAAE;AAAA,MACA,aAAA0B;AAAA,MACA,mBAAAM;AAAA,MACA,iBAAAK;AAAA,MACA,OAAA1C;AAAA,MACA,MAAAE;AAAA,MACA,gBAAA8C;AAAA,IAAA;AAAA,EAEJ;AACF,CAAC;;;;2DAlbC1C,EA+EM,SAAA;SA7EEC,EAAY,GAAAC,EAAA,OAAA;AAAA,IAAA,KAAA;AAAA,IAElB,OAoCgBC,EAAAC,EAAA,UAAA;AAAA,EAAA,GAAA;AAAA,MAlCboE,GAA8B;AAAA,MAC9B,KAAK;AAAA,MACL,cAAMpE,EAAI,kBAAA;AAAA,MACV,OAAOA,EAAA;AAAA,MACP,MAAUA,EAAA;AAAA,MACV,OAAUA,EAAA;AAAA,MAAA,UAAAA,EAAA;AAAA,MAEM,UAAKA,EAAA;AAAA,IAGb,GAAAqE,EAAA;AAAA,MAAA,OAAAhE,EAAA,MAAA;AAAA;;QAEQ,CAAA;AAAA,MAAA,CAAA;AAAA,aAEbA,EAAqB,MAAA;AAAA,QAAAC,EAGb,OAAgBgE,IAAA;AAAA,UAAApE,EAAAF,EAAA,QADxB,OAIE;AAAA,UAAAA,EAAA,oBAAAH,KAFmBW,EAAA+D,GAAA;AAAA,YAClB,KAAA;AAAA,YAAA,MAAA;AAAA;;QAIU,CAAA;AAAA,MAAA,CAAA;AAAA;;;;;MAMT,GAAA;AAAA,IAAA,GAAA;AAAA,MACCvE,EAAA,OAAA,QAAA;AAAA,QAEP,MAAA;AAAA,QAAA,IAAAK,EAAA,MAAA;AAAA;;;MAIJ,IAAA;AAAA,IAAA,CAAA,GACG,MAAK,CAAO,cAAA,SAAA,QAAA,SAAA,YAAA,UAAA,CAAA;AAAA,IAAAF,EACZqE,GAAmB;AAAA,MACnB,KAAI;AAAA,MAAA,qBAAAxE,EAAA;AAAA,MAEY,MAAM;AAAA,IAGd,GAAAqE,EAAA;AAAA,MAAA,QAAAhE,EAAA,MAAA;AAAA;;;;MAID,SAAAA,EAAA,MAAA;AAAA,QAAAF,EACLiE,GAA8B;AAAA,UAC9B,KAAI;AAAA,UACJ,cAAOpE,EAAK,kBAAA;AAAA,UACZ,MAAUA,EAAA;AAAA,UACV,OAAUA,EAAA;AAAA,UAAA,UAAAA,EAAA;AAAA,UAEM,UAAKA,EAAA;AAAA,QACC,GAAAqE,EAAA;AAAA,UAAA,OAAAhE,EAAA,MAAA;AAAA;;UAGf,GAAA;AAAA,QAAA,GAAA;AAAA,UACCL,EAAA,OAAA,QAAA;AAAA,YAEP,MAAA;AAAA,YAAA,IAAAK,EAAA,MAAA;AAAA;;;;;;MAKI,GAAA;AAAA,IAAA,GAAA;AAAA,MACCL,EAAA,OAAA,cAAA;AAAA,QAEP,MAAA;AAAA,QAAA,IAAAK,EAAA,MAAA;AAAA;;;;;;;;"}
|