@retailcrm/embed-ui-v1-components 0.9.19 → 0.9.22-alpha.1
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/AGENTS.md +9 -1
- package/README.md +5 -2
- package/assets/sprites/actions/add-square-outlined.svg +8 -0
- package/assets/sprites/actions/drag.svg +8 -0
- package/bin/embed-ui-v1-components.mjs +231 -46
- package/bin/postinstall.mjs +3 -2
- package/dist/host.cjs +1223 -501
- package/dist/host.css +637 -10
- package/dist/host.d.ts +152 -78
- package/dist/host.js +1224 -502
- package/dist/remote.cjs +1358 -298
- package/dist/remote.d.ts +805 -67
- package/dist/remote.js +1360 -300
- package/docs/AI.md +99 -17
- package/docs/COMPONENTS.md +58 -59
- package/docs/FORMAT.md +10 -10
- package/docs/PROFILES.md +39 -22
- package/docs/README.md +11 -5
- package/docs/profiles/components/UiAddButton.yml +134 -0
- package/docs/profiles/components/UiAlert.yml +105 -0
- package/docs/profiles/components/UiAvatar.yml +88 -0
- package/docs/profiles/{UiAvatarList.yml → components/UiAvatarList.yml} +26 -0
- package/docs/profiles/{UiButton.yml → components/UiButton.yml} +14 -8
- package/docs/profiles/components/UiCalendar.yml +190 -0
- package/docs/profiles/components/UiCheckbox.yml +111 -0
- package/docs/profiles/components/UiCollapse.yml +129 -0
- package/docs/profiles/components/UiCollapseBox.yml +143 -0
- package/docs/profiles/{UiCollapseGroup.yml → components/UiCollapseGroup.yml} +24 -0
- package/docs/profiles/components/UiCopyButton.yml +104 -0
- package/docs/profiles/components/UiDate.yml +84 -0
- package/docs/profiles/components/UiDatePicker.yml +138 -0
- package/docs/profiles/components/UiError.yml +123 -0
- package/docs/profiles/{UiField.yml → components/UiField.yml} +46 -15
- package/docs/profiles/components/UiInfobox.yml +130 -0
- package/docs/profiles/components/UiLink.yml +111 -0
- package/docs/profiles/components/UiLoader.yml +71 -0
- package/docs/profiles/components/UiMenuItem.yml +93 -0
- package/docs/profiles/{UiMenuItemGroup.yml → components/UiMenuItemGroup.yml} +25 -0
- package/docs/profiles/components/UiModalSidebar.yml +156 -0
- package/docs/profiles/components/UiModalWindow.yml +181 -0
- package/docs/profiles/{UiModalWindowSurface.yml → components/UiModalWindowSurface.yml} +30 -0
- package/docs/profiles/components/UiNumberStepper.yml +100 -0
- package/docs/profiles/{UiPageHeader.yml → components/UiPageHeader.yml} +39 -23
- package/docs/profiles/components/UiPopconfirm.yml +164 -0
- package/docs/profiles/{UiPopper.yml → components/UiPopper.yml} +66 -13
- package/docs/profiles/{UiPopperConnector.yml → components/UiPopperConnector.yml} +5 -25
- package/docs/profiles/{UiPopperTarget.yml → components/UiPopperTarget.yml} +5 -25
- package/docs/profiles/components/UiRadio.yml +91 -0
- package/docs/profiles/{UiRadioSwitch.yml → components/UiRadioSwitch.yml} +55 -32
- package/docs/profiles/{UiRadioSwitchOption.yml → components/UiRadioSwitchOption.yml} +7 -13
- package/docs/profiles/components/UiScrollBox.yml +108 -0
- package/docs/profiles/{UiSelect.yml → components/UiSelect.yml} +133 -44
- package/docs/profiles/components/UiSelectOption.yml +74 -0
- package/docs/profiles/components/UiSelectOptionGroup.yml +66 -0
- package/docs/profiles/components/UiSkeleton.yml +82 -0
- package/docs/profiles/components/UiSlider.yml +161 -0
- package/docs/profiles/components/UiSwitch.yml +123 -0
- package/docs/profiles/components/UiTab.yml +234 -0
- package/docs/profiles/{UiTabGroup.yml → components/UiTabGroup.yml} +0 -30
- package/docs/profiles/components/UiTable.yml +622 -0
- package/docs/profiles/{UiTableBodyCell.yml → components/UiTableBodyCell.yml} +26 -0
- package/docs/profiles/components/UiTableColumn.yml +87 -0
- package/docs/profiles/components/UiTableFooterButton.yml +85 -0
- package/docs/profiles/components/UiTableFooterSection.yml +73 -0
- package/docs/profiles/{UiTableHeadCell.yml → components/UiTableHeadCell.yml} +26 -0
- package/docs/profiles/{UiTableSorter.yml → components/UiTableSorter.yml} +27 -0
- package/docs/profiles/components/UiTag.yml +90 -0
- package/docs/profiles/{UiTextbox.yml → components/UiTextbox.yml} +20 -32
- package/docs/profiles/components/UiTimePicker.yml +144 -0
- package/docs/profiles/{UiToggleButton.yml → components/UiToggleButton.yml} +16 -11
- package/docs/profiles/{UiToggleGroup.yml → components/UiToggleGroup.yml} +25 -13
- package/docs/profiles/{UiToggleGroupOption.yml → components/UiToggleGroupOption.yml} +7 -11
- package/docs/profiles/components/UiToolbarButton.yml +87 -0
- package/docs/profiles/components/UiToolbarLink.yml +80 -0
- package/docs/profiles/components/UiTooltip.yml +97 -0
- package/docs/profiles/components/UiTransition.yml +62 -0
- package/docs/profiles/components/UiYandexMap.yml +104 -0
- package/docs/profiles/pages/CardSettingsPage.yml +58 -0
- package/docs/profiles/pages/CollapseBlockPage.yml +46 -0
- package/docs/profiles/pages/EntityListPage.yml +66 -0
- package/docs/profiles/pages/ModalSidebar.yml +158 -0
- package/docs/profiles/pages/ModalWindow.yml +55 -0
- package/docs/profiles/pages/MultiColumnPage.yml +27 -0
- package/docs/profiles/pages/PageComposition.yml +56 -0
- package/package.json +15 -15
- package/docs/profiles/UiAddButton.yml +0 -57
- package/docs/profiles/UiAlert.yml +0 -48
- package/docs/profiles/UiAvatar.yml +0 -48
- package/docs/profiles/UiCalendar.yml +0 -48
- package/docs/profiles/UiCheckbox.yml +0 -53
- package/docs/profiles/UiCollapse.yml +0 -40
- package/docs/profiles/UiCollapseBox.yml +0 -51
- package/docs/profiles/UiCopyButton.yml +0 -52
- package/docs/profiles/UiDate.yml +0 -38
- package/docs/profiles/UiDatePicker.yml +0 -59
- package/docs/profiles/UiError.yml +0 -32
- package/docs/profiles/UiImage.yml +0 -39
- package/docs/profiles/UiInfobox.yml +0 -45
- package/docs/profiles/UiLink.yml +0 -51
- package/docs/profiles/UiLoader.yml +0 -38
- package/docs/profiles/UiMenuItem.yml +0 -57
- package/docs/profiles/UiModalSidebar.yml +0 -46
- package/docs/profiles/UiModalWindow.yml +0 -44
- package/docs/profiles/UiNumberStepper.yml +0 -52
- package/docs/profiles/UiRadio.yml +0 -38
- package/docs/profiles/UiScrollBox.yml +0 -31
- package/docs/profiles/UiSelectOption.yml +0 -44
- package/docs/profiles/UiSelectOptionGroup.yml +0 -38
- package/docs/profiles/UiSkeleton.yml +0 -41
- package/docs/profiles/UiSlider.yml +0 -38
- package/docs/profiles/UiSwitch.yml +0 -37
- package/docs/profiles/UiTab.yml +0 -119
- package/docs/profiles/UiTable.yml +0 -152
- package/docs/profiles/UiTableColumn.yml +0 -50
- package/docs/profiles/UiTableFooterButton.yml +0 -44
- package/docs/profiles/UiTableFooterSection.yml +0 -38
- package/docs/profiles/UiTag.yml +0 -41
- package/docs/profiles/UiTimePicker.yml +0 -46
- package/docs/profiles/UiToolbarButton.yml +0 -37
- package/docs/profiles/UiToolbarLink.yml +0 -32
- package/docs/profiles/UiTooltip.yml +0 -43
- package/docs/profiles/UiTransition.yml +0 -27
- package/docs/profiles/UiYandexMap.yml +0 -29
package/dist/remote.cjs
CHANGED
|
@@ -124,13 +124,13 @@ const UiError = remote.defineRemoteComponent(
|
|
|
124
124
|
UiErrorType,
|
|
125
125
|
["click", "focus", "blur"]
|
|
126
126
|
);
|
|
127
|
-
const _hoisted_1$
|
|
127
|
+
const _hoisted_1$9 = {
|
|
128
128
|
xmlns: "http://www.w3.org/2000/svg",
|
|
129
129
|
fill: "currentColor",
|
|
130
130
|
viewBox: "0 0 24 24"
|
|
131
131
|
};
|
|
132
|
-
function render$
|
|
133
|
-
return vue.openBlock(), vue.createElementBlock("svg", _hoisted_1$
|
|
132
|
+
function render$3(_ctx, _cache) {
|
|
133
|
+
return vue.openBlock(), vue.createElementBlock("svg", _hoisted_1$9, [..._cache[0] || (_cache[0] = [
|
|
134
134
|
vue.createElementVNode("path", {
|
|
135
135
|
"fill-rule": "evenodd",
|
|
136
136
|
d: "M12 2C6.477 2 2 6.477 2 12s4.477 10 10 10 10-4.477 10-10A10 10 0 0 0 12 2m1 15.5a.5.5 0 0 1-.5.5h-1a.5.5 0 0 1-.5-.5v-1a.5.5 0 0 1 .5-.5h1a.5.5 0 0 1 .5.5zm.88-5.21a2.89 2.89 0 0 0 2-2.73V9A2.88 2.88 0 0 0 13 6.12h-2A2.88 2.88 0 0 0 8.12 9v.5a.5.5 0 0 0 .5.5h.76a.5.5 0 0 0 .5-.5V9c0-.619.501-1.12 1.12-1.12h2A1.12 1.12 0 0 1 14.16 9v.56a1.13 1.13 0 0 1-.76 1.07l-.95.31a1.88 1.88 0 0 0-1.29 1.78v.78a.5.5 0 0 0 .5.5h.76a.5.5 0 0 0 .5-.5v-.78c0-.053.032-.1.08-.12z",
|
|
@@ -138,23 +138,33 @@ function render$2(_ctx, _cache) {
|
|
|
138
138
|
}, null, -1)
|
|
139
139
|
])]);
|
|
140
140
|
}
|
|
141
|
-
const IconHelp = { render: render$
|
|
141
|
+
const IconHelp = { render: render$3 };
|
|
142
142
|
const UiPopperType = "UiPopper";
|
|
143
|
-
const UiPopper = remote.defineRemoteComponent(UiPopperType
|
|
143
|
+
const UiPopper = remote.defineRemoteComponent(UiPopperType, {
|
|
144
|
+
emits: [
|
|
145
|
+
"attached",
|
|
146
|
+
"dispose",
|
|
147
|
+
"hide",
|
|
148
|
+
"hidden",
|
|
149
|
+
"show",
|
|
150
|
+
"shown",
|
|
151
|
+
"update:visible"
|
|
152
|
+
]
|
|
153
|
+
});
|
|
144
154
|
const UiPopperConnectorType = "UiPopperConnector";
|
|
145
155
|
const UiPopperConnector = remote.defineRemoteComponent(UiPopperConnectorType);
|
|
146
156
|
const UiPopperTargetType = "UiPopperTarget";
|
|
147
157
|
const UiPopperTarget = remote.defineRemoteComponent(UiPopperTargetType);
|
|
148
158
|
const UiTooltipType = "UiTooltip";
|
|
149
159
|
const UiTooltip = remote.defineRemoteComponent(UiTooltipType);
|
|
150
|
-
const _hoisted_1$
|
|
151
|
-
const _hoisted_2$
|
|
152
|
-
const _hoisted_3$
|
|
160
|
+
const _hoisted_1$8 = { class: "ui-v1-field__headline" };
|
|
161
|
+
const _hoisted_2$4 = ["id", "for"];
|
|
162
|
+
const _hoisted_3$4 = {
|
|
153
163
|
key: 0,
|
|
154
164
|
class: "ui-v1-field__required-mark",
|
|
155
165
|
"aria-hidden": "true"
|
|
156
166
|
};
|
|
157
|
-
const _hoisted_4$
|
|
167
|
+
const _hoisted_4$2 = {
|
|
158
168
|
key: 1,
|
|
159
169
|
class: "ui-v1-field__hint"
|
|
160
170
|
};
|
|
@@ -163,7 +173,7 @@ const _hoisted_5$1 = {
|
|
|
163
173
|
class: "ui-v1-field__addon"
|
|
164
174
|
};
|
|
165
175
|
const _hoisted_6 = { class: "ui-v1-field__control" };
|
|
166
|
-
const _sfc_main$
|
|
176
|
+
const _sfc_main$e = /* @__PURE__ */ vue.defineComponent({
|
|
167
177
|
...{
|
|
168
178
|
inheritAttrs: false
|
|
169
179
|
},
|
|
@@ -221,7 +231,7 @@ const _sfc_main$b = /* @__PURE__ */ vue.defineComponent({
|
|
|
221
231
|
"ui-v1-field_readonly": __props.readonly
|
|
222
232
|
}
|
|
223
233
|
}, _ctx.$attrs), [
|
|
224
|
-
vue.createElementVNode("div", _hoisted_1$
|
|
234
|
+
vue.createElementVNode("div", _hoisted_1$8, [
|
|
225
235
|
__props.label || _ctx.$slots.label ? (vue.openBlock(), vue.createElementBlock("label", {
|
|
226
236
|
key: 0,
|
|
227
237
|
id: `${__props.id}-label`,
|
|
@@ -231,9 +241,9 @@ const _sfc_main$b = /* @__PURE__ */ vue.defineComponent({
|
|
|
231
241
|
vue.renderSlot(_ctx.$slots, "label", {}, () => [
|
|
232
242
|
vue.createTextVNode(vue.toDisplayString(__props.label), 1)
|
|
233
243
|
]),
|
|
234
|
-
__props.required ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_3$
|
|
235
|
-
], 8, _hoisted_2$
|
|
236
|
-
__props.hint || _ctx.$slots.hint ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_4$
|
|
244
|
+
__props.required ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_3$4, " * ")) : vue.createCommentVNode("", true)
|
|
245
|
+
], 8, _hoisted_2$4)) : vue.createCommentVNode("", true),
|
|
246
|
+
__props.hint || _ctx.$slots.hint ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_4$2, [
|
|
237
247
|
vue.createVNode(vue.unref(UiPopperConnector), null, {
|
|
238
248
|
default: vue.withCtx(() => [
|
|
239
249
|
vue.createVNode(vue.unref(UiPopperTarget), {
|
|
@@ -317,6 +327,954 @@ const UiLoader = remote.defineRemoteComponent(
|
|
|
317
327
|
UiLoaderType,
|
|
318
328
|
["click", "focus", "blur"]
|
|
319
329
|
);
|
|
330
|
+
var LogicTreeNodeKind = /* @__PURE__ */ ((LogicTreeNodeKind2) => {
|
|
331
|
+
LogicTreeNodeKind2["BRANCH"] = "branch";
|
|
332
|
+
LogicTreeNodeKind2["CONDITION"] = "condition";
|
|
333
|
+
LogicTreeNodeKind2["GROUP"] = "group";
|
|
334
|
+
return LogicTreeNodeKind2;
|
|
335
|
+
})(LogicTreeNodeKind || {});
|
|
336
|
+
var LogicTreeChildrenView = /* @__PURE__ */ ((LogicTreeChildrenView2) => {
|
|
337
|
+
LogicTreeChildrenView2["GROUPED"] = "grouped";
|
|
338
|
+
LogicTreeChildrenView2["PLAIN"] = "plain";
|
|
339
|
+
return LogicTreeChildrenView2;
|
|
340
|
+
})(LogicTreeChildrenView || {});
|
|
341
|
+
var LogicTreeConjunction = /* @__PURE__ */ ((LogicTreeConjunction2) => {
|
|
342
|
+
LogicTreeConjunction2["AND"] = "and";
|
|
343
|
+
LogicTreeConjunction2["OR"] = "or";
|
|
344
|
+
return LogicTreeConjunction2;
|
|
345
|
+
})(LogicTreeConjunction || {});
|
|
346
|
+
var LogicTreeNodeView = /* @__PURE__ */ ((LogicTreeNodeView2) => {
|
|
347
|
+
LogicTreeNodeView2["ACTIONS"] = "actions";
|
|
348
|
+
LogicTreeNodeView2["SUMMARY"] = "summary";
|
|
349
|
+
return LogicTreeNodeView2;
|
|
350
|
+
})(LogicTreeNodeView || {});
|
|
351
|
+
var LogicTreeTone = /* @__PURE__ */ ((LogicTreeTone2) => {
|
|
352
|
+
LogicTreeTone2["BLUE"] = "blue";
|
|
353
|
+
LogicTreeTone2["GREEN"] = "green";
|
|
354
|
+
LogicTreeTone2["GREY"] = "grey";
|
|
355
|
+
LogicTreeTone2["RED"] = "red";
|
|
356
|
+
LogicTreeTone2["YELLOW"] = "yellow";
|
|
357
|
+
return LogicTreeTone2;
|
|
358
|
+
})(LogicTreeTone || {});
|
|
359
|
+
const pluralization_en_GB = (choice) => choice === 1 ? 0 : 1;
|
|
360
|
+
const pluralization_es_ES = (choice) => choice === 1 ? 0 : 1;
|
|
361
|
+
const pluralization_ru_RU = (choice, choicesLength) => {
|
|
362
|
+
if (choicesLength === 2) {
|
|
363
|
+
return choice === 1 ? 0 : 1;
|
|
364
|
+
}
|
|
365
|
+
const mod100 = choice % 100;
|
|
366
|
+
return mod100 % 10 === 1 && mod100 !== 11 ? 0 : mod100 % 10 >= 2 && mod100 % 10 <= 4 && !(mod100 >= 10 && mod100 < 15) ? 1 : 2;
|
|
367
|
+
};
|
|
368
|
+
const get = (messages, path) => {
|
|
369
|
+
let i = 0;
|
|
370
|
+
let slice = messages[path[0]];
|
|
371
|
+
while (i < path.length) {
|
|
372
|
+
if (typeof slice === "string" && i + 1 === path.length) {
|
|
373
|
+
return slice;
|
|
374
|
+
}
|
|
375
|
+
if (typeof slice !== "object") {
|
|
376
|
+
return void 0;
|
|
377
|
+
}
|
|
378
|
+
slice = slice[path[++i]];
|
|
379
|
+
}
|
|
380
|
+
return slice;
|
|
381
|
+
};
|
|
382
|
+
const replace = (message, values) => {
|
|
383
|
+
return Object.keys(values).reduce((message2, key) => {
|
|
384
|
+
const pattern = new RegExp(`\\{${key}\\}`, "g");
|
|
385
|
+
const replacement = String(values[key]);
|
|
386
|
+
return message2.replace(pattern, replacement);
|
|
387
|
+
}, message);
|
|
388
|
+
};
|
|
389
|
+
const compile = (messages, path, values = void 0) => {
|
|
390
|
+
const message = get(messages, path);
|
|
391
|
+
if (typeof message === "string" && values) {
|
|
392
|
+
return replace(message, values);
|
|
393
|
+
}
|
|
394
|
+
return message;
|
|
395
|
+
};
|
|
396
|
+
const fail = (message) => {
|
|
397
|
+
throw new Error(message);
|
|
398
|
+
};
|
|
399
|
+
const t = (locale2, messages, path, values = void 0) => {
|
|
400
|
+
const keys = path.split(".");
|
|
401
|
+
if (locale2) {
|
|
402
|
+
const message = compile(messages[locale2] ?? {}, keys, values);
|
|
403
|
+
return typeof message !== "object" ? message : fail(`Translation for "${locale2}:${path}" is not translatable`);
|
|
404
|
+
}
|
|
405
|
+
return void 0;
|
|
406
|
+
};
|
|
407
|
+
const plural = (template, choice, rule) => {
|
|
408
|
+
const forms = template.split("|");
|
|
409
|
+
return forms[rule(choice, forms.length)];
|
|
410
|
+
};
|
|
411
|
+
class I18n {
|
|
412
|
+
parent;
|
|
413
|
+
messages;
|
|
414
|
+
computed;
|
|
415
|
+
pluralization;
|
|
416
|
+
fallback;
|
|
417
|
+
constructor(options = void 0, parent = void 0) {
|
|
418
|
+
this.parent = parent;
|
|
419
|
+
this.messages = options?.messages ?? {};
|
|
420
|
+
this.computed = options?.computed ?? {};
|
|
421
|
+
this.pluralization = {
|
|
422
|
+
"en-GB": pluralization_en_GB,
|
|
423
|
+
"es-ES": pluralization_es_ES,
|
|
424
|
+
"ru-RU": pluralization_ru_RU,
|
|
425
|
+
...options?.pluralization ?? {}
|
|
426
|
+
};
|
|
427
|
+
this.fallback = options?.fallback;
|
|
428
|
+
}
|
|
429
|
+
t(locale2, path, values = void 0) {
|
|
430
|
+
try {
|
|
431
|
+
const _t = (locale22) => t(locale22, this.messages, path, values);
|
|
432
|
+
return _t(locale2) ?? _t(this.fallback) ?? fail(`Translation for "${path}" does not exists`);
|
|
433
|
+
} catch (e) {
|
|
434
|
+
if (this.parent) {
|
|
435
|
+
return this.parent.t(locale2, path, values);
|
|
436
|
+
}
|
|
437
|
+
throw e;
|
|
438
|
+
}
|
|
439
|
+
}
|
|
440
|
+
tc(locale2, path, choice, values = void 0) {
|
|
441
|
+
return plural(
|
|
442
|
+
this.t(
|
|
443
|
+
locale2,
|
|
444
|
+
path,
|
|
445
|
+
values
|
|
446
|
+
),
|
|
447
|
+
choice,
|
|
448
|
+
this.pluralization[locale2]
|
|
449
|
+
);
|
|
450
|
+
}
|
|
451
|
+
compute(locale2, key, values) {
|
|
452
|
+
const computed = this.computed[key];
|
|
453
|
+
if (computed) {
|
|
454
|
+
return computed(localize(this, locale2), values);
|
|
455
|
+
}
|
|
456
|
+
if (this.parent) {
|
|
457
|
+
return this.parent.compute(locale2, key, values);
|
|
458
|
+
}
|
|
459
|
+
return fail("Key " + key + " is not registered");
|
|
460
|
+
}
|
|
461
|
+
extend(options) {
|
|
462
|
+
return new I18n({
|
|
463
|
+
pluralization: this.pluralization,
|
|
464
|
+
fallback: this.fallback,
|
|
465
|
+
...options
|
|
466
|
+
}, this);
|
|
467
|
+
}
|
|
468
|
+
}
|
|
469
|
+
const localize = (i18n, locale2) => ({
|
|
470
|
+
t(path, values = void 0) {
|
|
471
|
+
return i18n.t(locale2, path, values);
|
|
472
|
+
},
|
|
473
|
+
tc(path, choice, values = void 0) {
|
|
474
|
+
return i18n.tc(locale2, path, choice, values);
|
|
475
|
+
},
|
|
476
|
+
compute(key, values) {
|
|
477
|
+
return i18n.compute(locale2, key, values);
|
|
478
|
+
}
|
|
479
|
+
});
|
|
480
|
+
const fallback = "en-GB";
|
|
481
|
+
const define = (options = void 0, parent = void 0) => {
|
|
482
|
+
const i18n = new I18n({
|
|
483
|
+
...options,
|
|
484
|
+
fallback
|
|
485
|
+
}, parent);
|
|
486
|
+
const extend = (i18n2, options2 = void 0) => options2 ? i18n2.extend(options2) : i18n2;
|
|
487
|
+
return {
|
|
488
|
+
i18n,
|
|
489
|
+
init: (locale2, options2 = void 0) => localize(
|
|
490
|
+
extend(i18n, options2),
|
|
491
|
+
locale2
|
|
492
|
+
),
|
|
493
|
+
fallback
|
|
494
|
+
};
|
|
495
|
+
};
|
|
496
|
+
const relationAnd$2 = "AND";
|
|
497
|
+
const relationOr$2 = "OR";
|
|
498
|
+
const messages_en_GB$1 = {
|
|
499
|
+
"delete": "Delete",
|
|
500
|
+
relationAnd: relationAnd$2,
|
|
501
|
+
relationOr: relationOr$2
|
|
502
|
+
};
|
|
503
|
+
const relationAnd$1 = "Y";
|
|
504
|
+
const relationOr$1 = "O";
|
|
505
|
+
const messages_es_ES$1 = {
|
|
506
|
+
"delete": "Eliminar",
|
|
507
|
+
relationAnd: relationAnd$1,
|
|
508
|
+
relationOr: relationOr$1
|
|
509
|
+
};
|
|
510
|
+
const relationAnd = "И";
|
|
511
|
+
const relationOr = "ИЛИ";
|
|
512
|
+
const messages_ru_RU$1 = {
|
|
513
|
+
"delete": "Удалить",
|
|
514
|
+
relationAnd,
|
|
515
|
+
relationOr
|
|
516
|
+
};
|
|
517
|
+
const _i18n = define({
|
|
518
|
+
messages: {
|
|
519
|
+
"en-GB": messages_en_GB$1,
|
|
520
|
+
"es-ES": messages_es_ES$1,
|
|
521
|
+
"ru-RU": messages_ru_RU$1
|
|
522
|
+
}
|
|
523
|
+
});
|
|
524
|
+
const I18nInjectKey = /* @__PURE__ */ Symbol("$embedI18n");
|
|
525
|
+
const UiLogicTreeRootType = "UiLogicTreeRoot";
|
|
526
|
+
const UiLogicTreeRoot = remote.defineRemoteComponent(UiLogicTreeRootType, {
|
|
527
|
+
emits: [
|
|
528
|
+
"outsideClick"
|
|
529
|
+
],
|
|
530
|
+
slots: ["default"]
|
|
531
|
+
});
|
|
532
|
+
const UiLogicTreeNodeType = "UiLogicTreeNode";
|
|
533
|
+
const UiLogicTreeNode = remote.defineRemoteComponent(UiLogicTreeNodeType, {
|
|
534
|
+
emits: [
|
|
535
|
+
"nodeClick",
|
|
536
|
+
"nodeEdit"
|
|
537
|
+
],
|
|
538
|
+
slots: ["conjunction-poppers", "prefix", "content", "trailing"]
|
|
539
|
+
});
|
|
540
|
+
const UiLogicTreeCaretType = "UiLogicTreeCaret";
|
|
541
|
+
const UiLogicTreeCaret = remote.defineRemoteComponent(UiLogicTreeCaretType);
|
|
542
|
+
const UiLogicTreeNodeItemType = "UiLogicTreeNodeItem";
|
|
543
|
+
const UiLogicTreeNodeItem = remote.defineRemoteComponent(UiLogicTreeNodeItemType, {
|
|
544
|
+
slots: ["default", "headline", "title", "trailing"]
|
|
545
|
+
});
|
|
546
|
+
const UiLogicTreeNodeIconType = "UiLogicTreeNodeIcon";
|
|
547
|
+
const UiLogicTreeNodeIcon = remote.defineRemoteComponent(UiLogicTreeNodeIconType, {
|
|
548
|
+
slots: ["default"]
|
|
549
|
+
});
|
|
550
|
+
const _hoisted_1$7 = { class: "ui-v1-logic-tree__slot-content" };
|
|
551
|
+
const _hoisted_2$3 = { class: "ui-v1-logic-tree__slot-content" };
|
|
552
|
+
const _hoisted_3$3 = { class: "ui-v1-logic-tree__slot-content" };
|
|
553
|
+
const _sfc_main$d = /* @__PURE__ */ vue.defineComponent({
|
|
554
|
+
__name: "UiLogicTree",
|
|
555
|
+
props: {
|
|
556
|
+
items: { default: () => [] }
|
|
557
|
+
},
|
|
558
|
+
emits: ["action", "control-action", "control:update", "drop", "remove", "node:add", "node:edit", "node:remove", "toggle", "update:items"],
|
|
559
|
+
setup(__props, { emit: __emit }) {
|
|
560
|
+
const props = __props;
|
|
561
|
+
const emit = __emit;
|
|
562
|
+
const i18n = vue.computed(() => _i18n.init(vue.inject(I18nInjectKey, null)?.locale ?? _i18n.fallback));
|
|
563
|
+
const resolveConjunctionLabel = (conjunction) => {
|
|
564
|
+
if (conjunction === LogicTreeConjunction.AND) {
|
|
565
|
+
return i18n.value.t("relationAnd");
|
|
566
|
+
}
|
|
567
|
+
if (conjunction === LogicTreeConjunction.OR) {
|
|
568
|
+
return i18n.value.t("relationOr");
|
|
569
|
+
}
|
|
570
|
+
return String(conjunction ?? "");
|
|
571
|
+
};
|
|
572
|
+
const itemsState = vue.shallowRef([]);
|
|
573
|
+
const activePathKey = vue.ref("");
|
|
574
|
+
const fallbackTone = (node) => node.tone ?? (node.kind === LogicTreeNodeKind.GROUP ? LogicTreeTone.GREEN : LogicTreeTone.BLUE);
|
|
575
|
+
const resolveConjunctionTone = (conjunction, fallback2) => {
|
|
576
|
+
if (conjunction === LogicTreeConjunction.OR) {
|
|
577
|
+
return LogicTreeTone.YELLOW;
|
|
578
|
+
}
|
|
579
|
+
if (conjunction === LogicTreeConjunction.AND) {
|
|
580
|
+
return LogicTreeTone.BLUE;
|
|
581
|
+
}
|
|
582
|
+
return fallback2;
|
|
583
|
+
};
|
|
584
|
+
const resolveNodeConjunction = (node, index, isGroupedSectionNode, parentNode) => {
|
|
585
|
+
if (isGroupedSectionNode || !isConjunctionContentNode(node)) {
|
|
586
|
+
return "";
|
|
587
|
+
}
|
|
588
|
+
if (index === 0) {
|
|
589
|
+
return parentNode && isConjunctionContentNode(parentNode) && countConjunctionContentChildren(parentNode) >= 2 ? node.conjunction ?? "" : "";
|
|
590
|
+
}
|
|
591
|
+
return node.conjunction ?? "";
|
|
592
|
+
};
|
|
593
|
+
const resolveConjunctionOffset = (conjunction) => {
|
|
594
|
+
if (!conjunction) {
|
|
595
|
+
return void 0;
|
|
596
|
+
}
|
|
597
|
+
return -8;
|
|
598
|
+
};
|
|
599
|
+
const resolveSubtreeEndPathKey = (source, nodeIndex) => {
|
|
600
|
+
const nodeEntry = source[nodeIndex];
|
|
601
|
+
const nodePathKey = pathToKey(nodeEntry.path);
|
|
602
|
+
const subtreePrefix = `${nodePathKey}.`;
|
|
603
|
+
let endIndex = nodeIndex;
|
|
604
|
+
for (let index = nodeIndex + 1; index < source.length; index += 1) {
|
|
605
|
+
const candidatePathKey = pathToKey(source[index].path);
|
|
606
|
+
if (candidatePathKey.startsWith(subtreePrefix)) {
|
|
607
|
+
endIndex = index;
|
|
608
|
+
continue;
|
|
609
|
+
}
|
|
610
|
+
break;
|
|
611
|
+
}
|
|
612
|
+
return pathToKey(source[endIndex].path);
|
|
613
|
+
};
|
|
614
|
+
const resolveConjunctionRangeEndPathKey = (source, nodeIndex) => {
|
|
615
|
+
const nodeEntry = source[nodeIndex];
|
|
616
|
+
const siblingIndex = nodeEntry.path.at(-1);
|
|
617
|
+
if (siblingIndex === void 0) {
|
|
618
|
+
return void 0;
|
|
619
|
+
}
|
|
620
|
+
let lastSiblingNodeIndex = nodeIndex;
|
|
621
|
+
source.forEach((candidate, candidateIndex) => {
|
|
622
|
+
const candidateSiblingIndex = candidate.path.at(-1);
|
|
623
|
+
if (candidate.path.length === nodeEntry.path.length && candidateSiblingIndex !== void 0 && candidateSiblingIndex >= siblingIndex && candidate.parentPath.length === nodeEntry.parentPath.length && candidate.parentPath.every((segment, index) => segment === nodeEntry.parentPath[index])) {
|
|
624
|
+
lastSiblingNodeIndex = candidateIndex;
|
|
625
|
+
}
|
|
626
|
+
});
|
|
627
|
+
return resolveSubtreeEndPathKey(source, lastSiblingNodeIndex);
|
|
628
|
+
};
|
|
629
|
+
const applyConjunctionToneToConnectors = (connectors, conjunction, conjunctionTone) => {
|
|
630
|
+
if (!conjunction || connectors.length === 0) {
|
|
631
|
+
return connectors;
|
|
632
|
+
}
|
|
633
|
+
return connectors.map((connector, connectorIndex, source) => connectorIndex === source.length - 1 ? {
|
|
634
|
+
...connector,
|
|
635
|
+
tone: conjunctionTone
|
|
636
|
+
} : connector);
|
|
637
|
+
};
|
|
638
|
+
const setConnectorToneAtIndex = (nodeEntry, connectorIndex, tone) => {
|
|
639
|
+
if (!nodeEntry.connectors[connectorIndex]) {
|
|
640
|
+
return nodeEntry;
|
|
641
|
+
}
|
|
642
|
+
return {
|
|
643
|
+
...nodeEntry,
|
|
644
|
+
connectors: nodeEntry.connectors.map((connector, index) => index === connectorIndex ? {
|
|
645
|
+
...connector,
|
|
646
|
+
tone
|
|
647
|
+
} : connector)
|
|
648
|
+
};
|
|
649
|
+
};
|
|
650
|
+
const applyConjunctionBranchTones = (source) => {
|
|
651
|
+
const nodes = source.map((nodeEntry) => ({
|
|
652
|
+
...nodeEntry,
|
|
653
|
+
connectors: nodeEntry.connectors.map((connector) => ({ ...connector }))
|
|
654
|
+
}));
|
|
655
|
+
const startsWithPath = (path, prefix) => prefix.length <= path.length && prefix.every((segment, index) => path[index] === segment);
|
|
656
|
+
const recolorBranchLevel = (parentPath, connectorIndex, tone) => {
|
|
657
|
+
nodes.forEach((candidate, index) => {
|
|
658
|
+
if (!startsWithPath(candidate.path, parentPath)) {
|
|
659
|
+
return;
|
|
660
|
+
}
|
|
661
|
+
if (!candidate.connectors[connectorIndex]) {
|
|
662
|
+
return;
|
|
663
|
+
}
|
|
664
|
+
nodes[index] = setConnectorToneAtIndex(candidate, connectorIndex, tone);
|
|
665
|
+
});
|
|
666
|
+
};
|
|
667
|
+
nodes.forEach((nodeEntry) => {
|
|
668
|
+
if (!nodeEntry.conjunction) {
|
|
669
|
+
return;
|
|
670
|
+
}
|
|
671
|
+
const connectorIndex = Math.max(0, nodeEntry.connectors.length - 1);
|
|
672
|
+
recolorBranchLevel(nodeEntry.parentPath, connectorIndex, nodeEntry.conjunctionTone);
|
|
673
|
+
});
|
|
674
|
+
return nodes;
|
|
675
|
+
};
|
|
676
|
+
const applyConjunctionRanges = (source) => source.map((nodeEntry, nodeIndex) => {
|
|
677
|
+
if (!nodeEntry.conjunction) {
|
|
678
|
+
return nodeEntry;
|
|
679
|
+
}
|
|
680
|
+
const siblingIndex = nodeEntry.path.at(-1);
|
|
681
|
+
const parentPathKey = nodeEntry.parentPath.length > 0 ? pathToKey(nodeEntry.parentPath) : void 0;
|
|
682
|
+
const parentEntry = parentPathKey ? source.find((candidate) => pathToKey(candidate.path) === parentPathKey) : void 0;
|
|
683
|
+
if (siblingIndex === void 0) {
|
|
684
|
+
return nodeEntry;
|
|
685
|
+
}
|
|
686
|
+
if (siblingIndex === 0) {
|
|
687
|
+
return {
|
|
688
|
+
...nodeEntry,
|
|
689
|
+
conjunctionEndPathKey: resolveConjunctionRangeEndPathKey(source, nodeIndex),
|
|
690
|
+
conjunctionStartPathKey: parentEntry ? pathToKey(parentEntry.path) : void 0
|
|
691
|
+
};
|
|
692
|
+
}
|
|
693
|
+
return {
|
|
694
|
+
...nodeEntry,
|
|
695
|
+
conjunctionEndPathKey: resolveConjunctionRangeEndPathKey(source, nodeIndex),
|
|
696
|
+
conjunctionStartPathKey: pathToKey([...nodeEntry.parentPath, siblingIndex - 1])
|
|
697
|
+
};
|
|
698
|
+
});
|
|
699
|
+
const pathToKey = (path) => path.join(".");
|
|
700
|
+
const cloneNodes = (nodes) => nodes.map((node) => ({
|
|
701
|
+
...node,
|
|
702
|
+
children: node.children ? cloneNodes(node.children) : void 0,
|
|
703
|
+
data: { ...node.data }
|
|
704
|
+
}));
|
|
705
|
+
const resolveConfiguredNodeView = (node) => node.data.view;
|
|
706
|
+
const isConjunctionContentNode = (node) => resolveConfiguredNodeView(node) !== LogicTreeNodeView.ACTIONS && node.kind !== LogicTreeNodeKind.BRANCH;
|
|
707
|
+
const countConjunctionContentChildren = (node) => node?.children?.filter((child) => isConjunctionContentNode(child)).length ?? 0;
|
|
708
|
+
const resolveNodeView = (nodeEntry) => {
|
|
709
|
+
const configuredNodeView = resolveConfiguredNodeView(nodeEntry.node);
|
|
710
|
+
if (configuredNodeView === LogicTreeNodeView.ACTIONS) {
|
|
711
|
+
return configuredNodeView;
|
|
712
|
+
}
|
|
713
|
+
return configuredNodeView;
|
|
714
|
+
};
|
|
715
|
+
const canToggleNode = (nodeEntry) => Boolean(nodeEntry.node.collapsible) && nodeEntry.hasChildren;
|
|
716
|
+
const canSetNodeEditable = (nodeEntry) => resolveConfiguredNodeView(nodeEntry.node) !== LogicTreeNodeView.ACTIONS && !canToggleNode(nodeEntry);
|
|
717
|
+
const isNodeEditing = (nodeEntry) => canSetNodeEditable(nodeEntry) && Boolean(nodeEntry.node.data.editable);
|
|
718
|
+
const setNodeEditable = (nodeEntry, value) => {
|
|
719
|
+
if (!canSetNodeEditable(nodeEntry)) {
|
|
720
|
+
return;
|
|
721
|
+
}
|
|
722
|
+
withItemsMutation((nextItems) => {
|
|
723
|
+
setEditableState(nextItems, value ? nodeEntry.path : null);
|
|
724
|
+
});
|
|
725
|
+
};
|
|
726
|
+
vue.watch(() => props.items, (items) => {
|
|
727
|
+
itemsState.value = cloneNodes(items ?? []);
|
|
728
|
+
}, { deep: true, immediate: true });
|
|
729
|
+
const withItemsMutation = (mutator) => {
|
|
730
|
+
const nextItems = cloneNodes(itemsState.value);
|
|
731
|
+
mutator(nextItems);
|
|
732
|
+
itemsState.value = nextItems;
|
|
733
|
+
emit("update:items", cloneNodes(itemsState.value));
|
|
734
|
+
};
|
|
735
|
+
const getBranchAtPath = (nodes, parentPath, create = false) => {
|
|
736
|
+
let branch = nodes;
|
|
737
|
+
for (const index of parentPath) {
|
|
738
|
+
const node = branch[index];
|
|
739
|
+
if (!node) {
|
|
740
|
+
return null;
|
|
741
|
+
}
|
|
742
|
+
if (!node.children) {
|
|
743
|
+
if (!create) {
|
|
744
|
+
return null;
|
|
745
|
+
}
|
|
746
|
+
node.children = [];
|
|
747
|
+
}
|
|
748
|
+
branch = node.children;
|
|
749
|
+
}
|
|
750
|
+
return branch;
|
|
751
|
+
};
|
|
752
|
+
const getNodeAtPath = (nodes, path) => {
|
|
753
|
+
const branch = getBranchAtPath(nodes, path.slice(0, -1));
|
|
754
|
+
const index = path.at(-1);
|
|
755
|
+
if (index === void 0) {
|
|
756
|
+
return null;
|
|
757
|
+
}
|
|
758
|
+
return branch?.[index] ?? null;
|
|
759
|
+
};
|
|
760
|
+
const setEditableState = (nodes, editablePath = null) => {
|
|
761
|
+
const editablePathKey = editablePath ? pathToKey(editablePath) : "";
|
|
762
|
+
const walk = (branch, parentPath = []) => {
|
|
763
|
+
branch.forEach((node, index) => {
|
|
764
|
+
const path = [...parentPath, index];
|
|
765
|
+
node.data.editable = editablePathKey !== "" && pathToKey(path) === editablePathKey;
|
|
766
|
+
if (node.children?.length) {
|
|
767
|
+
walk(node.children, path);
|
|
768
|
+
}
|
|
769
|
+
});
|
|
770
|
+
};
|
|
771
|
+
walk(nodes);
|
|
772
|
+
};
|
|
773
|
+
const resolveParentMeta = (nodes, path) => {
|
|
774
|
+
const parentPath = path.slice(0, -1);
|
|
775
|
+
const parentNode = parentPath.length > 0 ? getNodeAtPath(nodes, parentPath) : null;
|
|
776
|
+
return {
|
|
777
|
+
parentNode,
|
|
778
|
+
parentPath,
|
|
779
|
+
parentPathKey: parentPath.length > 0 ? pathToKey(parentPath) : null
|
|
780
|
+
};
|
|
781
|
+
};
|
|
782
|
+
const flatten = (nodes, ancestors = [], parentPath = [], parentTone = null, currentSectionKey = "", parentNode = null) => nodes.flatMap((node, index, siblings) => {
|
|
783
|
+
const isLast = index === siblings.length - 1;
|
|
784
|
+
const path = [...parentPath, index];
|
|
785
|
+
const expanded = node.expanded !== false;
|
|
786
|
+
const hasChildren = Boolean(node.children?.length);
|
|
787
|
+
const shouldPreserveChildLevel = node.kind === LogicTreeNodeKind.BRANCH && ancestors.length === 0;
|
|
788
|
+
const descendsIntoChildren = hasChildren && expanded;
|
|
789
|
+
const isGroupedSectionNode = Boolean(currentSectionKey);
|
|
790
|
+
const conjunction = resolveNodeConjunction(node, index, isGroupedSectionNode, parentNode);
|
|
791
|
+
const connectorTone = parentTone ?? fallbackTone(node);
|
|
792
|
+
const conjunctionTone = resolveConjunctionTone(conjunction, connectorTone);
|
|
793
|
+
const connectorContinues = !isLast || descendsIntoChildren;
|
|
794
|
+
const connectors = applyConjunctionToneToConnectors([
|
|
795
|
+
...ancestors,
|
|
796
|
+
...parentTone ? [{
|
|
797
|
+
continues: connectorContinues,
|
|
798
|
+
tone: connectorTone,
|
|
799
|
+
visible: true
|
|
800
|
+
}] : []
|
|
801
|
+
].map((connector, connectorIndex, source) => ({
|
|
802
|
+
...connector,
|
|
803
|
+
placeholder: isGroupedSectionNode && connectorIndex === source.length - 1
|
|
804
|
+
})), conjunction, conjunctionTone);
|
|
805
|
+
const conjunctionOffset = resolveConjunctionOffset(conjunction);
|
|
806
|
+
const flattenedNodes2 = [{
|
|
807
|
+
conjunction,
|
|
808
|
+
conjunctionEndPathKey: void 0,
|
|
809
|
+
conjunctionOffset,
|
|
810
|
+
conjunctionStartPathKey: void 0,
|
|
811
|
+
connectors,
|
|
812
|
+
expanded,
|
|
813
|
+
groupedPosition: "",
|
|
814
|
+
hasChildren,
|
|
815
|
+
node,
|
|
816
|
+
parentPath,
|
|
817
|
+
path,
|
|
818
|
+
conjunctionTone,
|
|
819
|
+
sectionKey: currentSectionKey
|
|
820
|
+
}];
|
|
821
|
+
if (hasChildren && expanded) {
|
|
822
|
+
const childAncestors = shouldPreserveChildLevel ? ancestors : [
|
|
823
|
+
...ancestors,
|
|
824
|
+
...parentTone ? [{
|
|
825
|
+
continues: connectorContinues,
|
|
826
|
+
tone: connectorTone,
|
|
827
|
+
visible: true
|
|
828
|
+
}] : []
|
|
829
|
+
];
|
|
830
|
+
const childParentTone = shouldPreserveChildLevel ? parentTone ?? fallbackTone(node) : fallbackTone(node);
|
|
831
|
+
const nextSectionKey = node.childrenView === LogicTreeChildrenView.GROUPED ? pathToKey(path) : "";
|
|
832
|
+
flattenedNodes2.push(...flatten(
|
|
833
|
+
node.children ?? [],
|
|
834
|
+
childAncestors,
|
|
835
|
+
path,
|
|
836
|
+
childParentTone,
|
|
837
|
+
nextSectionKey,
|
|
838
|
+
node
|
|
839
|
+
));
|
|
840
|
+
}
|
|
841
|
+
return flattenedNodes2;
|
|
842
|
+
});
|
|
843
|
+
const flattenedNodes = vue.computed(() => applyConjunctionRanges(applyConjunctionBranchTones(flatten(itemsState.value))));
|
|
844
|
+
const nodesWithGrouping = vue.computed(() => flattenedNodes.value.map((nodeEntry, index, source) => {
|
|
845
|
+
if (!nodeEntry.sectionKey) {
|
|
846
|
+
return nodeEntry;
|
|
847
|
+
}
|
|
848
|
+
const prev = source[index - 1];
|
|
849
|
+
const next = source[index + 1];
|
|
850
|
+
const hasPrev = prev?.sectionKey === nodeEntry.sectionKey;
|
|
851
|
+
const hasNext = next?.sectionKey === nodeEntry.sectionKey;
|
|
852
|
+
const parentNode = nodeEntry.parentPath.length > 0 ? getNodeAtPath(itemsState.value, nodeEntry.parentPath) : null;
|
|
853
|
+
const hasGroupedHeader = parentNode?.childrenView === LogicTreeChildrenView.GROUPED;
|
|
854
|
+
let groupedPosition = "single";
|
|
855
|
+
if (!hasPrev && hasNext) {
|
|
856
|
+
groupedPosition = "start";
|
|
857
|
+
} else if (hasPrev && hasNext) {
|
|
858
|
+
groupedPosition = "middle";
|
|
859
|
+
} else if (hasPrev && !hasNext) {
|
|
860
|
+
groupedPosition = "end";
|
|
861
|
+
} else if (!hasPrev && !hasNext && hasGroupedHeader) {
|
|
862
|
+
groupedPosition = "end";
|
|
863
|
+
}
|
|
864
|
+
return {
|
|
865
|
+
...nodeEntry,
|
|
866
|
+
groupedPosition
|
|
867
|
+
};
|
|
868
|
+
}));
|
|
869
|
+
const renderEntries = vue.computed(() => {
|
|
870
|
+
const nextEntries = [];
|
|
871
|
+
for (let index = 0; index < nodesWithGrouping.value.length; index += 1) {
|
|
872
|
+
const nodeEntry = nodesWithGrouping.value[index];
|
|
873
|
+
if (!nodeEntry.sectionKey) {
|
|
874
|
+
nextEntries.push({
|
|
875
|
+
id: `node:${pathToKey(nodeEntry.path)}`,
|
|
876
|
+
kind: "node",
|
|
877
|
+
item: nodeEntry
|
|
878
|
+
});
|
|
879
|
+
continue;
|
|
880
|
+
}
|
|
881
|
+
const sectionNodes = [nodeEntry];
|
|
882
|
+
let cursor = index + 1;
|
|
883
|
+
while (nodesWithGrouping.value[cursor]?.sectionKey === nodeEntry.sectionKey) {
|
|
884
|
+
sectionNodes.push(nodesWithGrouping.value[cursor]);
|
|
885
|
+
cursor += 1;
|
|
886
|
+
}
|
|
887
|
+
nextEntries.push({
|
|
888
|
+
containerId: nodeEntry.sectionKey,
|
|
889
|
+
footerNodes: sectionNodes.filter((sectionNode) => resolveConfiguredNodeView(sectionNode.node) === LogicTreeNodeView.ACTIONS),
|
|
890
|
+
id: `group:${nodeEntry.sectionKey}`,
|
|
891
|
+
itemNodes: sectionNodes.filter((sectionNode) => resolveConfiguredNodeView(sectionNode.node) !== LogicTreeNodeView.ACTIONS),
|
|
892
|
+
kind: "grouped"
|
|
893
|
+
});
|
|
894
|
+
index = cursor - 1;
|
|
895
|
+
}
|
|
896
|
+
return nextEntries;
|
|
897
|
+
});
|
|
898
|
+
const isNodeDraggable = (node) => Boolean(node.data.draggable) && !node.data.disabled && resolveConfiguredNodeView(node) !== LogicTreeNodeView.ACTIONS;
|
|
899
|
+
const isGroupedDraggableNode = (nodeEntry) => Boolean(nodeEntry.sectionKey) && isNodeDraggable(nodeEntry.node);
|
|
900
|
+
const isNodeSelected = (nodeEntry) => Boolean(nodeEntry.node.data.selected) || activePathKey.value === pathToKey(nodeEntry.path) || isNodeEditing(nodeEntry);
|
|
901
|
+
const resolveNodeSlotProps = (nodeEntry) => ({
|
|
902
|
+
editing: isNodeEditing(nodeEntry),
|
|
903
|
+
expanded: nodeEntry.expanded,
|
|
904
|
+
grouped: Boolean(nodeEntry.sectionKey),
|
|
905
|
+
groupedHeader: nodeEntry.node.childrenView === LogicTreeChildrenView.GROUPED,
|
|
906
|
+
groupedPosition: nodeEntry.groupedPosition || void 0,
|
|
907
|
+
hasChildren: nodeEntry.hasChildren,
|
|
908
|
+
highlighted: Boolean(nodeEntry.node.data.highlighted),
|
|
909
|
+
disabled: Boolean(nodeEntry.node.data.disabled),
|
|
910
|
+
node: nodeEntry.node,
|
|
911
|
+
onAction: (actionId, kind) => {
|
|
912
|
+
onAction(nodeEntry, actionId, kind);
|
|
913
|
+
},
|
|
914
|
+
onControlAction: (controlId) => {
|
|
915
|
+
emit("control-action", {
|
|
916
|
+
controlId,
|
|
917
|
+
nodeId: nodeEntry.node.id
|
|
918
|
+
});
|
|
919
|
+
},
|
|
920
|
+
onControlUpdate: (controlId, value) => {
|
|
921
|
+
onControlUpdate(nodeEntry.path, controlId, value);
|
|
922
|
+
},
|
|
923
|
+
onRemove: () => {
|
|
924
|
+
onRemove(nodeEntry.path, nodeEntry.node.id);
|
|
925
|
+
},
|
|
926
|
+
onToggle: () => {
|
|
927
|
+
onToggle(nodeEntry);
|
|
928
|
+
},
|
|
929
|
+
path: [...nodeEntry.path],
|
|
930
|
+
pathKey: pathToKey(nodeEntry.path),
|
|
931
|
+
nodeView: resolveNodeView(nodeEntry),
|
|
932
|
+
selected: isNodeSelected(nodeEntry)
|
|
933
|
+
});
|
|
934
|
+
const onControlUpdate = (path, controlId, value) => {
|
|
935
|
+
const currentNode = getNodeAtPath(itemsState.value, path);
|
|
936
|
+
if (currentNode) {
|
|
937
|
+
emit("node:edit", {
|
|
938
|
+
controlId,
|
|
939
|
+
nodeId: currentNode.id,
|
|
940
|
+
pathKey: pathToKey(path),
|
|
941
|
+
value
|
|
942
|
+
});
|
|
943
|
+
}
|
|
944
|
+
emit("control:update", {
|
|
945
|
+
controlId,
|
|
946
|
+
nodeId: currentNode?.id ?? "",
|
|
947
|
+
value
|
|
948
|
+
});
|
|
949
|
+
};
|
|
950
|
+
const onToggle = (nodeEntry) => {
|
|
951
|
+
const nextExpanded = !nodeEntry.expanded;
|
|
952
|
+
withItemsMutation((nextItems) => {
|
|
953
|
+
const nextNode = getNodeAtPath(nextItems, nodeEntry.path);
|
|
954
|
+
if (nextNode) {
|
|
955
|
+
nextNode.expanded = nextExpanded;
|
|
956
|
+
}
|
|
957
|
+
});
|
|
958
|
+
emit("toggle", {
|
|
959
|
+
expanded: nextExpanded,
|
|
960
|
+
nodeId: nodeEntry.node.id
|
|
961
|
+
});
|
|
962
|
+
};
|
|
963
|
+
const onRemove = (path, nodeId) => {
|
|
964
|
+
const pathKey = pathToKey(path);
|
|
965
|
+
const index = path.at(-1);
|
|
966
|
+
const { parentNode, parentPathKey } = resolveParentMeta(itemsState.value, path);
|
|
967
|
+
if (activePathKey.value === pathKey) {
|
|
968
|
+
activePathKey.value = "";
|
|
969
|
+
}
|
|
970
|
+
if (index !== void 0) {
|
|
971
|
+
emit("node:remove", {
|
|
972
|
+
index,
|
|
973
|
+
nodeId,
|
|
974
|
+
parentNodeId: parentNode?.id ?? null,
|
|
975
|
+
parentPathKey,
|
|
976
|
+
pathKey
|
|
977
|
+
});
|
|
978
|
+
}
|
|
979
|
+
emit("remove", nodeId);
|
|
980
|
+
};
|
|
981
|
+
const onAction = (nodeEntry, actionId, kind) => {
|
|
982
|
+
if (resolveNodeView(nodeEntry) !== LogicTreeNodeView.ACTIONS) {
|
|
983
|
+
return;
|
|
984
|
+
}
|
|
985
|
+
const { parentNode, parentPathKey } = resolveParentMeta(itemsState.value, nodeEntry.path);
|
|
986
|
+
emit("node:add", {
|
|
987
|
+
actionId,
|
|
988
|
+
kind,
|
|
989
|
+
parentNodeId: parentNode?.id ?? null,
|
|
990
|
+
parentPathKey,
|
|
991
|
+
triggerNodeId: nodeEntry.node.id
|
|
992
|
+
});
|
|
993
|
+
emit("action", {
|
|
994
|
+
actionId,
|
|
995
|
+
nodeId: nodeEntry.node.id
|
|
996
|
+
});
|
|
997
|
+
};
|
|
998
|
+
const onNodeClick = (nodeEntry) => {
|
|
999
|
+
if (resolveNodeView(nodeEntry) === LogicTreeNodeView.ACTIONS) {
|
|
1000
|
+
return;
|
|
1001
|
+
}
|
|
1002
|
+
if (canToggleNode(nodeEntry)) {
|
|
1003
|
+
onToggle(nodeEntry);
|
|
1004
|
+
activePathKey.value = pathToKey(nodeEntry.path);
|
|
1005
|
+
return;
|
|
1006
|
+
}
|
|
1007
|
+
if (!canSetNodeEditable(nodeEntry)) {
|
|
1008
|
+
withItemsMutation((nextItems) => {
|
|
1009
|
+
setEditableState(nextItems, null);
|
|
1010
|
+
});
|
|
1011
|
+
}
|
|
1012
|
+
activePathKey.value = pathToKey(nodeEntry.path);
|
|
1013
|
+
};
|
|
1014
|
+
const onOutsideClick = () => {
|
|
1015
|
+
activePathKey.value = "";
|
|
1016
|
+
withItemsMutation((nextItems) => {
|
|
1017
|
+
setEditableState(nextItems, null);
|
|
1018
|
+
});
|
|
1019
|
+
};
|
|
1020
|
+
const resolveGroupedDropPayload = (event) => {
|
|
1021
|
+
if (!event.accepted || !event.targetContainerId || event.sourceContainerId !== event.targetContainerId || event.placement !== "before" && event.placement !== "after") {
|
|
1022
|
+
return null;
|
|
1023
|
+
}
|
|
1024
|
+
return {
|
|
1025
|
+
itemId: event.itemId,
|
|
1026
|
+
payload: event.payload,
|
|
1027
|
+
placement: event.placement,
|
|
1028
|
+
sourceContainerId: event.sourceContainerId,
|
|
1029
|
+
targetContainerId: event.targetContainerId,
|
|
1030
|
+
targetIndex: event.targetIndex,
|
|
1031
|
+
targetItemId: event.targetItemId
|
|
1032
|
+
};
|
|
1033
|
+
};
|
|
1034
|
+
const onGroupedDrop = (event) => {
|
|
1035
|
+
const payload = resolveGroupedDropPayload(event);
|
|
1036
|
+
if (!payload) {
|
|
1037
|
+
return;
|
|
1038
|
+
}
|
|
1039
|
+
const parentPath = payload.sourceContainerId.split(".").filter(Boolean).map((segment) => Number(segment));
|
|
1040
|
+
withItemsMutation((nextItems) => {
|
|
1041
|
+
const branchNode = getNodeAtPath(nextItems, parentPath);
|
|
1042
|
+
const children = branchNode?.children;
|
|
1043
|
+
if (!children?.length) {
|
|
1044
|
+
return;
|
|
1045
|
+
}
|
|
1046
|
+
const sortableChildren = children.filter((child) => resolveConfiguredNodeView(child) !== LogicTreeNodeView.ACTIONS);
|
|
1047
|
+
const footerChildren = children.filter((child) => resolveConfiguredNodeView(child) === LogicTreeNodeView.ACTIONS);
|
|
1048
|
+
const movedNodeIndex = sortableChildren.findIndex((child) => child.id === payload.itemId);
|
|
1049
|
+
if (movedNodeIndex === -1) {
|
|
1050
|
+
return;
|
|
1051
|
+
}
|
|
1052
|
+
const [movedNode] = sortableChildren.splice(movedNodeIndex, 1);
|
|
1053
|
+
if (!movedNode) {
|
|
1054
|
+
return;
|
|
1055
|
+
}
|
|
1056
|
+
const targetIndex = Math.min(
|
|
1057
|
+
Math.max(payload.targetIndex ?? sortableChildren.length, 0),
|
|
1058
|
+
sortableChildren.length
|
|
1059
|
+
);
|
|
1060
|
+
sortableChildren.splice(targetIndex, 0, movedNode);
|
|
1061
|
+
branchNode.children = [...sortableChildren, ...footerChildren];
|
|
1062
|
+
});
|
|
1063
|
+
emit("drop", payload);
|
|
1064
|
+
};
|
|
1065
|
+
return (_ctx, _cache) => {
|
|
1066
|
+
return vue.openBlock(), vue.createBlock(vue.unref(UiLogicTreeRoot), { onOutsideClick }, {
|
|
1067
|
+
default: vue.withCtx(() => [
|
|
1068
|
+
(vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(renderEntries.value, (entry) => {
|
|
1069
|
+
return vue.openBlock(), vue.createElementBlock(vue.Fragment, {
|
|
1070
|
+
key: entry.id
|
|
1071
|
+
}, [
|
|
1072
|
+
entry.kind === "grouped" ? (vue.openBlock(), vue.createBlock(vue.unref(remote.RemoteSortableContainer), {
|
|
1073
|
+
key: 0,
|
|
1074
|
+
as: "div",
|
|
1075
|
+
class: "ui-v1-logic-tree__grouped-sortable",
|
|
1076
|
+
"container-id": entry.containerId,
|
|
1077
|
+
accepts: [entry.containerId],
|
|
1078
|
+
"on-drop": onGroupedDrop
|
|
1079
|
+
}, {
|
|
1080
|
+
default: vue.withCtx(() => [
|
|
1081
|
+
(vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(entry.itemNodes, (nodeEntry, index) => {
|
|
1082
|
+
return vue.openBlock(), vue.createBlock(vue.unref(remote.RemoteSortableItem), {
|
|
1083
|
+
key: nodeEntry.node.id,
|
|
1084
|
+
as: "div",
|
|
1085
|
+
class: "ui-v1-logic-tree__grouped-sortable-item",
|
|
1086
|
+
"item-id": nodeEntry.node.id,
|
|
1087
|
+
"container-id": entry.containerId,
|
|
1088
|
+
type: entry.containerId,
|
|
1089
|
+
index,
|
|
1090
|
+
payload: { nodeId: nodeEntry.node.id, pathKey: pathToKey(nodeEntry.path) },
|
|
1091
|
+
disabled: !isGroupedDraggableNode(nodeEntry)
|
|
1092
|
+
}, {
|
|
1093
|
+
default: vue.withCtx(() => [
|
|
1094
|
+
vue.createVNode(vue.unref(UiLogicTreeNode), {
|
|
1095
|
+
"path-key": pathToKey(nodeEntry.path),
|
|
1096
|
+
"node-view": resolveNodeView(nodeEntry),
|
|
1097
|
+
connectors: nodeEntry.connectors,
|
|
1098
|
+
conjunction: nodeEntry.conjunction,
|
|
1099
|
+
"conjunction-end-path-key": nodeEntry.conjunctionEndPathKey,
|
|
1100
|
+
"conjunction-label": resolveConjunctionLabel(nodeEntry.conjunction),
|
|
1101
|
+
"conjunction-offset": nodeEntry.conjunctionOffset,
|
|
1102
|
+
"conjunction-start-path-key": nodeEntry.conjunctionStartPathKey,
|
|
1103
|
+
"conjunction-tone": nodeEntry.conjunctionTone,
|
|
1104
|
+
grouped: Boolean(nodeEntry.sectionKey),
|
|
1105
|
+
"grouped-header": nodeEntry.node.childrenView === vue.unref(LogicTreeChildrenView).GROUPED,
|
|
1106
|
+
"grouped-position": nodeEntry.groupedPosition || void 0,
|
|
1107
|
+
editable: nodeEntry.node.data.editable,
|
|
1108
|
+
selected: isNodeSelected(nodeEntry),
|
|
1109
|
+
highlighted: Boolean(nodeEntry.node.data.highlighted),
|
|
1110
|
+
disabled: Boolean(nodeEntry.node.data.disabled),
|
|
1111
|
+
onNodeClick: ($event) => onNodeClick(nodeEntry),
|
|
1112
|
+
onNodeEdit: ($event) => setNodeEditable(nodeEntry, $event)
|
|
1113
|
+
}, {
|
|
1114
|
+
"conjunction-poppers": vue.withCtx(() => [
|
|
1115
|
+
vue.renderSlot(_ctx.$slots, "conjunction-poppers", vue.mergeProps({ ref_for: true }, resolveNodeSlotProps(nodeEntry)))
|
|
1116
|
+
]),
|
|
1117
|
+
prefix: vue.withCtx(() => [
|
|
1118
|
+
vue.renderSlot(_ctx.$slots, "node-prefix", vue.mergeProps({ ref_for: true }, resolveNodeSlotProps(nodeEntry)))
|
|
1119
|
+
]),
|
|
1120
|
+
content: vue.withCtx(() => [
|
|
1121
|
+
vue.createElementVNode("div", _hoisted_1$7, [
|
|
1122
|
+
vue.renderSlot(_ctx.$slots, "node", vue.mergeProps({ ref_for: true }, resolveNodeSlotProps(nodeEntry)), () => [
|
|
1123
|
+
_cache[0] || (_cache[0] = vue.createElementVNode("div", {
|
|
1124
|
+
class: "ui-v1-logic-tree__slot-placeholder",
|
|
1125
|
+
"data-ui-logic-tree-slot": "node"
|
|
1126
|
+
}, null, -1))
|
|
1127
|
+
])
|
|
1128
|
+
])
|
|
1129
|
+
]),
|
|
1130
|
+
trailing: vue.withCtx(() => [
|
|
1131
|
+
vue.renderSlot(_ctx.$slots, "node-trailing", vue.mergeProps({ ref_for: true }, resolveNodeSlotProps(nodeEntry)))
|
|
1132
|
+
]),
|
|
1133
|
+
_: 2
|
|
1134
|
+
}, 1032, ["path-key", "node-view", "connectors", "conjunction", "conjunction-end-path-key", "conjunction-label", "conjunction-offset", "conjunction-start-path-key", "conjunction-tone", "grouped", "grouped-header", "grouped-position", "editable", "selected", "highlighted", "disabled", "onNodeClick", "onNodeEdit"])
|
|
1135
|
+
]),
|
|
1136
|
+
_: 2
|
|
1137
|
+
}, 1032, ["item-id", "container-id", "type", "index", "payload", "disabled"]);
|
|
1138
|
+
}), 128)),
|
|
1139
|
+
(vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(entry.footerNodes, (nodeEntry) => {
|
|
1140
|
+
return vue.openBlock(), vue.createBlock(vue.unref(UiLogicTreeNode), {
|
|
1141
|
+
key: nodeEntry.node.id,
|
|
1142
|
+
"path-key": pathToKey(nodeEntry.path),
|
|
1143
|
+
"node-view": resolveNodeView(nodeEntry),
|
|
1144
|
+
connectors: nodeEntry.connectors,
|
|
1145
|
+
conjunction: nodeEntry.conjunction,
|
|
1146
|
+
"conjunction-end-path-key": nodeEntry.conjunctionEndPathKey,
|
|
1147
|
+
"conjunction-label": resolveConjunctionLabel(nodeEntry.conjunction),
|
|
1148
|
+
"conjunction-offset": nodeEntry.conjunctionOffset,
|
|
1149
|
+
"conjunction-start-path-key": nodeEntry.conjunctionStartPathKey,
|
|
1150
|
+
"conjunction-tone": nodeEntry.conjunctionTone,
|
|
1151
|
+
grouped: Boolean(nodeEntry.sectionKey),
|
|
1152
|
+
"grouped-header": nodeEntry.node.childrenView === vue.unref(LogicTreeChildrenView).GROUPED,
|
|
1153
|
+
"grouped-position": nodeEntry.groupedPosition || void 0,
|
|
1154
|
+
editable: nodeEntry.node.data.editable,
|
|
1155
|
+
selected: isNodeSelected(nodeEntry),
|
|
1156
|
+
highlighted: Boolean(nodeEntry.node.data.highlighted),
|
|
1157
|
+
disabled: Boolean(nodeEntry.node.data.disabled),
|
|
1158
|
+
onNodeClick: ($event) => onNodeClick(nodeEntry),
|
|
1159
|
+
onNodeEdit: ($event) => setNodeEditable(nodeEntry, $event)
|
|
1160
|
+
}, {
|
|
1161
|
+
"conjunction-poppers": vue.withCtx(() => [
|
|
1162
|
+
vue.renderSlot(_ctx.$slots, "conjunction-poppers", vue.mergeProps({ ref_for: true }, resolveNodeSlotProps(nodeEntry)))
|
|
1163
|
+
]),
|
|
1164
|
+
prefix: vue.withCtx(() => [
|
|
1165
|
+
vue.renderSlot(_ctx.$slots, "node-prefix", vue.mergeProps({ ref_for: true }, resolveNodeSlotProps(nodeEntry)))
|
|
1166
|
+
]),
|
|
1167
|
+
content: vue.withCtx(() => [
|
|
1168
|
+
vue.createElementVNode("div", _hoisted_2$3, [
|
|
1169
|
+
vue.renderSlot(_ctx.$slots, "node", vue.mergeProps({ ref_for: true }, resolveNodeSlotProps(nodeEntry)), () => [
|
|
1170
|
+
_cache[1] || (_cache[1] = vue.createElementVNode("div", {
|
|
1171
|
+
class: "ui-v1-logic-tree__slot-placeholder",
|
|
1172
|
+
"data-ui-logic-tree-slot": "node"
|
|
1173
|
+
}, null, -1))
|
|
1174
|
+
])
|
|
1175
|
+
])
|
|
1176
|
+
]),
|
|
1177
|
+
trailing: vue.withCtx(() => [
|
|
1178
|
+
vue.renderSlot(_ctx.$slots, "node-trailing", vue.mergeProps({ ref_for: true }, resolveNodeSlotProps(nodeEntry)))
|
|
1179
|
+
]),
|
|
1180
|
+
_: 2
|
|
1181
|
+
}, 1032, ["path-key", "node-view", "connectors", "conjunction", "conjunction-end-path-key", "conjunction-label", "conjunction-offset", "conjunction-start-path-key", "conjunction-tone", "grouped", "grouped-header", "grouped-position", "editable", "selected", "highlighted", "disabled", "onNodeClick", "onNodeEdit"]);
|
|
1182
|
+
}), 128))
|
|
1183
|
+
]),
|
|
1184
|
+
_: 2
|
|
1185
|
+
}, 1032, ["container-id", "accepts"])) : (vue.openBlock(), vue.createBlock(vue.unref(UiLogicTreeNode), {
|
|
1186
|
+
key: 1,
|
|
1187
|
+
"path-key": pathToKey(entry.item.path),
|
|
1188
|
+
"node-view": resolveNodeView(entry.item),
|
|
1189
|
+
connectors: entry.item.connectors,
|
|
1190
|
+
conjunction: entry.item.conjunction,
|
|
1191
|
+
"conjunction-end-path-key": entry.item.conjunctionEndPathKey,
|
|
1192
|
+
"conjunction-label": resolveConjunctionLabel(entry.item.conjunction),
|
|
1193
|
+
"conjunction-offset": entry.item.conjunctionOffset,
|
|
1194
|
+
"conjunction-start-path-key": entry.item.conjunctionStartPathKey,
|
|
1195
|
+
"conjunction-tone": entry.item.conjunctionTone,
|
|
1196
|
+
grouped: Boolean(entry.item.sectionKey),
|
|
1197
|
+
"grouped-header": entry.item.node.childrenView === vue.unref(LogicTreeChildrenView).GROUPED,
|
|
1198
|
+
"grouped-position": entry.item.groupedPosition || void 0,
|
|
1199
|
+
editable: entry.item.node.data.editable,
|
|
1200
|
+
selected: isNodeSelected(entry.item),
|
|
1201
|
+
highlighted: Boolean(entry.item.node.data.highlighted),
|
|
1202
|
+
disabled: Boolean(entry.item.node.data.disabled),
|
|
1203
|
+
onNodeClick: ($event) => onNodeClick(entry.item),
|
|
1204
|
+
onNodeEdit: ($event) => setNodeEditable(entry.item, $event)
|
|
1205
|
+
}, {
|
|
1206
|
+
"conjunction-poppers": vue.withCtx(() => [
|
|
1207
|
+
vue.renderSlot(_ctx.$slots, "conjunction-poppers", vue.mergeProps({ ref_for: true }, resolveNodeSlotProps(entry.item)))
|
|
1208
|
+
]),
|
|
1209
|
+
prefix: vue.withCtx(() => [
|
|
1210
|
+
vue.renderSlot(_ctx.$slots, "node-prefix", vue.mergeProps({ ref_for: true }, resolveNodeSlotProps(entry.item)))
|
|
1211
|
+
]),
|
|
1212
|
+
content: vue.withCtx(() => [
|
|
1213
|
+
vue.createElementVNode("div", _hoisted_3$3, [
|
|
1214
|
+
vue.renderSlot(_ctx.$slots, "node", vue.mergeProps({ ref_for: true }, resolveNodeSlotProps(entry.item)), () => [
|
|
1215
|
+
_cache[2] || (_cache[2] = vue.createElementVNode("div", {
|
|
1216
|
+
class: "ui-v1-logic-tree__slot-placeholder",
|
|
1217
|
+
"data-ui-logic-tree-slot": "node"
|
|
1218
|
+
}, null, -1))
|
|
1219
|
+
])
|
|
1220
|
+
])
|
|
1221
|
+
]),
|
|
1222
|
+
trailing: vue.withCtx(() => [
|
|
1223
|
+
vue.renderSlot(_ctx.$slots, "node-trailing", vue.mergeProps({ ref_for: true }, resolveNodeSlotProps(entry.item)))
|
|
1224
|
+
]),
|
|
1225
|
+
_: 2
|
|
1226
|
+
}, 1032, ["path-key", "node-view", "connectors", "conjunction", "conjunction-end-path-key", "conjunction-label", "conjunction-offset", "conjunction-start-path-key", "conjunction-tone", "grouped", "grouped-header", "grouped-position", "editable", "selected", "highlighted", "disabled", "onNodeClick", "onNodeEdit"]))
|
|
1227
|
+
], 64);
|
|
1228
|
+
}), 128))
|
|
1229
|
+
]),
|
|
1230
|
+
_: 3
|
|
1231
|
+
});
|
|
1232
|
+
};
|
|
1233
|
+
}
|
|
1234
|
+
});
|
|
1235
|
+
const _hoisted_1$6 = {
|
|
1236
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
1237
|
+
viewBox: "0 0 20 20"
|
|
1238
|
+
};
|
|
1239
|
+
function render$2(_ctx, _cache) {
|
|
1240
|
+
return vue.openBlock(), vue.createElementBlock("svg", _hoisted_1$6, [..._cache[0] || (_cache[0] = [
|
|
1241
|
+
vue.createElementVNode("path", {
|
|
1242
|
+
fill: "currentColor",
|
|
1243
|
+
"fill-rule": "evenodd",
|
|
1244
|
+
d: "M7.499 6.667a1.667 1.667 0 1 0 0-3.333 1.667 1.667 0 0 0 0 3.333M5.832 10a1.667 1.667 0 1 1 3.333 0 1.667 1.667 0 0 1-3.333 0m1.667 3.334a1.667 1.667 0 1 0 0 3.333 1.667 1.667 0 0 0 0-3.334M14.165 5a1.667 1.667 0 1 1-3.333 0 1.667 1.667 0 0 1 3.333 0M12.5 8.334a1.667 1.667 0 1 0 0 3.333 1.667 1.667 0 0 0 0-3.333M10.832 15a1.667 1.667 0 1 1 3.333 0 1.667 1.667 0 0 1-3.333 0",
|
|
1245
|
+
"clip-rule": "evenodd"
|
|
1246
|
+
}, null, -1)
|
|
1247
|
+
])]);
|
|
1248
|
+
}
|
|
1249
|
+
const IconDrag = { render: render$2 };
|
|
1250
|
+
const _sfc_main$c = /* @__PURE__ */ vue.defineComponent({
|
|
1251
|
+
__name: "UiLogicTreeDragHandle",
|
|
1252
|
+
props: {
|
|
1253
|
+
disabled: { type: Boolean, default: false },
|
|
1254
|
+
for: { default: void 0 }
|
|
1255
|
+
},
|
|
1256
|
+
setup(__props) {
|
|
1257
|
+
const props = __props;
|
|
1258
|
+
return (_ctx, _cache) => {
|
|
1259
|
+
return vue.openBlock(), vue.createBlock(vue.unref(remote.RemoteDragHandle), {
|
|
1260
|
+
for: props.for,
|
|
1261
|
+
disabled: props.disabled,
|
|
1262
|
+
class: vue.normalizeClass([{
|
|
1263
|
+
"ui-v1-logic-tree-drag-handle_disabled": props.disabled
|
|
1264
|
+
}, "ui-v1-logic-tree-drag-handle"]),
|
|
1265
|
+
as: "span",
|
|
1266
|
+
"data-skip-node-click": "true"
|
|
1267
|
+
}, {
|
|
1268
|
+
default: vue.withCtx(() => [
|
|
1269
|
+
vue.renderSlot(_ctx.$slots, "default", {}, () => [
|
|
1270
|
+
vue.createVNode(vue.unref(IconDrag), { "aria-hidden": "true" })
|
|
1271
|
+
])
|
|
1272
|
+
]),
|
|
1273
|
+
_: 3
|
|
1274
|
+
}, 8, ["for", "disabled", "class"]);
|
|
1275
|
+
};
|
|
1276
|
+
}
|
|
1277
|
+
});
|
|
320
1278
|
const UiModalSidebarType = "UiModalSidebar";
|
|
321
1279
|
const UiModalSidebar = remote.defineRemoteComponent(
|
|
322
1280
|
UiModalSidebarType,
|
|
@@ -404,154 +1362,376 @@ const UiPageHeaderTitle = remote.defineRemoteComponent(UiPageHeaderTitleType, {
|
|
|
404
1362
|
blur: remote.defineRemoteMethod()
|
|
405
1363
|
}
|
|
406
1364
|
});
|
|
407
|
-
const _hoisted_1$5 = {
|
|
408
|
-
const _hoisted_2$2 = {
|
|
1365
|
+
const _hoisted_1$5 = {
|
|
409
1366
|
key: 0,
|
|
410
|
-
class: "ui-v1-page-
|
|
1367
|
+
class: "ui-v1-page-header__actions"
|
|
411
1368
|
};
|
|
412
|
-
const
|
|
1369
|
+
const _hoisted_2$2 = { class: "ui-v1-page-header__main" };
|
|
1370
|
+
const _hoisted_3$2 = { class: "ui-v1-page-header__body" };
|
|
1371
|
+
const _hoisted_4$1 = {
|
|
413
1372
|
key: 0,
|
|
414
|
-
class: "ui-v1-page-
|
|
1373
|
+
class: "ui-v1-page-header__addon"
|
|
415
1374
|
};
|
|
416
|
-
const _sfc_main$
|
|
1375
|
+
const _sfc_main$b = /* @__PURE__ */ vue.defineComponent({
|
|
417
1376
|
...{
|
|
418
1377
|
inheritAttrs: false
|
|
419
1378
|
},
|
|
420
1379
|
__name: "UiPageHeader",
|
|
421
1380
|
props: {
|
|
422
|
-
/** Уникальный идентификатор корневого элемента */
|
|
1381
|
+
/** Уникальный идентификатор корневого элемента */
|
|
1382
|
+
id: {
|
|
1383
|
+
type: null,
|
|
1384
|
+
default: void 0
|
|
1385
|
+
},
|
|
1386
|
+
/** Текст заголовка */
|
|
1387
|
+
value: {
|
|
1388
|
+
type: null,
|
|
1389
|
+
default: ""
|
|
1390
|
+
},
|
|
1391
|
+
/** Плейсхолдер, отображаемый при отсутствии текста */
|
|
1392
|
+
placeholder: {
|
|
1393
|
+
type: String,
|
|
1394
|
+
default: ""
|
|
1395
|
+
},
|
|
1396
|
+
/** Текст ошибки для tooltip при пустом невалидном заголовке */
|
|
1397
|
+
error: {
|
|
1398
|
+
type: String,
|
|
1399
|
+
default: ""
|
|
1400
|
+
},
|
|
1401
|
+
/** Разрешает перейти в режим редактирования по клику */
|
|
1402
|
+
editable: {
|
|
1403
|
+
type: Boolean,
|
|
1404
|
+
default: false
|
|
1405
|
+
},
|
|
1406
|
+
/** Автоматически переводит фокус во встроенный UiTextbox при входе в режим редактирования */
|
|
1407
|
+
autofocus: {
|
|
1408
|
+
type: Boolean,
|
|
1409
|
+
default: false
|
|
1410
|
+
},
|
|
1411
|
+
/** Автоматически выделяет текст заголовка при фокусе на встроенном поле */
|
|
1412
|
+
autoselect: {
|
|
1413
|
+
type: Boolean,
|
|
1414
|
+
default: true
|
|
1415
|
+
},
|
|
1416
|
+
/** Делает встроенное поле только для чтения */
|
|
1417
|
+
readonly: {
|
|
1418
|
+
type: Boolean,
|
|
1419
|
+
default: false
|
|
1420
|
+
},
|
|
1421
|
+
/** Полностью отключает заголовок */
|
|
1422
|
+
disabled: {
|
|
1423
|
+
type: Boolean,
|
|
1424
|
+
default: false
|
|
1425
|
+
},
|
|
1426
|
+
/** Помечает встроенное поле как невалидное */
|
|
1427
|
+
invalid: {
|
|
1428
|
+
type: Boolean,
|
|
1429
|
+
default: false
|
|
1430
|
+
}
|
|
1431
|
+
},
|
|
1432
|
+
emits: ["blur", "change", "focus", "keydown", "update:value"],
|
|
1433
|
+
setup(__props, { expose: __expose, emit: __emit }) {
|
|
1434
|
+
const props = __props;
|
|
1435
|
+
const emit = __emit;
|
|
1436
|
+
const header = vue.useTemplateRef("header");
|
|
1437
|
+
const valueState = vue.ref(props.value === null ? "" : String(props.value));
|
|
1438
|
+
const displayInvalid = vue.computed(() => props.invalid && valueState.value === "");
|
|
1439
|
+
vue.watch(() => props.value, (nextValue) => {
|
|
1440
|
+
valueState.value = nextValue === null ? "" : String(nextValue);
|
|
1441
|
+
});
|
|
1442
|
+
const onUpdateValue = (value) => {
|
|
1443
|
+
valueState.value = String(value);
|
|
1444
|
+
emit("update:value", value);
|
|
1445
|
+
};
|
|
1446
|
+
__expose({
|
|
1447
|
+
focus: () => header.value?.focus(),
|
|
1448
|
+
blur: () => header.value?.blur()
|
|
1449
|
+
});
|
|
1450
|
+
return (_ctx, _cache) => {
|
|
1451
|
+
return vue.openBlock(), vue.createElementBlock("div", vue.mergeProps({
|
|
1452
|
+
class: {
|
|
1453
|
+
"ui-v1-page-header": true,
|
|
1454
|
+
"ui-v1-page-header_disabled": __props.disabled,
|
|
1455
|
+
"ui-v1-page-header_invalid": displayInvalid.value,
|
|
1456
|
+
"ui-v1-page-header_readonly": __props.readonly
|
|
1457
|
+
}
|
|
1458
|
+
}, _ctx.$attrs), [
|
|
1459
|
+
_ctx.$slots.actions ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_1$5, [
|
|
1460
|
+
vue.renderSlot(_ctx.$slots, "actions")
|
|
1461
|
+
])) : vue.createCommentVNode("", true),
|
|
1462
|
+
vue.createElementVNode("div", _hoisted_2$2, [
|
|
1463
|
+
vue.createElementVNode("div", _hoisted_3$2, [
|
|
1464
|
+
vue.createVNode(vue.unref(UiPopperConnector), null, {
|
|
1465
|
+
default: vue.withCtx(() => [
|
|
1466
|
+
vue.createVNode(vue.unref(UiPopperTarget), {
|
|
1467
|
+
tag: "div",
|
|
1468
|
+
class: "ui-v1-page-header__title"
|
|
1469
|
+
}, {
|
|
1470
|
+
default: vue.withCtx(() => [
|
|
1471
|
+
vue.createVNode(vue.unref(UiPageHeaderTitle), {
|
|
1472
|
+
id: __props.id,
|
|
1473
|
+
ref_key: "header",
|
|
1474
|
+
ref: header,
|
|
1475
|
+
value: valueState.value,
|
|
1476
|
+
placeholder: __props.placeholder,
|
|
1477
|
+
error: __props.error,
|
|
1478
|
+
invalid: __props.invalid,
|
|
1479
|
+
editable: __props.editable,
|
|
1480
|
+
autofocus: __props.autofocus,
|
|
1481
|
+
autoselect: __props.autoselect,
|
|
1482
|
+
readonly: __props.readonly,
|
|
1483
|
+
disabled: __props.disabled,
|
|
1484
|
+
onBlur: _cache[0] || (_cache[0] = ($event) => _ctx.$emit("blur", $event)),
|
|
1485
|
+
onChange: _cache[1] || (_cache[1] = ($event) => _ctx.$emit("change", $event)),
|
|
1486
|
+
onFocus: _cache[2] || (_cache[2] = ($event) => _ctx.$emit("focus", $event)),
|
|
1487
|
+
onKeydown: _cache[3] || (_cache[3] = ($event) => _ctx.$emit("keydown", $event)),
|
|
1488
|
+
"onUpdate:value": onUpdateValue
|
|
1489
|
+
}, null, 8, ["id", "value", "placeholder", "error", "invalid", "editable", "autofocus", "autoselect", "readonly", "disabled"])
|
|
1490
|
+
]),
|
|
1491
|
+
_: 1
|
|
1492
|
+
}),
|
|
1493
|
+
displayInvalid.value && __props.error ? (vue.openBlock(), vue.createBlock(vue.unref(UiTooltip), {
|
|
1494
|
+
key: 0,
|
|
1495
|
+
"target-triggers": {
|
|
1496
|
+
hide: [""]
|
|
1497
|
+
},
|
|
1498
|
+
"offset-main-axis": 8,
|
|
1499
|
+
visible: "",
|
|
1500
|
+
placement: "right"
|
|
1501
|
+
}, {
|
|
1502
|
+
default: vue.withCtx(() => [
|
|
1503
|
+
vue.createTextVNode(vue.toDisplayString(__props.error), 1)
|
|
1504
|
+
]),
|
|
1505
|
+
_: 1
|
|
1506
|
+
})) : vue.createCommentVNode("", true)
|
|
1507
|
+
]),
|
|
1508
|
+
_: 1
|
|
1509
|
+
}),
|
|
1510
|
+
_ctx.$slots.addon ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_4$1, [
|
|
1511
|
+
vue.renderSlot(_ctx.$slots, "addon")
|
|
1512
|
+
])) : vue.createCommentVNode("", true)
|
|
1513
|
+
])
|
|
1514
|
+
])
|
|
1515
|
+
], 16);
|
|
1516
|
+
};
|
|
1517
|
+
}
|
|
1518
|
+
});
|
|
1519
|
+
var APPEARANCE$3 = /* @__PURE__ */ ((APPEARANCE2) => {
|
|
1520
|
+
APPEARANCE2["OUTLINED"] = "outlined";
|
|
1521
|
+
APPEARANCE2["PRIMARY"] = "primary";
|
|
1522
|
+
APPEARANCE2["SECONDARY"] = "secondary";
|
|
1523
|
+
APPEARANCE2["TERTIARY"] = "tertiary";
|
|
1524
|
+
return APPEARANCE2;
|
|
1525
|
+
})(APPEARANCE$3 || {});
|
|
1526
|
+
var SIZE$5 = /* @__PURE__ */ ((SIZE2) => {
|
|
1527
|
+
SIZE2["LG"] = "lg";
|
|
1528
|
+
SIZE2["MD"] = "md";
|
|
1529
|
+
SIZE2["SM"] = "sm";
|
|
1530
|
+
SIZE2["XS"] = "xs";
|
|
1531
|
+
return SIZE2;
|
|
1532
|
+
})(SIZE$5 || {});
|
|
1533
|
+
var VARIANT = /* @__PURE__ */ ((VARIANT2) => {
|
|
1534
|
+
VARIANT2["DEFAULT"] = "default";
|
|
1535
|
+
VARIANT2["SUCCESS"] = "success";
|
|
1536
|
+
VARIANT2["DANGER"] = "danger";
|
|
1537
|
+
return VARIANT2;
|
|
1538
|
+
})(VARIANT || {});
|
|
1539
|
+
const UiPopconfirmTriggerType = "UiPopconfirmTrigger";
|
|
1540
|
+
const UiPopconfirmTrigger = remote.defineRemoteComponent(UiPopconfirmTriggerType, {
|
|
1541
|
+
emits: [
|
|
1542
|
+
"click"
|
|
1543
|
+
]
|
|
1544
|
+
});
|
|
1545
|
+
const UiPopconfirmPopperType = "UiPopconfirmPopper";
|
|
1546
|
+
const UiPopconfirmPopper = remote.defineRemoteComponent(UiPopconfirmPopperType, {
|
|
1547
|
+
emits: [
|
|
1548
|
+
"update:visible",
|
|
1549
|
+
"toggle",
|
|
1550
|
+
"cancel",
|
|
1551
|
+
"ok"
|
|
1552
|
+
],
|
|
1553
|
+
methods: {
|
|
1554
|
+
adjust: remote.defineRemoteMethod(),
|
|
1555
|
+
close: remote.defineRemoteMethod(),
|
|
1556
|
+
dispose: remote.defineRemoteMethod(),
|
|
1557
|
+
open: remote.defineRemoteMethod()
|
|
1558
|
+
},
|
|
1559
|
+
slots: [
|
|
1560
|
+
"title",
|
|
1561
|
+
"cancel-text",
|
|
1562
|
+
"ok-text"
|
|
1563
|
+
]
|
|
1564
|
+
});
|
|
1565
|
+
const _sfc_main$a = /* @__PURE__ */ vue.defineComponent({
|
|
1566
|
+
__name: "UiPopconfirm",
|
|
1567
|
+
props: {
|
|
423
1568
|
id: {
|
|
424
|
-
type:
|
|
1569
|
+
type: String,
|
|
425
1570
|
default: void 0
|
|
426
1571
|
},
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
default: ""
|
|
1572
|
+
visible: {
|
|
1573
|
+
type: Boolean,
|
|
1574
|
+
default: false
|
|
431
1575
|
},
|
|
432
|
-
|
|
433
|
-
placeholder: {
|
|
1576
|
+
title: {
|
|
434
1577
|
type: String,
|
|
435
1578
|
default: ""
|
|
436
1579
|
},
|
|
437
|
-
|
|
438
|
-
error: {
|
|
1580
|
+
okVariant: {
|
|
439
1581
|
type: String,
|
|
440
|
-
default:
|
|
1582
|
+
default: VARIANT.DEFAULT
|
|
441
1583
|
},
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
default: false
|
|
1584
|
+
okTitle: {
|
|
1585
|
+
type: null,
|
|
1586
|
+
default: null
|
|
446
1587
|
},
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
default: false
|
|
1588
|
+
cancelTitle: {
|
|
1589
|
+
type: null,
|
|
1590
|
+
default: null
|
|
451
1591
|
},
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
default: true
|
|
1592
|
+
cancelAppearance: {
|
|
1593
|
+
type: String,
|
|
1594
|
+
default: APPEARANCE$3.SECONDARY
|
|
456
1595
|
},
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
default: false
|
|
1596
|
+
cancelVariant: {
|
|
1597
|
+
type: String,
|
|
1598
|
+
default: VARIANT.DEFAULT
|
|
461
1599
|
},
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
default: false
|
|
1600
|
+
buttonSize: {
|
|
1601
|
+
type: String,
|
|
1602
|
+
default: SIZE$5.XS
|
|
466
1603
|
},
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
1604
|
+
placement: {
|
|
1605
|
+
type: [String, Object],
|
|
1606
|
+
default: "bottom-start"
|
|
1607
|
+
},
|
|
1608
|
+
popperClass: {
|
|
1609
|
+
type: null,
|
|
1610
|
+
default: null
|
|
1611
|
+
},
|
|
1612
|
+
popperOptions: {
|
|
1613
|
+
type: Object,
|
|
1614
|
+
default: () => ({})
|
|
1615
|
+
},
|
|
1616
|
+
locale: {
|
|
1617
|
+
type: String,
|
|
1618
|
+
default: void 0
|
|
471
1619
|
}
|
|
472
1620
|
},
|
|
473
|
-
emits: ["
|
|
1621
|
+
emits: ["update:visible", "toggle", "cancel", "ok"],
|
|
474
1622
|
setup(__props, { expose: __expose, emit: __emit }) {
|
|
475
1623
|
const props = __props;
|
|
476
1624
|
const emit = __emit;
|
|
477
|
-
const
|
|
478
|
-
const
|
|
479
|
-
const
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
emit("
|
|
1625
|
+
const popper = vue.useTemplateRef("popper");
|
|
1626
|
+
const visibleState = vue.ref(props.visible);
|
|
1627
|
+
const setVisible = (visible) => {
|
|
1628
|
+
if (visibleState.value === visible) {
|
|
1629
|
+
return;
|
|
1630
|
+
}
|
|
1631
|
+
visibleState.value = visible;
|
|
1632
|
+
emit("update:visible", visible);
|
|
1633
|
+
emit("toggle", visible);
|
|
1634
|
+
};
|
|
1635
|
+
const open = async () => {
|
|
1636
|
+
setVisible(true);
|
|
1637
|
+
};
|
|
1638
|
+
const close = async () => {
|
|
1639
|
+
setVisible(false);
|
|
1640
|
+
};
|
|
1641
|
+
const toggle = async () => {
|
|
1642
|
+
if (visibleState.value) {
|
|
1643
|
+
await close();
|
|
1644
|
+
} else {
|
|
1645
|
+
await open();
|
|
1646
|
+
}
|
|
1647
|
+
};
|
|
1648
|
+
const onUpdateVisible = (visible) => {
|
|
1649
|
+
setVisible(visible);
|
|
1650
|
+
};
|
|
1651
|
+
const onCancel = () => {
|
|
1652
|
+
emit("cancel");
|
|
1653
|
+
void close();
|
|
486
1654
|
};
|
|
1655
|
+
const onOk = () => {
|
|
1656
|
+
emit("ok");
|
|
1657
|
+
void close();
|
|
1658
|
+
};
|
|
1659
|
+
vue.watch(() => props.visible, (visible) => {
|
|
1660
|
+
setVisible(visible);
|
|
1661
|
+
});
|
|
487
1662
|
__expose({
|
|
488
|
-
|
|
489
|
-
|
|
1663
|
+
adjust: async () => {
|
|
1664
|
+
await popper.value?.adjust();
|
|
1665
|
+
},
|
|
1666
|
+
close,
|
|
1667
|
+
dispose: async () => {
|
|
1668
|
+
await popper.value?.dispose();
|
|
1669
|
+
},
|
|
1670
|
+
open,
|
|
1671
|
+
toggle
|
|
490
1672
|
});
|
|
491
1673
|
return (_ctx, _cache) => {
|
|
492
|
-
return vue.openBlock(), vue.
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
}
|
|
499
|
-
}, _ctx.$attrs), [
|
|
500
|
-
vue.createElementVNode("div", _hoisted_1$5, [
|
|
501
|
-
vue.createVNode(vue.unref(UiPopperConnector), null, {
|
|
1674
|
+
return vue.openBlock(), vue.createBlock(vue.unref(UiPopperConnector), null, {
|
|
1675
|
+
default: vue.withCtx(() => [
|
|
1676
|
+
vue.createVNode(vue.unref(UiPopconfirmTrigger), {
|
|
1677
|
+
visible: visibleState.value,
|
|
1678
|
+
onClick: toggle
|
|
1679
|
+
}, {
|
|
502
1680
|
default: vue.withCtx(() => [
|
|
503
|
-
vue.
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
onKeydown: _cache[3] || (_cache[3] = ($event) => _ctx.$emit("keydown", $event)),
|
|
525
|
-
"onUpdate:value": onUpdateValue
|
|
526
|
-
}, null, 8, ["id", "value", "placeholder", "error", "invalid", "editable", "autofocus", "autoselect", "readonly", "disabled"])
|
|
527
|
-
]),
|
|
528
|
-
_: 1
|
|
529
|
-
}),
|
|
530
|
-
displayInvalid.value && __props.error ? (vue.openBlock(), vue.createBlock(vue.unref(UiTooltip), {
|
|
531
|
-
key: 0,
|
|
532
|
-
"target-triggers": {
|
|
533
|
-
hide: [""]
|
|
534
|
-
},
|
|
535
|
-
"offset-main-axis": 8,
|
|
536
|
-
visible: "",
|
|
537
|
-
placement: "right"
|
|
538
|
-
}, {
|
|
1681
|
+
vue.renderSlot(_ctx.$slots, "trigger", { open: visibleState.value }),
|
|
1682
|
+
vue.createVNode(vue.unref(UiPopconfirmPopper), {
|
|
1683
|
+
id: __props.id,
|
|
1684
|
+
ref_key: "popper",
|
|
1685
|
+
ref: popper,
|
|
1686
|
+
visible: visibleState.value,
|
|
1687
|
+
title: __props.title,
|
|
1688
|
+
"ok-variant": __props.okVariant,
|
|
1689
|
+
"ok-title": __props.okTitle,
|
|
1690
|
+
"cancel-title": __props.cancelTitle,
|
|
1691
|
+
"cancel-appearance": __props.cancelAppearance,
|
|
1692
|
+
"cancel-variant": __props.cancelVariant,
|
|
1693
|
+
"button-size": __props.buttonSize,
|
|
1694
|
+
placement: __props.placement,
|
|
1695
|
+
"popper-class": __props.popperClass,
|
|
1696
|
+
"popper-options": __props.popperOptions,
|
|
1697
|
+
locale: __props.locale,
|
|
1698
|
+
onCancel,
|
|
1699
|
+
onOk,
|
|
1700
|
+
"onUpdate:visible": onUpdateVisible
|
|
1701
|
+
}, vue.createSlots({
|
|
539
1702
|
default: vue.withCtx(() => [
|
|
540
|
-
vue.
|
|
1703
|
+
vue.renderSlot(_ctx.$slots, "default")
|
|
541
1704
|
]),
|
|
542
|
-
_:
|
|
543
|
-
}
|
|
1705
|
+
_: 2
|
|
1706
|
+
}, [
|
|
1707
|
+
_ctx.$slots["title"] ? {
|
|
1708
|
+
name: "title",
|
|
1709
|
+
fn: vue.withCtx(() => [
|
|
1710
|
+
vue.renderSlot(_ctx.$slots, "title")
|
|
1711
|
+
]),
|
|
1712
|
+
key: "0"
|
|
1713
|
+
} : void 0,
|
|
1714
|
+
_ctx.$slots["cancel-text"] ? {
|
|
1715
|
+
name: "cancel-text",
|
|
1716
|
+
fn: vue.withCtx(() => [
|
|
1717
|
+
vue.renderSlot(_ctx.$slots, "cancel-text")
|
|
1718
|
+
]),
|
|
1719
|
+
key: "1"
|
|
1720
|
+
} : void 0,
|
|
1721
|
+
_ctx.$slots["ok-text"] ? {
|
|
1722
|
+
name: "ok-text",
|
|
1723
|
+
fn: vue.withCtx(() => [
|
|
1724
|
+
vue.renderSlot(_ctx.$slots, "ok-text")
|
|
1725
|
+
]),
|
|
1726
|
+
key: "2"
|
|
1727
|
+
} : void 0
|
|
1728
|
+
]), 1032, ["id", "visible", "title", "ok-variant", "ok-title", "cancel-title", "cancel-appearance", "cancel-variant", "button-size", "placement", "popper-class", "popper-options", "locale"])
|
|
544
1729
|
]),
|
|
545
|
-
_:
|
|
546
|
-
})
|
|
547
|
-
_ctx.$slots.addon ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_2$2, [
|
|
548
|
-
vue.renderSlot(_ctx.$slots, "addon")
|
|
549
|
-
])) : vue.createCommentVNode("", true)
|
|
1730
|
+
_: 3
|
|
1731
|
+
}, 8, ["visible"])
|
|
550
1732
|
]),
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
])) : vue.createCommentVNode("", true)
|
|
554
|
-
], 16);
|
|
1733
|
+
_: 3
|
|
1734
|
+
});
|
|
555
1735
|
};
|
|
556
1736
|
}
|
|
557
1737
|
});
|
|
@@ -586,13 +1766,13 @@ var SIZE$4 = /* @__PURE__ */ ((SIZE2) => {
|
|
|
586
1766
|
SIZE2["LG"] = "lg";
|
|
587
1767
|
return SIZE2;
|
|
588
1768
|
})(SIZE$4 || {});
|
|
589
|
-
const AppearanceKey = Symbol("UiRadioSwitchAppearance");
|
|
590
|
-
const SizeKey$1 = Symbol("UiRadioSwitchSize");
|
|
591
|
-
const RegistryKey$1 = Symbol("UiRadioSwitchRegistry");
|
|
592
|
-
const UpdateKey = Symbol("UiRadioSwitchUpdate");
|
|
593
|
-
const FocusableIdKey$1 = Symbol("UiRadioSwitchFocusableId");
|
|
594
|
-
const SetFocusableIdKey$1 = Symbol("UiRadioSwitchSetFocusableId");
|
|
595
|
-
const MoveFocusKey$1 = Symbol("UiRadioSwitchMoveFocus");
|
|
1769
|
+
const AppearanceKey = /* @__PURE__ */ Symbol("UiRadioSwitchAppearance");
|
|
1770
|
+
const SizeKey$1 = /* @__PURE__ */ Symbol("UiRadioSwitchSize");
|
|
1771
|
+
const RegistryKey$1 = /* @__PURE__ */ Symbol("UiRadioSwitchRegistry");
|
|
1772
|
+
const UpdateKey = /* @__PURE__ */ Symbol("UiRadioSwitchUpdate");
|
|
1773
|
+
const FocusableIdKey$1 = /* @__PURE__ */ Symbol("UiRadioSwitchFocusableId");
|
|
1774
|
+
const SetFocusableIdKey$1 = /* @__PURE__ */ Symbol("UiRadioSwitchSetFocusableId");
|
|
1775
|
+
const MoveFocusKey$1 = /* @__PURE__ */ Symbol("UiRadioSwitchMoveFocus");
|
|
596
1776
|
const useAppearance = () => vue.inject(AppearanceKey, vue.computed(() => APPEARANCE$2.DEFAULT));
|
|
597
1777
|
const useSize$1 = () => vue.inject(SizeKey$1, vue.computed(() => SIZE$4.MD));
|
|
598
1778
|
const useRegistry$1 = () => vue.inject(RegistryKey$1, {
|
|
@@ -1661,13 +2841,13 @@ var UiToggleButtonSize = /* @__PURE__ */ ((UiToggleButtonSize2) => {
|
|
|
1661
2841
|
UiToggleButtonSize2["XS"] = "xs";
|
|
1662
2842
|
return UiToggleButtonSize2;
|
|
1663
2843
|
})(UiToggleButtonSize || {});
|
|
1664
|
-
const FocusableIdKey = Symbol("UiToggleGroupFocusableId");
|
|
1665
|
-
const MoveFocusKey = Symbol("UiToggleGroupMoveFocus");
|
|
1666
|
-
const RegistryKey = Symbol("UiToggleGroupRegistry");
|
|
1667
|
-
const SetFocusableIdKey = Symbol("UiToggleGroupSetFocusableId");
|
|
1668
|
-
const SizeKey = Symbol("UiToggleGroupSize");
|
|
1669
|
-
const DisabledKey = Symbol("UiToggleGroupDisabled");
|
|
1670
|
-
const ToggleKey$1 = Symbol("UiToggleGroupToggle");
|
|
2844
|
+
const FocusableIdKey = /* @__PURE__ */ Symbol("UiToggleGroupFocusableId");
|
|
2845
|
+
const MoveFocusKey = /* @__PURE__ */ Symbol("UiToggleGroupMoveFocus");
|
|
2846
|
+
const RegistryKey = /* @__PURE__ */ Symbol("UiToggleGroupRegistry");
|
|
2847
|
+
const SetFocusableIdKey = /* @__PURE__ */ Symbol("UiToggleGroupSetFocusableId");
|
|
2848
|
+
const SizeKey = /* @__PURE__ */ Symbol("UiToggleGroupSize");
|
|
2849
|
+
const DisabledKey = /* @__PURE__ */ Symbol("UiToggleGroupDisabled");
|
|
2850
|
+
const ToggleKey$1 = /* @__PURE__ */ Symbol("UiToggleGroupToggle");
|
|
1671
2851
|
const useFocusableId = () => vue.inject(FocusableIdKey, vue.computed(() => null));
|
|
1672
2852
|
const useMoveFocus = () => vue.inject(MoveFocusKey, () => {
|
|
1673
2853
|
});
|
|
@@ -2045,143 +3225,6 @@ const UiMenuItemGroup = remote.defineRemoteComponent(
|
|
|
2045
3225
|
"quantity"
|
|
2046
3226
|
]
|
|
2047
3227
|
);
|
|
2048
|
-
const pluralization_en_GB = (choice) => choice === 1 ? 0 : 1;
|
|
2049
|
-
const pluralization_es_ES = (choice) => choice === 1 ? 0 : 1;
|
|
2050
|
-
const pluralization_ru_RU = (choice, choicesLength) => {
|
|
2051
|
-
if (choicesLength === 2) {
|
|
2052
|
-
return choice === 1 ? 0 : 1;
|
|
2053
|
-
}
|
|
2054
|
-
const mod100 = choice % 100;
|
|
2055
|
-
return mod100 % 10 === 1 && mod100 !== 11 ? 0 : mod100 % 10 >= 2 && mod100 % 10 <= 4 && !(mod100 >= 10 && mod100 < 15) ? 1 : 2;
|
|
2056
|
-
};
|
|
2057
|
-
const get = (messages, path) => {
|
|
2058
|
-
let i = 0;
|
|
2059
|
-
let slice = messages[path[0]];
|
|
2060
|
-
while (i < path.length) {
|
|
2061
|
-
if (typeof slice === "string" && i + 1 === path.length) {
|
|
2062
|
-
return slice;
|
|
2063
|
-
}
|
|
2064
|
-
if (typeof slice !== "object") {
|
|
2065
|
-
return void 0;
|
|
2066
|
-
}
|
|
2067
|
-
slice = slice[path[++i]];
|
|
2068
|
-
}
|
|
2069
|
-
return slice;
|
|
2070
|
-
};
|
|
2071
|
-
const replace = (message, values) => {
|
|
2072
|
-
return Object.keys(values).reduce((message2, key) => {
|
|
2073
|
-
const pattern = new RegExp(`\\{${key}\\}`, "g");
|
|
2074
|
-
const replacement = String(values[key]);
|
|
2075
|
-
return message2.replace(pattern, replacement);
|
|
2076
|
-
}, message);
|
|
2077
|
-
};
|
|
2078
|
-
const compile = (messages, path, values = void 0) => {
|
|
2079
|
-
const message = get(messages, path);
|
|
2080
|
-
if (typeof message === "string" && values) {
|
|
2081
|
-
return replace(message, values);
|
|
2082
|
-
}
|
|
2083
|
-
return message;
|
|
2084
|
-
};
|
|
2085
|
-
const fail = (message) => {
|
|
2086
|
-
throw new Error(message);
|
|
2087
|
-
};
|
|
2088
|
-
const t = (locale2, messages, path, values = void 0) => {
|
|
2089
|
-
const keys = path.split(".");
|
|
2090
|
-
if (locale2) {
|
|
2091
|
-
const message = compile(messages[locale2] ?? {}, keys, values);
|
|
2092
|
-
return typeof message !== "object" ? message : fail(`Translation for "${locale2}:${path}" is not translatable`);
|
|
2093
|
-
}
|
|
2094
|
-
return void 0;
|
|
2095
|
-
};
|
|
2096
|
-
const plural = (template, choice, rule) => {
|
|
2097
|
-
const forms = template.split("|");
|
|
2098
|
-
return forms[rule(choice, forms.length)];
|
|
2099
|
-
};
|
|
2100
|
-
class I18n {
|
|
2101
|
-
parent;
|
|
2102
|
-
messages;
|
|
2103
|
-
computed;
|
|
2104
|
-
pluralization;
|
|
2105
|
-
fallback;
|
|
2106
|
-
constructor(options = void 0, parent = void 0) {
|
|
2107
|
-
this.parent = parent;
|
|
2108
|
-
this.messages = options?.messages ?? {};
|
|
2109
|
-
this.computed = options?.computed ?? {};
|
|
2110
|
-
this.pluralization = {
|
|
2111
|
-
"en-GB": pluralization_en_GB,
|
|
2112
|
-
"es-ES": pluralization_es_ES,
|
|
2113
|
-
"ru-RU": pluralization_ru_RU,
|
|
2114
|
-
...options?.pluralization ?? {}
|
|
2115
|
-
};
|
|
2116
|
-
this.fallback = options?.fallback;
|
|
2117
|
-
}
|
|
2118
|
-
t(locale2, path, values = void 0) {
|
|
2119
|
-
try {
|
|
2120
|
-
const _t = (locale22) => t(locale22, this.messages, path, values);
|
|
2121
|
-
return _t(locale2) ?? _t(this.fallback) ?? fail(`Translation for "${path}" does not exists`);
|
|
2122
|
-
} catch (e) {
|
|
2123
|
-
if (this.parent) {
|
|
2124
|
-
return this.parent.t(locale2, path, values);
|
|
2125
|
-
}
|
|
2126
|
-
throw e;
|
|
2127
|
-
}
|
|
2128
|
-
}
|
|
2129
|
-
tc(locale2, path, choice, values = void 0) {
|
|
2130
|
-
return plural(
|
|
2131
|
-
this.t(
|
|
2132
|
-
locale2,
|
|
2133
|
-
path,
|
|
2134
|
-
values
|
|
2135
|
-
),
|
|
2136
|
-
choice,
|
|
2137
|
-
this.pluralization[locale2]
|
|
2138
|
-
);
|
|
2139
|
-
}
|
|
2140
|
-
compute(locale2, key, values) {
|
|
2141
|
-
const computed = this.computed[key];
|
|
2142
|
-
if (computed) {
|
|
2143
|
-
return computed(localize(this, locale2), values);
|
|
2144
|
-
}
|
|
2145
|
-
if (this.parent) {
|
|
2146
|
-
return this.parent.compute(locale2, key, values);
|
|
2147
|
-
}
|
|
2148
|
-
return fail("Key " + key + " is not registered");
|
|
2149
|
-
}
|
|
2150
|
-
extend(options) {
|
|
2151
|
-
return new I18n({
|
|
2152
|
-
pluralization: this.pluralization,
|
|
2153
|
-
fallback: this.fallback,
|
|
2154
|
-
...options
|
|
2155
|
-
}, this);
|
|
2156
|
-
}
|
|
2157
|
-
}
|
|
2158
|
-
const localize = (i18n, locale2) => ({
|
|
2159
|
-
t(path, values = void 0) {
|
|
2160
|
-
return i18n.t(locale2, path, values);
|
|
2161
|
-
},
|
|
2162
|
-
tc(path, choice, values = void 0) {
|
|
2163
|
-
return i18n.tc(locale2, path, choice, values);
|
|
2164
|
-
},
|
|
2165
|
-
compute(key, values) {
|
|
2166
|
-
return i18n.compute(locale2, key, values);
|
|
2167
|
-
}
|
|
2168
|
-
});
|
|
2169
|
-
const fallback = "en-GB";
|
|
2170
|
-
const define = (options = void 0, parent = void 0) => {
|
|
2171
|
-
const i18n = new I18n({
|
|
2172
|
-
...options,
|
|
2173
|
-
fallback
|
|
2174
|
-
}, parent);
|
|
2175
|
-
const extend = (i18n2, options2 = void 0) => options2 ? i18n2.extend(options2) : i18n2;
|
|
2176
|
-
return {
|
|
2177
|
-
i18n,
|
|
2178
|
-
init: (locale2, options2 = void 0) => localize(
|
|
2179
|
-
extend(i18n, options2),
|
|
2180
|
-
locale2
|
|
2181
|
-
),
|
|
2182
|
-
fallback
|
|
2183
|
-
};
|
|
2184
|
-
};
|
|
2185
3228
|
const selected$2 = "Selected";
|
|
2186
3229
|
const search$2 = { "placeholder": "", "noResult": "Nothing found" };
|
|
2187
3230
|
const messages_en_GB = {
|
|
@@ -2228,24 +3271,23 @@ const highlight = (text, term, style) => text.replace(
|
|
|
2228
3271
|
);
|
|
2229
3272
|
let counter = 0;
|
|
2230
3273
|
const uid = (prefix = "ui-v1-select") => `${prefix}-${++counter}`;
|
|
2231
|
-
const IsSelectedKey = Symbol("UiSelectedIsSelected");
|
|
2232
|
-
const RegisterKey = Symbol("UiSelectRegister");
|
|
2233
|
-
const SyncKey = Symbol("UiSelectSync");
|
|
2234
|
-
const UnregisterKey = Symbol("UiSelectUnregister");
|
|
2235
|
-
const ToggleKey = Symbol("UiSelectToggle");
|
|
2236
|
-
const FilterKey = Symbol("UiSelectFilter");
|
|
2237
|
-
const FilteredKey = Symbol("UiSelectFiltered");
|
|
2238
|
-
const TickerKey = Symbol("UiSelectTicker");
|
|
2239
|
-
const MultipleKey = Symbol("UiSelectMultiple");
|
|
2240
|
-
const ActiveOptionIdKey = Symbol("UiSelectActiveOptionId");
|
|
2241
|
-
const FastenedKey = Symbol("UiSelectFastened");
|
|
2242
|
-
const UnregisterOptionKey = Symbol("UiSelectUnregisterOption");
|
|
2243
|
-
const RegisterOptionKey = Symbol("UiSelectRegisterOption");
|
|
2244
|
-
const RegisterGroupKey = Symbol("UiSelectOptionGroupRegister");
|
|
2245
|
-
const UnregisterGroupKey = Symbol("UiSelectOptionGroupUnregister");
|
|
2246
|
-
const RegisterHeaderOptionKey = Symbol("UiSelectOptionGroupRegisterHeaderOption");
|
|
2247
|
-
const UnregisterHeaderOptionKey = Symbol("UiSelectOptionGroupUnregisterHeaderOption");
|
|
2248
|
-
const I18nInjectKey = Symbol("$embedI18n");
|
|
3274
|
+
const IsSelectedKey = /* @__PURE__ */ Symbol("UiSelectedIsSelected");
|
|
3275
|
+
const RegisterKey = /* @__PURE__ */ Symbol("UiSelectRegister");
|
|
3276
|
+
const SyncKey = /* @__PURE__ */ Symbol("UiSelectSync");
|
|
3277
|
+
const UnregisterKey = /* @__PURE__ */ Symbol("UiSelectUnregister");
|
|
3278
|
+
const ToggleKey = /* @__PURE__ */ Symbol("UiSelectToggle");
|
|
3279
|
+
const FilterKey = /* @__PURE__ */ Symbol("UiSelectFilter");
|
|
3280
|
+
const FilteredKey = /* @__PURE__ */ Symbol("UiSelectFiltered");
|
|
3281
|
+
const TickerKey = /* @__PURE__ */ Symbol("UiSelectTicker");
|
|
3282
|
+
const MultipleKey = /* @__PURE__ */ Symbol("UiSelectMultiple");
|
|
3283
|
+
const ActiveOptionIdKey = /* @__PURE__ */ Symbol("UiSelectActiveOptionId");
|
|
3284
|
+
const FastenedKey = /* @__PURE__ */ Symbol("UiSelectFastened");
|
|
3285
|
+
const UnregisterOptionKey = /* @__PURE__ */ Symbol("UiSelectUnregisterOption");
|
|
3286
|
+
const RegisterOptionKey = /* @__PURE__ */ Symbol("UiSelectRegisterOption");
|
|
3287
|
+
const RegisterGroupKey = /* @__PURE__ */ Symbol("UiSelectOptionGroupRegister");
|
|
3288
|
+
const UnregisterGroupKey = /* @__PURE__ */ Symbol("UiSelectOptionGroupUnregister");
|
|
3289
|
+
const RegisterHeaderOptionKey = /* @__PURE__ */ Symbol("UiSelectOptionGroupRegisterHeaderOption");
|
|
3290
|
+
const UnregisterHeaderOptionKey = /* @__PURE__ */ Symbol("UiSelectOptionGroupUnregisterHeaderOption");
|
|
2249
3291
|
const UiSelectTriggerType = "UiSelectTrigger";
|
|
2250
3292
|
const UiSelectTrigger = remote.defineRemoteComponent(UiSelectTriggerType, {
|
|
2251
3293
|
emits: [
|
|
@@ -2309,7 +3351,7 @@ const _sfc_main$3 = /* @__PURE__ */ vue.defineComponent({
|
|
|
2309
3351
|
/** Атрибут placeholder нативного поля ввода input */
|
|
2310
3352
|
placeholder: {
|
|
2311
3353
|
type: String,
|
|
2312
|
-
default: "
|
|
3354
|
+
default: ""
|
|
2313
3355
|
},
|
|
2314
3356
|
/** Отображает иконку сброса введённого или выбранного значения в виде крестика */
|
|
2315
3357
|
clearable: {
|
|
@@ -3058,6 +4100,11 @@ const createEndpointRoot = async (channel) => {
|
|
|
3058
4100
|
"UiInfobox",
|
|
3059
4101
|
"UiLink",
|
|
3060
4102
|
"UiLoader",
|
|
4103
|
+
"UiLogicTreeCaret",
|
|
4104
|
+
"UiLogicTreeNode",
|
|
4105
|
+
"UiLogicTreeNodeIcon",
|
|
4106
|
+
"UiLogicTreeNodeItem",
|
|
4107
|
+
"UiLogicTreeRoot",
|
|
3061
4108
|
"UiMenuItem",
|
|
3062
4109
|
"UiMenuItemGroup",
|
|
3063
4110
|
"UiModalSidebar",
|
|
@@ -3067,6 +4114,8 @@ const createEndpointRoot = async (channel) => {
|
|
|
3067
4114
|
"UiPageHeader",
|
|
3068
4115
|
"UiPageHeaderLayout",
|
|
3069
4116
|
"UiPageHeaderTitle",
|
|
4117
|
+
"UiPopconfirmPopper",
|
|
4118
|
+
"UiPopconfirmTrigger",
|
|
3070
4119
|
"UiPopper",
|
|
3071
4120
|
"UiPopperConnector",
|
|
3072
4121
|
"UiPopperTarget",
|
|
@@ -3111,7 +4160,7 @@ const mountEndpointRoot = async (channel) => {
|
|
|
3111
4160
|
await root.mount();
|
|
3112
4161
|
return root;
|
|
3113
4162
|
};
|
|
3114
|
-
const ImageWorkersKey = Symbol("$image.workers");
|
|
4163
|
+
const ImageWorkersKey = /* @__PURE__ */ Symbol("$image.workers");
|
|
3115
4164
|
const usePreview = (workers = vue.ref([])) => {
|
|
3116
4165
|
const _workers = vue.inject(ImageWorkersKey, workers);
|
|
3117
4166
|
return {
|
|
@@ -3189,6 +4238,11 @@ function detectLocale() {
|
|
|
3189
4238
|
exports.ALIGN = ALIGN;
|
|
3190
4239
|
exports.DIRECTION = DIRECTION;
|
|
3191
4240
|
exports.ImageWorkersKey = ImageWorkersKey;
|
|
4241
|
+
exports.LogicTreeChildrenView = LogicTreeChildrenView;
|
|
4242
|
+
exports.LogicTreeConjunction = LogicTreeConjunction;
|
|
4243
|
+
exports.LogicTreeNodeKind = LogicTreeNodeKind;
|
|
4244
|
+
exports.LogicTreeNodeView = LogicTreeNodeView;
|
|
4245
|
+
exports.LogicTreeTone = LogicTreeTone;
|
|
3192
4246
|
exports.RADIO_SWITCH_APPEARANCE = APPEARANCE$2;
|
|
3193
4247
|
exports.RADIO_SWITCH_SIZE = SIZE$4;
|
|
3194
4248
|
exports.SKELETON_ANIMATION = ANIMATION;
|
|
@@ -3224,13 +4278,18 @@ exports.UiDatePickerType = UiDatePickerType;
|
|
|
3224
4278
|
exports.UiDateType = UiDateType;
|
|
3225
4279
|
exports.UiError = UiError;
|
|
3226
4280
|
exports.UiErrorType = UiErrorType;
|
|
3227
|
-
exports.UiField = _sfc_main$
|
|
4281
|
+
exports.UiField = _sfc_main$e;
|
|
3228
4282
|
exports.UiInfobox = UiInfobox;
|
|
3229
4283
|
exports.UiInfoboxType = UiInfoboxType;
|
|
3230
4284
|
exports.UiLink = UiLink;
|
|
3231
4285
|
exports.UiLinkType = UiLinkType;
|
|
3232
4286
|
exports.UiLoader = UiLoader;
|
|
3233
4287
|
exports.UiLoaderType = UiLoaderType;
|
|
4288
|
+
exports.UiLogicTree = _sfc_main$d;
|
|
4289
|
+
exports.UiLogicTreeCaret = UiLogicTreeCaret;
|
|
4290
|
+
exports.UiLogicTreeDragHandle = _sfc_main$c;
|
|
4291
|
+
exports.UiLogicTreeNodeIcon = UiLogicTreeNodeIcon;
|
|
4292
|
+
exports.UiLogicTreeNodeItem = UiLogicTreeNodeItem;
|
|
3234
4293
|
exports.UiMenuItem = UiMenuItem;
|
|
3235
4294
|
exports.UiMenuItemGroup = UiMenuItemGroup;
|
|
3236
4295
|
exports.UiMenuItemGroupType = UiMenuItemGroupType;
|
|
@@ -3243,7 +4302,8 @@ exports.UiModalWindowSurfaceType = UiModalWindowSurfaceType;
|
|
|
3243
4302
|
exports.UiModalWindowType = UiModalWindowType;
|
|
3244
4303
|
exports.UiNumberStepper = UiNumberStepper;
|
|
3245
4304
|
exports.UiNumberStepperType = UiNumberStepperType;
|
|
3246
|
-
exports.UiPageHeader = _sfc_main$
|
|
4305
|
+
exports.UiPageHeader = _sfc_main$b;
|
|
4306
|
+
exports.UiPopconfirm = _sfc_main$a;
|
|
3247
4307
|
exports.UiPopper = UiPopper;
|
|
3248
4308
|
exports.UiPopperConnector = UiPopperConnector;
|
|
3249
4309
|
exports.UiPopperConnectorType = UiPopperConnectorType;
|