x-prop-tree 0.7.39 → 0.7.41

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,7 +1,7 @@
1
1
  import { Ref, VNode } from 'vue';
2
2
  import { ZProperty } from 'x-runtime-lib';
3
- import { PropertyStateMap } from '@/utils';
4
- export declare function useUiProperty(propertyStates: Ref<PropertyStateMap>, entryHeight: Ref<string>, entryValueWidth: Ref<string>): {
3
+ import { PropertyState } from '@/utils';
4
+ export declare function useUiProperty(propertyState: Ref<PropertyState>, entryHeight: Ref<string>, entryValueWidth: Ref<string>): {
5
5
  renderProperty: (keys: (string | number)[], property: ZProperty, node: VNode) => VNode<import("vue").RendererNode, import("vue").RendererElement, {
6
6
  [key: string]: any;
7
7
  }>;
package/dist/index.js CHANGED
@@ -1,12 +1,28 @@
1
- import { a as cloneDeep_default, i as isEqual_default, n as setCollapse, r as tidyList, t as getListEntry } from "./vendor.gmzhs72f.js";
2
- import { Fragment, computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createTextVNode, createVNode, defineComponent, h, inject, isRef, mergeModels, mergeProps, normalizeStyle, onBeforeUnmount, onMounted, onUnmounted, openBlock, provide, reactive, ref, renderList, renderSlot, resolveComponent, resolveDirective, toDisplayString, unref, useId, useModel, useTemplateRef, watch, watchEffect, withCtx, withDirectives, withKeys, withModifiers } from "vue";
1
+ import { a as cloneDeep_default, i as isEqual_default, n as setCollapse$1, r as tidyList, t as getListEntry } from "./vendor.gmzhs72f.js";
2
+ import { Fragment, computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createTextVNode, createVNode, defineComponent, h, inject, isRef, mergeModels, mergeProps, normalizeStyle, onBeforeUnmount, onMounted, onUnmounted, openBlock, provide, ref, renderList, renderSlot, resolveComponent, resolveDirective, toDisplayString, unref, useId, useModel, useTemplateRef, watch, watchEffect, withCtx, withDirectives, withKeys, withModifiers } from "vue";
3
3
  import { useI18n } from "vue-i18n";
4
4
  import { eventBus, globalObjects, injectDark, injectLocale, openNumberDlg, openPromptDlg, useColor, useSystem, useViewStack } from "x-essential-lib";
5
5
  import { getElement, getPropertyDefault, getTag, makeSlotId, parsePercentStr, parsePixelStr, pkgs } from "x-runtime-lib";
6
6
  import { globalState } from "x-state-lib";
7
7
  import { useDisplay } from "vuetify";
8
8
  import { XBlockly } from "x-block-lib";
9
- const isBranchChildrenMap = (e) => !(e instanceof Array), isBranchChildrenArray = (e) => e instanceof Array, isPropertyCompatible = (e, m) => {
9
+ function isCollapse(e, m) {
10
+ let g = e.value;
11
+ for (let e of m) {
12
+ if (!g.children[e]) return !0;
13
+ g = g.children[e];
14
+ }
15
+ return g.collapse;
16
+ }
17
+ function setCollapse(e, m, g) {
18
+ let _ = e.value;
19
+ for (let e of m) _.children[e] || (_.children[e] = {
20
+ collapse: !0,
21
+ children: {}
22
+ }), _ = _.children[e];
23
+ _.collapse = g;
24
+ }
25
+ const isPropertyCompatible = (e, m) => {
10
26
  let g = (e, m) => {
11
27
  if (e.ui !== m.ui || e.array !== m.array) return !1;
12
28
  if (e.ui || m.ui) return !0;
@@ -70,86 +86,136 @@ const isBranchChildrenMap = (e) => !(e instanceof Array), isBranchChildrenArray
70
86
  let y = _;
71
87
  (m.ui === "switch" || m.ui === "select" || m.ui === "colorPicker" || m.ui === "multiTypes" || m.ui === "selectComp" || m.ui === "selectSlot" || m.ui === "selectAdaptSlot") && (_ || (y = void 0)), y !== g[m.key] && (g[m.key] = y, v(e, g[m.key]));
72
88
  }
73
- }, isPropertyStateChildrenMap = (e) => !(e instanceof Array), isPropertyStateChildrenArray = (e) => e instanceof Array;
89
+ };
74
90
  var propertyStateIgnores = [["basic", "id"], ["basic", "name"]], isPropertyStateIgnored = (e) => propertyStateIgnores.find((g) => isEqual_default(e, g));
75
- const execProperty = (m, g, _, v, y, b, x) => (m = cloneDeep_default(m), b === void 0 ? m.push(g.key) : (m.push(b), x && m.push(g.key)), isPropertyStateIgnored(m) ? (v.change = !1, v.change) : g.ui ? g.array && v.children && isPropertyStateChildrenArray(v.children) ? execPropertyLeafArray(m, g, _, v, y, b, x) : execPropertyLeafScalar(g, _, v, b, x) : g.array ? execPropertyBranchArray(m, g, _, v, y, b, x) : execPropertyBranchScalar(m, g, _, v, y, b, x));
91
+ const execProperty = (m, g, _, v, y, b, x) => (m = cloneDeep_default(m), b === void 0 ? m.push(g.key) : (m.push(b), x && m.push(g.key)), isPropertyStateIgnored(m) ? (v.change = !1, v.warning = !1, {
92
+ change: v.change,
93
+ warning: v.warning
94
+ }) : g.ui ? g.array && v.children ? execPropertyLeafArray(m, g, _, v, y, b, x) : execPropertyLeafScalar(g, _, v, b, x) : g.array ? execPropertyBranchArray(m, g, _, v, y, b, x) : execPropertyBranchScalar(m, g, _, v, y, b, x));
76
95
  var execPropertyBranchArray = (e, g, _, v, y, b, x) => {
77
- if (g.ui) return console.assert(!1, "execPropertyBranchArray property ui must be invalid"), !1;
78
- if (!g.array) return console.assert(!1, "execPropertyBranchArray property array must be valid"), !1;
79
- if (!v.children || !isPropertyStateChildrenArray(v.children)) return console.assert(!1, "execPropertyBranchArray state children must be array"), !1;
96
+ if (g.ui) return console.assert(!1, "execPropertyBranchArray property ui must be invalid"), {
97
+ change: !1,
98
+ warning: !1
99
+ };
100
+ if (!g.array) return console.assert(!1, "execPropertyBranchArray property array must be valid"), {
101
+ change: !1,
102
+ warning: !1
103
+ };
80
104
  let S;
81
- b !== void 0 && !x ? (_[b] instanceof Array || (_[b] = getPropertyDefault(g), y?.(e, _[b])), S = _[b]) : (_[g.key] instanceof Array || (_[g.key] = getPropertyDefault(g), y?.(e, _[g.key])), S = _[g.key]), v.change = !1;
105
+ b !== void 0 && !x ? (_[b] instanceof Array || (_[b] = getPropertyDefault(g), y?.(e, _[b])), S = _[b]) : (_[g.key] instanceof Array || (_[g.key] = getPropertyDefault(g), y?.(e, _[g.key])), S = _[g.key]);
82
106
  for (let m = 0; m < S.length; m++) {
83
- v.children.push({
107
+ v.children[m] = {
84
108
  change: !1,
109
+ warning: !1,
85
110
  children: {}
86
- });
111
+ };
87
112
  let _ = v.children[m];
88
- g.children.forEach((g) => {
89
- if (!_.children || !isPropertyStateChildrenMap(_.children)) {
90
- console.assert(!1);
91
- return;
92
- }
93
- _.children[g.key] = {
113
+ for (let b of g.children) {
114
+ _.children[b.key] = {
94
115
  change: !1,
95
- children: g.array ? [] : {}
96
- }, execProperty(e, g, S[m], _.children[g.key], y, m, !0) && (_.change = !0), _.change && (v.change = !0);
97
- });
116
+ warning: !1,
117
+ children: {}
118
+ };
119
+ let { change: g, warning: x } = execProperty(e, b, S[m], _.children[b.key], y, m, !0);
120
+ !_.change && g && (_.change = g), !_.change && x && (_.warning = x), !v.change && _.change && (v.change = _.change), !v.warning && _.warning && (v.warning = _.warning);
121
+ }
98
122
  }
99
- return v.change ||= !isEqual_default(S, getPropertyDefault(g)), v.change;
123
+ return v.change ||= !isEqual_default(S, getPropertyDefault(g)), {
124
+ change: v.change,
125
+ warning: v.warning
126
+ };
100
127
  }, execPropertyBranchScalar = (e, m, g, _, v, y, b) => {
101
- if (m.ui) return console.assert(!1, "execPropertyBranchScalar property ui must be invalid"), !1;
102
- if (m.array) return console.assert(!1, "execPropertyBranchScalar property array must be invalid"), !1;
103
- if (!_.children || !isPropertyStateChildrenMap(_.children)) return console.assert(!1, "execPropertyBranchScalar state children must be map"), !1;
128
+ if (m.ui) return console.assert(!1, "execPropertyBranchScalar property ui must be invalid"), {
129
+ change: !1,
130
+ warning: !1
131
+ };
132
+ if (m.array) return console.assert(!1, "execPropertyBranchScalar property array must be invalid"), {
133
+ change: !1,
134
+ warning: !1
135
+ };
104
136
  let x;
105
- y !== void 0 && !b ? (g[y] || (g[y] = {}), x = g[y]) : (g[m.key] || (g[m.key] = {}), x = g[m.key]), _.change = !1;
137
+ y !== void 0 && !b ? (g[y] || (g[y] = {}), x = g[y]) : (g[m.key] || (g[m.key] = {}), x = g[m.key]);
106
138
  for (let g = 0; g < m.children.length; g++) {
107
139
  let y = m.children[g];
108
140
  _.children[y.key] = {
109
141
  change: !1,
110
- children: y.array ? [] : {}
111
- }, execProperty(e, y, x, _.children[y.key], v) && (_.change = !0);
142
+ warning: !1,
143
+ children: {}
144
+ };
145
+ let { change: b, warning: S } = execProperty(e, y, x, _.children[y.key], v);
146
+ !_.change && b && (_.change = b), !_.warning && S && (_.warning = S);
112
147
  }
113
- return _.change;
148
+ return {
149
+ change: _.change,
150
+ warning: _.change
151
+ };
114
152
  }, execPropertyLeafArray = (e, g, _, v, y, b, x) => {
115
- if (!g.ui) return console.assert(!1, "execPropertyLeafArray property ui must be valid"), !1;
116
- if (!g.array) return console.assert(!1, "execPropertyLeafArray property aray must be valid"), !1;
117
- if (!v.children || !isPropertyStateChildrenArray(v.children)) return console.assert(!1, "execPropertyLeafArray state children must be array"), !1;
118
- let S;
119
- b !== void 0 && !x ? (_[b] instanceof Array || (_[b] = getPropertyDefault(g), y?.(e, _[b])), S = _[b]) : (_[g.key] instanceof Array || (_[g.key] = getPropertyDefault(g), y?.(e, _[g.key])), S = _[g.key]), v.change = !1;
120
- for (let m = 0; m < S.length; m++) v.children[m] = {
153
+ if (!g.ui) return console.assert(!1, "execPropertyLeafArray property ui must be valid"), {
121
154
  change: !1,
122
- children: {}
123
- }, execProperty(e, g, S, v.children[m], y, m, !1) && (v.change = !0);
124
- return v.change ||= !isEqual_default(S, getPropertyDefault(g)), v.change;
155
+ warning: !1
156
+ };
157
+ if (!g.array) return console.assert(!1, "execPropertyLeafArray property aray must be valid"), {
158
+ change: !1,
159
+ warning: !1
160
+ };
161
+ let S;
162
+ b !== void 0 && !x ? (_[b] instanceof Array || (_[b] = getPropertyDefault(g), y?.(e, _[b])), S = _[b]) : (_[g.key] instanceof Array || (_[g.key] = getPropertyDefault(g), y?.(e, _[g.key])), S = _[g.key]);
163
+ for (let m = 0; m < S.length; m++) {
164
+ v.children[m] = {
165
+ change: !1,
166
+ warning: !1,
167
+ children: {}
168
+ };
169
+ let { change: _, warning: b } = execProperty(e, g, S, v.children[m], y, m, !1);
170
+ !v.change && _ && (v.change = _), !v.warning && b && (v.warning = b);
171
+ }
172
+ return v.change ||= !isEqual_default(S, getPropertyDefault(g)), {
173
+ change: v.change,
174
+ warning: v.warning
175
+ };
125
176
  }, execPropertyLeafScalar = (e, g, _, v, y) => {
126
- if (!e.ui) return console.assert(!1, "execPropertyLeafScalar property ui must be valid"), !1;
177
+ if (!e.ui) return console.assert(!1, "execPropertyLeafScalar property ui must be valid"), {
178
+ change: !1,
179
+ warning: !1
180
+ };
127
181
  let b;
128
- return b = v !== void 0 && !y ? g[v] : g[e.key], _.change = !isEqual_default(b, getPropertyDefault(e, !0)), _.change;
182
+ return b = v !== void 0 && !y ? g[v] : g[e.key], _.change = !isEqual_default(b, getPropertyDefault(e, !0)), {
183
+ change: _.change,
184
+ warning: _.warning
185
+ };
129
186
  };
130
187
  const rebuildPropertyState = (e, m, g, _) => {
131
188
  if (m.length <= 0 || !g) {
132
- e.value = {};
189
+ e.value = {
190
+ change: !1,
191
+ warning: !1,
192
+ children: {}
193
+ };
133
194
  return;
134
195
  }
135
- let v = {};
136
- m.forEach((e) => {
137
- v[e.key] = {
138
- change: !1,
139
- children: e.array ? [] : {}
140
- }, execProperty([], e, g, v[e.key], _);
141
- }), e.value = v;
142
- }, isPropertyChanged = (e, m) => {
143
- let g = {
196
+ let v = {
144
197
  change: !1,
145
- children: e
198
+ warning: !1,
199
+ children: {}
146
200
  };
147
- return m.forEach((e) => {
148
- if (!g || !g.children) return console.assert(!1, `isPropChanged state must be valid keys=${m}`), !1;
149
- typeof e == "string" ? isPropertyStateChildrenMap(g.children) && (g = g.children[e]) : isPropertyStateChildrenArray(g.children) && (g = g.children[e]);
150
- }), g?.change ?? !1;
201
+ for (let e of m) {
202
+ let m = {
203
+ change: !1,
204
+ warning: !1,
205
+ children: {}
206
+ };
207
+ v.children[e.key] = m, execProperty([], e, g, m, _);
208
+ }
209
+ e.value = v;
210
+ }, isPropertyChanged = (e, m) => {
211
+ let g = e;
212
+ for (let e of m) {
213
+ if (!g.children[e]) return !1;
214
+ g = g.children[e];
215
+ }
216
+ return g.change;
151
217
  };
152
- var versionKey = Symbol(), configKey = Symbol(), objectKey = Symbol(), propertyStatesKey = Symbol(), changeEventKey = Symbol(), compListKey = Symbol(), slotListKey = Symbol(), adaptSlotListKey = Symbol();
218
+ var versionKey = Symbol(), configKey = Symbol(), objectKey = Symbol(), propertyStateKey = Symbol(), changeEventKey = Symbol(), compListKey = Symbol(), slotListKey = Symbol(), adaptSlotListKey = Symbol();
153
219
  function provideVersion(e) {
154
220
  provide(versionKey, e);
155
221
  }
@@ -168,11 +234,11 @@ function provideObject(e) {
168
234
  function injectObject() {
169
235
  return inject(objectKey);
170
236
  }
171
- function providePropertyStates(e) {
172
- provide(propertyStatesKey, e);
237
+ function providePropertyState(e) {
238
+ provide(propertyStateKey, e);
173
239
  }
174
- function injectPropertyStates() {
175
- return inject(propertyStatesKey);
240
+ function injectPropertyState() {
241
+ return inject(propertyStateKey);
176
242
  }
177
243
  function provideChangeEvent(e) {
178
244
  provide(changeEventKey, e);
@@ -201,7 +267,7 @@ function injectAdaptSlotList() {
201
267
  var menu_default = /* @__PURE__ */ defineComponent({
202
268
  __name: "index",
203
269
  setup(e) {
204
- let { t: m } = useI18n(), g = injectConfig(), _ = injectObject(), v = injectPropertyStates(), S = injectChangeEvent(), w = ref(0), D = ref(0), O = ref([]), k = computed(() => [w.value, D.value]), j = (e) => {
270
+ let { t: m } = useI18n(), g = injectConfig(), _ = injectObject(), v = injectPropertyState(), S = injectChangeEvent(), w = ref(0), D = ref(0), O = ref([]), k = computed(() => [w.value, D.value]), j = (e) => {
205
271
  (() => !(O.value.length <= 0 || !isPropertyChanged(v.value, O.value)))() && e.push({
206
272
  title: m("x-prop-tree.reset"),
207
273
  func: () => {
@@ -593,7 +659,7 @@ var _hoisted_1$17 = { class: "text-subtitle-2 ml-1" }, _hoisted_2$5 = { class: "
593
659
  setup(e) {
594
660
  let { nameList: m } = useSystem(), _ = useModel(e, "modelValue"), b = useModel(e, "open"), w = injectAdaptSlotList(), T = (e) => {
595
661
  let m = getListEntry(w, e);
596
- m && setCollapse(w, e, !m.collapse);
662
+ m && setCollapse$1(w, e, !m.collapse);
597
663
  }, E = (e) => {
598
664
  _.value = e, b.value = !1;
599
665
  };
@@ -848,7 +914,7 @@ var _hoisted_1$17 = { class: "text-subtitle-2 ml-1" }, _hoisted_2$5 = { class: "
848
914
  setup(e) {
849
915
  let { nameList: m } = useSystem(), _ = useModel(e, "modelValue"), b = useModel(e, "open"), w = injectCompList(), T = (e) => {
850
916
  let m = getListEntry(w, e);
851
- m && setCollapse(w, e, !m.collapse);
917
+ m && setCollapse$1(w, e, !m.collapse);
852
918
  }, E = (e) => {
853
919
  _.value = e, b.value = !1, eventBus.emit("refreshDepends");
854
920
  };
@@ -1721,7 +1787,14 @@ var propTree_default = /* @__PURE__ */ defineComponent({
1721
1787
  },
1722
1788
  emits: ["change"],
1723
1789
  setup(m, { emit: g }) {
1724
- let { t: _ } = useI18n(), { backgroundColor1: v } = useColor(), b = m, x = g, S = ref("20px"), w = ref("56px"), T = ref("200px"), D = reactive({}), k = ref({}), A = (e, m) => {
1790
+ let { t: _ } = useI18n(), { backgroundColor1: v } = useColor(), b = m, x = g, S = ref("20px"), w = ref("56px"), T = ref("200px"), D = ref({
1791
+ collapse: !0,
1792
+ children: {}
1793
+ }), k = ref({
1794
+ change: !1,
1795
+ warning: !1,
1796
+ children: {}
1797
+ }), A = (e, m) => {
1725
1798
  rebuildPropertyState(k, b.config, b.object), x("change", e, m);
1726
1799
  };
1727
1800
  watch([() => b.config, () => b.object], () => {
@@ -1748,21 +1821,20 @@ var propTree_default = /* @__PURE__ */ defineComponent({
1748
1821
  let F = ref(b.object);
1749
1822
  provideObject(F), watch(() => b.object, () => {
1750
1823
  F.value = b.object;
1751
- }), providePropertyStates(k), provideChangeEvent(A), useCompList(), useSlotList(), useAdaptSlotList(j, M, N);
1752
- let { renderProperty: I } = useUiProperty(k, w, T), { renderUiDummy: L } = useUiDummy(A), { renderUiStrInput: R } = useUiStrInput(A), { renderUiNumInput: z } = useUiNumInput(A), { renderUiSwitch: B } = useUiSwitch(A), { renderUiSelect: V } = useUiSelect(A), { renderUiColorPicker: H } = useUiColorPicker(A), { renderUiJsonEditor: U } = useUiJsonEditor(A), { renderUiMultiTypes: W } = useUiMultiTypes(A), { renderUiCompSelect: G } = useUiCompSelect(A), { renderUiSlotSelect: K } = useUiSlotSelect(A), { renderUiAdaptSlotSelect: q } = useUiAdaptSlotSelect(A), J = (m, g, _, v, y, b) => (m = cloneDeep_default(m), y === void 0 ? m.push(g.key) : (m.push(y), b && m.push(g.key)), g.ui ? g.array && v ? Z(m, g, _, v, y, b) : Q(m, g, _, y, b) : g.array ? Y(m, g, _, v, y, b) : X(m, g, _, v, y, b)), Y = (e, m, g, v, y, b) => {
1824
+ }), providePropertyState(k), provideChangeEvent(A), useCompList(), useSlotList(), useAdaptSlotList(j, M, N);
1825
+ let { renderProperty: I } = useUiProperty(k, w, T), { renderUiDummy: L } = useUiDummy(A), { renderUiStrInput: R } = useUiStrInput(A), { renderUiNumInput: z } = useUiNumInput(A), { renderUiSwitch: B } = useUiSwitch(A), { renderUiSelect: V } = useUiSelect(A), { renderUiColorPicker: H } = useUiColorPicker(A), { renderUiJsonEditor: U } = useUiJsonEditor(A), { renderUiMultiTypes: W } = useUiMultiTypes(A), { renderUiCompSelect: G } = useUiCompSelect(A), { renderUiSlotSelect: K } = useUiSlotSelect(A), { renderUiAdaptSlotSelect: q } = useUiAdaptSlotSelect(A), J = (m, g, _, v, y) => (m = cloneDeep_default(m), v === void 0 ? m.push(g.key) : (m.push(v), y && m.push(g.key)), g.ui ? g.array ? Z(m, g, _, v, y) : Q(m, g, _, v, y) : g.array ? Y(m, g, _, v, y) : X(m, g, _, v, y)), Y = (e, m, g, v, y) => {
1753
1826
  if (m.ui) return console.assert(!1), h("div", "renderBranchArray property ui must be invalid");
1754
1827
  if (!m.array) return console.assert(!1), h("div", "renderBranchArray property array must be valid");
1755
- if (!v) return console.assert(!1), h("div", "renderBranchArray branch must be valid");
1756
- let x;
1757
- y !== void 0 && !b ? (g[y] instanceof Array || (g[y] = getPropertyDefault(m), A(e, g[m.key])), x = g[y]) : (g[m.key] instanceof Array || (g[m.key] = getPropertyDefault(m), A(e, g[m.key])), x = g[m.key]);
1758
- let C = _(m.name);
1759
- v.collapse && isPropertyChanged(k.value, e) && (C += " *");
1760
- let w = h(title_default, {
1761
- title: C,
1762
- collapse: v.collapse,
1828
+ let b;
1829
+ v !== void 0 && !y ? (g[v] instanceof Array || (g[v] = getPropertyDefault(m), A(e, g[m.key])), b = g[v]) : (g[m.key] instanceof Array || (g[m.key] = getPropertyDefault(m), A(e, g[m.key])), b = g[m.key]);
1830
+ let x = _(m.name);
1831
+ isCollapse(D, e) && isPropertyChanged(k.value, e) && (x += " *");
1832
+ let C = h(title_default, {
1833
+ title: x,
1834
+ collapse: isCollapse(D, e),
1763
1835
  hasCreate: !0,
1764
- onCollapse: (e) => {
1765
- v.collapse = e;
1836
+ onCollapse: (m) => {
1837
+ setCollapse(D, e, m);
1766
1838
  },
1767
1839
  onMenu: (m, g) => {
1768
1840
  eventBus.emit("propTreeMenu", {
@@ -1772,84 +1844,59 @@ var propTree_default = /* @__PURE__ */ defineComponent({
1772
1844
  });
1773
1845
  },
1774
1846
  onCreate: () => {
1775
- x.push({}), A(e, x);
1847
+ b.push({}), A(e, b);
1776
1848
  }
1777
- }), T = h("div", { style: { paddingLeft: S.value } }, (() => {
1849
+ }), w = h("div", { style: { paddingLeft: S.value } }, (() => {
1778
1850
  let g = [];
1779
- for (let _ = 0; _ < x.length; _++) {
1780
- if (!isBranchChildrenArray(v.children)) {
1781
- console.assert(!1);
1782
- break;
1783
- }
1784
- v.children[_] || v.children.push({
1785
- collapse: !0,
1786
- children: {}
1787
- });
1788
- let y = [...e, _], b = v.children[_], C = `[${_ + 1}]`;
1789
- v.children[_].collapse && isPropertyChanged(k.value, y) && (C += " *");
1790
- let w = h(title_default, {
1791
- title: C,
1792
- collapse: v.children[_].collapse,
1851
+ for (let _ = 0; _ < b.length; _++) {
1852
+ let v = [...e, _], y = `[${_ + 1}]`;
1853
+ isCollapse(D, [...e, _]) && isPropertyChanged(k.value, v) && (y += " *");
1854
+ let x = h(title_default, {
1855
+ title: y,
1856
+ collapse: isCollapse(D, [...e, _]),
1793
1857
  hasDelete: !0,
1794
1858
  index: _,
1795
- onCollapse: (e) => {
1796
- if (!isBranchChildrenArray(v.children)) {
1797
- console.assert(!1);
1798
- return;
1799
- }
1800
- v.children[_].collapse = e;
1859
+ onCollapse: (m) => {
1860
+ setCollapse(D, [...e, _], m);
1801
1861
  },
1802
1862
  onMenu: (e, m) => {
1803
1863
  eventBus.emit("propTreeMenu", {
1804
1864
  x: e,
1805
1865
  y: m,
1806
- keys: y
1866
+ keys: v
1807
1867
  });
1808
1868
  },
1809
1869
  onDelete: (m) => {
1810
- if (!isBranchChildrenArray(v.children)) {
1811
- console.assert(!1);
1812
- return;
1813
- }
1814
- v.children.splice(m, 1), x.splice(m, 1), A(e, x);
1870
+ b.splice(m, 1), A(e, b);
1815
1871
  }
1816
1872
  });
1817
- g.push(w);
1818
- let T = h("div", { style: { paddingLeft: S.value } }, (() => {
1873
+ g.push(x);
1874
+ let C = h("div", { style: { paddingLeft: S.value } }, (() => {
1819
1875
  let g = [];
1820
1876
  return m.children.forEach((m) => {
1821
- if (!isBranchChildrenMap(b.children)) {
1822
- console.assert(!1);
1823
- return;
1824
- }
1825
- b.children[m.key] || (b.children[m.key] = {
1826
- collapse: !0,
1827
- children: m.array ? [] : {}
1828
- });
1829
- let v = J(e, m, x[_], b.children[m.key], _, !0);
1877
+ let v = J(e, m, b[_], _, !0);
1830
1878
  g.push(v);
1831
1879
  }), g;
1832
1880
  })());
1833
- v.children[_].collapse || g.push(T);
1881
+ isCollapse(D, [...e, _]) || g.push(C);
1834
1882
  }
1835
1883
  return g;
1836
1884
  })());
1837
1885
  return h("div", { style: { marginBottom: "1px" } }, (() => {
1838
- let e = [];
1839
- return e.push(w), v.collapse || e.push(T), e;
1886
+ let m = [];
1887
+ return m.push(C), isCollapse(D, e) || m.push(w), m;
1840
1888
  })());
1841
- }, X = (e, m, g, v, y, b) => {
1889
+ }, X = (e, m, g, v, y) => {
1842
1890
  if (m.ui) return console.assert(!1), h("div", "renderBranchScalar property ui must be invalid");
1843
1891
  if (m.array) return console.assert(!1), h("div", "renderBranchScalar property array must be invalid");
1844
- if (!v) return console.assert(!1), h("div", "renderBranchScalar branch must be valid");
1845
- let x = _(m.name);
1846
- v.collapse && isPropertyChanged(k.value, e) && (x += " *");
1847
- let C = h(title_default, {
1848
- title: x,
1849
- collapse: v.collapse,
1850
- hasDelete: y !== void 0 && !b,
1851
- onCollapse: (e) => {
1852
- v.collapse = e;
1892
+ let b = _(m.name);
1893
+ isCollapse(D, e) && isPropertyChanged(k.value, e) && (b += " *");
1894
+ let x = h(title_default, {
1895
+ title: b,
1896
+ collapse: isCollapse(D, e),
1897
+ hasDelete: v !== void 0 && !y,
1898
+ onCollapse: (m) => {
1899
+ setCollapse(D, e, m);
1853
1900
  },
1854
1901
  onMenu: (m, g) => {
1855
1902
  eventBus.emit("propTreeMenu", {
@@ -1859,41 +1906,32 @@ var propTree_default = /* @__PURE__ */ defineComponent({
1859
1906
  });
1860
1907
  },
1861
1908
  onDelete: () => {
1862
- y === void 0 || b || (g.splice(y, 1), A(e.slice(0, -1), g));
1909
+ v === void 0 || y || (g.splice(v, 1), A(e.slice(0, -1), g));
1863
1910
  }
1864
- }), w = h("div", { style: { paddingLeft: S.value } }, (() => {
1911
+ }), C = h("div", { style: { paddingLeft: S.value } }, (() => {
1865
1912
  let _ = [];
1866
- return m.children.forEach((y) => {
1867
- if (!isBranchChildrenMap(v.children)) {
1868
- console.assert(!1);
1869
- return;
1870
- }
1871
- v.children[y.key] || (v.children[y.key] = {
1872
- collapse: !0,
1873
- children: !y.ui && y.array ? [] : {}
1874
- });
1875
- let b = J(e, y, (() => (typeof g[m.key] != "object" && (g[m.key] = {}, A(e, g[m.key])), g[m.key]))(), v.children[y.key]);
1876
- _.push(b);
1913
+ return m.children.forEach((v) => {
1914
+ let y = J(e, v, (() => (typeof g[m.key] != "object" && (g[m.key] = {}, A(e, g[m.key])), g[m.key]))());
1915
+ _.push(y);
1877
1916
  }), _;
1878
1917
  })());
1879
1918
  return h("div", { style: { marginBottom: "1px" } }, (() => {
1880
- let e = [];
1881
- return e.push(C), v.collapse || e.push(w), e;
1919
+ let m = [];
1920
+ return m.push(x), isCollapse(D, e) || m.push(C), m;
1882
1921
  })());
1883
- }, Z = (e, m, g, v, y, b) => {
1922
+ }, Z = (e, m, g, v, y) => {
1884
1923
  if (!m.ui) return console.assert(!1), h("div", "renderLeafArray property ui must be valid");
1885
1924
  if (!m.array) return console.assert(!1), h("div", "renderLeafArray property array must be valid");
1886
- if (!v) return console.assert(!1), h("div", "renderLeafArray branch must be valid");
1887
- let x;
1888
- y !== void 0 && !b ? (g[y] instanceof Array || (g[y] = getPropertyDefault(m), A(e, g[y])), x = g[y]) : (g[m.key] instanceof Array || (g[m.key] = getPropertyDefault(m), A(e, g[m.key])), x = g[m.key]);
1889
- let C = _(m.name);
1890
- v.collapse && isPropertyChanged(k.value, e) && (C += " *");
1891
- let w = h(title_default, {
1892
- title: C,
1893
- collapse: v.collapse,
1925
+ let b;
1926
+ v !== void 0 && !y ? (g[v] instanceof Array || (g[v] = getPropertyDefault(m), A(e, g[v])), b = g[v]) : (g[m.key] instanceof Array || (g[m.key] = getPropertyDefault(m), A(e, g[m.key])), b = g[m.key]);
1927
+ let x = _(m.name);
1928
+ isCollapse(D, e) && isPropertyChanged(k.value, e) && (x += " *");
1929
+ let C = h(title_default, {
1930
+ title: x,
1931
+ collapse: isCollapse(D, e),
1894
1932
  hasCreate: !0,
1895
- onCollapse: (e) => {
1896
- v.collapse = e;
1933
+ onCollapse: (m) => {
1934
+ setCollapse(D, e, m);
1897
1935
  },
1898
1936
  onMenu: (m, g) => {
1899
1937
  eventBus.emit("propTreeMenu", {
@@ -1903,19 +1941,19 @@ var propTree_default = /* @__PURE__ */ defineComponent({
1903
1941
  });
1904
1942
  },
1905
1943
  onCreate: () => {
1906
- x.push(getPropertyDefault(m, !0)), A(e, x);
1944
+ b.push(getPropertyDefault(m, !0)), A(e, b);
1907
1945
  }
1908
- }), T = h("div", { style: { paddingLeft: S.value } }, (() => {
1946
+ }), w = h("div", { style: { paddingLeft: S.value } }, (() => {
1909
1947
  let g = [];
1910
- for (let _ = 0; _ < x.length; _++) {
1911
- let v = J(e, m, x, void 0, _, !1);
1948
+ for (let _ = 0; _ < b.length; _++) {
1949
+ let v = J(e, m, b, _, !1);
1912
1950
  g.push(v);
1913
1951
  }
1914
1952
  return g;
1915
1953
  })());
1916
1954
  return h("div", { style: { marginBottom: "1px" } }, (() => {
1917
- let e = [];
1918
- return e.push(w), v.collapse || e.push(T), e;
1955
+ let m = [];
1956
+ return m.push(C), isCollapse(D, e) || m.push(w), m;
1919
1957
  })());
1920
1958
  }, Q = (e, m, g, _, v) => {
1921
1959
  if (!m.ui) return console.assert(!1), h("div", "renderLeafScalar property ui must be valid");
@@ -1926,29 +1964,12 @@ var propTree_default = /* @__PURE__ */ defineComponent({
1926
1964
  style: { background: v.value }
1927
1965
  }, (() => {
1928
1966
  let e = [];
1929
- if (b.unique && b.config.length > 0 && b.object) {
1930
- D[b.unique] || (D[b.unique] = {});
1931
- let m = D[b.unique];
1932
- b.config.forEach((g) => {
1933
- m[g.key] || (m[g.key] = {
1934
- collapse: !0,
1935
- children: !g.ui && g.array ? [] : {}
1936
- });
1937
- let _ = J([], g, b.object, m[g.key]);
1938
- e.push(_);
1939
- });
1940
- }
1941
- return e;
1967
+ return b.unique && b.config.length > 0 && b.object && b.config.forEach((m) => {
1968
+ let g = J([], m, b.object);
1969
+ e.push(g);
1970
+ }), e;
1942
1971
  })());
1943
- return (e, m) => (openBlock(), createElementBlock(Fragment, null, [createVNode($), createVNode(menu_default, {
1944
- config: b.config,
1945
- object: b.object,
1946
- "property-states": k.value
1947
- }, null, 8, [
1948
- "config",
1949
- "object",
1950
- "property-states"
1951
- ])], 64));
1972
+ return (e, m) => (openBlock(), createElementBlock(Fragment, null, [createVNode($), createVNode(menu_default)], 64));
1952
1973
  }
1953
1974
  }), install = (e) => {
1954
1975
  e.component("XPropTree", propTree_default);
@@ -0,0 +1,9 @@
1
+ import { Ref } from 'vue';
2
+ export type CollapseState = {
3
+ collapse: boolean;
4
+ children: {
5
+ [key: string | number]: CollapseState;
6
+ };
7
+ };
8
+ export declare function isCollapse(root: Ref<CollapseState>, keys: (string | number)[]): boolean;
9
+ export declare function setCollapse(root: Ref<CollapseState>, keys: (string | number)[], collapse: boolean): void;
@@ -1,4 +1,4 @@
1
- export * from './branch';
1
+ export * from './collapseState';
2
2
  export * from './copyPaste';
3
3
  export * from './misc';
4
4
  export * from './propertyState';
@@ -1,16 +1,16 @@
1
1
  import { Ref } from 'vue';
2
2
  import { ZProperty } from 'x-runtime-lib';
3
3
  import { ChangeEvent } from './misc';
4
- export type PropertyState = {
4
+ interface PropertyStateBase {
5
5
  change: boolean;
6
- children?: PropertyStateMap | PropertyStateArray;
7
- };
8
- export type PropertyStateMap = {
9
- [key: string]: PropertyState;
10
- };
11
- export type PropertyStateArray = PropertyState[];
12
- export declare const isPropertyStateChildrenMap: (children: PropertyStateMap | PropertyStateArray) => children is PropertyStateMap;
13
- export declare const isPropertyStateChildrenArray: (children: PropertyStateMap | PropertyStateArray) => children is PropertyStateArray;
14
- export declare const execProperty: (keys: (string | number)[], property: ZProperty, object: any, state: PropertyState, changeEvent?: ChangeEvent, arrayIndex?: number, isBranch?: boolean) => boolean;
15
- export declare const rebuildPropertyState: (propertyStates: Ref<PropertyStateMap>, config: ZProperty[], object: any, changeEvent?: ChangeEvent) => void;
16
- export declare const isPropertyChanged: (propertyStates: PropertyStateMap, keys: (string | number)[]) => boolean;
6
+ warning: string | boolean;
7
+ }
8
+ export interface PropertyState extends PropertyStateBase {
9
+ children: {
10
+ [key: string]: PropertyState;
11
+ };
12
+ }
13
+ export declare const execProperty: (keys: (string | number)[], property: ZProperty, object: any, state: PropertyState, changeEvent?: ChangeEvent, arrayIndex?: number, isBranch?: boolean) => PropertyStateBase;
14
+ export declare const rebuildPropertyState: (root: Ref<PropertyState>, config: ZProperty[], object: any, changeEvent?: ChangeEvent) => void;
15
+ export declare const isPropertyChanged: (root: PropertyState, keys: (string | number)[]) => boolean;
16
+ export {};
@@ -2,7 +2,7 @@ import { Ref } from 'vue';
2
2
  import { ListEntry } from 'x-group-list';
3
3
  import { ZProperty } from 'x-runtime-lib';
4
4
  import { ChangeEvent } from './misc';
5
- import { PropertyStateMap } from './propertyState';
5
+ import { PropertyState } from './propertyState';
6
6
  export declare function provideVersion(version: Ref<string>): void;
7
7
  export declare function injectVersion(): Ref<string>;
8
8
  export declare function provideType(type: Ref<string>): void;
@@ -13,8 +13,8 @@ export declare function provideConfig(config: Ref<ZProperty[]>): void;
13
13
  export declare function injectConfig(): Ref<ZProperty[]>;
14
14
  export declare function provideObject(object: Ref<any>): void;
15
15
  export declare function injectObject(): Ref<any>;
16
- export declare function providePropertyStates(propertyStates: Ref<PropertyStateMap>): void;
17
- export declare function injectPropertyStates(): Ref<PropertyStateMap>;
16
+ export declare function providePropertyState(propertyState: Ref<PropertyState>): void;
17
+ export declare function injectPropertyState(): Ref<PropertyState>;
18
18
  export declare function provideChangeEvent(changeEvent: ChangeEvent): void;
19
19
  export declare function injectChangeEvent(): ChangeEvent;
20
20
  export declare function provideCompList(compList: Ref<ListEntry[]>): void;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "x-prop-tree",
3
3
  "private": false,
4
- "version": "0.7.39",
4
+ "version": "0.7.41",
5
5
  "type": "module",
6
6
  "module": "dist/index.js",
7
7
  "types": "dist/index.d.ts",
@@ -22,40 +22,40 @@
22
22
  "*": "prettier --write ."
23
23
  },
24
24
  "dependencies": {
25
- "lodash-es": "^4.17.22",
25
+ "lodash-es": "^4.17.23",
26
26
  "vue": "^3.5.27",
27
27
  "vue-i18n": "^11.2.8",
28
- "vuetify": "^3.11.7"
28
+ "vuetify": "^3.11.8"
29
29
  },
30
30
  "peerDependencies": {
31
- "x-block-lib": "^0.10.0",
32
- "x-essential-lib": "^0.9.24",
33
- "x-group-list": "^0.4.9",
34
- "x-runtime-lib": "^0.8.207",
35
- "x-state-lib": "^0.3.38"
31
+ "x-block-lib": "^0.10.4",
32
+ "x-essential-lib": "^0.9.25",
33
+ "x-group-list": "^0.4.10",
34
+ "x-runtime-lib": "^0.8.214",
35
+ "x-state-lib": "^0.3.39"
36
36
  },
37
37
  "devDependencies": {
38
38
  "@eslint/js": "^9.39.2",
39
39
  "@types/lodash-es": "^4.17.12",
40
- "@types/node": "^25.0.9",
41
- "@vitejs/plugin-vue": "^6.0.3",
40
+ "@types/node": "^25.2.0",
41
+ "@vitejs/plugin-vue": "^6.0.4",
42
42
  "eslint": "^9.39.2",
43
43
  "eslint-config-prettier": "^10.1.8",
44
44
  "eslint-plugin-prettier": "^5.5.5",
45
45
  "eslint-plugin-vue": "^10.7.0",
46
- "globals": "^17.0.0",
46
+ "globals": "^17.3.0",
47
47
  "husky": "^9.1.7",
48
48
  "lint-staged": "^16.2.7",
49
- "prettier": "3.8.0",
50
- "sass": "^1.97.2",
49
+ "prettier": "3.8.1",
50
+ "sass": "^1.97.3",
51
51
  "typescript": "^5.9.3",
52
- "typescript-eslint": "^8.53.1",
52
+ "typescript-eslint": "^8.54.0",
53
53
  "vite": "npm:rolldown-vite@7.3.1",
54
54
  "vite-plugin-css-injected-by-js": "^3.5.2",
55
55
  "vite-plugin-vuetify": "^2.1.3",
56
56
  "vue-eslint-parser": "^10.2.0",
57
- "vue-router": "^4.6.4",
58
- "vue-tsc": "^3.2.2"
57
+ "vue-router": "^5.0.2",
58
+ "vue-tsc": "^3.2.4"
59
59
  },
60
60
  "overrides": {
61
61
  "vite": "npm:rolldown-vite@7.3.1"
@@ -1,15 +0,0 @@
1
- export type Branch = {
2
- collapse: boolean;
3
- children: BranchMap | BranchArray;
4
- };
5
- export type BranchMap = {
6
- [key: string]: Branch;
7
- };
8
- export type BranchArray = Branch[];
9
- export type Branchs = {
10
- [key: string]: {
11
- [key: string]: Branch;
12
- };
13
- };
14
- export declare const isBranchChildrenMap: (children: BranchMap | BranchArray) => children is BranchMap;
15
- export declare const isBranchChildrenArray: (children: BranchMap | BranchArray) => children is BranchArray;