@sparqjs/schema-ui-element-plus 0.2.6 → 0.2.7

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 +1 @@
1
- {"version":3,"file":"lazy-tree-select.d.ts","sourceRoot":"","sources":["../src/lazy-tree-select.ts"],"names":[],"mappings":"AACA,OAAO,EAAgD,KAAK,QAAQ,EAAE,MAAM,KAAK,CAAA;AACjF,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAA;AAE5D,eAAO,MAAM,cAAc;;cAKA,QAAQ,CAAC,qBAAqB,EAAE,CAAC;;;;;;;cAAjC,QAAQ,CAAC,qBAAqB,EAAE,CAAC;;;iGAY1D,CAAA"}
1
+ {"version":3,"file":"lazy-tree-select.d.ts","sourceRoot":"","sources":["../src/lazy-tree-select.ts"],"names":[],"mappings":"AACA,OAAO,EAA6D,KAAK,QAAQ,EAAE,MAAM,KAAK,CAAA;AAC9F,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAA;AAc5D,eAAO,MAAM,cAAc;;cAKA,QAAQ,CAAC,qBAAqB,EAAE,CAAC;;;;;;;cAAjC,QAAQ,CAAC,qBAAqB,EAAE,CAAC;;;iGA4B1D,CAAA"}
@@ -1,5 +1,11 @@
1
1
  import { ElTreeSelect } from 'element-plus';
2
- import { computed, defineComponent, h } from 'vue';
2
+ import { defineComponent, h, onMounted, ref, watch } from 'vue';
3
+ function rootOptions(options) {
4
+ return options.map((option) => ({ ...option, children: undefined }));
5
+ }
6
+ function optionKey(option) {
7
+ return `${typeof option.value}:${JSON.stringify(option.value)}`;
8
+ }
3
9
  export const LazyTreeSelect = defineComponent({
4
10
  name: 'SparqLazyTreeSelect',
5
11
  inheritAttrs: false,
@@ -10,12 +16,23 @@ export const LazyTreeSelect = defineComponent({
10
16
  },
11
17
  },
12
18
  setup(props, { attrs, slots }) {
13
- const roots = computed((previous) => {
14
- // 子节点由 load 回调交给树组件;表单缓存更新不能重建正在展开的树。
15
- const next = props.data.map((option) => ({ ...option, children: undefined }));
16
- return previous && JSON.stringify(previous) === JSON.stringify(next) ? previous : next;
17
- });
18
- return () => h(ElTreeSelect, { ...attrs, lazy: true, data: roots.value }, slots);
19
+ const treeSelect = ref();
20
+ const initialRoots = rootOptions(props.data);
21
+ const knownRoots = new Set(initialRoots.map(optionKey));
22
+ function appendRoots(options) {
23
+ if (!treeSelect.value)
24
+ return;
25
+ for (const option of rootOptions(options)) {
26
+ const key = optionKey(option);
27
+ if (knownRoots.has(key))
28
+ continue;
29
+ knownRoots.add(key);
30
+ treeSelect.value.append(option);
31
+ }
32
+ }
33
+ onMounted(() => appendRoots(props.data));
34
+ watch(() => props.data, (options) => appendRoots(options), { deep: true });
35
+ return () => h(ElTreeSelect, { ...attrs, ref: treeSelect, lazy: true, data: initialRoots }, slots);
19
36
  },
20
37
  });
21
38
  //# sourceMappingURL=lazy-tree-select.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"lazy-tree-select.js","sourceRoot":"","sources":["../src/lazy-tree-select.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAC3C,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,CAAC,EAAiC,MAAM,KAAK,CAAA;AAGjF,MAAM,CAAC,MAAM,cAAc,GAAG,eAAe,CAAC;IAC1C,IAAI,EAAE,qBAAqB;IAC3B,YAAY,EAAE,KAAK;IACnB,KAAK,EAAE;QACH,IAAI,EAAE;YACF,IAAI,EAAE,KAA0C;YAChD,QAAQ,EAAE,IAAI;SACjB;KACJ;IACD,KAAK,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE;QACzB,MAAM,KAAK,GAAG,QAAQ,CAA0B,CAAC,QAAQ,EAAE,EAAE;YACzD,sCAAsC;YACtC,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,CAAC,CAAA;YAC7E,OAAO,QAAQ,IAAI,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAA;QAC1F,CAAC,CAAC,CAAA;QACF,OAAO,GAAG,EAAE,CAAC,CAAC,CAAC,YAAyB,EAAE,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,EAAE,KAAK,CAAC,CAAA;IACjG,CAAC;CACJ,CAAC,CAAA"}
1
+ {"version":3,"file":"lazy-tree-select.js","sourceRoot":"","sources":["../src/lazy-tree-select.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAC3C,OAAO,EAAE,eAAe,EAAE,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,KAAK,EAAiC,MAAM,KAAK,CAAA;AAO9F,SAAS,WAAW,CAAC,OAAgC;IACjD,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,CAAC,CAAA;AACxE,CAAC;AAED,SAAS,SAAS,CAAC,MAA6B;IAC5C,OAAO,GAAG,OAAO,MAAM,CAAC,KAAK,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAA;AACnE,CAAC;AAED,MAAM,CAAC,MAAM,cAAc,GAAG,eAAe,CAAC;IAC1C,IAAI,EAAE,qBAAqB;IAC3B,YAAY,EAAE,KAAK;IACnB,KAAK,EAAE;QACH,IAAI,EAAE;YACF,IAAI,EAAE,KAA0C;YAChD,QAAQ,EAAE,IAAI;SACjB;KACJ;IACD,KAAK,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE;QACzB,MAAM,UAAU,GAAG,GAAG,EAA0B,CAAA;QAChD,MAAM,YAAY,GAAG,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;QAC5C,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAA;QAEvD,SAAS,WAAW,CAAC,OAAgC;YACjD,IAAI,CAAC,UAAU,CAAC,KAAK;gBAAE,OAAM;YAC7B,KAAK,MAAM,MAAM,IAAI,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC;gBACxC,MAAM,GAAG,GAAG,SAAS,CAAC,MAAM,CAAC,CAAA;gBAC7B,IAAI,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC;oBAAE,SAAQ;gBACjC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;gBACnB,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;YACnC,CAAC;QACL,CAAC;QAED,SAAS,CAAC,GAAG,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAA;QACxC,KAAK,CACD,GAAG,EAAE,CAAC,KAAK,CAAC,IAAI,EAChB,CAAC,OAAO,EAAE,EAAE,CAAC,WAAW,CAAC,OAAO,CAAC,EACjC,EAAE,IAAI,EAAE,IAAI,EAAE,CACjB,CAAA;QAED,OAAO,GAAG,EAAE,CAAC,CAAC,CAAC,YAAyB,EAAE,EAAE,GAAG,KAAK,EAAE,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,KAAK,CAAC,CAAA;IACnH,CAAC;CACJ,CAAC,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sparqjs/schema-ui-element-plus",
3
- "version": "0.2.6",
3
+ "version": "0.2.7",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },