@dataloop-ai/components 0.20.162 → 0.20.164

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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dataloop-ai/components",
3
- "version": "0.20.162",
3
+ "version": "0.20.164",
4
4
  "exports": {
5
5
  ".": "./index.ts",
6
6
  "./models": "./models.ts",
@@ -203,7 +203,11 @@ export default defineComponent({
203
203
  /**
204
204
  * Overwrite default text color on hover
205
205
  */
206
- hoverTextColor: { type: String, default: null }
206
+ hoverTextColor: { type: String, default: null },
207
+ /**
208
+ * Override icon color when button is disabled
209
+ */
210
+ disabledIconColor: { type: String, default: null }
207
211
  },
208
212
  emits: ['click', 'mousedown', 'dblclick'],
209
213
  setup(props) {
@@ -243,6 +247,9 @@ export default defineComponent({
243
247
  },
244
248
  getIconColor(): string {
245
249
  if (this.disabled) {
250
+ if (this.disabledIconColor) {
251
+ return this.disabledIconColor
252
+ }
246
253
  return setTextColor({
247
254
  disabled: this.disabled,
248
255
  outlined: this.outlined,
@@ -569,6 +576,7 @@ export default defineComponent({
569
576
 
570
577
  .dl-button-icon {
571
578
  transition: var(--dl-button-text-transition-duration);
579
+ transition-property: color;
572
580
  }
573
581
 
574
582
  .dl-button-container {
@@ -78,12 +78,70 @@ export function useTreeTableRowSelection(
78
78
  selectedItemsNested.value = []
79
79
  }
80
80
 
81
+ function getParentIds(childId: string): string[] {
82
+ const rows = computedRows.value as DlTableRow[]
83
+ const roots = Array.isArray(rows) ? rows : [rows]
84
+ const stack = roots.map((n) => [n, []])
85
+
86
+ while (stack.length) {
87
+ const [node, path]: [DlTableRow, string[]] = stack.pop() as [
88
+ DlTableRow,
89
+ string[]
90
+ ]
91
+ if (node.id === childId) return path as string[]
92
+ const children = (node as DlTableRow).children
93
+ if (Array.isArray(children) && children.length) {
94
+ for (let i = 0; i < children.length; i++) {
95
+ const c = children[i]
96
+ if (c) stack.push([c, path.concat(node.id)])
97
+ }
98
+ }
99
+ }
100
+ return []
101
+ }
102
+
103
+ function isDescendantOf(
104
+ rows: DlTableRow[],
105
+ parentId: string,
106
+ targets: string[]
107
+ ): boolean {
108
+ if (!Array.isArray(rows)) rows = [rows]
109
+
110
+ const targetSet = new Set(Array.isArray(targets) ? targets : [targets])
111
+ targetSet.delete(parentId)
112
+ if (targetSet.size === 0) return false
113
+
114
+ const stack = rows.slice()
115
+ let parent = null
116
+ while (stack.length) {
117
+ const node = stack.pop()
118
+ if (node && node.id === parentId) {
119
+ parent = node
120
+ break
121
+ }
122
+ if (node && node.children && node.children.length)
123
+ stack.push(...node.children)
124
+ }
125
+ if (!parent) return false
126
+
127
+ const sub = (parent.children && parent.children.slice()) || []
128
+ while (sub.length) {
129
+ const n = sub.pop()
130
+ if (targetSet.has(n.id)) return true
131
+ if (n && n.children && n.children.length) sub.push(...n.children)
132
+ }
133
+ return false
134
+ }
135
+
81
136
  function updateSelection(
82
- keys: string[],
137
+ updatedKeys: string[],
83
138
  rows: (string | DlTableRow)[],
84
139
  added: boolean,
85
140
  evt?: (event: string, val: any) => void
86
141
  ) {
142
+ const keys = added
143
+ ? updatedKeys
144
+ : [...getParentIds(updatedKeys[0]), ...updatedKeys]
87
145
  emit('selection', { rows, added, keys, evt })
88
146
 
89
147
  /*
@@ -162,6 +220,15 @@ export function useTreeTableRowSelection(
162
220
  return false
163
221
  }
164
222
  )
223
+ if (
224
+ isDescendantOf(
225
+ computedRows.value,
226
+ rowKeyValue,
227
+ originalRows.map((item) => (item as DlTableRow).id)
228
+ )
229
+ ) {
230
+ return 'partial'
231
+ }
165
232
  }
166
233
  if (getSelectedRowByRowKey && getOriginalRowByRowKey) {
167
234
  if (