x-runtime-lib 0.8.196 → 0.8.198

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,3 +1,4 @@
1
+ import { Sandbox } from '@/sandbox';
1
2
  interface Params {
2
3
  instance?: string;
3
4
  inputs: {
@@ -7,5 +8,5 @@ interface Params {
7
8
  [key: string]: any;
8
9
  };
9
10
  }
10
- export declare function useElementSlotMethod(slotKey: string, methodKey: string, hook: (params: Params) => void): void;
11
+ export declare function useElementSlotMethod(sandbox: Sandbox | undefined, methodKey: string, hook: (params: Params) => void): void;
11
12
  export {};
@@ -1,2 +1,4 @@
1
1
  import { Ref } from 'vue';
2
- export declare function useElementSlotProperty(slotKey: string, propertyKey: string, target: Ref<any>): void;
2
+ import { Sandbox } from '@/sandbox';
3
+ import { Node } from '@/types';
4
+ export declare function useElementSlotProperty(sandbox: Sandbox | undefined, node: Ref<Node>, propertyKey: string, target: Ref<any>): void;
@@ -1,4 +1,8 @@
1
1
  import { Ref } from 'vue';
2
2
  import { InitValues, Sandbox } from '@/sandbox';
3
3
  import { Data, Meta, SandboxKind } from '@/types';
4
- export declare function useSandbox(kind: SandboxKind, nodeId: string, slotId: string, instance: string, parent: Sandbox | undefined, meta: Ref<Meta | undefined>, data: Ref<Data | undefined>, initValues?: InitValues): void;
4
+ export declare function useSandbox(kind: SandboxKind, nodeId: string, slotId: string, instance: string, parent: Sandbox | undefined, meta: Ref<Meta | undefined>, data: Ref<Data | undefined>, initValues?: InitValues): {
5
+ sandbox: undefined;
6
+ } | {
7
+ sandbox: Sandbox;
8
+ };
@@ -0,0 +1,2 @@
1
+ import { NodePair } from "@/types";
2
+ export declare function spawn(type: string, subtype: string): NodePair | undefined;
package/dist/index.js CHANGED
@@ -1482,24 +1482,26 @@ function useElementProperty(e, p, m) {
1482
1482
  }), { property: _ };
1483
1483
  }
1484
1484
  function useElementSlotMethod(e, p, m) {
1485
- let g = injectSandbox(), _ = `method/${e}/${p}`;
1486
- onBeforeMount(() => {
1487
- g?.eventBus.on(_, m);
1485
+ e && (onBeforeMount(() => {
1486
+ e.eventBus.on(`method/${p}`, m);
1488
1487
  }), onUnmounted(() => {
1489
- g?.eventBus.off(_, m);
1490
- });
1491
- }
1492
- function useElementSlotProperty(e, p, m) {
1493
- let g = injectSandbox(), _ = `property/${e}/${p}`, v = (e) => {
1494
- e.result.value = m.value;
1495
- }, y = (e) => {
1496
- m.value = e;
1488
+ e.eventBus.off(`method/${p}`, m);
1489
+ }));
1490
+ }
1491
+ function useElementSlotProperty(e, p, m, g) {
1492
+ if (!e) return;
1493
+ let _ = (e) => {
1494
+ e.result.value = g.value;
1495
+ }, v = (e) => {
1496
+ g.value = e;
1497
1497
  };
1498
1498
  onBeforeMount(() => {
1499
- g?.eventBus.on(`${_}/get`, v), g?.eventBus.on(`${_}/set`, y);
1499
+ e.eventBus.on(`property/${m}/get`, _), e.eventBus.on(`property/${m}/set`, v);
1500
1500
  }), onUnmounted(() => {
1501
- g?.eventBus.off(`${_}/get`, v), g?.eventBus.off(`${_}/set`, y);
1502
- });
1501
+ e.eventBus.off(`property/${m}/get`, _), e.eventBus.off(`property/${m}/set`, v);
1502
+ }), watch(g, (g, _) => {
1503
+ e.hooks.onPropertyChange(makePropertyId("elementAdaptSlotProperty", "globality", makePropertyKeyOfElementSlot(p.value.basic.key, e.slotId, m)), g, _, e.instance), e.parent && e.parent.hooks.onPropertyChange(makePropertyId("elementSlotProperty", e.nodeId, makePropertyKeyOfElementSlot(p.value.basic.key, e.slotId, m)), g, _, e.instance);
1504
+ }, { immediate: !0 });
1503
1505
  }
1504
1506
  function useElementSlotRender(e, p, m) {
1505
1507
  function g(p) {
@@ -3779,7 +3781,7 @@ var v1_default$40 = /* @__PURE__ */ __plugin_vue_export_helper_default(_sfc_main
3779
3781
  _: 3
3780
3782
  }));
3781
3783
  }
