x-print-designer 0.4.44 → 0.4.45
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/{JsBarcode-CUSWbmPW.js → JsBarcode-BO87HgIp.js} +1 -1
- package/dist/{JsBarcode-DcQ9KxA2.js → JsBarcode-DI81EhzS.js} +1 -1
- package/dist/{browser-CIHjzt3S.js → browser-CIzRUbbX.js} +1 -1
- package/dist/{browser-hdgt6jOx.js → browser-Ck0N2Y2e.js} +1 -1
- package/dist/{dom-to-image-more.min-DxrDS65t.js → dom-to-image-more.min-Ce2c21tO.js} +1 -1
- package/dist/{index-Cv-SJHCX.js → index-CB0wgViL.js} +501 -774
- package/dist/{index-CFwMsAjW.js → index-sJJEP3Bf.js} +1 -1
- package/dist/{index.es-DRUO_g4b.js → index.es-CZXhHw-0.js} +1 -1
- package/dist/{jspdf.es.min-De5r7mEj.js → jspdf.es.min-D9h_LgKD.js} +1 -1
- package/dist/{jszip.min-C2EJyYJw.js → jszip.min-C3xLIq13.js} +1 -1
- package/dist/print-designer.css +1 -1
- package/dist/print-designer.es.js +1 -1
- package/dist/print-designer.umd.js +33 -33
- package/dist/{vue-BQ1HUDd3.js → vue-nsOJFelf.js} +222 -14
- package/dist/vue.es.js +1 -1
- package/package.json +1 -1
|
@@ -150,9 +150,9 @@ function normalizeClass(value) {
|
|
|
150
150
|
}
|
|
151
151
|
}
|
|
152
152
|
} else if (isObject$3(value)) {
|
|
153
|
-
for (const
|
|
154
|
-
if (value[
|
|
155
|
-
res +=
|
|
153
|
+
for (const name in value) {
|
|
154
|
+
if (value[name]) {
|
|
155
|
+
res += name + " ";
|
|
156
156
|
}
|
|
157
157
|
}
|
|
158
158
|
}
|
|
@@ -2632,9 +2632,9 @@ function withCtx(fn, ctx = currentRenderingInstance, isNonScopedSlot) {
|
|
|
2632
2632
|
renderFnWithContext._d = true;
|
|
2633
2633
|
return renderFnWithContext;
|
|
2634
2634
|
}
|
|
2635
|
-
function validateDirectiveName(
|
|
2636
|
-
if (isBuiltInDirective(
|
|
2637
|
-
warn$1("Do not use built-in directive ids as custom directive id: " +
|
|
2635
|
+
function validateDirectiveName(name) {
|
|
2636
|
+
if (isBuiltInDirective(name)) {
|
|
2637
|
+
warn$1("Do not use built-in directive ids as custom directive id: " + name);
|
|
2638
2638
|
}
|
|
2639
2639
|
}
|
|
2640
2640
|
function withDirectives(vnode, directives) {
|
|
@@ -2668,7 +2668,7 @@ function withDirectives(vnode, directives) {
|
|
|
2668
2668
|
}
|
|
2669
2669
|
return vnode;
|
|
2670
2670
|
}
|
|
2671
|
-
function invokeDirectiveHook(vnode, prevVNode, instance,
|
|
2671
|
+
function invokeDirectiveHook(vnode, prevVNode, instance, name) {
|
|
2672
2672
|
const bindings = vnode.dirs;
|
|
2673
2673
|
const oldBindings = prevVNode && prevVNode.dirs;
|
|
2674
2674
|
for (let i = 0; i < bindings.length; i++) {
|
|
@@ -2676,7 +2676,7 @@ function invokeDirectiveHook(vnode, prevVNode, instance, name2) {
|
|
|
2676
2676
|
if (oldBindings) {
|
|
2677
2677
|
binding.oldValue = oldBindings[i].value;
|
|
2678
2678
|
}
|
|
2679
|
-
let hook = binding.dir[
|
|
2679
|
+
let hook = binding.dir[name];
|
|
2680
2680
|
if (hook) {
|
|
2681
2681
|
pauseTracking();
|
|
2682
2682
|
callWithAsyncErrorHandling(hook, instance, 8, [
|
|
@@ -3807,8 +3807,8 @@ function onErrorCaptured(hook, target = currentInstance) {
|
|
|
3807
3807
|
injectHook("ec", hook, target);
|
|
3808
3808
|
}
|
|
3809
3809
|
const COMPONENTS = "components";
|
|
3810
|
-
function resolveComponent(
|
|
3811
|
-
return resolveAsset(COMPONENTS,
|
|
3810
|
+
function resolveComponent(name, maybeSelfReference) {
|
|
3811
|
+
return resolveAsset(COMPONENTS, name, true, maybeSelfReference) || name;
|
|
3812
3812
|
}
|
|
3813
3813
|
const NULL_DYNAMIC_COMPONENT = Symbol.for("v-ndc");
|
|
3814
3814
|
function resolveDynamicComponent(component) {
|
|
@@ -3818,7 +3818,7 @@ function resolveDynamicComponent(component) {
|
|
|
3818
3818
|
return component || NULL_DYNAMIC_COMPONENT;
|
|
3819
3819
|
}
|
|
3820
3820
|
}
|
|
3821
|
-
function resolveAsset(type,
|
|
3821
|
+
function resolveAsset(type, name, warnMissing = true, maybeSelfReference = false) {
|
|
3822
3822
|
const instance = currentRenderingInstance || currentInstance;
|
|
3823
3823
|
if (instance) {
|
|
3824
3824
|
const Component = instance.type;
|
|
@@ -3827,15 +3827,15 @@ function resolveAsset(type, name2, warnMissing = true, maybeSelfReference = fals
|
|
|
3827
3827
|
Component,
|
|
3828
3828
|
false
|
|
3829
3829
|
);
|
|
3830
|
-
if (selfName && (selfName ===
|
|
3830
|
+
if (selfName && (selfName === name || selfName === camelize(name) || selfName === capitalize$1(camelize(name)))) {
|
|
3831
3831
|
return Component;
|
|
3832
3832
|
}
|
|
3833
3833
|
}
|
|
3834
3834
|
const res = (
|
|
3835
3835
|
// local registration
|
|
3836
3836
|
// check instance[type] first which is resolved for options API
|
|
3837
|
-
resolve(instance[type] || Component[type],
|
|
3838
|
-
resolve(instance.appContext[type],
|
|
3837
|
+
resolve(instance[type] || Component[type], name) || // global registration
|
|
3838
|
+
resolve(instance.appContext[type], name)
|
|
3839
3839
|
);
|
|
3840
3840
|
if (!res && maybeSelfReference) {
|
|
3841
3841
|
return Component;
|
|
@@ -3843,7 +3843,7 @@ function resolveAsset(type, name2, warnMissing = true, maybeSelfReference = fals
|
|
|
3843
3843
|
if (!!(process.env.NODE_ENV !== "production") && warnMissing && !res) {
|
|
3844
3844
|
const extra = `
|
|
3845
3845
|
If this is a native custom element, make sure to exclude it from component resolution via compilerOptions.isCustomElement.`;
|
|
3846
|
-
warn$1(`Failed to resolve ${type.slice(0, -1)}: ${
|
|
3846
|
+
warn$1(`Failed to resolve ${type.slice(0, -1)}: ${name}${extra}`);
|
|
3847
3847
|
}
|
|
3848
3848
|
return res;
|
|
3849
3849
|
} else if (!!(process.env.NODE_ENV !== "production")) {
|
|
@@ -3852,8 +3852,8 @@ If this is a native custom element, make sure to exclude it from component resol
|
|
|
3852
3852
|
);
|
|
3853
3853
|
}
|
|
3854
3854
|
}
|
|
3855
|
-
function resolve(registry,
|
|
3856
|
-
return registry && (registry[
|
|
3855
|
+
function resolve(registry, name) {
|
|
3856
|
+
return registry && (registry[name] || registry[camelize(name)] || registry[capitalize$1(camelize(name))]);
|
|
3857
3857
|
}
|
|
3858
3858
|
function renderList(source, renderItem, cache2, index2) {
|
|
3859
3859
|
let ret;
|
|
@@ -3905,9 +3905,9 @@ function renderList(source, renderItem, cache2, index2) {
|
|
|
3905
3905
|
}
|
|
3906
3906
|
return ret;
|
|
3907
3907
|
}
|
|
3908
|
-
function renderSlot(slots,
|
|
3908
|
+
function renderSlot(slots, name, props = {}, fallback, noSlotted) {
|
|
3909
3909
|
if (currentRenderingInstance.ce || currentRenderingInstance.parent && isAsyncWrapper(currentRenderingInstance.parent) && currentRenderingInstance.parent.ce) {
|
|
3910
|
-
if (
|
|
3910
|
+
if (name !== "default") props.name = name;
|
|
3911
3911
|
return openBlock(), createBlock(
|
|
3912
3912
|
Fragment,
|
|
3913
3913
|
null,
|
|
@@ -3915,7 +3915,7 @@ function renderSlot(slots, name2, props = {}, fallback, noSlotted) {
|
|
|
3915
3915
|
64
|
|
3916
3916
|
);
|
|
3917
3917
|
}
|
|
3918
|
-
let slot = slots[
|
|
3918
|
+
let slot = slots[name];
|
|
3919
3919
|
if (!!(process.env.NODE_ENV !== "production") && slot && slot.length > 1) {
|
|
3920
3920
|
warn$1(
|
|
3921
3921
|
`SSR-optimized slot function detected in a non-SSR-optimized render function. You need to mark this component with $dynamic-slots in the parent template.`
|
|
@@ -3933,7 +3933,7 @@ function renderSlot(slots, name2, props = {}, fallback, noSlotted) {
|
|
|
3933
3933
|
const rendered = createBlock(
|
|
3934
3934
|
Fragment,
|
|
3935
3935
|
{
|
|
3936
|
-
key: (slotKey && !isSymbol(slotKey) ? slotKey : `_${
|
|
3936
|
+
key: (slotKey && !isSymbol(slotKey) ? slotKey : `_${name}`) + // #7256 force differentiate fallback content from actual content
|
|
3937
3937
|
(!validSlotContent && fallback ? "_fb" : "")
|
|
3938
3938
|
},
|
|
3939
3939
|
validSlotContent || (fallback ? fallback() : []),
|
|
@@ -4685,30 +4685,30 @@ function createAppAPI(render2, hydrate) {
|
|
|
4685
4685
|
}
|
|
4686
4686
|
return app;
|
|
4687
4687
|
},
|
|
4688
|
-
component(
|
|
4688
|
+
component(name, component) {
|
|
4689
4689
|
if (!!(process.env.NODE_ENV !== "production")) {
|
|
4690
|
-
validateComponentName(
|
|
4690
|
+
validateComponentName(name, context.config);
|
|
4691
4691
|
}
|
|
4692
4692
|
if (!component) {
|
|
4693
|
-
return context.components[
|
|
4693
|
+
return context.components[name];
|
|
4694
4694
|
}
|
|
4695
|
-
if (!!(process.env.NODE_ENV !== "production") && context.components[
|
|
4696
|
-
warn$1(`Component "${
|
|
4695
|
+
if (!!(process.env.NODE_ENV !== "production") && context.components[name]) {
|
|
4696
|
+
warn$1(`Component "${name}" has already been registered in target app.`);
|
|
4697
4697
|
}
|
|
4698
|
-
context.components[
|
|
4698
|
+
context.components[name] = component;
|
|
4699
4699
|
return app;
|
|
4700
4700
|
},
|
|
4701
|
-
directive(
|
|
4701
|
+
directive(name, directive) {
|
|
4702
4702
|
if (!!(process.env.NODE_ENV !== "production")) {
|
|
4703
|
-
validateDirectiveName(
|
|
4703
|
+
validateDirectiveName(name);
|
|
4704
4704
|
}
|
|
4705
4705
|
if (!directive) {
|
|
4706
|
-
return context.directives[
|
|
4706
|
+
return context.directives[name];
|
|
4707
4707
|
}
|
|
4708
|
-
if (!!(process.env.NODE_ENV !== "production") && context.directives[
|
|
4709
|
-
warn$1(`Directive "${
|
|
4708
|
+
if (!!(process.env.NODE_ENV !== "production") && context.directives[name]) {
|
|
4709
|
+
warn$1(`Directive "${name}" has already been registered in target app.`);
|
|
4710
4710
|
}
|
|
4711
|
-
context.directives[
|
|
4711
|
+
context.directives[name] = directive;
|
|
4712
4712
|
return app;
|
|
4713
4713
|
},
|
|
4714
4714
|
mount(rootContainer, isHydrate, namespace) {
|
|
@@ -5146,8 +5146,8 @@ function getType(ctor) {
|
|
|
5146
5146
|
if (typeof ctor === "function") {
|
|
5147
5147
|
return ctor.name || "";
|
|
5148
5148
|
} else if (typeof ctor === "object") {
|
|
5149
|
-
const
|
|
5150
|
-
return
|
|
5149
|
+
const name = ctor.constructor && ctor.constructor.name;
|
|
5150
|
+
return name || "";
|
|
5151
5151
|
}
|
|
5152
5152
|
return "";
|
|
5153
5153
|
}
|
|
@@ -5167,10 +5167,10 @@ function validateProps(rawProps, props, instance) {
|
|
|
5167
5167
|
);
|
|
5168
5168
|
}
|
|
5169
5169
|
}
|
|
5170
|
-
function validateProp(
|
|
5170
|
+
function validateProp(name, value, prop, props, isAbsent) {
|
|
5171
5171
|
const { type, required, validator, skipCheck } = prop;
|
|
5172
5172
|
if (required && isAbsent) {
|
|
5173
|
-
warn$1('Missing required prop: "' +
|
|
5173
|
+
warn$1('Missing required prop: "' + name + '"');
|
|
5174
5174
|
return;
|
|
5175
5175
|
}
|
|
5176
5176
|
if (value == null && !required) {
|
|
@@ -5186,12 +5186,12 @@ function validateProp(name2, value, prop, props, isAbsent) {
|
|
|
5186
5186
|
isValid = valid;
|
|
5187
5187
|
}
|
|
5188
5188
|
if (!isValid) {
|
|
5189
|
-
warn$1(getInvalidTypeMessage(
|
|
5189
|
+
warn$1(getInvalidTypeMessage(name, value, expectedTypes));
|
|
5190
5190
|
return;
|
|
5191
5191
|
}
|
|
5192
5192
|
}
|
|
5193
5193
|
if (validator && !validator(value, props)) {
|
|
5194
|
-
warn$1('Invalid prop: custom validator check failed for prop "' +
|
|
5194
|
+
warn$1('Invalid prop: custom validator check failed for prop "' + name + '".');
|
|
5195
5195
|
}
|
|
5196
5196
|
}
|
|
5197
5197
|
const isSimpleType = /* @__PURE__ */ makeMap(
|
|
@@ -5220,11 +5220,11 @@ function assertType(value, type) {
|
|
|
5220
5220
|
expectedType
|
|
5221
5221
|
};
|
|
5222
5222
|
}
|
|
5223
|
-
function getInvalidTypeMessage(
|
|
5223
|
+
function getInvalidTypeMessage(name, value, expectedTypes) {
|
|
5224
5224
|
if (expectedTypes.length === 0) {
|
|
5225
|
-
return `Prop type [] for prop "${
|
|
5225
|
+
return `Prop type [] for prop "${name}" won't match anything. Did you mean to use type Array instead?`;
|
|
5226
5226
|
}
|
|
5227
|
-
let message = `Invalid prop: type check failed for prop "${
|
|
5227
|
+
let message = `Invalid prop: type check failed for prop "${name}". Expected ${expectedTypes.map(capitalize$1).join(" | ")}`;
|
|
5228
5228
|
const expectedType = expectedTypes[0];
|
|
5229
5229
|
const receivedType = toRawType(value);
|
|
5230
5230
|
const expectedValue = styleValue(value, expectedType);
|
|
@@ -7926,10 +7926,10 @@ const unsetCurrentInstance = () => {
|
|
|
7926
7926
|
internalSetCurrentInstance(null);
|
|
7927
7927
|
};
|
|
7928
7928
|
const isBuiltInTag = /* @__PURE__ */ makeMap("slot,component");
|
|
7929
|
-
function validateComponentName(
|
|
7930
|
-
if (isBuiltInTag(
|
|
7929
|
+
function validateComponentName(name, { isNativeTag }) {
|
|
7930
|
+
if (isBuiltInTag(name) || isNativeTag(name)) {
|
|
7931
7931
|
warn$1(
|
|
7932
|
-
"Do not use built-in or reserved HTML elements as component id: " +
|
|
7932
|
+
"Do not use built-in or reserved HTML elements as component id: " + name
|
|
7933
7933
|
);
|
|
7934
7934
|
}
|
|
7935
7935
|
}
|
|
@@ -8008,9 +8008,9 @@ function setupStatefulComponent(instance, isSSR) {
|
|
|
8008
8008
|
} else {
|
|
8009
8009
|
instance.asyncDep = setupResult;
|
|
8010
8010
|
if (!!(process.env.NODE_ENV !== "production") && !instance.suspense) {
|
|
8011
|
-
const
|
|
8011
|
+
const name = (_a2 = Component.name) != null ? _a2 : "Anonymous";
|
|
8012
8012
|
warn$1(
|
|
8013
|
-
`Component <${
|
|
8013
|
+
`Component <${name}>: setup function returned a promise, but no <Suspense> boundary was found in the parent component tree. A component with async setup() must be nested in a <Suspense> in order to be rendered.`
|
|
8014
8014
|
);
|
|
8015
8015
|
}
|
|
8016
8016
|
}
|
|
@@ -8174,14 +8174,14 @@ function getComponentName(Component, includeInferred = true) {
|
|
|
8174
8174
|
return isFunction$2(Component) ? Component.displayName || Component.name : Component.name || includeInferred && Component.__name;
|
|
8175
8175
|
}
|
|
8176
8176
|
function formatComponentName(instance, Component, isRoot = false) {
|
|
8177
|
-
let
|
|
8178
|
-
if (!
|
|
8177
|
+
let name = getComponentName(Component);
|
|
8178
|
+
if (!name && Component.__file) {
|
|
8179
8179
|
const match = Component.__file.match(/([^/\\]+)\.\w+$/);
|
|
8180
8180
|
if (match) {
|
|
8181
|
-
|
|
8181
|
+
name = match[1];
|
|
8182
8182
|
}
|
|
8183
8183
|
}
|
|
8184
|
-
if (!
|
|
8184
|
+
if (!name && instance && instance.parent) {
|
|
8185
8185
|
const inferFromRegistry = (registry) => {
|
|
8186
8186
|
for (const key in registry) {
|
|
8187
8187
|
if (registry[key] === Component) {
|
|
@@ -8189,11 +8189,11 @@ function formatComponentName(instance, Component, isRoot = false) {
|
|
|
8189
8189
|
}
|
|
8190
8190
|
}
|
|
8191
8191
|
};
|
|
8192
|
-
|
|
8192
|
+
name = inferFromRegistry(
|
|
8193
8193
|
instance.components || instance.parent.type.components
|
|
8194
8194
|
) || inferFromRegistry(instance.appContext.components);
|
|
8195
8195
|
}
|
|
8196
|
-
return
|
|
8196
|
+
return name ? classify(name) : isRoot ? `App` : `Anonymous`;
|
|
8197
8197
|
}
|
|
8198
8198
|
function isClassComponent(value) {
|
|
8199
8199
|
return isFunction$2(value) && "__vccOpts" in value;
|
|
@@ -8549,18 +8549,18 @@ function resolveTransitionProps(rawProps) {
|
|
|
8549
8549
|
return baseProps;
|
|
8550
8550
|
}
|
|
8551
8551
|
const {
|
|
8552
|
-
name
|
|
8552
|
+
name = "v",
|
|
8553
8553
|
type,
|
|
8554
8554
|
duration,
|
|
8555
|
-
enterFromClass = `${
|
|
8556
|
-
enterActiveClass = `${
|
|
8557
|
-
enterToClass = `${
|
|
8555
|
+
enterFromClass = `${name}-enter-from`,
|
|
8556
|
+
enterActiveClass = `${name}-enter-active`,
|
|
8557
|
+
enterToClass = `${name}-enter-to`,
|
|
8558
8558
|
appearFromClass = enterFromClass,
|
|
8559
8559
|
appearActiveClass = enterActiveClass,
|
|
8560
8560
|
appearToClass = enterToClass,
|
|
8561
|
-
leaveFromClass = `${
|
|
8562
|
-
leaveActiveClass = `${
|
|
8563
|
-
leaveToClass = `${
|
|
8561
|
+
leaveFromClass = `${name}-leave-from`,
|
|
8562
|
+
leaveActiveClass = `${name}-leave-active`,
|
|
8563
|
+
leaveToClass = `${name}-leave-to`
|
|
8564
8564
|
} = rawProps;
|
|
8565
8565
|
const durations = normalizeDuration(duration);
|
|
8566
8566
|
const enterDuration = durations && durations[0];
|
|
@@ -8881,22 +8881,22 @@ function patchStyle(el2, prev, next) {
|
|
|
8881
8881
|
}
|
|
8882
8882
|
const semicolonRE = /[^\\];\s*$/;
|
|
8883
8883
|
const importantRE = /\s*!important$/;
|
|
8884
|
-
function setStyle(style,
|
|
8884
|
+
function setStyle(style, name, val) {
|
|
8885
8885
|
if (isArray$1(val)) {
|
|
8886
|
-
val.forEach((v) => setStyle(style,
|
|
8886
|
+
val.forEach((v) => setStyle(style, name, v));
|
|
8887
8887
|
} else {
|
|
8888
8888
|
if (val == null) val = "";
|
|
8889
8889
|
if (!!(process.env.NODE_ENV !== "production")) {
|
|
8890
8890
|
if (semicolonRE.test(val)) {
|
|
8891
8891
|
warn$2(
|
|
8892
|
-
`Unexpected semicolon at the end of '${
|
|
8892
|
+
`Unexpected semicolon at the end of '${name}' style value: '${val}'`
|
|
8893
8893
|
);
|
|
8894
8894
|
}
|
|
8895
8895
|
}
|
|
8896
|
-
if (
|
|
8897
|
-
style.setProperty(
|
|
8896
|
+
if (name.startsWith("--")) {
|
|
8897
|
+
style.setProperty(name, val);
|
|
8898
8898
|
} else {
|
|
8899
|
-
const prefixed = autoPrefix(style,
|
|
8899
|
+
const prefixed = autoPrefix(style, name);
|
|
8900
8900
|
if (importantRE.test(val)) {
|
|
8901
8901
|
style.setProperty(
|
|
8902
8902
|
hyphenate(prefixed),
|
|
@@ -8916,13 +8916,13 @@ function autoPrefix(style, rawName) {
|
|
|
8916
8916
|
if (cached) {
|
|
8917
8917
|
return cached;
|
|
8918
8918
|
}
|
|
8919
|
-
let
|
|
8920
|
-
if (
|
|
8921
|
-
return prefixCache[rawName] =
|
|
8919
|
+
let name = camelize(rawName);
|
|
8920
|
+
if (name !== "filter" && name in style) {
|
|
8921
|
+
return prefixCache[rawName] = name;
|
|
8922
8922
|
}
|
|
8923
|
-
|
|
8923
|
+
name = capitalize$1(name);
|
|
8924
8924
|
for (let i = 0; i < prefixes.length; i++) {
|
|
8925
|
-
const prefixed = prefixes[i] +
|
|
8925
|
+
const prefixed = prefixes[i] + name;
|
|
8926
8926
|
if (prefixed in style) {
|
|
8927
8927
|
return prefixCache[rawName] = prefixed;
|
|
8928
8928
|
}
|
|
@@ -9011,31 +9011,31 @@ function patchEvent(el2, rawName, prevValue, nextValue, instance = null) {
|
|
|
9011
9011
|
if (nextValue && existingInvoker) {
|
|
9012
9012
|
existingInvoker.value = !!(process.env.NODE_ENV !== "production") ? sanitizeEventValue(nextValue, rawName) : nextValue;
|
|
9013
9013
|
} else {
|
|
9014
|
-
const [
|
|
9014
|
+
const [name, options] = parseName(rawName);
|
|
9015
9015
|
if (nextValue) {
|
|
9016
9016
|
const invoker = invokers[rawName] = createInvoker(
|
|
9017
9017
|
!!(process.env.NODE_ENV !== "production") ? sanitizeEventValue(nextValue, rawName) : nextValue,
|
|
9018
9018
|
instance
|
|
9019
9019
|
);
|
|
9020
|
-
addEventListener(el2,
|
|
9020
|
+
addEventListener(el2, name, invoker, options);
|
|
9021
9021
|
} else if (existingInvoker) {
|
|
9022
|
-
removeEventListener(el2,
|
|
9022
|
+
removeEventListener(el2, name, existingInvoker, options);
|
|
9023
9023
|
invokers[rawName] = void 0;
|
|
9024
9024
|
}
|
|
9025
9025
|
}
|
|
9026
9026
|
}
|
|
9027
9027
|
const optionsModifierRE = /(?:Once|Passive|Capture)$/;
|
|
9028
|
-
function parseName(
|
|
9028
|
+
function parseName(name) {
|
|
9029
9029
|
let options;
|
|
9030
|
-
if (optionsModifierRE.test(
|
|
9030
|
+
if (optionsModifierRE.test(name)) {
|
|
9031
9031
|
options = {};
|
|
9032
9032
|
let m;
|
|
9033
|
-
while (m =
|
|
9034
|
-
|
|
9033
|
+
while (m = name.match(optionsModifierRE)) {
|
|
9034
|
+
name = name.slice(0, name.length - m[0].length);
|
|
9035
9035
|
options[m[0].toLowerCase()] = true;
|
|
9036
9036
|
}
|
|
9037
9037
|
}
|
|
9038
|
-
const event =
|
|
9038
|
+
const event = name[2] === ":" ? name.slice(3) : hyphenate(name.slice(2));
|
|
9039
9039
|
return [event, options];
|
|
9040
9040
|
}
|
|
9041
9041
|
let cachedNow = 0;
|
|
@@ -9639,12 +9639,12 @@ function bom(blob, { autoBom = false } = {}) {
|
|
|
9639
9639
|
}
|
|
9640
9640
|
return blob;
|
|
9641
9641
|
}
|
|
9642
|
-
function download(url,
|
|
9642
|
+
function download(url, name, opts) {
|
|
9643
9643
|
const xhr = new XMLHttpRequest();
|
|
9644
9644
|
xhr.open("GET", url);
|
|
9645
9645
|
xhr.responseType = "blob";
|
|
9646
9646
|
xhr.onload = function() {
|
|
9647
|
-
saveAs(xhr.response,
|
|
9647
|
+
saveAs(xhr.response, name, opts);
|
|
9648
9648
|
};
|
|
9649
9649
|
xhr.onerror = function() {
|
|
9650
9650
|
console.error("could not download file");
|
|
@@ -9682,15 +9682,15 @@ const saveAs = !IS_CLIENT ? () => {
|
|
|
9682
9682
|
)
|
|
9683
9683
|
)
|
|
9684
9684
|
);
|
|
9685
|
-
function downloadSaveAs(blob,
|
|
9685
|
+
function downloadSaveAs(blob, name = "download", opts) {
|
|
9686
9686
|
const a = document.createElement("a");
|
|
9687
|
-
a.download =
|
|
9687
|
+
a.download = name;
|
|
9688
9688
|
a.rel = "noopener";
|
|
9689
9689
|
if (typeof blob === "string") {
|
|
9690
9690
|
a.href = blob;
|
|
9691
9691
|
if (a.origin !== location.origin) {
|
|
9692
9692
|
if (corsEnabled(a.href)) {
|
|
9693
|
-
download(blob,
|
|
9693
|
+
download(blob, name, opts);
|
|
9694
9694
|
} else {
|
|
9695
9695
|
a.target = "_blank";
|
|
9696
9696
|
click(a);
|
|
@@ -9708,10 +9708,10 @@ function downloadSaveAs(blob, name2 = "download", opts) {
|
|
|
9708
9708
|
}, 0);
|
|
9709
9709
|
}
|
|
9710
9710
|
}
|
|
9711
|
-
function msSaveAs(blob,
|
|
9711
|
+
function msSaveAs(blob, name = "download", opts) {
|
|
9712
9712
|
if (typeof blob === "string") {
|
|
9713
9713
|
if (corsEnabled(blob)) {
|
|
9714
|
-
download(blob,
|
|
9714
|
+
download(blob, name, opts);
|
|
9715
9715
|
} else {
|
|
9716
9716
|
const a = document.createElement("a");
|
|
9717
9717
|
a.href = blob;
|
|
@@ -9721,16 +9721,16 @@ function msSaveAs(blob, name2 = "download", opts) {
|
|
|
9721
9721
|
});
|
|
9722
9722
|
}
|
|
9723
9723
|
} else {
|
|
9724
|
-
navigator.msSaveOrOpenBlob(bom(blob, opts),
|
|
9724
|
+
navigator.msSaveOrOpenBlob(bom(blob, opts), name);
|
|
9725
9725
|
}
|
|
9726
9726
|
}
|
|
9727
|
-
function fileSaverSaveAs(blob,
|
|
9727
|
+
function fileSaverSaveAs(blob, name, opts, popup) {
|
|
9728
9728
|
popup = popup || open("", "_blank");
|
|
9729
9729
|
if (popup) {
|
|
9730
9730
|
popup.document.title = popup.document.body.innerText = "downloading...";
|
|
9731
9731
|
}
|
|
9732
9732
|
if (typeof blob === "string")
|
|
9733
|
-
return download(blob,
|
|
9733
|
+
return download(blob, name, opts);
|
|
9734
9734
|
const force = blob.type === "application/octet-stream";
|
|
9735
9735
|
const isSafari = /constructor/i.test(String(_global.HTMLElement)) || "safari" in _global;
|
|
9736
9736
|
const isChromeIOS = /CriOS\/[\d]+/.test(navigator.userAgent);
|
|
@@ -10192,17 +10192,17 @@ function addStoreToDevtools(app, store) {
|
|
|
10192
10192
|
}
|
|
10193
10193
|
}, (api) => {
|
|
10194
10194
|
const now2 = typeof api.now === "function" ? api.now.bind(api) : Date.now;
|
|
10195
|
-
store.$onAction(({ after, onError, name
|
|
10195
|
+
store.$onAction(({ after, onError, name, args }) => {
|
|
10196
10196
|
const groupId = runningActionId++;
|
|
10197
10197
|
api.addTimelineEvent({
|
|
10198
10198
|
layerId: MUTATIONS_LAYER_ID,
|
|
10199
10199
|
event: {
|
|
10200
10200
|
time: now2(),
|
|
10201
|
-
title: "🛫 " +
|
|
10201
|
+
title: "🛫 " + name,
|
|
10202
10202
|
subtitle: "start",
|
|
10203
10203
|
data: {
|
|
10204
10204
|
store: formatDisplay(store.$id),
|
|
10205
|
-
action: formatDisplay(
|
|
10205
|
+
action: formatDisplay(name),
|
|
10206
10206
|
args
|
|
10207
10207
|
},
|
|
10208
10208
|
groupId
|
|
@@ -10214,11 +10214,11 @@ function addStoreToDevtools(app, store) {
|
|
|
10214
10214
|
layerId: MUTATIONS_LAYER_ID,
|
|
10215
10215
|
event: {
|
|
10216
10216
|
time: now2(),
|
|
10217
|
-
title: "🛬 " +
|
|
10217
|
+
title: "🛬 " + name,
|
|
10218
10218
|
subtitle: "end",
|
|
10219
10219
|
data: {
|
|
10220
10220
|
store: formatDisplay(store.$id),
|
|
10221
|
-
action: formatDisplay(
|
|
10221
|
+
action: formatDisplay(name),
|
|
10222
10222
|
args,
|
|
10223
10223
|
result
|
|
10224
10224
|
},
|
|
@@ -10233,11 +10233,11 @@ function addStoreToDevtools(app, store) {
|
|
|
10233
10233
|
event: {
|
|
10234
10234
|
time: now2(),
|
|
10235
10235
|
logType: "error",
|
|
10236
|
-
title: "💥 " +
|
|
10236
|
+
title: "💥 " + name,
|
|
10237
10237
|
subtitle: "end",
|
|
10238
10238
|
data: {
|
|
10239
10239
|
store: formatDisplay(store.$id),
|
|
10240
|
-
action: formatDisplay(
|
|
10240
|
+
action: formatDisplay(name),
|
|
10241
10241
|
args,
|
|
10242
10242
|
error
|
|
10243
10243
|
},
|
|
@@ -10246,8 +10246,8 @@ function addStoreToDevtools(app, store) {
|
|
|
10246
10246
|
});
|
|
10247
10247
|
});
|
|
10248
10248
|
}, true);
|
|
10249
|
-
store._customProperties.forEach((
|
|
10250
|
-
watch(() => unref(store[
|
|
10249
|
+
store._customProperties.forEach((name) => {
|
|
10250
|
+
watch(() => unref(store[name]), (newValue, oldValue) => {
|
|
10251
10251
|
api.notifyComponentUpdate();
|
|
10252
10252
|
api.sendInspectorState(INSPECTOR_ID);
|
|
10253
10253
|
if (isTimelineActive) {
|
|
@@ -10256,7 +10256,7 @@ function addStoreToDevtools(app, store) {
|
|
|
10256
10256
|
event: {
|
|
10257
10257
|
time: now2(),
|
|
10258
10258
|
title: "Change",
|
|
10259
|
-
subtitle:
|
|
10259
|
+
subtitle: name,
|
|
10260
10260
|
data: {
|
|
10261
10261
|
newValue,
|
|
10262
10262
|
oldValue
|
|
@@ -10504,14 +10504,14 @@ function createOptionsStore(id, options, pinia, hot) {
|
|
|
10504
10504
|
// use ref() to unwrap refs inside state TODO: check if this is still necessary
|
|
10505
10505
|
toRefs(ref(state2 ? state2() : {}).value)
|
|
10506
10506
|
) : toRefs(pinia.state.value[id]);
|
|
10507
|
-
return assign$2(localState, actions, Object.keys(getters || {}).reduce((computedGetters,
|
|
10508
|
-
if (process.env.NODE_ENV !== "production" &&
|
|
10509
|
-
console.warn(`[🍍]: A getter cannot have the same name as another state property. Rename one of them. Found with "${
|
|
10507
|
+
return assign$2(localState, actions, Object.keys(getters || {}).reduce((computedGetters, name) => {
|
|
10508
|
+
if (process.env.NODE_ENV !== "production" && name in localState) {
|
|
10509
|
+
console.warn(`[🍍]: A getter cannot have the same name as another state property. Rename one of them. Found with "${name}" in store "${id}".`);
|
|
10510
10510
|
}
|
|
10511
|
-
computedGetters[
|
|
10511
|
+
computedGetters[name] = markRaw(computed(() => {
|
|
10512
10512
|
setActivePinia(pinia);
|
|
10513
10513
|
const store2 = pinia._s.get(id);
|
|
10514
|
-
return getters[
|
|
10514
|
+
return getters[name].call(store2, store2);
|
|
10515
10515
|
}));
|
|
10516
10516
|
return computedGetters;
|
|
10517
10517
|
}, {}));
|
|
@@ -10601,9 +10601,9 @@ function createSetupStore($id, setup, options = {}, pinia, hot, isOptionsStore)
|
|
|
10601
10601
|
actionSubscriptions = [];
|
|
10602
10602
|
pinia._s.delete($id);
|
|
10603
10603
|
}
|
|
10604
|
-
const action = (fn,
|
|
10604
|
+
const action = (fn, name = "") => {
|
|
10605
10605
|
if (ACTION_MARKER in fn) {
|
|
10606
|
-
fn[ACTION_NAME] =
|
|
10606
|
+
fn[ACTION_NAME] = name;
|
|
10607
10607
|
return fn;
|
|
10608
10608
|
}
|
|
10609
10609
|
const wrappedAction = function() {
|
|
@@ -10644,7 +10644,7 @@ function createSetupStore($id, setup, options = {}, pinia, hot, isOptionsStore)
|
|
|
10644
10644
|
return ret;
|
|
10645
10645
|
};
|
|
10646
10646
|
wrappedAction[ACTION_MARKER] = true;
|
|
10647
|
-
wrappedAction[ACTION_NAME] =
|
|
10647
|
+
wrappedAction[ACTION_NAME] = name;
|
|
10648
10648
|
return wrappedAction;
|
|
10649
10649
|
};
|
|
10650
10650
|
const _hmrPayload = /* @__PURE__ */ markRaw({
|
|
@@ -10936,8 +10936,8 @@ if (process.env.NODE_ENV !== "production") {
|
|
|
10936
10936
|
mark = (tag) => {
|
|
10937
10937
|
perf2.mark(tag);
|
|
10938
10938
|
};
|
|
10939
|
-
measure = (
|
|
10940
|
-
perf2.measure(
|
|
10939
|
+
measure = (name, startTag, endTag) => {
|
|
10940
|
+
perf2.measure(name, startTag, endTag);
|
|
10941
10941
|
perf2.clearMarks(startTag);
|
|
10942
10942
|
perf2.clearMarks(endTag);
|
|
10943
10943
|
};
|
|
@@ -10955,7 +10955,7 @@ function format$1(message, ...args) {
|
|
|
10955
10955
|
return args.hasOwnProperty(identifier) ? args[identifier] : "";
|
|
10956
10956
|
});
|
|
10957
10957
|
}
|
|
10958
|
-
const makeSymbol = (
|
|
10958
|
+
const makeSymbol = (name, shareable = false) => !shareable ? Symbol(name) : Symbol.for(name);
|
|
10959
10959
|
const generateFormatCacheKey = (locale, key, source) => friendlyJSONstringify({ l: locale, k: key, s: source });
|
|
10960
10960
|
const friendlyJSONstringify = (json) => JSON.stringify(json).replace(/\u2028/g, "\\u2028").replace(/\u2029/g, "\\u2029").replace(/\u0027/g, "\\u0027");
|
|
10961
10961
|
const isNumber = (val) => typeof val === "number" && isFinite(val);
|
|
@@ -11532,20 +11532,20 @@ function createTokenizer(source, options = {}) {
|
|
|
11532
11532
|
function readNamedIdentifier(scnr) {
|
|
11533
11533
|
skipSpaces(scnr);
|
|
11534
11534
|
let ch = "";
|
|
11535
|
-
let
|
|
11535
|
+
let name = "";
|
|
11536
11536
|
while (ch = takeNamedIdentifierChar(scnr)) {
|
|
11537
|
-
|
|
11537
|
+
name += ch;
|
|
11538
11538
|
}
|
|
11539
11539
|
const currentChar = scnr.currentChar();
|
|
11540
11540
|
if (currentChar && currentChar !== "}" && currentChar !== EOF && currentChar !== CHAR_SP && currentChar !== CHAR_LF && currentChar !== " ") {
|
|
11541
11541
|
const invalidPart = readInvalidIdentifier(scnr);
|
|
11542
|
-
emitError(CompileErrorCodes.INVALID_TOKEN_IN_PLACEHOLDER, currentPosition(), 0,
|
|
11543
|
-
return
|
|
11542
|
+
emitError(CompileErrorCodes.INVALID_TOKEN_IN_PLACEHOLDER, currentPosition(), 0, name + invalidPart);
|
|
11543
|
+
return name + invalidPart;
|
|
11544
11544
|
}
|
|
11545
11545
|
if (scnr.currentChar() === EOF) {
|
|
11546
11546
|
emitError(CompileErrorCodes.UNTERMINATED_CLOSING_BRACE, currentPosition(), 0);
|
|
11547
11547
|
}
|
|
11548
|
-
return
|
|
11548
|
+
return name;
|
|
11549
11549
|
}
|
|
11550
11550
|
function readListIdentifier(scnr) {
|
|
11551
11551
|
skipSpaces(scnr);
|
|
@@ -11631,11 +11631,11 @@ function createTokenizer(source, options = {}) {
|
|
|
11631
11631
|
}
|
|
11632
11632
|
function readLinkedModifier(scnr) {
|
|
11633
11633
|
let ch = "";
|
|
11634
|
-
let
|
|
11634
|
+
let name = "";
|
|
11635
11635
|
while (ch = takeIdentifierChar(scnr)) {
|
|
11636
|
-
|
|
11636
|
+
name += ch;
|
|
11637
11637
|
}
|
|
11638
|
-
return
|
|
11638
|
+
return name;
|
|
11639
11639
|
}
|
|
11640
11640
|
function readLinkedRefer(scnr) {
|
|
11641
11641
|
const fn = (buf) => {
|
|
@@ -12159,8 +12159,8 @@ function getTokenCaption(token) {
|
|
|
12159
12159
|
if (token.type === 13) {
|
|
12160
12160
|
return "EOF";
|
|
12161
12161
|
}
|
|
12162
|
-
const
|
|
12163
|
-
return
|
|
12162
|
+
const name = (token.value || "").replace(/\r?\n/gu, "\\n");
|
|
12163
|
+
return name.length > 10 ? name.slice(0, 9) + "…" : name;
|
|
12164
12164
|
}
|
|
12165
12165
|
function createTransformer(ast, options = {}) {
|
|
12166
12166
|
const _context = {
|
|
@@ -12168,9 +12168,9 @@ function createTransformer(ast, options = {}) {
|
|
|
12168
12168
|
helpers: /* @__PURE__ */ new Set()
|
|
12169
12169
|
};
|
|
12170
12170
|
const context = () => _context;
|
|
12171
|
-
const helper = (
|
|
12172
|
-
_context.helpers.add(
|
|
12173
|
-
return
|
|
12171
|
+
const helper = (name) => {
|
|
12172
|
+
_context.helpers.add(name);
|
|
12173
|
+
return name;
|
|
12174
12174
|
};
|
|
12175
12175
|
return { context, helper };
|
|
12176
12176
|
}
|
|
@@ -13863,7 +13863,7 @@ function createMessageContext(options = {}) {
|
|
|
13863
13863
|
const msg = isFunction$1(options.messages) ? options.messages(key, !!useLinked) : isObject$2(options.messages) ? options.messages[key] : false;
|
|
13864
13864
|
return !msg ? options.parent ? options.parent.message(key) : DEFAULT_MESSAGE : msg;
|
|
13865
13865
|
}
|
|
13866
|
-
const _modifier = (
|
|
13866
|
+
const _modifier = (name) => options.modifiers ? options.modifiers[name] : DEFAULT_MODIFIER;
|
|
13867
13867
|
const normalize = isPlainObject$1(options.processor) && isFunction$1(options.processor.normalize) ? options.processor.normalize : DEFAULT_NORMALIZE;
|
|
13868
13868
|
const interpolate = isPlainObject$1(options.processor) && isFunction$1(options.processor.interpolate) ? options.processor.interpolate : DEFAULT_INTERPOLATE;
|
|
13869
13869
|
const type = isPlainObject$1(options.processor) && isString(options.processor.type) ? options.processor.type : DEFAULT_MESSAGE_DATA_TYPE;
|
|
@@ -15706,7 +15706,7 @@ const en = {
|
|
|
15706
15706
|
rotate: "Rotate",
|
|
15707
15707
|
lock: "Lock",
|
|
15708
15708
|
unlock: "Unlock",
|
|
15709
|
-
appTitle: "
|
|
15709
|
+
appTitle: "Report Template Editor",
|
|
15710
15710
|
testData: "Test Data",
|
|
15711
15711
|
invalidJson: "Invalid JSON. Changes were not saved.",
|
|
15712
15712
|
testDataKeyChanged: "Test data keys cannot be changed. Please only edit values.",
|
|
@@ -15789,7 +15789,7 @@ const en = {
|
|
|
15789
15789
|
close: "Close"
|
|
15790
15790
|
},
|
|
15791
15791
|
onboarding: {
|
|
15792
|
-
title: "Welcome to
|
|
15792
|
+
title: "Welcome to Report Template Editor",
|
|
15793
15793
|
skip: "Skip",
|
|
15794
15794
|
next: "Next",
|
|
15795
15795
|
prev: "Back",
|
|
@@ -15797,7 +15797,7 @@ const en = {
|
|
|
15797
15797
|
where: "Where: ",
|
|
15798
15798
|
waiting: "Complete the action to continue automatically…",
|
|
15799
15799
|
dropHere: "Drop here",
|
|
15800
|
-
step1Title: "Welcome to
|
|
15800
|
+
step1Title: "Welcome to Report Template Editor",
|
|
15801
15801
|
step1Desc: "You will be guided to drag out text and table elements, then bind data fields to each. Every step requires hands-on action and auto-advances when done.",
|
|
15802
15802
|
step1Hint: "",
|
|
15803
15803
|
step2Title: "Drag out a Text Element",
|
|
@@ -16851,7 +16851,7 @@ const zh = {
|
|
|
16851
16851
|
rotate: "旋转",
|
|
16852
16852
|
lock: "锁定",
|
|
16853
16853
|
unlock: "解锁",
|
|
16854
|
-
appTitle: "
|
|
16854
|
+
appTitle: "报告模板编辑器",
|
|
16855
16855
|
testData: "测试数据",
|
|
16856
16856
|
invalidJson: "JSON 无效,未保存更改。",
|
|
16857
16857
|
testDataKeyChanged: "测试数据的键不允许修改,请仅编辑值。",
|
|
@@ -16934,7 +16934,7 @@ const zh = {
|
|
|
16934
16934
|
close: "关闭"
|
|
16935
16935
|
},
|
|
16936
16936
|
onboarding: {
|
|
16937
|
-
title: "
|
|
16937
|
+
title: "欢迎使用报告模板编辑器",
|
|
16938
16938
|
skip: "跳过",
|
|
16939
16939
|
next: "下一步",
|
|
16940
16940
|
prev: "上一步",
|
|
@@ -16942,7 +16942,7 @@ const zh = {
|
|
|
16942
16942
|
where: "位置:",
|
|
16943
16943
|
waiting: "请完成操作后自动继续…",
|
|
16944
16944
|
dropHere: "拖到此处",
|
|
16945
|
-
step1Title: "
|
|
16945
|
+
step1Title: "欢迎使用报告模板编辑器",
|
|
16946
16946
|
step1Desc: "接下来将引导你拖出文本与表格两大元素,并完成字段绑定。每一步都需要你亲手操作,完成后自动进入下一步。",
|
|
16947
16947
|
step1Hint: "",
|
|
16948
16948
|
step2Title: "拖出文本元素",
|
|
@@ -21237,29 +21237,181 @@ function collapseLoopPages(currentPages, originalTemplatePages) {
|
|
|
21237
21237
|
}
|
|
21238
21238
|
const REPORT_MATERIALIZE_OVERFLOW_PAGE_PREFIX = "report-custom-table-";
|
|
21239
21239
|
const REPORT_MATERIALIZE_ELEMENT_ID_SEGMENT = "-report-custom-table-";
|
|
21240
|
+
const REPORT_MATERIALIZE_AFTER_TABLE_GAP = 10;
|
|
21240
21241
|
const isReportMaterializeOverflowPage = (page2) => typeof (page2 == null ? void 0 : page2.id) === "string" && page2.id.startsWith(REPORT_MATERIALIZE_OVERFLOW_PAGE_PREFIX);
|
|
21241
21242
|
const isReportMaterializedCustomTable = (element) => (element == null ? void 0 : element.type) === ElementType.CUSTOM_TABLE && typeof (element == null ? void 0 : element.id) === "string" && element.id.includes(REPORT_MATERIALIZE_ELEMENT_ID_SEGMENT);
|
|
21243
|
+
const materializedElementStyle = (table) => {
|
|
21244
|
+
const style = (table == null ? void 0 : table.style) && typeof table.style === "object" ? table.style : {};
|
|
21245
|
+
return {
|
|
21246
|
+
...style,
|
|
21247
|
+
backgroundColor: style.backgroundColor || "transparent",
|
|
21248
|
+
color: style.color || "#000000",
|
|
21249
|
+
fontSize: style.fontSize || 14,
|
|
21250
|
+
textAlign: style.textAlign || "left"
|
|
21251
|
+
};
|
|
21252
|
+
};
|
|
21253
|
+
const diffStyle = (current, base) => {
|
|
21254
|
+
const diff = {};
|
|
21255
|
+
if (!current || typeof current !== "object") return diff;
|
|
21256
|
+
const baseObj = base && typeof base === "object" ? base : {};
|
|
21257
|
+
for (const key of Object.keys(current)) {
|
|
21258
|
+
const value = current[key];
|
|
21259
|
+
if (value === void 0) continue;
|
|
21260
|
+
if (Object.prototype.hasOwnProperty.call(baseObj, key) && baseObj[key] === value) continue;
|
|
21261
|
+
diff[key] = value;
|
|
21262
|
+
}
|
|
21263
|
+
return diff;
|
|
21264
|
+
};
|
|
21242
21265
|
function unmaterializeReportTables(currentPages, originalTemplatePages) {
|
|
21266
|
+
var _a2, _b, _c, _d, _e;
|
|
21243
21267
|
if (!Array.isArray(currentPages) || !Array.isArray(originalTemplatePages)) {
|
|
21244
21268
|
return currentPages;
|
|
21245
21269
|
}
|
|
21246
21270
|
const originalTableIdsByPage = /* @__PURE__ */ new Map();
|
|
21271
|
+
const allOriginalTableIds = /* @__PURE__ */ new Set();
|
|
21272
|
+
const originalPageById = /* @__PURE__ */ new Map();
|
|
21247
21273
|
for (const originalPage of originalTemplatePages) {
|
|
21274
|
+
if (!originalPage || typeof originalPage !== "object") continue;
|
|
21248
21275
|
const id = originalPage == null ? void 0 : originalPage.id;
|
|
21249
|
-
if (typeof id
|
|
21276
|
+
if (typeof id === "string") {
|
|
21277
|
+
originalPageById.set(id, originalPage);
|
|
21278
|
+
}
|
|
21250
21279
|
const tableIds = /* @__PURE__ */ new Set();
|
|
21251
21280
|
for (const element of (originalPage == null ? void 0 : originalPage.elements) || []) {
|
|
21252
21281
|
if ((element == null ? void 0 : element.type) === ElementType.TABLE && typeof element.id === "string") {
|
|
21253
21282
|
tableIds.add(element.id);
|
|
21283
|
+
allOriginalTableIds.add(element.id);
|
|
21254
21284
|
}
|
|
21255
21285
|
}
|
|
21256
|
-
if (tableIds.size > 0) {
|
|
21286
|
+
if (tableIds.size > 0 && typeof id === "string") {
|
|
21257
21287
|
originalTableIdsByPage.set(id, tableIds);
|
|
21258
21288
|
}
|
|
21259
21289
|
}
|
|
21260
21290
|
if (originalTableIdsByPage.size === 0) {
|
|
21261
21291
|
return currentPages;
|
|
21262
21292
|
}
|
|
21293
|
+
const editsByTableId = /* @__PURE__ */ new Map();
|
|
21294
|
+
const getOrCreateEdits = (tableId) => {
|
|
21295
|
+
let edits = editsByTableId.get(tableId);
|
|
21296
|
+
if (!edits) {
|
|
21297
|
+
edits = { style: {}, cellOverrides: [], colWidths: [], layout: {} };
|
|
21298
|
+
editsByTableId.set(tableId, edits);
|
|
21299
|
+
}
|
|
21300
|
+
return edits;
|
|
21301
|
+
};
|
|
21302
|
+
for (const page2 of currentPages) {
|
|
21303
|
+
if (!page2 || typeof page2 !== "object") continue;
|
|
21304
|
+
const elements = Array.isArray(page2.elements) ? page2.elements : [];
|
|
21305
|
+
for (const element of elements) {
|
|
21306
|
+
if (!element || element.type !== ElementType.CUSTOM_TABLE || typeof element.id !== "string") continue;
|
|
21307
|
+
const baseId = element.id.split(REPORT_MATERIALIZE_ELEMENT_ID_SEGMENT)[0];
|
|
21308
|
+
if (!baseId || !allOriginalTableIds.has(baseId)) continue;
|
|
21309
|
+
let originalTable = null;
|
|
21310
|
+
if (element.id === baseId && typeof page2.id === "string") {
|
|
21311
|
+
const pageTableIds = originalTableIdsByPage.get(page2.id);
|
|
21312
|
+
if (pageTableIds && pageTableIds.has(baseId)) {
|
|
21313
|
+
originalTable = ((_b = (_a2 = originalPageById.get(page2.id)) == null ? void 0 : _a2.elements) == null ? void 0 : _b.find(
|
|
21314
|
+
(el2) => (el2 == null ? void 0 : el2.type) === ElementType.TABLE && el2.id === baseId
|
|
21315
|
+
)) ?? null;
|
|
21316
|
+
}
|
|
21317
|
+
} else {
|
|
21318
|
+
for (const originalPage of originalTemplatePages) {
|
|
21319
|
+
const found = (_c = originalPage == null ? void 0 : originalPage.elements) == null ? void 0 : _c.find(
|
|
21320
|
+
(el2) => (el2 == null ? void 0 : el2.type) === ElementType.TABLE && el2.id === baseId
|
|
21321
|
+
);
|
|
21322
|
+
if (found) {
|
|
21323
|
+
originalTable = found;
|
|
21324
|
+
break;
|
|
21325
|
+
}
|
|
21326
|
+
}
|
|
21327
|
+
}
|
|
21328
|
+
if (!originalTable) continue;
|
|
21329
|
+
const edits = getOrCreateEdits(baseId);
|
|
21330
|
+
Object.assign(edits.style, diffStyle(element.style, materializedElementStyle(originalTable)));
|
|
21331
|
+
const baseStyleByKey = /* @__PURE__ */ new Map();
|
|
21332
|
+
if (Array.isArray(element.reportCellBaseStyles)) {
|
|
21333
|
+
for (const entry of element.reportCellBaseStyles) {
|
|
21334
|
+
if (entry && typeof entry === "object" && Number.isFinite(entry.row) && Number.isFinite(entry.col) && entry.style && typeof entry.style === "object") {
|
|
21335
|
+
baseStyleByKey.set(`${entry.row}:${entry.col}`, entry.style);
|
|
21336
|
+
}
|
|
21337
|
+
}
|
|
21338
|
+
}
|
|
21339
|
+
const chunkDataStart = Number.isFinite(element.reportChunkDataStart) ? element.reportChunkDataStart : 0;
|
|
21340
|
+
if (baseStyleByKey.size > 0 && Array.isArray(element.customTableCells)) {
|
|
21341
|
+
for (const cell of element.customTableCells) {
|
|
21342
|
+
if (!cell || typeof cell !== "object" || !Number.isFinite(cell.row) || !Number.isFinite(cell.col)) continue;
|
|
21343
|
+
const base = baseStyleByKey.get(`${cell.row}:${cell.col}`) || {};
|
|
21344
|
+
const diff = diffStyle(cell.style, base);
|
|
21345
|
+
if (Object.keys(diff).length > 0) {
|
|
21346
|
+
edits.cellOverrides.push({ row: chunkDataStart + cell.row, col: cell.col, style: diff });
|
|
21347
|
+
}
|
|
21348
|
+
}
|
|
21349
|
+
}
|
|
21350
|
+
if (Array.isArray(element.customTableColWidths) && Array.isArray(originalTable.columns)) {
|
|
21351
|
+
const widths = element.customTableColWidths;
|
|
21352
|
+
const columns = originalTable.columns;
|
|
21353
|
+
const count = Math.min(widths.length, columns.length);
|
|
21354
|
+
for (let i = 0; i < count; i += 1) {
|
|
21355
|
+
const originalWidth = Number((_d = columns[i]) == null ? void 0 : _d.width);
|
|
21356
|
+
const currentWidth = Number(widths[i]);
|
|
21357
|
+
const fallbackWidth = Math.max(
|
|
21358
|
+
60,
|
|
21359
|
+
Math.floor((Number(originalTable.width) > 0 ? Number(originalTable.width) : 100) / Math.max(1, columns.length))
|
|
21360
|
+
);
|
|
21361
|
+
const baselineWidth = Number.isFinite(originalWidth) && originalWidth > 0 ? originalWidth : fallbackWidth;
|
|
21362
|
+
if (Number.isFinite(currentWidth) && currentWidth !== baselineWidth) {
|
|
21363
|
+
edits.colWidths[i] = currentWidth;
|
|
21364
|
+
}
|
|
21365
|
+
}
|
|
21366
|
+
}
|
|
21367
|
+
if (element.id === baseId && originalTable) {
|
|
21368
|
+
const layout = edits.layout;
|
|
21369
|
+
if (typeof element.x === "number" && element.x !== originalTable.x) layout.x = element.x;
|
|
21370
|
+
if (typeof element.y === "number" && element.y !== originalTable.y) layout.y = element.y;
|
|
21371
|
+
if (typeof element.width === "number" && element.width !== originalTable.width) layout.width = element.width;
|
|
21372
|
+
if (element.cellTextMode !== void 0 && element.cellTextMode !== originalTable.cellTextMode) {
|
|
21373
|
+
layout.cellTextMode = element.cellTextMode;
|
|
21374
|
+
}
|
|
21375
|
+
}
|
|
21376
|
+
}
|
|
21377
|
+
}
|
|
21378
|
+
const afterElementsByPageId = /* @__PURE__ */ new Map();
|
|
21379
|
+
for (const page2 of currentPages) {
|
|
21380
|
+
if (!isReportMaterializeOverflowPage(page2)) continue;
|
|
21381
|
+
const overflowElements = Array.isArray(page2.elements) ? page2.elements : [];
|
|
21382
|
+
const nonChunkElements = overflowElements.filter((element) => !isReportMaterializedCustomTable(element));
|
|
21383
|
+
if (nonChunkElements.length === 0) continue;
|
|
21384
|
+
const chunkElement = overflowElements.find((element) => isReportMaterializedCustomTable(element));
|
|
21385
|
+
let targetPageId = null;
|
|
21386
|
+
let originalTable = null;
|
|
21387
|
+
if (chunkElement && typeof chunkElement.id === "string") {
|
|
21388
|
+
const baseId = chunkElement.id.split(REPORT_MATERIALIZE_ELEMENT_ID_SEGMENT)[0];
|
|
21389
|
+
for (const originalPage of originalTemplatePages) {
|
|
21390
|
+
const found = (_e = originalPage == null ? void 0 : originalPage.elements) == null ? void 0 : _e.find(
|
|
21391
|
+
(el2) => (el2 == null ? void 0 : el2.type) === ElementType.TABLE && el2.id === baseId
|
|
21392
|
+
);
|
|
21393
|
+
if (found) {
|
|
21394
|
+
targetPageId = originalPage.id ?? null;
|
|
21395
|
+
originalTable = found;
|
|
21396
|
+
break;
|
|
21397
|
+
}
|
|
21398
|
+
}
|
|
21399
|
+
}
|
|
21400
|
+
if (!targetPageId || !originalTable || !chunkElement) {
|
|
21401
|
+
continue;
|
|
21402
|
+
}
|
|
21403
|
+
const afterStartY = (chunkElement.y ?? 0) + (chunkElement.height ?? 0) + REPORT_MATERIALIZE_AFTER_TABLE_GAP;
|
|
21404
|
+
const tableBottom = (originalTable.y ?? 0) + (originalTable.height ?? 0);
|
|
21405
|
+
const restoredList = afterElementsByPageId.get(targetPageId) ?? [];
|
|
21406
|
+
for (const element of nonChunkElements) {
|
|
21407
|
+
const restored = cloneDeep$1(element);
|
|
21408
|
+
if (typeof restored.y === "number" && Number.isFinite(restored.y)) {
|
|
21409
|
+
restored.y = Math.max(0, restored.y - afterStartY + tableBottom);
|
|
21410
|
+
}
|
|
21411
|
+
restoredList.push(restored);
|
|
21412
|
+
}
|
|
21413
|
+
afterElementsByPageId.set(targetPageId, restoredList);
|
|
21414
|
+
}
|
|
21263
21415
|
const result = [];
|
|
21264
21416
|
for (const page2 of currentPages) {
|
|
21265
21417
|
if (isReportMaterializeOverflowPage(page2)) {
|
|
@@ -21287,7 +21439,26 @@ function unmaterializeReportTables(currentPages, originalTemplatePages) {
|
|
|
21287
21439
|
if (originalPage && Array.isArray(originalPage.elements)) {
|
|
21288
21440
|
for (const element of originalPage.elements) {
|
|
21289
21441
|
if ((element == null ? void 0 : element.type) === ElementType.TABLE && materializedIds.has(element.id)) {
|
|
21290
|
-
|
|
21442
|
+
const restored = cloneDeep$1(element);
|
|
21443
|
+
const edits = editsByTableId.get(element.id);
|
|
21444
|
+
if (edits) {
|
|
21445
|
+
if (Object.keys(edits.style).length > 0) {
|
|
21446
|
+
restored.style = { ...restored.style || {}, ...edits.style };
|
|
21447
|
+
}
|
|
21448
|
+
if (edits.cellOverrides.length > 0) {
|
|
21449
|
+
restored.cellStyleOverrides = edits.cellOverrides;
|
|
21450
|
+
}
|
|
21451
|
+
if (edits.colWidths.length > 0 && Array.isArray(restored.columns)) {
|
|
21452
|
+
restored.columns = restored.columns.map((column, index2) => {
|
|
21453
|
+
const width = edits.colWidths[index2];
|
|
21454
|
+
return width !== void 0 ? { ...column, width } : column;
|
|
21455
|
+
});
|
|
21456
|
+
}
|
|
21457
|
+
if (Object.keys(edits.layout).length > 0) {
|
|
21458
|
+
Object.assign(restored, edits.layout);
|
|
21459
|
+
}
|
|
21460
|
+
}
|
|
21461
|
+
originalTables.push(restored);
|
|
21291
21462
|
}
|
|
21292
21463
|
}
|
|
21293
21464
|
}
|
|
@@ -21308,6 +21479,10 @@ function unmaterializeReportTables(currentPages, originalTemplatePages) {
|
|
|
21308
21479
|
if (!originalTablesInserted && originalTables.length > 0) {
|
|
21309
21480
|
nextElements.push(...originalTables);
|
|
21310
21481
|
}
|
|
21482
|
+
const restoredAfter = afterElementsByPageId.get(String(page2.id));
|
|
21483
|
+
if (restoredAfter && restoredAfter.length > 0) {
|
|
21484
|
+
nextElements.push(...restoredAfter);
|
|
21485
|
+
}
|
|
21311
21486
|
result.push({ ...page2, elements: nextElements });
|
|
21312
21487
|
}
|
|
21313
21488
|
return result;
|
|
@@ -22475,18 +22650,18 @@ const useTemplateStore = /* @__PURE__ */ defineStore("templates", {
|
|
|
22475
22650
|
if (mode === "remote") return;
|
|
22476
22651
|
localStorage.setItem("print-designer-templates", JSON.stringify(this.templates));
|
|
22477
22652
|
},
|
|
22478
|
-
buildSavePayload(
|
|
22653
|
+
buildSavePayload(name) {
|
|
22479
22654
|
const designerStore = useDesignerStore();
|
|
22480
22655
|
const targetId = this.currentTemplateId;
|
|
22481
22656
|
const data = buildPersistedTemplateData(designerStore);
|
|
22482
22657
|
return {
|
|
22483
22658
|
id: targetId,
|
|
22484
|
-
name
|
|
22659
|
+
name,
|
|
22485
22660
|
data,
|
|
22486
22661
|
isNew: !targetId
|
|
22487
22662
|
};
|
|
22488
22663
|
},
|
|
22489
|
-
async saveCurrentTemplate(
|
|
22664
|
+
async saveCurrentTemplate(name, isAutoSave = false) {
|
|
22490
22665
|
var _a2, _b, _c;
|
|
22491
22666
|
const { mode, endpoints, headers, fetcher } = getCrudConfig();
|
|
22492
22667
|
const designerStore = useDesignerStore();
|
|
@@ -22502,7 +22677,7 @@ const useTemplateStore = /* @__PURE__ */ defineStore("templates", {
|
|
|
22502
22677
|
if (targetId && existingTemplate) {
|
|
22503
22678
|
const oldData = sanitizeTemplateData(existingTemplate.data || {});
|
|
22504
22679
|
const newData = sanitizeTemplateData(data);
|
|
22505
|
-
if (existingTemplate.name ===
|
|
22680
|
+
if (existingTemplate.name === name && isEqual(oldData, newData)) {
|
|
22506
22681
|
return;
|
|
22507
22682
|
}
|
|
22508
22683
|
}
|
|
@@ -22516,7 +22691,7 @@ const useTemplateStore = /* @__PURE__ */ defineStore("templates", {
|
|
|
22516
22691
|
const upsertBase = targetId ? this.templateDetailCache[targetId] || existingTemplate || {} : {};
|
|
22517
22692
|
const payloadBase = {
|
|
22518
22693
|
id: targetId || v4(),
|
|
22519
|
-
name
|
|
22694
|
+
name,
|
|
22520
22695
|
// 只落盘白名单 data,不再合并 upsertBase.data(避免 imageBundle/fieldMapping
|
|
22521
22696
|
// 等历史遗留字段与旧画布配置回流到模板 JSON)
|
|
22522
22697
|
data,
|
|
@@ -22559,14 +22734,14 @@ const useTemplateStore = /* @__PURE__ */ defineStore("templates", {
|
|
|
22559
22734
|
if (idx >= 0) {
|
|
22560
22735
|
this.templates[idx] = normalizeEntityConstraints({
|
|
22561
22736
|
...this.templates[idx],
|
|
22562
|
-
name
|
|
22737
|
+
name,
|
|
22563
22738
|
data,
|
|
22564
22739
|
updatedAt: Date.now(),
|
|
22565
22740
|
ext: withExtAvailableVariables((_c = this.templates[idx]) == null ? void 0 : _c.ext, designerStore.availableVariables)
|
|
22566
22741
|
});
|
|
22567
22742
|
}
|
|
22568
22743
|
} else {
|
|
22569
|
-
this.createTemplate(
|
|
22744
|
+
this.createTemplate(name, data);
|
|
22570
22745
|
}
|
|
22571
22746
|
this.saveToLocalStorage();
|
|
22572
22747
|
} finally {
|
|
@@ -22622,7 +22797,7 @@ const useTemplateStore = /* @__PURE__ */ defineStore("templates", {
|
|
|
22622
22797
|
this.saveToLocalStorage();
|
|
22623
22798
|
}
|
|
22624
22799
|
},
|
|
22625
|
-
async createTemplate(
|
|
22800
|
+
async createTemplate(name, data, extraValues, templateMode = "create") {
|
|
22626
22801
|
var _a2, _b;
|
|
22627
22802
|
const { mode, endpoints, headers, fetcher } = getCrudConfig();
|
|
22628
22803
|
const designerStore = useDesignerStore();
|
|
@@ -22630,7 +22805,7 @@ const useTemplateStore = /* @__PURE__ */ defineStore("templates", {
|
|
|
22630
22805
|
const newData = sanitizeTemplateData(nextData);
|
|
22631
22806
|
const templateBase = applyModalExtraValues({
|
|
22632
22807
|
id: v4(),
|
|
22633
|
-
name
|
|
22808
|
+
name,
|
|
22634
22809
|
data: newData,
|
|
22635
22810
|
updatedAt: Date.now(),
|
|
22636
22811
|
ext: withExtAvailableVariables(void 0, designerStore.availableVariables)
|
|
@@ -23482,10 +23657,17 @@ const buildCustomTableForChunk = (table, processed, chunk, chunkIndex) => {
|
|
|
23482
23657
|
...footerRowHeights
|
|
23483
23658
|
].map((height2) => Math.ceil(toPositiveNumber(height2, getTableRowHeight(table))));
|
|
23484
23659
|
const cells = [];
|
|
23660
|
+
const baseStyles2 = [];
|
|
23485
23661
|
const columns = processed.columns;
|
|
23662
|
+
const recordBaseStyle = (cell) => {
|
|
23663
|
+
if (!cell) return;
|
|
23664
|
+
baseStyles2.push({ row: cell.row, col: cell.col, style: { ...cell.style } });
|
|
23665
|
+
};
|
|
23486
23666
|
if (includeHeader) {
|
|
23487
23667
|
columns.forEach((column, colIndex) => {
|
|
23488
|
-
|
|
23668
|
+
const cell = buildHeaderCell(table, column, colIndex);
|
|
23669
|
+
cells.push(cell);
|
|
23670
|
+
recordBaseStyle(cell);
|
|
23489
23671
|
});
|
|
23490
23672
|
}
|
|
23491
23673
|
const dataRowOffset = includeHeader ? 1 : 0;
|
|
@@ -23500,7 +23682,10 @@ const buildCustomTableForChunk = (table, processed, chunk, chunkIndex) => {
|
|
|
23500
23682
|
dataRows.length - rowOffset,
|
|
23501
23683
|
columns.length - colIndex
|
|
23502
23684
|
);
|
|
23503
|
-
if (cell)
|
|
23685
|
+
if (cell) {
|
|
23686
|
+
cells.push(cell);
|
|
23687
|
+
recordBaseStyle(cell);
|
|
23688
|
+
}
|
|
23504
23689
|
});
|
|
23505
23690
|
});
|
|
23506
23691
|
if (includeFooter) {
|
|
@@ -23516,10 +23701,29 @@ const buildCustomTableForChunk = (table, processed, chunk, chunkIndex) => {
|
|
|
23516
23701
|
processed.footerData.length - rowOffset,
|
|
23517
23702
|
columns.length - colIndex
|
|
23518
23703
|
);
|
|
23519
|
-
if (cell)
|
|
23704
|
+
if (cell) {
|
|
23705
|
+
cells.push(cell);
|
|
23706
|
+
recordBaseStyle(cell);
|
|
23707
|
+
}
|
|
23520
23708
|
});
|
|
23521
23709
|
});
|
|
23522
23710
|
}
|
|
23711
|
+
if (Array.isArray(table.cellStyleOverrides) && table.cellStyleOverrides.length > 0) {
|
|
23712
|
+
const overrideByKey = /* @__PURE__ */ new Map();
|
|
23713
|
+
for (const override of table.cellStyleOverrides) {
|
|
23714
|
+
if (override && typeof override === "object" && Number.isFinite(override.row) && Number.isFinite(override.col) && override.style && typeof override.style === "object") {
|
|
23715
|
+
overrideByKey.set(`${override.row}:${override.col}`, override.style);
|
|
23716
|
+
}
|
|
23717
|
+
}
|
|
23718
|
+
if (overrideByKey.size > 0) {
|
|
23719
|
+
for (const cell of cells) {
|
|
23720
|
+
const override = overrideByKey.get(`${chunk.start + cell.row}:${cell.col}`);
|
|
23721
|
+
if (override) {
|
|
23722
|
+
cell.style = { ...cell.style, ...override };
|
|
23723
|
+
}
|
|
23724
|
+
}
|
|
23725
|
+
}
|
|
23726
|
+
}
|
|
23523
23727
|
const contentHeight = rowHeights.reduce((total, value) => total + value, 0);
|
|
23524
23728
|
const height = Math.max(1, contentHeight + CUSTOM_TABLE_HEIGHT_BUFFER);
|
|
23525
23729
|
return {
|
|
@@ -23543,6 +23747,10 @@ const buildCustomTableForChunk = (table, processed, chunk, chunkIndex) => {
|
|
|
23543
23747
|
customTableColWidths: columns.map((column) => toPositiveNumber(column.width, DEFAULT_COLUMN_WIDTH)),
|
|
23544
23748
|
customTableRowHeights: rowHeights,
|
|
23545
23749
|
customTableCells: cells,
|
|
23750
|
+
// 物化块内部元数据(仅内存中,不随模板保存):供 unmaterializeReportTables
|
|
23751
|
+
// 在保存时把用户编辑按绝对坐标 diff 回原始 TABLE
|
|
23752
|
+
reportChunkDataStart: chunk.start,
|
|
23753
|
+
reportCellBaseStyles: baseStyles2,
|
|
23546
23754
|
style: {
|
|
23547
23755
|
...cloneDeep$1(table.style),
|
|
23548
23756
|
backgroundColor: table.style.backgroundColor || "transparent",
|
|
@@ -24428,11 +24636,11 @@ const useDesignerStore = /* @__PURE__ */ defineStore("designer", {
|
|
|
24428
24636
|
}
|
|
24429
24637
|
return true;
|
|
24430
24638
|
},
|
|
24431
|
-
saveCustomElementEditAs(
|
|
24639
|
+
saveCustomElementEditAs(name) {
|
|
24432
24640
|
var _a2;
|
|
24433
24641
|
const element = this.selectedElement || ((_a2 = this.pages[0]) == null ? void 0 : _a2.elements[0]);
|
|
24434
24642
|
if (!element) return false;
|
|
24435
|
-
this.addCustomElement(
|
|
24643
|
+
this.addCustomElement(name, element);
|
|
24436
24644
|
return true;
|
|
24437
24645
|
},
|
|
24438
24646
|
copyPage(index2) {
|
|
@@ -26381,13 +26589,13 @@ const useDesignerStore = /* @__PURE__ */ defineStore("designer", {
|
|
|
26381
26589
|
this.saveCustomElements();
|
|
26382
26590
|
}
|
|
26383
26591
|
},
|
|
26384
|
-
async addCustomElement(
|
|
26592
|
+
async addCustomElement(name, element, extraValues) {
|
|
26385
26593
|
var _a2, _b;
|
|
26386
26594
|
const { mode, endpoints, headers, fetcher } = getCrudConfig();
|
|
26387
26595
|
const template = applyModalExtraValues(
|
|
26388
26596
|
{
|
|
26389
26597
|
id: v4(),
|
|
26390
|
-
name
|
|
26598
|
+
name,
|
|
26391
26599
|
element: cloneDeep$1(element),
|
|
26392
26600
|
ext: {}
|
|
26393
26601
|
},
|
|
@@ -35210,7 +35418,7 @@ const _sfc_main$P = /* @__PURE__ */ defineComponent({
|
|
|
35210
35418
|
const renderBarcode = async () => {
|
|
35211
35419
|
if (!barcodeRef.value) return;
|
|
35212
35420
|
try {
|
|
35213
|
-
const jsBarcodeModule = await import("./JsBarcode-
|
|
35421
|
+
const jsBarcodeModule = await import("./JsBarcode-BO87HgIp.js").then((n) => n.JsBarcode);
|
|
35214
35422
|
const JsBarcode = (jsBarcodeModule == null ? void 0 : jsBarcodeModule.default) || jsBarcodeModule;
|
|
35215
35423
|
const content = resolvedContent.value;
|
|
35216
35424
|
if (!content) return;
|
|
@@ -35365,7 +35573,7 @@ const _sfc_main$O = /* @__PURE__ */ defineComponent({
|
|
|
35365
35573
|
});
|
|
35366
35574
|
const renderQR = async () => {
|
|
35367
35575
|
try {
|
|
35368
|
-
const qrcodeModule = await import("./browser-
|
|
35576
|
+
const qrcodeModule = await import("./browser-Ck0N2Y2e.js").then((n) => n.browser);
|
|
35369
35577
|
const QRCode = (qrcodeModule == null ? void 0 : qrcodeModule.default) || qrcodeModule;
|
|
35370
35578
|
const content = resolvedContent.value;
|
|
35371
35579
|
if (!content) {
|
|
@@ -36101,7 +36309,7 @@ const _sfc_main$K = /* @__PURE__ */ defineComponent({
|
|
|
36101
36309
|
return {
|
|
36102
36310
|
...base,
|
|
36103
36311
|
radar: {
|
|
36104
|
-
indicator: indicatorNames.map((
|
|
36312
|
+
indicator: indicatorNames.map((name, i) => ({ name, max: indicatorMax[i] })),
|
|
36105
36313
|
shape: radarShape,
|
|
36106
36314
|
center: ["50%", "55%"],
|
|
36107
36315
|
radius: "65%",
|
|
@@ -38736,7 +38944,7 @@ const usePrint = () => {
|
|
|
38736
38944
|
const svgToCanvas = async (root) => {
|
|
38737
38945
|
const svgs = root.querySelectorAll("svg");
|
|
38738
38946
|
if (svgs.length === 0) return;
|
|
38739
|
-
const { Canvg } = await import("./index.es-
|
|
38947
|
+
const { Canvg } = await import("./index.es-CZXhHw-0.js");
|
|
38740
38948
|
svgs.forEach((svg) => {
|
|
38741
38949
|
const parent = svg.parentElement;
|
|
38742
38950
|
if (!parent) return;
|
|
@@ -39324,7 +39532,7 @@ const usePrint = () => {
|
|
|
39324
39532
|
}
|
|
39325
39533
|
try {
|
|
39326
39534
|
const generatePageImage = async (page2) => {
|
|
39327
|
-
const domToImageModule = await import("./dom-to-image-more.min-
|
|
39535
|
+
const domToImageModule = await import("./dom-to-image-more.min-Ce2c21tO.js").then((n) => n.domToImageMore_min);
|
|
39328
39536
|
const domtoimage = (domToImageModule == null ? void 0 : domToImageModule.default) || domToImageModule;
|
|
39329
39537
|
const canvas = await domtoimage.toCanvas(page2, {
|
|
39330
39538
|
filter: (node) => {
|
|
@@ -39382,7 +39590,7 @@ const usePrint = () => {
|
|
|
39382
39590
|
cleanup = source.cleanup;
|
|
39383
39591
|
const { container, tempWrapper: wrapper } = await processContentForImage(source.content, width, height, true, source.getComputedStyleFn);
|
|
39384
39592
|
tempWrapper = wrapper;
|
|
39385
|
-
const jsPdfModule = await import("./jspdf.es.min-
|
|
39593
|
+
const jsPdfModule = await import("./jspdf.es.min-D9h_LgKD.js");
|
|
39386
39594
|
const jsPDF = (jsPdfModule == null ? void 0 : jsPdfModule.default) || (jsPdfModule == null ? void 0 : jsPdfModule.jsPDF) || jsPdfModule;
|
|
39387
39595
|
const pdf = new jsPDF({
|
|
39388
39596
|
orientation: width > height ? "l" : "p",
|
|
@@ -39794,7 +40002,7 @@ const usePrint = () => {
|
|
|
39794
40002
|
link.click();
|
|
39795
40003
|
document.body.removeChild(link);
|
|
39796
40004
|
} else {
|
|
39797
|
-
const jsZipModule = await import("./jszip.min-
|
|
40005
|
+
const jsZipModule = await import("./jszip.min-C3xLIq13.js").then((n) => n.jszip_min);
|
|
39798
40006
|
const JSZip = (jsZipModule == null ? void 0 : jsZipModule.default) || jsZipModule;
|
|
39799
40007
|
const zip = new JSZip();
|
|
39800
40008
|
await Promise.all(pageImages.map(async (dataUrl, index2) => {
|
|
@@ -40603,7 +40811,7 @@ const _sfc_main$v = /* @__PURE__ */ defineComponent({
|
|
|
40603
40811
|
},
|
|
40604
40812
|
emits: ["update:visible", "update:value", "close"],
|
|
40605
40813
|
setup(__props, { emit: __emit }) {
|
|
40606
|
-
const Editor = /* @__PURE__ */ defineAsyncComponent(() => import("./index-
|
|
40814
|
+
const Editor = /* @__PURE__ */ defineAsyncComponent(() => import("./index-sJJEP3Bf.js").then((m) => m.Editor));
|
|
40607
40815
|
const { t } = useI18n();
|
|
40608
40816
|
const { isDark: isDark2 } = useTheme();
|
|
40609
40817
|
const modalContainer = inject("modal-container", ref(null));
|
|
@@ -40745,14 +40953,14 @@ const el = (type, x, y, overrides = {}) => {
|
|
|
40745
40953
|
}
|
|
40746
40954
|
};
|
|
40747
40955
|
};
|
|
40748
|
-
const buildWizardTemplateData = (
|
|
40956
|
+
const buildWizardTemplateData = (name, inference, testData) => {
|
|
40749
40957
|
const { width: pageWidth, height: pageHeight } = PAPER_SIZES.A4;
|
|
40750
40958
|
const elements = [];
|
|
40751
40959
|
elements.push(
|
|
40752
40960
|
el(ElementType.LONG_TEXT, 120, 30, {
|
|
40753
40961
|
width: pageWidth - 240,
|
|
40754
40962
|
height: 60,
|
|
40755
|
-
content:
|
|
40963
|
+
content: name,
|
|
40756
40964
|
style: { fontSize: 28, color: "#111827", textAlign: "center", autoHeight: false }
|
|
40757
40965
|
})
|
|
40758
40966
|
);
|
|
@@ -40841,7 +41049,7 @@ const _sfc_main$u = /* @__PURE__ */ defineComponent({
|
|
|
40841
41049
|
const designerStore = useDesignerStore();
|
|
40842
41050
|
const templateStore = useTemplateStore();
|
|
40843
41051
|
const modalContainer = inject("modal-container", "body");
|
|
40844
|
-
const
|
|
41052
|
+
const name = ref("");
|
|
40845
41053
|
const jsonText = ref("");
|
|
40846
41054
|
const parseError = ref("");
|
|
40847
41055
|
const generating = ref(false);
|
|
@@ -40885,7 +41093,7 @@ const _sfc_main$u = /* @__PURE__ */ defineComponent({
|
|
|
40885
41093
|
};
|
|
40886
41094
|
const loadSample = () => {
|
|
40887
41095
|
jsonText.value = SAMPLE_JSON;
|
|
40888
|
-
|
|
41096
|
+
name.value = t("examples.inspection.name");
|
|
40889
41097
|
parseData();
|
|
40890
41098
|
};
|
|
40891
41099
|
const inferredLabel = computed(() => {
|
|
@@ -40895,13 +41103,13 @@ const _sfc_main$u = /* @__PURE__ */ defineComponent({
|
|
|
40895
41103
|
tables: inference.value.tables.length
|
|
40896
41104
|
});
|
|
40897
41105
|
});
|
|
40898
|
-
const canGenerate = computed(() => Boolean(inference.value &&
|
|
41106
|
+
const canGenerate = computed(() => Boolean(inference.value && name.value.trim() && !generating.value));
|
|
40899
41107
|
const handleGenerate = async () => {
|
|
40900
41108
|
if (!canGenerate.value) return;
|
|
40901
41109
|
const rawData = parseData();
|
|
40902
41110
|
if (!rawData || !inference.value) return;
|
|
40903
41111
|
const normalizedData = Array.isArray(rawData) ? { list: rawData } : rawData;
|
|
40904
|
-
const templateName =
|
|
41112
|
+
const templateName = name.value.trim();
|
|
40905
41113
|
generating.value = true;
|
|
40906
41114
|
try {
|
|
40907
41115
|
const templateData = buildWizardTemplateData(templateName, inference.value, normalizedData);
|
|
@@ -40960,13 +41168,13 @@ const _sfc_main$u = /* @__PURE__ */ defineComponent({
|
|
|
40960
41168
|
createBaseVNode("div", _hoisted_6$o, [
|
|
40961
41169
|
createBaseVNode("label", _hoisted_7$m, toDisplayString$1(unref(t)("dataWizard.nameLabel")), 1),
|
|
40962
41170
|
withDirectives(createBaseVNode("input", {
|
|
40963
|
-
"onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) =>
|
|
41171
|
+
"onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => name.value = $event),
|
|
40964
41172
|
type: "text",
|
|
40965
41173
|
class: "w-full px-3 py-2 border border-gray-300 dark:border-gray-700 bg-white dark:bg-gray-800 text-gray-900 dark:text-gray-100 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-blue-500",
|
|
40966
41174
|
placeholder: unref(t)("dataWizard.namePlaceholder"),
|
|
40967
41175
|
onKeydown: _cache[2] || (_cache[2] = withKeys(($event) => emit2("close"), ["esc"]))
|
|
40968
41176
|
}, null, 40, _hoisted_8$k), [
|
|
40969
|
-
[vModelText,
|
|
41177
|
+
[vModelText, name.value]
|
|
40970
41178
|
])
|
|
40971
41179
|
]),
|
|
40972
41180
|
createBaseVNode("div", _hoisted_9$i, [
|
|
@@ -41170,7 +41378,7 @@ const _sfc_main$t = /* @__PURE__ */ defineComponent({
|
|
|
41170
41378
|
delete finalValues.templateModalForm;
|
|
41171
41379
|
return finalValues;
|
|
41172
41380
|
};
|
|
41173
|
-
const buildModalInitialValues = (
|
|
41381
|
+
const buildModalInitialValues = (name, mode, templateId = null) => {
|
|
41174
41382
|
const configItem = getModalConfigItem(mode);
|
|
41175
41383
|
const configInitialValues = (configItem == null ? void 0 : configItem.initialValues) && typeof configItem.initialValues === "object" ? { ...configItem.initialValues } : {};
|
|
41176
41384
|
const savedValues = getTemplateModalSavedValues(templateId, mode);
|
|
@@ -41179,7 +41387,7 @@ const _sfc_main$t = /* @__PURE__ */ defineComponent({
|
|
|
41179
41387
|
...savedValues
|
|
41180
41388
|
};
|
|
41181
41389
|
if (!Object.prototype.hasOwnProperty.call(initialValues, "name")) {
|
|
41182
|
-
initialValues.name =
|
|
41390
|
+
initialValues.name = name;
|
|
41183
41391
|
}
|
|
41184
41392
|
return initialValues;
|
|
41185
41393
|
};
|
|
@@ -41554,9 +41762,9 @@ const _sfc_main$t = /* @__PURE__ */ defineComponent({
|
|
|
41554
41762
|
}
|
|
41555
41763
|
};
|
|
41556
41764
|
const handleModalSave = (payload) => {
|
|
41557
|
-
const
|
|
41765
|
+
const name = resolveModalName(payload);
|
|
41558
41766
|
const extraValues = resolveModalExtraValues(payload);
|
|
41559
|
-
if (!
|
|
41767
|
+
if (!name) return;
|
|
41560
41768
|
if (modalMode.value === "create") {
|
|
41561
41769
|
if (store.currentTemplateId) {
|
|
41562
41770
|
const currentTemplate2 = store.templates.find((tpl) => tpl.id === store.currentTemplateId);
|
|
@@ -41568,11 +41776,11 @@ const _sfc_main$t = /* @__PURE__ */ defineComponent({
|
|
|
41568
41776
|
if (!targetTemplateId.value) {
|
|
41569
41777
|
designerStore2.resetCanvas();
|
|
41570
41778
|
}
|
|
41571
|
-
store.createTemplate(
|
|
41779
|
+
store.createTemplate(name, void 0, extraValues);
|
|
41572
41780
|
} else if (modalMode.value === "edit" && targetTemplateId.value) {
|
|
41573
|
-
store.editTemplate(targetTemplateId.value,
|
|
41781
|
+
store.editTemplate(targetTemplateId.value, name, extraValues);
|
|
41574
41782
|
} else if (modalMode.value === "copy" && targetTemplateId.value) {
|
|
41575
|
-
store.copyTemplate(targetTemplateId.value,
|
|
41783
|
+
store.copyTemplate(targetTemplateId.value, name, extraValues);
|
|
41576
41784
|
}
|
|
41577
41785
|
};
|
|
41578
41786
|
const modalTitle = computed(() => {
|
|
@@ -43154,522 +43362,6 @@ const _sfc_main$q = /* @__PURE__ */ defineComponent({
|
|
|
43154
43362
|
const PreviewModal = /* @__PURE__ */ _export_sfc(_sfc_main$q, [["__scopeId", "data-v-97a5fbbf"]]);
|
|
43155
43363
|
const _imports_0 = "data:image/png;base64,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";
|
|
43156
43364
|
const _imports_1 = "data:image/x-icon;base64,AAABAAEAUFAAAAEAIADoZwAAFgAAACgAAABQAAAAoAAAAAEAIAAAAAAAAGQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVL/UANDu7AD///gArePmCtzw8Drn9fOB7/j3w/X7+eX5/Pr3/P78+fz+/fn8/vz5/P78+fz++/n8/fr5+/z6+fr9+/n7/fv5+v37+fr++/n8/vv6/P77+v3++/r8/fr6/Pz6+fz8+/n8/fv6/f78+v3+/Pr8/vv5+/76+fz+/Pr9/vz5/f/9+fz//Pn7/vz5/P78+f3+/Pn9//35/f/9+fz+/fn8/v35/f78+f3+/Pn9//35+/79+fr+/Pn7/vz5/P37+fz8+vn9/Pr5/f37+fz9+/n7/vv5/P77+fz+/Pn6/fz59vv6+PT6+OXw+fe95vbzh+D18D/F6ukO///+ANbx7QCBztQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK/i4AD2/PYAyOvoC+f3807w+fet9vr56fn8+/77/f3//P79//z9/f/8/f3/+/39//3+/f/+/v3//f79//3+/f/9/vz//f79//3+/f/9/vz//P79//7+/f/+/v3//v79//79/P/9/fz//f38//7+/P/+/f3//f39//39/f/8/f3//f79//7//f/+//7//v7+//7//f/9/v7//v7+/////v///////v7+//7//v/+//3//v/+/////v/+/v7//f79//7+/f///v3//vz8//79/P/+/v3//v79//39/f/9/f3//v79//z9/f/5/fz/+f38//n9/P/4/Pr+9/v56/P6+Lnp9/Niz+7rFv//+wC86ecAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADP7+8A////AOT28jfy+ves+Pz69Pj7+//4+/v/+fz8//z9/f/9/f3//f39//z9/f/7/f3//P39//39/f/8/f3//f79//7+/f/+//3//v/9//7+/f/+/v3//v/9//7//f/9/v3//f39//39/f/9/v3//f39//z9/f/9/f3//f79//3+/f/9/v7//v79//7+/f/+//7//v/9//7+/v/+/v7//v79//7+/v/+/v7//v79//7+/f/+/v3//f79//3+/f/9/f3//v38//3+/f/9/f3//v79//7+/f/9/v3//f79//3+/f/+/v3//f79//v9/P/6/Pz/+fz8//j8/P/4/Pz/+vz8//n8+/v0+vjC5PbxT5ne2wXX8u8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3/TzALro6Abp9/Ro9vz64fj8/P/5/Pz/+Pz8//j8/P/8/f3//f39//39/f/+/fz//f39//z9/f/9/f3//f79//z+/v/9/v3//P79//3+/P/9/fz//P39//z9/f/9/v3//v79//7+/f/9/f3//f39//39/f/9/f3//f39//39/P/9/v3//P39//z9/f/9/v3//v79//7+/f/+//3//v79//z9/f/8/f3//f79//7+/f/+/v3//v79//39/f/8/f3/+fz9//n8/f/8/fz//P39//39/f/9/v3//f39//z9/f/9/v3//f79//3+/f/9/v3//P38//v9/P/7/Pz/+vz9//n8/f/6/Pz/+/z8//v9/P/4/Prw6/f0hcjs6g/l9fEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANfx8QDT7+4J8fv5ffn9/PX4/fz/+Pz7//n8/P/6/Pz/+/38//3+/f/9/f3//f39//79/P/+/fz//v79//7+/f/9/v3//f7+//39/f/8/f3//P38//z9/P/7/fz//P38//v9/P/8/f3//f39//39/P/8/fz//f38//39/P/+/fz//f39//z9/f/8/f3/+/39//z9/f/9/v3//v79//3+/f/9/fz//f38//v9/f/8/f3//v79//7+/f/9/f3//v38//39/f/6/fz/+v38//z9/f/8/fz//P38//z9/f/6/fz/+v38//z9/f/+/v3//v79//3+/f/9/f3//f38//z8/P/9/f3//f39//z9/f/8/f3/+/39//v8/P/5/Pv88fr3mdry7RHa8+4AAAAAAAAAAAAAAAAAAAAAAAAAAACx4eUAx+rsB/H7+n75/v33+f39//n8/P/6/Pz/+vz8//v8/P/8/fz//f39//z9/f/9/f3//v79//79/P/9/f3//f79//z9/f/8/f3/+/z9//z9/f/9/v3//f38//z8+//6/Pz/+vz8//v9/f/8/f3//P39//v9/P/8/fz//Pz8//39/P/9/f3//P39//z9/f/8/f3//P39//3+/f/9/v7//f39//v8/P/6/Pz/+/38//v9/P/8/f3//f39//v8/P/8/Pz//P38//z9/f/8/f3/+/38//r8/P/6/Pz/+/39//v9/P/6/Pz//f79//3+/f/9/v3//v79//39/f/8/f3/+/z8//z9/f/9/v7//P39//39/f/9/f3/+/39//r8/P/5/fv88vr2l8vu6g3E6egAAAAAAAAAAAAAAAAALKC8AH/K1ALn9vZs+P799fn9/f/7/f3/+/39//r8/P/7/Pz/+/z8//r8/P/7/Pz/+/z8//z8/P/9/f3//P39//z9/P/8/f3/+/39//r8/P/7/Pz//f39//39/f/8/fz/+vz8//r8/P/8/fz//P38//3+/P/9/v3//Pz8//v8/P/7/Pz/+vz8//v8/P/7/f3//f39//3+/f/9/v3//f79//z+/v/8/f3/+/39//z9/f/8/fz/+v38//z9/f/8/fz//Pz7//z8/P/8/f3//P38//39/f/7/P3/+vz8//r8/P/8/f3/+/38//r9/P/8/fz//P79//3+/f/9/f3//f39//z9/f/7/Pz//Pz9//39/f/9/v3//f79//3+/f/8/f3/+/38//v9/P/6/fv67fj1e6fd3gNKv8AAAAAAAAAAAADg9/QA4vX1Ovb9/OX6/f3/+vz8//v9/f/7/f3/+/z8//v8/P/7/Pz/+/z8//v8/P/8/Pz//fz8//z9/P/8/f3//f39//3+/f/8/f3/+/z8//39/f/9/v3//v79//39/f/6/Pz/+vz8//z8/P/8/f3//f79//7+/f/8/f3/+/38//v8/P/7+/v/+/z8//39/f/+/v3//v/9//7+/f/8/f3//P39//z9/f/9/v3//f7+//3+/f/7/f3//P38//39/P/9/fz//f39//39/f/8/fz/+/38//v9/f/8/f3/+/39//39/f/9/v3//P39//v9/f/7/f3//P39//z9/f/8/f3/+/39//v8/f/9/f3//v79//7//f/+/v3//f79//z+/f/8/f3//P39//z9/P/5/Prr6Pf0RP///wAAAAAARsnWAMPr7A3x+vmw+f38//v9/P/9/f3//f39//z9/f/7/f3//P39//39/f/9/fz//P38//39/P/9/f3//f39//z9/f/7/f3//P39//z9/f/8/f3//v79//7+/f/9/v3//P38//r8/P/7/Pz//f39//7+/f///v3//v79//7+/f/+/v3//f79//79/P/9/f3//v79//7+/f/+//3//v79//z9/f/7/f3//f39//7//f/+/v3//v/9//7+/f/+/v3//v79//7//f/+/v3//f79//39/f/7/fz/+/z8//z8/P/8/Pz//P39//3+/f/8/f3//P39//3+/f/+/v3//f78//z9/f/7/f3/+/z9//3+/f/+/vz//v78//7+/f/9/v3//f79//7+/f/9/f3/+/39//z9/P/0+/i6yu3sEUDAzwD///wA4fb1Vff8/Pb6/Pz/+/38//z9/f/8/f3//P39//z9/f/9/v3////////////9//7//f79//7+/f/+/v3//f39//z9/f/8/f3//P7+/////////////f79//7+/f/9/v3/+/39//////////////////7//v///////////////v///v3//v79//////////////////7+/f/9/v3//P7+//7//////////////////v////////////////////////////////////7//f39//r8/P/7/Pz//P39//v9/P/8/fz//v///////////////////////v/7/fz/+vz8//r8/P/7/fz//v///////////////v/+//7//f/+//3//v/9//z9/f/8/f3//P38//n8+/jo9/Vb////ALbq7Qvw+vqx+f38//v8/P/8/f3//P39//z9/f/6/Pz//P39//T19P+2trX/q6yr/9vd3f/+/v7//v79//7+/f/9/v3//f39//7+/v/l5uX/q6up/6+urf/s7u3//v7+//7+/f/z9PT/tra1/6ysq//g4+P/8PPy/7Ozsv+trav/6Ojn//7//v/7/Pr/vb69/6Oko//Mzcz//f7+//z+/v/h4+L/pqen/5GSkv/AwcD/+/v7/8PEw/+srav/q6yr/6qrqf+trav/vb68/9/g3v/7+/v//P7+//v8/P/8/f3//P78//r7+v/Q0tH/np+e/5GSkP+xsrD/5ujn//v+/v/6/Pz/+/z8//n6+v/Kysn/np2c/6Ghn//h4+P//v/+//3//f/8/f3/+/39//v9/f/6/fz/+f78//P7+bPG7esM3PX1Off8/On6/Pz//f38//7+/v/9/v3//f39//v8/f/9/v7/4uTj/ycoKP8DAwP/lJaW///////+/v3//v79//7+/P/9/v3//////7i5uf8JCgn/GBgX/9LT0v/////////+/+Xm5v8pKir/BQUE/6yvrv/b3t7/Gxwc/wsMC/+/v7////////b29v9GRkf/AQEB/3l6ev/+////1NbW/zg5OP8DAwP/AAAA/09PTv/z8/T/SUpJ/wMDA/8CAwP/AAEB/wACAf8HCQj/IyQj/3Jycv/g4uP//v////3+/f/29/b/iYqJ/xoaGv8AAAD/AAAA/wUGBf87PDv/wcPD//3+/v/9/v7/oKKi/xcYF/8AAAD/AgIB/6qrq////////P79//v9/f/7/f3//P39//39/f/6/f3/+f376uX49T7o+vl5+P39/Pv9/f/+/v3//v7+//7+/v/9/v7//P39//7//v/j5eT/JSYm/wAAAP+Sk5P///////7+/P/9/fz//v38//z9/P//////tbe3/wYHB/8VFRT/0NLS//////////7/5Obl/yYnJ/8CAgH/q66u/9rd3f8YGRn/CQkJ/76+v///////9fb2/0VGR/8AAAD/ent7//////+HiIn/AAAA/xcXF/9wcnL/nJ2d//P08/9GRkf/AAAA/xwcHP9GR0f/QkNC/yQlJP8AAAD/AAAA/0hJSP/f4uH//v///5iZmv8JCQn/BgYG/1RWVf92dnX/KSop/wAAAP8yMjL/3N7e//T39v9BQ0P/AAAA/z4/P/+AgID/y8vL/////v/9/v3/+/39//39/f/8/f3//f79//v9/f/5/fz+7/n2gu37+rL5/f3/+/39//7+/f/+/v7//v7+//7+/v/8/f3//v/+/+Xm5f8mKCj/AAAA/5SVlv/////////9/////v////3//f37//////+2t7f/BgcH/xUVFP/Q0dH//////////v/j5eX/Jicn/wICAf+rrq7/19zc/xgYGP8JCQj/vL2+///////19/b/R0hI/wAAAP95e3r//////3Fycv8AAAD/VFRU//v9/f/+////9fb1/0RFRf8AAAD/ZWVl//j4+P/29vX/39/f/3R0dP8ICAj/AAAA/3Bycf/t8fH/PT9A/wAAAP9aW1v/8/T0///////GxsX/Gxsb/wEBAf+QkZH/7O/v/y0uLv8AAAD/np+f///////+/v3//v79//7+/f/+/v3//v79//z+/f/8/f3//P39//n9/P/y+ve88vz51Pj9/P/7/f3//f79//7+/v/+/v3//f79//z9/f////7/5ubl/yYoKP8AAAD/P0BA/2lpaP9sbWv/iIiH/8jIx//6+vn//////7i4uP8GBwf/FRUU/9HT0//////////+/+Tm5v8mJyf/AgIA/6utrf/X29v/FxgX/wkJCf+9vsD///////b4+P9JSUn/AAAA/3p8e///////bXBw/wAAAP9YWFj/+vz8//z9/P/09fT/Q0VE/wAAAP9paWn//v////7+/f//////9vb1/2BgX/8AAAD/JiYl/8PExP8jJSX/AAEA/52goP/+/////f/9//j59/9GRkb/AAAA/3Jzcv/r7e3/LC0t/wABAP+lp6b///////7+/f/+/v3//v79//7+/v/9/v7//v79//7+/f/9/v3/+/38//b7+Nj2/Prm+f39//z9/f/+/v7//v/9//7+/f/9/f3//Pz8//7//v/l5uX/Jicn/wAAAP8AAAD/AAAA/wAAAP8AAAD/GBgY/4+QkP/7+/v/urq6/wgJCP8NDQz/vL2+////////////5ufm/yYnJ/8CAQD/rK6t/9Xa2v8WFxb/CAgI/7i6u///////+Pr4/0ZHR/8AAAD/enx8//////9vcnL/AAAA/1dXV//7/fz//P79//P19P9DRkX/AAAA/2doZ//9//7//v79//39/f//////tLW0/wcHBv8PDw7/r66u/ywsLP8AAAD/ioyM//3/////////8PHw/zg4Of8AAAD/f4CA/+/x8f8uMDD/AAAA/6Wop////////v79//7+/f/9/v3//f7+//7+/v/+/v7//f78//3+/f/8/fz/9/z65/P8+vf7/fz//P39//3+/f/+/v3//v78//39/P/7/Pz//f7+/+Tl5P8mJyf/AAAA/11eXv+fn5//lJSU/09PT/8DBAP/EBAQ/76+vv/AwMD/CQsK/wABAP84OTj/l5iX/8DAv//k5eX/Jygo/wICAf+tsLD/1NnZ/xUXFv8BAQD/W1xc/9fY2P+ys7P/Gxsb/wAAAP+Jior/6uvr/15gYP8AAAD/TU1N/9HU0//g4+L/9Pb1/0VGRv8AAAD/Zmdm//3//v/9/v3//P38///////DxMP/DAwL/wsLCv/Av7//Y2Nj/wAAAP8vMC//vsLC/+Hi4f+IiIj/CQkJ/wkJCf+wsbH/0dPS/ycoKP8AAAD/jY+O/9ra2v/w8vL//f79//7+/f/+/v3//v79//7+/f/9/v3//v79//z9/f/3/Pv38/v5+fv9/P/7/Pz/+/z8//z9/f/9/f3//P38//v9+//+//7/4+Xl/yYnJ/8AAAD/l5ma////////////6uvq/zc3N/8AAAD/dnZ2/8DAwP8GCAf/CQoJ/xQVFP8AAAD/SkpJ/+Dh4f8lJib/AAAA/62vr//T2Nj/ERMT/wABAf8NDg3/FxgY/w0NDf8AAAD/FhYW/8fIyP99f3//CQkJ/wABAP8ICgj/FBQU/2lqaf/19vb/RUZG/wAAAP9mZ2b//P/+//3+/f/8/fz//////5udnf8DAwP/FBQT/9PU1P/MzMv/Jign/wAAAP8REhH/ISEg/wMDAv8EBQT/bnBv/+Hj4v89Pj7/BAQE/wAAAP8ODg7/HBwb/7u9vP///////v79//7+/f/+/v3//v79//3+/v/+/v3/+/39//f9/Pjz+/n6+vz7//r8/P/8/f3//f39//3+/f/9/fz//P38//7//v/j5uX/JSco/wAAAP+XmJr////////////09PT/Pj8//wAAAP9sa2z/y8vL/0JDQv9YWFj/q6ur/1FSUv9qa2n/5ubm/15eXv9CQkH/w8PD/9zf3/9KSkr/SElI/5aXlv9ISUj/KCko/z9AP/+lqKf/+/z8/5KUlP8dHR3/AQEA/xYWFf89PDz/hoWF//b39/9ERkb/AAAA/2ZoZ//////////////////b3Nv/OTk6/wAAAP8+Pz//7vDw/////v/MzMz/YmNi/y0uLf8iIyP/P0A//5OVlP/x8/L/8fLx/2JkY/8ODg7/AQEA/yssLP9FRUX/x8jH/////v/+/v3///79//7+/f/+/v3//v7+//z9/f/7/f3/9/z8+PP7+fr6+/v/+vv7//z8/P/9/fz//f38//z9/P/9/fz////+/+Tm5f8lKCf/AAAA/3Fycv+9vb3/tra2/3Jycf8KCgr/AgMC/5mbm//7+/v/8fLy//P19f/9////9/j3//Hx8f/6+vn/vb28/6qqqf/x8fH//Pz8//Pz8//z8/P//v79//X19P/o5+b/8fDv///////+/v3/+vr6/25vb/8AAAD/UVFS//Hy8v/4+Pf/9vf2/0VGRv8AAAD/R0dG/6+wr/+traz/iYmI/zQ0M/8AAAD/DxAP/6mrq//+//7//P38//7////7+/v/6erq/+Pk5P/y8/L//v////7//v/+/v7/6erq/y8xMf8AAAD/paal//b39//7+/r//v79//7+/f/+/v3//v7+//7+/v/9/v7//P39//v9/f/3/Pv38/z6+vr8/P/5+/v/+/z8//z9/P/9/fz//f38//39+/////7/4+Tj/yEkI/8AAAD/AgMC/wUHBf8DBQP/AAAA/wECAf9MTU3/5efn//3+/v/9/f3//f7+//3+/f/9/f3//////9ra2v8jIyP/CQoJ/6qsrP///////v/+///+/f/+/v3///79//7+/f/9/fz//f78//7+/f//////gYKC/x0dHf9paGn/+/z8//7//v/39/b/REVF/wAAAP8AAAD/AQEA/wAAAP8AAAD/AAAA/x8gH/+am5r/+fr5//39/P/9/f3//f79//7+/f////7//////////v/8/v3//f79/////v/w8fD/S01N/x8gH/+ztLP///////7+/f///v3///79//7+/v/+/v3//v79//3+/f/7/P3/+vz8//j8+/j0+/r6+vz8//n8/P/6/Pz//Pz8//z9/P/9/fz//f38/////v/q6+v/YWFh/0dGR/9HSEf/R0dH/0ZHRv9WV1b/k5WU/+fo5/////7//v/9//3+/f/+/v3//f78//z9/P/+//7/29va/ykpKf8UFRX/tri4///////+/v3///78///+/f/+/v3//f78//z+/P/9/vz//f79//3+/f/r7Ov/3N7e/+bo6P/9/v3//v/9//n6+f99fXz/SEdI/0lISP9JSUn/SkpK/1dYWP+Gh4b/0tPS//3+/f/+/fz//f39//7+/f/+/v3//v/9//7//f/+/v3//v/9//7//f/+/v3//v79//z8+//l5ub/3d/f//Lz8//+/v3///79//7+/f/+/v3//v79//7+/f/9/v3//P39//z9/f/6/Pz/9/z6+fP7+fn7/Pz/+vz8//v8/P/8/Pz//Pz8//39/f/9/fz//v79//39/f/4+Pj/9/j3//j49//4+Pj/+Pj3//v8+//////////+//7+/f/+/v3//v79//7+/f/+/vz//P39//v9/f/7/Pz/0dLR/8nKyf/6+vr//v7+//7+/f/+/vz//v79//7+/f/+/v3//f78//7+/P/9/vz//P39/////v///////v////7+/f/+//3//v/9//r6+v/4+Pj/+fn5//n5+f/5+fn//Pz8/////////////v79///+/f///v3//v79//3+/v/+/v3//f79//7+/f/+/v3//v79//7//f/+/v3//v79/////////////v/+//7+/f///v3//v79//7+/v/+/v3//v38//39/f/8/f3//P39//v9/f/3/Pv58vv5+fz9/P/7/Pz//Pz8//z8/P/8/f3//f39//3+/P/+/v3//f39//3+/f/+/v3//v/9//7//f/+//3//v79//7+/f///v3///79//7+/f/+//3//f79//3+/f/9/f3//f39//z9/f/////////////+/f/+/v3//v79//3+/f/9/v3//f39//39/f/9/f3///38//7+/f/9/v3//f78//7+/f/+//3///79//7+/f/+//3////9/////v////7////+/////v/+//3//v79//7//f/+/v3//v79//7+/f/+/v3//f39//39/f/7/f3//P39//7+/f/+/v3//v79//3+/f/+/v3//v/9//7+/f/+//3//f79//7//f/+/v3//v7+//7+/f/9/f3//f39//z9/f/8/f3/+/39//f9+/jy+/r5+/z8//v8/P/9/fz//f38//39/f/9/f3//f79//7+/f/9/fz//f37//z9/P/9/vz//f78//79/P///vz//v79//7+/f/+/vz//f79//3+/f/9/vz//v79//3+/f/8/f3/+/z8//z9/P/+/v3///79///+/f///v3///79//7+/f/+/v3//v79///+/f///vz//v78//7+/f/+/vz//v78//7+/f///v3//v79///+/f///v3///79///+/f/+/v3///79///+/f///v3///79//7+/f///v3//v39//39/f/9/v3//P39//v8/f/8/f3//f39//79/f/9/v3//f79//7//f/+/v3//v79//7//f/+/v3//v/9//3//f/8/v3//f39//39/f/+/v3//f39//r8/P/7/Pz/+P38+fL7+ff6/Pz/+/z8//z9/P/9/v3//f79//7+/f/+/v3//f79//3+/f/+/f3//f39//z9/P/9/f3//f39//79/f/9/f3//v79//3+/f/9/f3/+/38//z8/P/9/f3//P39//n8/P/6/Pz//P39///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+///9/f/+/fz//f39//3+/f/9/f3/+/z8//z9/P/9/fz//v79//7+/f/+/v3//v79//7+/f/+/v3//v79//3+/f/9/f3//f39//39/f/9/v3//f39//39/f/9/f3/+/z8//r8/P/4/Pv48/v59vz8/P/7/Pz/+/38//39/f/9/f3//v38//79/P/9/v3//f39//79/f/9/f3//v79//7+/f/+/v3//v79//79/f/9/v3//f79//z+/f/7/Pz//Pz8//z9/f/7/fz/+vz8//n8/P/2+fj/xMXE/6usq/+srKv/rKyq/6qpqP+np6b/qKem/6qqqP+rqqn/qqmo/6mpp/+qqqj/qqup/6urqv+rq6r/q6uq/6qqqf+rq6r/q6up/6urqf+rq6r/rKyq/6ysq/+qqqn/qKin/7i4t//y8vL//v79//79/P/9/fz//f38//39/P/8/Pz//f38//39/P/+/fz//v79//7+/f/9/v3//v79//79/f/9/fz//Pz8//z9/P/9/f3//v79///+/f/+/v3//f79//39/f/8/fz/+/39//f8+/j0+/r4/P39//r8/P/7/Pz//Pz8//39/P/8/Pz//P38//39/f/9/f3//f39//7+/f/+/v3//v79//7+/f/+/v3//f79//39/P/9/f3//f39//z8/P/9/fz//f39//z9/f/8/fz//P7+/8TGxv8ZGxv/AQIB/wACAP8AAgD/AAIA/wABAP8AAQD/AAIA/wACAP8AAgD/AAIA/wACAf8AAgH/AAIB/wACAf8AAgH/AAEA/wABAP8AAQD/AAEA/wABAP8AAgH/AAIB/wABAP8AAQD/CwsK/6Gio////////f38//z9/P/8/fz//P38//z9/f/9/f3//P39//39/f/9/f3//v79//3+/f/9/f3//P38//z9/P/8/fv//Pz7//39/P/+/v3///79//7+/f/+/v3//f79//z8/P/7/fz/9vz7+PX8+/j7/f3/+vz8//z9/P/8/fz//Pz8//z8+//8/fz//v38//79/f/+/v3//v79//3+/f/8/f3//f79//7//f/9/v3//f38//7+/f/9/v3//f39//39/P/+/f3//f39//39/P//////pqem/wACAv8+P0D/dnZ2/3R2df9zdnX/cnV0/3J2dP9zdnX/dHd1/3R2df91d3b/dXd2/3R2df9zdnT/dHZ1/3R2df91dnb/dnd2/3Z3dv90dnX/cnV0/3F1dP9xdXT/dHZ1/0hKSv8AAAD/g4OD///////9/vz//P38//z9/f/8/f3//P39//39/f/9/v3//f39//39/f/9/v3//f79//z9/P/7/Pz/+/38//z9/P/9/Pv//v38//7+/f/+/v3//v79//7+/f/8/f3/+/z8//r8/P/3/Pv39f37+fv9/f/8/f3//v38//39/P/8/fz//f38//78/P/+/fz//v78//79/P/+/vz//v79//z9/f/8/f3//v79//7+/f/+/v3//v/9//7+/f/9/f3//P38//39/f/8/f3//P38//////+mpqX/AAEB/4qLjP////////////////////////////////////////////////////////////////////////////////////////////////////////////7/////////nZ+f/wAAAP+Dg4T///////7+/f/8/fz//P38//39/P/9/v3//v79//3+/f/9/f3//f39//79/f/+/fz//f38//z8/P/7/Pz/+/z8//38+//9/fz//v79//7+/f/+/v3//f79//z9/f/7/Pz/+/z8//f8+/b1/fz5+/39//v9/f/9/f3//f39//z9+//9/fz//v38//79/f/+/fz//v38//7+/P/+/v3//f79//3+/P/+/v3//v79//79/f/9/f3//v79//3+/f/9/v3//f79//3+/f/9/fz//////6enpv8BAAD/iYqL//////////7/+Pj3/+Pk4v/h4eD/4eHg/+Hh4P/h4eD/4eHg/+Hh4P/h4eD/4ODf/9/g3v/g4N7/3+De/+Dg3//f4N7/3t/e/97e3f/x8/P//P38//////+doKD/AAAA/4SEhf///////f79//z9/f/9/fz//v78//7+/f/+//3//f79//z8/P/8/fz//P38//z8/P/7/Pz//P38//z9/P/8/f3//v39//7+/f/+/v3//v79//7+/f/+/v3//P39//r8/P/6/Pz/+P389/X9/Pn9/v7//f39//39/f/9/fz//P37//39+//9/fz//f39//79/P///fz//v38//3+/P/8/f3//v79//7+/f/9/v3//v79//7+/f/+/v3//v/9//7//f////7//v/+//z9/f//////pqem/wAAAP+IiIn///////////+tra7/JCQl/x0eHf8cHhz/HR8d/x0fHf8cHh3/HB4c/xweHP8bHRz/Gxwb/xsdG/8bHRv/Gx0b/xsdG/8bHBv/HBwc/5GUk//+/////////56hof8AAAD/goOE//7////+//7//f79//7+/P///vv//v38//7+/f/9/f3/+/z8//z8/P/7/Pz/+/z8//v8/P/9/fz//f39//39/f/9/f3//f79//7+/f///v3//v79//3+/f/8/f3/+vz8//n9/P/4/fz39f38+P7+/v/9/v3//f39//39/P/8/fz//Pz8//z9/P/8/fz//v38//79/P/9/vz//f38//z9/P/9/fz//f78//39/f/+//3//v/9//7+/f//////+vz7//Pz8f/w8e//7u/u//Ly8v+en5//AQEA/4iIif/////////+/9XV1P98e3r/c3Rz/3R2df90d3b/dHd2/3V4dv91eXf/dXh3/3Z5d/92eHj/dnp4/3Z5d/91eHf/dnl4/3Z5eP95e3r/xsfG//7//v//////n6Gh/wAAAP97e3v/8vPz//Hx8P/x8fD/8fLv//f39f///v3//v78//7+/f/8/f3/+/z7//v8+//6+/v/+vz8//z8+//9/fz//P39//v9/P/8/fz///79///+/f///v3//f79//39/f/7/Pz/+f38//f8+/b0/Pv4/v/9//3+/f/9/f3//f39//z8/P/8/Pz//P39//v9/f/9/f3//f79//3+/f/9/vz//f39//3+/f/9/v3//f39//3+/f/8/f3//f7+/8/Qz/9jY2P/PDw7/zk6OP85OTj/OTo5/yUlJf8AAAD/hoiJ///////+//3//////////////////////////////////////////////////////////////////////////////////////////////////v79//////+goqL/AQEB/x8fHv88PDv/Ozs5/zs7Ov87PDv/TU1M/6anp//5+vn///78//39/f/8/Pz//Pz8//z8+//7/Pv//P38//z9+//7/Pz//P38//3+/f/+/fz///38//7+/P/+/v3//f39//z8/P/6/Pz/9vz78/P8+vn+/v3//v79//39/f/9/f3/+/z8//v8/P/7/f3//P39//39/f/9/v3//f79//z9/f/9/v3//v79//7+/f/9/f3//f79//3+/v/U1tb/Li8v/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP+Fh4j//v////7//v/Iycj/YmJh/11dXP9eXlz/Xl5c/15eXf9eXl3/XV1c/15eXf9dXl3/XF1c/11dXP9dXVz/Xl9d/11eXf9cXFv/XV1d/7u7uv////7//////5+iof8BAQH/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/EBAR/6iqqv/+/v7//f38//z9/P/8/Pz//Pz8//z9/P/9/fz//P39//v8/P/9/vz//v79//39/P/9/fz//f38//39/P/9/f3//Pz7//r8+//2+/r08/36+f39/f/8/f3/+/39//z8/P/8/fz//Pz8//39/f/9/v3//v79//7+/f/+/vz//v79//7+/f/+/v3//f79//3+/f/+//3//////4WHh/8AAAD/AAAA/wAAAP8AAAD/AAEA/wABAP8AAQD/AAAA/4SGhv/+/////////66urv8yMjL/Ly8v/y4vL/8tLy7/LS8u/y0uLv8tLy7/LS8u/y4wLv8uLy7/LjAv/y8xMP8vMS//Li8v/y0vLf8tLS3/oKKh////////////n6Ki/wABAP8AAAD/AAAA/wAAAP8BAQH/AAAA/wAAAP8AAAD/R0hH//L09P/8/fz/+/z8//39/f/9/fz//f38//39/P/7/Pz//P39//3+/f/9/v3//f39//3+/f/+/v3//f38//39/P/7/Pv/+fz7//b7+fTz/Pr5/P38//z9/f/9/f3//f39//z9/f/9/fz//v79//7+/f/+/vz//v78//39/f/+/v3//v79//3+/f/9/v7//v79//7//f//////a2xs/wAAAP8AAAD/AAAA/wABAf8AAQH/AAEB/wIEA/8TExP/kJGR//7////9/v3/+vv6/+/v7v/t7u3/7e7t/+zt7P/s7ez/7O7t/+zu7v/s7u7/7e7u/+3u7f/t7u3/7e7u/+3v7v/t7+7/7e7t/+3u7f/6+/r//v/9//////+oqqr/FhYW/wYGBv8AAAD/AQEB/wABAP8AAAD/AAAA/wAAAP8vLy//6Ovq//3+/f/8/f3//f79//39/f/8/fz//Pz8//r8/P/8/Pz//f39//39/P/9/fz//v38//7+/P/9/fz//f38//v8+//4/Pv/9vv58vP7+vn8/Pv//f38//39/f/9/vz/+/39//z9/f/+/v3//v79//39/P/8/fv//P38//39/f/+/v3//f7+//7+/v/+/v3//v79//////9sbGz/AAAA/wEBAf8AAQD/AAEB/wABAf8AAAD/FhcW/7e5uP/u7u7//////////////////////////////////////////////////////////////////////////v////////////////////////////////////////////Hx8P/Ozs3/NDQz/wAAAP8AAQH/AAEA/wABAP8AAAD/AAAA/y8wL//n6+r//f79//39/f/8/f3/+/39//z8/P/9/fz//f39//79/f/+/v3//f38//38/P/8/Pz//f38//39/P/8/Pv/+/z7//n8+//2+/ny8/z6+fv8/P/7/Pz//P39//z9/f/8/f3//v38//7+/f/9/v3//P39//39/P/9/fz//f38//7+/P/9/v3//f79//7+/f/+/v3//////2xsbP8AAAD/AQEB/wABAP8AAQD/AAEB/wABAP8ODw7/YmNi/3BxcP9vcG//bm9u/25vbv9ubm3/bGxs/2xsbP9sbGz/bGxr/21tbP9sbWz/a2xr/2tsa/9ra2r/ampp/2pqaf9ra2r/a2xr/2tsa/9sbGv/bW5t/25ubf9tbm3/b29v/21tbf8cHBz/AAEA/wABAf8AAQH/AAEB/wABAf8AAAD/MDEw/+fr6//8/v3//f39//39/f/8/f3//f39//39/f/9/v3//f39//39/P/9/fz//P38//v8+//8/fz/+/38//r8/P/7/Pz/+vz7//b7+fTz/Pr5+/38//v8/P/8/f3//f79//79/f/9/vz//v79//z9/f/8/f3//P38//z8/P/9/fv//f78//7+/f/+//3//v/9//7//f//////a2xs/wAAAP8BAQH/AAEB/wABAf8AAQD/AAEB/wABAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAQH/AAEB/wABAf8AAQH/AAEB/wAAAP8xMTD/6Ozr//7+/v/9/f3//v39//3+/f/9/vz//f78//3+/P/8/f3//P39//39/f/7/fz//P38//z9/P/8/fz/+/38//v8/P/6/Pz/9fz69fX9/Pr8/f3//P39//39/f/+/v3//v79//39/f/9/f3//f78//39/f/9/f3//f38//39/P/8/f3//P79//3+/v/+//3//v/9//////9sbm7/AAAA/wEBAf8BAQH/AAAA/wABAP8AAQH/AAAA/wABAP8AAQD/AAEA/wABAf8AAQH/AAEA/wAAAP8AAQD/AAAA/wAAAP8AAAD/AAAA/wABAP8AAQD/AAEB/wABAf8AAQH/AAEB/wABAf8AAQH/AAEB/wABAf8AAQH/AAEA/wAAAP8AAQH/AAEA/wABAP8AAgD/AAIA/wACAf8AAQH/AAAA/zEyMf/p7Ov//v/+//7+/f/+/f3//v79//3+/P/+/vz//v38//79/P/9/v3//v79//7+/f/+/fz//v38//7+/f/9/v3//P39//r8/P/2/Pv29P38+vv9/P/9/f3//v79//7+/f/9/v3//f39//39/f/9/v3//P39//z9/P/8/fz/+/z8//r8/P/6/f3//P7+//7//v/+//3////+/2tsbP8AAAD/AAAA/wABAP8AAAD/AAAA/wABAP8AAQD/AAEA/wABAP8AAQD/AAEA/wABAf8AAQH/AAEA/wABAP8AAQD/AAEA/wABAP8BAQH/AAEB/wACAf8AAgH/AAEB/wABAf8AAQH/AAEB/wACAf8AAgH/AAEB/wABAf8AAQH/AAEA/wABAP8AAQD/AAAA/wAAAP8AAAD/AAEB/wABAf8AAAD/MDEw/+jr6/////7//v79//3+/f/9/v3//P38//z9+//9/fz//P38//z9/P/9/v3//v39//79/P/+/vz//v79//3+/f/+/v3/+/39//b8+/Tz/fv6+f38//v9/f/9/v3//v79//7+/f/+/v3//f39//39/f/8/f3//P38//39/f/9/f3//P39//3+/f/+/v7//f7+//3+/f////7/amtr/wAAAP8AAQD/AAEA/wABAP8AAQD/AAEA/wABAP8AAQD/AAEA/wABAP8AAQD/AAEA/wABAP8AAQH/AAEB/wACAP8AAQD/AAEB/wACAf8AAgH/AAIB/wACAf8AAgH/AAEB/wABAf8AAgH/AAIB/wACAf8AAgL/AAIB/wACAf8AAQD/AAAA/wAAAP8SExL/R0dH/yMjI/8AAQH/AAEA/wAAAP8uLy//5urq//7//v/+/v3//v39//z9/f/8/fz/+/38//z9/P/7/f3//P39//7+/f/+/v3//f79//7+/f/+/v3//v79//7//f/8/f3/9/z68/P9+/r6/fz/+/38//z9/f/8/v3//P79//z9/f/7/P3/+vz9//v9/f/7/f3/+/39//39/f/9/f3//P39//3+/f/9/v3//f79//////9rbGz/AAAA/wABAP8AAQH/AAEA/wABAP8AAQH/AAEB/wABAP8AAQD/AAEA/wABAf8AAQH/AAIB/wABAf8AAgH/AAIB/wACAv8AAgH/AAIC/wACAv8AAgH/AAIB/wABAf8AAQD/AAEB/wACAf8AAgH/AAEB/wACAf8AAgL/AAIB/wABAP8AAAD/CgsK/52fn//39/f/ysrK/yMjI/8AAAD/AAAA/y4vL//m6+v//v/+//3+/f/8/f3/+/z8//r8/P/6/Pz/+/z8//z9/P/9/f3//f79//3+/f/8/f3//P39//3+/f/+/v3//v79//z9/f/4/Pvy9Pz7+fv9/f/8/f3//f38//39/P/8/f3//Pz8//v8/P/8/Pz//f38//z9/P/7/f3//f39//39/f/9/f3//f79//7+/f/+/v3//////2pra/8AAAD/AAEA/wABAf8AAQH/AAEB/wABAf8AAgH/AAIB/wABAP8AAQD/AAEB/wABAf8AAQH/AAEA/wACAf8AAgL/AAEB/wACAf8AAgL/AAIB/wACAf8AAgH/AAEB/wABAf8AAgH/AAIB/wACAf8AAgD/AAEB/wABAf8AAQH/AAEA/wAAAP8YGBf/1dfX///////3+Pf/P0BA/wAAAP8AAAD/Li8u/+br6//+//7//f79//z8/P/8/Pz/+vz8//n7/P/7/Pv//fz7//79/P/+/v3//v79//3+/f/9/v3//f79//7//f/9/v3//P39//j8+/D1/Pv4/P39//z9/f/7/f3/+vz8//z9/f/9/f3//Pz8//z9/P/+/vz//f39//39/P/9/f3//f39//3+/f/+/v3//v79//7+/f/+////Z2pq/wAAAP8AAQD/AAEB/wABAP8AAgH/AAIB/wACAf8AAgH/AAIB/wABAf8AAQH/AAEB/wABAf8AAQH/AAEB/wACAf8AAQH/AAEB/wABAf8AAQH/AAEB/wABAf8AAgH/AAIB/wACAf8AAgH/AAIB/wABAP8AAQH/AAIB/wABAP8AAQD/AAAA/wMEA/9kZWT/x8jH/5GRkP8PDw//AAAA/wAAAP8uLy7/5uvr//z+/v/9/f3//f39//z9/P/7/Pv/+/z7//v8/P/8/Pz//v79//7+/f/+/v3//P39//3+/f/+//3//f79//39/f/8/f3/+Pz78PX8+/f9/v3//P39//r8/f/6/Pz/+/z8//z9/P/9/fz//f38//7//f/9/v3//f78//39/P/+/fz//f79//3+/v/+/v3//v79//////9wcnH/AAAA/wABAf8AAQD/AAEA/wABAP8AAQH/AAEB/wABAf8AAQH/AAEB/wABAf8AAQH/AAEB/wABAP8AAQH/AAEB/wACAf8AAQH/AAEB/wABAf8AAQH/AAEB/wABAP8AAQH/AAEB/wABAP8AAQD/AAEA/wABAf8AAgD/AAEA/wEBAf8AAAD/AAAA/wEBAf8PDw//BQUF/wAAAP8AAAD/AAAA/zk6Of/s8PH//P7+//3+/f/7/f3//P39//z9/P/8/Pz//Pz8//v8/P/9/v3//f79//3+/f/8/v7//P7+//3+/f/7/Pz/+vz8//r9/P/3/Prx8/z6+P3+/f/9/v3//P39//v8/P/8/fz//f38//38/P/+/fz//v/9//7+/f/9/fz//v38//7+/f///v3//v79//7+/v/+/v3//////7CxsP8LDgz/AAEA/wABAP8AAAD/AAEA/wAAAP8AAQD/AAEA/wABAP8AAQD/AAEA/wABAP8AAQD/AAIA/wACAP8AAgH/AAEA/wACAP8AAQD/AAEA/wACAP8AAQD/AAEA/wABAP8AAQH/AAEA/wABAP8AAQD/AAEA/wABAP8AAQD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/fX9///n9/f/8/fz//v79//z+/f/8/f3//f39//z9+//8/Pv//Pz8//z9/f/8/fz//f78//7+/f/+/v3//f39//v9/f/5/Pz/+fz8//b8+fP0+/r5/v7+//3+/f/8/f3//f39//z9/f/9/fz//f37//79/P/+/fz//v78//79/P/9/f3//v79///+/f/+/v3//f79//39/f/+/v7/+Pj4/4uMi/8gIiD/CgsK/wkKCf8JCgn/CAoJ/wgKCf8JCQn/CAoJ/wkKCv8ICwn/CAsK/wkMCv8JDAr/CAsK/wgLCv8JCwv/CQsK/wkLCv8JDAr/CQsK/wkLCv8JCgr/CQoJ/wkLCv8JDAr/CQsJ/wkKCf8JCgn/CQoJ/wkJCf8JCAj/CQgI/wgICP8IBwf/CAgI/wgICP8ICAj/FBUV/2JjY//m6Oj//P7+//z9/f/+/v3//v79//3+/f/9/f3//Pz7//z8+//8/fz//P39//z8/P/9/fz//f38//39/P/9/v3//P39//r8/P/5/Pz/9/z68/X7+vn+/v7//v79//39/f/9/f3//f39//79/P/+/fv//f38//3+/f/+/fz///38//7+/f/+/v3//f79//3+/f/8/f3//f39//3+/f/+/v7//f38/9rb2/+9vr7/u7y8/7y+vf+8vb3/vL28/7y9vf+9vr7/vb69/7u8vP+7vLz/u7y8/7u8u/+7u7r/u7u6/7q8u/+7vLz/u728/7u9vP+7vbz/vL28/7u8vP+7u7v/vLy8/7u9vP+7vLv/u7y7/7y8vP+8vr3/vL29/7y7u/+8u7v/urq6/7m5uf+5urr/urq6/7m5uP/Nzs3/9vb2//7//v/+//3//v/9//7+/f/+/v3//v79///9/P/+/Pz//fz7//78+//9/f3//f79//3+/f/8/f3//P39//3+/f/8/f3/+vz8//v8+//3/Pr19Pv6+f3+/f/9/v3//f39//39/P/8/Pv//fz7//39/P/9/v3//v79//79/P/+/fz//v38//7+/P/9/f3//P39//v9/f/9/v3//v79//7+/f/+//3/////////////////3d/e/21ubf9naGf/aWtq/2hpaP9paWn/0NHR/////////////////////////////////////////////////////////////////////////////////////////////////+3t7f94eXn/ZmZm/2doaP9naGf/ZGVk/8DBwf/////////////////9/v3//v79//7//f/+/v3//v/9//7+/f/+/v3//v38//39/P/+/Pv//fz7//39/f/+//3//v79//3+/f/8/f3//f39//v9/f/6+/v/+/z7//f7+vT0+/n6/f38//3+/f/9/f3/+/z8//v8+//8/Pv//P38//39/f/+/v3//f38//z9+//9/fz//f39//39/f/9/fz/+/38//z9/P/+/v3//v79//7+/f/+/v3//v79///////FyMf/CgsL/wAAAP8AAAD/AAAA/wICAf+wsbH////////9/P///v3//v79//7+/f/+/v3//v79//7+/f/+/v3///79//7+/f/+/v3///79///+/P/+/v3//v79//7+/f//////29vb/xcZGf8AAAD/AAAA/wAAAP8AAAD/lZaW///////+/vz//f39//3+/f/9/v3//f79//7+/f/+/v3//f79//7+/f/9/f3//f79//79/P/9/fz//f39//7+/f///v3//f79//39/f/9/f3/+vz8//n7+//5/Pv/9/v68/P6+fn7/fz//f79//39/f/7/Pz//Pz7//z8/P/8/fz//P38//3+/f/9/f3//P38//v9/P/+/fz//f38//z8/P/6/Pz/+/z8//3+/f/+/v7//f79//3+/f/+/v3//////8/Qz/8SExP/AAAA/wAAAP8AAAD/BgYG/7Cysv///////v39//7+/f/9/v3//f79//z9/f/9/v3////9///////////////+//7//f/+/v3//f38//z9/f/9/f3//f78///////a29r/Ghwc/wAAAP8AAAD/AAAA/wICAf+jpaX///////7+/P/9/f3//f39//v9/f/9/v3//v79//3+/f/9/v7//f79//3+/f/9/v3//v78//3+/P/9/f3//v79///+/f/+/f3//P39//39/f/7/Pz/+vv7//n7+//2+/r18/v5+fv8/P/8/f3//f39//39/P/7/Pz//Pz8//z8+//8/fz//P39//39/f/9/fz//P38//39/f/9/Pz//Pz8//v8/P/8/fv//f39//3+/f/8/f3//f79//7+/f////7/8fHw/09PTv8AAAD/AAAA/wAAAP8GBgX/sLGy///////+/v3//f79//z9/f/6/Pz/+vz8//3+/f/4+ff/yMnH/7e4tv/k5eP//v/9//39/f/8/fz/+/z8//z9/f/9/fz//////9ja2f8aGxv/AAAA/wAAAP8AAAD/KCko/9fY2P////7//v79//7+/f/9/f3//f79//3+/f/9/v3//P79//7+/f/+//3//f79//3+/f/+/vz//f78//39/f/9/f3//v38//39/P/9/f3//f39//v9/P/7+/v/+vv7//b7+vT0+/n5/P38//39/f/+/fz//f38//v8/P/8/f3//P38//v8/P/7/fz//f38//3+/P/9/vz/+/z8//v8+//8/Pv/+/z8//z9+//9/fz//f39//39/P/9/vz//f78//7//f////7/3d3c/4GCgv9xcnH/QkND/wYGBf+ytLT///////39/f/9/f3/+/z9//r8/P/6/fz/8vb1/3p8fP8TFBP/CAkI/zY2Nv/Kysr//v7+//39/P/9/f3//f79//3+/f//////19ra/xcZGf8nJyf/b3Fw/3l6ev/Fx8b//f79//7+/f/+/v3//v79//3+/f/9/v3//f/9//3+/f/+/v3//v/9//3+/f/+/fz//f38//39/P/9/fz//Pz8//z8/P/8/fv//P38//39/P/+/fz//Pz8//r7+//5+/v/9vv69PP8+vn8/f3//f39//79/f/9/f3//P39//z9/f/8/fz/+/z7//r8/P/7/fz//f78//39/f/9/fz//Pz7//38/P/8/f3/+/z8//z9/P/9/f3//f38//3+/f/+/v3//f79//39/f////////////////+PkZH/BgUF/7S2tv///////f39//z9/f/7/f3/+vz8//3////EyMj/DxER/wAAAP8AAQH/AAAA/2VmZv/5+/v//P38//7+/f/9/v3//v79///////Z2tr/FRcW/1dYV//8//7////////////+/v3//v79//3+/f/9/v3//P39//39/f/+/v3//v79//7+/f/+/v3//f78//79/P/9/fz//f38//39/P/8/fz//P38//z9/P/7/fz//f38//79/f/8/f3/+vz8//r7+//3+/n29Pz7+fv9/f/7/Pz//P38//39/P/9/f3//f39//v8/P/8/Pv/+/z8//r9/P/8/fz//f39//39/P/8/Pv//fz7//38/P/8/Pz//f38//39/f/9/vz//v79//7+/v/9/f3//f38//3+/f/+/v3//////4qMjP8FBQT/srW2///////9/f3//P39//39/f/8/fz//////7y+vf8ICgr/AAEA/wEBAf8AAAD/UlNS//b5+P/8/fz//v79//7//f/+//3//////9rb2/8WFxf/VFVU//n8+//+/v3//v/9//7+/f/9/v3//f78//39/f/7/f3//P39//7+/f/+/v3//v79//7+/f/9/fz//f38//7+/P/+/fz//f79//3+/P/9/fz//f38//39/P/9/f3//f39//z9/f/6/Pz/+vz8//j7+vb0/Pr5+/z8//r8/P/7/f3//P38//39/f/8/Pz/+/z8//z8/P/7/fz//P38//38/P/+/fz//v38//39+//+/fv//v38//39/P/9/fz//P39//z9/P/9/fz//f39//39/f/9/v3//v79//7//f//////iYqK/wUEBP+ztrb///////7+/v/9/f3//f39//39/f/+//7/6uvq/0ZGRv8AAAD/AAAA/w8REP+ho6L//f7+//7+/P/+//3////9//7//f//////2tvb/xYXF/9VVVX/+vz7//79/P/+/v3//f38//z9/f/9/fz//f79//z9/f/9/f3//v79//7+/f/+/v3//f39//39/P/9/fz//f38//3+/P/+/v3//f79//z9/P/9/fz//f38//39/P/8/fz/+/z8//v8/P/6/Pz/9/v69vX7+vn6/Pz/+vz8//v8/P/9/fz//f39//39/f/8/Pz//Pz8//z8/P/8/Pz//fz7//79+//+/fz//v38//79/P/+/fz//v38//39/P/8/f3//f38//39/f/8/fz//f39//7+/v/+/v3//v79//////+Ki4v/BQQE/7K0tP/8/Pz/+fr4//j5+P/4+fj/+Pn5//v9/P////7/3d3d/4WGhf9zc3L/sbSy//j5+P/+/fz//Pv5//r6+P/6+vn/+fr5//v7+//Y2Nj/FxgX/1VUVP/6+/r//f38//39/f/8/f3//P39//3+/P/+/v3//P39//39/f///v3//v79//7+/f/9/v3//v79//7+/f/9/fz//f38//7+/f/9/fz//f38//39/f/9/fz//f39//z9/P/7/Pz/+vv7//r8+//2/Pr19fv6+fn8/P/5/Pz/+/38//z9/P/+/v3//f79//z8/P/7/Pz/+/z8//z8/P/8/Pv//fz7//79/P/+/fz//v38//38+//9/Pv//f38//z9/P/8/fz//f39//39/f/+/v3//v79//7+/f/+/v3//////4eIiP8AAAD/OTo5/1FSUf9RUlD/UFBP/05OTf9iYmH/5Obm//7//v///////////////////////v38///+/v+jo6P/TU1M/09PTv9OTk3/TU5N/0NEQ/8FBgX/VFVU//n7+v/9/fz//v79//39/f/8/f3//f79//3+/f/9/f3//v39//7+/f/9/v3//f7+//3+/f/+/v3//v79//7+/f/+/v3///78///9/P///vz//v79//39/f/8/f3//f39//39/f/7/Pv/+fz7//b9+/b1/Pr5+fz8//r8/P/9/f3//f38//39/f/7/f3/+/z8//n8/P/7/Pz//Pz8//z9/P/8/Pz/+/z8//38+//9/Pv//P37//z9/P/9/fz//P38//v8/P/8/f3//f79//7+/f/9/v7//v79//7+/f//////sbGx/ywtLP8iJCP/ISMi/yAiIf8hISH/ISAg/zo4Of/f4OH//f////3+/f/d3Nv/srCv/8vKyf/4+Pf//////5CRkv8iISL/IiMj/yIiIv8iIiL/IyMj/ygnJ/+MjIz//f79//3+/f/+/v3//f39//39/f/9/f3//Pz8//z8/P/9/f3//v79//3+/f/9/v3//f79//7+/f/+/v3//v79//7+/f/+/v3///38//3+/P/9/f3//v79//3+/f/9/v3//f39//z9/P/7/fz/9/z7+PT8+vn5/fz/+vz8//39/f/8/fz//P38//39/P/8/f3/+/z8//z9/P/9/fz//Pz8//v8/P/6/Pv/+vz7//v8/P/9/fz//P39//39/f/9/f3//P38//z9/f/8/f3//v79//7+/f/+/v3//v79//7+/f/7+/v/6Ono/+Tl5f/l5eX/5OTk/+Tk4//k4+P/5uXm//j5+f/9/v7/t7i4/yorKv8FBgX/FhcW/4eIiP/4+vn/8vLx/+Xl5f/m5eT/5eXk/+bl5f/m5eT/5ubl//f4+P/+//7//f7+//7+/f/9/f3//v79//3+/f/9/Pz//f38//39/f/9/v3//v78//3+/f/9/f3//f39//39/f/9/v3//f79//79/f/+/vz//f38//39/P/+/v3//v/9//7+/f/9/f3//f39//z9/f/2/Pv39Pz69fj9/P/6/Pz/+/z8//z8+//9/Pz//f38//39/P/9/f3//f79//39/P/8/fz//P37//z9+//8/fv//P38//z9/P/9/fz//v38//39/f/8/f3//f39//z9/f/9/v3//f79//z9/f/9/f3//f79//7+/f////7////////////////////+//7+/v/9/v3//P39/+3v7/8+Pz//AAAA/wAAAP8AAAD/FhYW/83Pz////////////////////////////////////////v/+//7//f/9/v7//f7+//7+/f///v3//v78//39/P/9/Pz//v79//7+/f/9/v3//f39//7+/f/9/f3//f39//3+/f/9/v3//v79//3+/f/9/fz//f79//7+/f///v3///79//7+/f/9/v3//P39//b8+vf0+/rr+P37//r8/P/8/Pv//Pz7//z9/P/8/fz//f38//39/P/+/v3//f38//z9+//7/Pv//Pz7//39/P/9/fz//P38//39/P/9/fz//f38//38+//9/fv//f38//z9/f/8/f3/+/z9//39/f/9/f3//v79///+/f///v3//v79//3+/f/6/Pz/+vz8//v8/P/9/v3/5OXl/yUnJ/8AAAD/AQEA/wAAAP8HBwb/t7e3///////+/v3//f79//7//f/+/v3//v79//7+/f/+/v3//v79//39/f/8/f3//f38//7+/f/+/vz//P38//v8/P/9/f3//v79//39/f/+/vz//f38//z9/P/+/v3//v79//3//f/+/v3//f78//39/P/9/f3//v79//7+/f/+/v3//v79//3+/f/7/f3/9fv68fT8+t/4/fz/+vz8//z8/P/9/P3//f7+//39/f/+/fz//v37//79+//+/Pv//Pz7//v8+//8/Pv//fz7//39/P/9/f3//f39//3+/f/9/fz//vz7//z8+//9/fz/+/38//z9/f/9/v3//f79//7+/f/+/v3//v79//7+/f/9/v3//P39//v9/P/7/f3//P38//z9/f/4+fj/ZGRj/wAAAP8AAAD/AAAA/y8wMP/g4eH//v7+//7+/f/+//7//v/9//7+/f/8/f3//f79//7+/f/+/v3//P38//z8/P/8/fz//f38//3+/P/9/v3//f39//79/f/+/v3//v79//7+/f/9/fz//f39//7+/f/+//3//v/9//7+/f/9/fz//fz7//z9/P/9/v3//v/9//7+/f/9/v3//f39//v9/f/2/Prf8vz6xfj9/P/6/fz/+/z8//z9/f/9/v3//f38//78+//+/Pv//vz6//38+v/9/Pv//fz7//39/P/9/fv//f38//3+/f/9/v3//v79//79/P/+/Pv//P38//3+/f/9/v3//f79//7//f/+/v3//v79//7+/f/+/v3//f79//3+/v/9/v7//f79//3+/f/9/f3//f78//7//v/h4eD/bm5t/zU1NP9RUlL/w8TE//3+/v////7/8vPy/+np5//5+fj//v/+//3+/f/+/v3//v79//39/f/8/f3//f39//39/P/9/fz//P38//3+/f/9/v3//v39//7+/f/+/v3//v79//7+/f/9/fz//f39//7+/f/+/fz//f38//38+//+/Pv//Pz8//39/P/9/v3//f38//39/P/7/Pz/+f38//T7+Mvv+/mZ9/37//n9/P/6/Pz/+/z8//39/f/9/fz//fz7//38+//9+/r//fz7//39/P/9/fz//f78//7+/P/+/v3//v79//7+/f/+/v3//v39//38/P/9/f3//f39//7+/f/9/v3//v/9//7+/P/+/fz//v38//79/f/+/v3//v7+//3+/f/+/v7//f39//3+/f/9/vz//f78/////v/9/Pv/7u7u//b39////////P38/7u7u/9ISEj/LCws/2RlZf/d3t7//v/+//7+/f/+/v3//P39//z9/P/+/v3//f78//z9/f/7/f3//f39//39/f/9/f3//v79//7+/f/+//3//v79//39/P/9/f3//f38//z8+//9/Pz//fz7//38+//8/Pz//P38//z+/P/9/vz//f38//r8/P/4/Pz/7fj3pen59ln2/Pr2+P38//n8/f/7/P3//f39//z9/P/9/Pv//vz7//37+v/9/fz//f38//39/f/9/f3//f38//39/P///f3///38//79/f/9/f3//f38//z9/P/9/f3//f39//39/f/9/v3//f79//3+/P/9/fz//f39//7+/f/9/v7//f7+//7+/f/9/v7//v78//39/P/9/vz//f79//7+/f/+/v7//P79//7+/v/d3t3/Kior/wAAAP8AAAD/AAAA/2FhYf/29/b//f78//z9/f/7/f3//f38//79/f/+/fz//f38//79/P/+/v3//f39//39/f/+/v3//v79//7+/f/+/v3//P38//39/f/8/fz/+/z8//v8+//8/fv/+/z8//z9/P/9/fz//v39//7+/P/9/v3/+vz8//b7+/nn9/Zk2vXyHfT8+tD4/Pz/+vz8//r8/f/7/Pz//P38//39/P/8/Pz//Pz7//39/P/9/f3//f79//39/f/9/fz//f38//79/P/9/fz//f38//39/f/8/fz/+/z8//z8/P/9/fz//f79//3+/f/9/vz//v38//79/P///vz//v79//39/f/9/v3//v79//7+/f/+/vz//v78//7+/f/+/v7//v79//7+/f/+/v3//////7m6uv8HCAj/AAAA/wAAAP8AAAD/ISIh/97g4P/8/v3/+/z8//v8/P/9/fz//f39//39/P/9/fv//f38//39/f/9/f3//v79//7+/f/+/v3//v/9//7+/f/9/fz//Pz8//z8/P/8/fz//Pz8//v8/P/8/f3//P39//z9/f/9/fz//f38//3+/f/7/fz/9fv52OD08yON4eEB8fv4g/n9/P77/f3/+/39//z9/f/9/f3//P39//r8/P/6/Pz//P38//3+/f/9/v3//f79//3+/f/9/fz//f38//39/P/9/fz//f38//z8/P/7/Pv/+/z8//39/f/9/fz//P39//39/P/9/Pz//f38///9/P/9/f3//f39//3+/f/+/v3//v39//7+/f/9/f3//v79//3+/v/+/v3//v79//7//f//////1tfW/xscHP8AAAD/AAAA/wAAAP81NTX/6evq//v9/P/7/Pz//P39//z9/f/8/fz//P37//z9+//9/fz//P38//z8/P/9/v3//v79//7+/f/+/v3//v79//7+/f/8/fz//Pz8//z9+//8/Pz//P39//39/f/7/f3//P39//39/f/8/f3//P39//n8+//y+vePtOjmA63q6ADo+fUr9vz74Pr9/f/7/f3/+/79//z9/f/8/f3/+/38//r8/P/8/fz//f39//z9/f/8/f3//P38//z8/P/9/f3//f39//39/P/8/f3/+/z8//r8+//7/Pz//f38//79/f/9/f3//f38//z9/P/9/fz//f79//7+/f/9/v3//f78//3+/f/9/v3//f79//7+/f/9/v3//f39//7+/f/9/v3//v79//7+/f/7/Pv/lJST/xwdHP8ICgn/Jicm/6yurv/8/v3/+vz7//z9/P/8/f3//P39//z8/P/7/Pz/+/z8//z9/P/8/fz//f38//3+/f/+/v3//v78//7+/f/+/v3//v79//z9/f/8/Pz//Pz8//z8/P/9/v3//f39//z8/P/7/f3//P39//z9/f/7/fz/9vv55ur39TLD7esAAAAAALHu5ALy+/d4+P37/Pr9/f/7/v3/+/39//v8/P/7/Pz//P39//39/P/9/f3//f39//39/f/8/f3//f39//39/f/8/f3//P38//v8/P/7/Pz/+vz8//z8/P/+/fz//v79//v9/f/7/fz//P38//v9/P/8/fz//f38//39/P/7/fz/+v38//v9/f/8/f3//v38//3+/f/8/f3//f79//3+/f/9/v3//v/9//7//v/8/Pv/1NXU/7q7u//b3d3//P79//z9/P/8/fz//f39//z9/f/8/f3//P39//v8/P/8/Pz//f78//3+/f/9/f3//f79//3+/P/9/fz//v38//39/P/8/fv//Pz8//z8+//7/Pz/+/39//3+/f/9/f3//P39//v8/P/6/Pz/+/38//n8+v3z+vaFxe3pAwAAAAAAAAAAyfPsAOb38RP2/Pmw+f38//r9/f/6/f3/+vz8//v8/P/8/f3//f38//79/P/9/f3//P79//3+/v/+/v7//P39//z9/f/9/f3//P39//r8/P/6/Pz//Pz8//3+/f/+/v3/+/39//r8/P/7/Pz/+/39//v9/f/8/f3/+v39//n8/P/5/Pz/+vz8//r8/P/8/fz//f39//v9/P/9/v3//f79//7+/f/+//3//f79//z9/f/////////////////8/f3//f39//3+/f/9/f3//P39//z9/f/7/P3/+vz8//v8+//9/v3//f79//39/f/9/f3//f39//z8/P/8/fv//Pz8//38+//9/Pv//Pz8//z9/P/9/fz//f38//z8/P/8/f3//f79//r9/f/5/Pv/9vr3wun18RnU8e0AAAAAAAAAAAAAAAAA9/z2APD69i34/PrW+fz8//n8/P/6/Pz/+/38//v8/P/8/fz//f38//v9/f/7/f3//P39//3+/f/9/v3//v79//39/f/7/Pz/+vz8//n8/P/6/Pz/+/z8//3+/f/9/f3/+/z8//v8/P/9/f3//f39//39/f/8/f3/+/39//r8/P/7/Pz/+/z8//z9/f/9/f3//P39//3+/f/9/v7//f7+//3+/f/8/f3/+/z8//z9/f/+/v3//v79//7+/f/+/v3//P39//z9/f/9/f3//v79//z9/f/8/fz//P39//3+/f/9/v3//f39//39/f/9/f3/+/z8//z8+//7/Pz//Pz8//z9/P/8/fz//P38//z8/P/7/Pz/+/z8//z9/f/9/vz/+f38//X7+N7t9/Q8/f3zAAAAAAAAAAAAAAAAAAAAAABf1dIA////APT79kL4+/jb+Pv7//n8+//5/Pv/+vz8//v9/P/8/f3/+vz8//n8/P/6/f3//P39//39/f/9/f3/+/39//v8/f/6/Pz/+Pz8//n8/P/7/fz//f39//7+/f/8/fz//P38//39/f/8/f3//f39//3+/f/8/f3/+/z8//z9/P/8/fz//P38//z9/f/7/f3//f39//z9/f/9/v3//f79//z9/f/8/f3//f39//79/f/9/v3//v79//7+/f/9/v3//f79//3+/f/9/fz//Pz8//z9/P/9/f3//f39//39/f/8/f3//f39//3+/f/8/Pz//Pz7//v8/P/8/f3//P38//z9/P/7/Pz/+vz8//r8/P/6/Pz/+/z8//r8+//2+/jn7fbzUAAAAADD5+0AAAAAAAAAAAAAAAAAAAAAAAAAAADU9uwA////APT59EL1+vjV+Pv7//n8+//6/Pz/+vz8//r8/f/7/P3/+/39//v9/f/8/f3//f39//z9/f/7/f3//P39//z9/f/7/Pz//P39//39/f/8/f3//f38//39/P/9/vz//f38//z9/P/9/fz//f38//z9/P/8/Pz//Pz8//39/f/9/f3//f39//z9/f/7/f3/+vz8//z9/f/9/f3//v39//79/f/9/f3//f38//3+/f/+/v3//f79//3+/f/9/v3//f79//39/f/8/Pz//Pz8//39/f/9/f3//Pz8//r8/P/8/fz//f39//z8/P/7/Pz/+vz8//r8/P/7/Pz//f39//39/f/8/P3/+/z8//r8+//3+/r/9fr33+z28VOW29kB1O3rAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADk9/AA////APH48i74+/iy+Pz6/fn9/P/6/f3/+/39//v9/f/9/v3//f79//z+/f/8/f3/+/38//v8/P/8/f3//P38//z9/f/9/v3//f39//v9/f/7/f3//P39//z9/f/9/f3/+/z8//v8/P/7/Pz/+/z8//z9/f/8/f3//f39//39/f/9/f3//P39//z9/f/6/Pz/+/z8//v9/f/8/f3//f39//z9/f/7/fz//f38//39/f/9/f3//f39//z9/f/9/v3//f79//39/f/7/Pz/+/z8//39/f/8/fz/+vz8//v8/f/8/f3/+/z9//v8/P/6/Pz/+vz8//v8/f/9/v3//P39//v9/f/5/Pz/9/r5/vL49cbr9fI/////ANDu6wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADR7ukA9Pn0AO/48RT0+/Z49vv53fj8+//6/fz/+/39//3+/f/+/v3//f79//z9/f/6/Pz/+vv7//r8/P/8/Pz/+/39//3+/f/7/f3/+v38//r9/P/7/f3/+/39//r8/P/6/Pz/+/z8//r8/P/6/Pz/+/39//z9/f/8/f3/+/z8//v9/P/7/fz/+/z8//r8/P/6/Pz/+/39//z9/P/8/fz//P39//z9/f/8/fz/+/38//z9/f/7/f3/+v39//v9/f/7/f3/+v39//n9/P/7/f3//f39//39/P/7/Pz/+/z9//z9/f/9/f3//P39//v8/P/7/Pz//P39//z9/f/7/f3/+vz8//b7+eXv+PWE4fLvG//99gDG7OsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQ8uQA8/nyAP///wDt9/Mr8/v3gfj8+s35/Pv0+fz7//v9/P/8/fz/+/38//v8/P/6/Pv/+fz7//r8/P/9/fz//f38//r8/P/6/fz/+v38//n9/P/5/Pz/+Pz7//r8/P/7/fz/+/z7//v8+//6/Pv/+vz8//v9+//6/Pv/+fz7//n8/P/6/Pv/+vz8//r8/P/7/Pz/+/z8//r8/P/5/Pv/+fz7//n8+//5/Pz/+fz7//n8+//4/fv/+P38//n9/P/5/Pz/+fz8//v9/P/8/Pz/+/z8//r8/P/6/Pz/+/z8//v8/P/7/Pz/+fz7//n7+//6/Pv/+fz69/f8+dby+fiL6Pb1M43Z5gLo8/AAouXtAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA2/TvAPP59QD///8A7PjzGvH49VLz+faU9vr3wvX799/1+/fx9fr4+PP6+fby+vnz8vr59fT7+ff2/Pry9vv58PT7+vb0+/r58/v6+PH6+vfx+vn38vv6+PT7+/j0+vn38fr49/D6+Pfz+vj49Pr5+fP6+fjx+vn38vv6+PT7+vjz+vn38/r59vX7+ff0+/n48/r5+fL6+Pnx+vj48fr4+PL6+fby+vn28fr59/L7+vjy+/r18vv69fP7+vXz+/r38vv69/P7+vb0+vn18/r48fP7+fLz+/n18/r48fT79+T0+vfc8vr3xPH59prr9/Ze4PT0IQCiywHx+PYAyuzxAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/8AAAAAAAAAD/wAA/wAAAAAAAAAA/wAA/gAAAAAAAAAAPwAA+AAAAAAAAAAAHwAA8AAAAAAAAAAADwAA4AAAAAAAAAAABwAAwAAAAAAAAAAAAwAAwAAAAAAAAAAAAwAAgAAAAAAAAAAAAQAAgAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAQAAgAAAAAAAAAAAAQAAwAAAAAAAAAAAAwAA4AAAAAAAAAAABwAA8AAAAAAAAAAADwAA+AAAAAAAAAAADwAA/AAAAAAAAAAAPwAA/gAAAAAAAAAAfwAA/4AAAAAAAAAA/wAA/+AAAAAAAAAD/wAA";
|
|
43157
|
-
var _arrayReduce;
|
|
43158
|
-
var hasRequired_arrayReduce;
|
|
43159
|
-
function require_arrayReduce() {
|
|
43160
|
-
if (hasRequired_arrayReduce) return _arrayReduce;
|
|
43161
|
-
hasRequired_arrayReduce = 1;
|
|
43162
|
-
function arrayReduce(array, iteratee, accumulator, initAccum) {
|
|
43163
|
-
var index2 = -1, length = array == null ? 0 : array.length;
|
|
43164
|
-
if (initAccum && length) {
|
|
43165
|
-
accumulator = array[++index2];
|
|
43166
|
-
}
|
|
43167
|
-
while (++index2 < length) {
|
|
43168
|
-
accumulator = iteratee(accumulator, array[index2], index2, array);
|
|
43169
|
-
}
|
|
43170
|
-
return accumulator;
|
|
43171
|
-
}
|
|
43172
|
-
_arrayReduce = arrayReduce;
|
|
43173
|
-
return _arrayReduce;
|
|
43174
|
-
}
|
|
43175
|
-
var _basePropertyOf;
|
|
43176
|
-
var hasRequired_basePropertyOf;
|
|
43177
|
-
function require_basePropertyOf() {
|
|
43178
|
-
if (hasRequired_basePropertyOf) return _basePropertyOf;
|
|
43179
|
-
hasRequired_basePropertyOf = 1;
|
|
43180
|
-
function basePropertyOf(object) {
|
|
43181
|
-
return function(key) {
|
|
43182
|
-
return object == null ? void 0 : object[key];
|
|
43183
|
-
};
|
|
43184
|
-
}
|
|
43185
|
-
_basePropertyOf = basePropertyOf;
|
|
43186
|
-
return _basePropertyOf;
|
|
43187
|
-
}
|
|
43188
|
-
var _deburrLetter;
|
|
43189
|
-
var hasRequired_deburrLetter;
|
|
43190
|
-
function require_deburrLetter() {
|
|
43191
|
-
if (hasRequired_deburrLetter) return _deburrLetter;
|
|
43192
|
-
hasRequired_deburrLetter = 1;
|
|
43193
|
-
var basePropertyOf = require_basePropertyOf();
|
|
43194
|
-
var deburredLetters = {
|
|
43195
|
-
// Latin-1 Supplement block.
|
|
43196
|
-
"À": "A",
|
|
43197
|
-
"Á": "A",
|
|
43198
|
-
"Â": "A",
|
|
43199
|
-
"Ã": "A",
|
|
43200
|
-
"Ä": "A",
|
|
43201
|
-
"Å": "A",
|
|
43202
|
-
"à": "a",
|
|
43203
|
-
"á": "a",
|
|
43204
|
-
"â": "a",
|
|
43205
|
-
"ã": "a",
|
|
43206
|
-
"ä": "a",
|
|
43207
|
-
"å": "a",
|
|
43208
|
-
"Ç": "C",
|
|
43209
|
-
"ç": "c",
|
|
43210
|
-
"Ð": "D",
|
|
43211
|
-
"ð": "d",
|
|
43212
|
-
"È": "E",
|
|
43213
|
-
"É": "E",
|
|
43214
|
-
"Ê": "E",
|
|
43215
|
-
"Ë": "E",
|
|
43216
|
-
"è": "e",
|
|
43217
|
-
"é": "e",
|
|
43218
|
-
"ê": "e",
|
|
43219
|
-
"ë": "e",
|
|
43220
|
-
"Ì": "I",
|
|
43221
|
-
"Í": "I",
|
|
43222
|
-
"Î": "I",
|
|
43223
|
-
"Ï": "I",
|
|
43224
|
-
"ì": "i",
|
|
43225
|
-
"í": "i",
|
|
43226
|
-
"î": "i",
|
|
43227
|
-
"ï": "i",
|
|
43228
|
-
"Ñ": "N",
|
|
43229
|
-
"ñ": "n",
|
|
43230
|
-
"Ò": "O",
|
|
43231
|
-
"Ó": "O",
|
|
43232
|
-
"Ô": "O",
|
|
43233
|
-
"Õ": "O",
|
|
43234
|
-
"Ö": "O",
|
|
43235
|
-
"Ø": "O",
|
|
43236
|
-
"ò": "o",
|
|
43237
|
-
"ó": "o",
|
|
43238
|
-
"ô": "o",
|
|
43239
|
-
"õ": "o",
|
|
43240
|
-
"ö": "o",
|
|
43241
|
-
"ø": "o",
|
|
43242
|
-
"Ù": "U",
|
|
43243
|
-
"Ú": "U",
|
|
43244
|
-
"Û": "U",
|
|
43245
|
-
"Ü": "U",
|
|
43246
|
-
"ù": "u",
|
|
43247
|
-
"ú": "u",
|
|
43248
|
-
"û": "u",
|
|
43249
|
-
"ü": "u",
|
|
43250
|
-
"Ý": "Y",
|
|
43251
|
-
"ý": "y",
|
|
43252
|
-
"ÿ": "y",
|
|
43253
|
-
"Æ": "Ae",
|
|
43254
|
-
"æ": "ae",
|
|
43255
|
-
"Þ": "Th",
|
|
43256
|
-
"þ": "th",
|
|
43257
|
-
"ß": "ss",
|
|
43258
|
-
// Latin Extended-A block.
|
|
43259
|
-
"Ā": "A",
|
|
43260
|
-
"Ă": "A",
|
|
43261
|
-
"Ą": "A",
|
|
43262
|
-
"ā": "a",
|
|
43263
|
-
"ă": "a",
|
|
43264
|
-
"ą": "a",
|
|
43265
|
-
"Ć": "C",
|
|
43266
|
-
"Ĉ": "C",
|
|
43267
|
-
"Ċ": "C",
|
|
43268
|
-
"Č": "C",
|
|
43269
|
-
"ć": "c",
|
|
43270
|
-
"ĉ": "c",
|
|
43271
|
-
"ċ": "c",
|
|
43272
|
-
"č": "c",
|
|
43273
|
-
"Ď": "D",
|
|
43274
|
-
"Đ": "D",
|
|
43275
|
-
"ď": "d",
|
|
43276
|
-
"đ": "d",
|
|
43277
|
-
"Ē": "E",
|
|
43278
|
-
"Ĕ": "E",
|
|
43279
|
-
"Ė": "E",
|
|
43280
|
-
"Ę": "E",
|
|
43281
|
-
"Ě": "E",
|
|
43282
|
-
"ē": "e",
|
|
43283
|
-
"ĕ": "e",
|
|
43284
|
-
"ė": "e",
|
|
43285
|
-
"ę": "e",
|
|
43286
|
-
"ě": "e",
|
|
43287
|
-
"Ĝ": "G",
|
|
43288
|
-
"Ğ": "G",
|
|
43289
|
-
"Ġ": "G",
|
|
43290
|
-
"Ģ": "G",
|
|
43291
|
-
"ĝ": "g",
|
|
43292
|
-
"ğ": "g",
|
|
43293
|
-
"ġ": "g",
|
|
43294
|
-
"ģ": "g",
|
|
43295
|
-
"Ĥ": "H",
|
|
43296
|
-
"Ħ": "H",
|
|
43297
|
-
"ĥ": "h",
|
|
43298
|
-
"ħ": "h",
|
|
43299
|
-
"Ĩ": "I",
|
|
43300
|
-
"Ī": "I",
|
|
43301
|
-
"Ĭ": "I",
|
|
43302
|
-
"Į": "I",
|
|
43303
|
-
"İ": "I",
|
|
43304
|
-
"ĩ": "i",
|
|
43305
|
-
"ī": "i",
|
|
43306
|
-
"ĭ": "i",
|
|
43307
|
-
"į": "i",
|
|
43308
|
-
"ı": "i",
|
|
43309
|
-
"Ĵ": "J",
|
|
43310
|
-
"ĵ": "j",
|
|
43311
|
-
"Ķ": "K",
|
|
43312
|
-
"ķ": "k",
|
|
43313
|
-
"ĸ": "k",
|
|
43314
|
-
"Ĺ": "L",
|
|
43315
|
-
"Ļ": "L",
|
|
43316
|
-
"Ľ": "L",
|
|
43317
|
-
"Ŀ": "L",
|
|
43318
|
-
"Ł": "L",
|
|
43319
|
-
"ĺ": "l",
|
|
43320
|
-
"ļ": "l",
|
|
43321
|
-
"ľ": "l",
|
|
43322
|
-
"ŀ": "l",
|
|
43323
|
-
"ł": "l",
|
|
43324
|
-
"Ń": "N",
|
|
43325
|
-
"Ņ": "N",
|
|
43326
|
-
"Ň": "N",
|
|
43327
|
-
"Ŋ": "N",
|
|
43328
|
-
"ń": "n",
|
|
43329
|
-
"ņ": "n",
|
|
43330
|
-
"ň": "n",
|
|
43331
|
-
"ŋ": "n",
|
|
43332
|
-
"Ō": "O",
|
|
43333
|
-
"Ŏ": "O",
|
|
43334
|
-
"Ő": "O",
|
|
43335
|
-
"ō": "o",
|
|
43336
|
-
"ŏ": "o",
|
|
43337
|
-
"ő": "o",
|
|
43338
|
-
"Ŕ": "R",
|
|
43339
|
-
"Ŗ": "R",
|
|
43340
|
-
"Ř": "R",
|
|
43341
|
-
"ŕ": "r",
|
|
43342
|
-
"ŗ": "r",
|
|
43343
|
-
"ř": "r",
|
|
43344
|
-
"Ś": "S",
|
|
43345
|
-
"Ŝ": "S",
|
|
43346
|
-
"Ş": "S",
|
|
43347
|
-
"Š": "S",
|
|
43348
|
-
"ś": "s",
|
|
43349
|
-
"ŝ": "s",
|
|
43350
|
-
"ş": "s",
|
|
43351
|
-
"š": "s",
|
|
43352
|
-
"Ţ": "T",
|
|
43353
|
-
"Ť": "T",
|
|
43354
|
-
"Ŧ": "T",
|
|
43355
|
-
"ţ": "t",
|
|
43356
|
-
"ť": "t",
|
|
43357
|
-
"ŧ": "t",
|
|
43358
|
-
"Ũ": "U",
|
|
43359
|
-
"Ū": "U",
|
|
43360
|
-
"Ŭ": "U",
|
|
43361
|
-
"Ů": "U",
|
|
43362
|
-
"Ű": "U",
|
|
43363
|
-
"Ų": "U",
|
|
43364
|
-
"ũ": "u",
|
|
43365
|
-
"ū": "u",
|
|
43366
|
-
"ŭ": "u",
|
|
43367
|
-
"ů": "u",
|
|
43368
|
-
"ű": "u",
|
|
43369
|
-
"ų": "u",
|
|
43370
|
-
"Ŵ": "W",
|
|
43371
|
-
"ŵ": "w",
|
|
43372
|
-
"Ŷ": "Y",
|
|
43373
|
-
"ŷ": "y",
|
|
43374
|
-
"Ÿ": "Y",
|
|
43375
|
-
"Ź": "Z",
|
|
43376
|
-
"Ż": "Z",
|
|
43377
|
-
"Ž": "Z",
|
|
43378
|
-
"ź": "z",
|
|
43379
|
-
"ż": "z",
|
|
43380
|
-
"ž": "z",
|
|
43381
|
-
"IJ": "IJ",
|
|
43382
|
-
"ij": "ij",
|
|
43383
|
-
"Œ": "Oe",
|
|
43384
|
-
"œ": "oe",
|
|
43385
|
-
"ʼn": "'n",
|
|
43386
|
-
"ſ": "s"
|
|
43387
|
-
};
|
|
43388
|
-
var deburrLetter = basePropertyOf(deburredLetters);
|
|
43389
|
-
_deburrLetter = deburrLetter;
|
|
43390
|
-
return _deburrLetter;
|
|
43391
|
-
}
|
|
43392
|
-
var _arrayMap;
|
|
43393
|
-
var hasRequired_arrayMap;
|
|
43394
|
-
function require_arrayMap() {
|
|
43395
|
-
if (hasRequired_arrayMap) return _arrayMap;
|
|
43396
|
-
hasRequired_arrayMap = 1;
|
|
43397
|
-
function arrayMap(array, iteratee) {
|
|
43398
|
-
var index2 = -1, length = array == null ? 0 : array.length, result = Array(length);
|
|
43399
|
-
while (++index2 < length) {
|
|
43400
|
-
result[index2] = iteratee(array[index2], index2, array);
|
|
43401
|
-
}
|
|
43402
|
-
return result;
|
|
43403
|
-
}
|
|
43404
|
-
_arrayMap = arrayMap;
|
|
43405
|
-
return _arrayMap;
|
|
43406
|
-
}
|
|
43407
|
-
var _baseToString;
|
|
43408
|
-
var hasRequired_baseToString;
|
|
43409
|
-
function require_baseToString() {
|
|
43410
|
-
if (hasRequired_baseToString) return _baseToString;
|
|
43411
|
-
hasRequired_baseToString = 1;
|
|
43412
|
-
var Symbol2 = require_Symbol(), arrayMap = require_arrayMap(), isArray2 = requireIsArray(), isSymbol2 = requireIsSymbol();
|
|
43413
|
-
var symbolProto = Symbol2 ? Symbol2.prototype : void 0, symbolToString = symbolProto ? symbolProto.toString : void 0;
|
|
43414
|
-
function baseToString(value) {
|
|
43415
|
-
if (typeof value == "string") {
|
|
43416
|
-
return value;
|
|
43417
|
-
}
|
|
43418
|
-
if (isArray2(value)) {
|
|
43419
|
-
return arrayMap(value, baseToString) + "";
|
|
43420
|
-
}
|
|
43421
|
-
if (isSymbol2(value)) {
|
|
43422
|
-
return symbolToString ? symbolToString.call(value) : "";
|
|
43423
|
-
}
|
|
43424
|
-
var result = value + "";
|
|
43425
|
-
return result == "0" && 1 / value == -Infinity ? "-0" : result;
|
|
43426
|
-
}
|
|
43427
|
-
_baseToString = baseToString;
|
|
43428
|
-
return _baseToString;
|
|
43429
|
-
}
|
|
43430
|
-
var toString_1;
|
|
43431
|
-
var hasRequiredToString;
|
|
43432
|
-
function requireToString() {
|
|
43433
|
-
if (hasRequiredToString) return toString_1;
|
|
43434
|
-
hasRequiredToString = 1;
|
|
43435
|
-
var baseToString = require_baseToString();
|
|
43436
|
-
function toString(value) {
|
|
43437
|
-
return value == null ? "" : baseToString(value);
|
|
43438
|
-
}
|
|
43439
|
-
toString_1 = toString;
|
|
43440
|
-
return toString_1;
|
|
43441
|
-
}
|
|
43442
|
-
var deburr_1;
|
|
43443
|
-
var hasRequiredDeburr;
|
|
43444
|
-
function requireDeburr() {
|
|
43445
|
-
if (hasRequiredDeburr) return deburr_1;
|
|
43446
|
-
hasRequiredDeburr = 1;
|
|
43447
|
-
var deburrLetter = require_deburrLetter(), toString = requireToString();
|
|
43448
|
-
var reLatin = /[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g;
|
|
43449
|
-
var rsComboMarksRange = "\\u0300-\\u036f", reComboHalfMarksRange = "\\ufe20-\\ufe2f", rsComboSymbolsRange = "\\u20d0-\\u20ff", rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange;
|
|
43450
|
-
var rsCombo = "[" + rsComboRange + "]";
|
|
43451
|
-
var reComboMark = RegExp(rsCombo, "g");
|
|
43452
|
-
function deburr(string) {
|
|
43453
|
-
string = toString(string);
|
|
43454
|
-
return string && string.replace(reLatin, deburrLetter).replace(reComboMark, "");
|
|
43455
|
-
}
|
|
43456
|
-
deburr_1 = deburr;
|
|
43457
|
-
return deburr_1;
|
|
43458
|
-
}
|
|
43459
|
-
var _asciiWords;
|
|
43460
|
-
var hasRequired_asciiWords;
|
|
43461
|
-
function require_asciiWords() {
|
|
43462
|
-
if (hasRequired_asciiWords) return _asciiWords;
|
|
43463
|
-
hasRequired_asciiWords = 1;
|
|
43464
|
-
var reAsciiWord = /[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g;
|
|
43465
|
-
function asciiWords(string) {
|
|
43466
|
-
return string.match(reAsciiWord) || [];
|
|
43467
|
-
}
|
|
43468
|
-
_asciiWords = asciiWords;
|
|
43469
|
-
return _asciiWords;
|
|
43470
|
-
}
|
|
43471
|
-
var _hasUnicodeWord;
|
|
43472
|
-
var hasRequired_hasUnicodeWord;
|
|
43473
|
-
function require_hasUnicodeWord() {
|
|
43474
|
-
if (hasRequired_hasUnicodeWord) return _hasUnicodeWord;
|
|
43475
|
-
hasRequired_hasUnicodeWord = 1;
|
|
43476
|
-
var reHasUnicodeWord = /[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/;
|
|
43477
|
-
function hasUnicodeWord(string) {
|
|
43478
|
-
return reHasUnicodeWord.test(string);
|
|
43479
|
-
}
|
|
43480
|
-
_hasUnicodeWord = hasUnicodeWord;
|
|
43481
|
-
return _hasUnicodeWord;
|
|
43482
|
-
}
|
|
43483
|
-
var _unicodeWords;
|
|
43484
|
-
var hasRequired_unicodeWords;
|
|
43485
|
-
function require_unicodeWords() {
|
|
43486
|
-
if (hasRequired_unicodeWords) return _unicodeWords;
|
|
43487
|
-
hasRequired_unicodeWords = 1;
|
|
43488
|
-
var rsAstralRange = "\\ud800-\\udfff", rsComboMarksRange = "\\u0300-\\u036f", reComboHalfMarksRange = "\\ufe20-\\ufe2f", rsComboSymbolsRange = "\\u20d0-\\u20ff", rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange, rsDingbatRange = "\\u2700-\\u27bf", rsLowerRange = "a-z\\xdf-\\xf6\\xf8-\\xff", rsMathOpRange = "\\xac\\xb1\\xd7\\xf7", rsNonCharRange = "\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf", rsPunctuationRange = "\\u2000-\\u206f", rsSpaceRange = " \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000", rsUpperRange = "A-Z\\xc0-\\xd6\\xd8-\\xde", rsVarRange = "\\ufe0e\\ufe0f", rsBreakRange = rsMathOpRange + rsNonCharRange + rsPunctuationRange + rsSpaceRange;
|
|
43489
|
-
var rsApos = "['’]", rsBreak = "[" + rsBreakRange + "]", rsCombo = "[" + rsComboRange + "]", rsDigits = "\\d+", rsDingbat = "[" + rsDingbatRange + "]", rsLower = "[" + rsLowerRange + "]", rsMisc = "[^" + rsAstralRange + rsBreakRange + rsDigits + rsDingbatRange + rsLowerRange + rsUpperRange + "]", rsFitz = "\\ud83c[\\udffb-\\udfff]", rsModifier = "(?:" + rsCombo + "|" + rsFitz + ")", rsNonAstral = "[^" + rsAstralRange + "]", rsRegional = "(?:\\ud83c[\\udde6-\\uddff]){2}", rsSurrPair = "[\\ud800-\\udbff][\\udc00-\\udfff]", rsUpper = "[" + rsUpperRange + "]", rsZWJ = "\\u200d";
|
|
43490
|
-
var rsMiscLower = "(?:" + rsLower + "|" + rsMisc + ")", rsMiscUpper = "(?:" + rsUpper + "|" + rsMisc + ")", rsOptContrLower = "(?:" + rsApos + "(?:d|ll|m|re|s|t|ve))?", rsOptContrUpper = "(?:" + rsApos + "(?:D|LL|M|RE|S|T|VE))?", reOptMod = rsModifier + "?", rsOptVar = "[" + rsVarRange + "]?", rsOptJoin = "(?:" + rsZWJ + "(?:" + [rsNonAstral, rsRegional, rsSurrPair].join("|") + ")" + rsOptVar + reOptMod + ")*", rsOrdLower = "\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])", rsOrdUpper = "\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])", rsSeq = rsOptVar + reOptMod + rsOptJoin, rsEmoji = "(?:" + [rsDingbat, rsRegional, rsSurrPair].join("|") + ")" + rsSeq;
|
|
43491
|
-
var reUnicodeWord = RegExp([
|
|
43492
|
-
rsUpper + "?" + rsLower + "+" + rsOptContrLower + "(?=" + [rsBreak, rsUpper, "$"].join("|") + ")",
|
|
43493
|
-
rsMiscUpper + "+" + rsOptContrUpper + "(?=" + [rsBreak, rsUpper + rsMiscLower, "$"].join("|") + ")",
|
|
43494
|
-
rsUpper + "?" + rsMiscLower + "+" + rsOptContrLower,
|
|
43495
|
-
rsUpper + "+" + rsOptContrUpper,
|
|
43496
|
-
rsOrdUpper,
|
|
43497
|
-
rsOrdLower,
|
|
43498
|
-
rsDigits,
|
|
43499
|
-
rsEmoji
|
|
43500
|
-
].join("|"), "g");
|
|
43501
|
-
function unicodeWords(string) {
|
|
43502
|
-
return string.match(reUnicodeWord) || [];
|
|
43503
|
-
}
|
|
43504
|
-
_unicodeWords = unicodeWords;
|
|
43505
|
-
return _unicodeWords;
|
|
43506
|
-
}
|
|
43507
|
-
var words_1;
|
|
43508
|
-
var hasRequiredWords;
|
|
43509
|
-
function requireWords() {
|
|
43510
|
-
if (hasRequiredWords) return words_1;
|
|
43511
|
-
hasRequiredWords = 1;
|
|
43512
|
-
var asciiWords = require_asciiWords(), hasUnicodeWord = require_hasUnicodeWord(), toString = requireToString(), unicodeWords = require_unicodeWords();
|
|
43513
|
-
function words(string, pattern, guard) {
|
|
43514
|
-
string = toString(string);
|
|
43515
|
-
pattern = guard ? void 0 : pattern;
|
|
43516
|
-
if (pattern === void 0) {
|
|
43517
|
-
return hasUnicodeWord(string) ? unicodeWords(string) : asciiWords(string);
|
|
43518
|
-
}
|
|
43519
|
-
return string.match(pattern) || [];
|
|
43520
|
-
}
|
|
43521
|
-
words_1 = words;
|
|
43522
|
-
return words_1;
|
|
43523
|
-
}
|
|
43524
|
-
var _createCompounder;
|
|
43525
|
-
var hasRequired_createCompounder;
|
|
43526
|
-
function require_createCompounder() {
|
|
43527
|
-
if (hasRequired_createCompounder) return _createCompounder;
|
|
43528
|
-
hasRequired_createCompounder = 1;
|
|
43529
|
-
var arrayReduce = require_arrayReduce(), deburr = requireDeburr(), words = requireWords();
|
|
43530
|
-
var rsApos = "['’]";
|
|
43531
|
-
var reApos = RegExp(rsApos, "g");
|
|
43532
|
-
function createCompounder(callback) {
|
|
43533
|
-
return function(string) {
|
|
43534
|
-
return arrayReduce(words(deburr(string).replace(reApos, "")), callback, "");
|
|
43535
|
-
};
|
|
43536
|
-
}
|
|
43537
|
-
_createCompounder = createCompounder;
|
|
43538
|
-
return _createCompounder;
|
|
43539
|
-
}
|
|
43540
|
-
var _baseSlice;
|
|
43541
|
-
var hasRequired_baseSlice;
|
|
43542
|
-
function require_baseSlice() {
|
|
43543
|
-
if (hasRequired_baseSlice) return _baseSlice;
|
|
43544
|
-
hasRequired_baseSlice = 1;
|
|
43545
|
-
function baseSlice(array, start, end) {
|
|
43546
|
-
var index2 = -1, length = array.length;
|
|
43547
|
-
if (start < 0) {
|
|
43548
|
-
start = -start > length ? 0 : length + start;
|
|
43549
|
-
}
|
|
43550
|
-
end = end > length ? length : end;
|
|
43551
|
-
if (end < 0) {
|
|
43552
|
-
end += length;
|
|
43553
|
-
}
|
|
43554
|
-
length = start > end ? 0 : end - start >>> 0;
|
|
43555
|
-
start >>>= 0;
|
|
43556
|
-
var result = Array(length);
|
|
43557
|
-
while (++index2 < length) {
|
|
43558
|
-
result[index2] = array[index2 + start];
|
|
43559
|
-
}
|
|
43560
|
-
return result;
|
|
43561
|
-
}
|
|
43562
|
-
_baseSlice = baseSlice;
|
|
43563
|
-
return _baseSlice;
|
|
43564
|
-
}
|
|
43565
|
-
var _castSlice;
|
|
43566
|
-
var hasRequired_castSlice;
|
|
43567
|
-
function require_castSlice() {
|
|
43568
|
-
if (hasRequired_castSlice) return _castSlice;
|
|
43569
|
-
hasRequired_castSlice = 1;
|
|
43570
|
-
var baseSlice = require_baseSlice();
|
|
43571
|
-
function castSlice(array, start, end) {
|
|
43572
|
-
var length = array.length;
|
|
43573
|
-
end = end === void 0 ? length : end;
|
|
43574
|
-
return !start && end >= length ? array : baseSlice(array, start, end);
|
|
43575
|
-
}
|
|
43576
|
-
_castSlice = castSlice;
|
|
43577
|
-
return _castSlice;
|
|
43578
|
-
}
|
|
43579
|
-
var _hasUnicode;
|
|
43580
|
-
var hasRequired_hasUnicode;
|
|
43581
|
-
function require_hasUnicode() {
|
|
43582
|
-
if (hasRequired_hasUnicode) return _hasUnicode;
|
|
43583
|
-
hasRequired_hasUnicode = 1;
|
|
43584
|
-
var rsAstralRange = "\\ud800-\\udfff", rsComboMarksRange = "\\u0300-\\u036f", reComboHalfMarksRange = "\\ufe20-\\ufe2f", rsComboSymbolsRange = "\\u20d0-\\u20ff", rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange, rsVarRange = "\\ufe0e\\ufe0f";
|
|
43585
|
-
var rsZWJ = "\\u200d";
|
|
43586
|
-
var reHasUnicode = RegExp("[" + rsZWJ + rsAstralRange + rsComboRange + rsVarRange + "]");
|
|
43587
|
-
function hasUnicode(string) {
|
|
43588
|
-
return reHasUnicode.test(string);
|
|
43589
|
-
}
|
|
43590
|
-
_hasUnicode = hasUnicode;
|
|
43591
|
-
return _hasUnicode;
|
|
43592
|
-
}
|
|
43593
|
-
var _asciiToArray;
|
|
43594
|
-
var hasRequired_asciiToArray;
|
|
43595
|
-
function require_asciiToArray() {
|
|
43596
|
-
if (hasRequired_asciiToArray) return _asciiToArray;
|
|
43597
|
-
hasRequired_asciiToArray = 1;
|
|
43598
|
-
function asciiToArray(string) {
|
|
43599
|
-
return string.split("");
|
|
43600
|
-
}
|
|
43601
|
-
_asciiToArray = asciiToArray;
|
|
43602
|
-
return _asciiToArray;
|
|
43603
|
-
}
|
|
43604
|
-
var _unicodeToArray;
|
|
43605
|
-
var hasRequired_unicodeToArray;
|
|
43606
|
-
function require_unicodeToArray() {
|
|
43607
|
-
if (hasRequired_unicodeToArray) return _unicodeToArray;
|
|
43608
|
-
hasRequired_unicodeToArray = 1;
|
|
43609
|
-
var rsAstralRange = "\\ud800-\\udfff", rsComboMarksRange = "\\u0300-\\u036f", reComboHalfMarksRange = "\\ufe20-\\ufe2f", rsComboSymbolsRange = "\\u20d0-\\u20ff", rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange, rsVarRange = "\\ufe0e\\ufe0f";
|
|
43610
|
-
var rsAstral = "[" + rsAstralRange + "]", rsCombo = "[" + rsComboRange + "]", rsFitz = "\\ud83c[\\udffb-\\udfff]", rsModifier = "(?:" + rsCombo + "|" + rsFitz + ")", rsNonAstral = "[^" + rsAstralRange + "]", rsRegional = "(?:\\ud83c[\\udde6-\\uddff]){2}", rsSurrPair = "[\\ud800-\\udbff][\\udc00-\\udfff]", rsZWJ = "\\u200d";
|
|
43611
|
-
var reOptMod = rsModifier + "?", rsOptVar = "[" + rsVarRange + "]?", rsOptJoin = "(?:" + rsZWJ + "(?:" + [rsNonAstral, rsRegional, rsSurrPair].join("|") + ")" + rsOptVar + reOptMod + ")*", rsSeq = rsOptVar + reOptMod + rsOptJoin, rsSymbol = "(?:" + [rsNonAstral + rsCombo + "?", rsCombo, rsRegional, rsSurrPair, rsAstral].join("|") + ")";
|
|
43612
|
-
var reUnicode = RegExp(rsFitz + "(?=" + rsFitz + ")|" + rsSymbol + rsSeq, "g");
|
|
43613
|
-
function unicodeToArray(string) {
|
|
43614
|
-
return string.match(reUnicode) || [];
|
|
43615
|
-
}
|
|
43616
|
-
_unicodeToArray = unicodeToArray;
|
|
43617
|
-
return _unicodeToArray;
|
|
43618
|
-
}
|
|
43619
|
-
var _stringToArray;
|
|
43620
|
-
var hasRequired_stringToArray;
|
|
43621
|
-
function require_stringToArray() {
|
|
43622
|
-
if (hasRequired_stringToArray) return _stringToArray;
|
|
43623
|
-
hasRequired_stringToArray = 1;
|
|
43624
|
-
var asciiToArray = require_asciiToArray(), hasUnicode = require_hasUnicode(), unicodeToArray = require_unicodeToArray();
|
|
43625
|
-
function stringToArray(string) {
|
|
43626
|
-
return hasUnicode(string) ? unicodeToArray(string) : asciiToArray(string);
|
|
43627
|
-
}
|
|
43628
|
-
_stringToArray = stringToArray;
|
|
43629
|
-
return _stringToArray;
|
|
43630
|
-
}
|
|
43631
|
-
var _createCaseFirst;
|
|
43632
|
-
var hasRequired_createCaseFirst;
|
|
43633
|
-
function require_createCaseFirst() {
|
|
43634
|
-
if (hasRequired_createCaseFirst) return _createCaseFirst;
|
|
43635
|
-
hasRequired_createCaseFirst = 1;
|
|
43636
|
-
var castSlice = require_castSlice(), hasUnicode = require_hasUnicode(), stringToArray = require_stringToArray(), toString = requireToString();
|
|
43637
|
-
function createCaseFirst(methodName) {
|
|
43638
|
-
return function(string) {
|
|
43639
|
-
string = toString(string);
|
|
43640
|
-
var strSymbols = hasUnicode(string) ? stringToArray(string) : void 0;
|
|
43641
|
-
var chr = strSymbols ? strSymbols[0] : string.charAt(0);
|
|
43642
|
-
var trailing = strSymbols ? castSlice(strSymbols, 1).join("") : string.slice(1);
|
|
43643
|
-
return chr[methodName]() + trailing;
|
|
43644
|
-
};
|
|
43645
|
-
}
|
|
43646
|
-
_createCaseFirst = createCaseFirst;
|
|
43647
|
-
return _createCaseFirst;
|
|
43648
|
-
}
|
|
43649
|
-
var upperFirst_1;
|
|
43650
|
-
var hasRequiredUpperFirst;
|
|
43651
|
-
function requireUpperFirst() {
|
|
43652
|
-
if (hasRequiredUpperFirst) return upperFirst_1;
|
|
43653
|
-
hasRequiredUpperFirst = 1;
|
|
43654
|
-
var createCaseFirst = require_createCaseFirst();
|
|
43655
|
-
var upperFirst = createCaseFirst("toUpperCase");
|
|
43656
|
-
upperFirst_1 = upperFirst;
|
|
43657
|
-
return upperFirst_1;
|
|
43658
|
-
}
|
|
43659
|
-
var startCase_1;
|
|
43660
|
-
var hasRequiredStartCase;
|
|
43661
|
-
function requireStartCase() {
|
|
43662
|
-
if (hasRequiredStartCase) return startCase_1;
|
|
43663
|
-
hasRequiredStartCase = 1;
|
|
43664
|
-
var createCompounder = require_createCompounder(), upperFirst = requireUpperFirst();
|
|
43665
|
-
var startCase2 = createCompounder(function(result, word, index2) {
|
|
43666
|
-
return result + (index2 ? " " : "") + upperFirst(word);
|
|
43667
|
-
});
|
|
43668
|
-
startCase_1 = startCase2;
|
|
43669
|
-
return startCase_1;
|
|
43670
|
-
}
|
|
43671
|
-
var startCaseExports = requireStartCase();
|
|
43672
|
-
const startCase = /* @__PURE__ */ getDefaultExportFromCjs(startCaseExports);
|
|
43673
43365
|
const _hoisted_1$16 = {
|
|
43674
43366
|
viewBox: "0 0 24 24",
|
|
43675
43367
|
width: "1.2em",
|
|
@@ -43698,12 +43390,10 @@ function render$K(_ctx, _cache) {
|
|
|
43698
43390
|
])]);
|
|
43699
43391
|
}
|
|
43700
43392
|
const InfoIcon = markRaw({ name: "material-symbols-info", render: render$K });
|
|
43701
|
-
const
|
|
43702
|
-
const version = "0.4.44";
|
|
43393
|
+
const version = "0.4.45";
|
|
43703
43394
|
const dependencies = { "@guolao/vue-monaco-editor": "^1.6.0", "canvg": "^3.0.11", "dom-to-image-more": "^3.7.2", "echarts": "^6.0.0", "jsbarcode": "^3.12.3", "jspdf": "4.2", "jszip": "^3.10.1", "lodash": "^4.17.21", "qrcode": "^1.5.4", "uuid": "^11.0.3" };
|
|
43704
43395
|
const devDependencies = { "@iconify-json/material-symbols": "^1.2.53", "@types/jsbarcode": "^3.11.4", "@types/lodash": "^4.17.13", "@types/node": "^22.10.2", "@types/qrcode": "^1.5.6", "@types/uuid": "^10.0.0", "@vitejs/plugin-vue": "^5.2.1", "@vue/tsconfig": "^0.7.0", "autoprefixer": "^10.4.20", "postcss": "^8.4.49", "pinia": "2.3.0", "rollup-plugin-visualizer": "^7.0.1", "sharp": "^0.34.5", "tailwindcss": "^3.4.17", "terser": "^5.46.1", "typescript": "~5.6.2", "unplugin-icons": "^23.0.1", "vite": "^6.0.1", "vue": "3.5.13", "vue-i18n": "11.2.8", "vue-tsc": "^2.1.10" };
|
|
43705
43396
|
const pkg = {
|
|
43706
|
-
name,
|
|
43707
43397
|
version,
|
|
43708
43398
|
dependencies,
|
|
43709
43399
|
devDependencies
|
|
@@ -43787,25 +43477,26 @@ const _hoisted_72$1 = {
|
|
|
43787
43477
|
class: "space-y-6"
|
|
43788
43478
|
};
|
|
43789
43479
|
const _hoisted_73$1 = { class: "text-center mb-8" };
|
|
43790
|
-
const _hoisted_74$1 =
|
|
43791
|
-
const _hoisted_75$1 = { class: "
|
|
43792
|
-
const _hoisted_76$1 = { class: "mt-
|
|
43793
|
-
const _hoisted_77$1 = { class: "
|
|
43794
|
-
const _hoisted_78$1 = { class: "
|
|
43795
|
-
const _hoisted_79$1 = { class: "
|
|
43796
|
-
const _hoisted_80$1 = { class: "
|
|
43797
|
-
const _hoisted_81$1 = { class: "flex items-center
|
|
43798
|
-
const _hoisted_82$1 = { class: "
|
|
43799
|
-
const _hoisted_83$1 = { class: "
|
|
43800
|
-
const _hoisted_84$1 = { class: "
|
|
43801
|
-
const _hoisted_85$1 = { class: "
|
|
43802
|
-
const _hoisted_86$1 = { class: "
|
|
43803
|
-
const _hoisted_87$1 = { class: "
|
|
43480
|
+
const _hoisted_74$1 = ["alt"];
|
|
43481
|
+
const _hoisted_75$1 = { class: "text-xl font-bold text-gray-800" };
|
|
43482
|
+
const _hoisted_76$1 = { class: "mt-1 text-xs text-gray-500" };
|
|
43483
|
+
const _hoisted_77$1 = { class: "mt-4 mx-auto max-w-md text-left" };
|
|
43484
|
+
const _hoisted_78$1 = { class: "font-medium text-gray-900 mb-2 border-b pb-1" };
|
|
43485
|
+
const _hoisted_79$1 = { class: "space-y-2" };
|
|
43486
|
+
const _hoisted_80$1 = { class: "flex items-center justify-between rounded-md border border-gray-200 bg-gray-50 px-3 py-2 text-xs" };
|
|
43487
|
+
const _hoisted_81$1 = { class: "inline-flex items-center gap-1.5 text-gray-500" };
|
|
43488
|
+
const _hoisted_82$1 = { class: "flex items-center justify-between rounded-md border border-gray-200 bg-gray-50 px-3 py-2 text-xs" };
|
|
43489
|
+
const _hoisted_83$1 = { class: "inline-flex items-center gap-1.5 text-gray-500" };
|
|
43490
|
+
const _hoisted_84$1 = { class: "font-medium text-gray-900 mb-3 border-b pb-1" };
|
|
43491
|
+
const _hoisted_85$1 = { class: "bg-gray-50 rounded-lg border border-gray-200 overflow-hidden" };
|
|
43492
|
+
const _hoisted_86$1 = { class: "w-full text-xs text-left" };
|
|
43493
|
+
const _hoisted_87$1 = { class: "bg-gray-100 text-gray-700 font-medium" };
|
|
43804
43494
|
const _hoisted_88$1 = { class: "px-4 py-2 border-b" };
|
|
43805
|
-
const _hoisted_89$1 = { class: "
|
|
43806
|
-
const _hoisted_90$1 = { class: "
|
|
43807
|
-
const _hoisted_91$1 = ["
|
|
43808
|
-
const _hoisted_92$1 =
|
|
43495
|
+
const _hoisted_89$1 = { class: "px-4 py-2 border-b" };
|
|
43496
|
+
const _hoisted_90$1 = { class: "divide-y divide-gray-200" };
|
|
43497
|
+
const _hoisted_91$1 = { class: "px-4 py-1 text-gray-700 font-mono text-[11px]" };
|
|
43498
|
+
const _hoisted_92$1 = ["href", "title"];
|
|
43499
|
+
const _hoisted_93$1 = { class: "px-4 py-1 text-gray-500 text-[11px]" };
|
|
43809
43500
|
const _sfc_main$p = /* @__PURE__ */ defineComponent({
|
|
43810
43501
|
__name: "HelpModal",
|
|
43811
43502
|
props: {
|
|
@@ -43844,13 +43535,13 @@ const _sfc_main$p = /* @__PURE__ */ defineComponent({
|
|
|
43844
43535
|
const dependencies2 = [
|
|
43845
43536
|
...Object.entries(pkg.dependencies || {}),
|
|
43846
43537
|
...Object.entries(pkg.devDependencies || {})
|
|
43847
|
-
].map(([
|
|
43848
|
-
name
|
|
43538
|
+
].map(([name, version22]) => ({
|
|
43539
|
+
name,
|
|
43849
43540
|
version: version22,
|
|
43850
|
-
url: `https://www.npmjs.com/package/${encodeURIComponent(
|
|
43541
|
+
url: `https://www.npmjs.com/package/${encodeURIComponent(name)}`
|
|
43851
43542
|
}));
|
|
43852
43543
|
const version2 = pkg.version;
|
|
43853
|
-
const projectName =
|
|
43544
|
+
const projectName = computed(() => t("common.appTitle"));
|
|
43854
43545
|
return (_ctx, _cache) => {
|
|
43855
43546
|
return openBlock(), createBlock(Teleport, {
|
|
43856
43547
|
to: unref(modalContainer) || "body"
|
|
@@ -43884,7 +43575,7 @@ const _sfc_main$p = /* @__PURE__ */ defineComponent({
|
|
|
43884
43575
|
]),
|
|
43885
43576
|
createBaseVNode("div", _hoisted_6$j, [
|
|
43886
43577
|
createBaseVNode("div", _hoisted_7$h, [
|
|
43887
|
-
createBaseVNode("h3", _hoisted_8$f, toDisplayString$1(activeTab.value === "shortcuts" ? unref(t)("shortcuts.keyboardShortcuts") : unref(t)("help.aboutProject", { name:
|
|
43578
|
+
createBaseVNode("h3", _hoisted_8$f, toDisplayString$1(activeTab.value === "shortcuts" ? unref(t)("shortcuts.keyboardShortcuts") : unref(t)("help.aboutProject", { name: projectName.value })), 1),
|
|
43888
43579
|
createBaseVNode("button", {
|
|
43889
43580
|
onClick: close,
|
|
43890
43581
|
class: "p-1 hover:bg-gray-100 rounded-full transition-colors text-gray-500"
|
|
@@ -44049,18 +43740,18 @@ const _sfc_main$p = /* @__PURE__ */ defineComponent({
|
|
|
44049
43740
|
])) : createCommentVNode("", true),
|
|
44050
43741
|
activeTab.value === "about" ? (openBlock(), createElementBlock("div", _hoisted_72$1, [
|
|
44051
43742
|
createBaseVNode("div", _hoisted_73$1, [
|
|
44052
|
-
|
|
43743
|
+
createBaseVNode("img", {
|
|
44053
43744
|
src: _imports_0,
|
|
44054
|
-
alt: "
|
|
43745
|
+
alt: unref(t)("common.appTitle"),
|
|
44055
43746
|
class: "w-12 h-12 mx-auto mb-2"
|
|
44056
|
-
}, null,
|
|
44057
|
-
createBaseVNode("h2",
|
|
44058
|
-
createBaseVNode("div",
|
|
44059
|
-
createBaseVNode("div",
|
|
44060
|
-
createBaseVNode("h4",
|
|
44061
|
-
createBaseVNode("div",
|
|
44062
|
-
createBaseVNode("div",
|
|
44063
|
-
createBaseVNode("span",
|
|
43747
|
+
}, null, 8, _hoisted_74$1),
|
|
43748
|
+
createBaseVNode("h2", _hoisted_75$1, toDisplayString$1(projectName.value), 1),
|
|
43749
|
+
createBaseVNode("div", _hoisted_76$1, toDisplayString$1(unref(t)("help.version")) + " " + toDisplayString$1(unref(version2)), 1),
|
|
43750
|
+
createBaseVNode("div", _hoisted_77$1, [
|
|
43751
|
+
createBaseVNode("h4", _hoisted_78$1, toDisplayString$1(unref(t)("help.links")), 1),
|
|
43752
|
+
createBaseVNode("div", _hoisted_79$1, [
|
|
43753
|
+
createBaseVNode("div", _hoisted_80$1, [
|
|
43754
|
+
createBaseVNode("span", _hoisted_81$1, [
|
|
44064
43755
|
_cache[29] || (_cache[29] = createBaseVNode("img", {
|
|
44065
43756
|
src: _imports_1,
|
|
44066
43757
|
alt: "Website",
|
|
@@ -44076,8 +43767,8 @@ const _sfc_main$p = /* @__PURE__ */ defineComponent({
|
|
|
44076
43767
|
title: "https://printdot.cc"
|
|
44077
43768
|
}, "https://printdot.cc", -1))
|
|
44078
43769
|
]),
|
|
44079
|
-
createBaseVNode("div",
|
|
44080
|
-
createBaseVNode("span",
|
|
43770
|
+
createBaseVNode("div", _hoisted_82$1, [
|
|
43771
|
+
createBaseVNode("span", _hoisted_83$1, [
|
|
44081
43772
|
_cache[31] || (_cache[31] = createBaseVNode("svg", {
|
|
44082
43773
|
viewBox: "0 0 16 16",
|
|
44083
43774
|
"aria-hidden": "true",
|
|
@@ -44102,31 +43793,31 @@ const _sfc_main$p = /* @__PURE__ */ defineComponent({
|
|
|
44102
43793
|
])
|
|
44103
43794
|
]),
|
|
44104
43795
|
createBaseVNode("div", null, [
|
|
44105
|
-
createBaseVNode("h4",
|
|
44106
|
-
createBaseVNode("div",
|
|
44107
|
-
createBaseVNode("table",
|
|
44108
|
-
createBaseVNode("thead",
|
|
43796
|
+
createBaseVNode("h4", _hoisted_84$1, toDisplayString$1(unref(t)("help.dependencies")), 1),
|
|
43797
|
+
createBaseVNode("div", _hoisted_85$1, [
|
|
43798
|
+
createBaseVNode("table", _hoisted_86$1, [
|
|
43799
|
+
createBaseVNode("thead", _hoisted_87$1, [
|
|
44109
43800
|
createBaseVNode("tr", null, [
|
|
44110
|
-
createBaseVNode("th",
|
|
44111
|
-
createBaseVNode("th",
|
|
43801
|
+
createBaseVNode("th", _hoisted_88$1, toDisplayString$1(unref(t)("help.package")), 1),
|
|
43802
|
+
createBaseVNode("th", _hoisted_89$1, toDisplayString$1(unref(t)("help.version")), 1)
|
|
44112
43803
|
])
|
|
44113
43804
|
]),
|
|
44114
|
-
createBaseVNode("tbody",
|
|
43805
|
+
createBaseVNode("tbody", _hoisted_90$1, [
|
|
44115
43806
|
(openBlock(true), createElementBlock(Fragment, null, renderList(unref(dependencies2), (dep) => {
|
|
44116
43807
|
return openBlock(), createElementBlock("tr", {
|
|
44117
43808
|
key: dep.name,
|
|
44118
43809
|
class: "hover:bg-gray-50"
|
|
44119
43810
|
}, [
|
|
44120
|
-
createBaseVNode("td",
|
|
43811
|
+
createBaseVNode("td", _hoisted_91$1, [
|
|
44121
43812
|
createBaseVNode("a", {
|
|
44122
43813
|
href: dep.url,
|
|
44123
43814
|
target: "_blank",
|
|
44124
43815
|
rel: "noopener noreferrer",
|
|
44125
43816
|
title: dep.url,
|
|
44126
43817
|
class: "hover:underline hover:decoration-blue-600 hover:text-blue-600 transition-colors"
|
|
44127
|
-
}, toDisplayString$1(dep.name), 9,
|
|
43818
|
+
}, toDisplayString$1(dep.name), 9, _hoisted_92$1)
|
|
44128
43819
|
]),
|
|
44129
|
-
createBaseVNode("td",
|
|
43820
|
+
createBaseVNode("td", _hoisted_93$1, toDisplayString$1(dep.version), 1)
|
|
44130
43821
|
]);
|
|
44131
43822
|
}), 128))
|
|
44132
43823
|
])
|
|
@@ -45921,7 +45612,7 @@ const _sfc_main$m = /* @__PURE__ */ defineComponent({
|
|
|
45921
45612
|
newName = payload;
|
|
45922
45613
|
} else {
|
|
45923
45614
|
newName = payload.name;
|
|
45924
|
-
const { name
|
|
45615
|
+
const { name, ...rest } = payload;
|
|
45925
45616
|
if (Object.keys(rest).length > 0) {
|
|
45926
45617
|
extraValues = rest;
|
|
45927
45618
|
}
|
|
@@ -46454,7 +46145,7 @@ const _sfc_main$i = /* @__PURE__ */ defineComponent({
|
|
|
46454
46145
|
},
|
|
46455
46146
|
emits: ["update:value"],
|
|
46456
46147
|
setup(__props, { emit: __emit }) {
|
|
46457
|
-
const Editor = /* @__PURE__ */ defineAsyncComponent(() => import("./index-
|
|
46148
|
+
const Editor = /* @__PURE__ */ defineAsyncComponent(() => import("./index-sJJEP3Bf.js").then((m) => m.Editor));
|
|
46458
46149
|
const emit2 = __emit;
|
|
46459
46150
|
useDesignerStore();
|
|
46460
46151
|
const { isDark: isDark2 } = useTheme();
|
|
@@ -48475,6 +48166,21 @@ const _sfc_main$a = /* @__PURE__ */ defineComponent({
|
|
|
48475
48166
|
var _a2, _b;
|
|
48476
48167
|
return ((_b = (_a2 = element.value) == null ? void 0 : _a2.children) == null ? void 0 : _b.length) || 0;
|
|
48477
48168
|
});
|
|
48169
|
+
const cellSelectionActive = computed(() => {
|
|
48170
|
+
const el2 = element.value;
|
|
48171
|
+
if (!el2) return false;
|
|
48172
|
+
if (el2.type === ElementType.CUSTOM_TABLE) {
|
|
48173
|
+
return !!store.customTableSelection && store.customTableSelection.elementId === el2.id;
|
|
48174
|
+
}
|
|
48175
|
+
if (el2.type === ElementType.TABLE) {
|
|
48176
|
+
return !!store.tableSelection && store.tableSelection.elementId === el2.id;
|
|
48177
|
+
}
|
|
48178
|
+
return false;
|
|
48179
|
+
});
|
|
48180
|
+
const selectedCellStyle = computed(() => {
|
|
48181
|
+
if (!cellSelectionActive.value || !element.value) return null;
|
|
48182
|
+
return element.value.type === ElementType.CUSTOM_TABLE ? store.customTableSelectionStyle : store.tableSelectionStyle;
|
|
48183
|
+
});
|
|
48478
48184
|
const showCustomElementModal = ref(false);
|
|
48479
48185
|
const customElementInitialName = ref("");
|
|
48480
48186
|
const isSelfStyled = computed(() => {
|
|
@@ -48753,19 +48459,19 @@ const _sfc_main$a = /* @__PURE__ */ defineComponent({
|
|
|
48753
48459
|
});
|
|
48754
48460
|
const onSaveCustomElement = (payload) => {
|
|
48755
48461
|
if (element.value) {
|
|
48756
|
-
let
|
|
48462
|
+
let name = "";
|
|
48757
48463
|
let extraValues = void 0;
|
|
48758
48464
|
if (typeof payload === "string") {
|
|
48759
|
-
|
|
48465
|
+
name = payload;
|
|
48760
48466
|
} else {
|
|
48761
|
-
|
|
48467
|
+
name = payload.name;
|
|
48762
48468
|
const { name: _, ...rest } = payload;
|
|
48763
48469
|
if (Object.keys(rest).length > 0) {
|
|
48764
48470
|
extraValues = rest;
|
|
48765
48471
|
}
|
|
48766
48472
|
}
|
|
48767
|
-
if (
|
|
48768
|
-
store.addCustomElement(
|
|
48473
|
+
if (name) {
|
|
48474
|
+
store.addCustomElement(name, element.value, extraValues);
|
|
48769
48475
|
}
|
|
48770
48476
|
}
|
|
48771
48477
|
};
|
|
@@ -48783,11 +48489,20 @@ const _sfc_main$a = /* @__PURE__ */ defineComponent({
|
|
|
48783
48489
|
}
|
|
48784
48490
|
};
|
|
48785
48491
|
const handleStyleChange = (key, value) => {
|
|
48786
|
-
if (element.value)
|
|
48787
|
-
|
|
48788
|
-
|
|
48789
|
-
|
|
48492
|
+
if (!element.value) return;
|
|
48493
|
+
if (cellSelectionActive.value) {
|
|
48494
|
+
if (element.value.type === ElementType.CUSTOM_TABLE) {
|
|
48495
|
+
store.updateCustomTableSelectionStyle({ [key]: value });
|
|
48496
|
+
return;
|
|
48497
|
+
}
|
|
48498
|
+
if (element.value.type === ElementType.TABLE) {
|
|
48499
|
+
store.updateTableSelectionStyle({ [key]: value });
|
|
48500
|
+
return;
|
|
48501
|
+
}
|
|
48790
48502
|
}
|
|
48503
|
+
store.updateElement(element.value.id, {
|
|
48504
|
+
style: { ...element.value.style, [key]: value }
|
|
48505
|
+
});
|
|
48791
48506
|
};
|
|
48792
48507
|
const handleDataJsonChange = (fieldKey, e) => {
|
|
48793
48508
|
try {
|
|
@@ -48913,6 +48628,10 @@ const _sfc_main$a = /* @__PURE__ */ defineComponent({
|
|
|
48913
48628
|
};
|
|
48914
48629
|
const getFieldValue = (field) => {
|
|
48915
48630
|
if (!element.value) return field.defaultValue;
|
|
48631
|
+
if (field.target === "style" && field.key && selectedCellStyle.value) {
|
|
48632
|
+
const value2 = selectedCellStyle.value[field.key];
|
|
48633
|
+
return value2 ?? field.defaultValue;
|
|
48634
|
+
}
|
|
48916
48635
|
const target = field.target === "style" ? element.value.style : element.value;
|
|
48917
48636
|
const value = target[field.key];
|
|
48918
48637
|
return value ?? field.defaultValue;
|
|
@@ -49602,7 +49321,7 @@ const _sfc_main$a = /* @__PURE__ */ defineComponent({
|
|
|
49602
49321
|
};
|
|
49603
49322
|
}
|
|
49604
49323
|
});
|
|
49605
|
-
const PropertiesPanel = /* @__PURE__ */ _export_sfc(_sfc_main$a, [["__scopeId", "data-v-
|
|
49324
|
+
const PropertiesPanel = /* @__PURE__ */ _export_sfc(_sfc_main$a, [["__scopeId", "data-v-ce99fe2e"]]);
|
|
49606
49325
|
const _sfc_main$9 = /* @__PURE__ */ defineComponent({
|
|
49607
49326
|
__name: "Ruler",
|
|
49608
49327
|
props: {
|
|
@@ -51243,7 +50962,7 @@ const _sfc_main$6 = /* @__PURE__ */ defineComponent({
|
|
|
51243
50962
|
};
|
|
51244
50963
|
const renderBarcodeDataUrl = async (element) => {
|
|
51245
50964
|
try {
|
|
51246
|
-
const jsBarcodeModule = await import("./JsBarcode-
|
|
50965
|
+
const jsBarcodeModule = await import("./JsBarcode-BO87HgIp.js").then((n) => n.JsBarcode);
|
|
51247
50966
|
const JsBarcode = (jsBarcodeModule == null ? void 0 : jsBarcodeModule.default) || jsBarcodeModule;
|
|
51248
50967
|
const canvas = document.createElement("canvas");
|
|
51249
50968
|
const style = element.style || {};
|
|
@@ -51270,7 +50989,7 @@ const _sfc_main$6 = /* @__PURE__ */ defineComponent({
|
|
|
51270
50989
|
const renderQrDataUrl = async (element) => {
|
|
51271
50990
|
var _a2, _b;
|
|
51272
50991
|
try {
|
|
51273
|
-
const qrcodeModule = await import("./browser-
|
|
50992
|
+
const qrcodeModule = await import("./browser-Ck0N2Y2e.js").then((n) => n.browser);
|
|
51274
50993
|
const QRCode = (qrcodeModule == null ? void 0 : qrcodeModule.default) || qrcodeModule;
|
|
51275
50994
|
return await QRCode.toDataURL(getResolvedContent(element), {
|
|
51276
50995
|
margin: 0,
|
|
@@ -52806,6 +52525,7 @@ const _hoisted_19 = {
|
|
|
52806
52525
|
key: 1,
|
|
52807
52526
|
class: "fixed inset-0 bg-black/20 dark:bg-black/40 flex items-center justify-center z-[10000] pointer-events-auto transition-opacity duration-300"
|
|
52808
52527
|
};
|
|
52528
|
+
const ONBOARDING_AUTO_START_SETTLE_MS = 800;
|
|
52809
52529
|
const CRASH_KEY = "print-designer-crash-recovery";
|
|
52810
52530
|
const PAGE_GAP_Y = 20;
|
|
52811
52531
|
const _sfc_main$2 = /* @__PURE__ */ defineComponent({
|
|
@@ -52840,6 +52560,7 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
|
|
|
52840
52560
|
const showRenderLoading = ref(false);
|
|
52841
52561
|
let renderLoadingTimer = null;
|
|
52842
52562
|
const isGlobalLoading = computed(() => templateStore.isLoading || store.isDataLoading || store.isExternalDataLoading || showRenderLoading.value);
|
|
52563
|
+
const onboardingAutoEligible = computed(() => store.mode === "template" && store.pages.every((page2) => !page2.elements || page2.elements.length === 0) && !isGlobalLoading.value);
|
|
52843
52564
|
const startRenderTask = () => {
|
|
52844
52565
|
pendingRenderCount.value += 1;
|
|
52845
52566
|
if (renderLoadingTimer === null && !showRenderLoading.value) {
|
|
@@ -52988,7 +52709,13 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
|
|
|
52988
52709
|
onMounted(() => {
|
|
52989
52710
|
store.setIsExporting(false);
|
|
52990
52711
|
if (!props.headless) {
|
|
52991
|
-
|
|
52712
|
+
const tryStartOnboarding = debounce(() => {
|
|
52713
|
+
if (onboardingAutoEligible.value) onboarding.init();
|
|
52714
|
+
}, ONBOARDING_AUTO_START_SETTLE_MS);
|
|
52715
|
+
watch(onboardingAutoEligible, (eligible) => {
|
|
52716
|
+
if (eligible) tryStartOnboarding();
|
|
52717
|
+
else tryStartOnboarding.cancel();
|
|
52718
|
+
}, { immediate: true });
|
|
52992
52719
|
}
|
|
52993
52720
|
nextTick(() => {
|
|
52994
52721
|
updateOffset();
|
|
@@ -53167,9 +52894,9 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
|
|
|
53167
52894
|
}
|
|
53168
52895
|
store.cancelCustomElementEdit();
|
|
53169
52896
|
};
|
|
53170
|
-
const handleSaveCustomEditAs = (
|
|
52897
|
+
const handleSaveCustomEditAs = (name) => {
|
|
53171
52898
|
if (isGlobalLoading.value) return;
|
|
53172
|
-
const trimmed =
|
|
52899
|
+
const trimmed = name.trim();
|
|
53173
52900
|
if (!trimmed) return;
|
|
53174
52901
|
const ok = store.saveCustomElementEditAs(trimmed);
|
|
53175
52902
|
if (!ok) {
|
|
@@ -58757,7 +58484,7 @@ function requireLodash() {
|
|
|
58757
58484
|
}
|
|
58758
58485
|
return string.split(separator, limit);
|
|
58759
58486
|
}
|
|
58760
|
-
var
|
|
58487
|
+
var startCase = createCompounder(function(result2, word, index2) {
|
|
58761
58488
|
return result2 + (index2 ? " " : "") + upperFirst(word);
|
|
58762
58489
|
});
|
|
58763
58490
|
function startsWith(string, target, position) {
|
|
@@ -59401,7 +59128,7 @@ function requireLodash() {
|
|
|
59401
59128
|
lodash2.sortedLastIndex = sortedLastIndex;
|
|
59402
59129
|
lodash2.sortedLastIndexBy = sortedLastIndexBy;
|
|
59403
59130
|
lodash2.sortedLastIndexOf = sortedLastIndexOf;
|
|
59404
|
-
lodash2.startCase =
|
|
59131
|
+
lodash2.startCase = startCase;
|
|
59405
59132
|
lodash2.startsWith = startsWith;
|
|
59406
59133
|
lodash2.subtract = subtract;
|
|
59407
59134
|
lodash2.sum = sum;
|
|
@@ -60252,23 +59979,23 @@ class PrintDesignerElement extends HTMLElementBase {
|
|
|
60252
59979
|
static get observedAttributes() {
|
|
60253
59980
|
return ["lang", "headless", "mode", "view-mode", "ui-mode", "config"];
|
|
60254
59981
|
}
|
|
60255
|
-
attributeChangedCallback(
|
|
60256
|
-
if (
|
|
59982
|
+
attributeChangedCallback(name, oldValue, newValue) {
|
|
59983
|
+
if (name === "lang" && newValue !== oldValue) {
|
|
60257
59984
|
this.setLanguage(newValue);
|
|
60258
59985
|
}
|
|
60259
|
-
if (
|
|
59986
|
+
if (name === "headless" && newValue !== oldValue) {
|
|
60260
59987
|
this._headless.value = newValue === "true" || newValue === "";
|
|
60261
59988
|
}
|
|
60262
|
-
if (
|
|
59989
|
+
if (name === "mode" && newValue !== oldValue) {
|
|
60263
59990
|
this.setMode(newValue === "report" ? "report" : "template");
|
|
60264
59991
|
}
|
|
60265
|
-
if (
|
|
59992
|
+
if (name === "view-mode" && newValue !== oldValue) {
|
|
60266
59993
|
this.setViewMode(newValue === "preview" ? "preview" : "edit");
|
|
60267
59994
|
}
|
|
60268
|
-
if (
|
|
59995
|
+
if (name === "ui-mode" && newValue !== oldValue) {
|
|
60269
59996
|
this.setUIMode(newValue === "expert" ? "expert" : "beginner");
|
|
60270
59997
|
}
|
|
60271
|
-
if (
|
|
59998
|
+
if (name === "config" && newValue !== oldValue) {
|
|
60272
59999
|
try {
|
|
60273
60000
|
const parsed = JSON.parse(newValue);
|
|
60274
60001
|
this.init(parsed);
|
|
@@ -61527,13 +61254,13 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
61527
61254
|
onMounted(() => {
|
|
61528
61255
|
const el2 = elRef.value;
|
|
61529
61256
|
if (!el2) return;
|
|
61530
|
-
const forward = (
|
|
61257
|
+
const forward = (name, cb) => {
|
|
61531
61258
|
const listener = (e) => {
|
|
61532
61259
|
if (cb) cb(e.detail);
|
|
61533
|
-
else emit2(
|
|
61260
|
+
else emit2(name, e.detail);
|
|
61534
61261
|
};
|
|
61535
|
-
listenerMap.set(
|
|
61536
|
-
el2.addEventListener(
|
|
61262
|
+
listenerMap.set(name, listener);
|
|
61263
|
+
el2.addEventListener(name, listener);
|
|
61537
61264
|
};
|
|
61538
61265
|
forward("ready", () => {
|
|
61539
61266
|
emit2("ready");
|
|
@@ -61553,8 +61280,8 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
61553
61280
|
onBeforeUnmount(() => {
|
|
61554
61281
|
const el2 = elRef.value;
|
|
61555
61282
|
if (!el2) return;
|
|
61556
|
-
listenerMap.forEach((listener,
|
|
61557
|
-
el2.removeEventListener(
|
|
61283
|
+
listenerMap.forEach((listener, name) => {
|
|
61284
|
+
el2.removeEventListener(name, listener);
|
|
61558
61285
|
});
|
|
61559
61286
|
listenerMap.clear();
|
|
61560
61287
|
});
|
|
@@ -61600,8 +61327,8 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
61600
61327
|
function matchRoute(url, pattern) {
|
|
61601
61328
|
const urlPath = url.split("?")[0];
|
|
61602
61329
|
const paramNames = [];
|
|
61603
|
-
const regexPattern = pattern.replace(/:(\w+)/g, (_,
|
|
61604
|
-
paramNames.push(
|
|
61330
|
+
const regexPattern = pattern.replace(/:(\w+)/g, (_, name) => {
|
|
61331
|
+
paramNames.push(name);
|
|
61605
61332
|
return "([^/]+)";
|
|
61606
61333
|
});
|
|
61607
61334
|
const regex = new RegExp(`^${regexPattern}$`);
|
|
@@ -61610,8 +61337,8 @@ function matchRoute(url, pattern) {
|
|
|
61610
61337
|
return { matched: false, params: {} };
|
|
61611
61338
|
}
|
|
61612
61339
|
const params = {};
|
|
61613
|
-
paramNames.forEach((
|
|
61614
|
-
params[
|
|
61340
|
+
paramNames.forEach((name, index2) => {
|
|
61341
|
+
params[name] = match[index2 + 1];
|
|
61615
61342
|
});
|
|
61616
61343
|
return { matched: true, params };
|
|
61617
61344
|
}
|
|
@@ -61942,8 +61669,8 @@ const presets = {
|
|
|
61942
61669
|
/** 通用报告场景 */
|
|
61943
61670
|
generalReport
|
|
61944
61671
|
};
|
|
61945
|
-
function getPreset(
|
|
61946
|
-
return presets[
|
|
61672
|
+
function getPreset(name) {
|
|
61673
|
+
return presets[name];
|
|
61947
61674
|
}
|
|
61948
61675
|
function mergePreset(preset, custom) {
|
|
61949
61676
|
return {
|