@ynput/ayon-frontend-shared 0.4.2 → 0.4.3

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.
Files changed (179) hide show
  1. package/dist/ProjectTreeTable.cjs.js +1 -1
  2. package/dist/ProjectTreeTable.es.js +247 -243
  3. package/dist/_virtual/index.cjs22.js +1 -1
  4. package/dist/_virtual/index.cjs23.js +1 -1
  5. package/dist/_virtual/index.cjs24.js +1 -1
  6. package/dist/_virtual/index.cjs4.js +1 -1
  7. package/dist/_virtual/index.cjs5.js +1 -1
  8. package/dist/_virtual/index.cjs6.js +1 -1
  9. package/dist/_virtual/index.cjs8.js +1 -1
  10. package/dist/_virtual/index.es22.js +3 -3
  11. package/dist/_virtual/index.es23.js +5 -5
  12. package/dist/_virtual/index.es24.js +5 -5
  13. package/dist/_virtual/index.es4.js +2 -5
  14. package/dist/_virtual/index.es4.js.map +1 -1
  15. package/dist/_virtual/index.es5.js +5 -2
  16. package/dist/_virtual/index.es5.js.map +1 -1
  17. package/dist/_virtual/index.es6.js +2 -2
  18. package/dist/_virtual/index.es8.js +2 -2
  19. package/dist/api.cjs.js +1 -1
  20. package/dist/api.es.js +446 -445
  21. package/dist/index.cjs.js +1 -1
  22. package/dist/index.es.js +20 -9
  23. package/dist/index.es.js.map +1 -1
  24. package/dist/node_modules/match-sorter/dist/match-sorter.esm.cjs.js +1 -1
  25. package/dist/node_modules/match-sorter/dist/match-sorter.esm.es.js +1 -1
  26. package/dist/node_modules/parse-numeric-range/index.cjs.js +1 -1
  27. package/dist/node_modules/parse-numeric-range/index.es.js +1 -1
  28. package/dist/node_modules/rehype/node_modules/unified/lib/index.cjs.js +1 -1
  29. package/dist/node_modules/rehype/node_modules/unified/lib/index.es.js +2 -2
  30. package/dist/node_modules/rehype/node_modules/vfile/lib/index.cjs.js +1 -1
  31. package/dist/node_modules/rehype/node_modules/vfile/lib/index.es.js +1 -1
  32. package/dist/node_modules/rehype-parse/lib/index.cjs.js +1 -1
  33. package/dist/node_modules/rehype-parse/lib/index.es.js +1 -1
  34. package/dist/node_modules/remove-accents/index.cjs.js +1 -1
  35. package/dist/node_modules/remove-accents/index.es.js +1 -1
  36. package/dist/shared/node_modules/@module-federation/error-codes/dist/index.cjs.js +1 -1
  37. package/dist/shared/node_modules/@module-federation/error-codes/dist/index.es.js +1 -1
  38. package/dist/shared/node_modules/@module-federation/runtime/dist/index.cjs.js +1 -1
  39. package/dist/shared/node_modules/@module-federation/runtime/dist/index.es.js +1 -1
  40. package/dist/shared/node_modules/@module-federation/runtime-core/dist/index.cjs.js +1 -1
  41. package/dist/shared/node_modules/@module-federation/runtime-core/dist/index.es.js +1 -1
  42. package/dist/shared/node_modules/react-is/index.cjs.js +1 -1
  43. package/dist/shared/node_modules/react-is/index.es.js +1 -1
  44. package/dist/shared/src/api/generated/graphql.cjs.js +85 -28
  45. package/dist/shared/src/api/generated/graphql.cjs.js.map +1 -1
  46. package/dist/shared/src/api/generated/graphql.es.js +129 -68
  47. package/dist/shared/src/api/generated/graphql.es.js.map +1 -1
  48. package/dist/shared/src/api/queries/columnStats/metricTargets.cjs.js +1 -1
  49. package/dist/shared/src/api/queries/columnStats/metricTargets.cjs.js.map +1 -1
  50. package/dist/shared/src/api/queries/columnStats/metricTargets.es.js +36 -36
  51. package/dist/shared/src/api/queries/columnStats/metricTargets.es.js.map +1 -1
  52. package/dist/shared/src/components/Chips/Chips.cjs.js +12 -6
  53. package/dist/shared/src/components/Chips/Chips.cjs.js.map +1 -1
  54. package/dist/shared/src/components/Chips/Chips.es.js +69 -62
  55. package/dist/shared/src/components/Chips/Chips.es.js.map +1 -1
  56. package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.cjs.js +1 -1
  57. package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.cjs.js.map +1 -1
  58. package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.es.js +32 -12
  59. package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.es.js.map +1 -1
  60. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.cjs.js +2 -2
  61. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.cjs.js.map +1 -1
  62. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.es.js +33 -33
  63. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.es.js.map +1 -1
  64. package/dist/shared/src/components/RemotePage/RemotePageWrapper.cjs.js.map +1 -1
  65. package/dist/shared/src/components/RemotePage/RemotePageWrapper.es.js.map +1 -1
  66. package/dist/shared/src/components/SubtasksManager/SubtasksManagerWrapper.cjs.js +1 -1
  67. package/dist/shared/src/components/SubtasksManager/SubtasksManagerWrapper.cjs.js.map +1 -1
  68. package/dist/shared/src/components/SubtasksManager/SubtasksManagerWrapper.es.js +39 -8
  69. package/dist/shared/src/components/SubtasksManager/SubtasksManagerWrapper.es.js.map +1 -1
  70. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.cjs.js +1 -1
  71. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.cjs.js.map +1 -1
  72. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.es.js +32 -31
  73. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.es.js.map +1 -1
  74. package/dist/shared/src/containers/DetailsPanel/containers/FeedWrapper.cjs.js.map +1 -1
  75. package/dist/shared/src/containers/DetailsPanel/containers/FeedWrapper.es.js.map +1 -1
  76. package/dist/shared/src/containers/Feed/helpers/buildBackendFilter.cjs.js +1 -1
  77. package/dist/shared/src/containers/Feed/helpers/buildBackendFilter.cjs.js.map +1 -1
  78. package/dist/shared/src/containers/Feed/helpers/buildBackendFilter.es.js +24 -18
  79. package/dist/shared/src/containers/Feed/helpers/buildBackendFilter.es.js.map +1 -1
  80. package/dist/shared/src/containers/Feed/helpers/feedFilterAdapter.cjs.js +1 -1
  81. package/dist/shared/src/containers/Feed/helpers/feedFilterAdapter.cjs.js.map +1 -1
  82. package/dist/shared/src/containers/Feed/helpers/feedFilterAdapter.es.js +26 -25
  83. package/dist/shared/src/containers/Feed/helpers/feedFilterAdapter.es.js.map +1 -1
  84. package/dist/shared/src/containers/ListTable/ListTableCell.cjs.js +1 -1
  85. package/dist/shared/src/containers/ListTable/ListTableCell.cjs.js.map +1 -1
  86. package/dist/shared/src/containers/ListTable/ListTableCell.es.js +14 -2
  87. package/dist/shared/src/containers/ListTable/ListTableCell.es.js.map +1 -1
  88. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.cjs.js +1 -1
  89. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.cjs.js.map +1 -1
  90. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.es.js +125 -126
  91. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.es.js.map +1 -1
  92. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.styled.cjs.js +6 -0
  93. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.styled.cjs.js.map +1 -1
  94. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.styled.es.js +14 -8
  95. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.styled.es.js.map +1 -1
  96. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.cjs.js +1 -1
  97. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.cjs.js.map +1 -1
  98. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.es.js +200 -178
  99. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.es.js.map +1 -1
  100. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js +1 -1
  101. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js.map +1 -1
  102. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.es.js +14 -3
  103. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.es.js.map +1 -1
  104. package/dist/shared/src/containers/ProjectTreeTable/constants.cjs.js +1 -1
  105. package/dist/shared/src/containers/ProjectTreeTable/constants.cjs.js.map +1 -1
  106. package/dist/shared/src/containers/ProjectTreeTable/constants.es.js +6 -3
  107. package/dist/shared/src/containers/ProjectTreeTable/constants.es.js.map +1 -1
  108. package/dist/shared/src/containers/ProjectTreeTable/hooks/useSortBySettings.cjs.js +1 -1
  109. package/dist/shared/src/containers/ProjectTreeTable/hooks/useSortBySettings.cjs.js.map +1 -1
  110. package/dist/shared/src/containers/ProjectTreeTable/hooks/useSortBySettings.es.js +19 -19
  111. package/dist/shared/src/containers/ProjectTreeTable/hooks/useSortBySettings.es.js.map +1 -1
  112. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.cjs.js +5 -3
  113. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.cjs.js.map +1 -1
  114. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.es.js +100 -97
  115. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.es.js.map +1 -1
  116. package/dist/shared/src/containers/ProjectTreeTable/widgets/DateWidget.cjs.js +9 -1
  117. package/dist/shared/src/containers/ProjectTreeTable/widgets/DateWidget.cjs.js.map +1 -1
  118. package/dist/shared/src/containers/ProjectTreeTable/widgets/DateWidget.es.js +47 -31
  119. package/dist/shared/src/containers/ProjectTreeTable/widgets/DateWidget.es.js.map +1 -1
  120. package/dist/shared/src/containers/ProjectTreeTable/widgets/EntityNameWidget.cjs.js +28 -9
  121. package/dist/shared/src/containers/ProjectTreeTable/widgets/EntityNameWidget.cjs.js.map +1 -1
  122. package/dist/shared/src/containers/ProjectTreeTable/widgets/EntityNameWidget.es.js +58 -39
  123. package/dist/shared/src/containers/ProjectTreeTable/widgets/EntityNameWidget.es.js.map +1 -1
  124. package/dist/shared/src/containers/ProjectTreeTable/widgets/EnumCellValue.cjs.js +53 -25
  125. package/dist/shared/src/containers/ProjectTreeTable/widgets/EnumCellValue.cjs.js.map +1 -1
  126. package/dist/shared/src/containers/ProjectTreeTable/widgets/EnumCellValue.es.js +150 -103
  127. package/dist/shared/src/containers/ProjectTreeTable/widgets/EnumCellValue.es.js.map +1 -1
  128. package/dist/shared/src/containers/ProjectTreeTable/widgets/EnumWidget.cjs.js +9 -2
  129. package/dist/shared/src/containers/ProjectTreeTable/widgets/EnumWidget.cjs.js.map +1 -1
  130. package/dist/shared/src/containers/ProjectTreeTable/widgets/EnumWidget.es.js +66 -57
  131. package/dist/shared/src/containers/ProjectTreeTable/widgets/EnumWidget.es.js.map +1 -1
  132. package/dist/shared/src/containers/ProjectTreeTable/widgets/SubtasksWidget.cjs.js +1 -1
  133. package/dist/shared/src/containers/ProjectTreeTable/widgets/SubtasksWidget.cjs.js.map +1 -1
  134. package/dist/shared/src/containers/ProjectTreeTable/widgets/SubtasksWidget.es.js +9 -8
  135. package/dist/shared/src/containers/ProjectTreeTable/widgets/SubtasksWidget.es.js.map +1 -1
  136. package/dist/shared/src/containers/ProjectTreeTable/widgets/TextWidget.cjs.js +20 -4
  137. package/dist/shared/src/containers/ProjectTreeTable/widgets/TextWidget.cjs.js.map +1 -1
  138. package/dist/shared/src/containers/ProjectTreeTable/widgets/TextWidget.es.js +86 -67
  139. package/dist/shared/src/containers/ProjectTreeTable/widgets/TextWidget.es.js.map +1 -1
  140. package/dist/shared/src/containers/ProjectTreeTable/widgets/wrapMode.cjs.js +6 -0
  141. package/dist/shared/src/containers/ProjectTreeTable/widgets/wrapMode.cjs.js.map +1 -0
  142. package/dist/shared/src/containers/ProjectTreeTable/widgets/wrapMode.es.js +11 -0
  143. package/dist/shared/src/containers/ProjectTreeTable/widgets/wrapMode.es.js.map +1 -0
  144. package/dist/shared/src/containers/Views/context/ViewsContext.cjs.js +1 -1
  145. package/dist/shared/src/containers/Views/context/ViewsContext.cjs.js.map +1 -1
  146. package/dist/shared/src/containers/Views/context/ViewsContext.es.js +67 -62
  147. package/dist/shared/src/containers/Views/context/ViewsContext.es.js.map +1 -1
  148. package/dist/shared/src/containers/Views/utils/viewUpdateHelper.cjs.js +1 -1
  149. package/dist/shared/src/containers/Views/utils/viewUpdateHelper.cjs.js.map +1 -1
  150. package/dist/shared/src/containers/Views/utils/viewUpdateHelper.es.js +47 -46
  151. package/dist/shared/src/containers/Views/utils/viewUpdateHelper.es.js.map +1 -1
  152. package/dist/shared/src/context/ProjectContext.cjs.js +1 -1
  153. package/dist/shared/src/context/ProjectContext.cjs.js.map +1 -1
  154. package/dist/shared/src/context/ProjectContext.es.js +1 -1
  155. package/dist/shared/src/context/ProjectContext.es.js.map +1 -1
  156. package/dist/shared/src/util/buildHierarchicalTableRows.cjs.js +1 -1
  157. package/dist/shared/src/util/buildHierarchicalTableRows.cjs.js.map +1 -1
  158. package/dist/shared/src/util/buildHierarchicalTableRows.es.js +36 -33
  159. package/dist/shared/src/util/buildHierarchicalTableRows.es.js.map +1 -1
  160. package/dist/types/api/generated/graphql.d.ts +71 -0
  161. package/dist/types/api/queries/activities/getActivities.d.ts +28 -0
  162. package/dist/types/api/queries/entities/getEntity.d.ts +14 -0
  163. package/dist/types/api/queries/entities/getEntityPanel.d.ts +14 -0
  164. package/dist/types/api/queries/entities/updateEntity.d.ts +14 -0
  165. package/dist/types/api/queries/entityLists/getLists.d.ts +14 -0
  166. package/dist/types/api/queries/overview/getOverview.d.ts +14 -0
  167. package/dist/types/api/queries/project/getProject.d.ts +14 -0
  168. package/dist/types/api/queries/userDashboard/getUserDashboard.d.ts +14 -0
  169. package/dist/types/api/queries/users/getUsers.d.ts +14 -0
  170. package/dist/types/api/queries/versions/getVersionsProducts.d.ts +28 -0
  171. package/dist/types/components/SubtasksManager/SubtasksManagerWrapper.d.ts +4 -1
  172. package/dist/types/containers/Feed/helpers/buildBackendFilter.d.ts +1 -0
  173. package/dist/types/containers/ProjectTreeTable/buildTreeTableColumns.d.ts +1 -0
  174. package/dist/types/containers/ProjectTreeTable/constants.d.ts +3 -0
  175. package/dist/types/containers/ProjectTreeTable/widgets/SubtasksWidget.d.ts +1 -0
  176. package/dist/types/containers/ProjectTreeTable/widgets/wrapMode.d.ts +2 -0
  177. package/dist/types/containers/Views/context/ViewsContext.d.ts +1 -0
  178. package/dist/types/util/buildHierarchicalTableRows.d.ts +2 -0
  179. package/package.json +1 -1
