@uipath/apollo-react 4.60.0 → 4.61.1

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 (133) hide show
  1. package/dist/canvas/components/BaseNode/BaseNode.cjs +23 -42
  2. package/dist/canvas/components/BaseNode/BaseNode.d.ts.map +1 -1
  3. package/dist/canvas/components/BaseNode/BaseNode.js +23 -42
  4. package/dist/canvas/components/BaseNode/BaseNodeConfigContext.d.ts.map +1 -1
  5. package/dist/canvas/stores/animatedViewportManager.cjs +4 -4
  6. package/dist/canvas/stores/animatedViewportManager.d.ts.map +1 -1
  7. package/dist/canvas/stores/animatedViewportManager.js +4 -4
  8. package/dist/canvas/styles/tailwind.canvas.css +1 -1
  9. package/dist/material/components/ap-model-picker/ModelPicker.cjs +543 -0
  10. package/dist/material/components/ap-model-picker/ModelPicker.d.ts +56 -0
  11. package/dist/material/components/ap-model-picker/ModelPicker.d.ts.map +1 -0
  12. package/dist/material/components/ap-model-picker/ModelPicker.js +494 -0
  13. package/dist/material/components/ap-model-picker/ModelTagChip.cjs +140 -0
  14. package/dist/material/components/ap-model-picker/ModelTagChip.d.ts +11 -0
  15. package/dist/material/components/ap-model-picker/ModelTagChip.d.ts.map +1 -0
  16. package/dist/material/components/ap-model-picker/ModelTagChip.js +90 -0
  17. package/dist/material/components/ap-model-picker/badges.cjs +53 -0
  18. package/dist/material/components/ap-model-picker/badges.d.ts +9 -0
  19. package/dist/material/components/ap-model-picker/badges.d.ts.map +1 -0
  20. package/dist/material/components/ap-model-picker/badges.js +19 -0
  21. package/dist/material/components/ap-model-picker/i18n.cjs +187 -0
  22. package/dist/material/components/ap-model-picker/i18n.d.ts +53 -0
  23. package/dist/material/components/ap-model-picker/i18n.d.ts.map +1 -0
  24. package/dist/material/components/ap-model-picker/i18n.js +117 -0
  25. package/dist/material/components/ap-model-picker/index.cjs +112 -0
  26. package/dist/material/components/ap-model-picker/index.d.ts +31 -0
  27. package/dist/material/components/ap-model-picker/index.d.ts.map +1 -0
  28. package/dist/material/components/ap-model-picker/index.js +15 -0
  29. package/dist/material/components/ap-model-picker/locales/de.cjs +36 -0
  30. package/dist/material/components/ap-model-picker/locales/de.d.ts +3 -0
  31. package/dist/material/components/ap-model-picker/locales/de.d.ts.map +1 -0
  32. package/dist/material/components/ap-model-picker/locales/de.js +2 -0
  33. package/dist/material/components/ap-model-picker/locales/en.cjs +36 -0
  34. package/dist/material/components/ap-model-picker/locales/en.d.ts +3 -0
  35. package/dist/material/components/ap-model-picker/locales/en.d.ts.map +1 -0
  36. package/dist/material/components/ap-model-picker/locales/en.js +2 -0
  37. package/dist/material/components/ap-model-picker/locales/es-MX.cjs +36 -0
  38. package/dist/material/components/ap-model-picker/locales/es-MX.d.ts +3 -0
  39. package/dist/material/components/ap-model-picker/locales/es-MX.d.ts.map +1 -0
  40. package/dist/material/components/ap-model-picker/locales/es-MX.js +2 -0
  41. package/dist/material/components/ap-model-picker/locales/es.cjs +36 -0
  42. package/dist/material/components/ap-model-picker/locales/es.d.ts +3 -0
  43. package/dist/material/components/ap-model-picker/locales/es.d.ts.map +1 -0
  44. package/dist/material/components/ap-model-picker/locales/es.js +2 -0
  45. package/dist/material/components/ap-model-picker/locales/fr.cjs +36 -0
  46. package/dist/material/components/ap-model-picker/locales/fr.d.ts +3 -0
  47. package/dist/material/components/ap-model-picker/locales/fr.d.ts.map +1 -0
  48. package/dist/material/components/ap-model-picker/locales/fr.js +2 -0
  49. package/dist/material/components/ap-model-picker/locales/ja.cjs +36 -0
  50. package/dist/material/components/ap-model-picker/locales/ja.d.ts +3 -0
  51. package/dist/material/components/ap-model-picker/locales/ja.d.ts.map +1 -0
  52. package/dist/material/components/ap-model-picker/locales/ja.js +2 -0
  53. package/dist/material/components/ap-model-picker/locales/ko.cjs +36 -0
  54. package/dist/material/components/ap-model-picker/locales/ko.d.ts +3 -0
  55. package/dist/material/components/ap-model-picker/locales/ko.d.ts.map +1 -0
  56. package/dist/material/components/ap-model-picker/locales/ko.js +2 -0
  57. package/dist/material/components/ap-model-picker/locales/pt-BR.cjs +36 -0
  58. package/dist/material/components/ap-model-picker/locales/pt-BR.d.ts +3 -0
  59. package/dist/material/components/ap-model-picker/locales/pt-BR.d.ts.map +1 -0
  60. package/dist/material/components/ap-model-picker/locales/pt-BR.js +2 -0
  61. package/dist/material/components/ap-model-picker/locales/pt.cjs +36 -0
  62. package/dist/material/components/ap-model-picker/locales/pt.d.ts +3 -0
  63. package/dist/material/components/ap-model-picker/locales/pt.d.ts.map +1 -0
  64. package/dist/material/components/ap-model-picker/locales/pt.js +2 -0
  65. package/dist/material/components/ap-model-picker/locales/ru.cjs +36 -0
  66. package/dist/material/components/ap-model-picker/locales/ru.d.ts +3 -0
  67. package/dist/material/components/ap-model-picker/locales/ru.d.ts.map +1 -0
  68. package/dist/material/components/ap-model-picker/locales/ru.js +2 -0
  69. package/dist/material/components/ap-model-picker/locales/tr.cjs +36 -0
  70. package/dist/material/components/ap-model-picker/locales/tr.d.ts +3 -0
  71. package/dist/material/components/ap-model-picker/locales/tr.d.ts.map +1 -0
  72. package/dist/material/components/ap-model-picker/locales/tr.js +2 -0
  73. package/dist/material/components/ap-model-picker/locales/zh-CN.cjs +36 -0
  74. package/dist/material/components/ap-model-picker/locales/zh-CN.d.ts +3 -0
  75. package/dist/material/components/ap-model-picker/locales/zh-CN.d.ts.map +1 -0
  76. package/dist/material/components/ap-model-picker/locales/zh-CN.js +2 -0
  77. package/dist/material/components/ap-model-picker/locales/zh-TW.cjs +36 -0
  78. package/dist/material/components/ap-model-picker/locales/zh-TW.d.ts +3 -0
  79. package/dist/material/components/ap-model-picker/locales/zh-TW.d.ts.map +1 -0
  80. package/dist/material/components/ap-model-picker/locales/zh-TW.js +2 -0
  81. package/dist/material/components/ap-model-picker/primitives/FolderSwitcher.cjs +236 -0
  82. package/dist/material/components/ap-model-picker/primitives/FolderSwitcher.d.ts +15 -0
  83. package/dist/material/components/ap-model-picker/primitives/FolderSwitcher.d.ts.map +1 -0
  84. package/dist/material/components/ap-model-picker/primitives/FolderSwitcher.js +181 -0
  85. package/dist/material/components/ap-model-picker/primitives/GroupHeader.cjs +139 -0
  86. package/dist/material/components/ap-model-picker/primitives/GroupHeader.d.ts +16 -0
  87. package/dist/material/components/ap-model-picker/primitives/GroupHeader.d.ts.map +1 -0
  88. package/dist/material/components/ap-model-picker/primitives/GroupHeader.js +92 -0
  89. package/dist/material/components/ap-model-picker/primitives/ModelOptionRow.cjs +258 -0
  90. package/dist/material/components/ap-model-picker/primitives/ModelOptionRow.d.ts +29 -0
  91. package/dist/material/components/ap-model-picker/primitives/ModelOptionRow.d.ts.map +1 -0
  92. package/dist/material/components/ap-model-picker/primitives/ModelOptionRow.js +199 -0
  93. package/dist/material/components/ap-model-picker/primitives/OptionList.cjs +287 -0
  94. package/dist/material/components/ap-model-picker/primitives/OptionList.d.ts +31 -0
  95. package/dist/material/components/ap-model-picker/primitives/OptionList.d.ts.map +1 -0
  96. package/dist/material/components/ap-model-picker/primitives/OptionList.js +235 -0
  97. package/dist/material/components/ap-model-picker/primitives/PickerPopup.cjs +110 -0
  98. package/dist/material/components/ap-model-picker/primitives/PickerPopup.d.ts +16 -0
  99. package/dist/material/components/ap-model-picker/primitives/PickerPopup.d.ts.map +1 -0
  100. package/dist/material/components/ap-model-picker/primitives/PickerPopup.js +63 -0
  101. package/dist/material/components/ap-model-picker/primitives/PickerSearchInput.cjs +143 -0
  102. package/dist/material/components/ap-model-picker/primitives/PickerSearchInput.d.ts +18 -0
  103. package/dist/material/components/ap-model-picker/primitives/PickerSearchInput.d.ts.map +1 -0
  104. package/dist/material/components/ap-model-picker/primitives/PickerSearchInput.js +97 -0
  105. package/dist/material/components/ap-model-picker/primitives/PickerTrigger.cjs +195 -0
  106. package/dist/material/components/ap-model-picker/primitives/PickerTrigger.d.ts +25 -0
  107. package/dist/material/components/ap-model-picker/primitives/PickerTrigger.d.ts.map +1 -0
  108. package/dist/material/components/ap-model-picker/primitives/PickerTrigger.js +148 -0
  109. package/dist/material/components/ap-model-picker/types.cjs +18 -0
  110. package/dist/material/components/ap-model-picker/types.d.ts +77 -0
  111. package/dist/material/components/ap-model-picker/types.d.ts.map +1 -0
  112. package/dist/material/components/ap-model-picker/types.js +0 -0
  113. package/dist/material/components/ap-model-picker/useDiscoveryModels.cjs +113 -0
  114. package/dist/material/components/ap-model-picker/useDiscoveryModels.d.ts +9 -0
  115. package/dist/material/components/ap-model-picker/useDiscoveryModels.d.ts.map +1 -0
  116. package/dist/material/components/ap-model-picker/useDiscoveryModels.js +79 -0
  117. package/dist/material/components/ap-model-picker/useModelPickerState.cjs +175 -0
  118. package/dist/material/components/ap-model-picker/useModelPickerState.d.ts +40 -0
  119. package/dist/material/components/ap-model-picker/useModelPickerState.d.ts.map +1 -0
  120. package/dist/material/components/ap-model-picker/useModelPickerState.js +141 -0
  121. package/dist/material/components/ap-model-picker/usePlatformAccess.cjs +184 -0
  122. package/dist/material/components/ap-model-picker/usePlatformAccess.d.ts +32 -0
  123. package/dist/material/components/ap-model-picker/usePlatformAccess.d.ts.map +1 -0
  124. package/dist/material/components/ap-model-picker/usePlatformAccess.js +141 -0
  125. package/dist/material/components/ap-model-picker/utils.cjs +309 -0
  126. package/dist/material/components/ap-model-picker/utils.d.ts +23 -0
  127. package/dist/material/components/ap-model-picker/utils.d.ts.map +1 -0
  128. package/dist/material/components/ap-model-picker/utils.js +263 -0
  129. package/dist/material/components/index.cjs +31 -24
  130. package/dist/material/components/index.d.ts +1 -0
  131. package/dist/material/components/index.d.ts.map +1 -1
  132. package/dist/material/components/index.js +1 -0
  133. package/package.json +2 -1
