tsv2-library 1.0.61-alpha.29 → 1.0.61-alpha.30

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.
@@ -150,6 +150,10 @@ export interface ButtonSelectTreeProps {
150
150
  * @default false
151
151
  */
152
152
  fetchTreeOnButtonRender?: boolean;
153
+ /**
154
+ * Disable level 2 (All > Level 1 > Level 2)
155
+ */
156
+ disableSubChildren?: boolean;
153
157
  }
154
158
 
155
159
  export type ButtonSelectTreeEmits = {
@@ -62,6 +62,10 @@ export interface SelectTreeDialogProps {
62
62
  * Render hidden dialog to trigger fetch tree
63
63
  */
64
64
  hidden?: boolean;
65
+ /**
66
+ * Disable level 2 (All > Level 1 > Level 2)
67
+ */
68
+ disableSubChildren?: boolean;
65
69
  }
66
70
 
67
71
  type TreeSelectPayload = {
@@ -39528,6 +39528,9 @@ const _sfc_main$Y = /* @__PURE__ */ defineComponent({
39528
39528
  emit("update:selectedKeys", keys2);
39529
39529
  }
39530
39530
  });
39531
+ const flattenNodes = computed(() => {
39532
+ return flattenTreeNodeChildren(treeNodes.value);
39533
+ });
39531
39534
  const initialChecked = shallowRef({});
39532
39535
  const setInitialChecked = (keys2) => {
39533
39536
  if (props.selectionMode === "checkbox") {
@@ -39861,6 +39864,21 @@ const _sfc_main$Y = /* @__PURE__ */ defineComponent({
39861
39864
  const expandNodeAll = () => {
39862
39865
  expandedKeys2.value = { "0": true };
39863
39866
  };
39867
+ const handleSelectionChange = (selectedNodeKeys) => {
39868
+ if (props.disableSubChildren && props.selectionMode === "checkbox") {
39869
+ enforceTopLevelSelection(selectedNodeKeys);
39870
+ }
39871
+ };
39872
+ const enforceTopLevelSelection = (selectedNodeKeys) => {
39873
+ var _a, _b;
39874
+ const topLevelNodeKeys = (_b = (_a = flattenNodes.value) == null ? void 0 : _a.filter((node2) => node2.level <= 1)) == null ? void 0 : _b.map((node2) => node2.key);
39875
+ const topLevelSelections = Object.fromEntries(
39876
+ Object.entries(selectedNodeKeys).filter(
39877
+ ([key]) => topLevelNodeKeys.includes(key)
39878
+ )
39879
+ );
39880
+ selectedKeysModel.value = { ...topLevelSelections };
39881
+ };
39864
39882
  watch(
39865
39883
  () => props.filter,
39866
39884
  (query) => {
@@ -39888,7 +39906,10 @@ const _sfc_main$Y = /* @__PURE__ */ defineComponent({
39888
39906
  "expanded-keys": expandedKeys2.value,
39889
39907
  "onUpdate:expandedKeys": _cache[0] || (_cache[0] = ($event) => expandedKeys2.value = $event),
39890
39908
  "selection-keys": selectedKeysModel.value,
39891
- "onUpdate:selectionKeys": _cache[1] || (_cache[1] = ($event) => selectedKeysModel.value = $event),
39909
+ "onUpdate:selectionKeys": [
39910
+ _cache[1] || (_cache[1] = ($event) => selectedKeysModel.value = $event),
39911
+ handleSelectionChange
39912
+ ],
39892
39913
  class: { readonly: props.readonly },
39893
39914
  loading: isLoading.value,
39894
39915
  "selection-mode": props.selectionMode,
@@ -40018,7 +40039,8 @@ const _sfc_main$X = /* @__PURE__ */ defineComponent({
40018
40039
  showDisposableGroups: { type: Boolean },
40019
40040
  flattenDisposableNode: { type: Boolean },
40020
40041
  excludedKeys: {},
40021
- hidden: { type: Boolean }
40042
+ hidden: { type: Boolean },
40043
+ disableSubChildren: { type: Boolean }
40022
40044
  },
40023
40045
  emits: ["update:visible", "select", "hide"],
40024
40046
  setup(__props, { emit: __emit }) {
@@ -40167,6 +40189,7 @@ const _sfc_main$X = /* @__PURE__ */ defineComponent({
40167
40189
  "auto-select-all": _ctx.autoSelectAll,
40168
40190
  "disable-keys": _ctx.disableKeys,
40169
40191
  "disable-node-all": _ctx.disableNodeAll,
40192
+ "disable-sub-children": _ctx.disableSubChildren,
40170
40193
  "exact-disable-key": _ctx.exactDisableKey,
40171
40194
  "excluded-keys": _ctx.excludedKeys,
40172
40195
  filter: treeFilter.value,
@@ -40177,7 +40200,7 @@ const _sfc_main$X = /* @__PURE__ */ defineComponent({
40177
40200
  "selection-mode": _ctx.selectionMode,
40178
40201
  type: props.type,
40179
40202
  onNodeSelect: _cache[3] || (_cache[3] = ($event) => temporarySelectedNode.value = $event)
40180
- }, null, 8, ["selected-keys", "selected-tree-nodes", "auto-select-all", "disable-keys", "disable-node-all", "exact-disable-key", "excluded-keys", "filter", "flatten-disposable-node", "group-params", "readonly", "select-disposable-only", "selection-mode", "type"])
40203
+ }, null, 8, ["selected-keys", "selected-tree-nodes", "auto-select-all", "disable-keys", "disable-node-all", "disable-sub-children", "exact-disable-key", "excluded-keys", "filter", "flatten-disposable-node", "group-params", "readonly", "select-disposable-only", "selection-mode", "type"])
40181
40204
  ]),
40182
40205
  _: 2
40183
40206
  }, [
@@ -40254,7 +40277,8 @@ const _sfc_main$W = /* @__PURE__ */ defineComponent({
40254
40277
  excludedKeys: {},
40255
40278
  singleEditable: { type: Boolean, default: true },
40256
40279
  singleResetable: { type: Boolean },
40257
- fetchTreeOnButtonRender: { type: Boolean, default: false }
40280
+ fetchTreeOnButtonRender: { type: Boolean, default: false },
40281
+ disableSubChildren: { type: Boolean }
40258
40282
  },
40259
40283
  emits: ["update:keys", "update:selectedNode", "update:selectedNodes", "dialogShown", "dialogHidden", "reset"],
40260
40284
  setup(__props, { expose: __expose, emit: __emit }) {
@@ -40434,6 +40458,7 @@ const _sfc_main$W = /* @__PURE__ */ defineComponent({
40434
40458
  "auto-select-all": _ctx.autoSelectAll,
40435
40459
  "disable-keys": _ctx.disableKeys,
40436
40460
  "disable-node-all": _ctx.disableNodeAll,
40461
+ "disable-sub-children": _ctx.disableSubChildren,
40437
40462
  "exact-disable-key": _ctx.exactDisableKey,
40438
40463
  "excluded-keys": _ctx.excludedKeys,
40439
40464
  "flatten-disposable-node": _ctx.flattenDisposableNode,
@@ -40447,7 +40472,7 @@ const _sfc_main$W = /* @__PURE__ */ defineComponent({
40447
40472
  type: props.type,
40448
40473
  onHide: _cache[1] || (_cache[1] = ($event) => _ctx.$emit("dialogHidden")),
40449
40474
  onSelect: setTreeSelection
40450
- }, null, 8, ["visible", "allow-empty-selection", "auto-select-all", "disable-keys", "disable-node-all", "exact-disable-key", "excluded-keys", "flatten-disposable-node", "group-params", "header", "hidden", "keys", "readonly", "selection-mode", "show-disposable-groups", "type"]))
40475
+ }, null, 8, ["visible", "allow-empty-selection", "auto-select-all", "disable-keys", "disable-node-all", "disable-sub-children", "exact-disable-key", "excluded-keys", "flatten-disposable-node", "group-params", "header", "hidden", "keys", "readonly", "selection-mode", "show-disposable-groups", "type"]))
40451
40476
  ], 64);
40452
40477
  };
40453
40478
  }