@@ -1,8 +1,21 @@
1
1
  import { j as r } from "../../../../../_virtual/jsx-runtime.es.js";
2
- import { Icon as o, getTextColor as P } from "@ynput/ayon-react-components";
3
- import l from "clsx";
2
+ import { Icon as c, getTextColor as z } from "@ynput/ayon-react-components";
3
+ import t from "clsx";
4
4
  import s from "styled-components";
5
- const q = "edit-trigger", J = s.div`
5
+ import { wrapMode as J } from "./wrapMode.es.js";
6
+ const K = "edit-trigger", n = s.span`
7
+ text-align: left;
8
+ border-radius: var(--border-radius-m);
9
+ padding: 0px 2px;
10
+ white-space: nowrap;
11
+ overflow: hidden;
12
+ text-overflow: ellipsis;
13
+ max-width: 100%;
14
+
15
+ &.placeholder {
16
+ color: var(--md-sys-color-outline);
17
+ }
18
+ `, Q = s.div`
6
19
  display: flex;
7
20
  gap: 1px;
8
21
  align-items: center;
@@ -30,19 +43,46 @@ const q = "edit-trigger", J = s.div`
30
43
  }
31
44
  }
32
45
 
33
- /* when value container is higher than 55px, wrap the contents */
34
- &:not(.item) {
35
- container-type: size;
36
-
37
- @container (min-height: 55px) {
46
+ /* wrapped rows sit on a fixed row lattice, so the height clip can only land between rows */
47
+ ${J`
48
+ &.multi-select:not(.item) {
38
49
  .values {
50
+ --wrap-row-height: 24px;
51
+ --wrap-row-gap: var(--base-gap-small);
39
52
  flex-wrap: wrap;
40
53
  align-items: flex-start;
54
+ align-content: flex-start;
55
+ row-gap: var(--wrap-row-gap);
41
56
  max-height: 100%;
57
+ /* var() inside an unsupported round() computes to none, not to the fallback — gate it */
58
+ @supports (max-height: round(down, 100px, 24px)) {
59
+ max-height: calc(
60
+ round(
61
+ down,
62
+ 100cqh + var(--wrap-row-gap),
63
+ calc(var(--wrap-row-height) + var(--wrap-row-gap))
64
+ ) - var(--wrap-row-gap)
65
+ );
66
+ }
67
+ }
68
+
69
+ .values > * {
70
+ min-height: var(--wrap-row-height);
71
+ }
72
+
73
+ ${n} {
74
+ white-space: normal;
75
+ word-break: break-word;
76
+ line-height: var(--wrap-row-height);
77
+ }
78
+
79
+ .has-img ${n} {
80
+ white-space: nowrap;
81
+ text-overflow: ellipsis;
42
82
  }
43
83
  }
44
- }
45
- `, K = s.div`
84
+ `}
85
+ `, U = s.div`
46
86
  flex: 1;
47
87
  display: flex;
48
88
  gap: var(--base-gap-small);
@@ -52,34 +92,23 @@ const q = "edit-trigger", J = s.div`
52
92
  border-radius: var(--border-radius-m);
53
93
  padding: 0px 2px;
54
94
  flex-wrap: nowrap;
55
- `, Q = s.div`
95
+ `, X = s.div`
56
96
  display: flex;
57
97
  gap: 2px;
58
98
  align-items: center;
59
99
 
60
100
  max-width: 100%;
61
101
  min-width: 20px;
62
- `, U = s.span`
63
- text-align: left;
64
- border-radius: var(--border-radius-m);
65
- padding: 0px 2px;
66
- white-space: nowrap;
67
- overflow: hidden;
68
- text-overflow: ellipsis;
69
- max-width: 100%;
70
-
71
- &.placeholder {
72
- color: var(--md-sys-color-outline);
73
- }
74
- `, X = s.img`
102
+ `, Y = s.img`
75
103
  width: 20px;
76
104
  height: 20px;