@@ -0,0 +1,287 @@
1
+ "use strict";
2
+ var __webpack_require__ = {};
3
+ (()=>{
4
+ __webpack_require__.n = (module)=>{
5
+ var getter = module && module.__esModule ? ()=>module['default'] : ()=>module;
6
+ __webpack_require__.d(getter, {
7
+ a: getter
8
+ });
9
+ return getter;
10
+ };
11
+ })();
12
+ (()=>{
13
+ __webpack_require__.d = (exports1, definition)=>{
14
+ for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
15
+ enumerable: true,
16
+ get: definition[key]
17
+ });
18
+ };
19
+ })();
20
+ (()=>{
21
+ __webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
22
+ })();
23
+ (()=>{
24
+ __webpack_require__.r = (exports1)=>{
25
+ if ("u" > typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
26
+ value: 'Module'
27
+ });
28
+ Object.defineProperty(exports1, '__esModule', {
29
+ value: true
30
+ });
31
+ };
32
+ })();
33
+ var __webpack_exports__ = {};
34
+ __webpack_require__.r(__webpack_exports__);
35
+ __webpack_require__.d(__webpack_exports__, {
36
+ VirtualOptionList: ()=>VirtualOptionList,
37
+ optionDomId: ()=>optionDomId,
38
+ GroupedOptionList: ()=>GroupedOptionList
39
+ });
40
+ const jsx_runtime_namespaceObject = require("react/jsx-runtime");
41
+ const ShieldOutlined_namespaceObject = require("@mui/icons-material/ShieldOutlined");
42
+ var ShieldOutlined_default = /*#__PURE__*/ __webpack_require__.n(ShieldOutlined_namespaceObject);
43
+ const Box_namespaceObject = require("@mui/material/Box");
44
+ var Box_default = /*#__PURE__*/ __webpack_require__.n(Box_namespaceObject);
45
+ const react_virtual_namespaceObject = require("@tanstack/react-virtual");
46
+ const external_react_namespaceObject = require("react");
47
+ var external_react_default = /*#__PURE__*/ __webpack_require__.n(external_react_namespaceObject);
48
+ const external_i18n_cjs_namespaceObject = require("../i18n.cjs");
49
+ const external_GroupHeader_cjs_namespaceObject = require("./GroupHeader.cjs");
50
+ const external_ModelOptionRow_cjs_namespaceObject = require("./ModelOptionRow.cjs");
51
+ const BYO_GROUP_KEY = 'byo';
52
+ const DEFAULT_LIST_MAX_HEIGHT = 362;
53
+ function groupLeadingIcon(groupKey) {
54
+ if (groupKey === BYO_GROUP_KEY) return /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(ShieldOutlined_default(), {
55
+ sx: {
56
+ fontSize: 14
57
+ }
58
+ });
59
+ return null;
60
+ }
61
+ const GROUP_HINT_DESCRIPTORS = {
62
+ recommended: external_i18n_cjs_namespaceObject.GROUP_LABELS.recommendedHint,
63
+ preview: external_i18n_cjs_namespaceObject.GROUP_LABELS.previewHint,
64
+ byo: external_i18n_cjs_namespaceObject.GROUP_LABELS.byoHint,
65
+ more: external_i18n_cjs_namespaceObject.GROUP_LABELS.moreHint,
66
+ deprecating: external_i18n_cjs_namespaceObject.GROUP_LABELS.deprecatingHint
67
+ };
68
+ function groupHint(groupKey, i18n) {
69
+ const desc = GROUP_HINT_DESCRIPTORS[groupKey];
70
+ if (!desc) return;
71
+ return i18n ? i18n._(desc) : desc.message;
72
+ }
73
+ function countLabel(n, i18n) {
74
+ if (null == n || !i18n) return;
75
+ return 1 === n ? i18n._({
76
+ id: 'modelPicker.count.one',
77
+ message: '{n} model',
78
+ values: {
79
+ n
80
+ }
81
+ }) : i18n._({
82
+ id: 'modelPicker.count.many',
83
+ message: '{n} models',
84
+ values: {
85
+ n
86
+ }
87
+ });
88
+ }
89
+ function optionDomId(listboxId, modelId) {
90
+ const safe = modelId.replace(/[^A-Za-z0-9_-]/g, '-');
91
+ return `${listboxId}-opt-${safe}`;
92
+ }
93
+ const GroupedOptionList = ({ id, options, activeIndex, setActiveIndex, selectedId, onSelect, tagContext, tagVariants, groupCounts, renderRowActions, renderRowMeta, dense, maxHeight = DEFAULT_LIST_MAX_HEIGHT, hideGroupHeaders, hideTagKinds, collapsedGroups, onGroupToggle, 'aria-label': ariaLabel = 'Models' })=>{
94
+ let lastGroupKey;
95
+ let headerCount = 0;
96
+ const derivedCounts = (0, external_react_namespaceObject.useMemo)(()=>{
97
+ if (groupCounts) return groupCounts;
98
+ const out = {};
99
+ for (const o of options)out[o.groupKey] = (out[o.groupKey] ?? 0) + 1;
100
+ return out;
101
+ }, [
102
+ groupCounts,
103
+ options
104
+ ]);
105
+ return /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(Box_default(), {
106
+ role: "listbox",
107
+ id: id,
108
+ "aria-label": ariaLabel,
109
+ sx: {
110
+ maxHeight,
111
+ overflowY: 'auto',
112
+ py: 0.5
113
+ },
114
+ children: options.map((opt, i)=>{
115
+ const showHeader = !hideGroupHeaders && opt.groupKey !== lastGroupKey;
116
+ const isFirstHeader = showHeader && 0 === headerCount;
117
+ if (showHeader) headerCount += 1;
118
+ lastGroupKey = opt.groupKey;
119
+ const isCollapsible = opt.groupKey === BYO_GROUP_KEY;
120
+ const isCollapsed = isCollapsible && (collapsedGroups?.has(opt.groupKey) ?? false);
121
+ return /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsxs)(external_react_default().Fragment, {
122
+ children: [
123
+ showHeader && /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_GroupHeader_cjs_namespaceObject.GroupHeader, {
124
+ label: opt.groupLabel,
125
+ hint: groupHint(opt.groupKey, tagContext?.i18n),
126
+ count: derivedCounts[opt.groupKey],
127
+ countLabel: countLabel(derivedCounts[opt.groupKey], tagContext?.i18n),
128
+ dense: dense,
129
+ isFirst: isFirstHeader,
130
+ leadingIcon: groupLeadingIcon(opt.groupKey),
131
+ collapsible: isCollapsible,
132
+ collapsed: isCollapsed,
133
+ onToggle: isCollapsible ? ()=>onGroupToggle?.(opt.groupKey) : void 0
134
+ }),
135
+ !isCollapsed && /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_ModelOptionRow_cjs_namespaceObject.ModelOptionRow, {
136
+ id: optionDomId(id, opt.modelId),
137
+ model: opt,
138
+ index: i,
139
+ active: i === activeIndex,
140
+ selected: opt.modelId === selectedId,
141
+ onSelect: onSelect,
142
+ onActivate: setActiveIndex,
143
+ tagContext: tagContext,
144
+ tagVariants: tagVariants,
145
+ hideTagKinds: hideTagKinds,
146
+ renderMeta: renderRowMeta,
147
+ renderActions: renderRowActions,
148
+ dense: dense
149
+ })
150
+ ]
151
+ }, opt.modelId);
152
+ })
153
+ });
154
+ };
155
+ const VirtualOptionList = ({ id, options, activeIndex, setActiveIndex, selectedId, onSelect, tagContext, tagVariants, groupCounts, renderRowActions, renderRowMeta, dense, maxHeight = DEFAULT_LIST_MAX_HEIGHT, hideGroupHeaders, hideTagKinds, collapsedGroups, onGroupToggle, 'aria-label': ariaLabel = 'Models' })=>{
156
+ const rows = (0, external_react_namespaceObject.useMemo)(()=>{
157
+ const out = [];
158
+ let lastGroupKey;
159
+ let headerCount = 0;
160
+ const counts = groupCounts ?? {};
161
+ if (!groupCounts) for (const o of options)counts[o.groupKey] = (counts[o.groupKey] ?? 0) + 1;
162
+ options.forEach((opt, i)=>{
163
+ const collapsed = collapsedGroups?.has(opt.groupKey) ?? false;
164
+ if (!hideGroupHeaders && opt.groupKey !== lastGroupKey) {
165
+ out.push({
166
+ kind: 'header',
167
+ key: `h-${opt.groupKey}`,
168
+ groupKey: opt.groupKey,
169
+ label: opt.groupLabel,
170
+ isFirst: 0 === headerCount,
171
+ count: counts[opt.groupKey] ?? 0
172
+ });
173
+ headerCount += 1;
174
+ }
175
+ lastGroupKey = opt.groupKey;
176
+ if (!collapsed) out.push({
177
+ kind: 'option',
178
+ key: opt.modelId,
179
+ model: opt,
180
+ index: i
181
+ });
182
+ });
183
+ return out;
184
+ }, [
185
+ options,
186
+ hideGroupHeaders,
187
+ groupCounts,
188
+ collapsedGroups
189
+ ]);
190
+ const headerHeight = dense ? 32 : 48;
191
+ const optionHeight = dense ? external_ModelOptionRow_cjs_namespaceObject.DENSE_OPTION_HEIGHT : external_ModelOptionRow_cjs_namespaceObject.FULL_OPTION_HEIGHT;
192
+ const parentRef = (0, external_react_namespaceObject.useRef)(null);
193
+ const virtualizer = (0, react_virtual_namespaceObject.useVirtualizer)({
194
+ count: rows.length,
195
+ getScrollElement: ()=>parentRef.current,
196
+ estimateSize: (i)=>rows[i]?.kind === 'header' ? headerHeight : optionHeight,
197
+ overscan: 10
198
+ });
199
+ (0, external_react_namespaceObject.useEffect)(()=>{
200
+ const rowIdx = rows.findIndex((r)=>'option' === r.kind && r.index === activeIndex);
201
+ if (rowIdx >= 0) virtualizer.scrollToIndex(rowIdx, {
202
+ align: 'auto'
203
+ });
204
+ }, [
205
+ activeIndex,
206
+ rows,
207
+ virtualizer
208
+ ]);
209
+ return /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(Box_default(), {
210
+ ref: parentRef,
211
+ role: "listbox",
212
+ id: id,
213
+ "aria-label": ariaLabel,
214
+ sx: {
215
+ maxHeight,
216
+ overflowY: 'auto',
217
+ py: 0.5,
218
+ position: 'relative'
219
+ },
220
+ children: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(Box_default(), {
221
+ sx: {
222
+ height: virtualizer.getTotalSize(),
223
+ width: '100%',
224
+ position: 'relative'
225
+ },
226
+ children: virtualizer.getVirtualItems().map((vi)=>{
227
+ const row = rows[vi.index];
228
+ if (!row) return null;
229
+ const baseStyle = {
230
+ position: 'absolute',
231
+ top: 0,
232
+ left: 0,
233
+ width: '100%',
234
+ transform: `translateY(${vi.start}px)`
235
+ };
236
+ if ('header' === row.kind) {
237
+ const isCollapsible = row.groupKey === BYO_GROUP_KEY;
238
+ const isCollapsed = isCollapsible && (collapsedGroups?.has(row.groupKey) ?? false);
239
+ return /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("div", {
240
+ style: baseStyle,
241
+ children: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_GroupHeader_cjs_namespaceObject.GroupHeader, {
242
+ label: row.label,
243
+ hint: groupHint(row.groupKey, tagContext?.i18n),
244
+ count: row.count,
245
+ countLabel: countLabel(row.count, tagContext?.i18n),
246
+ dense: dense,
247
+ isFirst: row.isFirst,
248
+ leadingIcon: groupLeadingIcon(row.groupKey),
249
+ collapsible: isCollapsible,
250
+ collapsed: isCollapsed,
251
+ onToggle: isCollapsible ? ()=>onGroupToggle?.(row.groupKey) : void 0
252
+ })
253
+ }, row.key);
254
+ }
255
+ return /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("div", {
256
+ style: baseStyle,
257
+ children: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_ModelOptionRow_cjs_namespaceObject.ModelOptionRow, {
258
+ id: optionDomId(id, row.model.modelId),
259
+ model: row.model,
260
+ index: row.index,
261
+ active: row.index === activeIndex,
262
+ selected: row.model.modelId === selectedId,
263
+ onSelect: onSelect,
264
+ onActivate: setActiveIndex,
265
+ tagContext: tagContext,
266
+ tagVariants: tagVariants,
267
+ hideTagKinds: hideTagKinds,
268
+ renderMeta: renderRowMeta,
269
+ renderActions: renderRowActions,
270
+ dense: dense
271
+ })
272
+ }, row.key);
273
+ })
274
+ })
275
+ });
276
+ };
277
+ exports.GroupedOptionList = __webpack_exports__.GroupedOptionList;
278
+ exports.VirtualOptionList = __webpack_exports__.VirtualOptionList;
279
+ exports.optionDomId = __webpack_exports__.optionDomId;
280
+ for(var __rspack_i in __webpack_exports__)if (-1 === [
281
+ "GroupedOptionList",
282
+ "VirtualOptionList",
283
+ "optionDomId"
284
+ ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
285
+ Object.defineProperty(exports, '__esModule', {
286
+ value: true
287
+ });
@@ -0,0 +1,31 @@
1
+ import React from 'react';
2
+ import type { DiscoveryModel } from '../types';
3
+ import type { DeriveModelTagsContext } from '../utils';
4
+ export interface AnnotatedModel extends DiscoveryModel {
5
+ groupKey: string;
6
+ groupLabel: string;
7
+ }
8
+ export interface OptionListProps {
9
+ id: string;
10
+ options: AnnotatedModel[];
11
+ activeIndex: number;
12
+ setActiveIndex: (i: number) => void;
13
+ selectedId: string | null;
14
+ onSelect: (m: DiscoveryModel) => void;
15
+ tagContext?: DeriveModelTagsContext;
16
+ tagVariants?: Record<string, string>;
17
+ groupCounts?: Record<string, number>;
18
+ renderRowActions?: (m: DiscoveryModel) => React.ReactNode;
19
+ renderRowMeta?: (m: DiscoveryModel) => React.ReactNode;
20
+ dense?: boolean;
21
+ maxHeight?: number;
22
+ hideGroupHeaders?: boolean;
23
+ hideTagKinds?: readonly string[];
24
+ 'aria-label'?: string;
25
+ collapsedGroups?: ReadonlySet<string>;
26
+ onGroupToggle?: (groupKey: string) => void;
27
+ }
28
+ export declare function optionDomId(listboxId: string, modelId: string): string;
29
+ export declare const GroupedOptionList: React.FC<OptionListProps>;
30
+ export declare const VirtualOptionList: React.FC<OptionListProps>;
31
+ //# sourceMappingURL=OptionList.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OptionList.d.ts","sourceRoot":"","sources":["../../../../../src/material/components/ap-model-picker/primitives/OptionList.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAqC,MAAM,OAAO,CAAC;AAI1D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC/C,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;AAIvD,MAAM,WAAW,cAAe,SAAQ,cAAc;IACpD,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,cAAc,EAAE,CAAC;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IACpC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,QAAQ,EAAE,CAAC,CAAC,EAAE,cAAc,KAAK,IAAI,CAAC;IAMtC,UAAU,CAAC,EAAE,sBAAsB,CAAC;IAKpC,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAMrC,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAErC,gBAAgB,CAAC,EAAE,CAAC,CAAC,EAAE,cAAc,KAAK,KAAK,CAAC,SAAS,CAAC;IAE1D,aAAa,CAAC,EAAE,CAAC,CAAC,EAAE,cAAc,KAAK,KAAK,CAAC,SAAS,CAAC;IAEvD,KAAK,CAAC,EAAE,OAAO,CAAC;IAEhB,SAAS,CAAC,EAAE,MAAM,CAAC;IAMnB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAK3B,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAOjC,YAAY,CAAC,EAAE,MAAM,CAAC;IAMtB,eAAe,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAEtC,aAAa,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;CAC5C;AAwDD,wBAAgB,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAOtE;AAED,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAwFvD,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CA8JvD,CAAC"}
@@ -0,0 +1,235 @@
1
+ import { jsx, jsxs } from "react/jsx-runtime";
2
+ import ShieldOutlined from "@mui/icons-material/ShieldOutlined";
3
+ import Box from "@mui/material/Box";
4
+ import { useVirtualizer } from "@tanstack/react-virtual";
5
+ import react, { useEffect, useMemo, useRef } from "react";
6
+ import { GROUP_LABELS } from "../i18n.js";
7
+ import { GroupHeader } from "./GroupHeader.js";
8
+ import { DENSE_OPTION_HEIGHT, FULL_OPTION_HEIGHT, ModelOptionRow } from "./ModelOptionRow.js";
9
+ const BYO_GROUP_KEY = 'byo';
10
+ const DEFAULT_LIST_MAX_HEIGHT = 362;
11
+ function groupLeadingIcon(groupKey) {
12
+ if (groupKey === BYO_GROUP_KEY) return /*#__PURE__*/ jsx(ShieldOutlined, {
13
+ sx: {
14
+ fontSize: 14
15
+ }
16
+ });
17
+ return null;
18
+ }
19
+ const GROUP_HINT_DESCRIPTORS = {
20
+ recommended: GROUP_LABELS.recommendedHint,
21
+ preview: GROUP_LABELS.previewHint,
22
+ byo: GROUP_LABELS.byoHint,
23
+ more: GROUP_LABELS.moreHint,
24
+ deprecating: GROUP_LABELS.deprecatingHint
25
+ };
26
+ function groupHint(groupKey, i18n) {
27
+ const desc = GROUP_HINT_DESCRIPTORS[groupKey];
28
+ if (!desc) return;
29
+ return i18n ? i18n._(desc) : desc.message;
30
+ }
31
+ function countLabel(n, i18n) {
32
+ if (null == n || !i18n) return;
33
+ return 1 === n ? i18n._({
34
+ id: 'modelPicker.count.one',
35
+ message: '{n} model',
36
+ values: {
37
+ n
38
+ }
39
+ }) : i18n._({
40
+ id: 'modelPicker.count.many',
41
+ message: '{n} models',
42
+ values: {
43
+ n
44
+ }
45
+ });
46
+ }
47
+ function optionDomId(listboxId, modelId) {
48
+ const safe = modelId.replace(/[^A-Za-z0-9_-]/g, '-');
49
+ return `${listboxId}-opt-${safe}`;
50
+ }
51
+ const GroupedOptionList = ({ id, options, activeIndex, setActiveIndex, selectedId, onSelect, tagContext, tagVariants, groupCounts, renderRowActions, renderRowMeta, dense, maxHeight = DEFAULT_LIST_MAX_HEIGHT, hideGroupHeaders, hideTagKinds, collapsedGroups, onGroupToggle, 'aria-label': ariaLabel = 'Models' })=>{
52
+ let lastGroupKey;
53
+ let headerCount = 0;
54
+ const derivedCounts = useMemo(()=>{
55
+ if (groupCounts) return groupCounts;
56
+ const out = {};
57
+ for (const o of options)out[o.groupKey] = (out[o.groupKey] ?? 0) + 1;
58
+ return out;
59
+ }, [
60
+ groupCounts,
61
+ options
62
+ ]);
63
+ return /*#__PURE__*/ jsx(Box, {
64
+ role: "listbox",
65
+ id: id,
66
+ "aria-label": ariaLabel,
67
+ sx: {
68
+ maxHeight,
69
+ overflowY: 'auto',
70
+ py: 0.5
71
+ },
72
+ children: options.map((opt, i)=>{
73
+ const showHeader = !hideGroupHeaders && opt.groupKey !== lastGroupKey;
74
+ const isFirstHeader = showHeader && 0 === headerCount;
75
+ if (showHeader) headerCount += 1;
76
+ lastGroupKey = opt.groupKey;
77
+ const isCollapsible = opt.groupKey === BYO_GROUP_KEY;
78
+ const isCollapsed = isCollapsible && (collapsedGroups?.has(opt.groupKey) ?? false);
79
+ return /*#__PURE__*/ jsxs(react.Fragment, {
80
+ children: [
81
+ showHeader && /*#__PURE__*/ jsx(GroupHeader, {
82
+ label: opt.groupLabel,
83
+ hint: groupHint(opt.groupKey, tagContext?.i18n),
84
+ count: derivedCounts[opt.groupKey],
85
+ countLabel: countLabel(derivedCounts[opt.groupKey], tagContext?.i18n),
86
+ dense: dense,
87
+ isFirst: isFirstHeader,
88
+ leadingIcon: groupLeadingIcon(opt.groupKey),
89
+ collapsible: isCollapsible,
90
+ collapsed: isCollapsed,
91
+ onToggle: isCollapsible ? ()=>onGroupToggle?.(opt.groupKey) : void 0
92
+ }),
93
+ !isCollapsed && /*#__PURE__*/ jsx(ModelOptionRow, {
94
+ id: optionDomId(id, opt.modelId),
95
+ model: opt,
96
+ index: i,
97
+ active: i === activeIndex,
98
+ selected: opt.modelId === selectedId,
99
+ onSelect: onSelect,
100
+ onActivate: setActiveIndex,
101
+ tagContext: tagContext,
102
+ tagVariants: tagVariants,
103
+ hideTagKinds: hideTagKinds,
104
+ renderMeta: renderRowMeta,
105
+ renderActions: renderRowActions,
106
+ dense: dense
107
+ })
108
+ ]
109
+ }, opt.modelId);
110
+ })
111
+ });
112
+ };
113
+ const VirtualOptionList = ({ id, options, activeIndex, setActiveIndex, selectedId, onSelect, tagContext, tagVariants, groupCounts, renderRowActions, renderRowMeta, dense, maxHeight = DEFAULT_LIST_MAX_HEIGHT, hideGroupHeaders, hideTagKinds, collapsedGroups, onGroupToggle, 'aria-label': ariaLabel = 'Models' })=>{
114
+ const rows = useMemo(()=>{
115
+ const out = [];
116
+ let lastGroupKey;
117
+ let headerCount = 0;
118
+ const counts = groupCounts ?? {};
119
+ if (!groupCounts) for (const o of options)counts[o.groupKey] = (counts[o.groupKey] ?? 0) + 1;
120
+ options.forEach((opt, i)=>{
121
+ const collapsed = collapsedGroups?.has(opt.groupKey) ?? false;
122
+ if (!hideGroupHeaders && opt.groupKey !== lastGroupKey) {
123
+ out.push({
124
+ kind: 'header',
125
+ key: `h-${opt.groupKey}`,
126
+ groupKey: opt.groupKey,
127
+ label: opt.groupLabel,
128
+ isFirst: 0 === headerCount,
129
+ count: counts[opt.groupKey] ?? 0
130
+ });
131
+ headerCount += 1;
132
+ }
133
+ lastGroupKey = opt.groupKey;
134
+ if (!collapsed) out.push({
135
+ kind: 'option',
136
+ key: opt.modelId,
137
+ model: opt,
138
+ index: i
139
+ });
140
+ });
141
+ return out;
142
+ }, [
143
+ options,
144
+ hideGroupHeaders,
145
+ groupCounts,
146
+ collapsedGroups
147
+ ]);
148
+ const headerHeight = dense ? 32 : 48;
149
+ const optionHeight = dense ? DENSE_OPTION_HEIGHT : FULL_OPTION_HEIGHT;
150
+ const parentRef = useRef(null);
151
+ const virtualizer = useVirtualizer({
152
+ count: rows.length,
153
+ getScrollElement: ()=>parentRef.current,
154
+ estimateSize: (i)=>rows[i]?.kind === 'header' ? headerHeight : optionHeight,
155
+ overscan: 10
156
+ });
157
+ useEffect(()=>{
158
+ const rowIdx = rows.findIndex((r)=>'option' === r.kind && r.index === activeIndex);
159
+ if (rowIdx >= 0) virtualizer.scrollToIndex(rowIdx, {
160
+ align: 'auto'
161
+ });
162
+ }, [
163
+ activeIndex,
164
+ rows,
165
+ virtualizer
166
+ ]);
167
+ return /*#__PURE__*/ jsx(Box, {
168
+ ref: parentRef,
169
+ role: "listbox",
170
+ id: id,
171
+ "aria-label": ariaLabel,
172
+ sx: {
173
+ maxHeight,
174
+ overflowY: 'auto',
175
+ py: 0.5,
176
+ position: 'relative'
177
+ },
178
+ children: /*#__PURE__*/ jsx(Box, {
179
+ sx: {
180
+ height: virtualizer.getTotalSize(),
181
+ width: '100%',
182
+ position: 'relative'
183
+ },
184
+ children: virtualizer.getVirtualItems().map((vi)=>{
185
+ const row = rows[vi.index];
186
+ if (!row) return null;
187
+ const baseStyle = {
188
+ position: 'absolute',
189
+ top: 0,
190
+ left: 0,
191
+ width: '100%',
192
+ transform: `translateY(${vi.start}px)`
193
+ };
194
+ if ('header' === row.kind) {
195
+ const isCollapsible = row.groupKey === BYO_GROUP_KEY;
196
+ const isCollapsed = isCollapsible && (collapsedGroups?.has(row.groupKey) ?? false);
197
+ return /*#__PURE__*/ jsx("div", {
198
+ style: baseStyle,
199
+ children: /*#__PURE__*/ jsx(GroupHeader, {
200
+ label: row.label,
201
+ hint: groupHint(row.groupKey, tagContext?.i18n),
202
+ count: row.count,
203
+ countLabel: countLabel(row.count, tagContext?.i18n),
204
+ dense: dense,
205
+ isFirst: row.isFirst,
206
+ leadingIcon: groupLeadingIcon(row.groupKey),
207
+ collapsible: isCollapsible,
208
+ collapsed: isCollapsed,
209
+ onToggle: isCollapsible ? ()=>onGroupToggle?.(row.groupKey) : void 0
210
+ })
211
+ }, row.key);
212
+ }
213
+ return /*#__PURE__*/ jsx("div", {
214
+ style: baseStyle,
215
+ children: /*#__PURE__*/ jsx(ModelOptionRow, {
216
+ id: optionDomId(id, row.model.modelId),
217
+ model: row.model,
218
+ index: row.index,
219
+ active: row.index === activeIndex,
220
+ selected: row.model.modelId === selectedId,
221
+ onSelect: onSelect,
222
+ onActivate: setActiveIndex,
223
+ tagContext: tagContext,
224
+ tagVariants: tagVariants,
225
+ hideTagKinds: hideTagKinds,
226
+ renderMeta: renderRowMeta,
227
+ renderActions: renderRowActions,
228
+ dense: dense
229
+ })
230
+ }, row.key);
231
+ })
232
+ })
233
+ });
234
+ };
235
+ export { GroupedOptionList, VirtualOptionList, optionDomId };
@@ -0,0 +1,110 @@
1
+ "use strict";
2
+ var __webpack_require__ = {};
3
+ (()=>{
4
+ __webpack_require__.n = (module)=>{
5
+ var getter = module && module.__esModule ? ()=>module['default'] : ()=>module;
6
+ __webpack_require__.d(getter, {
7
+ a: getter
8
+ });
9
+ return getter;
10
+ };
11
+ })();
12
+ (()=>{
13
+ __webpack_require__.d = (exports1, definition)=>{
14
+ for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
15
+ enumerable: true,
16
+ get: definition[key]
17
+ });
18
+ };
19
+ })();
20
+ (()=>{
21
+ __webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
22
+ })();
23
+ (()=>{
24
+ __webpack_require__.r = (exports1)=>{
25
+ if ("u" > typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
26
+ value: 'Module'
27
+ });
28
+ Object.defineProperty(exports1, '__esModule', {
29
+ value: true
30
+ });
31
+ };
32
+ })();
33
+ var __webpack_exports__ = {};
34
+ __webpack_require__.r(__webpack_exports__);
35
+ __webpack_require__.d(__webpack_exports__, {
36
+ PickerPopup: ()=>PickerPopup
37
+ });
38
+ const jsx_runtime_namespaceObject = require("react/jsx-runtime");
39
+ const Box_namespaceObject = require("@mui/material/Box");
40
+ var Box_default = /*#__PURE__*/ __webpack_require__.n(Box_namespaceObject);
41
+ const ClickAwayListener_namespaceObject = require("@mui/material/ClickAwayListener");
42
+ var ClickAwayListener_default = /*#__PURE__*/ __webpack_require__.n(ClickAwayListener_namespaceObject);
43
+ const Paper_namespaceObject = require("@mui/material/Paper");
44
+ var Paper_default = /*#__PURE__*/ __webpack_require__.n(Paper_namespaceObject);
45
+ const Popper_namespaceObject = require("@mui/material/Popper");
46
+ var Popper_default = /*#__PURE__*/ __webpack_require__.n(Popper_namespaceObject);
47
+ const apollo_core_namespaceObject = require("@uipath/apollo-core");
48
+ const PickerPopup = ({ open, anchorEl, onClose, width, placement = 'bottom-start', zIndex = 1400, header, footer, className, 'data-testid': dataTestId, children })=>/*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(Popper_default(), {
49
+ open: open,
50
+ anchorEl: anchorEl,
51
+ placement: placement,
52
+ style: {
53
+ zIndex,
54
+ width: width ?? anchorEl?.clientWidth
55
+ },
56
+ modifiers: [
57
+ {
58
+ name: 'offset',
59
+ options: {
60
+ offset: [
61
+ 0,
62
+ 6
63
+ ]
64
+ }
65
+ }
66
+ ],
67
+ children: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(ClickAwayListener_default(), {
68
+ onClickAway: onClose,
69
+ children: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsxs)(Paper_default(), {
70
+ elevation: 0,
71
+ className: className,
72
+ "data-testid": dataTestId,
73
+ sx: {
74
+ borderRadius: '10px',
75
+ overflow: 'hidden',
76
+ border: '1px solid',
77
+ borderColor: `var(--color-border-de-emp, ${apollo_core_namespaceObject.Colors.ColorGray300})`,
78
+ backgroundColor: `var(--color-background-raised, ${apollo_core_namespaceObject.Colors.ColorWhite})`,
79
+ boxShadow: '0 12px 30px rgba(16, 24, 40, 0.10), 0 2px 6px rgba(16, 24, 40, 0.04)',
80
+ display: 'flex',
81
+ flexDirection: 'column'
82
+ },
83
+ children: [
84
+ header,
85
+ /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(Box_default(), {
86
+ sx: {
87
+ flex: 1,
88
+ minHeight: 0
89
+ },
90
+ children: children
91
+ }),
92
+ footer && /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(Box_default(), {
93
+ sx: {
94
+ borderTop: '1px solid',
95
+ borderColor: `var(--color-border-de-emp, ${apollo_core_namespaceObject.Colors.ColorGray300})`,
96
+ backgroundColor: `var(--color-background-raised, ${apollo_core_namespaceObject.Colors.ColorWhite})`
97
+ },
98
+ children: footer
99
+ })
100
+ ]
101
+ })
102
+ })
103
+ });
104
+ exports.PickerPopup = __webpack_exports__.PickerPopup;
105
+ for(var __rspack_i in __webpack_exports__)if (-1 === [
106
+ "PickerPopup"
107
+ ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
108
+ Object.defineProperty(exports, '__esModule', {
109
+ value: true
110
+ });
@@ -0,0 +1,16 @@
1
+ import type React from 'react';
2
+ export interface PickerPopupProps {
3
+ open: boolean;
4
+ anchorEl: HTMLElement | null;
5
+ onClose: () => void;
6
+ width?: number | string;
7
+ placement?: 'bottom-start' | 'bottom-end' | 'top-start' | 'top-end';
8
+ zIndex?: number;
9
+ header?: React.ReactNode;
10
+ footer?: React.ReactNode;
11
+ className?: string;
12
+ 'data-testid'?: string;
13
+ children: React.ReactNode;
14
+ }
15
+ export declare const PickerPopup: React.FC<PickerPopupProps>;
16
+ //# sourceMappingURL=PickerPopup.d.ts.map