@uipath/apollo-react 5.2.0 → 6.1.0

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 (53) hide show
  1. package/dist/canvas/components/NodePropertyPanel/NodePropertyPanel.cjs +20 -3
  2. package/dist/canvas/components/NodePropertyPanel/NodePropertyPanel.d.ts +1 -1
  3. package/dist/canvas/components/NodePropertyPanel/NodePropertyPanel.d.ts.map +1 -1
  4. package/dist/canvas/components/NodePropertyPanel/NodePropertyPanel.js +20 -3
  5. package/dist/canvas/components/NodePropertyPanel/NodePropertyPanel.types.d.ts +3 -0
  6. package/dist/canvas/components/NodePropertyPanel/NodePropertyPanel.types.d.ts.map +1 -1
  7. package/dist/canvas/locales/de.cjs +1 -1
  8. package/dist/canvas/locales/de.d.ts.map +1 -1
  9. package/dist/canvas/locales/de.js +1 -1
  10. package/dist/canvas/locales/es-MX.cjs +1 -1
  11. package/dist/canvas/locales/es-MX.d.ts.map +1 -1
  12. package/dist/canvas/locales/es-MX.js +1 -1
  13. package/dist/canvas/locales/es.cjs +1 -1
  14. package/dist/canvas/locales/es.d.ts.map +1 -1
  15. package/dist/canvas/locales/es.js +1 -1
  16. package/dist/canvas/locales/fr.cjs +1 -1
  17. package/dist/canvas/locales/fr.d.ts.map +1 -1
  18. package/dist/canvas/locales/fr.js +1 -1
  19. package/dist/canvas/locales/ko.cjs +1 -1
  20. package/dist/canvas/locales/ko.d.ts.map +1 -1
  21. package/dist/canvas/locales/ko.js +1 -1
  22. package/dist/canvas/locales/tr.cjs +1 -1
  23. package/dist/canvas/locales/tr.d.ts.map +1 -1
  24. package/dist/canvas/locales/tr.js +1 -1
  25. package/dist/canvas/locales/zh-CN.cjs +1 -1
  26. package/dist/canvas/locales/zh-CN.d.ts.map +1 -1
  27. package/dist/canvas/locales/zh-CN.js +1 -1
  28. package/dist/canvas/locales/zh-TW.cjs +1 -1
  29. package/dist/canvas/locales/zh-TW.d.ts.map +1 -1
  30. package/dist/canvas/locales/zh-TW.js +1 -1
  31. package/dist/canvas/styles/tailwind.canvas.css +1 -1
  32. package/dist/material/components/ap-model-picker/ModelPicker.cjs +65 -21
  33. package/dist/material/components/ap-model-picker/ModelPicker.d.ts +3 -3
  34. package/dist/material/components/ap-model-picker/ModelPicker.d.ts.map +1 -1
  35. package/dist/material/components/ap-model-picker/ModelPicker.js +66 -22
  36. package/dist/material/components/ap-model-picker/index.cjs +7 -1
  37. package/dist/material/components/ap-model-picker/index.d.ts +1 -1
  38. package/dist/material/components/ap-model-picker/index.d.ts.map +1 -1
  39. package/dist/material/components/ap-model-picker/index.js +2 -2
  40. package/dist/material/components/ap-model-picker/types.d.ts +1 -0
  41. package/dist/material/components/ap-model-picker/types.d.ts.map +1 -1
  42. package/dist/material/components/ap-model-picker/useDiscoveryModels.cjs +6 -3
  43. package/dist/material/components/ap-model-picker/useDiscoveryModels.d.ts +1 -0
  44. package/dist/material/components/ap-model-picker/useDiscoveryModels.d.ts.map +1 -1
  45. package/dist/material/components/ap-model-picker/useDiscoveryModels.js +3 -3
  46. package/dist/material/components/ap-model-picker/usePlatformAccess.cjs +132 -4
  47. package/dist/material/components/ap-model-picker/usePlatformAccess.d.ts +17 -1
  48. package/dist/material/components/ap-model-picker/usePlatformAccess.d.ts.map +1 -1
  49. package/dist/material/components/ap-model-picker/usePlatformAccess.js +126 -4
  50. package/dist/material/components/ap-model-picker/utils.cjs +7 -1
  51. package/dist/material/components/ap-model-picker/utils.d.ts.map +1 -1
  52. package/dist/material/components/ap-model-picker/utils.js +7 -1
  53. package/package.json +2 -2