77
105
  object-fit: cover;
106
+ flex-shrink: 0;
78
107
 
79
108
  &.avatar {
80
109
  border-radius: 50%;
81
110
  }
82
- `, Y = s.div`
111
+ `, Z = s.div`
83
112
  border-radius: var(--border-radius-m);
84
113
  display: flex;
85
114
  justify-content: center;
@@ -94,98 +123,116 @@ const q = "edit-trigger", J = s.div`
94
123
  &.open {
95
124
  background-color: transparent;
96
125
  }
97
- `, Z = s(o)`
126
+ `, M = s(c)`
98
127
  transition: rotate 0.2s;
99
128
  padding: 2px;
100
- `, se = ({
101
- selectedOptions: a,
102
- placeholder: c,
103
- hasMultipleValues: h,
104
- isMultiSelect: n,
105
- isOpen: i,
106
- isItem: t,
107
- isSelected: d,
108
- isReadOnly: g,
109
- iconOnlyColor: u = !1,
110
- className: v,
111
- pt: y,
129
+ `, la = ({
130
+ selectedOptions: e,
131
+ placeholder: i,
132
+ hasMultipleValues: v,
133
+ isMultiSelect: o,
134
+ isOpen: d,
135
+ isItem: l,
136
+ isSelected: p,
137
+ isReadOnly: u,
138
+ iconOnlyColor: w = !1,
139
+ className: y,
140
+ pt: f,
112
141
  ...b
113
142
  }) => {
114
143
  const {
115
- icon: f = {},
116
- img: w = {},
117
- value: N = {},
144
+ icon: N = {},
145
+ img: k = {},
146
+ value: j = {},
118
147
  expand: S = {},
119
- close: j = {}
120
- } = y || {}, { style: C, className: k, ...R } = f, { style: E, className: I, ...W } = w, { style: V, className: L, ...T } = N, { style: _, className: A, ...D } = S, { style: G, className: z, ...B } = j, m = a.every((e) => e.icon), F = !h || !m, p = !m && n && !t, x = !a.length && c;
121
- return x && (a = [
148
+ close: C = {}
149
+ } = f || {}, { style: R, className: E, ...I } = N, { style: W, className: V, ...L } = k, { style: T, className: _, ...$ } = j, { style: A, className: D, ...G } = S, { style: q, className: B, ...F } = C, m = e.every((a) => a.icon), H = !v || !m, h = !m && o && !l, g = !e.length && i;
150
+ return g && (e = [
122
151
  {
123
- label: c,
152
+ label: i,
124
153
  value: ""
125
154
  }
126
- ]), /* @__PURE__ */ r.jsxs(J, { className: l(v, { selected: d, item: t }), ...b, children: [
127
- /* @__PURE__ */ r.jsx(K, { className: "values", children: a.map((e, H) => /* @__PURE__ */ r.jsxs(Q, { children: [
128
- e.icon && $(e.icon) ? /* @__PURE__ */ r.jsx(
129
- X,
130
- {
131
- src: e.icon,
132
- className: l({ avatar: M(e.icon) }, I),
133
- style: E,
134
- "data-tooltip": e.label,
135
- ...W
136
- }
137
- ) : e.icon ? /* @__PURE__ */ r.jsx(
138
- o,
139
- {
140
- icon: e.icon,
141
- style: { color: e.color, ...C },
142
- className: k,
143
- ...R
144
- }
145
- ) : null,
146
- (F || !e.icon) && /* @__PURE__ */ r.jsx(
147
- U,
148
- {
149
- style: {
150
- color: p && e.color ? P(e.color) : u && e.icon ? void 0 : e.color,
151
- backgroundColor: p ? e.color || "var(--md-sys-color-surface-container)" : "transparent",
152
- ...V
155
+ ]), /* @__PURE__ */ r.jsxs(
156
+ Q,
157
+ {
158
+ className: t(y, {
159
+ selected: p,
160
+ item: l,
161
+ "multi-select": o
162
+ }),
163
+ ...b,
164
+ children: [
165
+ /* @__PURE__ */ r.jsx(U, { className: "values", children: e.map((a, P) => /* @__PURE__ */ r.jsxs(
166
+ X,
167
+ {
168
+ className: t({ "has-img": x(a.icon) }),
169
+ children: [
170
+ a.icon && x(a.icon) ? /* @__PURE__ */ r.jsx(
171
+ Y,
172
+ {
173
+ src: a.icon,
174
+ className: t({ avatar: O(a.icon) }, V),
175
+ style: W,
176
+ "data-tooltip": a.label,
177
+ ...L
178
+ }
179
+ ) : a.icon ? /* @__PURE__ */ r.jsx(
180
+ c,
181
+ {
182
+ icon: a.icon,
183
+ style: { color: a.color, ...R },
184
+ className: E,
185
+ ...I
186
+ }
187
+ ) : null,
188
+ (H || !a.icon) && /* @__PURE__ */ r.jsx(
189
+ n,
190
+ {
191
+ style: {
192
+ color: h && a.color ? z(a.color) : w && a.icon ? void 0 : a.color,
193
+ backgroundColor: h ? a.color || "var(--md-sys-color-surface-container)" : "transparent",
194
+ ...T
195
+ },
196
+ className: t({ placeholder: g }, _),
197
+ "aria-label": a.label,
198
+ ...$,
199
+ children: a.label
200
+ }
201
+ )
202
+ ]
153
203
  },
154
- className: l({ placeholder: x }, L),
155
- "aria-label": e.label,
156
- ...T,
157
- children: e.label
158
- }
159
- )
160
- ] }, e.value.toString() + H)) }),
161
- !t && !g && /* @__PURE__ */ r.jsx(
162
- Y,
163
- {
164
- className: l("expand", q, { open: i }, A),
165
- children: /* @__PURE__ */ r.jsx(
204
+ a.value.toString() + P
205
+ )) }),
206
+ !l && !u && /* @__PURE__ */ r.jsx(
166
207
  Z,
167
208
  {
168
- icon: "expand_more",
169
- style: { rotate: i ? "180deg" : "0", ..._ },
170
- "aria-label": "Expand options",
171
- ...D
209
+ className: t("expand", K, { open: d }, D),
210
+ children: /* @__PURE__ */ r.jsx(
211
+ M,
212
+ {
213
+ icon: "expand_more",
214
+ style: { rotate: d ? "180deg" : "0", ...A },
215
+ "aria-label": "Expand options",
216
+ ...G
217
+ }
218
+ )
219
+ }
220
+ ),
221
+ l && p && o && /* @__PURE__ */ r.jsx(
222
+ c,
223
+ {
224
+ icon: "close",
225
+ style: { marginLeft: "auto", marginRight: 4, ...q },
226
+ "aria-label": "Deselect item",
227
+ className: t("close", B),
228
+ ...F
172
229
  }
173
230
  )
174
- }
175
- ),
176
- t && d && n && /* @__PURE__ */ r.jsx(
177
- o,
178
- {
179
- icon: "close",
180
- style: { marginLeft: "auto", marginRight: 4, ...G },
181
- "aria-label": "Deselect item",
182
- className: l("close", z),
183
- ...B
184
- }
185
- )
186
- ] });
187
- }, $ = (a = "") => a.startsWith("/") || a.startsWith("./") || a.startsWith("../") || a.startsWith("http://") || a.startsWith("https://"), M = (a) => a.includes("avatar");
231
+ ]
232
+ }
233
+ );
234
+ }, x = (e = "") => e.startsWith("/") || e.startsWith("./") || e.startsWith("../") || e.startsWith("http://") || e.startsWith("https://"), O = (e) => e.includes("avatar");
188
235
  export {
189
- se as EnumCellValue
236
+ la as EnumCellValue
190
237
  };
191
238
  //# sourceMappingURL=EnumCellValue.es.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"EnumCellValue.es.js","sources":["../../../../../../src/containers/ProjectTreeTable/widgets/EnumCellValue.tsx"],"sourcesContent":["import type { EnumItem } from '@shared/api'\nimport { getTextColor, Icon, IconProps } from '@ynput/ayon-react-components'\nimport clsx from 'clsx'\nimport styled from 'styled-components'\n// Inline the edit trigger class to avoid runtime import and circular dependency with CellWidget\nconst EDIT_TRIGGER_CLASS = 'edit-trigger'\n\nconst StyledWidget = styled.div`\n display: flex;\n gap: 1px;\n align-items: center;\n width: 100%;\n height: 100%;\n overflow: visible;\n border-radius: var(--border-radius-m);\n padding: 0 1px;\n\n &.item {\n padding: 4px 2px;\n border-radius: 0;\n overflow: hidden;\n\n &:hover {\n background-color: var(--md-sys-color-surface-container-hover);\n }\n }\n\n &.selected {\n background-color: var(--md-sys-color-primary-container);\n\n &:hover {\n background-color: var(--md-sys-color-primary-container-hover);\n }\n }\n\n /* when value container is higher than 55px, wrap the contents */\n &:not(.item) {\n container-type: size;\n\n @container (min-height: 55px) {\n .values {\n flex-wrap: wrap;\n align-items: flex-start;\n max-height: 100%;\n }\n }\n }\n`\n\nconst StyledValuesContainer = styled.div`\n flex: 1;\n display: flex;\n gap: var(--base-gap-small);\n align-items: center;\n align-content: flex-start;\n overflow: hidden;\n border-radius: var(--border-radius-m);\n padding: 0px 2px;\n flex-wrap: nowrap;\n`\n\nconst StyledValueWrapper = styled.div`\n display: flex;\n gap: 2px;\n align-items: center;\n\n max-width: 100%;\n min-width: 20px;\n`\n\nconst StyledValue = styled.span`\n text-align: left;\n border-radius: var(--border-radius-m);\n padding: 0px 2px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n max-width: 100%;\n\n &.placeholder {\n color: var(--md-sys-color-outline);\n }\n`\n\nconst StyledImg = styled.img`\n width: 20px;\n height: 20px;\n object-fit: cover;\n\n &.avatar {\n border-radius: 50%;\n }\n`\n\nconst StyledExpandButton = styled.div`\n border-radius: var(--border-radius-m);\n display: flex;\n justify-content: center;\n align-items: center;\n cursor: pointer;\n flex-shrink: 0;\n\n &:hover {\n background-color: var(--md-sys-color-surface-container-highest-hover);\n }\n\n &.open {\n background-color: transparent;\n }\n`\n\nconst StyledExpandIcon = styled(Icon)`\n transition: rotate 0.2s;\n padding: 2px;\n`\n\nexport interface EnumTemplateProps extends React.HTMLAttributes<HTMLSpanElement> {\n selectedOptions: EnumItem[]\n placeholder?: string\n hasMultipleValues?: boolean\n isMultiSelect?: boolean\n isOpen?: boolean\n isItem?: boolean\n isSelected?: boolean\n isReadOnly?: boolean\n iconOnlyColor?: boolean // When true, only the icon gets colored, not the text label\n pt?: {\n icon?: Partial<IconProps>\n img?: Partial<React.ImgHTMLAttributes<HTMLImageElement>>\n value?: Partial<React.ImgHTMLAttributes<HTMLSpanElement>>\n expand?: Partial<IconProps>\n close?: Partial<IconProps>\n }\n}\n\nexport const EnumCellValue = ({\n selectedOptions,\n placeholder,\n hasMultipleValues,\n isMultiSelect,\n isOpen,\n isItem,\n isSelected,\n isReadOnly,\n iconOnlyColor = false,\n className,\n pt,\n ...props\n}: EnumTemplateProps) => {\n // Destructure pt subprops and their relevant props at the top\n const {\n icon: ptIcon = {},\n img: ptImg = {},\n value: ptValue = {},\n expand: ptExpand = {},\n close: ptClose = {},\n } = pt || {}\n\n const { style: iconStyle, className: iconClassName, ...iconRest } = ptIcon\n const { style: imgStyle, className: imgClassName, ...imgRest } = ptImg\n const { style: valueStyle, className: valueClassName, ...valueRest } = ptValue\n const { style: expandStyle, className: expandClassName, ...expandRest } = ptExpand\n const { style: closeStyle, className: closeClassName, ...closeRest } = ptClose\n\n // Check if all options have icons\n const allOptionsHaveIcon = selectedOptions.every((option) => option.icon)\n\n // Determine if we should show labels based on the requirements\n const showLabels = !hasMultipleValues || !allOptionsHaveIcon\n // Show the colors be backgrounds instead of the text\n const backgroundColor = !allOptionsHaveIcon && isMultiSelect && !isItem\n\n const isPlaceholder = !selectedOptions.length && placeholder\n if (isPlaceholder) {\n selectedOptions = [\n {\n label: placeholder,\n value: '',\n },\n ]\n }\n\n return (\n <StyledWidget className={clsx(className, { selected: isSelected, item: isItem })} {...props}>\n <StyledValuesContainer className=\"values\">\n {selectedOptions.map((option, i) => (\n <StyledValueWrapper key={option.value.toString() + i}>\n {option.icon && checkForImgSrc(option.icon) ? (\n <StyledImg\n src={option.icon}\n className={clsx({ avatar: checkAvatarImg(option.icon) }, imgClassName)}\n style={imgStyle}\n data-tooltip={option.label}\n {...imgRest}\n />\n ) : option.icon ? (\n <Icon\n icon={option.icon}\n style={{ color: option.color, ...iconStyle }}\n className={iconClassName}\n {...iconRest}\n />\n ) : null}\n\n {(showLabels || !option.icon) && (\n <StyledValue\n style={{\n color:\n backgroundColor && option.color\n ? getTextColor(option.color)\n : iconOnlyColor && option.icon\n ? undefined\n : option.color,\n backgroundColor: backgroundColor\n ? option.color || 'var(--md-sys-color-surface-container)'\n : 'transparent',\n ...valueStyle,\n }}\n className={clsx({ placeholder: isPlaceholder }, valueClassName)}\n aria-label={option.label}\n {...valueRest}\n >\n {option.label}\n </StyledValue>\n )}\n </StyledValueWrapper>\n ))}\n </StyledValuesContainer>\n {!isItem && !isReadOnly && (\n <StyledExpandButton\n className={clsx('expand', EDIT_TRIGGER_CLASS, { open: isOpen }, expandClassName)}\n >\n <StyledExpandIcon\n icon=\"expand_more\"\n style={{ rotate: isOpen ? '180deg' : '0', ...expandStyle }}\n aria-label=\"Expand options\"\n {...expandRest}\n />\n </StyledExpandButton>\n )}\n {isItem && isSelected && isMultiSelect && (\n <Icon\n icon=\"close\"\n style={{ marginLeft: 'auto', marginRight: 4, ...closeStyle }}\n aria-label=\"Deselect item\"\n className={clsx('close', closeClassName)}\n {...closeRest}\n />\n )}\n </StyledWidget>\n )\n}\n\n// Helper functions to check if the icon is a valid image source\nconst checkForImgSrc = (icon: string | undefined = ''): boolean => {\n return (\n icon.startsWith('/') ||\n icon.startsWith('./') ||\n icon.startsWith('../') ||\n icon.startsWith('http://') ||\n icon.startsWith('https://')\n )\n}\n\nconst checkAvatarImg = (src: string): boolean => src.includes('avatar')\n"],"names":["EDIT_TRIGGER_CLASS","StyledWidget","styled","StyledValuesContainer","StyledValueWrapper","StyledValue","StyledImg","StyledExpandButton","StyledExpandIcon","Icon","EnumCellValue","selectedOptions","placeholder","hasMultipleValues","isMultiSelect","isOpen","isItem","isSelected","isReadOnly","iconOnlyColor","className","pt","props","ptIcon","ptImg","ptValue","ptExpand","ptClose","iconStyle","iconClassName","iconRest","imgStyle","imgClassName","imgRest","valueStyle","valueClassName","valueRest","expandStyle","expandClassName","expandRest","closeStyle","closeClassName","closeRest","allOptionsHaveIcon","option","showLabels","backgroundColor","isPlaceholder","jsxs","clsx","jsx","i","checkForImgSrc","checkAvatarImg","getTextColor","icon","src"],"mappings":"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"}
1
+ {"version":3,"file":"EnumCellValue.es.js","sources":["../../../../../../src/containers/ProjectTreeTable/widgets/EnumCellValue.tsx"],"sourcesContent":["import type { EnumItem } from '@shared/api'\nimport { getTextColor, Icon, IconProps } from '@ynput/ayon-react-components'\nimport clsx from 'clsx'\nimport styled from 'styled-components'\nimport { wrapMode } from './wrapMode'\n// Inline the edit trigger class to avoid runtime import and circular dependency with CellWidget\nconst EDIT_TRIGGER_CLASS = 'edit-trigger'\n\nconst StyledValue = styled.span`\n text-align: left;\n border-radius: var(--border-radius-m);\n padding: 0px 2px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n max-width: 100%;\n\n &.placeholder {\n color: var(--md-sys-color-outline);\n }\n`\n\nconst StyledWidget = styled.div`\n display: flex;\n gap: 1px;\n align-items: center;\n width: 100%;\n height: 100%;\n overflow: visible;\n border-radius: var(--border-radius-m);\n padding: 0 1px;\n\n &.item {\n padding: 4px 2px;\n border-radius: 0;\n overflow: hidden;\n\n &:hover {\n background-color: var(--md-sys-color-surface-container-hover);\n }\n }\n\n &.selected {\n background-color: var(--md-sys-color-primary-container);\n\n &:hover {\n background-color: var(--md-sys-color-primary-container-hover);\n }\n }\n\n /* wrapped rows sit on a fixed row lattice, so the height clip can only land between rows */\n ${wrapMode`\n &.multi-select:not(.item) {\n .values {\n --wrap-row-height: 24px;\n --wrap-row-gap: var(--base-gap-small);\n flex-wrap: wrap;\n align-items: flex-start;\n align-content: flex-start;\n row-gap: var(--wrap-row-gap);\n max-height: 100%;\n /* var() inside an unsupported round() computes to none, not to the fallback — gate it */\n @supports (max-height: round(down, 100px, 24px)) {\n max-height: calc(\n round(\n down,\n 100cqh + var(--wrap-row-gap),\n calc(var(--wrap-row-height) + var(--wrap-row-gap))\n ) - var(--wrap-row-gap)\n );\n }\n }\n\n .values > * {\n min-height: var(--wrap-row-height);\n }\n\n ${StyledValue} {\n white-space: normal;\n word-break: break-word;\n line-height: var(--wrap-row-height);\n }\n\n .has-img ${StyledValue} {\n white-space: nowrap;\n text-overflow: ellipsis;\n }\n }\n `}\n`\n\nconst StyledValuesContainer = styled.div`\n flex: 1;\n display: flex;\n gap: var(--base-gap-small);\n align-items: center;\n align-content: flex-start;\n overflow: hidden;\n border-radius: var(--border-radius-m);\n padding: 0px 2px;\n flex-wrap: nowrap;\n`\n\nconst StyledValueWrapper = styled.div`\n display: flex;\n gap: 2px;\n align-items: center;\n\n max-width: 100%;\n min-width: 20px;\n`\n\nconst StyledImg = styled.img`\n width: 20px;\n height: 20px;\n object-fit: cover;\n flex-shrink: 0;\n\n &.avatar {\n border-radius: 50%;\n }\n`\n\nconst StyledExpandButton = styled.div`\n border-radius: var(--border-radius-m);\n display: flex;\n justify-content: center;\n align-items: center;\n cursor: pointer;\n flex-shrink: 0;\n\n &:hover {\n background-color: var(--md-sys-color-surface-container-highest-hover);\n }\n\n &.open {\n background-color: transparent;\n }\n`\n\nconst StyledExpandIcon = styled(Icon)`\n transition: rotate 0.2s;\n padding: 2px;\n`\n\nexport interface EnumTemplateProps extends React.HTMLAttributes<HTMLSpanElement> {\n selectedOptions: EnumItem[]\n placeholder?: string\n hasMultipleValues?: boolean\n isMultiSelect?: boolean\n isOpen?: boolean\n isItem?: boolean\n isSelected?: boolean\n isReadOnly?: boolean\n iconOnlyColor?: boolean // When true, only the icon gets colored, not the text label\n pt?: {\n icon?: Partial<IconProps>\n img?: Partial<React.ImgHTMLAttributes<HTMLImageElement>>\n value?: Partial<React.ImgHTMLAttributes<HTMLSpanElement>>\n expand?: Partial<IconProps>\n close?: Partial<IconProps>\n }\n}\n\nexport const EnumCellValue = ({\n selectedOptions,\n placeholder,\n hasMultipleValues,\n isMultiSelect,\n isOpen,\n isItem,\n isSelected,\n isReadOnly,\n iconOnlyColor = false,\n className,\n pt,\n ...props\n}: EnumTemplateProps) => {\n // Destructure pt subprops and their relevant props at the top\n const {\n icon: ptIcon = {},\n img: ptImg = {},\n value: ptValue = {},\n expand: ptExpand = {},\n close: ptClose = {},\n } = pt || {}\n\n const { style: iconStyle, className: iconClassName, ...iconRest } = ptIcon\n const { style: imgStyle, className: imgClassName, ...imgRest } = ptImg\n const { style: valueStyle, className: valueClassName, ...valueRest } = ptValue\n const { style: expandStyle, className: expandClassName, ...expandRest } = ptExpand\n const { style: closeStyle, className: closeClassName, ...closeRest } = ptClose\n\n // Check if all options have icons\n const allOptionsHaveIcon = selectedOptions.every((option) => option.icon)\n\n // Determine if we should show labels based on the requirements\n const showLabels = !hasMultipleValues || !allOptionsHaveIcon\n // Show the colors be backgrounds instead of the text\n const backgroundColor = !allOptionsHaveIcon && isMultiSelect && !isItem\n\n const isPlaceholder = !selectedOptions.length && placeholder\n if (isPlaceholder) {\n selectedOptions = [\n {\n label: placeholder,\n value: '',\n },\n ]\n }\n\n return (\n <StyledWidget\n className={clsx(className, {\n selected: isSelected,\n item: isItem,\n 'multi-select': isMultiSelect,\n })}\n {...props}\n >\n <StyledValuesContainer className=\"values\">\n {selectedOptions.map((option, i) => (\n <StyledValueWrapper\n key={option.value.toString() + i}\n className={clsx({ 'has-img': checkForImgSrc(option.icon) })}\n >\n {option.icon && checkForImgSrc(option.icon) ? (\n <StyledImg\n src={option.icon}\n className={clsx({ avatar: checkAvatarImg(option.icon) }, imgClassName)}\n style={imgStyle}\n data-tooltip={option.label}\n {...imgRest}\n />\n ) : option.icon ? (\n <Icon\n icon={option.icon}\n style={{ color: option.color, ...iconStyle }}\n className={iconClassName}\n {...iconRest}\n />\n ) : null}\n\n {(showLabels || !option.icon) && (\n <StyledValue\n style={{\n color:\n backgroundColor && option.color\n ? getTextColor(option.color)\n : iconOnlyColor && option.icon\n ? undefined\n : option.color,\n backgroundColor: backgroundColor\n ? option.color || 'var(--md-sys-color-surface-container)'\n : 'transparent',\n ...valueStyle,\n }}\n className={clsx({ placeholder: isPlaceholder }, valueClassName)}\n aria-label={option.label}\n {...valueRest}\n >\n {option.label}\n </StyledValue>\n )}\n </StyledValueWrapper>\n ))}\n </StyledValuesContainer>\n {!isItem && !isReadOnly && (\n <StyledExpandButton\n className={clsx('expand', EDIT_TRIGGER_CLASS, { open: isOpen }, expandClassName)}\n >\n <StyledExpandIcon\n icon=\"expand_more\"\n style={{ rotate: isOpen ? '180deg' : '0', ...expandStyle }}\n aria-label=\"Expand options\"\n {...expandRest}\n />\n </StyledExpandButton>\n )}\n {isItem && isSelected && isMultiSelect && (\n <Icon\n icon=\"close\"\n style={{ marginLeft: 'auto', marginRight: 4, ...closeStyle }}\n aria-label=\"Deselect item\"\n className={clsx('close', closeClassName)}\n {...closeRest}\n />\n )}\n </StyledWidget>\n )\n}\n\n// Helper functions to check if the icon is a valid image source\nconst checkForImgSrc = (icon: string | undefined = ''): boolean => {\n return (\n icon.startsWith('/') ||\n icon.startsWith('./') ||\n icon.startsWith('../') ||\n icon.startsWith('http://') ||\n icon.startsWith('https://')\n )\n}\n\nconst checkAvatarImg = (src: string): boolean => src.includes('avatar')\n"],"names":["EDIT_TRIGGER_CLASS","StyledValue","styled","StyledWidget","wrapMode","StyledValuesContainer","StyledValueWrapper","StyledImg","StyledExpandButton","StyledExpandIcon","Icon","EnumCellValue","selectedOptions","placeholder","hasMultipleValues","isMultiSelect","isOpen","isItem","isSelected","isReadOnly","iconOnlyColor","className","pt","props","ptIcon","ptImg","ptValue","ptExpand","ptClose","iconStyle","iconClassName","iconRest","imgStyle","imgClassName","imgRest","valueStyle","valueClassName","valueRest","expandStyle","expandClassName","expandRest","closeStyle","closeClassName","closeRest","allOptionsHaveIcon","option","showLabels","backgroundColor","isPlaceholder","jsxs","clsx","jsx","i","checkForImgSrc","checkAvatarImg","getTextColor","icon","src"],"mappings":"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"}
@@ -1,5 +1,12 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const f=require("../../../../../_virtual/jsx-runtime.cjs.js"),M=require("@ynput/ayon-react-components"),x=require("clsx"),i=require("react"),b=require("styled-components"),v=require("./EnumCellValue.cjs.js"),A=b(M.Dropdown)`
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const d=require("../../../../../_virtual/jsx-runtime.cjs.js"),b=require("@ynput/ayon-react-components"),v=require("clsx"),c=require("react"),C=require("styled-components"),x=require("./EnumCellValue.cjs.js"),A=require("./wrapMode.cjs.js"),V=C(b.Dropdown)`
2
2
  height: 100%;
3
3
  width: 100%;
4
- `,V=i.forwardRef(({value:y,isEditing:d,options:c,type:E,autoOpen:g=!0,isReadOnly:u,enableCustomValues:o,onOpen:D,onChange:S,onCancelEdit:q,onNext:T,pt:l,...s},_)=>{const p=y.map(t=>t?.toString()).filter(t=>!!t);let r=c.filter(t=>p.includes(t.value.toString()));const j=[];p.forEach(t=>{if(!c.find(e=>e.value===t)){const e={label:t,value:t,color:o?"var(--md-sys-color-surface-container)":"var(--md-sys-color-error)",icon:o?void 0:"warning"};r=[...r,e],j.push(e)}});const R=r.length>1,h=[...c,...j],n=i.useRef(null),[O,N]=i.useState(!1);i.useEffect(()=>{d&&n.current&&g?(!n.current.isOpen&&n.current?.open(),N(!0)):N(!1)},[d,n.current,g]),i.useEffect(()=>{if(O&&!s.search&&h.length<20){const e=n.current?.getOptions()?.querySelector("li");e&&(e.focus(),e.style.outline="none")}},[O,s.search,h.length]);const m=!!E?.includes("list"),C=t=>{let e=o?t:t.filter(a=>c.find(w=>w.value===a));E?.includes("list")||(e=Array.isArray(e)?e[0]:e),S(e,"Click")};return d?f.jsxRuntimeExports.jsx(A,{options:h,value:p,ref:n,valueTemplate:(t,e,a)=>f.jsxRuntimeExports.jsx(v.EnumCellValue,{selectedOptions:r,hasMultipleValues:e.length>1,isOpen:a,isReadOnly:u,isMultiSelect:m,...l?.template,placeholder:s.placeholder,className:x("enum-dropdown-value",l?.template?.className)}),itemTemplate:(t,e,a)=>f.jsxRuntimeExports.jsx(v.EnumCellValue,{selectedOptions:[t],hasMultipleValues:!1,isOpen:!1,isItem:!0,isMultiSelect:m,isSelected:a,...l?.template,className:x("enum-dropdown-item",l?.template?.className)}),widthExpand:!0,multiSelect:m,disableOpen:u,disabled:u,sortBySelected:!0,searchOnNumber:10,...s,onChange:C,onClose:q,editable:o}):f.jsxRuntimeExports.jsx(v.EnumCellValue,{selectedOptions:r,hasMultipleValues:R,isMultiSelect:m,isReadOnly:u,...l?.template,placeholder:s.placeholder,className:x("enum-value",l?.template?.className,s.className)})});exports.EnumWidget=V;
4
+
5
+ /* the value template clips against the button, so it has to grow with the cell */
6
+ ${({$multiSelect:f})=>f&&A.wrapMode`
7
+ .button {
8
+ height: 100%;
9
+ }
10
+ `}
11
+ `,D=c.forwardRef(({value:f,isEditing:p,options:u,type:E,autoOpen:S=!0,isReadOnly:o,enableCustomValues:m,onOpen:T,onChange:j,onCancelEdit:q,onNext:_,pt:l,...s},k)=>{const h=f.map(t=>t?.toString()).filter(t=>!!t);let r=u.filter(t=>h.includes(t.value.toString()));const O=[];h.forEach(t=>{if(!u.find(e=>e.value===t)){const e={label:t,value:t,color:m?"var(--md-sys-color-surface-container)":"var(--md-sys-color-error)",icon:m?void 0:"warning"};r=[...r,e],O.push(e)}});const y=r.length>1,g=[...u,...O],n=c.useRef(null),[w,N]=c.useState(!1);c.useEffect(()=>{p&&n.current&&S?(!n.current.isOpen&&n.current?.open(),N(!0)):N(!1)},[p,n.current,S]),c.useEffect(()=>{if(w&&!s.search&&g.length<20){const e=n.current?.getOptions()?.querySelector("li");e&&(e.focus(),e.style.outline="none")}},[w,s.search,g.length]);const a=!!E?.includes("list"),M=t=>{let e=m?t:t.filter(i=>u.find(R=>R.value===i));E?.includes("list")||(e=Array.isArray(e)?e[0]:e),j(e,"Click")};return p?d.jsxRuntimeExports.jsx(V,{options:g,value:h,ref:n,valueTemplate:(t,e,i)=>d.jsxRuntimeExports.jsx(x.EnumCellValue,{selectedOptions:r,hasMultipleValues:e.length>1,isOpen:i,isReadOnly:o,isMultiSelect:a,...l?.template,placeholder:s.placeholder,className:v("enum-dropdown-value",l?.template?.className)}),itemTemplate:(t,e,i)=>d.jsxRuntimeExports.jsx(x.EnumCellValue,{selectedOptions:[t],hasMultipleValues:!1,isOpen:!1,isItem:!0,isMultiSelect:a,isSelected:i,...l?.template,className:v("enum-dropdown-item",l?.template?.className)}),widthExpand:!0,multiSelect:a,disableOpen:o,disabled:o,sortBySelected:!0,searchOnNumber:10,...s,$multiSelect:a,onChange:M,onClose:q,editable:m}):d.jsxRuntimeExports.jsx(x.EnumCellValue,{selectedOptions:r,hasMultipleValues:y,isMultiSelect:a,isReadOnly:o,...l?.template,placeholder:s.placeholder,className:v("enum-value",l?.template?.className,s.className)})});exports.EnumWidget=D;
5
12
  //# sourceMappingURL=EnumWidget.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"EnumWidget.cjs.js","sources":["../../../../../../src/containers/ProjectTreeTable/widgets/EnumWidget.tsx"],"sourcesContent":["import { Dropdown, DropdownProps, DropdownRef } from '@ynput/ayon-react-components'\nimport clsx from 'clsx'\nimport { forwardRef, useEffect, useRef, useState } from 'react'\nimport styled from 'styled-components'\nimport type { WidgetBaseProps } from './CellWidget'\nimport { EnumCellValue, EnumTemplateProps } from './EnumCellValue'\nimport type { AttributeData, EnumItem } from '@shared/api'\n\nconst StyledDropdown = styled(Dropdown)`\n height: 100%;\n width: 100%;\n`\n\nexport interface EnumWidgetProps\n extends Omit<DropdownProps, 'onChange' | 'value' | 'pt'>,\n WidgetBaseProps {\n value: (string | number | boolean)[]\n options: EnumItem[]\n type?: AttributeData['type']\n autoOpen?: boolean\n isReadOnly?: boolean\n enableCustomValues?: boolean\n pt?: {\n template?: Partial<EnumTemplateProps>\n }\n onOpen?: () => void\n onNext?: () => void\n}\n\nexport const EnumWidget = forwardRef<HTMLDivElement, EnumWidgetProps>(\n (\n {\n value,\n isEditing,\n options,\n type,\n autoOpen = true,\n isReadOnly,\n enableCustomValues,\n onOpen,\n onChange,\n onCancelEdit,\n onNext,\n pt,\n ...dropdownProps\n },\n _ref,\n ) => {\n // convert value to string array\n const valueAsStrings = value.map((v) => v?.toString()).filter((v) => !!v)\n let selectedOptions = options.filter((option) =>\n valueAsStrings.includes(option.value.toString()),\n )\n\n // Check if all values are present in options, if not, add a warning\n const invalidOptions: EnumItem[] = []\n valueAsStrings.forEach((val) => {\n if (!options.find((option) => option.value === val)) {\n const invalidOption = {\n label: val,\n value: val,\n color: enableCustomValues\n ? 'var(--md-sys-color-surface-container)'\n : 'var(--md-sys-color-error)',\n icon: enableCustomValues ? undefined : 'warning',\n }\n selectedOptions = [...selectedOptions, invalidOption]\n invalidOptions.push(invalidOption)\n }\n })\n const hasMultipleValues = selectedOptions.length > 1\n\n // Merge valid options with invalid options for the dropdown\n const allOptions = [...options, ...invalidOptions]\n\n const dropdownRef = useRef<DropdownRef>(null)\n\n const [dropdownOpen, setDropdownOpen] = useState(false)\n useEffect(() => {\n if (isEditing && dropdownRef.current && autoOpen) {\n !dropdownRef.current.isOpen && dropdownRef.current?.open()\n setDropdownOpen(true)\n } else {\n setDropdownOpen(false)\n }\n }, [isEditing, dropdownRef.current, autoOpen])\n\n // when the dropdown is open, focus the first item\n useEffect(() => {\n if (dropdownOpen && !dropdownProps.search && allOptions.length < 20) {\n const optionsUlEl = dropdownRef.current?.getOptions() as HTMLUListElement\n const firstItem = optionsUlEl?.querySelector('li')\n if (firstItem) {\n firstItem.focus()\n // set style of li to have no outline (no focus ring)\n firstItem.style.outline = 'none'\n }\n }\n }, [dropdownOpen, dropdownProps.search, allOptions.length])\n\n const isMultiSelect = !!type?.includes('list')\n\n const handleChange = (newValue: string[]) => {\n let filteredValue: string | string[] = enableCustomValues\n ? newValue\n : newValue.filter((v) => options.find((o) => o.value === v))\n\n if (type?.includes('list')) {\n onChange(filteredValue, 'Click')\n } else {\n // check if the value is an array or a string and for arrays take the first value only\n filteredValue = Array.isArray(filteredValue) ? filteredValue[0] : filteredValue\n\n // take first value as the type is not list]\n onChange(filteredValue, 'Click')\n }\n }\n\n if (isEditing) {\n return (\n <StyledDropdown\n options={allOptions}\n value={valueAsStrings}\n ref={dropdownRef}\n valueTemplate={(_value, selected, isOpen) => (\n <EnumCellValue\n selectedOptions={selectedOptions}\n hasMultipleValues={selected.length > 1}\n isOpen={isOpen}\n isReadOnly={isReadOnly}\n isMultiSelect={isMultiSelect}\n {...pt?.template}\n placeholder={dropdownProps.placeholder}\n className={clsx('enum-dropdown-value', pt?.template?.className)}\n />\n )}\n itemTemplate={(option, _isActive, isSelected) => (\n <EnumCellValue\n selectedOptions={[option]}\n hasMultipleValues={false}\n isOpen={false}\n isItem\n isMultiSelect={isMultiSelect}\n isSelected={isSelected}\n {...pt?.template}\n className={clsx('enum-dropdown-item', pt?.template?.className)}\n />\n )}\n widthExpand\n multiSelect={isMultiSelect}\n disableOpen={isReadOnly}\n disabled={isReadOnly}\n sortBySelected\n searchOnNumber={10}\n {...dropdownProps}\n onChange={handleChange}\n onClose={onCancelEdit}\n editable={enableCustomValues}\n />\n )\n }\n\n return (\n <EnumCellValue\n selectedOptions={selectedOptions}\n hasMultipleValues={hasMultipleValues}\n isMultiSelect={isMultiSelect}\n isReadOnly={isReadOnly}\n {...pt?.template}\n placeholder={dropdownProps.placeholder}\n className={clsx('enum-value', pt?.template?.className, dropdownProps.className)}\n />\n )\n },\n)\n"],"names":["StyledDropdown","styled","Dropdown","EnumWidget","forwardRef","value","isEditing","options","type","autoOpen","isReadOnly","enableCustomValues","onOpen","onChange","onCancelEdit","onNext","pt","dropdownProps","_ref","valueAsStrings","v","selectedOptions","option","invalidOptions","val","invalidOption","hasMultipleValues","allOptions","dropdownRef","useRef","dropdownOpen","setDropdownOpen","useState","useEffect","firstItem","isMultiSelect","handleChange","newValue","filteredValue","o","jsx","_value","selected","isOpen","EnumCellValue","clsx","_isActive","isSelected"],"mappings":"gSAQMA,EAAiBC,EAAOC,UAAQ;AAAA;AAAA;AAAA,EAqBzBC,EAAaC,EAAAA,WACxB,CACE,CACE,MAAAC,EACA,UAAAC,EACA,QAAAC,EACA,KAAAC,EACA,SAAAC,EAAW,GACX,WAAAC,EACA,mBAAAC,EACA,OAAAC,EACA,SAAAC,EACA,aAAAC,EACA,OAAAC,EACA,GAAAC,EACA,GAAGC,CAAA,EAELC,IACG,CAEH,MAAMC,EAAiBd,EAAM,IAAKe,GAAMA,GAAG,SAAA,CAAU,EAAE,OAAQA,GAAM,CAAC,CAACA,CAAC,EACxE,IAAIC,EAAkBd,EAAQ,OAAQe,GACpCH,EAAe,SAASG,EAAO,MAAM,UAAU,CAAA,EAIjD,MAAMC,EAA6B,CAAA,EACnCJ,EAAe,QAASK,GAAQ,CAC9B,GAAI,CAACjB,EAAQ,KAAMe,GAAWA,EAAO,QAAUE,CAAG,EAAG,CACnD,MAAMC,EAAgB,CACpB,MAAOD,EACP,MAAOA,EACP,MAAOb,EACH,wCACA,4BACJ,KAAMA,EAAqB,OAAY,SAAA,EAEzCU,EAAkB,CAAC,GAAGA,EAAiBI,CAAa,EACpDF,EAAe,KAAKE,CAAa,CACnC,CACF,CAAC,EACD,MAAMC,EAAoBL,EAAgB,OAAS,EAG7CM,EAAa,CAAC,GAAGpB,EAAS,GAAGgB,CAAc,EAE3CK,EAAcC,EAAAA,OAAoB,IAAI,EAEtC,CAACC,EAAcC,CAAe,EAAIC,EAAAA,SAAS,EAAK,EACtDC,EAAAA,UAAU,IAAM,CACV3B,GAAasB,EAAY,SAAWnB,GACtC,CAACmB,EAAY,QAAQ,QAAUA,EAAY,SAAS,KAAA,EACpDG,EAAgB,EAAI,GAEpBA,EAAgB,EAAK,CAEzB,EAAG,CAACzB,EAAWsB,EAAY,QAASnB,CAAQ,CAAC,EAG7CwB,EAAAA,UAAU,IAAM,CACd,GAAIH,GAAgB,CAACb,EAAc,QAAUU,EAAW,OAAS,GAAI,CAEnE,MAAMO,EADcN,EAAY,SAAS,WAAA,GACV,cAAc,IAAI,EAC7CM,IACFA,EAAU,MAAA,EAEVA,EAAU,MAAM,QAAU,OAE9B,CACF,EAAG,CAACJ,EAAcb,EAAc,OAAQU,EAAW,MAAM,CAAC,EAE1D,MAAMQ,EAAgB,CAAC,CAAC3B,GAAM,SAAS,MAAM,EAEvC4B,EAAgBC,GAAuB,CAC3C,IAAIC,EAAmC3B,EACnC0B,EACAA,EAAS,OAAQjB,GAAMb,EAAQ,KAAMgC,GAAMA,EAAE,QAAUnB,CAAC,CAAC,EAEzDZ,GAAM,SAAS,MAAM,IAIvB8B,EAAgB,MAAM,QAAQA,CAAa,EAAIA,EAAc,CAAC,EAAIA,GAGlEzB,EAASyB,EAAe,OAAO,CAEnC,EAEA,OAAIhC,EAEAkC,EAAAA,kBAAAA,IAACxC,EAAA,CACC,QAAS2B,EACT,MAAOR,EACP,IAAKS,EACL,cAAe,CAACa,EAAQC,EAAUC,IAChCH,EAAAA,kBAAAA,IAACI,EAAAA,cAAA,CACC,gBAAAvB,EACA,kBAAmBqB,EAAS,OAAS,EACrC,OAAAC,EACA,WAAAjC,EACA,cAAAyB,EACC,GAAGnB,GAAI,SACR,YAAaC,EAAc,YAC3B,UAAW4B,EAAK,sBAAuB7B,GAAI,UAAU,SAAS,CAAA,CAAA,EAGlE,aAAc,CAACM,EAAQwB,EAAWC,IAChCP,EAAAA,kBAAAA,IAACI,EAAAA,cAAA,CACC,gBAAiB,CAACtB,CAAM,EACxB,kBAAmB,GACnB,OAAQ,GACR,OAAM,GACN,cAAAa,EACA,WAAAY,EACC,GAAG/B,GAAI,SACR,UAAW6B,EAAK,qBAAsB7B,GAAI,UAAU,SAAS,CAAA,CAAA,EAGjE,YAAW,GACX,YAAamB,EACb,YAAazB,EACb,SAAUA,EACV,eAAc,GACd,eAAgB,GACf,GAAGO,EACJ,SAAUmB,EACV,QAAStB,EACT,SAAUH,CAAA,CAAA,EAMd6B,EAAAA,kBAAAA,IAACI,EAAAA,cAAA,CACC,gBAAAvB,EACA,kBAAAK,EACA,cAAAS,EACA,WAAAzB,EACC,GAAGM,GAAI,SACR,YAAaC,EAAc,YAC3B,UAAW4B,EAAK,aAAc7B,GAAI,UAAU,UAAWC,EAAc,SAAS,CAAA,CAAA,CAGpF,CACF"}
1
+ {"version":3,"file":"EnumWidget.cjs.js","sources":["../../../../../../src/containers/ProjectTreeTable/widgets/EnumWidget.tsx"],"sourcesContent":["import { Dropdown, DropdownProps, DropdownRef } from '@ynput/ayon-react-components'\nimport clsx from 'clsx'\nimport { forwardRef, useEffect, useRef, useState } from 'react'\nimport styled from 'styled-components'\nimport type { WidgetBaseProps } from './CellWidget'\nimport { EnumCellValue, EnumTemplateProps } from './EnumCellValue'\nimport type { AttributeData, EnumItem } from '@shared/api'\nimport { wrapMode } from './wrapMode'\n\nconst StyledDropdown = styled(Dropdown)<{ $multiSelect?: boolean }>`\n height: 100%;\n width: 100%;\n\n /* the value template clips against the button, so it has to grow with the cell */\n ${({ $multiSelect }) =>\n $multiSelect &&\n wrapMode`\n .button {\n height: 100%;\n }\n `}\n`\n\nexport interface EnumWidgetProps\n extends Omit<DropdownProps, 'onChange' | 'value' | 'pt'>,\n WidgetBaseProps {\n value: (string | number | boolean)[]\n options: EnumItem[]\n type?: AttributeData['type']\n autoOpen?: boolean\n isReadOnly?: boolean\n enableCustomValues?: boolean\n pt?: {\n template?: Partial<EnumTemplateProps>\n }\n onOpen?: () => void\n onNext?: () => void\n}\n\nexport const EnumWidget = forwardRef<HTMLDivElement, EnumWidgetProps>(\n (\n {\n value,\n isEditing,\n options,\n type,\n autoOpen = true,\n isReadOnly,\n enableCustomValues,\n onOpen,\n onChange,\n onCancelEdit,\n onNext,\n pt,\n ...dropdownProps\n },\n _ref,\n ) => {\n // convert value to string array\n const valueAsStrings = value.map((v) => v?.toString()).filter((v) => !!v)\n let selectedOptions = options.filter((option) =>\n valueAsStrings.includes(option.value.toString()),\n )\n\n // Check if all values are present in options, if not, add a warning\n const invalidOptions: EnumItem[] = []\n valueAsStrings.forEach((val) => {\n if (!options.find((option) => option.value === val)) {\n const invalidOption = {\n label: val,\n value: val,\n color: enableCustomValues\n ? 'var(--md-sys-color-surface-container)'\n : 'var(--md-sys-color-error)',\n icon: enableCustomValues ? undefined : 'warning',\n }\n selectedOptions = [...selectedOptions, invalidOption]\n invalidOptions.push(invalidOption)\n }\n })\n const hasMultipleValues = selectedOptions.length > 1\n\n // Merge valid options with invalid options for the dropdown\n const allOptions = [...options, ...invalidOptions]\n\n const dropdownRef = useRef<DropdownRef>(null)\n\n const [dropdownOpen, setDropdownOpen] = useState(false)\n useEffect(() => {\n if (isEditing && dropdownRef.current && autoOpen) {\n !dropdownRef.current.isOpen && dropdownRef.current?.open()\n setDropdownOpen(true)\n } else {\n setDropdownOpen(false)\n }\n }, [isEditing, dropdownRef.current, autoOpen])\n\n // when the dropdown is open, focus the first item\n useEffect(() => {\n if (dropdownOpen && !dropdownProps.search && allOptions.length < 20) {\n const optionsUlEl = dropdownRef.current?.getOptions() as HTMLUListElement\n const firstItem = optionsUlEl?.querySelector('li')\n if (firstItem) {\n firstItem.focus()\n // set style of li to have no outline (no focus ring)\n firstItem.style.outline = 'none'\n }\n }\n }, [dropdownOpen, dropdownProps.search, allOptions.length])\n\n const isMultiSelect = !!type?.includes('list')\n\n const handleChange = (newValue: string[]) => {\n let filteredValue: string | string[] = enableCustomValues\n ? newValue\n : newValue.filter((v) => options.find((o) => o.value === v))\n\n if (type?.includes('list')) {\n onChange(filteredValue, 'Click')\n } else {\n // check if the value is an array or a string and for arrays take the first value only\n filteredValue = Array.isArray(filteredValue) ? filteredValue[0] : filteredValue\n\n // take first value as the type is not list]\n onChange(filteredValue, 'Click')\n }\n }\n\n if (isEditing) {\n return (\n <StyledDropdown\n options={allOptions}\n value={valueAsStrings}\n ref={dropdownRef}\n valueTemplate={(_value, selected, isOpen) => (\n <EnumCellValue\n selectedOptions={selectedOptions}\n hasMultipleValues={selected.length > 1}\n isOpen={isOpen}\n isReadOnly={isReadOnly}\n isMultiSelect={isMultiSelect}\n {...pt?.template}\n placeholder={dropdownProps.placeholder}\n className={clsx('enum-dropdown-value', pt?.template?.className)}\n />\n )}\n itemTemplate={(option, _isActive, isSelected) => (\n <EnumCellValue\n selectedOptions={[option]}\n hasMultipleValues={false}\n isOpen={false}\n isItem\n isMultiSelect={isMultiSelect}\n isSelected={isSelected}\n {...pt?.template}\n className={clsx('enum-dropdown-item', pt?.template?.className)}\n />\n )}\n widthExpand\n multiSelect={isMultiSelect}\n disableOpen={isReadOnly}\n disabled={isReadOnly}\n sortBySelected\n searchOnNumber={10}\n {...dropdownProps}\n $multiSelect={isMultiSelect}\n onChange={handleChange}\n onClose={onCancelEdit}\n editable={enableCustomValues}\n />\n )\n }\n\n return (\n <EnumCellValue\n selectedOptions={selectedOptions}\n hasMultipleValues={hasMultipleValues}\n isMultiSelect={isMultiSelect}\n isReadOnly={isReadOnly}\n {...pt?.template}\n placeholder={dropdownProps.placeholder}\n className={clsx('enum-value', pt?.template?.className, dropdownProps.className)}\n />\n )\n },\n)\n"],"names":["StyledDropdown","styled","Dropdown","$multiSelect","wrapMode","EnumWidget","forwardRef","value","isEditing","options","type","autoOpen","isReadOnly","enableCustomValues","onOpen","onChange","onCancelEdit","onNext","pt","dropdownProps","_ref","valueAsStrings","v","selectedOptions","option","invalidOptions","val","invalidOption","hasMultipleValues","allOptions","dropdownRef","useRef","dropdownOpen","setDropdownOpen","useState","useEffect","firstItem","isMultiSelect","handleChange","newValue","filteredValue","o","jsx","_value","selected","isOpen","EnumCellValue","clsx","_isActive","isSelected"],"mappings":"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"}
@@ -1,115 +1,124 @@
1
1
  import { j as m } from "../../../../../_virtual/jsx-runtime.es.js";
2
- import { Dropdown as _ } from "@ynput/ayon-react-components";
3
- import h from "clsx";
4
- import { forwardRef as b, useRef as k, useState as C, useEffect as E } from "react";
2
+ import { Dropdown as D } from "@ynput/ayon-react-components";
3
+ import v from "clsx";
4
+ import { forwardRef as _, useRef as k, useState as C, useEffect as E } from "react";
5
5
  import I from "styled-components";
6
- import { EnumCellValue as v } from "./EnumCellValue.es.js";
7
- const T = I(_)`
6
+ import { EnumCellValue as g } from "./EnumCellValue.es.js";
7
+ import { wrapMode as T } from "./wrapMode.es.js";
8
+ const U = I(D)`
8
9
  height: 100%;
9
10
  width: 100%;
10
- `, H = b(
11
+
12
+ /* the value template clips against the button, so it has to grow with the cell */
13
+ ${({ $multiSelect: f }) => f && T`
14
+ .button {
15
+ height: 100%;
16
+ }
17
+ `}
18
+ `, J = _(
11
19
  ({
12
- value: w,
13
- isEditing: f,
14
- options: i,
15
- type: g,
16
- autoOpen: x = !0,
17
- isReadOnly: o,
18
- enableCustomValues: c,
19
- onOpen: U,
20
+ value: f,
21
+ isEditing: p,
22
+ options: o,
23
+ type: x,
24
+ autoOpen: S = !0,
25
+ isReadOnly: c,
26
+ enableCustomValues: u,
27
+ onOpen: $,
20
28
  onChange: N,
21
29
  onCancelEdit: y,
22
30
  onNext: q,
23
31
  pt: l,
24
32
  ...s
25
33
  }, B) => {
26
- const p = w.map((t) => t?.toString()).filter((t) => !!t);
27
- let n = i.filter(
28
- (t) => p.includes(t.value.toString())
34
+ const h = f.map((t) => t?.toString()).filter((t) => !!t);
35
+ let a = o.filter(
36
+ (t) => h.includes(t.value.toString())
29
37
  );
30
38
  const O = [];
31
- p.forEach((t) => {
32
- if (!i.find((e) => e.value === t)) {
39
+ h.forEach((t) => {
40
+ if (!o.find((e) => e.value === t)) {
33
41
  const e = {
34
42
  label: t,
35
43
  value: t,
36
- color: c ? "var(--md-sys-color-surface-container)" : "var(--md-sys-color-error)",
37
- icon: c ? void 0 : "warning"
44
+ color: u ? "var(--md-sys-color-surface-container)" : "var(--md-sys-color-error)",
45
+ icon: u ? void 0 : "warning"
38
46
  };
39
- n = [...n, e], O.push(e);
47
+ a = [...a, e], O.push(e);
40
48
  }
41
49
  });
42
- const A = n.length > 1, d = [...i, ...O], r = k(null), [S, j] = C(!1);
50
+ const M = a.length > 1, d = [...o, ...O], r = k(null), [w, j] = C(!1);
43
51
  E(() => {
44
- f && r.current && x ? (!r.current.isOpen && r.current?.open(), j(!0)) : j(!1);
45
- }, [f, r.current, x]), E(() => {
46
- if (S && !s.search && d.length < 20) {
52
+ p && r.current && S ? (!r.current.isOpen && r.current?.open(), j(!0)) : j(!1);
53
+ }, [p, r.current, S]), E(() => {
54
+ if (w && !s.search && d.length < 20) {
47
55
  const e = r.current?.getOptions()?.querySelector("li");
48
56
  e && (e.focus(), e.style.outline = "none");
49
57
  }
50
- }, [S, s.search, d.length]);
51
- const u = !!g?.includes("list"), M = (t) => {
52
- let e = c ? t : t.filter((a) => i.find((D) => D.value === a));
53
- g?.includes("list") || (e = Array.isArray(e) ? e[0] : e), N(e, "Click");
58
+ }, [w, s.search, d.length]);
59
+ const i = !!x?.includes("list"), b = (t) => {
60
+ let e = u ? t : t.filter((n) => o.find((A) => A.value === n));
61
+ x?.includes("list") || (e = Array.isArray(e) ? e[0] : e), N(e, "Click");
54
62
  };
55
- return f ? /* @__PURE__ */ m.jsx(
56
- T,
63
+ return p ? /* @__PURE__ */ m.jsx(
64
+ U,
57
65
  {
58
66
  options: d,
59
- value: p,
67
+ value: h,
60
68
  ref: r,
61
- valueTemplate: (t, e, a) => /* @__PURE__ */ m.jsx(
62
- v,
69
+ valueTemplate: (t, e, n) => /* @__PURE__ */ m.jsx(
70
+ g,
63
71
  {
64
- selectedOptions: n,
72
+ selectedOptions: a,
65
73
  hasMultipleValues: e.length > 1,
66
- isOpen: a,
67
- isReadOnly: o,
68
- isMultiSelect: u,
74
+ isOpen: n,
75
+ isReadOnly: c,
76
+ isMultiSelect: i,
69
77
  ...l?.template,
70
78
  placeholder: s.placeholder,
71
- className: h("enum-dropdown-value", l?.template?.className)
79
+ className: v("enum-dropdown-value", l?.template?.className)
72
80
  }
73
81
  ),
74
- itemTemplate: (t, e, a) => /* @__PURE__ */ m.jsx(
75
- v,
82
+ itemTemplate: (t, e, n) => /* @__PURE__ */ m.jsx(
83
+ g,
76
84
  {
77
85
  selectedOptions: [t],
78
86
  hasMultipleValues: !1,
79
87
  isOpen: !1,
80
88
  isItem: !0,
81
- isMultiSelect: u,
82
- isSelected: a,
89
+ isMultiSelect: i,
90
+ isSelected: n,
83
91
  ...l?.template,
84
- className: h("enum-dropdown-item", l?.template?.className)
92
+ className: v("enum-dropdown-item", l?.template?.className)
85
93
  }
86
94
  ),
87
95
  widthExpand: !0,
88
- multiSelect: u,
89
- disableOpen: o,
90
- disabled: o,
96
+ multiSelect: i,
97
+ disableOpen: c,
98
+ disabled: c,
91
99
  sortBySelected: !0,
92
100
  searchOnNumber: 10,
93
101
  ...s,
94
- onChange: M,
102
+ $multiSelect: i,
103
+ onChange: b,
95
104
  onClose: y,
96
- editable: c
105
+ editable: u
97
106
  }
98
107
  ) : /* @__PURE__ */ m.jsx(
99
- v,
108
+ g,
100
109
  {
101
- selectedOptions: n,
102
- hasMultipleValues: A,
103
- isMultiSelect: u,
104
- isReadOnly: o,
110
+ selectedOptions: a,
111
+ hasMultipleValues: M,
112
+ isMultiSelect: i,
113
+ isReadOnly: c,
105
114
  ...l?.template,
106
115
  placeholder: s.placeholder,
107
- className: h("enum-value", l?.template?.className, s.className)
116
+ className: v("enum-value", l?.template?.className, s.className)
108
117
  }
109
118
  );
110
119
  }
111
120
  );
112
121
  export {
113
- H as EnumWidget
122
+ J as EnumWidget
114
123
  };
115
124
  //# sourceMappingURL=EnumWidget.es.js.map