playbook_ui 16.3.0.pre.alpha.play284214735 → 16.3.0.pre.alpha.play284214748

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: a6c968cf90d1de383e97877c72e6031bb5ecd84104d27959adcc57036fb3415b
4
- data.tar.gz: f18f7076471dc7eb3b6b220c267bb39071ac36cf5ccc17bef6e94e3b96cc11c5
3
+ metadata.gz: 791fad49e5fd8c5c144cbbd18e58035c12bf1d46557e21eeacd9f26e1322c4ba
4
+ data.tar.gz: b3a105c74f8dd3366d4b286bd2fb1f23212c325b738b927649ddfc492d3415e0
5
5
  SHA512:
6
- metadata.gz: a4514506ebbfa43307f3cde9b73f213252d9ecdd9703a90877a715175e30f13235f97ad99f208e876a405ffa4048d1a1557e4cf0f714dacd0ea00379cd55fba1
7
- data.tar.gz: 9c83ff2b3d78ccea736dcc216c733f9398f42bfca39e34e8964e6802a53cba10314f188837c2bc6bada4be3b14357220bcd2f7e6f07c2dbc8a39c42823f5b304
6
+ metadata.gz: f1504b82ec481292f7636fb0e750125926f6c2bdb3041ea6dc8ac410f45b942de27222635e64ba6f62bda605de8ae5cc590e11c41935b64948ebf342ef0ee410
7
+ data.tar.gz: 9e01a49770efddb8de575ed2f3924029f80e84a3b796ec5619b6353c82bdd60cd33b3183a0c7763005fca8e9bc6333625e3c95d4551ba39dd4b0419ced36cdc2
@@ -179,6 +179,7 @@ const MultiLevelSelect = forwardRef<HTMLInputElement, MultiLevelSelectProps>(
179
179
  parent_id: string | null = null,
180
180
  depth = 0,
181
181
  parentDisabled = false,
182
+ ancestorChecked = false
182
183
  ) => {
183
184
  if (!Array.isArray(treeData)) {
184
185
  return;
@@ -188,30 +189,36 @@ const MultiLevelSelect = forwardRef<HTMLInputElement, MultiLevelSelectProps>(
188
189
  const isDisabled =
189
190
  item.disabled || (parentDisabled && !returnAllSelected);
190
191
 
192
+ const explicitlySelected = Boolean(
193
+ selectedIds && selectedIds?.length && selectedIds.includes(item.id)
194
+ );
195
+
196
+ const checked =
197
+ !isDisabled &&
198
+ (explicitlySelected || (ancestorChecked && !returnAllSelected && variant !== "single"))
199
+
191
200
  const newItem = {
192
201
  ...item,
193
- checked: Boolean(
194
- selectedIds && selectedIds.length && selectedIds.includes(item.id),
195
- ),
202
+ checked: checked,
196
203
  parent_id,
197
204
  depth,
198
205
  disabled: isDisabled,
199
206
  };
200
207
  if (newItem.children && newItem.children.length > 0) {
201
- const shouldCascade =
202
- newItem.checked && !returnAllSelected && variant !== "single";
203
- const children =
204
- shouldCascade
205
- ? modifyRecursive(cloneDeep(newItem.children), true)
206
- : item.children;
207
- newItem.children = addCheckedAndParentProperty(
208
- children,
209
- selectedIds,
210
- newItem.id,
211
- depth + 1,
212
- isDisabled,
213
- );
214
- }
208
+ // if this node is checked (by explicit selection or ancestor cascade),
209
+ // and we're in default, cascade to descendants
210
+ const cascadeToChildren =
211
+ checked && !returnAllSelected && variant !== "single"
212
+
213
+ newItem.children = addCheckedAndParentProperty(
214
+ newItem.children,
215
+ selectedIds,
216
+ newItem.id,
217
+ depth + 1,
218
+ isDisabled,
219
+ cascadeToChildren
220
+ )
221
+ }
215
222
  return newItem;
216
223
  });
217
224
  };