@@ -58,9 +58,10 @@ const PickerSearchInput_cjs_namespaceObject = require("./primitives/PickerSearch
58
58
  const PickerTrigger_cjs_namespaceObject = require("./primitives/PickerTrigger.cjs");
59
59
  const external_useModelPickerState_cjs_namespaceObject = require("./useModelPickerState.cjs");
60
60
  const external_usePlatformAccess_cjs_namespaceObject = require("./usePlatformAccess.cjs");
61
+ const EMPTY_MODELS = [];
61
62
  const REQUIRED_INDICATOR = '*';
62
63
  const AUTO_VIRTUALIZE_THRESHOLD = 120;
63
- const ModelPicker = /*#__PURE__*/ external_react_default().forwardRef(({ models, value, onChange, label, required, placeholder, disabled, invalid, errorText, variant = 'searchable', groupBy = "subscription", allowGroupingChange = true, homeRegion, recommendedModelIds, previewModelIds, filter, badgesFor, customTagsFor, customTagVariants, canManageByo, onUseCustomModel, requestContext, enableFolders = false, folders, folder = null, onFolderChange, allFoldersLabel, loading, error, showGroupHeaders = true, popupContainer, disablePortal, openLinksInNewTab, onDeleteModel, slots }, forwardedRef)=>{
64
+ const ModelPicker = /*#__PURE__*/ external_react_default().forwardRef(({ models, value, onChange, label, required, placeholder, disabled, invalid, errorText, variant = 'searchable', groupBy = "subscription", allowGroupingChange = true, homeRegion, recommendedModelIds, previewModelIds, filter, badgesFor, customTagsFor, customTagVariants, canManageByo, onUseCustomModel, requestContext, enableFolders = false, folders, folder: folderProp, onFolderChange, allFoldersLabel, loading, error, showGroupHeaders = true, popupContainer, disablePortal, onDeleteModel, slots, testId }, forwardedRef)=>{
64
65
  const { _ } = (0, index_cjs_namespaceObject.useSafeLingui)();
65
66
  const i18n = external_react_default().useMemo(()=>({
66
67
  _
@@ -76,8 +77,52 @@ const ModelPicker = /*#__PURE__*/ external_react_default().forwardRef(({ models,
76
77
  message: 'Select a model'
77
78
  });
78
79
  const initiallyCollapsedGroups = external_react_default().useMemo(()=>[], []);
80
+ const [internalFolder, setInternalFolder] = external_react_default().useState(null);
81
+ const folderIsControlled = void 0 !== folderProp;
82
+ const folder = folderIsControlled ? folderProp : internalFolder;
83
+ const handleFolderChange = external_react_default().useCallback((next)=>{
84
+ if (!folderIsControlled) setInternalFolder(next);
85
+ onFolderChange?.(next);
86
+ }, [
87
+ folderIsControlled,
88
+ onFolderChange
89
+ ]);
90
+ const selfFetchCtx = !models && requestContext ? requestContext : null;
91
+ const { models: fetchedModels, loading: discoveryLoading, error: discoveryError, refetch: refetchDiscovery } = (0, external_usePlatformAccess_cjs_namespaceObject.usePlatformDiscoveryModels)(selfFetchCtx, folder ?? null);
92
+ const catalog = models ?? fetchedModels ?? EMPTY_MODELS;
93
+ const effectiveLoading = (loading ?? false) || discoveryLoading;
94
+ const effectiveError = error ?? discoveryError;
95
+ const handleDeleteModel = external_react_default().useMemo(()=>{
96
+ if (!onDeleteModel) return;
97
+ if (!selfFetchCtx) return onDeleteModel;
98
+ return async (m)=>{
99
+ await onDeleteModel(m);
100
+ refetchDiscovery();
101
+ };
102
+ }, [
103
+ onDeleteModel,
104
+ selfFetchCtx,
105
+ refetchDiscovery
106
+ ]);
107
+ const connectionNames = (0, external_usePlatformAccess_cjs_namespaceObject.useByoConnectionNames)(catalog, requestContext ?? null);
108
+ const effectiveModels = external_react_default().useMemo(()=>{
109
+ const allowed = catalog.filter((m)=>!m.isBlockedByPolicy);
110
+ if (0 === connectionNames.size) return allowed;
111
+ return allowed.map((m)=>{
112
+ if (m.byoConnectionLabel) return m;
113
+ const id = m.byomDetails?.integrationServiceConnectionId;
114
+ const name = id ? connectionNames.get(id) : void 0;
115
+ return name ? {
116
+ ...m,
117
+ byoConnectionLabel: name
118
+ } : m;
119
+ });
120
+ }, [
121
+ catalog,
122
+ connectionNames
123
+ ]);
79
124
  const state = (0, external_useModelPickerState_cjs_namespaceObject.useModelPickerState)({
80
- models,
125
+ models: effectiveModels,
81
126
  value,
82
127
  onChange,
83
128
  groupBy,
@@ -123,13 +168,11 @@ const ModelPicker = /*#__PURE__*/ external_react_default().forwardRef(({ models,
123
168
  ...link,
124
169
  folderNumericId: selectedFolderNumericId
125
170
  });
126
- if (openLinksInNewTab) external_usePlatformAccess_cjs_namespaceObject.platformNavigation.openInNewTab(url);
127
- else external_usePlatformAccess_cjs_namespaceObject.platformNavigation.assign(url);
171
+ external_usePlatformAccess_cjs_namespaceObject.platformNavigation.openInNewTab(url);
128
172
  };
129
173
  }, [
130
174
  requestContext,
131
- selectedFolderNumericId,
132
- openLinksInNewTab
175
+ selectedFolderNumericId
133
176
  ]);
134
177
  external_react_default().useEffect(()=>{
135
178
  if ("u" < typeof process || 'production' === process.env['NODE_ENV'] || !effectiveFolders) return;
@@ -169,17 +212,17 @@ const ModelPicker = /*#__PURE__*/ external_react_default().forwardRef(({ models,
169
212
  intent: 'edit',
170
213
  configurationId: model.byomDetails?.byoConfigurationId
171
214
  }) : void 0;
172
- if (!onEdit && !onDeleteModel) return ()=>null;
215
+ if (!onEdit && !handleDeleteModel) return ()=>null;
173
216
  return (m)=>(0, ModelOptionRow_cjs_namespaceObject.defaultRowActions)(m, {
174
217
  i18n,
175
218
  onEdit,
176
- onDelete: onDeleteModel
219
+ onDelete: handleDeleteModel
177
220
  });
178
221
  }, [
179
222
  slots?.optionActions,
180
223
  effectiveCanManageByo,
181
224
  navigateToLlmConfigurations,
182
- onDeleteModel,
225
+ handleDeleteModel,
183
226
  i18n
184
227
  ]);
185
228
  const footerNode = external_react_default().useMemo(()=>{
@@ -205,6 +248,7 @@ const ModelPicker = /*#__PURE__*/ external_react_default().forwardRef(({ models,
205
248
  ]);
206
249
  return /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsxs)(Box_default(), {
207
250
  className: "apollo-model-picker",
251
+ "data-testid": testId,
208
252
  sx: {
209
253
  width: '100%',
210
254
  fontFamily: apollo_core_namespaceObject.FontFamily.FontNormal
@@ -240,17 +284,17 @@ const ModelPicker = /*#__PURE__*/ external_react_default().forwardRef(({ models,
240
284
  unknownValue: unknownValue,
241
285
  placeholder: resolvedPlaceholder,
242
286
  disabled: disabled,
243
- invalid: !!invalid || !!error || !!unknownValue,
287
+ invalid: !!invalid || !!effectiveError || !!unknownValue,
244
288
  required: required,
245
289
  open: open,
246
290
  controlsId: listboxId,
247
- describedById: errorText ?? error ? `${id}-error` : void 0,
291
+ describedById: errorText ?? effectiveError ? `${id}-error` : void 0,
248
292
  tagContext: tagContext,
249
293
  tagVariants: customTagVariants,
250
294
  extra: slots?.triggerExtra?.(selected),
251
295
  onClick: ()=>setOpen(!open)
252
296
  }),
253
- (errorText ?? error) && /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(Typography_default(), {
297
+ (errorText ?? effectiveError) && /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(Typography_default(), {
254
298
  id: `${id}-error`,
255
299
  variant: "caption",
256
300
  role: "alert",
@@ -260,7 +304,7 @@ const ModelPicker = /*#__PURE__*/ external_react_default().forwardRef(({ models,
260
304
  mt: 0.5,
261
305
  fontSize: 12
262
306
  },
263
- children: errorText ?? error?.message
307
+ children: errorText ?? effectiveError?.message
264
308
  }),
265
309
  /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsxs)(PickerPopup_cjs_namespaceObject.PickerPopup, {
266
310
  open: open,
@@ -281,10 +325,10 @@ const ModelPicker = /*#__PURE__*/ external_react_default().forwardRef(({ models,
281
325
  inputRef: searchRef,
282
326
  listboxId: listboxId,
283
327
  activeDescendantId: filtered[activeIndex] ? (0, OptionList_cjs_namespaceObject.optionDomId)(listboxId, filtered[activeIndex].modelId) : void 0,
284
- leading: slots?.searchLeading?.() ?? (effectiveFolders && effectiveFolders.length > 0 && onFolderChange ? /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(FolderSwitcher_cjs_namespaceObject.FolderSwitcher, {
328
+ leading: slots?.searchLeading?.() ?? (effectiveFolders && effectiveFolders.length > 0 && (onFolderChange || selfFetchCtx) ? /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(FolderSwitcher_cjs_namespaceObject.FolderSwitcher, {
285
329
  folders: effectiveFolders,
286
330
  value: folder ?? null,
287
- onChange: onFolderChange,
331
+ onChange: handleFolderChange,
288
332
  allFoldersLabel: allFoldersLabel
289
333
  }) : void 0),
290
334
  trailing: allowGroupingChange ? /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(GroupBySegmented, {
@@ -296,7 +340,7 @@ const ModelPicker = /*#__PURE__*/ external_react_default().forwardRef(({ models,
296
340
  }),
297
341
  footer: footerNode,
298
342
  children: [
299
- loading && /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(Box_default(), {
343
+ effectiveLoading && /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(Box_default(), {
300
344
  role: "status",
301
345
  "aria-live": "polite",
302
346
  "aria-label": _({
@@ -313,7 +357,7 @@ const ModelPicker = /*#__PURE__*/ external_react_default().forwardRef(({ models,
313
357
  size: 20
314
358
  })
315
359
  }),
316
- error && !loading && /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(Box_default(), {
360
+ effectiveError && !effectiveLoading && /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(Box_default(), {
317
361
  role: "alert",
318
362
  sx: {
319
363
  py: 2,
@@ -322,9 +366,9 @@ const ModelPicker = /*#__PURE__*/ external_react_default().forwardRef(({ models,
322
366
  color: `var(--color-error-text, ${apollo_core_namespaceObject.Colors.ColorRed700})`,
323
367
  fontSize: 13
324
368
  },
325
- children: error.message
369
+ children: effectiveError.message
326
370
  }),
327
- !loading && !error && 0 === filtered.length && /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(Box_default(), {
371
+ !effectiveLoading && !effectiveError && 0 === filtered.length && /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(Box_default(), {
328
372
  role: "status",
329
373
  "aria-live": "polite",
330
374
  sx: {
@@ -358,7 +402,7 @@ const ModelPicker = /*#__PURE__*/ external_react_default().forwardRef(({ models,
358
402
  whiteSpace: 'nowrap',
359
403
  border: 0
360
404
  },
361
- children: loading || error || !(filtered.length > 0) ? '' : 1 === filtered.length ? _({
405
+ children: effectiveLoading || effectiveError || !(filtered.length > 0) ? '' : 1 === filtered.length ? _({
362
406
  id: 'modelPicker.count.one',
363
407
  message: '{n} model',
364
408
  values: {
@@ -372,7 +416,7 @@ const ModelPicker = /*#__PURE__*/ external_react_default().forwardRef(({ models,
372
416
  }
373
417
  })
374
418
  }),
375
- !loading && !error && filtered.length > 0 && /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsxs)(jsx_runtime_namespaceObject.Fragment, {
419
+ !effectiveLoading && !effectiveError && filtered.length > 0 && /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsxs)(jsx_runtime_namespaceObject.Fragment, {
376
420
  children: [
377
421
  /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(List, {
378
422
  id: listboxId,
@@ -21,7 +21,7 @@ export interface ModelPickerSlots {
21
21
  optionActions?: (model: DiscoveryModel) => React.ReactNode;
22
22
  }
23
23
  export interface ModelPickerProps {
24
- models: DiscoveryModel[];
24
+ models?: DiscoveryModel[];
25
25
  value?: string | null;
26
26
  onChange?: ModelPickerChangeHandler;
27
27
  label?: string;
@@ -53,9 +53,9 @@ export interface ModelPickerProps {
53
53
  showGroupHeaders?: boolean;
54
54
  popupContainer?: PickerPopupProps['container'];
55
55
  disablePortal?: boolean;
56
- openLinksInNewTab?: boolean;
57
- onDeleteModel?: (model: DiscoveryModel) => void;
56
+ onDeleteModel?: (model: DiscoveryModel) => void | Promise<void>;
58
57
  slots?: ModelPickerSlots;
58
+ testId?: string;
59
59
  }
60
60
  export declare const ModelPicker: React.ForwardRefExoticComponent<ModelPickerProps & React.RefAttributes<HTMLButtonElement>>;
61
61
  //# sourceMappingURL=ModelPicker.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ModelPicker.d.ts","sourceRoot":"","sources":["../../../../src/material/components/ap-model-picker/ModelPicker.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ModelPicker.d.ts","sourceRoot":"","sources":["../../../../src/material/components/ap-model-picker/ModelPicker.tsx"],"names":[],"mappings":"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"}
@@ -14,10 +14,11 @@ import { PickerPopup } from "./primitives/PickerPopup.js";
14
14
  import { PickerSearchInput } from "./primitives/PickerSearchInput.js";
15
15
  import { PickerTrigger } from "./primitives/PickerTrigger.js";
16
16
  import { useModelPickerState } from "./useModelPickerState.js";
17
- import { buildLlmConfigurationsUrl, platformNavigation, useCanManageByo, useUserFolders } from "./usePlatformAccess.js";
17
+ import { buildLlmConfigurationsUrl, platformNavigation, useByoConnectionNames, useCanManageByo, usePlatformDiscoveryModels, useUserFolders } from "./usePlatformAccess.js";
18
+ const EMPTY_MODELS = [];
18
19
  const REQUIRED_INDICATOR = '*';
19
20
  const AUTO_VIRTUALIZE_THRESHOLD = 120;
20
- const ModelPicker = /*#__PURE__*/ react.forwardRef(({ models, value, onChange, label, required, placeholder, disabled, invalid, errorText, variant = 'searchable', groupBy = "subscription", allowGroupingChange = true, homeRegion, recommendedModelIds, previewModelIds, filter, badgesFor, customTagsFor, customTagVariants, canManageByo, onUseCustomModel, requestContext, enableFolders = false, folders, folder = null, onFolderChange, allFoldersLabel, loading, error, showGroupHeaders = true, popupContainer, disablePortal, openLinksInNewTab, onDeleteModel, slots }, forwardedRef)=>{
21
+ const ModelPicker = /*#__PURE__*/ react.forwardRef(({ models, value, onChange, label, required, placeholder, disabled, invalid, errorText, variant = 'searchable', groupBy = "subscription", allowGroupingChange = true, homeRegion, recommendedModelIds, previewModelIds, filter, badgesFor, customTagsFor, customTagVariants, canManageByo, onUseCustomModel, requestContext, enableFolders = false, folders, folder: folderProp, onFolderChange, allFoldersLabel, loading, error, showGroupHeaders = true, popupContainer, disablePortal, onDeleteModel, slots, testId }, forwardedRef)=>{
21
22
  const { _ } = useSafeLingui();
22
23
  const i18n = react.useMemo(()=>({
23
24
  _
@@ -33,8 +34,52 @@ const ModelPicker = /*#__PURE__*/ react.forwardRef(({ models, value, onChange, l
33
34
  message: 'Select a model'
34
35
  });
35
36
  const initiallyCollapsedGroups = react.useMemo(()=>[], []);
37
+ const [internalFolder, setInternalFolder] = react.useState(null);
38
+ const folderIsControlled = void 0 !== folderProp;
39
+ const folder = folderIsControlled ? folderProp : internalFolder;
40
+ const handleFolderChange = react.useCallback((next)=>{
41
+ if (!folderIsControlled) setInternalFolder(next);
42
+ onFolderChange?.(next);
43
+ }, [
44
+ folderIsControlled,
45
+ onFolderChange
46
+ ]);
47
+ const selfFetchCtx = !models && requestContext ? requestContext : null;
48
+ const { models: fetchedModels, loading: discoveryLoading, error: discoveryError, refetch: refetchDiscovery } = usePlatformDiscoveryModels(selfFetchCtx, folder ?? null);
49
+ const catalog = models ?? fetchedModels ?? EMPTY_MODELS;
50
+ const effectiveLoading = (loading ?? false) || discoveryLoading;
51
+ const effectiveError = error ?? discoveryError;
52
+ const handleDeleteModel = react.useMemo(()=>{
53
+ if (!onDeleteModel) return;
54
+ if (!selfFetchCtx) return onDeleteModel;
55
+ return async (m)=>{
56
+ await onDeleteModel(m);
57
+ refetchDiscovery();
58
+ };
59
+ }, [
60
+ onDeleteModel,
61
+ selfFetchCtx,
62
+ refetchDiscovery
63
+ ]);
64
+ const connectionNames = useByoConnectionNames(catalog, requestContext ?? null);
65
+ const effectiveModels = react.useMemo(()=>{
66
+ const allowed = catalog.filter((m)=>!m.isBlockedByPolicy);
67
+ if (0 === connectionNames.size) return allowed;
68
+ return allowed.map((m)=>{
69
+ if (m.byoConnectionLabel) return m;
70
+ const id = m.byomDetails?.integrationServiceConnectionId;
71
+ const name = id ? connectionNames.get(id) : void 0;
72
+ return name ? {
73
+ ...m,
74
+ byoConnectionLabel: name
75
+ } : m;
76
+ });
77
+ }, [
78
+ catalog,
79
+ connectionNames
80
+ ]);
36
81
  const state = useModelPickerState({
37
- models,
82
+ models: effectiveModels,
38
83
  value,
39
84
  onChange,
40
85
  groupBy,
@@ -80,13 +125,11 @@ const ModelPicker = /*#__PURE__*/ react.forwardRef(({ models, value, onChange, l
80
125
  ...link,
81
126
  folderNumericId: selectedFolderNumericId
82
127
  });
83
- if (openLinksInNewTab) platformNavigation.openInNewTab(url);
84
- else platformNavigation.assign(url);
128
+ platformNavigation.openInNewTab(url);
85
129
  };
86
130
  }, [
87
131
  requestContext,
88
- selectedFolderNumericId,
89
- openLinksInNewTab
132
+ selectedFolderNumericId
90
133
  ]);
91
134
  react.useEffect(()=>{
92
135
  if ("u" < typeof process || 'production' === process.env['NODE_ENV'] || !effectiveFolders) return;
@@ -126,17 +169,17 @@ const ModelPicker = /*#__PURE__*/ react.forwardRef(({ models, value, onChange, l
126
169
  intent: 'edit',
127
170
  configurationId: model.byomDetails?.byoConfigurationId
128
171
  }) : void 0;
129
- if (!onEdit && !onDeleteModel) return ()=>null;
172
+ if (!onEdit && !handleDeleteModel) return ()=>null;
130
173
  return (m)=>defaultRowActions(m, {
131
174
  i18n,
132
175
  onEdit,
133
- onDelete: onDeleteModel
176
+ onDelete: handleDeleteModel
134
177
  });
135
178
  }, [
136
179
  slots?.optionActions,
137
180
  effectiveCanManageByo,
138
181
  navigateToLlmConfigurations,
139
- onDeleteModel,
182
+ handleDeleteModel,
140
183
  i18n
141
184
  ]);
142
185
  const footerNode = react.useMemo(()=>{
@@ -162,6 +205,7 @@ const ModelPicker = /*#__PURE__*/ react.forwardRef(({ models, value, onChange, l
162
205
  ]);
163
206
  return /*#__PURE__*/ jsxs(Box, {
164
207
  className: "apollo-model-picker",
208
+ "data-testid": testId,
165
209
  sx: {
166
210
  width: '100%',
167
211
  fontFamily: FontFamily.FontNormal
@@ -197,17 +241,17 @@ const ModelPicker = /*#__PURE__*/ react.forwardRef(({ models, value, onChange, l
197
241
  unknownValue: unknownValue,
198
242
  placeholder: resolvedPlaceholder,
199
243
  disabled: disabled,
200
- invalid: !!invalid || !!error || !!unknownValue,
244
+ invalid: !!invalid || !!effectiveError || !!unknownValue,
201
245
  required: required,
202
246
  open: open,
203
247
  controlsId: listboxId,
204
- describedById: errorText ?? error ? `${id}-error` : void 0,
248
+ describedById: errorText ?? effectiveError ? `${id}-error` : void 0,
205
249
  tagContext: tagContext,
206
250
  tagVariants: customTagVariants,
207
251
  extra: slots?.triggerExtra?.(selected),
208
252
  onClick: ()=>setOpen(!open)
209
253
  }),
210
- (errorText ?? error) && /*#__PURE__*/ jsx(Typography, {
254
+ (errorText ?? effectiveError) && /*#__PURE__*/ jsx(Typography, {
211
255
  id: `${id}-error`,
212
256
  variant: "caption",
213
257
  role: "alert",
@@ -217,7 +261,7 @@ const ModelPicker = /*#__PURE__*/ react.forwardRef(({ models, value, onChange, l
217
261
  mt: 0.5,
218
262
  fontSize: 12
219
263
  },
220
- children: errorText ?? error?.message
264
+ children: errorText ?? effectiveError?.message
221
265
  }),
222
266
  /*#__PURE__*/ jsxs(PickerPopup, {
223
267
  open: open,
@@ -238,10 +282,10 @@ const ModelPicker = /*#__PURE__*/ react.forwardRef(({ models, value, onChange, l
238
282
  inputRef: searchRef,
239
283
  listboxId: listboxId,
240
284
  activeDescendantId: filtered[activeIndex] ? optionDomId(listboxId, filtered[activeIndex].modelId) : void 0,
241
- leading: slots?.searchLeading?.() ?? (effectiveFolders && effectiveFolders.length > 0 && onFolderChange ? /*#__PURE__*/ jsx(FolderSwitcher, {
285
+ leading: slots?.searchLeading?.() ?? (effectiveFolders && effectiveFolders.length > 0 && (onFolderChange || selfFetchCtx) ? /*#__PURE__*/ jsx(FolderSwitcher, {
242
286
  folders: effectiveFolders,
243
287
  value: folder ?? null,
244
- onChange: onFolderChange,
288
+ onChange: handleFolderChange,
245
289
  allFoldersLabel: allFoldersLabel
246
290
  }) : void 0),
247
291
  trailing: allowGroupingChange ? /*#__PURE__*/ jsx(GroupBySegmented, {
@@ -253,7 +297,7 @@ const ModelPicker = /*#__PURE__*/ react.forwardRef(({ models, value, onChange, l
253
297
  }),
254
298
  footer: footerNode,
255
299
  children: [
256
- loading && /*#__PURE__*/ jsx(Box, {
300
+ effectiveLoading && /*#__PURE__*/ jsx(Box, {
257
301
  role: "status",
258
302
  "aria-live": "polite",
259
303
  "aria-label": _({
@@ -270,7 +314,7 @@ const ModelPicker = /*#__PURE__*/ react.forwardRef(({ models, value, onChange, l
270
314
  size: 20
271
315
  })
272
316
  }),
273
- error && !loading && /*#__PURE__*/ jsx(Box, {
317
+ effectiveError && !effectiveLoading && /*#__PURE__*/ jsx(Box, {
274
318
  role: "alert",
275
319
  sx: {
276
320
  py: 2,
@@ -279,9 +323,9 @@ const ModelPicker = /*#__PURE__*/ react.forwardRef(({ models, value, onChange, l
279
323
  color: `var(--color-error-text, ${Colors.ColorRed700})`,
280
324
  fontSize: 13
281
325
  },
282
- children: error.message
326
+ children: effectiveError.message
283
327
  }),
284
- !loading && !error && 0 === filtered.length && /*#__PURE__*/ jsx(Box, {
328
+ !effectiveLoading && !effectiveError && 0 === filtered.length && /*#__PURE__*/ jsx(Box, {
285
329
  role: "status",
286
330
  "aria-live": "polite",
287
331
  sx: {
@@ -315,7 +359,7 @@ const ModelPicker = /*#__PURE__*/ react.forwardRef(({ models, value, onChange, l
315
359
  whiteSpace: 'nowrap',
316
360
  border: 0
317
361
  },
318
- children: loading || error || !(filtered.length > 0) ? '' : 1 === filtered.length ? _({
362
+ children: effectiveLoading || effectiveError || !(filtered.length > 0) ? '' : 1 === filtered.length ? _({
319
363
  id: 'modelPicker.count.one',
320
364
  message: '{n} model',
321
365
  values: {
@@ -329,7 +373,7 @@ const ModelPicker = /*#__PURE__*/ react.forwardRef(({ models, value, onChange, l
329
373
  }
330
374
  })
331
375
  }),
332
- !loading && !error && filtered.length > 0 && /*#__PURE__*/ jsxs(Fragment, {
376
+ !effectiveLoading && !effectiveError && filtered.length > 0 && /*#__PURE__*/ jsxs(Fragment, {
333
377
  children: [
334
378
  /*#__PURE__*/ jsx(List, {
335
379
  id: listboxId,
@@ -34,6 +34,7 @@ __webpack_require__.d(__webpack_exports__, {
34
34
  useCanManageByo: ()=>external_usePlatformAccess_cjs_namespaceObject.useCanManageByo,
35
35
  groupModels: ()=>external_utils_cjs_namespaceObject.groupModels,
36
36
  useModelPickerState: ()=>external_useModelPickerState_cjs_namespaceObject.useModelPickerState,
37
+ usePlatformDiscoveryModels: ()=>external_usePlatformAccess_cjs_namespaceObject.usePlatformDiscoveryModels,
37
38
  FolderSwitcher: ()=>FolderSwitcher_cjs_namespaceObject.FolderSwitcher,
38
39
  defaultCostTier: ()=>external_utils_cjs_namespaceObject.defaultCostTier,
39
40
  useUserFolders: ()=>external_usePlatformAccess_cjs_namespaceObject.useUserFolders,
@@ -45,7 +46,8 @@ __webpack_require__.d(__webpack_exports__, {
45
46
  useDiscoveryModels: ()=>external_useDiscoveryModels_cjs_namespaceObject.useDiscoveryModels,
46
47
  PickerPopup: ()=>PickerPopup_cjs_namespaceObject.PickerPopup,
47
48
  ModelPicker: ()=>external_ModelPicker_cjs_namespaceObject.ModelPicker,
48
- VirtualOptionList: ()=>OptionList_cjs_namespaceObject.VirtualOptionList
49
+ VirtualOptionList: ()=>OptionList_cjs_namespaceObject.VirtualOptionList,
50
+ useByoConnectionNames: ()=>external_usePlatformAccess_cjs_namespaceObject.useByoConnectionNames
49
51
  });
50
52
  const external_badges_cjs_namespaceObject = require("./badges.cjs");
51
53
  const external_ModelPicker_cjs_namespaceObject = require("./ModelPicker.cjs");
@@ -79,9 +81,11 @@ exports.deriveModelTags = __webpack_exports__.deriveModelTags;
79
81
  exports.filterModels = __webpack_exports__.filterModels;
80
82
  exports.getSubstitutionTarget = __webpack_exports__.getSubstitutionTarget;
81
83
  exports.groupModels = __webpack_exports__.groupModels;
84
+ exports.useByoConnectionNames = __webpack_exports__.useByoConnectionNames;
82
85
  exports.useCanManageByo = __webpack_exports__.useCanManageByo;
83
86
  exports.useDiscoveryModels = __webpack_exports__.useDiscoveryModels;
84
87
  exports.useModelPickerState = __webpack_exports__.useModelPickerState;
88
+ exports.usePlatformDiscoveryModels = __webpack_exports__.usePlatformDiscoveryModels;
85
89
  exports.useUserFolders = __webpack_exports__.useUserFolders;
86
90
  for(var __rspack_i in __webpack_exports__)if (-1 === [
87
91
  "ApModelPicker",
@@ -102,9 +106,11 @@ for(var __rspack_i in __webpack_exports__)if (-1 === [
102
106
  "filterModels",
103
107
  "getSubstitutionTarget",
104
108
  "groupModels",
109
+ "useByoConnectionNames",
105
110
  "useCanManageByo",
106
111
  "useDiscoveryModels",
107
112
  "useModelPickerState",
113
+ "usePlatformDiscoveryModels",
108
114
  "useUserFolders"
109
115
  ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
110
116
  Object.defineProperty(exports, '__esModule', {
@@ -25,7 +25,7 @@ export { useDiscoveryModels } from './useDiscoveryModels';
25
25
  export type { UseModelPickerStateOptions, UseModelPickerStateResult, } from './useModelPickerState';
26
26
  export { useModelPickerState } from './useModelPickerState';
27
27
  export type { PlatformRequestContext, PlatformToken, UseCanManageByoResult, UseUserFoldersResult, } from './usePlatformAccess';
28
- export { useCanManageByo, useUserFolders } from './usePlatformAccess';
28
+ export { useByoConnectionNames, useCanManageByo, usePlatformDiscoveryModels, useUserFolders, } from './usePlatformAccess';
29
29
  export type { DeriveModelTagsContext, GroupModelsContext, GroupStrategy, } from './utils';
30
30
  export { defaultCostTier, deriveModelTags, filterModels, getSubstitutionTarget, groupModels, } from './utils';
31
31
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/material/components/ap-model-picker/index.ts"],"names":[],"mappings":"AAGA,YAAY,EAAE,oBAAoB,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAErE,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAGxC,YAAY,EAAE,gBAAgB,EAAE,MAAM,QAAQ,CAAC;AAC/C,YAAY,EACV,wBAAwB,EACxB,gBAAgB,EAChB,sBAAsB,EACtB,gBAAgB,EAChB,kBAAkB,GACnB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,WAAW,EAAE,WAAW,IAAI,aAAa,EAAE,MAAM,eAAe,CAAC;AAC1E,YAAY,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAExD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,YAAY,EACV,oBAAoB,EACpB,mBAAmB,GACpB,MAAM,6BAA6B,CAAC;AAErC,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,YAAY,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,YAAY,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AACvE,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAChF,YAAY,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC/E,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC/E,YAAY,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,YAAY,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AAC7E,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,YAAY,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AACrE,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAE3D,YAAY,EACV,WAAW,EACX,QAAQ,EACR,kBAAkB,EAClB,cAAc,EACd,uBAAuB,EACvB,gBAAgB,EAChB,YAAY,EACZ,cAAc,EACd,UAAU,EACV,qBAAqB,EACrB,QAAQ,EACR,YAAY,EACZ,WAAW,EACX,cAAc,GACf,MAAM,SAAS,CAAC;AACjB,YAAY,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAErE,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,YAAY,EACV,0BAA0B,EAC1B,yBAAyB,GAC1B,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,YAAY,EACV,sBAAsB,EACtB,aAAa,EACb,qBAAqB,EACrB,oBAAoB,GACrB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACtE,YAAY,EACV,sBAAsB,EACtB,kBAAkB,EAClB,aAAa,GACd,MAAM,SAAS,CAAC;AAEjB,OAAO,EACL,eAAe,EACf,eAAe,EACf,YAAY,EACZ,qBAAqB,EACrB,WAAW,GACZ,MAAM,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/material/components/ap-model-picker/index.ts"],"names":[],"mappings":"AAGA,YAAY,EAAE,oBAAoB,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAErE,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAGxC,YAAY,EAAE,gBAAgB,EAAE,MAAM,QAAQ,CAAC;AAC/C,YAAY,EACV,wBAAwB,EACxB,gBAAgB,EAChB,sBAAsB,EACtB,gBAAgB,EAChB,kBAAkB,GACnB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,WAAW,EAAE,WAAW,IAAI,aAAa,EAAE,MAAM,eAAe,CAAC;AAC1E,YAAY,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAExD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,YAAY,EACV,oBAAoB,EACpB,mBAAmB,GACpB,MAAM,6BAA6B,CAAC;AAErC,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,YAAY,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,YAAY,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AACvE,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAChF,YAAY,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC/E,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC/E,YAAY,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,YAAY,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AAC7E,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,YAAY,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AACrE,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAE3D,YAAY,EACV,WAAW,EACX,QAAQ,EACR,kBAAkB,EAClB,cAAc,EACd,uBAAuB,EACvB,gBAAgB,EAChB,YAAY,EACZ,cAAc,EACd,UAAU,EACV,qBAAqB,EACrB,QAAQ,EACR,YAAY,EACZ,WAAW,EACX,cAAc,GACf,MAAM,SAAS,CAAC;AACjB,YAAY,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAErE,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,YAAY,EACV,0BAA0B,EAC1B,yBAAyB,GAC1B,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,YAAY,EACV,sBAAsB,EACtB,aAAa,EACb,qBAAqB,EACrB,oBAAoB,GACrB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,qBAAqB,EACrB,eAAe,EACf,0BAA0B,EAC1B,cAAc,GACf,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EACV,sBAAsB,EACtB,kBAAkB,EAClB,aAAa,GACd,MAAM,SAAS,CAAC;AAEjB,OAAO,EACL,eAAe,EACf,eAAe,EACf,YAAY,EACZ,qBAAqB,EACrB,WAAW,GACZ,MAAM,SAAS,CAAC"}
@@ -10,6 +10,6 @@ import { PickerSearchInput } from "./primitives/PickerSearchInput.js";
10
10
  import { PickerTrigger } from "./primitives/PickerTrigger.js";
11
11
  import { useDiscoveryModels } from "./useDiscoveryModels.js";
12
12
  import { useModelPickerState } from "./useModelPickerState.js";
13
- import { useCanManageByo, useUserFolders } from "./usePlatformAccess.js";
13
+ import { useByoConnectionNames, useCanManageByo, usePlatformDiscoveryModels, useUserFolders } from "./usePlatformAccess.js";
14
14
  import { defaultCostTier, deriveModelTags, filterModels, getSubstitutionTarget, groupModels } from "./utils.js";
15
- export { ModelPicker as ApModelPicker, FolderSwitcher, GroupHeader, GroupedOptionList, MODEL_BADGES, ModelOptionRow, ModelPicker, ModelTagChip, PickerPopup, PickerSearchInput, PickerTrigger, VirtualOptionList, defaultCostTier, defaultRowActions, deriveModelTags, filterModels, getSubstitutionTarget, groupModels, useCanManageByo, useDiscoveryModels, useModelPickerState, useUserFolders };
15
+ export { ModelPicker as ApModelPicker, FolderSwitcher, GroupHeader, GroupedOptionList, MODEL_BADGES, ModelOptionRow, ModelPicker, ModelTagChip, PickerPopup, PickerSearchInput, PickerTrigger, VirtualOptionList, defaultCostTier, defaultRowActions, deriveModelTags, filterModels, getSubstitutionTarget, groupModels, useByoConnectionNames, useCanManageByo, useDiscoveryModels, useModelPickerState, usePlatformDiscoveryModels, useUserFolders };
@@ -41,6 +41,7 @@ export interface DiscoveryModel {
41
41
  apiFlavor?: string;
42
42
  modelSubscriptionType?: ModelSubscriptionType;
43
43
  isRecommended?: boolean;
44
+ isBlockedByPolicy?: boolean;
44
45
  isPreview?: boolean;
45
46
  deprecationDetails?: DeprecationDetails | null;
46
47
  byomDetails?: ByomDetails | null;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/material/components/ap-model-picker/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/material/components/ap-model-picker/types.ts"],"names":[],"mappings":"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"}
@@ -24,7 +24,8 @@ var __webpack_require__ = {};
24
24
  var __webpack_exports__ = {};
25
25
  __webpack_require__.r(__webpack_exports__);
26
26
  __webpack_require__.d(__webpack_exports__, {
27
- useDiscoveryModels: ()=>useDiscoveryModels
27
+ useDiscoveryModels: ()=>useDiscoveryModels,
28
+ normalizeDiscoveryModels: ()=>normalizeDiscoveryModels
28
29
  });
29
30
  const external_react_namespaceObject = require("react");
30
31
  function useDiscoveryModels(ctx) {
@@ -63,7 +64,7 @@ function useDiscoveryModels(ctx) {
63
64
  if (!res.ok) throw new Error(`Discovery API ${res.status} ${res.statusText}`);
64
65
  const data = await res.json();
65
66
  const list = Array.isArray(data) ? data : data.models ?? [];
66
- if (!ctrl.signal.aborted) setModels(normalizeKeys(list));
67
+ if (!ctrl.signal.aborted) setModels(normalizeDiscoveryModels(list));
67
68
  } catch (err) {
68
69
  if (err?.name === 'AbortError') return;
69
70
  if (!ctrl.signal.aborted) setError(err instanceof Error ? err : new Error(String(err)));
@@ -101,11 +102,13 @@ function camelizeDeep(value) {
101
102
  for (const [k, v] of Object.entries(value))camel[k.charAt(0).toLowerCase() + k.slice(1)] = camelizeDeep(v);
102
103
  return camel;
103
104
  }
104
- function normalizeKeys(list) {
105
+ function normalizeDiscoveryModels(list) {
105
106
  return list.map((raw)=>camelizeDeep(raw));
106
107
  }
108
+ exports.normalizeDiscoveryModels = __webpack_exports__.normalizeDiscoveryModels;
107
109
  exports.useDiscoveryModels = __webpack_exports__.useDiscoveryModels;
108
110
  for(var __rspack_i in __webpack_exports__)if (-1 === [
111
+ "normalizeDiscoveryModels",
109
112
  "useDiscoveryModels"
110
113
  ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
111
114
  Object.defineProperty(exports, '__esModule', {
@@ -6,4 +6,5 @@ export interface UseDiscoveryModelsResult {
6
6
  refetch: () => void;
7
7
  }
8
8
  export declare function useDiscoveryModels(ctx: DiscoveryRequestContext | null): UseDiscoveryModelsResult;
9
+ export declare function normalizeDiscoveryModels(list: unknown[]): DiscoveryModel[];
9
10
  //# sourceMappingURL=useDiscoveryModels.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useDiscoveryModels.d.ts","sourceRoot":"","sources":["../../../../src/material/components/ap-model-picker/useDiscoveryModels.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,uBAAuB,EAAE,MAAM,SAAS,CAAC;AAEvE,MAAM,WAAW,wBAAwB;IACvC,MAAM,EAAE,cAAc,EAAE,CAAC;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAWD,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,uBAAuB,GAAG,IAAI,GAAG,wBAAwB,CA4EhG"}
1
+ {"version":3,"file":"useDiscoveryModels.d.ts","sourceRoot":"","sources":["../../../../src/material/components/ap-model-picker/useDiscoveryModels.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,uBAAuB,EAAE,MAAM,SAAS,CAAC;AAEvE,MAAM,WAAW,wBAAwB;IACvC,MAAM,EAAE,cAAc,EAAE,CAAC;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAWD,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,uBAAuB,GAAG,IAAI,GAAG,wBAAwB,CA4EhG;AAuBD,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,cAAc,EAAE,CAE1E"}
@@ -35,7 +35,7 @@ function useDiscoveryModels(ctx) {
35
35
  if (!res.ok) throw new Error(`Discovery API ${res.status} ${res.statusText}`);
36
36
  const data = await res.json();
37
37
  const list = Array.isArray(data) ? data : data.models ?? [];
38
- if (!ctrl.signal.aborted) setModels(normalizeKeys(list));
38
+ if (!ctrl.signal.aborted) setModels(normalizeDiscoveryModels(list));
39
39
  } catch (err) {
40
40
  if (err?.name === 'AbortError') return;
41
41
  if (!ctrl.signal.aborted) setError(err instanceof Error ? err : new Error(String(err)));
@@ -73,7 +73,7 @@ function camelizeDeep(value) {
73
73
  for (const [k, v] of Object.entries(value))camel[k.charAt(0).toLowerCase() + k.slice(1)] = camelizeDeep(v);
74
74
  return camel;
75
75
  }
76
- function normalizeKeys(list) {
76
+ function normalizeDiscoveryModels(list) {
77
77
  return list.map((raw)=>camelizeDeep(raw));
78
78
  }
79
- export { useDiscoveryModels };
79
+ export { normalizeDiscoveryModels, useDiscoveryModels };