super-page-runtime 2.2.38 → 2.2.40

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.
@@ -1,6 +1,6 @@
1
1
  import { defineAsyncComponent as e } from "vue";
2
2
  import { usePageContextStore as t } from "./page-store.js";
3
- const m = [{ name: "container", label: "容器", icon: "assets/images/group-container.png", items: [{ name: "form", label: "表单", runtimeComponent: e(() => import("../views/assemblys/container/form/form-runtime.vue.js")) }, { name: "card", label: "卡片", runtimeComponent: e(() => import("../views/assemblys/container/card/card-runtime.vue.js")) }, { name: "collapse", label: "折叠面板", runtimeComponent: e(() => import("../views/assemblys/container/collapse/collapse-runtime.vue.js")) }, { name: "layout", label: "Flex", runtimeComponent: e(() => import("../views/assemblys/container/flex/flex-runtime.vue.js")) }, { name: "tabs", label: "Tabs", runtimeComponent: e(() => import("../views/assemblys/container/tabs/tabs-runtime.vue.js")) }, { name: "tools", label: "工具栏", runtimeComponent: e(() => import("../views/assemblys/container/tools/tools-runtime.js")) }, { name: "iframe", label: "Iframe", runtimeComponent: e(() => import("../views/assemblys/container/iframe/iframe-runtime.vue.js")) }, { name: "container", label: "布局", runtimeComponent: e(() => import("../views/assemblys/container/container/container-runtime.vue.js")) }] }, { name: "form", label: "表单", items: [{ name: "input-text", label: "文本框", runtimeComponent: e(() => import("../views/assemblys/form/input-text/inputtext-runtime.vue.js")) }, { name: "select", label: "下拉框", runtimeComponent: e(() => import("../views/assemblys/form/select/select-runtime.vue.js")) }, { name: "radio", label: "单选框", runtimeComponent: e(() => import("../views/assemblys/form/radio/radio-runtime.vue.js")) }, { name: "checkbox", label: "复选框", runtimeComponent: e(() => import("../views/assemblys/form/checkbox/checkbox-runtime.vue.js")) }, { name: "textarea", label: "文本域", runtimeComponent: e(() => import("../views/assemblys/form/textarea/textarea-runtime.vue.js")) }, { name: "datePicker", label: "日期/时间", runtimeComponent: e(() => import("../views/assemblys/form/date-picker/datepicker-runtime.vue.js")) }, { name: "switch", label: "开关", runtimeComponent: e(() => import("../views/assemblys/form/switch/switch-runtime.vue.js")) }, { name: "inputNumber", label: "计数器", runtimeComponent: e(() => import("../views/assemblys/form/input-number/input-number-runtime.vue.js")) }, { name: "tag", label: "标签", runtimeComponent: e(() => import("../views/assemblys/form/tag/tag-runtime.vue.js")) }, { name: "richText", label: "富文本", runtimeComponent: e(() => import("../views/assemblys/form/rich-text/richtext-runtime.vue.js")) }, { name: "divider", label: "分割线", runtimeComponent: e(() => import("../views/assemblys/form/divider/divider-runtime.vue.js")) }, { name: "separatelabel", label: "分割标签", runtimeComponent: e(() => import("../views/assemblys/form/separatelabel/separatelabel-runtime.vue.js")) }, { name: "placeholder", label: "占位符", runtimeComponent: e(() => import("../views/assemblys/form/placeholder/placeholder-runtime.vue.js")) }, { name: "link", label: "链接", runtimeComponent: e(() => import("../views/assemblys/form/link/link-runtime.vue.js")) }, { name: "label", label: "Label组件", runtimeComponent: e(() => import("../views/assemblys/form/label/label-runtime.vue.js")) }, { name: "dept-tree", label: "组织树", runtimeComponent: e(() => import("../views/assemblys/form/dept-tree/depttree-runtime.vue.js")) }, { name: "file-upload", label: "文件上传", runtimeComponent: e(() => import("../views/assemblys/form/file-upload/fileupload-runtime.vue.js")) }] }, { name: "button", label: "按钮", items: [{ name: "button-detail", label: "按钮", runtimeComponent: e(() => import("../views/assemblys/button/button/button-runtime.vue.js")) }, { name: "button-group", label: "按钮组", runtimeComponent: e(() => import("../views/assemblys/button/button-group/buttongroup-runtime.vue.js")) }, { name: "dropdown", label: "下拉菜单", runtimeComponent: e(() => import("../views/assemblys/button/dropdown/dropdown-runtime.vue.js")) }, { name: "print-label", label: "打印标签", runtimeComponent: e(() => import("../views/assemblys/button/print-label/printlabel-runtime.vue.js")) }, { name: "export-pdf", label: "打印标签", runtimeComponent: e(() => import("../views/assemblys/button/export-pdf/exportpdf-runtime.vue.js")) }] }, { name: "workflow", label: "工作流", items: [{ name: "workflow-button", label: "工作流按钮", runtimeComponent: e(() => import("../views/assemblys/workflow/workflow-button/workflowbutton-runtime.vue.js")) }, { name: "picture-flow", label: "图形历史", runtimeComponent: e(() => import("../views/assemblys/workflow/picture-flow/pictureflow-runtime.vue.js")) }, { name: "text-flow", label: "文本历史", runtimeComponent: e(() => import("../views/assemblys/workflow/text-history/textflow-runtime.vue.js")) }, { name: "workflow-node", label: "流程环节", runtimeComponent: e(() => import("../views/assemblys/workflow/workflow-node/workflownode-runtime.vue.js")) }] }, { name: "chart", label: "统计图", items: [{ name: "chart-column-line", label: "柱/折图", runtimeComponent: e(() => import("../views/assemblys/chart/column-line/column-line-runtime.vue.js")) }, { name: "chart-pie", label: "饼图", runtimeComponent: e(() => import("../views/assemblys/chart/pie/pie-runtime.vue.js")) }, { name: "chart-gauge", label: "仪表盘", runtimeComponent: e(() => import("../views/assemblys/chart/gauge/gauge-runtime.vue.js")) }, { name: "chart-radar", label: "雷达图", runtimeComponent: e(() => import("../views/assemblys/chart/radar/radar-runtime.vue.js")) }, { name: "chart-scatter", label: "散点图", runtimeComponent: e(() => import("../views/assemblys/chart/scatter/scatter-runtime.vue.js")) }, { name: "statistical-table", label: "统计表格", runtimeComponent: e(() => import("../views/assemblys/chart/table/table-runtime.vue.js")) }] }, { name: "data", label: "数据", items: [{ name: "table", label: "表格", runtimeComponent: e(() => import("../views/assemblys/data/table/table-runtime.vue.js")) }, { name: "tree", label: "树控件", runtimeComponent: e(() => import("../views/assemblys/data/tree/tree-runtime.vue.js")) }, { name: "bar-code", label: "条码", runtimeComponent: e(() => import("../views/assemblys/data/bar-code/barcode-runtime.vue.js")) }] }, { name: "other", label: "其他", items: [{ name: "custom", label: "自定义", runtimeComponent: e(() => import("../views/assemblys/form/custom/custom-runtime.vue.js")) }] }];
3
+ const m = [{ name: "container", label: "容器", icon: "assets/images/group-container.png", items: [{ name: "form", label: "表单", runtimeComponent: e(() => import("../views/assemblys/container/form/form-runtime.vue.js")) }, { name: "card", label: "卡片", runtimeComponent: e(() => import("../views/assemblys/container/card/card-runtime.vue.js")) }, { name: "collapse", label: "折叠面板", runtimeComponent: e(() => import("../views/assemblys/container/collapse/collapse-runtime.vue.js")) }, { name: "layout", label: "Flex", runtimeComponent: e(() => import("../views/assemblys/container/flex/flex-runtime.vue.js")) }, { name: "tabs", label: "Tabs", runtimeComponent: e(() => import("../views/assemblys/container/tabs/tabs-runtime.vue.js")) }, { name: "tools", label: "工具栏", runtimeComponent: e(() => import("../views/assemblys/container/tools/tools-runtime.vue.js")) }, { name: "iframe", label: "Iframe", runtimeComponent: e(() => import("../views/assemblys/container/iframe/iframe-runtime.vue.js")) }, { name: "container", label: "布局", runtimeComponent: e(() => import("../views/assemblys/container/container/container-runtime.vue.js")) }] }, { name: "form", label: "表单", items: [{ name: "input-text", label: "文本框", runtimeComponent: e(() => import("../views/assemblys/form/input-text/inputtext-runtime.vue.js")) }, { name: "select", label: "下拉框", runtimeComponent: e(() => import("../views/assemblys/form/select/select-runtime.vue.js")) }, { name: "radio", label: "单选框", runtimeComponent: e(() => import("../views/assemblys/form/radio/radio-runtime.vue.js")) }, { name: "checkbox", label: "复选框", runtimeComponent: e(() => import("../views/assemblys/form/checkbox/checkbox-runtime.vue.js")) }, { name: "textarea", label: "文本域", runtimeComponent: e(() => import("../views/assemblys/form/textarea/textarea-runtime.vue.js")) }, { name: "datePicker", label: "日期/时间", runtimeComponent: e(() => import("../views/assemblys/form/date-picker/datepicker-runtime.vue.js")) }, { name: "switch", label: "开关", runtimeComponent: e(() => import("../views/assemblys/form/switch/switch-runtime.vue.js")) }, { name: "inputNumber", label: "计数器", runtimeComponent: e(() => import("../views/assemblys/form/input-number/input-number-runtime.vue.js")) }, { name: "tag", label: "标签", runtimeComponent: e(() => import("../views/assemblys/form/tag/tag-runtime.vue.js")) }, { name: "richText", label: "富文本", runtimeComponent: e(() => import("../views/assemblys/form/rich-text/richtext-runtime.vue.js")) }, { name: "divider", label: "分割线", runtimeComponent: e(() => import("../views/assemblys/form/divider/divider-runtime.vue.js")) }, { name: "separatelabel", label: "分割标签", runtimeComponent: e(() => import("../views/assemblys/form/separatelabel/separatelabel-runtime.vue.js")) }, { name: "placeholder", label: "占位符", runtimeComponent: e(() => import("../views/assemblys/form/placeholder/placeholder-runtime.vue.js")) }, { name: "link", label: "链接", runtimeComponent: e(() => import("../views/assemblys/form/link/link-runtime.vue.js")) }, { name: "label", label: "Label组件", runtimeComponent: e(() => import("../views/assemblys/form/label/label-runtime.vue.js")) }, { name: "dept-tree", label: "组织树", runtimeComponent: e(() => import("../views/assemblys/form/dept-tree/depttree-runtime.vue.js")) }, { name: "file-upload", label: "文件上传", runtimeComponent: e(() => import("../views/assemblys/form/file-upload/fileupload-runtime.vue.js")) }] }, { name: "button", label: "按钮", items: [{ name: "button-detail", label: "按钮", runtimeComponent: e(() => import("../views/assemblys/button/button/button-runtime.vue.js")) }, { name: "button-group", label: "按钮组", runtimeComponent: e(() => import("../views/assemblys/button/button-group/buttongroup-runtime.vue.js")) }, { name: "dropdown", label: "下拉菜单", runtimeComponent: e(() => import("../views/assemblys/button/dropdown/dropdown-runtime.vue.js")) }, { name: "print-label", label: "打印标签", runtimeComponent: e(() => import("../views/assemblys/button/print-label/printlabel-runtime.vue.js")) }, { name: "export-pdf", label: "打印标签", runtimeComponent: e(() => import("../views/assemblys/button/export-pdf/exportpdf-runtime.vue.js")) }] }, { name: "workflow", label: "工作流", items: [{ name: "workflow-button", label: "工作流按钮", runtimeComponent: e(() => import("../views/assemblys/workflow/workflow-button/workflowbutton-runtime.vue.js")) }, { name: "picture-flow", label: "图形历史", runtimeComponent: e(() => import("../views/assemblys/workflow/picture-flow/pictureflow-runtime.vue.js")) }, { name: "text-flow", label: "文本历史", runtimeComponent: e(() => import("../views/assemblys/workflow/text-history/textflow-runtime.vue.js")) }, { name: "workflow-node", label: "流程环节", runtimeComponent: e(() => import("../views/assemblys/workflow/workflow-node/workflownode-runtime.vue.js")) }] }, { name: "chart", label: "统计图", items: [{ name: "chart-column-line", label: "柱/折图", runtimeComponent: e(() => import("../views/assemblys/chart/column-line/column-line-runtime.vue.js")) }, { name: "chart-pie", label: "饼图", runtimeComponent: e(() => import("../views/assemblys/chart/pie/pie-runtime.vue.js")) }, { name: "chart-gauge", label: "仪表盘", runtimeComponent: e(() => import("../views/assemblys/chart/gauge/gauge-runtime.vue.js")) }, { name: "chart-radar", label: "雷达图", runtimeComponent: e(() => import("../views/assemblys/chart/radar/radar-runtime.vue.js")) }, { name: "chart-scatter", label: "散点图", runtimeComponent: e(() => import("../views/assemblys/chart/scatter/scatter-runtime.vue.js")) }, { name: "statistical-table", label: "统计表格", runtimeComponent: e(() => import("../views/assemblys/chart/table/table-runtime.vue.js")) }] }, { name: "data", label: "数据", items: [{ name: "table", label: "表格", runtimeComponent: e(() => import("../views/assemblys/data/table/table-runtime.vue.js")) }, { name: "tree", label: "树控件", runtimeComponent: e(() => import("../views/assemblys/data/tree/tree-runtime.vue.js")) }, { name: "bar-code", label: "条码", runtimeComponent: e(() => import("../views/assemblys/data/bar-code/barcode-runtime.vue.js")) }] }, { name: "other", label: "其他", items: [{ name: "custom", label: "自定义", runtimeComponent: e(() => import("../views/assemblys/form/custom/custom-runtime.vue.js")) }] }];
4
4
  function n(e2) {
5
5
  if (!e2) return null;
6
6
  for (let n2 = 0; n2 < m.length; n2++) {
@@ -0,0 +1,28 @@
1
+ import { defineComponent as e, ref as t, onMounted as i, nextTick as s, onUnmounted as o, watch as d, createElementBlock as l, openBlock as n, normalizeStyle as f, createElementVNode as a, renderSlot as u } from "vue";
2
+ const r = e({ __name: "FixedBox", props: { isFixed: { type: Boolean, default: true }, position: { type: String, default: "top" }, offset: { type: Number, default: 0 } }, setup(e2) {
3
+ const r2 = e2, v = t(null), p = t({}), x = t({}), c = [], h = () => {
4
+ (() => {
5
+ if (v.value) {
6
+ const e3 = v.value.getBoundingClientRect();
7
+ p.value = { width: `${e3.width}px`, height: `${e3.height}px` }, x.value = { width: `${e3.width}px`, position: r2.isFixed ? "fixed" : "static", [r2.position]: `${r2.offset}px`, left: `${e3.left}px`, zIndex: 100, pointerEvents: "auto" };
8
+ } else p.value = {}, x.value = {};
9
+ })();
10
+ }, y = (e3) => {
11
+ e3 ? ((() => {
12
+ if (c.forEach((e4) => e4.disconnect()), c.length = 0, v.value) {
13
+ const e4 = new ResizeObserver(h);
14
+ e4.observe(v.value), c.push(e4);
15
+ }
16
+ })(), window.addEventListener("resize", h)) : (window.removeEventListener("resize", h), c.forEach((e4) => e4.disconnect())), h();
17
+ };
18
+ return i(() => {
19
+ s(() => {
20
+ y(r2.isFixed);
21
+ });
22
+ }), o(() => {
23
+ y(false);
24
+ }), d(() => r2.isFixed, y), (e3, t2) => r2.isFixed ? (n(), l("div", { key: 0, style: f(p.value) }, [a("div", { ref_key: "fixedRef", ref: v, style: f(x.value) }, [u(e3.$slots, "default")], 4)], 4)) : (n(), l("div", { key: 1, ref_key: "fixedRef", ref: v, style: f(x.value) }, [u(e3.$slots, "default")], 4));
25
+ } });
26
+ export {
27
+ r as default
28
+ };
@@ -0,0 +1,4 @@
1
+ import e from "./FixedBox.vue.js";
2
+ export {
3
+ e as default
4
+ };
@@ -0,0 +1,61 @@
1
+ import { defineComponent as e, ref as t, onMounted as o, nextTick as i, onUnmounted as n, computed as l, createElementBlock as s, openBlock as a, createCommentVNode as r, createElementVNode as u, normalizeStyle as f, normalizeClass as c, renderSlot as d } from "vue";
2
+ /* empty css */
3
+ const p = e({ __name: "YxAffix", props: { offset: { type: Number, default: 0 }, position: { type: String, default: "top", validator: (e2) => ["top", "bottom"].includes(e2) }, target: { type: [String, HTMLElement], default: () => window }, autoDetectParentScroll: { type: Boolean, default: true }, stickyInScrollContainer: { type: Boolean, default: true }, zIndex: { type: Number, default: 100 } }, emits: ["change", "on-change"], setup(e2, { emit: p2 }) {
4
+ const v = e2, m = p2, w = t(null), x = t(null), g = t(false), h = t({}), y = t([]), B = t(window), T = t(0), b = () => {
5
+ if (!x.value || !w.value) return;
6
+ const e3 = x.value.getBoundingClientRect(), t2 = B.value;
7
+ if (t2 === window) {
8
+ const t3 = "top" === v.position ? e3.top <= v.offset : e3.bottom >= window.innerHeight - v.offset;
9
+ T.value = 0, E(t3, e3);
10
+ } else if (v.stickyInScrollContainer) {
11
+ const o2 = t2.getBoundingClientRect(), { isFixTop: i2, isFixBottom: n2, containerOffset: l2 } = ((e4) => {
12
+ const t3 = ["top"].includes(v.position), o3 = ["bottom"].includes(v.position);
13
+ if (!w.value) return { isTop: t3, isBottom: o3 };
14
+ const i3 = w.value.getBoundingClientRect(), n3 = i3.top - e4.top, l3 = i3.left - e4.left, s2 = e4.height - i3.height - n3, a2 = e4.top, r2 = window.innerHeight - e4.bottom;
15
+ return { isTop: t3, isBottom: o3, containerTop: a2, containerBottom: r2, containerOffset: t3 ? a2 : o3 ? r2 : 0, offsetTop: n3, offsetLeft: l3, offsetBottom: s2, isFixTop: t3 && n3 <= 0, isFixBottom: o3 && s2 <= 0 };
16
+ })(o2);
17
+ T.value = l2 ?? 0, E(i2 || n2 || false, e3);
18
+ }
19
+ }, E = (e3, t2) => {
20
+ e3 !== g.value && (g.value = e3, m("change", e3), m("on-change", e3), h.value = e3 ? { width: `${t2.width}px`, height: `${t2.height}px` } : {});
21
+ }, S = () => {
22
+ requestAnimationFrame(b);
23
+ };
24
+ let C;
25
+ const L = () => {
26
+ clearTimeout(C), C = window.setTimeout(() => {
27
+ b();
28
+ }, 100);
29
+ };
30
+ o(() => {
31
+ i(() => {
32
+ const e3 = (() => {
33
+ if (v.autoDetectParentScroll && x.value) {
34
+ const e4 = [];
35
+ let t2 = x.value.parentElement;
36
+ for (; t2 && t2 !== document.body; ) {
37
+ const { overflowY: o2 } = window.getComputedStyle(t2);
38
+ /(auto|scroll)/.test(o2) && e4.push(t2), t2 = t2.parentElement;
39
+ }
40
+ return [...e4, window];
41
+ }
42
+ if ("string" == typeof v.target) {
43
+ const e4 = document.querySelector(v.target);
44
+ return [...e4 ? [e4] : [], window];
45
+ }
46
+ return [window];
47
+ })();
48
+ y.value = e3, B.value = y.value[0], y.value.forEach((e4) => e4.addEventListener("scroll", S)), window.addEventListener("resize", L), b();
49
+ });
50
+ }), n(() => {
51
+ B.value && y.value.forEach((e3) => e3.removeEventListener("scroll", S)), window.removeEventListener("resize", L), clearTimeout(C);
52
+ });
53
+ const k = l(() => {
54
+ var _a;
55
+ return g.value ? { position: "fixed", width: `${(_a = x.value) == null ? void 0 : _a.offsetWidth}px`, zIndex: v.zIndex, [v.position]: `${v.offset + T.value}px` } : {};
56
+ });
57
+ return (e3, t2) => (a(), s("div", { ref_key: "affixMainRef", ref: w, class: "yx-affix" }, [g.value ? (a(), s("div", { key: 0, style: f(h.value), class: "yx-affix-placeholder" }, null, 4)) : r("", true), u("div", { ref_key: "affixRef", ref: x, style: f(k.value), class: c({ "yx-affix-content": true, "is-fixed": g.value, "is-top": "top" === v.position, "is-bottom": "bottom" === v.position }) }, [d(e3.$slots, "default")], 6)], 512));
58
+ } });
59
+ export {
60
+ p as default
61
+ };
@@ -0,0 +1,4 @@
1
+ import f from "./YxAffix.vue.js";
2
+ export {
3
+ f as default
4
+ };
@@ -0,0 +1,4 @@
1
+ import o from "./tools-runtime.vue2.js";
2
+ export {
3
+ o as default
4
+ };
@@ -0,0 +1,32 @@
1
+ import { defineComponent as e, ref as t, computed as o, onMounted as i, nextTick as a, onUnmounted as n, createBlock as l, createElementBlock as s, openBlock as u, withCtx as f, createElementVNode as r, normalizeStyle as p, normalizeClass as g, unref as v, Fragment as d, renderList as c } from "vue";
2
+ import m from "../../object-render.vue.js";
3
+ import { handleAfterInitEvent as x } from "../../../../utils/events/event-util.js";
4
+ import y from "../fixed/YxAffix.vue.js";
5
+ import C from "../fixed/FixedBox.vue.js";
6
+ const b = { "data-v": "1.0.0", class: "amb-widget-tools-parent" }, k = { "data-v": "1.0.0", class: "amb-widget-tools-parent" }, w = { key: 2, "data-v": "1.0.0", class: "amb-widget-tools-parent" }, _ = e({ __name: "tools-runtime", props: { pageContext: {}, configure: {} }, setup(e2) {
7
+ const _2 = e2, j = t(null), R = _2.configure.runtime ?? {}, h = R.class, A = o(() => _2.configure.props), F = o(() => {
8
+ const { gap: e3 } = A.value ?? {};
9
+ return { ...e3 ? { gap: `${e3}px` } : {}, ...R.style ?? {} };
10
+ }), B = o(() => {
11
+ var _a, _b, _c;
12
+ return !![(_a = A.value) == null ? void 0 : _a.isAffix, (_b = A.value) == null ? void 0 : _b.isFixed].every((e3) => void 0 === e3) || ((_c = A.value) == null ? void 0 : _c.isAffix);
13
+ }), D = o(() => {
14
+ var _a;
15
+ return (_a = A.value) == null ? void 0 : _a.isFixed;
16
+ }), Y = o(() => {
17
+ var _a, _b;
18
+ return ["top"].includes((_a = A.value) == null ? void 0 : _a.position) ? "top" : ["bottom"].includes((_b = A.value) == null ? void 0 : _b.position) ? "bottom" : void 0;
19
+ }), $ = o(() => {
20
+ var _a;
21
+ return ((_a = A.value) == null ? void 0 : _a.offset) ?? 0;
22
+ });
23
+ return i(() => {
24
+ a(() => {
25
+ x(null, _2.pageContext, _2.configure, { componentRef: j.value, entity: _2.pageContext.entity.data, pageData: _2.pageContext.entity.page });
26
+ });
27
+ }), n(() => {
28
+ }), (e3, t2) => D.value ? (u(), l(C, { key: 0, position: Y.value, offset: $.value }, { default: f(() => [r("div", b, [r("div", { class: g(["amb-widget-container-tool amb-widget-tools", v(h)]), style: p(F.value), ref_key: "thisRef", ref: j }, [(u(true), s(d, null, c(_2.configure.items, (e4) => (u(), l(m, { pageContext: _2.pageContext, configure: e4, key: e4.uuid }, null, 8, ["pageContext", "configure"]))), 128))], 6)])]), _: 1 }, 8, ["position", "offset"])) : B.value ? (u(), l(y, { key: 1, position: Y.value, offset: $.value }, { default: f(() => [r("div", k, [r("div", { class: g(["amb-widget-container-tool amb-widget-tools", v(h)]), style: p(F.value), ref_key: "thisRef", ref: j }, [(u(true), s(d, null, c(_2.configure.items, (e4) => (u(), l(m, { pageContext: _2.pageContext, configure: e4, key: e4.uuid }, null, 8, ["pageContext", "configure"]))), 128))], 6)])]), _: 1 }, 8, ["position", "offset"])) : (u(), s("div", w, [r("div", { class: g(["amb-widget-container-tool amb-widget-tools", v(h)]), style: p(F.value), ref_key: "thisRef", ref: j }, [(u(true), s(d, null, c(_2.configure.items, (e4) => (u(), l(m, { pageContext: _2.pageContext, configure: e4, key: e4.uuid }, null, 8, ["pageContext", "configure"]))), 128))], 6)]));
29
+ } });
30
+ export {
31
+ _ as default
32
+ };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "super-page-runtime",
3
- "version": "2.2.38",
3
+ "version": "2.2.40",
4
4
  "description": "AgileBuilder super page runtime",
5
5
  "license": "ISC",
6
6
  "main": "dist/es/index.js",
@@ -1,33 +0,0 @@
1
- import { defineComponent as e, ref as t, onMounted as i, nextTick as s, onUnmounted as o, watch as n, createVNode as d } from "vue";
2
- const l = e({ name: "FixedBox", props: { isFixed: { type: Boolean, default: true }, position: { type: String, default: "top" }, offset: { type: Number, default: 0 } }, setup(e2, { slots: l2 }) {
3
- const a = t(), u = t({}), r = t({}), p = [], v = () => {
4
- (() => {
5
- if (a.value) {
6
- const t2 = a.value.getBoundingClientRect();
7
- u.value = { width: `${t2.width}px`, height: `${t2.height}px` }, r.value = { width: `${t2.width}px`, position: e2.isFixed ? "fixed" : "static", [e2.position]: `${e2.offset}px`, left: `${t2.left}px`, zIndex: 100, pointerEvents: "auto" };
8
- } else u.value = {}, r.value = {};
9
- })();
10
- }, f = (e3) => {
11
- e3 ? ((() => {
12
- if (p.forEach((e4) => e4.disconnect()), p.length = 0, a.value) {
13
- const e4 = new ResizeObserver(v);
14
- e4.observe(a.value), p.push(e4);
15
- }
16
- })(), window.addEventListener("resize", v)) : (window.removeEventListener("resize", v), p.forEach((e4) => e4.disconnect())), v();
17
- };
18
- i(() => {
19
- s(() => {
20
- f(e2.isFixed);
21
- });
22
- }), o(() => {
23
- f(false);
24
- }), n(() => e2.isFixed, f);
25
- const x = () => {
26
- var _a;
27
- return d("div", { ref: a, style: r.value }, [(_a = l2.default) == null ? void 0 : _a.call(l2)]);
28
- };
29
- return e2.isFixed ? () => d("div", { style: u.value }, [x()]) : x;
30
- } });
31
- export {
32
- l as default
33
- };
@@ -1,60 +0,0 @@
1
- import { defineComponent as t, ref as e, onMounted as o, nextTick as n, onUnmounted as i, createVNode as l } from "vue";
2
- /* empty css */
3
- const s = t({ name: "YxAffix", props: { offset: { type: Number, default: 0 }, position: { type: String, default: "top", validator: (t2) => ["top", "bottom"].includes(t2) }, target: { type: [String, HTMLElement], default: () => window }, autoDetectParentScroll: { type: Boolean, default: true }, stickyInScrollContainer: { type: Boolean, default: true }, zIndex: { type: Number, default: 100 } }, emits: { change: (t2) => "boolean" == typeof t2, "on-change": (t2) => "boolean" == typeof t2 }, setup(t2, { emit: s2, slots: a }) {
4
- const r = e(null), u = e(null), f = e(false), p = e({}), c = e([]), d = e(window), v = e(0), m = () => {
5
- if (!u.value || !r.value) return;
6
- const e2 = u.value.getBoundingClientRect(), o2 = d.value;
7
- if (o2 === window) {
8
- const o3 = "top" === t2.position ? e2.top <= t2.offset : e2.bottom >= window.innerHeight - t2.offset;
9
- v.value = 0, w(o3, e2);
10
- } else if (t2.stickyInScrollContainer) {
11
- const n2 = o2.getBoundingClientRect(), { isFixTop: i2, isFixBottom: l2, containerOffset: s3 } = ((e3) => {
12
- const o3 = ["top"].includes(t2.position), n3 = ["bottom"].includes(t2.position);
13
- if (!r.value) return { isTop: o3, isBottom: n3 };
14
- const i3 = r.value.getBoundingClientRect(), l3 = i3.top - e3.top, s4 = i3.left - e3.left, a2 = e3.height - i3.height - l3, u2 = e3.top, f2 = window.innerHeight - e3.bottom;
15
- return { isTop: o3, isBottom: n3, containerTop: u2, containerBottom: f2, containerOffset: o3 ? u2 : n3 ? f2 : 0, offsetTop: l3, offsetLeft: s4, offsetBottom: a2, isFixTop: o3 && l3 <= 0, isFixBottom: n3 && a2 <= 0 };
16
- })(n2);
17
- v.value = s3 ?? 0, w(i2 || l2 || false, e2);
18
- }
19
- }, w = (t3, e2) => {
20
- t3 !== f.value && (f.value = t3, s2("change", t3), s2("on-change", t3), p.value = t3 ? { width: `${e2.width}px`, height: `${e2.height}px` } : {});
21
- }, g = () => {
22
- requestAnimationFrame(m);
23
- };
24
- let x;
25
- const h = () => {
26
- clearTimeout(x), x = window.setTimeout(() => {
27
- m();
28
- }, 100);
29
- };
30
- return o(() => {
31
- n(() => {
32
- const e2 = (() => {
33
- if (t2.autoDetectParentScroll && u.value) {
34
- const t3 = [];
35
- let e3 = u.value.parentElement;
36
- for (; e3 && e3 !== document.body; ) {
37
- const { overflowY: o2 } = window.getComputedStyle(e3);
38
- /(auto|scroll)/.test(o2) && t3.push(e3), e3 = e3.parentElement;
39
- }
40
- return [...t3, window];
41
- }
42
- if ("string" == typeof t2.target) {
43
- const e3 = document.querySelector(t2.target);
44
- return [...e3 ? [e3] : [], window];
45
- }
46
- return [window];
47
- })();
48
- c.value = e2, d.value = c.value[0], c.value.map((t3) => t3.addEventListener("scroll", g)), window.addEventListener("resize", h), m();
49
- });
50
- }), i(() => {
51
- d.value && c.value.map((t3) => t3.removeEventListener("scroll", g)), window.removeEventListener("resize", h), clearTimeout(x);
52
- }), () => {
53
- var _a, _b;
54
- const e2 = f.value ? { position: "fixed", width: `${(_a = u.value) == null ? void 0 : _a.offsetWidth}px`, zIndex: t2.zIndex, [t2.position]: `${t2.offset + v.value}px` } : {};
55
- return l("div", { ref: r, class: "yx-affix" }, [f.value && l("div", { style: p.value, class: "yx-affix-placeholder" }, null), l("div", { ref: u, style: e2, class: ["yx-affix-content", { "is-fixed": f.value, "is-top": "top" === t2.position, "is-bottom": "bottom" === t2.position }] }, [(_b = a.default) == null ? void 0 : _b.call(a)])]);
56
- };
57
- } });
58
- export {
59
- s as default
60
- };
@@ -1,38 +0,0 @@
1
- import { defineComponent as e, ref as t, computed as o, onMounted as i, nextTick as a, onUnmounted as n, createVNode as u, isVNode as r } from "vue";
2
- import l from "../../object-render.vue.js";
3
- import { handleAfterInitEvent as s } from "../../../../utils/events/event-util.js";
4
- import f from "../fixed/YxAffix.js";
5
- import p from "../fixed/FixedBox.js";
6
- function c(e2) {
7
- return "function" == typeof e2 || "[object Object]" === Object.prototype.toString.call(e2) && !r(e2);
8
- }
9
- const v = e({ name: "AmbWidgetTools", props: { pageContext: { type: Object, required: true }, configure: { type: Object, required: true } }, setup(e2) {
10
- var _a;
11
- const r2 = t(null), v2 = e2.configure.runtime ?? {}, d = v2.class, g = o(() => e2.configure.props), m = o(() => {
12
- const { gap: e3 } = g.value ?? {};
13
- return { ...e3 ? { gap: `${e3}px` } : {}, ...v2.style ?? {} };
14
- }), x = o(() => {
15
- var _a2, _b, _c;
16
- return !![(_a2 = g.value) == null ? void 0 : _a2.isAffix, (_b = g.value) == null ? void 0 : _b.isFixed].every((e3) => void 0 === e3) || ((_c = g.value) == null ? void 0 : _c.isAffix);
17
- }), y = o(() => {
18
- var _a2;
19
- return (_a2 = g.value) == null ? void 0 : _a2.isFixed;
20
- }), b = o(() => {
21
- var _a2;
22
- return (_a2 = g.value) == null ? void 0 : _a2.position;
23
- }), j = o(() => {
24
- var _a2;
25
- return ((_a2 = g.value) == null ? void 0 : _a2.offset) ?? 0;
26
- });
27
- i(() => {
28
- a(() => {
29
- s(null, e2.pageContext, e2.configure, { componentRef: r2.value, entity: e2.pageContext.entity.data, pageData: e2.pageContext.entity.page });
30
- });
31
- }), n(() => {
32
- });
33
- const C = u("div", { class: "amb-widget-tools-parent" }, [u("div", { class: ["amb-widget-container-tool amb-widget-tools", d], style: m.value, ref: r2 }, [(_a = e2.configure.items) == null ? void 0 : _a.map((t2) => u(l, { pageContext: e2.pageContext, configure: t2, key: t2.uuid }, null))])]);
34
- return y.value ? () => u(p, { isFixed: true, offset: j.value, position: b.value }, c(C) ? C : { default: () => [C] }) : x.value ? () => u(f, { offset: j.value, position: b.value }, c(C) ? C : { default: () => [C] }) : () => C;
35
- } });
36
- export {
37
- v as default
38
- };