3782
- }), slotKey$4 = "column", columnSlot_default = /* @__PURE__ */ defineComponent({
3784
+ }), columnSlot_default = /* @__PURE__ */ defineComponent({
3783
3785
  __name: "columnSlot",
3784
3786
  props: /* @__PURE__ */ mergeModels({
3785
3787
  refContext: {},
@@ -3793,9 +3795,11 @@ var v1_default$40 = /* @__PURE__ */ __plugin_vue_export_helper_default(_sfc_main
3793
3795
  let p = useModel(e, "value"), m = e, g = injectId(), _ = injectNode(), v = ref();
3794
3796
  provideMeta(v);
3795
3797
  let y = ref();
3796
- provideData(y), useDepend(computed(() => m.refContext.compId), v, y), useSandbox("multipleElementSlot", _.value.basic.id, slotKey$4, m.instance, injectSandbox(), v, y), useElementSlotProperty(slotKey$4, "value", p);
3797
- let { render: b } = useElementSlotRender(m.refContext, g, y);
3798
- return (e, p) => (openBlock(), createBlock(unref(b)));
3798
+ provideData(y), useDepend(computed(() => m.refContext.compId), v, y);
3799
+ let { sandbox: b } = useSandbox("multipleElementSlot", _.value.basic.id, "column", m.instance, injectSandbox(), v, y);
3800
+ useElementSlotProperty(b, _, "value", p);
3801
+ let { render: x } = useElementSlotRender(m.refContext, g, y);
3802
+ return (e, p) => (openBlock(), createBlock(unref(x)));
3799
3803
  }
3800
3804
  }), v1_default$31 = /* @__PURE__ */ defineComponent({
3801
3805
  __name: "index",
@@ -3807,26 +3811,32 @@ var v1_default$40 = /* @__PURE__ */ __plugin_vue_export_helper_default(_sfc_main
3807
3811
  setup(e) {
3808
3812
  let p = e, { node: m } = useElementBase(p);
3809
3813
  provideNode(m);
3810
- let { property: g } = useElementProperty(m, ["settings", "density"]), { property: _ } = useElementProperty(m, ["settings", "fixedFooter"]), { property: v } = useElementProperty(m, ["settings", "fixedHeader"]), { property: y } = useElementProperty(m, ["settings", "headers"]), { property: b } = useElementProperty(m, ["size", "height"]), { property: x } = useElementProperty(m, ["settings", "hover"]), { property: S } = useElementProperty(m, ["settings", "data"], !0), { property: C } = useElementProperty(m, ["settings", "loading"]), { property: w } = useElementProperty(m, ["settings", "multiSort"]), { theme: T } = useTheme(), { property: E } = useElementProperty(m, ["size", "width"]), { property: D } = useElementProperty(m, ["slots", "columns"]);
3814
+ let g = injectMode(), { property: _ } = useElementProperty(m, ["settings", "density"]), { property: v } = useElementProperty(m, ["settings", "fixedFooter"]), { property: y } = useElementProperty(m, ["settings", "fixedHeader"]), { property: b } = useElementProperty(m, ["settings", "headers"]), { property: x } = useElementProperty(m, ["size", "height"]), { property: S } = useElementProperty(m, ["settings", "hover"]), { property: C } = useElementProperty(m, ["settings", "data"], !0), { property: w } = useElementProperty(m, ["settings", "loading"]), { property: T } = useElementProperty(m, ["settings", "multiSort"]), { theme: E } = useTheme(), { property: D } = useElementProperty(m, ["size", "width"]), O = ref([]);
3815
+ if (isExecutableMode(g)) {
3816
+ let { property: e } = useElementProperty(m, ["slots", "columns"]);
3817
+ watchEffect(() => {
3818
+ O.value = e.value;
3819
+ });
3820
+ }
3811
3821
  return (e, m) => {
3812
- let O = resolveComponent("v-data-table");
3822
+ let g = resolveComponent("v-data-table");
3813
3823
  return openBlock(), createBlock(unref(wrap_default), {
3814
3824
  block: "",
3815
3825
  mask: ""
3816
3826
  }, {
3817
- default: withCtx(() => [createVNode(O, {
3818
- density: unref(g),
3819
- "fixed-footer": unref(_),
3820
- "fixed-header": unref(v),
3821
- headers: unref(y),
3822
- height: unref(b),
3823
- hover: unref(x),
3824
- items: unref(S),
3825
- loading: unref(C),
3826
- "multi-sort": unref(w),
3827
- theme: unref(T),
3828
- width: unref(E)
3829
- }, createSlots({ _: 2 }, [renderList(unref(D), ({ key: e, comp: m }) => ({
3827
+ default: withCtx(() => [createVNode(g, {
3828
+ density: unref(_),
3829
+ "fixed-footer": unref(v),
3830
+ "fixed-header": unref(y),
3831
+ headers: unref(b),
3832
+ height: unref(x),
3833
+ hover: unref(S),
3834
+ items: unref(C),
3835
+ loading: unref(w),
3836
+ "multi-sort": unref(T),
3837
+ theme: unref(E),
3838
+ width: unref(D)
3839
+ }, createSlots({ _: 2 }, [renderList(O.value, ({ key: e, comp: m }) => ({
3830
3840
  name: `item.${e}`,
3831
3841
  fn: withCtx(({ value: g }) => [createVNode(columnSlot_default, {
3832
3842
  instance: e,
@@ -4983,7 +4993,7 @@ var v1_default$11 = /* @__PURE__ */ __plugin_vue_export_helper_default(_sfc_main
4983
4993
  });
4984
4994
  };
4985
4995
  }
4986
- }), slotKey$3 = "appendInner", appendInnerSlot_default = /* @__PURE__ */ defineComponent({
4996
+ }), appendInnerSlot_default = /* @__PURE__ */ defineComponent({
4987
4997
  __name: "appendInnerSlot",
4988
4998
  props: /* @__PURE__ */ mergeModels({
4989
4999
  refContext: {},
@@ -5006,15 +5016,17 @@ var v1_default$11 = /* @__PURE__ */ __plugin_vue_export_helper_default(_sfc_main
5006
5016
  let p = useModel(e, "isActive"), m = useModel(e, "isFocused"), g = e, _ = injectId(), v = injectNode(), y = ref();
5007
5017
  provideMeta(y);
5008
5018
  let b = ref();
5009
- provideData(b), useDepend(computed(() => g.refContext.compId), y, b), useSandbox("elementSlot", v.value.basic.id, slotKey$3, "", injectSandbox(), y, b), useElementSlotProperty(slotKey$3, "isActive", p), useElementSlotProperty(slotKey$3, "isFocused", m), useElementSlotMethod(slotKey$3, "focus", () => {
5019
+ provideData(b), useDepend(computed(() => g.refContext.compId), y, b);
5020
+ let { sandbox: x } = useSandbox("elementSlot", v.value.basic.id, "appendInner", "", injectSandbox(), y, b);
5021
+ useElementSlotProperty(x, v, "isActive", p), useElementSlotProperty(x, v, "isFocused", m), useElementSlotMethod(x, "focus", () => {
5010
5022
  g.focus();
5011
- }), useElementSlotMethod(slotKey$3, "blur", () => {
5023
+ }), useElementSlotMethod(x, "blur", () => {
5012
5024
  g.blur();
5013
5025
  });
5014
- let { render: x } = useElementSlotRender(g.refContext, _, b);
5015
- return (e, p) => (openBlock(), createBlock(unref(x)));
5026
+ let { render: S } = useElementSlotRender(g.refContext, _, b);
5027
+ return (e, p) => (openBlock(), createBlock(unref(S)));
5016
5028
  }
5017
- }), slotKey$2 = "append", appendSlot_default = /* @__PURE__ */ defineComponent({
5029
+ }), appendSlot_default = /* @__PURE__ */ defineComponent({
5018
5030
  __name: "appendSlot",
5019
5031
  props: {
5020
5032
  refContext: {},
@@ -5026,17 +5038,19 @@ var v1_default$11 = /* @__PURE__ */ __plugin_vue_export_helper_default(_sfc_main
5026
5038
  let p = e, m = injectId(), g = injectNode(), _ = ref();
5027
5039
  provideMeta(_);
5028
5040
  let v = ref();
5029
- provideData(v), useDepend(computed(() => p.refContext.compId), _, v), useSandbox("elementSlot", g.value.basic.id, slotKey$2, "", injectSandbox(), _, v), useElementSlotMethod(slotKey$2, "reset", () => {
5041
+ provideData(v), useDepend(computed(() => p.refContext.compId), _, v);
5042
+ let { sandbox: y } = useSandbox("elementSlot", g.value.basic.id, "append", "", injectSandbox(), _, v);
5043
+ useElementSlotMethod(y, "reset", () => {
5030
5044
  p.reset();
5031
- }), useElementSlotMethod(slotKey$2, "resetValidation", () => {
5045
+ }), useElementSlotMethod(y, "resetValidation", () => {
5032
5046
  p.resetValidation();
5033
- }), useElementSlotMethod(slotKey$2, "validate", () => {
5047
+ }), useElementSlotMethod(y, "validate", () => {
5034
5048
  p.validate();
5035
5049
  });
5036
- let { render: y } = useElementSlotRender(p.refContext, m, v);
5037
- return (e, p) => (openBlock(), createBlock(unref(y)));
5050
+ let { render: b } = useElementSlotRender(p.refContext, m, v);
5051
+ return (e, p) => (openBlock(), createBlock(unref(b)));
5038
5052
  }
5039
- }), slotKey$1 = "prependInner", prependInnerSlot_default = /* @__PURE__ */ defineComponent({
5053
+ }), prependInnerSlot_default = /* @__PURE__ */ defineComponent({
5040
5054
  __name: "prependInnerSlot",
5041
5055
  props: /* @__PURE__ */ mergeModels({
5042
5056
  refContext: {},
@@ -5059,15 +5073,17 @@ var v1_default$11 = /* @__PURE__ */ __plugin_vue_export_helper_default(_sfc_main
5059
5073
  let p = useModel(e, "isActive"), m = useModel(e, "isFocused"), g = e, _ = injectId(), v = injectNode(), y = ref();
5060
5074
  provideMeta(y);
5061
5075
  let b = ref();
5062
- provideData(b), useDepend(computed(() => g.refContext.compId), y, b), useSandbox("elementSlot", v.value.basic.id, slotKey$1, "", injectSandbox(), y, b), useElementSlotProperty(slotKey$1, "isActive", p), useElementSlotProperty(slotKey$1, "isFocused", m), useElementSlotMethod(slotKey$1, "focus", () => {
5076
+ provideData(b), useDepend(computed(() => g.refContext.compId), y, b);
5077
+ let { sandbox: x } = useSandbox("elementSlot", v.value.basic.id, "prependInner", "", injectSandbox(), y, b);
5078
+ useElementSlotProperty(x, v, "isActive", p), useElementSlotProperty(x, v, "isFocused", m), useElementSlotMethod(x, "focus", () => {
5063
5079
  g.focus();
5064
- }), useElementSlotMethod(slotKey$1, "blur", () => {
5080
+ }), useElementSlotMethod(x, "blur", () => {
5065
5081
  g.blur();
5066
5082
  });
5067
- let { render: x } = useElementSlotRender(g.refContext, _, b);
5068
- return (e, p) => (openBlock(), createBlock(unref(x)));
5083
+ let { render: S } = useElementSlotRender(g.refContext, _, b);
5084
+ return (e, p) => (openBlock(), createBlock(unref(S)));
5069
5085
  }
5070
- }), slotKey = "prepend", prependSlot_default = /* @__PURE__ */ defineComponent({
5086
+ }), prependSlot_default = /* @__PURE__ */ defineComponent({
5071
5087
  __name: "prependSlot",
5072
5088
  props: {
5073
5089
  refContext: {},
@@ -5079,15 +5095,17 @@ var v1_default$11 = /* @__PURE__ */ __plugin_vue_export_helper_default(_sfc_main
5079
5095
  let p = e, m = injectId(), g = injectNode(), _ = ref();
5080
5096
  provideMeta(_);
5081
5097
  let v = ref();
5082
- provideData(v), useDepend(computed(() => p.refContext.compId), _, v), useSandbox("elementSlot", g.value.basic.id, slotKey, "", injectSandbox(), _, v), useElementSlotMethod(slotKey, "reset", () => {
5098
+ provideData(v), useDepend(computed(() => p.refContext.compId), _, v);
5099
+ let { sandbox: y } = useSandbox("elementSlot", g.value.basic.id, "prepend", "", injectSandbox(), _, v);
5100
+ useElementSlotMethod(y, "reset", () => {
5083
5101
  p.reset();
5084
- }), useElementSlotMethod(slotKey, "resetValidation", () => {
5102
+ }), useElementSlotMethod(y, "resetValidation", () => {
5085
5103
  p.resetValidation();
5086
- }), useElementSlotMethod(slotKey, "validate", () => {
5104
+ }), useElementSlotMethod(y, "validate", () => {
5087
5105
  p.validate();
5088
5106
  });
5089
- let { render: y } = useElementSlotRender(p.refContext, m, v);
5090
- return (e, p) => (openBlock(), createBlock(unref(y)));
5107
+ let { render: b } = useElementSlotRender(p.refContext, m, v);
5108
+ return (e, p) => (openBlock(), createBlock(unref(b)));
5091
5109
  }
5092
5110
  }), v1_default$4 = /* @__PURE__ */ defineComponent({
5093
5111
  __name: "index",
@@ -5983,7 +6001,7 @@ const orbitControlsV1 = {
5983
6001
  leaf: !0
5984
6002
  };
5985
6003
  regElement(orbitControlsV1);
5986
- function spawn$16(e, p) {
6004
+ function spawn$17(e, p) {
5987
6005
  let m = getElementMust("3d_mesh_v1"), g = getProperties(m, e, p), _ = initNode();
5988
6006
  initProperties(_, g), _.basic.id = genId(16), _.basic.key = m.key, _.transform = {
5989
6007
  position: {
@@ -6090,10 +6108,10 @@ const boxGeometryV1 = {
6090
6108
  methods: [],
6091
6109
  slots: [],
6092
6110
  leaf: !0,
6093
- spawn: spawn$16
6111
+ spawn: spawn$17
6094
6112
  };
6095
6113
  regElement(boxGeometryV1);
6096
- function spawn$15(e, p) {
6114
+ function spawn$16(e, p) {
6097
6115
  let m = getElementMust("3d_mesh_v1"), g = getProperties(m, e, p), _ = initNode();
6098
6116
  initProperties(_, g), _.basic.id = genId(16), _.basic.key = m.key, _.transform = {
6099
6117
  position: {
@@ -6209,7 +6227,7 @@ const sphereGeometryV1 = {
6209
6227
  methods: [],
6210
6228
  slots: [],
6211
6229
  leaf: !0,
6212
- spawn: spawn$15
6230
+ spawn: spawn$16
6213
6231
  };
6214
6232
  regElement(sphereGeometryV1);
6215
6233
  var color$4 = cloneDeep_default(colorV1);
@@ -6439,7 +6457,7 @@ const meshV1 = {
6439
6457
  slots: []
6440
6458
  };
6441
6459
  regElement(meshV1);
6442
- function spawn$14(e, p) {
6460
+ function spawn$15(e, p) {
6443
6461
  let m = getElementMust("ui_bar_chart_v1"), g = getProperties(m, e, p), _ = initNode();
6444
6462
  return initProperties(_, g), _.basic.id = genId(16), _.basic.key = m.key, _.size.height = "300px", _.xAxis.data = [
6445
6463
  "Mon",
@@ -6509,10 +6527,10 @@ const barChartV1 = {
6509
6527
  ]
6510
6528
  },
6511
6529
  leaf: !0,
6512
- spawn: spawn$14
6530
+ spawn: spawn$15
6513
6531
  };
6514
6532
  regElement(barChartV1);
6515
- function spawn$13(e, p) {
6533
+ function spawn$14(e, p) {
6516
6534
  let m = getElementMust("ui_line_chart_v1"), g = getProperties(m, e, p), _ = initNode();
6517
6535
  return initProperties(_, g), _.basic.id = genId(16), _.basic.key = m.key, _.size.height = "300px", _.xAxis.data = [
6518
6536
  "Mon",
@@ -6582,7 +6600,7 @@ const lineChartV1 = {
6582
6600
  ]
6583
6601
  },
6584
6602
  leaf: !0,
6585
- spawn: spawn$13
6603
+ spawn: spawn$14
6586
6604
  };
6587
6605
  regElement(lineChartV1);
6588
6606
  var settings$37 = {
@@ -6904,7 +6922,7 @@ const badgeV1 = {
6904
6922
  }
6905
6923
  };
6906
6924
  regElement(badgeV1);
6907
- function spawn$12(e, p) {
6925
+ function spawn$13(e, p) {
6908
6926
  let m = getElementMust("ui_btn_v1"), g = getProperties(m, e, p), _ = initNode();
6909
6927
  return initProperties(_, g), _.basic.id = genId(16), _.basic.key = m.key, _.settings.text = "button", {
6910
6928
  nodeLite: toNodeLite(_),
@@ -7017,7 +7035,7 @@ const btnV1 = {
7017
7035
  name: "x-runtime-lib.click"
7018
7036
  }],
7019
7037
  leaf: !0,
7020
- spawn: spawn$12
7038
+ spawn: spawn$13
7021
7039
  };
7022
7040
  regElement(btnV1);
7023
7041
  const btnGroupV1 = {
@@ -7102,7 +7120,7 @@ const btnToggleV1 = {
7102
7120
  }
7103
7121
  };
7104
7122
  regElement(btnToggleV1);
7105
- function spawn$11(e, p) {
7123
+ function spawn$12(e, p) {
7106
7124
  let m = getElementMust("ui_card_v1"), g = getProperties(m, e, p), _ = initNode();
7107
7125
  return initProperties(_, g), _.basic.id = genId(16), _.basic.key = m.key, _.children = [], _.settings.title = "title", _.settings.subtitle = "subtitle", _.settings.text = "text", {
7108
7126
  nodeLite: toNodeLite(_),
@@ -7181,7 +7199,7 @@ const cardV1 = {
7181
7199
  settings$29
7182
7200
  ]
7183
7201
  },
7184
- spawn: spawn$11
7202
+ spawn: spawn$12
7185
7203
  };
7186
7204
  regElement(cardV1);
7187
7205
  var settings$28 = {
@@ -7297,7 +7315,7 @@ const chipV1 = {
7297
7315
  leaf: !0
7298
7316
  };
7299
7317
  regElement(chipV1);
7300
- function spawn$10(e, p) {
7318
+ function spawn$11(e, p) {
7301
7319
  let m = getElementMust("ui_chip_group_v1"), g = getProperties(m, e, p), _ = initNode();
7302
7320
  initProperties(_, g), _.basic.id = genId(16), _.basic.key = m.key;
7303
7321
  let v = spawnChip(e, p, "chip1", "chip 1"), y = spawnChip(e, p, "chip2", "chip 2"), b = spawnChip(e, p, "chip3", "chip 3"), x = spawnChip(e, p, "chip4", "chip 4"), S = spawnChip(e, p, "chip5", "chip 5"), C = spawnChip(e, p, "chip6", "chip 6");
@@ -7391,7 +7409,7 @@ const chipGroupV1 = {
7391
7409
  pageUi: [basicV1, settings$26],
7392
7410
  compUi: [basicV1, settings$26]
7393
7411
  },
7394
- spawn: spawn$10
7412
+ spawn: spawn$11
7395
7413
  };
7396
7414
  regElement(chipGroupV1);
7397
7415
  const colorPickerV1 = {
@@ -7493,6 +7511,19 @@ const containerV1 = {
7493
7511
  }]
7494
7512
  };
7495
7513
  regElement(containerV1);
7514
+ function spawn$10(e, p) {
7515
+ let m = getElementMust("ui_data_table_v1"), g = getProperties(m, e, p), _ = initNode();
7516
+ return initProperties(_, g), _.basic.id = genId(16), _.basic.key = m.key, _.settings.headers = [{
7517
+ value: "name",
7518
+ title: "Name"
7519
+ }, {
7520
+ value: "price",
7521
+ title: "Price"
7522
+ }], _.settings.data = "[\n { \"name\": \"Apple\", \"price\": 5.5 },\n { \"name\": \"Orange\", \"price\": 3.0 },\n { \"name\": \"Berry\", \"price\": 13.5 }\n]", {
7523
+ nodeLite: toNodeLite(_),
7524
+ nodes: { [_.basic.id]: _ }
7525
+ };
7526
+ }
7496
7527
  var size$1 = {
7497
7528
  key: "size",
7498
7529
  name: "x-runtime-lib.size",
@@ -7667,7 +7698,8 @@ const dataTableV1 = {
7667
7698
  readonly: !0
7668
7699
  }]
7669
7700
  }],
7670
- leaf: !0
7701
+ leaf: !0,
7702
+ spawn: spawn$10
7671
7703
  };
7672
7704
  regElement(dataTableV1);
7673
7705
  const datePickerV1 = {
@@ -10526,11 +10558,11 @@ function bindView(e) {
10526
10558
  let v = p.getString(m), y = p.getString(g), b = p.dump(_), { promise: x, resolve: S, reject: C } = e.promiseManager.create();
10527
10559
  return e.callMethod(v, y, b).then((e) => S(e), (e) => C(e)), x.settled.then(p.runtime.executePendingJobs), x.handle;
10528
10560
  }).consume((e) => p.setProp(p.global, "__callMethodV1__", e)), p.newFunction("__getStateV1__", (m) => {
10529
- let g = p.getString(m);
10530
- return newAny(p, e.getState(g));
10561
+ let g = p.getString(m), { promise: _, resolve: v, reject: y } = e.promiseManager.create();
10562
+ return e.getState(g).then((e) => v(e), (e) => y(e)), _.settled.then(p.runtime.executePendingJobs), _.handle;
10531
10563
  }).consume((e) => p.setProp(p.global, "__getStateV1__", e)), p.newFunction("__setStateV1__", (m, g) => {
10532
- let _ = p.getString(m), v = p.dump(g);
10533
- e.setState(_, v);
10564
+ let _ = p.getString(m), v = p.dump(g), { promise: y, resolve: b, reject: x } = e.promiseManager.create();
10565
+ return e.setState(_, v).then((e) => b(e), (e) => x(e)), y.settled.then(p.runtime.executePendingJobs), y.handle;
10534
10566
  }).consume((e) => p.setProp(p.global, "__setStateV1__", e)), p.newFunction("__navigateToV1__", (m, g) => {
10535
10567
  let _ = p.getString(m), v = p.getString(g);
10536
10568
  if (e.mode === "runtime") {
@@ -10626,6 +10658,9 @@ var PromiseManager = class {
10626
10658
  prepare(e, p, m) {
10627
10659
  this.meta.value = e.value, this.data.value = p.value, this.resetProperties(m), this.resetStates();
10628
10660
  }
10661
+ getNode(e) {
10662
+ return this.data.value?.view.nodes[e];
10663
+ }
10629
10664
  async createVm(e, p) {
10630
10665
  this.vm = e.newContext(), this.promiseManager = new PromiseManager(this.vm), bind(this), this.vm.evalCode("\nlet __events__ = {}\n\nfunction __onEventV1__(id, callback) {\n if (typeof(id) !== 'string' || !id) {\n return\n }\n if (typeof(callback) !== 'function') {\n return\n }\n if (!__events__[id]) {\n __events__[id] = []\n }\n const callbacks = __events__[id]\n for (let i = 0; i < callbacks.length; i++) {\n if (callbacks[i] === callback) {\n return\n }\n }\n callbacks.push(callback)\n}\n\nasync function __triggerEventInner__(id, ...params) {\n if (typeof(id) !== 'string' || !id) {\n return\n }\n if (!__events__[id]) {\n return\n }\n const callbacks = __events__[id]\n if (!callbacks) {\n return\n }\n for (let i = 0; i < callbacks.length; i++) {\n await callbacks[i](...params)\n }\n}\n\nlet __timers__ = {}\nlet __currTimerId__ = 0\n\nfunction __createTimerV1__(interval, loop, count, immediate, callback) {\n if (!loop && count <= 0) {\n return\n }\n const timer = {}\n timer.id = __currTimerId__++\n timer.interval = interval\n timer.loop = loop\n timer.count = count\n timer.immediate = immediate\n timer.callback = callback\n __timers__[timer.id] = timer\n if (timer.immediate) {\n __timeoutCallbackV1__(timer.id)\n } else {\n __timeoutV1__(timer.id, timer.interval)\n }\n}\n\nasync function __timeoutCallback__(timerId) {\n const timer = __timers__[timerId]\n if (timer) {\n timer.callback()\n // 修改计数\n if (!timer.loop) {\n timer.count = timer.count - 1\n }\n // 触发超时\n if (timer.loop || timer.count > 0) {\n await __timeoutV1__(timer.id, timer.interval)\n }\n // 回收\n if (!timer.loop && timer.count <= 0) {\n delete __timers__[timer.id]\n }\n }\n}\n\nfunction __destroy__() {\n __events__ = {}\n __timers__ = {}\n}\n"), this.setGlobalVariable("__env__", this.env), this.vm.evalCode(p), await nextTick(), this.hooks.onReady();
10631
10666
  }
@@ -10738,8 +10773,7 @@ var PromiseManager = class {
10738
10773
  return !m || !m.properties ? !1 : !!m.properties.find((e) => e.id === p);
10739
10774
  }
10740
10775
  async getProperty(e, p) {
10741
- this.debugTrace(makeFuncInfo("getProperty", e, p ?? ""));
10742
- let { kind: m, nodeId: g, propertyKey: _ } = unwrapPropertyId(e), v = this.data.value?.view.nodes[g];
10776
+ let { kind: m, nodeId: g, propertyKey: _ } = unwrapPropertyId(e), v = this.getNode(g);
10743
10777
  if (!v) throw Error("node not found");
10744
10778
  if (m === "elementProperty") return await this.getElementProperty(e, v, _);
10745
10779
  if (m === "elementSlotProperty") return await this.getElementSlotProperty(e, g, _);
@@ -10762,7 +10796,7 @@ var PromiseManager = class {
10762
10796
  if (!y) throw Error("sandbox not found");
10763
10797
  if (!y.isValidOfElementSlotProperty(g, _, v)) throw console.warn(`Sandbox/getElementSlotProperty invalid element slot property id=${e}`), Error("invalid element slot property");
10764
10798
  let b = { value: void 0 };
10765
- return y.eventBus.emit(`property/${_}/${v}/get`, { result: b }), b.value;
10799
+ return y.eventBus.emit(`property/${v}/get`, { result: b }), b.value;
10766
10800
  }
10767
10801
  async getMultipleElementSlotProperty(e, p, m, g) {
10768
10802
  if (!g) throw Error("instance not available");
@@ -10770,7 +10804,7 @@ var PromiseManager = class {
10770
10804
  if (!b) throw Error("sandbox not found");
10771
10805
  if (!b.isValidOfElementSlotProperty(_, v, y)) throw console.warn(`Sandbox/getMultipleElementSlotProperty invalid element slot property id=${e}`), Error("invalid element slot property");
10772
10806
  let x = { value: void 0 };
10773
- return b.eventBus.emit(`property/${v}/${y}/get`, { result: x }), x.value;
10807
+ return b.eventBus.emit(`property/${y}/get`, { result: x }), x.value;
10774
10808
  }
10775
10809
  async getRefProperty(e, p, m) {
10776
10810
  let g = this.children[p];
@@ -10816,8 +10850,7 @@ var PromiseManager = class {
10816
10850
  return this.customSlotProperties[g];
10817
10851
  }
10818
10852
  async setProperty(e, p, m) {
10819
- this.debugTrace(makeFuncInfo("setProperty", e, p, m ?? ""));
10820
- let { kind: g, nodeId: v, propertyKey: y } = unwrapPropertyId(e), b = this.data.value?.view.nodes[v];
10853
+ let { kind: g, nodeId: v, propertyKey: y } = unwrapPropertyId(e), b = this.getNode(v);
10821
10854
  if (!b) throw Error("node not found");
10822
10855
  if (p = cloneDeep_default(p), g === "elementProperty") await this.setElementProperty(e, p, y, b);
10823
10856
  else if (g === "elementSlotProperty") await this.setElementSlotProperty(e, p, v, y);
@@ -10842,9 +10875,9 @@ var PromiseManager = class {
10842
10875
  if (!x) throw Error("sandbox not found");
10843
10876
  if (!x.isValidOfElementSlotProperty(v, y, b)) throw console.warn(`Sandbox/setElementSlotProperty invalid element slot property id=${e}`), Error("invalid element slot property");
10844
10877
  let S = { value: void 0 };
10845
- x.eventBus.emit(`property/${y}/${b}/get`, { result: S });
10878
+ x.eventBus.emit(`property/${b}/get`, { result: S });
10846
10879
  let C = S.value;
10847
- isEqual_default(p, C) || (x.eventBus.emit(`property/${y}/${b}/set`, p), x.hooks.onPropertyChange(makePropertyId("elementAdaptSlotProperty", "globality", _), p, C), this.hooks.onPropertyChange(e, p, C));
10880
+ isEqual_default(p, C) || x.eventBus.emit(`property/${b}/set`, p);
10848
10881
  }
10849
10882
  async setMultipleElementSlotProperty(e, p, m, _, v) {
10850
10883
  if (!v) throw Error("instance not available");
@@ -10852,9 +10885,9 @@ var PromiseManager = class {
10852
10885
  if (!S) throw Error("sandbox not found");
10853
10886
  if (!S.isValidOfElementSlotProperty(y, b, x)) throw console.warn(`Sandbox/setMultipleElementSlotProperty invalid element slot property id=${e}`), Error("invalid element slot property");
10854
10887
  let C = { value: void 0 };
10855
- S.eventBus.emit(`property/${b}/${x}/get`, { result: C });
10888
+ S.eventBus.emit(`property/${x}/get`, { result: C });
10856
10889
  let w = C.value;
10857
- isEqual_default(p, w) || (S.eventBus.emit(`property/${b}/${x}/set`, p), S.hooks.onPropertyChange(makePropertyId("elementAdaptSlotProperty", "globality", _), p, w, v), this.hooks.onPropertyChange(e, p, w, v));
10890
+ isEqual_default(p, w) || S.eventBus.emit(`property/${x}/set`, p);
10858
10891
  }
10859
10892
  async setRefProperty(e, p, m, _) {
10860
10893
  let v = this.children[m];
@@ -10927,7 +10960,7 @@ var PromiseManager = class {
10927
10960
  }
10928
10961
  async callMethod(e, p, m) {
10929
10962
  this.debugTrace(makeFuncInfo("callMethod", e, p, m));
10930
- let { kind: g, nodeId: _, methodKey: v } = unwrapMethodId(e), y = this.data.value?.view.nodes[_];
10963
+ let { kind: g, nodeId: _, methodKey: v } = unwrapMethodId(e), y = this.getNode(_);
10931
10964
  if (!y) throw Error("node not found");
10932
10965
  if (g === "elementMethod") await this.callElementMethod(e, m, y.basic.key, v);
10933
10966
  else if (g === "elementSlotMethod") await this.callElementSlotMethod(e, m, _, v);
@@ -10952,7 +10985,7 @@ var PromiseManager = class {
10952
10985
  if (!b) throw Error("sandbox not found");
10953
10986
  if (!b.isValidOfElementSlotMethod(_, v, y)) throw console.warn(`Sandbox/callElementSlotMethod invalid element slot method id=${e}`), Error("invalid element slot method");
10954
10987
  let x = {};
10955
- return b.eventBus.emit(`method/${v}/${y}`, {
10988
+ return b.eventBus.emit(`method/${y}`, {
10956
10989
  inputs: p,
10957
10990
  outputs: x
10958
10991
  }), x;
@@ -10963,7 +10996,7 @@ var PromiseManager = class {
10963
10996
  if (!x) throw Error("sandbox not found");
10964
10997
  if (!x.isValidOfElementSlotMethod(v, y, b)) throw console.warn(`Sandbox/callMultipleElementSlotMethod invalid element slot method id=${e}`), Error("invalid element slot method");
10965
10998
  let S = {};
10966
- return x.eventBus.emit(`method/${y}/${b}`, {
10999
+ return x.eventBus.emit(`method/${b}`, {
10967
11000
  inputs: m,
10968
11001
  outputs: S
10969
11002
  }), S;
@@ -11017,7 +11050,7 @@ var PromiseManager = class {
11017
11050
  };
11018
11051
  function useSandbox(e, p, m, _, v, y, b, x) {
11019
11052
  let S = injectOrg(), C = injectEnv(), w = injectMode(), T = injectType(), E = injectDevice(), D = injectDark();
11020
- if (!isExecutableMode(w)) return;
11053
+ if (!isExecutableMode(w)) return { sandbox: void 0 };
11021
11054
  let O = injectRuntime(), k = new Sandbox(e, p, m, _, v, S, C, w, T, {
11022
11055
  onReady: j,
11023
11056
  onDestroy: M,
@@ -11058,13 +11091,13 @@ function useSandbox(e, p, m, _, v, y, b, x) {
11058
11091
  async function P(e, p, m) {
11059
11092
  k.vm && (await k.triggerEvent(makeEventId("stateChangeEvent", "globality", e), "", p, m), b.value?.code.reactivity && triggerReactivity(k, b.value.code.reactivity, makeTriggerId("stateTrigger", e), p, m));
11060
11093
  }
11061
- watch(E, async (e, p) => {
11094
+ return watch(E, async (e, p) => {
11062
11095
  if (!k.vm) return;
11063
11096
  let m = calcBreakpoint(e.width), g = calcBreakpoint(p?.width ?? e.width);
11064
11097
  await k.callFunctionAsync("__triggerEventV1__", makeEventId("elementEvent", "globality", "screenSizeChange"), "", m, g);
11065
11098
  }), watch(D, async (e) => {
11066
11099
  k.vm && await k.callFunctionAsync("__triggerEventV1__", makeEventId("elementEvent", "globality", "darkModeChange"), "", e);
11067
- });
11100
+ }), { sandbox: k };
11068
11101
  }
11069
11102
  function useTheme() {
11070
11103
  let e = injectDark();
@@ -1,6 +1,6 @@
1
1
  import { QuickJSContext, QuickJSRuntime } from 'quickjs-emscripten';
2
2
  import { Ref } from 'vue';
3
- import { Data, Env, Meta, Mode, SandboxKind } from '@/types';
3
+ import { Data, Env, Meta, Mode, Node, SandboxKind } from '@/types';
4
4
  import { InitValues, Inputs } from '../common';
5
5
  import { Hooks } from './hooks';
6
6
  import { PromiseManager } from './promiseManager';
@@ -29,6 +29,7 @@ export declare class Sandbox {
29
29
  private meta;
30
30
  private data;
31
31
  prepare(meta: Ref<Meta | undefined>, data: Ref<Data | undefined>, initValues?: InitValues): void;
32
+ getNode(nodeId: string): Node | undefined;
32
33
  createVm(runtime: QuickJSRuntime, code: string): Promise<void>;
33
34
  destroyVm(): void;
34
35
  setGlobalVariable(key: string, value: any): void;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "x-runtime-lib",
3
3
  "private": false,
4
- "version": "0.8.196",
4
+ "version": "0.8.198",
5
5
  "type": "module",
6
6
  "module": "dist/index.js",
7
7
  "types": "dist/index.d.ts",
@@ -33,7 +33,8 @@
33
33
  "three": "^0.182.0",
34
34
  "vue": "^3.5.27",
35
35
  "vue-i18n": "^11.2.8",
36
- "vuetify": "^3.11.7"
36
+ "vuetify": "^3.11.7",
37
+ "x-block-lib": "link:../x-block-lib"
37
38
  },
38
39
  "peerDependencies": {
39
40
  "x-error-lib": "^0.5.13",