@uipath/apollo-react 6.16.5 → 6.17.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 (26) hide show
  1. package/dist/material/components/ap-model-picker/ModelPicker.cjs +45 -12
  2. package/dist/material/components/ap-model-picker/ModelPicker.d.ts +1 -0
  3. package/dist/material/components/ap-model-picker/ModelPicker.d.ts.map +1 -1
  4. package/dist/material/components/ap-model-picker/ModelPicker.js +46 -13
  5. package/dist/material/components/ap-model-picker/index.cjs +27 -11
  6. package/dist/material/components/ap-model-picker/index.d.ts +4 -3
  7. package/dist/material/components/ap-model-picker/index.d.ts.map +1 -1
  8. package/dist/material/components/ap-model-picker/index.js +4 -3
  9. package/dist/material/components/ap-model-picker/loadMessages.cjs +79 -0
  10. package/dist/material/components/ap-model-picker/loadMessages.d.ts +23 -0
  11. package/dist/material/components/ap-model-picker/loadMessages.d.ts.map +1 -0
  12. package/dist/material/components/ap-model-picker/loadMessages.js +39 -0
  13. package/dist/material/components/ap-model-picker/types.d.ts +2 -0
  14. package/dist/material/components/ap-model-picker/types.d.ts.map +1 -1
  15. package/dist/material/components/ap-model-picker/useModelPickerState.cjs +6 -3
  16. package/dist/material/components/ap-model-picker/useModelPickerState.d.ts.map +1 -1
  17. package/dist/material/components/ap-model-picker/useModelPickerState.js +6 -3
  18. package/dist/material/components/ap-model-picker/usePlatformAccess.cjs +48 -11
  19. package/dist/material/components/ap-model-picker/usePlatformAccess.d.ts +6 -2
  20. package/dist/material/components/ap-model-picker/usePlatformAccess.d.ts.map +1 -1
  21. package/dist/material/components/ap-model-picker/usePlatformAccess.js +46 -12
  22. package/dist/material/components/ap-model-picker/utils.cjs +58 -9
  23. package/dist/material/components/ap-model-picker/utils.d.ts +2 -0
  24. package/dist/material/components/ap-model-picker/utils.d.ts.map +1 -1
  25. package/dist/material/components/ap-model-picker/utils.js +51 -8
  26. package/package.json +2 -2
@@ -71,10 +71,11 @@ const PickerSearchInput_cjs_namespaceObject = require("./primitives/PickerSearch
71
71
  const PickerTrigger_cjs_namespaceObject = require("./primitives/PickerTrigger.cjs");
72
72
  const external_useModelPickerState_cjs_namespaceObject = require("./useModelPickerState.cjs");
73
73
  const external_usePlatformAccess_cjs_namespaceObject = require("./usePlatformAccess.cjs");
74
+ const external_utils_cjs_namespaceObject = require("./utils.cjs");
74
75
  const EMPTY_MODELS = [];
75
76
  const REQUIRED_INDICATOR = '*';
76
77
  const AUTO_VIRTUALIZE_THRESHOLD = 120;
77
- 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)=>{
78
+ 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, onModelDeleted, slots, testId }, forwardedRef)=>{
78
79
  const { _ } = (0, index_cjs_namespaceObject.useSafeLingui)();
79
80
  const i18n = external_react_default().useMemo(()=>({
80
81
  _
@@ -104,26 +105,50 @@ const ModelPicker = /*#__PURE__*/ external_react_default().forwardRef(({ models,
104
105
  const { models: fetchedModels, loading: discoveryLoading, error: discoveryError, refetch: refetchDiscovery } = (0, external_usePlatformAccess_cjs_namespaceObject.usePlatformDiscoveryModels)(selfFetchCtx, folder ?? null);
105
106
  const catalog = models ?? fetchedModels ?? EMPTY_MODELS;
106
107
  const effectiveLoading = (loading ?? false) || discoveryLoading;
107
- const effectiveError = error ?? discoveryError;
108
+ const { deleteConfiguration } = (0, external_usePlatformAccess_cjs_namespaceObject.useDeleteByoConfiguration)(selfFetchCtx);
108
109
  const [pendingDelete, setPendingDelete] = external_react_default().useState(null);
110
+ const [deleteError, setDeleteError] = external_react_default().useState(null);
111
+ const canSelfDelete = !onDeleteModel && !!selfFetchCtx;
109
112
  const handleDeleteModel = external_react_default().useMemo(()=>{
110
- if (!onDeleteModel) return;
111
- return (m)=>setPendingDelete(m);
113
+ if (!onDeleteModel && !canSelfDelete) return;
114
+ return (m)=>{
115
+ setDeleteError(null);
116
+ setPendingDelete(m);
117
+ };
112
118
  }, [
113
- onDeleteModel
119
+ onDeleteModel,
120
+ canSelfDelete
114
121
  ]);
115
122
  const confirmPendingDelete = external_react_default().useCallback(async ()=>{
116
123
  const model = pendingDelete;
117
124
  setPendingDelete(null);
118
125
  if (!model) return;
119
- await onDeleteModel?.(model);
120
- if (selfFetchCtx) refetchDiscovery();
126
+ try {
127
+ if (onDeleteModel) await onDeleteModel(model);
128
+ else {
129
+ const configurationId = model.byomDetails?.byoConfigurationId;
130
+ if (!configurationId) throw new Error('This custom model has no configuration to delete.');
131
+ await deleteConfiguration(configurationId);
132
+ }
133
+ } catch (err) {
134
+ setDeleteError(err instanceof Error ? err : new Error(String(err)));
135
+ return;
136
+ }
137
+ try {
138
+ if (selfFetchCtx) await refetchDiscovery();
139
+ await onModelDeleted?.(model);
140
+ } catch (err) {
141
+ setDeleteError(err instanceof Error ? err : new Error(String(err)));
142
+ }
121
143
  }, [
122
144
  pendingDelete,
123
145
  onDeleteModel,
146
+ onModelDeleted,
147
+ deleteConfiguration,
124
148
  selfFetchCtx,
125
149
  refetchDiscovery
126
150
  ]);
151
+ const effectiveError = error ?? deleteError ?? discoveryError;
127
152
  const connectionNames = (0, external_usePlatformAccess_cjs_namespaceObject.useByoConnectionNames)(catalog, requestContext ?? null);
128
153
  const effectiveModels = external_react_default().useMemo(()=>{
129
154
  const allowed = catalog.filter((m)=>!m.isBlockedByPolicy);
@@ -163,7 +188,10 @@ const ModelPicker = /*#__PURE__*/ external_react_default().forwardRef(({ models,
163
188
  forwardedRef,
164
189
  triggerRef
165
190
  ]);
166
- const closePopup = external_react_default().useCallback(()=>setOpen(false), [
191
+ const closePopup = external_react_default().useCallback(()=>{
192
+ setOpen(false);
193
+ setDeleteError(null);
194
+ }, [
167
195
  setOpen
168
196
  ]);
169
197
  const slotCtx = external_react_default().useMemo(()=>({
@@ -204,16 +232,17 @@ const ModelPicker = /*#__PURE__*/ external_react_default().forwardRef(({ models,
204
232
  }, [
205
233
  effectiveFolders
206
234
  ]);
235
+ const homeGeography = (0, external_utils_cjs_namespaceObject.resolveHomeGeography)(homeRegion);
207
236
  const tagContext = external_react_default().useMemo(()=>({
208
237
  i18n,
209
- homeRegion,
238
+ homeRegion: homeGeography,
210
239
  recommendedModelIds,
211
240
  previewModelIds,
212
241
  badgesFor,
213
242
  customTagsFor
214
243
  }), [
215
244
  i18n,
216
- homeRegion,
245
+ homeGeography,
217
246
  recommendedModelIds,
218
247
  previewModelIds,
219
248
  badgesFor,
@@ -233,16 +262,20 @@ const ModelPicker = /*#__PURE__*/ external_react_default().forwardRef(({ models,
233
262
  configurationId: model.byomDetails?.byoConfigurationId
234
263
  }) : void 0;
235
264
  if (!onEdit && !handleDeleteModel) return ()=>null;
236
- return (m)=>(0, ModelOptionRow_cjs_namespaceObject.defaultRowActions)(m, {
265
+ return (m)=>{
266
+ const deletable = handleDeleteModel && (onDeleteModel || !!m.byomDetails?.byoConfigurationId);
267
+ return (0, ModelOptionRow_cjs_namespaceObject.defaultRowActions)(m, {
237
268
  i18n,
238
269
  onEdit,
239
- onDelete: handleDeleteModel
270
+ onDelete: deletable ? handleDeleteModel : void 0
240
271
  });
272
+ };
241
273
  }, [
242
274
  slots?.optionActions,
243
275
  effectiveCanManageByo,
244
276
  navigateToLlmConfigurations,
245
277
  handleDeleteModel,
278
+ onDeleteModel,
246
279
  i18n
247
280
  ]);
248
281
  const footerNode = external_react_default().useMemo(()=>{
@@ -54,6 +54,7 @@ export interface ModelPickerProps {
54
54
  popupContainer?: PickerPopupProps['container'];
55
55
  disablePortal?: boolean;
56
56
  onDeleteModel?: (model: DiscoveryModel) => void | Promise<void>;
57
+ onModelDeleted?: (model: DiscoveryModel) => void | Promise<void>;
57
58
  slots?: ModelPickerSlots;
58
59
  testId?: string;
59
60
  }
@@ -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":"AAYA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAE/C,OAAO,EAAkB,KAAK,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAGxF,OAAO,EAAe,KAAK,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAG9E,OAAO,KAAK,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAExD,OAAO,EAGL,KAAK,sBAAsB,EAO5B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAA0B,aAAa,EAAE,MAAM,SAAS,CAAC;AAKrE,MAAM,MAAM,kBAAkB,GAAG,YAAY,GAAG,aAAa,CAAC;AAS9D,MAAM,MAAM,wBAAwB,GAAG,CAAC,KAAK,EAAE,cAAc,KAAK,IAAI,CAAC;AAOvE,MAAM,WAAW,sBAAsB;IACrC,QAAQ,EAAE,cAAc,GAAG,IAAI,CAAC;IAChC,KAAK,EAAE,MAAM,IAAI,CAAC;CACnB;AAOD,MAAM,WAAW,gBAAgB;IAK/B,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,cAAc,GAAG,IAAI,KAAK,KAAK,CAAC,SAAS,CAAC;IASjE,WAAW,CAAC,EAAE,MAAM,KAAK,CAAC,SAAS,CAAC;IAMpC,aAAa,CAAC,EAAE,MAAM,KAAK,CAAC,SAAS,CAAC;IAQtC,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,sBAAsB,KAAK,KAAK,CAAC,SAAS,CAAC;IAW9D,WAAW,CAAC,EAAE,IAAI,GAAG,CAAC,CAAC,GAAG,EAAE,sBAAsB,KAAK,KAAK,CAAC,SAAS,CAAC,CAAC;IAKxE,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,KAAK,CAAC,SAAS,CAAC;IAOxD,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,KAAK,CAAC,SAAS,CAAC;CAC5D;AAED,MAAM,WAAW,gBAAgB;IAS/B,MAAM,CAAC,EAAE,cAAc,EAAE,CAAC;IAE1B,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAMtB,QAAQ,CAAC,EAAE,wBAAwB,CAAC;IAEpC,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,QAAQ,CAAC,EAAE,OAAO,CAAC;IAKnB,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAKlB,SAAS,CAAC,EAAE,MAAM,CAAC;IAOnB,OAAO,CAAC,EAAE,kBAAkB,CAAC;IAO7B,OAAO,CAAC,EAAE,aAAa,CAAC;IAKxB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAQ9B,UAAU,CAAC,EAAE,MAAM,CAAC;IASpB,mBAAmB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAKxC,eAAe,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAQpC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,OAAO,CAAC;IAU5C,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,SAAS,cAAc,EAAE,CAAC;IAMjE,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,SAAS,QAAQ,EAAE,CAAC;IAO/D,iBAAiB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAiB3C,YAAY,CAAC,EAAE,OAAO,CAAC;IAUvB,gBAAgB,CAAC,EAAE,MAAM,IAAI,CAAC;IAS9B,cAAc,CAAC,EAAE,sBAAsB,CAAC;IASxC,aAAa,CAAC,EAAE,OAAO,CAAC;IAQxB,OAAO,CAAC,EAAE,SAAS,oBAAoB,EAAE,CAAC;IAO1C,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAEvB,cAAc,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IAE/C,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB,OAAO,CAAC,EAAE,OAAO,CAAC;IAKlB,KAAK,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC;IAQrB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAO3B,cAAc,CAAC,EAAE,gBAAgB,CAAC,WAAW,CAAC,CAAC;IAO/C,aAAa,CAAC,EAAE,OAAO,CAAC;IAaxB,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAUhE,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjE,KAAK,CAAC,EAAE,gBAAgB,CAAC;IAEzB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAiBD,eAAO,MAAM,WAAW,4FA4qBvB,CAAC"}
@@ -21,11 +21,12 @@ import { PickerPopup } from "./primitives/PickerPopup.js";
21
21
  import { PickerSearchInput } from "./primitives/PickerSearchInput.js";
22
22
  import { PickerTrigger } from "./primitives/PickerTrigger.js";
23
23
  import { useModelPickerState } from "./useModelPickerState.js";
24
- import { buildLlmConfigurationsUrl, platformNavigation, useByoConnectionNames, useCanManageByo, usePlatformDiscoveryModels, useUserFolders } from "./usePlatformAccess.js";
24
+ import { buildLlmConfigurationsUrl, platformNavigation, useByoConnectionNames, useCanManageByo, useDeleteByoConfiguration, usePlatformDiscoveryModels, useUserFolders } from "./usePlatformAccess.js";
25
+ import { resolveHomeGeography } from "./utils.js";
25
26
  const EMPTY_MODELS = [];
26
27
  const REQUIRED_INDICATOR = '*';
27
28
  const AUTO_VIRTUALIZE_THRESHOLD = 120;
28
- 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)=>{
29
+ 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, onModelDeleted, slots, testId }, forwardedRef)=>{
29
30
  const { _ } = useSafeLingui();
30
31
  const i18n = react.useMemo(()=>({
31
32
  _
@@ -55,26 +56,50 @@ const ModelPicker = /*#__PURE__*/ react.forwardRef(({ models, value, onChange, l
55
56
  const { models: fetchedModels, loading: discoveryLoading, error: discoveryError, refetch: refetchDiscovery } = usePlatformDiscoveryModels(selfFetchCtx, folder ?? null);
56
57
  const catalog = models ?? fetchedModels ?? EMPTY_MODELS;
57
58
  const effectiveLoading = (loading ?? false) || discoveryLoading;
58
- const effectiveError = error ?? discoveryError;
59
+ const { deleteConfiguration } = useDeleteByoConfiguration(selfFetchCtx);
59
60
  const [pendingDelete, setPendingDelete] = react.useState(null);
61
+ const [deleteError, setDeleteError] = react.useState(null);
62
+ const canSelfDelete = !onDeleteModel && !!selfFetchCtx;
60
63
  const handleDeleteModel = react.useMemo(()=>{
61
- if (!onDeleteModel) return;
62
- return (m)=>setPendingDelete(m);
64
+ if (!onDeleteModel && !canSelfDelete) return;
65
+ return (m)=>{
66
+ setDeleteError(null);
67
+ setPendingDelete(m);
68
+ };
63
69
  }, [
64
- onDeleteModel
70
+ onDeleteModel,
71
+ canSelfDelete
65
72
  ]);
66
73
  const confirmPendingDelete = react.useCallback(async ()=>{
67
74
  const model = pendingDelete;
68
75
  setPendingDelete(null);
69
76
  if (!model) return;
70
- await onDeleteModel?.(model);
71
- if (selfFetchCtx) refetchDiscovery();
77
+ try {
78
+ if (onDeleteModel) await onDeleteModel(model);
79
+ else {
80
+ const configurationId = model.byomDetails?.byoConfigurationId;
81
+ if (!configurationId) throw new Error('This custom model has no configuration to delete.');
82
+ await deleteConfiguration(configurationId);
83
+ }
84
+ } catch (err) {
85
+ setDeleteError(err instanceof Error ? err : new Error(String(err)));
86
+ return;
87
+ }
88
+ try {
89
+ if (selfFetchCtx) await refetchDiscovery();
90
+ await onModelDeleted?.(model);
91
+ } catch (err) {
92
+ setDeleteError(err instanceof Error ? err : new Error(String(err)));
93
+ }
72
94
  }, [
73
95
  pendingDelete,
74
96
  onDeleteModel,
97
+ onModelDeleted,
98
+ deleteConfiguration,
75
99
  selfFetchCtx,
76
100
  refetchDiscovery
77
101
  ]);
102
+ const effectiveError = error ?? deleteError ?? discoveryError;
78
103
  const connectionNames = useByoConnectionNames(catalog, requestContext ?? null);
79
104
  const effectiveModels = react.useMemo(()=>{
80
105
  const allowed = catalog.filter((m)=>!m.isBlockedByPolicy);
@@ -114,7 +139,10 @@ const ModelPicker = /*#__PURE__*/ react.forwardRef(({ models, value, onChange, l
114
139
  forwardedRef,
115
140
  triggerRef
116
141
  ]);
117
- const closePopup = react.useCallback(()=>setOpen(false), [
142
+ const closePopup = react.useCallback(()=>{
143
+ setOpen(false);
144
+ setDeleteError(null);
145
+ }, [
118
146
  setOpen
119
147
  ]);
120
148
  const slotCtx = react.useMemo(()=>({
@@ -155,16 +183,17 @@ const ModelPicker = /*#__PURE__*/ react.forwardRef(({ models, value, onChange, l
155
183
  }, [
156
184
  effectiveFolders
157
185
  ]);
186
+ const homeGeography = resolveHomeGeography(homeRegion);
158
187
  const tagContext = react.useMemo(()=>({
159
188
  i18n,
160
- homeRegion,
189
+ homeRegion: homeGeography,
161
190
  recommendedModelIds,
162
191
  previewModelIds,
163
192
  badgesFor,
164
193
  customTagsFor
165
194
  }), [
166
195
  i18n,
167
- homeRegion,
196
+ homeGeography,
168
197
  recommendedModelIds,
169
198
  previewModelIds,
170
199
  badgesFor,
@@ -184,16 +213,20 @@ const ModelPicker = /*#__PURE__*/ react.forwardRef(({ models, value, onChange, l
184
213
  configurationId: model.byomDetails?.byoConfigurationId
185
214
  }) : void 0;
186
215
  if (!onEdit && !handleDeleteModel) return ()=>null;
187
- return (m)=>defaultRowActions(m, {
216
+ return (m)=>{
217
+ const deletable = handleDeleteModel && (onDeleteModel || !!m.byomDetails?.byoConfigurationId);
218
+ return defaultRowActions(m, {
188
219
  i18n,
189
220
  onEdit,
190
- onDelete: handleDeleteModel
221
+ onDelete: deletable ? handleDeleteModel : void 0
191
222
  });
223
+ };
192
224
  }, [
193
225
  slots?.optionActions,
194
226
  effectiveCanManageByo,
195
227
  navigateToLlmConfigurations,
196
228
  handleDeleteModel,
229
+ onDeleteModel,
197
230
  i18n
198
231
  ]);
199
232
  const footerNode = react.useMemo(()=>{
@@ -25,31 +25,37 @@ var __webpack_exports__ = {};
25
25
  __webpack_require__.r(__webpack_exports__);
26
26
  __webpack_require__.d(__webpack_exports__, {
27
27
  ModelTagChip: ()=>external_ModelTagChip_cjs_namespaceObject.ModelTagChip,
28
+ getSubstitutionTarget: ()=>external_utils_cjs_namespaceObject.getSubstitutionTarget,
29
+ deriveModelTags: ()=>external_utils_cjs_namespaceObject.deriveModelTags,
30
+ useModelPickerState: ()=>external_useModelPickerState_cjs_namespaceObject.useModelPickerState,
31
+ usePlatformDiscoveryModels: ()=>external_usePlatformAccess_cjs_namespaceObject.usePlatformDiscoveryModels,
32
+ groupModels: ()=>external_utils_cjs_namespaceObject.groupModels,
33
+ defaultCostTier: ()=>external_utils_cjs_namespaceObject.defaultCostTier,
34
+ useUserFolders: ()=>external_usePlatformAccess_cjs_namespaceObject.useUserFolders,
35
+ MODEL_PICKER_LOCALES: ()=>external_loadMessages_cjs_namespaceObject.MODEL_PICKER_LOCALES,
36
+ isTextGenerationModel: ()=>external_utils_cjs_namespaceObject.isTextGenerationModel,
37
+ GroupedOptionList: ()=>OptionList_cjs_namespaceObject.GroupedOptionList,
38
+ GroupHeader: ()=>GroupHeader_cjs_namespaceObject.GroupHeader,
39
+ useDiscoveryModels: ()=>external_useDiscoveryModels_cjs_namespaceObject.useDiscoveryModels,
40
+ loadModelPickerMessages: ()=>external_loadMessages_cjs_namespaceObject.loadModelPickerMessages,
41
+ ModelPicker: ()=>external_ModelPicker_cjs_namespaceObject.ModelPicker,
28
42
  PickerSearchInput: ()=>PickerSearchInput_cjs_namespaceObject.PickerSearchInput,
29
43
  defaultRowActions: ()=>ModelOptionRow_cjs_namespaceObject.defaultRowActions,
30
- deriveModelTags: ()=>external_utils_cjs_namespaceObject.deriveModelTags,
31
44
  filterModels: ()=>external_utils_cjs_namespaceObject.filterModels,
32
45
  ModelOptionRow: ()=>ModelOptionRow_cjs_namespaceObject.ModelOptionRow,
33
- getSubstitutionTarget: ()=>external_utils_cjs_namespaceObject.getSubstitutionTarget,
34
46
  useCanManageByo: ()=>external_usePlatformAccess_cjs_namespaceObject.useCanManageByo,
35
- groupModels: ()=>external_utils_cjs_namespaceObject.groupModels,
36
- useModelPickerState: ()=>external_useModelPickerState_cjs_namespaceObject.useModelPickerState,
37
- usePlatformDiscoveryModels: ()=>external_usePlatformAccess_cjs_namespaceObject.usePlatformDiscoveryModels,
38
47
  FolderSwitcher: ()=>FolderSwitcher_cjs_namespaceObject.FolderSwitcher,
39
- defaultCostTier: ()=>external_utils_cjs_namespaceObject.defaultCostTier,
40
- useUserFolders: ()=>external_usePlatformAccess_cjs_namespaceObject.useUserFolders,
41
48
  PickerTrigger: ()=>PickerTrigger_cjs_namespaceObject.PickerTrigger,
42
- GroupedOptionList: ()=>OptionList_cjs_namespaceObject.GroupedOptionList,
43
49
  ApModelPicker: ()=>external_ModelPicker_cjs_namespaceObject.ModelPicker,
44
- GroupHeader: ()=>GroupHeader_cjs_namespaceObject.GroupHeader,
45
50
  MODEL_BADGES: ()=>external_badges_cjs_namespaceObject.MODEL_BADGES,
46
- useDiscoveryModels: ()=>external_useDiscoveryModels_cjs_namespaceObject.useDiscoveryModels,
51
+ resolveModelPickerLocale: ()=>external_loadMessages_cjs_namespaceObject.resolveModelPickerLocale,
47
52
  PickerPopup: ()=>PickerPopup_cjs_namespaceObject.PickerPopup,
48
- ModelPicker: ()=>external_ModelPicker_cjs_namespaceObject.ModelPicker,
49
53
  VirtualOptionList: ()=>OptionList_cjs_namespaceObject.VirtualOptionList,
54
+ useDeleteByoConfiguration: ()=>external_usePlatformAccess_cjs_namespaceObject.useDeleteByoConfiguration,
50
55
  useByoConnectionNames: ()=>external_usePlatformAccess_cjs_namespaceObject.useByoConnectionNames
51
56
  });
52
57
  const external_badges_cjs_namespaceObject = require("./badges.cjs");
58
+ const external_loadMessages_cjs_namespaceObject = require("./loadMessages.cjs");
53
59
  const external_ModelPicker_cjs_namespaceObject = require("./ModelPicker.cjs");
54
60
  const external_ModelTagChip_cjs_namespaceObject = require("./ModelTagChip.cjs");
55
61
  const FolderSwitcher_cjs_namespaceObject = require("./primitives/FolderSwitcher.cjs");
@@ -68,6 +74,7 @@ exports.FolderSwitcher = __webpack_exports__.FolderSwitcher;
68
74
  exports.GroupHeader = __webpack_exports__.GroupHeader;
69
75
  exports.GroupedOptionList = __webpack_exports__.GroupedOptionList;
70
76
  exports.MODEL_BADGES = __webpack_exports__.MODEL_BADGES;
77
+ exports.MODEL_PICKER_LOCALES = __webpack_exports__.MODEL_PICKER_LOCALES;
71
78
  exports.ModelOptionRow = __webpack_exports__.ModelOptionRow;
72
79
  exports.ModelPicker = __webpack_exports__.ModelPicker;
73
80
  exports.ModelTagChip = __webpack_exports__.ModelTagChip;
@@ -81,8 +88,12 @@ exports.deriveModelTags = __webpack_exports__.deriveModelTags;
81
88
  exports.filterModels = __webpack_exports__.filterModels;
82
89
  exports.getSubstitutionTarget = __webpack_exports__.getSubstitutionTarget;
83
90
  exports.groupModels = __webpack_exports__.groupModels;
91
+ exports.isTextGenerationModel = __webpack_exports__.isTextGenerationModel;
92
+ exports.loadModelPickerMessages = __webpack_exports__.loadModelPickerMessages;
93
+ exports.resolveModelPickerLocale = __webpack_exports__.resolveModelPickerLocale;
84
94
  exports.useByoConnectionNames = __webpack_exports__.useByoConnectionNames;
85
95
  exports.useCanManageByo = __webpack_exports__.useCanManageByo;
96
+ exports.useDeleteByoConfiguration = __webpack_exports__.useDeleteByoConfiguration;
86
97
  exports.useDiscoveryModels = __webpack_exports__.useDiscoveryModels;
87
98
  exports.useModelPickerState = __webpack_exports__.useModelPickerState;
88
99
  exports.usePlatformDiscoveryModels = __webpack_exports__.usePlatformDiscoveryModels;
@@ -93,6 +104,7 @@ for(var __rspack_i in __webpack_exports__)if (-1 === [
93
104
  "GroupHeader",
94
105
  "GroupedOptionList",
95
106
  "MODEL_BADGES",
107
+ "MODEL_PICKER_LOCALES",
96
108
  "ModelOptionRow",
97
109
  "ModelPicker",
98
110
  "ModelTagChip",
@@ -106,8 +118,12 @@ for(var __rspack_i in __webpack_exports__)if (-1 === [
106
118
  "filterModels",
107
119
  "getSubstitutionTarget",
108
120
  "groupModels",
121
+ "isTextGenerationModel",
122
+ "loadModelPickerMessages",
123
+ "resolveModelPickerLocale",
109
124
  "useByoConnectionNames",
110
125
  "useCanManageByo",
126
+ "useDeleteByoConfiguration",
111
127
  "useDiscoveryModels",
112
128
  "useModelPickerState",
113
129
  "usePlatformDiscoveryModels",
@@ -1,6 +1,7 @@
1
1
  export type { ModelBadgeDefinition, ModelBadgeKind } from './badges';
2
2
  export { MODEL_BADGES } from './badges';
3
3
  export type { PickerTranslator } from './i18n';
4
+ export { loadModelPickerMessages, MODEL_PICKER_LOCALES, resolveModelPickerLocale, } from './loadMessages';
4
5
  export type { ModelPickerChangeHandler, ModelPickerProps, ModelPickerSlotContext, ModelPickerSlots, ModelPickerVariant, } from './ModelPicker';
5
6
  export { ModelPicker, ModelPicker as ApModelPicker } from './ModelPicker';
6
7
  export type { ModelTagChipProps } from './ModelTagChip';
@@ -24,8 +25,8 @@ export type { UseDiscoveryModelsResult } from './useDiscoveryModels';
24
25
  export { useDiscoveryModels } from './useDiscoveryModels';
25
26
  export type { UseModelPickerStateOptions, UseModelPickerStateResult, } from './useModelPickerState';
26
27
  export { useModelPickerState } from './useModelPickerState';
27
- export type { PlatformRequestContext, PlatformToken, UseCanManageByoResult, UseUserFoldersResult, } from './usePlatformAccess';
28
- export { useByoConnectionNames, useCanManageByo, usePlatformDiscoveryModels, useUserFolders, } from './usePlatformAccess';
28
+ export type { PlatformRequestContext, PlatformToken, UseCanManageByoResult, UseDeleteByoConfigurationResult, UseUserFoldersResult, } from './usePlatformAccess';
29
+ export { useByoConnectionNames, useCanManageByo, useDeleteByoConfiguration, usePlatformDiscoveryModels, useUserFolders, } from './usePlatformAccess';
29
30
  export type { DeriveModelTagsContext, GroupModelsContext, GroupStrategy, } from './utils';
30
- export { defaultCostTier, deriveModelTags, filterModels, getSubstitutionTarget, groupModels, } from './utils';
31
+ export { defaultCostTier, deriveModelTags, filterModels, getSubstitutionTarget, groupModels, isTextGenerationModel, } from './utils';
31
32
  //# 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,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"}
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;AAE/C,OAAO,EACL,uBAAuB,EACvB,oBAAoB,EACpB,wBAAwB,GACzB,MAAM,gBAAgB,CAAC;AACxB,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,+BAA+B,EAC/B,oBAAoB,GACrB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,qBAAqB,EACrB,eAAe,EACf,yBAAyB,EACzB,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,EACX,qBAAqB,GACtB,MAAM,SAAS,CAAC"}
@@ -1,4 +1,5 @@
1
1
  import { MODEL_BADGES } from "./badges.js";
2
+ import { MODEL_PICKER_LOCALES, loadModelPickerMessages, resolveModelPickerLocale } from "./loadMessages.js";
2
3
  import { ModelPicker } from "./ModelPicker.js";
3
4
  import { ModelTagChip } from "./ModelTagChip.js";
4
5
  import { FolderSwitcher } from "./primitives/FolderSwitcher.js";
@@ -10,6 +11,6 @@ import { PickerSearchInput } from "./primitives/PickerSearchInput.js";
10
11
  import { PickerTrigger } from "./primitives/PickerTrigger.js";
11
12
  import { useDiscoveryModels } from "./useDiscoveryModels.js";
12
13
  import { useModelPickerState } from "./useModelPickerState.js";
13
- import { useByoConnectionNames, useCanManageByo, usePlatformDiscoveryModels, useUserFolders } from "./usePlatformAccess.js";
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, useByoConnectionNames, useCanManageByo, useDiscoveryModels, useModelPickerState, usePlatformDiscoveryModels, useUserFolders };
14
+ import { useByoConnectionNames, useCanManageByo, useDeleteByoConfiguration, usePlatformDiscoveryModels, useUserFolders } from "./usePlatformAccess.js";
15
+ import { defaultCostTier, deriveModelTags, filterModels, getSubstitutionTarget, groupModels, isTextGenerationModel } from "./utils.js";
16
+ export { ModelPicker as ApModelPicker, FolderSwitcher, GroupHeader, GroupedOptionList, MODEL_BADGES, MODEL_PICKER_LOCALES, ModelOptionRow, ModelPicker, ModelTagChip, PickerPopup, PickerSearchInput, PickerTrigger, VirtualOptionList, defaultCostTier, defaultRowActions, deriveModelTags, filterModels, getSubstitutionTarget, groupModels, isTextGenerationModel, loadModelPickerMessages, resolveModelPickerLocale, useByoConnectionNames, useCanManageByo, useDeleteByoConfiguration, useDiscoveryModels, useModelPickerState, usePlatformDiscoveryModels, useUserFolders };
@@ -0,0 +1,79 @@
1
+ "use strict";
2
+ var __webpack_require__ = {};
3
+ (()=>{
4
+ __webpack_require__.d = (exports1, definition)=>{
5
+ for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
6
+ enumerable: true,
7
+ get: definition[key]
8
+ });
9
+ };
10
+ })();
11
+ (()=>{
12
+ __webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
13
+ })();
14
+ (()=>{
15
+ __webpack_require__.r = (exports1)=>{
16
+ if ("u" > typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
17
+ value: 'Module'
18
+ });
19
+ Object.defineProperty(exports1, '__esModule', {
20
+ value: true
21
+ });
22
+ };
23
+ })();
24
+ var __webpack_exports__ = {};
25
+ __webpack_require__.r(__webpack_exports__);
26
+ __webpack_require__.d(__webpack_exports__, {
27
+ MODEL_PICKER_LOCALES: ()=>MODEL_PICKER_LOCALES,
28
+ loadModelPickerMessages: ()=>loadModelPickerMessages,
29
+ resolveModelPickerLocale: ()=>resolveModelPickerLocale
30
+ });
31
+ const CATALOGS = {
32
+ de: ()=>import("./locales/de.cjs"),
33
+ en: ()=>import("./locales/en.cjs"),
34
+ es: ()=>import("./locales/es.cjs"),
35
+ 'es-MX': ()=>import("./locales/es-MX.cjs"),
36
+ fr: ()=>import("./locales/fr.cjs"),
37
+ ja: ()=>import("./locales/ja.cjs"),
38
+ ko: ()=>import("./locales/ko.cjs"),
39
+ pt: ()=>import("./locales/pt.cjs"),
40
+ 'pt-BR': ()=>import("./locales/pt-BR.cjs"),
41
+ ro: ()=>import("./locales/ro.cjs"),
42
+ ru: ()=>import("./locales/ru.cjs"),
43
+ tr: ()=>import("./locales/tr.cjs"),
44
+ 'zh-CN': ()=>import("./locales/zh-CN.cjs"),
45
+ 'zh-TW': ()=>import("./locales/zh-TW.cjs")
46
+ };
47
+ const MODEL_PICKER_LOCALES = Object.keys(CATALOGS);
48
+ function resolveModelPickerLocale(locale) {
49
+ const raw = locale?.trim().replace(/_/g, '-');
50
+ if (!raw) return;
51
+ const exact = MODEL_PICKER_LOCALES.find((tag)=>tag.toLowerCase() === raw.toLowerCase());
52
+ if (exact) return exact;
53
+ const base = raw.split('-')[0]?.toLowerCase();
54
+ return MODEL_PICKER_LOCALES.find((tag)=>tag.toLowerCase() === base);
55
+ }
56
+ async function loadModelPickerMessages(locale) {
57
+ const tag = resolveModelPickerLocale(locale) ?? 'en';
58
+ try {
59
+ return (await CATALOGS[tag]()).messages;
60
+ } catch {
61
+ if ('en' === tag) return {};
62
+ try {
63
+ return (await CATALOGS.en()).messages;
64
+ } catch {
65
+ return {};
66
+ }
67
+ }
68
+ }
69
+ exports.MODEL_PICKER_LOCALES = __webpack_exports__.MODEL_PICKER_LOCALES;
70
+ exports.loadModelPickerMessages = __webpack_exports__.loadModelPickerMessages;
71
+ exports.resolveModelPickerLocale = __webpack_exports__.resolveModelPickerLocale;
72
+ for(var __rspack_i in __webpack_exports__)if (-1 === [
73
+ "MODEL_PICKER_LOCALES",
74
+ "loadModelPickerMessages",
75
+ "resolveModelPickerLocale"
76
+ ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
77
+ Object.defineProperty(exports, '__esModule', {
78
+ value: true
79
+ });
@@ -0,0 +1,23 @@
1
+ import type { Messages } from '@lingui/core';
2
+ declare const CATALOGS: {
3
+ de: () => Promise<typeof import("./locales/de")>;
4
+ en: () => Promise<typeof import("./locales/en")>;
5
+ es: () => Promise<typeof import("./locales/es")>;
6
+ 'es-MX': () => Promise<typeof import("./locales/es-MX")>;
7
+ fr: () => Promise<typeof import("./locales/fr")>;
8
+ ja: () => Promise<typeof import("./locales/ja")>;
9
+ ko: () => Promise<typeof import("./locales/ko")>;
10
+ pt: () => Promise<typeof import("./locales/pt")>;
11
+ 'pt-BR': () => Promise<typeof import("./locales/pt-BR")>;
12
+ ro: () => Promise<typeof import("./locales/ro")>;
13
+ ru: () => Promise<typeof import("./locales/ru")>;
14
+ tr: () => Promise<typeof import("./locales/tr")>;
15
+ 'zh-CN': () => Promise<typeof import("./locales/zh-CN")>;
16
+ 'zh-TW': () => Promise<typeof import("./locales/zh-TW")>;
17
+ };
18
+ export type ModelPickerLocale = keyof typeof CATALOGS;
19
+ export declare const MODEL_PICKER_LOCALES: ModelPickerLocale[];
20
+ export declare function resolveModelPickerLocale(locale: string | undefined): ModelPickerLocale | undefined;
21
+ export declare function loadModelPickerMessages(locale: string | undefined): Promise<Messages>;
22
+ export {};
23
+ //# sourceMappingURL=loadMessages.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loadMessages.d.ts","sourceRoot":"","sources":["../../../../src/material/components/ap-model-picker/loadMessages.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAW7C,QAAA,MAAM,QAAQ;;;;;;;;;;;;;;;CAemD,CAAC;AAGlE,MAAM,MAAM,iBAAiB,GAAG,MAAM,OAAO,QAAQ,CAAC;AAGtD,eAAO,MAAM,oBAAoB,EAA4B,iBAAiB,EAAE,CAAC;AAUjF,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,MAAM,GAAG,SAAS,GACzB,iBAAiB,GAAG,SAAS,CAO/B;AAsBD,wBAAsB,uBAAuB,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC,QAAQ,CAAC,CAY3F"}
@@ -0,0 +1,39 @@
1
+ const CATALOGS = {
2
+ de: ()=>import("./locales/de.js"),
3
+ en: ()=>import("./locales/en.js"),
4
+ es: ()=>import("./locales/es.js"),
5
+ 'es-MX': ()=>import("./locales/es-MX.js"),
6
+ fr: ()=>import("./locales/fr.js"),
7
+ ja: ()=>import("./locales/ja.js"),
8
+ ko: ()=>import("./locales/ko.js"),
9
+ pt: ()=>import("./locales/pt.js"),
10
+ 'pt-BR': ()=>import("./locales/pt-BR.js"),
11
+ ro: ()=>import("./locales/ro.js"),
12
+ ru: ()=>import("./locales/ru.js"),
13
+ tr: ()=>import("./locales/tr.js"),
14
+ 'zh-CN': ()=>import("./locales/zh-CN.js"),
15
+ 'zh-TW': ()=>import("./locales/zh-TW.js")
16
+ };
17
+ const MODEL_PICKER_LOCALES = Object.keys(CATALOGS);
18
+ function resolveModelPickerLocale(locale) {
19
+ const raw = locale?.trim().replace(/_/g, '-');
20
+ if (!raw) return;
21
+ const exact = MODEL_PICKER_LOCALES.find((tag)=>tag.toLowerCase() === raw.toLowerCase());
22
+ if (exact) return exact;
23
+ const base = raw.split('-')[0]?.toLowerCase();
24
+ return MODEL_PICKER_LOCALES.find((tag)=>tag.toLowerCase() === base);
25
+ }
26
+ async function loadModelPickerMessages(locale) {
27
+ const tag = resolveModelPickerLocale(locale) ?? 'en';
28
+ try {
29
+ return (await CATALOGS[tag]()).messages;
30
+ } catch {
31
+ if ('en' === tag) return {};
32
+ try {
33
+ return (await CATALOGS.en()).messages;
34
+ } catch {
35
+ return {};
36
+ }
37
+ }
38
+ }
39
+ export { MODEL_PICKER_LOCALES, loadModelPickerMessages, resolveModelPickerLocale };
@@ -1,6 +1,7 @@
1
1
  export type ModelVendor = 'OpenAi' | 'AzureOpenAi' | 'AnthropicClaude' | 'AwsBedrock' | 'VertexAi' | 'Custom' | string;
2
2
  export type ModelSubscriptionType = 'UiPathOwned' | 'BYOMReplacedLikeForLike' | 'BYOMReplacedAlternative' | 'BYOMAdded' | string;
3
3
  export type ModelGeography = 'EU' | 'CA' | 'US' | 'SI' | 'JA' | 'AU' | 'IN' | 'UK' | 'CH' | 'UAE' | 'SK' | 'GLOBAL' | string;
4
+ export type ModelType = 'RequestResponse' | 'Realtime' | string;
4
5
  export interface DeprecationDetails {
5
6
  usageEndDate?: string;
6
7
  replacedBy?: string;
@@ -53,6 +54,7 @@ export interface DiscoveryModel {
53
54
  isRecommended?: boolean;
54
55
  isBlockedByPolicy?: boolean;
55
56
  isPreview?: boolean;
57
+ modelType?: ModelType;
56
58
  deprecationDetails?: DeprecationDetails | null;
57
59
  byomDetails?: ByomDetails | null;
58
60
  modelDetails?: ModelDetails;
@@ -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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"}
@@ -72,10 +72,13 @@ function useModelPickerState(opts) {
72
72
  }, [
73
73
  annotated
74
74
  ]);
75
- const selected = (0, external_react_namespaceObject.useMemo)(()=>annotated.find((m)=>m.modelId === value) ?? models.find((m)=>m.modelId === value) ?? null, [
75
+ const matchesValue = (0, external_react_namespaceObject.useCallback)((m)=>m.modelId === value || m.modelName === value, [
76
+ value
77
+ ]);
78
+ const selected = (0, external_react_namespaceObject.useMemo)(()=>annotated.find(matchesValue) ?? models.find(matchesValue) ?? null, [
76
79
  annotated,
77
80
  models,
78
- value
81
+ matchesValue
79
82
  ]);
80
83
  const unknownValue = (0, external_react_namespaceObject.useMemo)(()=>{
81
84
  if (!value) return null;
@@ -101,7 +104,7 @@ function useModelPickerState(opts) {
101
104
  }, []);
102
105
  (0, external_react_namespaceObject.useEffect)(()=>{
103
106
  if (open) {
104
- const sel = filtered.findIndex((m)=>m.modelId === value);
107
+ const sel = filtered.findIndex(matchesValue);
105
108
  setActiveIndex(sel >= 0 ? sel : 0);
106
109
  requestAnimationFrame(()=>searchRef.current?.focus());
107
110
  } else setQuery('');
@@ -1 +1 @@
1
- {"version":3,"file":"useModelPickerState.d.ts","sourceRoot":"","sources":["../../../../src/material/components/ap-model-picker/useModelPickerState.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,QAAQ,CAAC;AAE/C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAC9C,OAAO,EAAgB,KAAK,aAAa,EAAe,MAAM,SAAS,CAAC;AAExE,MAAM,WAAW,0BAA0B;IACzC,MAAM,EAAE,cAAc,EAAE,CAAC;IACzB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAMtB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,IAAI,CAAC;IAM3C,OAAO,CAAC,EAAE,aAAa,CAAC;IAMxB,mBAAmB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACxC,eAAe,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAMpC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,OAAO,CAAC;IAO5C,wBAAwB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAM7C,IAAI,CAAC,EAAE,gBAAgB,CAAC;CACzB;AAED,MAAM,WAAW,yBAAyB;IACxC,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAEjC,OAAO,EAAE,aAAa,CAAC;IACvB,UAAU,EAAE,CAAC,IAAI,EAAE,aAAa,KAAK,IAAI,CAAC;IAM1C,aAAa,EAAE,cAAc,EAAE,CAAC;IAEhC,SAAS,EAAE,cAAc,EAAE,CAAC;IAE5B,QAAQ,EAAE,cAAc,EAAE,CAAC;IAE3B,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAMpC,eAAe,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAErC,WAAW,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IAExC,QAAQ,EAAE,cAAc,GAAG,IAAI,CAAC;IAUhC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAEpC,eAAe,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,aAAa,KAAK,IAAI,CAAC;IAElD,MAAM,EAAE,CAAC,CAAC,EAAE,cAAc,KAAK,IAAI,CAAC;IAEpC,EAAE,EAAE,MAAM,CAAC;IAEX,UAAU,EAAE,KAAK,CAAC,SAAS,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAAC;IAEtD,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAAC;CACrD;AAeD,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,0BAA0B,GAAG,yBAAyB,CA8K/F"}
1
+ {"version":3,"file":"useModelPickerState.d.ts","sourceRoot":"","sources":["../../../../src/material/components/ap-model-picker/useModelPickerState.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,QAAQ,CAAC;AAE/C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAC9C,OAAO,EAAgB,KAAK,aAAa,EAAe,MAAM,SAAS,CAAC;AAExE,MAAM,WAAW,0BAA0B;IACzC,MAAM,EAAE,cAAc,EAAE,CAAC;IACzB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAMtB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,IAAI,CAAC;IAM3C,OAAO,CAAC,EAAE,aAAa,CAAC;IAMxB,mBAAmB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACxC,eAAe,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAMpC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,OAAO,CAAC;IAO5C,wBAAwB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAM7C,IAAI,CAAC,EAAE,gBAAgB,CAAC;CACzB;AAED,MAAM,WAAW,yBAAyB;IACxC,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAEjC,OAAO,EAAE,aAAa,CAAC;IACvB,UAAU,EAAE,CAAC,IAAI,EAAE,aAAa,KAAK,IAAI,CAAC;IAM1C,aAAa,EAAE,cAAc,EAAE,CAAC;IAEhC,SAAS,EAAE,cAAc,EAAE,CAAC;IAE5B,QAAQ,EAAE,cAAc,EAAE,CAAC;IAE3B,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAMpC,eAAe,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAErC,WAAW,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IAExC,QAAQ,EAAE,cAAc,GAAG,IAAI,CAAC;IAUhC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAEpC,eAAe,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,aAAa,KAAK,IAAI,CAAC;IAElD,MAAM,EAAE,CAAC,CAAC,EAAE,cAAc,KAAK,IAAI,CAAC;IAEpC,EAAE,EAAE,MAAM,CAAC;IAEX,UAAU,EAAE,KAAK,CAAC,SAAS,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAAC;IAEtD,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAAC;CACrD;AAeD,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,0BAA0B,GAAG,yBAAyB,CAoL/F"}
@@ -44,10 +44,13 @@ function useModelPickerState(opts) {
44
44
  }, [
45
45
  annotated
46
46
  ]);
47
- const selected = useMemo(()=>annotated.find((m)=>m.modelId === value) ?? models.find((m)=>m.modelId === value) ?? null, [
47
+ const matchesValue = useCallback((m)=>m.modelId === value || m.modelName === value, [
48
+ value
49
+ ]);
50
+ const selected = useMemo(()=>annotated.find(matchesValue) ?? models.find(matchesValue) ?? null, [
48
51
  annotated,
49
52
  models,
50
- value
53
+ matchesValue
51
54
  ]);
52
55
  const unknownValue = useMemo(()=>{
53
56
  if (!value) return null;
@@ -73,7 +76,7 @@ function useModelPickerState(opts) {
73
76
  }, []);
74
77
  useEffect(()=>{
75
78
  if (open) {
76
- const sel = filtered.findIndex((m)=>m.modelId === value);
79
+ const sel = filtered.findIndex(matchesValue);
77
80
  setActiveIndex(sel >= 0 ? sel : 0);
78
81
  requestAnimationFrame(()=>searchRef.current?.focus());
79
82
  } else setQuery('');
@@ -26,6 +26,7 @@ __webpack_require__.r(__webpack_exports__);
26
26
  __webpack_require__.d(__webpack_exports__, {
27
27
  buildLlmConfigurationsUrl: ()=>buildLlmConfigurationsUrl,
28
28
  useUserFolders: ()=>useUserFolders,
29
+ useDeleteByoConfiguration: ()=>useDeleteByoConfiguration,
29
30
  platformNavigation: ()=>platformNavigation,
30
31
  usePlatformDiscoveryModels: ()=>usePlatformDiscoveryModels,
31
32
  useByoConnectionNames: ()=>useByoConnectionNames,
@@ -34,6 +35,19 @@ __webpack_require__.d(__webpack_exports__, {
34
35
  const external_react_namespaceObject = require("react");
35
36
  const external_useDiscoveryModels_cjs_namespaceObject = require("./useDiscoveryModels.cjs");
36
37
  const resolveToken = async (token)=>'function' == typeof token ? token() : token;
38
+ const buildGatewayUrl = (ctx, path)=>{
39
+ const base = (ctx.baseUrl ?? '').replace(/\/$/, '');
40
+ if (ctx.organizationId && ctx.tenantId) {
41
+ let origin = '';
42
+ try {
43
+ origin = base ? new URL(base).origin : '';
44
+ } catch {
45
+ origin = '';
46
+ }
47
+ return `${origin}/${ctx.organizationId}/${ctx.tenantId}/llmgateway_/${path}`;
48
+ }
49
+ return `${base}/${ctx.tenantName}/llmgateway_/${path}`;
50
+ };
37
51
  const FOLDERS_PAGE_SIZE = 100;
38
52
  function useUserFolders(ctx) {
39
53
  const [folders, setFolders] = (0, external_react_namespaceObject.useState)([]);
@@ -108,17 +122,7 @@ function usePlatformDiscoveryModels(ctx, folderKey) {
108
122
  abortRef.current = ctrl;
109
123
  setLoading(true);
110
124
  setError(null);
111
- const base = (ctx.baseUrl ?? '').replace(/\/$/, '');
112
- let url;
113
- if (ctx.organizationId && ctx.tenantId) {
114
- let origin = '';
115
- try {
116
- origin = base ? new URL(base).origin : '';
117
- } catch {
118
- origin = '';
119
- }
120
- url = `${origin}/${ctx.organizationId}/${ctx.tenantId}/llmgateway_/api/discovery`;
121
- } else url = `${base}/${ctx.tenantName}/llmgateway_/api/discovery`;
125
+ const url = buildGatewayUrl(ctx, 'api/discovery');
122
126
  try {
123
127
  const bearer = await resolveToken(ctx.token);
124
128
  const headers = {
@@ -169,6 +173,37 @@ function usePlatformDiscoveryModels(ctx, folderKey) {
169
173
  refetch: fetchModels
170
174
  };
171
175
  }
176
+ function useDeleteByoConfiguration(ctx) {
177
+ const deleteConfiguration = (0, external_react_namespaceObject.useCallback)(async (configurationId)=>{
178
+ if (!ctx) throw new Error('Cannot delete a BYO configuration without a request context.');
179
+ const bearer = await resolveToken(ctx.token);
180
+ const res = await fetch(buildGatewayUrl(ctx, `api/byo/product/llm-configurations/${encodeURIComponent(configurationId)}`), {
181
+ method: 'DELETE',
182
+ headers: {
183
+ Authorization: `Bearer ${bearer}`,
184
+ Accept: 'application/json'
185
+ }
186
+ });
187
+ if (!res.ok) {
188
+ let message = '';
189
+ try {
190
+ const body = await res.json();
191
+ if (body && 'object' == typeof body && 'Message' in body) {
192
+ const raw = body.Message;
193
+ if ('string' == typeof raw) message = raw;
194
+ }
195
+ } catch {
196
+ message = '';
197
+ }
198
+ throw new Error(message || `Failed to delete the custom model (HTTP ${res.status}).`);
199
+ }
200
+ }, [
201
+ ctx
202
+ ]);
203
+ return {
204
+ deleteConfiguration
205
+ };
206
+ }
172
207
  const EMPTY_GUID = '00000000-0000-0000-0000-000000000000';
173
208
  function useByoConnectionNames(models, ctx) {
174
209
  const [names, setNames] = (0, external_react_namespaceObject.useState)(new Map());
@@ -304,6 +339,7 @@ exports.buildLlmConfigurationsUrl = __webpack_exports__.buildLlmConfigurationsUr
304
339
  exports.platformNavigation = __webpack_exports__.platformNavigation;
305
340
  exports.useByoConnectionNames = __webpack_exports__.useByoConnectionNames;
306
341
  exports.useCanManageByo = __webpack_exports__.useCanManageByo;
342
+ exports.useDeleteByoConfiguration = __webpack_exports__.useDeleteByoConfiguration;
307
343
  exports.usePlatformDiscoveryModels = __webpack_exports__.usePlatformDiscoveryModels;
308
344
  exports.useUserFolders = __webpack_exports__.useUserFolders;
309
345
  for(var __rspack_i in __webpack_exports__)if (-1 === [
@@ -311,6 +347,7 @@ for(var __rspack_i in __webpack_exports__)if (-1 === [
311
347
  "platformNavigation",
312
348
  "useByoConnectionNames",
313
349
  "useCanManageByo",
350
+ "useDeleteByoConfiguration",
314
351
  "usePlatformDiscoveryModels",
315
352
  "useUserFolders"
316
353
  ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
@@ -16,16 +16,20 @@ export interface UseUserFoldersResult {
16
16
  folders: FolderSwitcherFolder[];
17
17
  loading: boolean;
18
18
  error: Error | null;
19
- refetch: () => void;
19
+ refetch: () => Promise<void>;
20
20
  }
21
21
  export declare function useUserFolders(ctx: PlatformRequestContext | null): UseUserFoldersResult;
22
22
  export interface UsePlatformDiscoveryModelsResult {
23
23
  models: DiscoveryModel[] | undefined;
24
24
  loading: boolean;
25
25
  error: Error | null;
26
- refetch: () => void;
26
+ refetch: () => Promise<void>;
27
27
  }
28
28
  export declare function usePlatformDiscoveryModels(ctx: PlatformRequestContext | null, folderKey: string | null): UsePlatformDiscoveryModelsResult;
29
+ export interface UseDeleteByoConfigurationResult {
30
+ deleteConfiguration: (configurationId: string) => Promise<void>;
31
+ }
32
+ export declare function useDeleteByoConfiguration(ctx: PlatformRequestContext | null): UseDeleteByoConfigurationResult;
29
33
  export declare function useByoConnectionNames(models: readonly {
30
34
  byoConnectionLabel?: string;
31
35
  byomDetails?: {
@@ -1 +1 @@
1
- {"version":3,"file":"usePlatformAccess.d.ts","sourceRoot":"","sources":["../../../../src/material/components/ap-model-picker/usePlatformAccess.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAgB9C,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,CAAC,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;AAKtE,MAAM,WAAW,sBAAsB;IAErC,KAAK,EAAE,aAAa,CAAC;IAWrB,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,UAAU,EAAE,MAAM,CAAC;IAOnB,cAAc,CAAC,EAAE,MAAM,CAAC;IAQxB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAMlB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAO3B,aAAa,CAAC,EAAE,MAAM,CAAC;IAOvB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAqBD,MAAM,WAAW,oBAAoB;IAMnC,OAAO,EAAE,oBAAoB,EAAE,CAAC;IAChC,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AA2BD,wBAAgB,cAAc,CAAC,GAAG,EAAE,sBAAsB,GAAG,IAAI,GAAG,oBAAoB,CAyEvF;AAMD,MAAM,WAAW,gCAAgC;IAE/C,MAAM,EAAE,cAAc,EAAE,GAAG,SAAS,CAAC;IACrC,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAgBD,wBAAgB,0BAA0B,CACxC,GAAG,EAAE,sBAAsB,GAAG,IAAI,EAClC,SAAS,EAAE,MAAM,GAAG,IAAI,GACvB,gCAAgC,CA8ElC;AA4BD,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,SAAS;IACf,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,WAAW,CAAC,EAAE;QAAE,8BAA8B,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;CAClE,EAAE,EACH,GAAG,EAAE,sBAAsB,GAAG,IAAI,GACjC,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CA6D7B;AAeD,MAAM,WAAW,qBAAqB;IAMpC,SAAS,EAAE,OAAO,GAAG,SAAS,CAAC;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;CACrB;AAiBD,wBAAgB,eAAe,CAAC,GAAG,EAAE,sBAAsB,GAAG,IAAI,GAAG,qBAAqB,CAoEzF;AAMD,MAAM,WAAW,4BAA4B;IAE3C,MAAM,EAAE,KAAK,GAAG,MAAM,CAAC;IAEvB,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAcD,wBAAgB,yBAAyB,CACvC,GAAG,EAAE,sBAAsB,EAC3B,OAAO,EAAE,4BAA4B,GACpC,MAAM,CAuBR;AAaD,eAAO,MAAM,kBAAkB;sBACX,MAAM,GAAG,IAAI;CAGhC,CAAC"}
1
+ {"version":3,"file":"usePlatformAccess.d.ts","sourceRoot":"","sources":["../../../../src/material/components/ap-model-picker/usePlatformAccess.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAgB9C,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,CAAC,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;AA6BtE,MAAM,WAAW,sBAAsB;IAErC,KAAK,EAAE,aAAa,CAAC;IAWrB,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,UAAU,EAAE,MAAM,CAAC;IAOnB,cAAc,CAAC,EAAE,MAAM,CAAC;IAQxB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAMlB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAO3B,aAAa,CAAC,EAAE,MAAM,CAAC;IAOvB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAqBD,MAAM,WAAW,oBAAoB;IAMnC,OAAO,EAAE,oBAAoB,EAAE,CAAC;IAChC,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IAEpB,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9B;AA2BD,wBAAgB,cAAc,CAAC,GAAG,EAAE,sBAAsB,GAAG,IAAI,GAAG,oBAAoB,CAyEvF;AAMD,MAAM,WAAW,gCAAgC;IAE/C,MAAM,EAAE,cAAc,EAAE,GAAG,SAAS,CAAC;IACrC,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IAMpB,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9B;AAgBD,wBAAgB,0BAA0B,CACxC,GAAG,EAAE,sBAAsB,GAAG,IAAI,EAClC,SAAS,EAAE,MAAM,GAAG,IAAI,GACvB,gCAAgC,CA+DlC;AAMD,MAAM,WAAW,+BAA+B;IAE9C,mBAAmB,EAAE,CAAC,eAAe,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACjE;AAaD,wBAAgB,yBAAyB,CACvC,GAAG,EAAE,sBAAsB,GAAG,IAAI,GACjC,+BAA+B,CAkCjC;AA4BD,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,SAAS;IACf,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,WAAW,CAAC,EAAE;QAAE,8BAA8B,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;CAClE,EAAE,EACH,GAAG,EAAE,sBAAsB,GAAG,IAAI,GACjC,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CA6D7B;AAeD,MAAM,WAAW,qBAAqB;IAMpC,SAAS,EAAE,OAAO,GAAG,SAAS,CAAC;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;CACrB;AAiBD,wBAAgB,eAAe,CAAC,GAAG,EAAE,sBAAsB,GAAG,IAAI,GAAG,qBAAqB,CAoEzF;AAMD,MAAM,WAAW,4BAA4B;IAE3C,MAAM,EAAE,KAAK,GAAG,MAAM,CAAC;IAEvB,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAcD,wBAAgB,yBAAyB,CACvC,GAAG,EAAE,sBAAsB,EAC3B,OAAO,EAAE,4BAA4B,GACpC,MAAM,CAuBR;AAaD,eAAO,MAAM,kBAAkB;sBACX,MAAM,GAAG,IAAI;CAGhC,CAAC"}
@@ -1,6 +1,19 @@
1
1
  import { useCallback, useEffect, useRef, useState } from "react";
2
2
  import { normalizeDiscoveryModels } from "./useDiscoveryModels.js";
3
3
  const resolveToken = async (token)=>'function' == typeof token ? token() : token;
4
+ const buildGatewayUrl = (ctx, path)=>{
5
+ const base = (ctx.baseUrl ?? '').replace(/\/$/, '');
6
+ if (ctx.organizationId && ctx.tenantId) {
7
+ let origin = '';
8
+ try {
9
+ origin = base ? new URL(base).origin : '';
10
+ } catch {
11
+ origin = '';
12
+ }
13
+ return `${origin}/${ctx.organizationId}/${ctx.tenantId}/llmgateway_/${path}`;
14
+ }
15
+ return `${base}/${ctx.tenantName}/llmgateway_/${path}`;
16
+ };
4
17
  const FOLDERS_PAGE_SIZE = 100;
5
18
  function useUserFolders(ctx) {
6
19
  const [folders, setFolders] = useState([]);
@@ -75,17 +88,7 @@ function usePlatformDiscoveryModels(ctx, folderKey) {
75
88
  abortRef.current = ctrl;
76
89
  setLoading(true);
77
90
  setError(null);
78
- const base = (ctx.baseUrl ?? '').replace(/\/$/, '');
79
- let url;
80
- if (ctx.organizationId && ctx.tenantId) {
81
- let origin = '';
82
- try {
83
- origin = base ? new URL(base).origin : '';
84
- } catch {
85
- origin = '';
86
- }
87
- url = `${origin}/${ctx.organizationId}/${ctx.tenantId}/llmgateway_/api/discovery`;
88
- } else url = `${base}/${ctx.tenantName}/llmgateway_/api/discovery`;
91
+ const url = buildGatewayUrl(ctx, 'api/discovery');
89
92
  try {
90
93
  const bearer = await resolveToken(ctx.token);
91
94
  const headers = {
@@ -136,6 +139,37 @@ function usePlatformDiscoveryModels(ctx, folderKey) {
136
139
  refetch: fetchModels
137
140
  };
138
141
  }
142
+ function useDeleteByoConfiguration(ctx) {
143
+ const deleteConfiguration = useCallback(async (configurationId)=>{
144
+ if (!ctx) throw new Error('Cannot delete a BYO configuration without a request context.');
145
+ const bearer = await resolveToken(ctx.token);
146
+ const res = await fetch(buildGatewayUrl(ctx, `api/byo/product/llm-configurations/${encodeURIComponent(configurationId)}`), {
147
+ method: 'DELETE',
148
+ headers: {
149
+ Authorization: `Bearer ${bearer}`,
150
+ Accept: 'application/json'
151
+ }
152
+ });
153
+ if (!res.ok) {
154
+ let message = '';
155
+ try {
156
+ const body = await res.json();
157
+ if (body && 'object' == typeof body && 'Message' in body) {
158
+ const raw = body.Message;
159
+ if ('string' == typeof raw) message = raw;
160
+ }
161
+ } catch {
162
+ message = '';
163
+ }
164
+ throw new Error(message || `Failed to delete the custom model (HTTP ${res.status}).`);
165
+ }
166
+ }, [
167
+ ctx
168
+ ]);
169
+ return {
170
+ deleteConfiguration
171
+ };
172
+ }
139
173
  const EMPTY_GUID = '00000000-0000-0000-0000-000000000000';
140
174
  function useByoConnectionNames(models, ctx) {
141
175
  const [names, setNames] = useState(new Map());
@@ -267,4 +301,4 @@ const platformNavigation = {
267
301
  globalThis.open?.(url, '_blank', 'noopener,noreferrer');
268
302
  }
269
303
  };
270
- export { buildLlmConfigurationsUrl, platformNavigation, useByoConnectionNames, useCanManageByo, usePlatformDiscoveryModels, useUserFolders };
304
+ export { buildLlmConfigurationsUrl, platformNavigation, useByoConnectionNames, useCanManageByo, useDeleteByoConfiguration, usePlatformDiscoveryModels, useUserFolders };
@@ -25,15 +25,59 @@ var __webpack_exports__ = {};
25
25
  __webpack_require__.r(__webpack_exports__);
26
26
  __webpack_require__.d(__webpack_exports__, {
27
27
  groupModels: ()=>groupModels,
28
+ isTextGenerationModel: ()=>isTextGenerationModel,
28
29
  getSubstitutionTarget: ()=>getSubstitutionTarget,
29
30
  filterModels: ()=>filterModels,
30
31
  deriveModelTags: ()=>deriveModelTags,
31
- defaultCostTier: ()=>defaultCostTier
32
+ defaultCostTier: ()=>defaultCostTier,
33
+ resolveHomeGeography: ()=>resolveHomeGeography
32
34
  });
33
35
  const external_badges_cjs_namespaceObject = require("./badges.cjs");
34
36
  const external_i18n_cjs_namespaceObject = require("./i18n.cjs");
35
37
  const RECOMMENDED_SUBSCRIPTION = 'UiPathOwned';
36
38
  const isByoModel = (m)=>'BYOMAdded' === m.modelSubscriptionType || 'BYOMReplacedAlternative' === m.modelSubscriptionType || 'BYOMReplacedLikeForLike' === m.modelSubscriptionType || !!m.byomDetails || !!m.byoConnectionLabel;
39
+ function isTextGenerationModel(m) {
40
+ if ('Realtime' === m.modelType) return false;
41
+ return !(m.apiFlavor ?? '').includes('Embeddings');
42
+ }
43
+ const OMS_REGION_TO_GEOGRAPHY = {
44
+ europe: 'EU',
45
+ unitedstates: 'US',
46
+ japan: 'JA',
47
+ canada: 'CA',
48
+ australia: 'AU',
49
+ india: 'IN',
50
+ unitedkingdom: 'UK',
51
+ singapore: 'SI',
52
+ switzerland: 'CH',
53
+ unitedarabemirates: 'UAE',
54
+ southkorea: 'SK'
55
+ };
56
+ const GEOGRAPHY_CODES = new Set([
57
+ 'EU',
58
+ 'CA',
59
+ 'US',
60
+ 'SI',
61
+ 'JA',
62
+ 'AU',
63
+ 'IN',
64
+ 'UK',
65
+ 'CH',
66
+ 'UAE',
67
+ 'SK',
68
+ 'GLOBAL'
69
+ ]);
70
+ function resolveHomeGeography(homeRegion) {
71
+ const raw = homeRegion?.trim();
72
+ if (!raw) return;
73
+ const upper = raw.toUpperCase();
74
+ if ('GLOBAL' === upper) return;
75
+ if (GEOGRAPHY_CODES.has(upper)) return upper;
76
+ return OMS_REGION_TO_GEOGRAPHY[raw.toLowerCase().replace(/[\s_-]/g, '')];
77
+ }
78
+ function listMatchesModel(ids, model) {
79
+ return ids.includes(model.modelId) || ids.includes(model.modelName);
80
+ }
37
81
  function deriveModelTags(model, context = {}) {
38
82
  const tags = [];
39
83
  const localize = (desc)=>{
@@ -41,13 +85,13 @@ function deriveModelTags(model, context = {}) {
41
85
  return desc.message ?? desc.id;
42
86
  };
43
87
  const isByo = isByoModel(model);
44
- const isRecommended = void 0 !== context.recommendedModelIds ? context.recommendedModelIds.includes(model.modelId) : model.isRecommended ?? (model.modelSubscriptionType === RECOMMENDED_SUBSCRIPTION && !model.isPreview && !model.deprecationDetails?.usageEndDate);
88
+ const isRecommended = void 0 !== context.recommendedModelIds ? listMatchesModel(context.recommendedModelIds, model) : model.isRecommended ?? (model.modelSubscriptionType === RECOMMENDED_SUBSCRIPTION && !model.isPreview && !model.deprecationDetails?.usageEndDate);
45
89
  if (isRecommended) tags.push({
46
90
  kind: 'recommended',
47
91
  label: localize(external_i18n_cjs_namespaceObject.TAG_LABELS.recommended),
48
92
  tooltip: localize(external_i18n_cjs_namespaceObject.TAG_LABELS.recommendedTooltip)
49
93
  });
50
- const isPreview = void 0 !== context.previewModelIds ? context.previewModelIds.includes(model.modelId) : !!model.isPreview;
94
+ const isPreview = void 0 !== context.previewModelIds ? listMatchesModel(context.previewModelIds, model) : !!model.isPreview;
51
95
  if (!isByo && isPreview) tags.push({
52
96
  kind: 'preview',
53
97
  label: localize(external_i18n_cjs_namespaceObject.TAG_LABELS.preview)
@@ -96,7 +140,8 @@ function deriveModelTags(model, context = {}) {
96
140
  });
97
141
  if (!isByo) {
98
142
  const geo = model.routingDetails?.geography;
99
- if (geo && context.homeRegion && 'GLOBAL' !== geo && geo !== context.homeRegion) tags.push({
143
+ const home = 'GLOBAL' === context.homeRegion ? void 0 : context.homeRegion;
144
+ if (geo && home && 'GLOBAL' !== geo && geo !== home) tags.push({
100
145
  kind: 'out-of-region',
101
146
  label: context.i18n ? context.i18n._({
102
147
  id: 'modelPicker.tag.outOfRegion.label',
@@ -109,9 +154,9 @@ function deriveModelTags(model, context = {}) {
109
154
  id: 'modelPicker.tag.outOfRegion.tooltip',
110
155
  message: 'Routes traffic outside {homeRegion}',
111
156
  values: {
112
- homeRegion: context.homeRegion
157
+ homeRegion: home
113
158
  }
114
- }) : `Routes traffic outside ${context.homeRegion}`
159
+ }) : `Routes traffic outside ${home}`
115
160
  });
116
161
  }
117
162
  const poolBadges = context.badgesFor?.(model) ?? (()=>{
@@ -171,8 +216,8 @@ function formatDate(iso) {
171
216
  });
172
217
  }
173
218
  function buildSubscriptionMatchers(ctx) {
174
- const isRecommended = (m)=>void 0 !== ctx.recommendedModelIds ? ctx.recommendedModelIds.includes(m.modelId) : m.isRecommended ?? (m.modelSubscriptionType === RECOMMENDED_SUBSCRIPTION && !m.isPreview && !m.deprecationDetails?.usageEndDate);
175
- const isPreview = (m)=>void 0 !== ctx.previewModelIds ? ctx.previewModelIds.includes(m.modelId) : !!m.isPreview;
219
+ const isRecommended = (m)=>void 0 !== ctx.recommendedModelIds ? listMatchesModel(ctx.recommendedModelIds, m) : m.isRecommended ?? (m.modelSubscriptionType === RECOMMENDED_SUBSCRIPTION && !m.isPreview && !m.deprecationDetails?.usageEndDate);
220
+ const isPreview = (m)=>void 0 !== ctx.previewModelIds ? listMatchesModel(ctx.previewModelIds, m) : !!m.isPreview;
176
221
  const localize = (desc)=>{
177
222
  if (ctx.i18n) return (0, external_i18n_cjs_namespaceObject.tr)(ctx.i18n, desc);
178
223
  return desc.message ?? desc.id;
@@ -304,12 +349,16 @@ exports.deriveModelTags = __webpack_exports__.deriveModelTags;
304
349
  exports.filterModels = __webpack_exports__.filterModels;
305
350
  exports.getSubstitutionTarget = __webpack_exports__.getSubstitutionTarget;
306
351
  exports.groupModels = __webpack_exports__.groupModels;
352
+ exports.isTextGenerationModel = __webpack_exports__.isTextGenerationModel;
353
+ exports.resolveHomeGeography = __webpack_exports__.resolveHomeGeography;
307
354
  for(var __rspack_i in __webpack_exports__)if (-1 === [
308
355
  "defaultCostTier",
309
356
  "deriveModelTags",
310
357
  "filterModels",
311
358
  "getSubstitutionTarget",
312
- "groupModels"
359
+ "groupModels",
360
+ "isTextGenerationModel",
361
+ "resolveHomeGeography"
313
362
  ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
314
363
  Object.defineProperty(exports, '__esModule', {
315
364
  value: true
@@ -9,6 +9,8 @@ export interface DeriveModelTagsContext {
9
9
  badgesFor?: (model: DiscoveryModel) => readonly ModelBadgeKind[];
10
10
  customTagsFor?: (model: DiscoveryModel) => readonly ModelTag[];
11
11
  }
12
+ export declare function isTextGenerationModel(m: DiscoveryModel): boolean;
13
+ export declare function resolveHomeGeography(homeRegion: string | undefined): string | undefined;
12
14
  export declare function deriveModelTags(model: DiscoveryModel, context?: DeriveModelTagsContext): ModelTag[];
13
15
  export declare function defaultCostTier(model: DiscoveryModel): CostTier | null;
14
16
  export declare function getSubstitutionTarget(model: DiscoveryModel): string | null;
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../src/material/components/ap-model-picker/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,KAAK,cAAc,EAAE,MAAM,UAAU,CAAC;AAC7D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,QAAQ,CAAC;AAG/C,OAAO,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAS9E,MAAM,WAAW,sBAAsB;IAOrC,IAAI,CAAC,EAAE,gBAAgB,CAAC;IAExB,UAAU,CAAC,EAAE,MAAM,CAAC;IASpB,mBAAmB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAKxC,eAAe,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAUpC,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,SAAS,cAAc,EAAE,CAAC;IAQjE,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,SAAS,QAAQ,EAAE,CAAC;CAChE;AAiBD,wBAAgB,eAAe,CAC7B,KAAK,EAAE,cAAc,EACrB,OAAO,GAAE,sBAA2B,GACnC,QAAQ,EAAE,CAqKZ;AAoBD,wBAAgB,eAAe,CAAC,KAAK,EAAE,cAAc,GAAG,QAAQ,GAAG,IAAI,CAQtE;AAoBD,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,cAAc,GAAG,MAAM,GAAG,IAAI,CAa1E;AA8BD,MAAM,MAAM,aAAa,GAAG,cAAc,GAAG,QAAQ,GAAG,MAAM,CAAC;AAQ/D,MAAM,WAAW,kBAAkB;IACjC,mBAAmB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACxC,eAAe,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAMpC,IAAI,CAAC,EAAE,gBAAgB,CAAC;CACzB;AAwED,wBAAgB,WAAW,CACzB,MAAM,EAAE,cAAc,EAAE,EACxB,QAAQ,GAAE,aAA8B,EACxC,OAAO,GAAE,kBAAuB,GAC/B,UAAU,EAAE,CA6Ed;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,cAAc,EAAE,EAAE,KAAK,EAAE,MAAM,GAAG,cAAc,EAAE,CAkBtF"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../src/material/components/ap-model-picker/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,KAAK,cAAc,EAAE,MAAM,UAAU,CAAC;AAC7D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,QAAQ,CAAC;AAG/C,OAAO,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAS9E,MAAM,WAAW,sBAAsB;IAOrC,IAAI,CAAC,EAAE,gBAAgB,CAAC;IAExB,UAAU,CAAC,EAAE,MAAM,CAAC;IAUpB,mBAAmB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAMxC,eAAe,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAUpC,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,SAAS,cAAc,EAAE,CAAC;IAQjE,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,SAAS,QAAQ,EAAE,CAAC;CAChE;AA2BD,wBAAgB,qBAAqB,CAAC,CAAC,EAAE,cAAc,GAAG,OAAO,CAGhE;AA6CD,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAOvF;AAaD,wBAAgB,eAAe,CAC7B,KAAK,EAAE,cAAc,EACrB,OAAO,GAAE,sBAA2B,GACnC,QAAQ,EAAE,CAsKZ;AAoBD,wBAAgB,eAAe,CAAC,KAAK,EAAE,cAAc,GAAG,QAAQ,GAAG,IAAI,CAQtE;AAoBD,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,cAAc,GAAG,MAAM,GAAG,IAAI,CAa1E;AA8BD,MAAM,MAAM,aAAa,GAAG,cAAc,GAAG,QAAQ,GAAG,MAAM,CAAC;AAQ/D,MAAM,WAAW,kBAAkB;IACjC,mBAAmB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACxC,eAAe,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAMpC,IAAI,CAAC,EAAE,gBAAgB,CAAC;CACzB;AAwED,wBAAgB,WAAW,CACzB,MAAM,EAAE,cAAc,EAAE,EACxB,QAAQ,GAAE,aAA8B,EACxC,OAAO,GAAE,kBAAuB,GAC/B,UAAU,EAAE,CA6Ed;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,cAAc,EAAE,EAAE,KAAK,EAAE,MAAM,GAAG,cAAc,EAAE,CAkBtF"}
@@ -2,6 +2,48 @@ import { MODEL_BADGES } from "./badges.js";
2
2
  import { GROUP_LABELS, TAG_LABELS, tr } from "./i18n.js";
3
3
  const RECOMMENDED_SUBSCRIPTION = 'UiPathOwned';
4
4
  const isByoModel = (m)=>'BYOMAdded' === m.modelSubscriptionType || 'BYOMReplacedAlternative' === m.modelSubscriptionType || 'BYOMReplacedLikeForLike' === m.modelSubscriptionType || !!m.byomDetails || !!m.byoConnectionLabel;
5
+ function isTextGenerationModel(m) {
6
+ if ('Realtime' === m.modelType) return false;
7
+ return !(m.apiFlavor ?? '').includes('Embeddings');
8
+ }
9
+ const OMS_REGION_TO_GEOGRAPHY = {
10
+ europe: 'EU',
11
+ unitedstates: 'US',
12
+ japan: 'JA',
13
+ canada: 'CA',
14
+ australia: 'AU',
15
+ india: 'IN',
16
+ unitedkingdom: 'UK',
17
+ singapore: 'SI',
18
+ switzerland: 'CH',
19
+ unitedarabemirates: 'UAE',
20
+ southkorea: 'SK'
21
+ };
22
+ const GEOGRAPHY_CODES = new Set([
23
+ 'EU',
24
+ 'CA',
25
+ 'US',
26
+ 'SI',
27
+ 'JA',
28
+ 'AU',
29
+ 'IN',
30
+ 'UK',
31
+ 'CH',
32
+ 'UAE',
33
+ 'SK',
34
+ 'GLOBAL'
35
+ ]);
36
+ function resolveHomeGeography(homeRegion) {
37
+ const raw = homeRegion?.trim();
38
+ if (!raw) return;
39
+ const upper = raw.toUpperCase();
40
+ if ('GLOBAL' === upper) return;
41
+ if (GEOGRAPHY_CODES.has(upper)) return upper;
42
+ return OMS_REGION_TO_GEOGRAPHY[raw.toLowerCase().replace(/[\s_-]/g, '')];
43
+ }
44
+ function listMatchesModel(ids, model) {
45
+ return ids.includes(model.modelId) || ids.includes(model.modelName);
46
+ }
5
47
  function deriveModelTags(model, context = {}) {
6
48
  const tags = [];
7
49
  const localize = (desc)=>{
@@ -9,13 +51,13 @@ function deriveModelTags(model, context = {}) {
9
51
  return desc.message ?? desc.id;
10
52
  };
11
53
  const isByo = isByoModel(model);
12
- const isRecommended = void 0 !== context.recommendedModelIds ? context.recommendedModelIds.includes(model.modelId) : model.isRecommended ?? (model.modelSubscriptionType === RECOMMENDED_SUBSCRIPTION && !model.isPreview && !model.deprecationDetails?.usageEndDate);
54
+ const isRecommended = void 0 !== context.recommendedModelIds ? listMatchesModel(context.recommendedModelIds, model) : model.isRecommended ?? (model.modelSubscriptionType === RECOMMENDED_SUBSCRIPTION && !model.isPreview && !model.deprecationDetails?.usageEndDate);
13
55
  if (isRecommended) tags.push({
14
56
  kind: 'recommended',
15
57
  label: localize(TAG_LABELS.recommended),
16
58
  tooltip: localize(TAG_LABELS.recommendedTooltip)
17
59
  });
18
- const isPreview = void 0 !== context.previewModelIds ? context.previewModelIds.includes(model.modelId) : !!model.isPreview;
60
+ const isPreview = void 0 !== context.previewModelIds ? listMatchesModel(context.previewModelIds, model) : !!model.isPreview;
19
61
  if (!isByo && isPreview) tags.push({
20
62
  kind: 'preview',
21
63
  label: localize(TAG_LABELS.preview)
@@ -64,7 +106,8 @@ function deriveModelTags(model, context = {}) {
64
106
  });
65
107
  if (!isByo) {
66
108
  const geo = model.routingDetails?.geography;
67
- if (geo && context.homeRegion && 'GLOBAL' !== geo && geo !== context.homeRegion) tags.push({
109
+ const home = 'GLOBAL' === context.homeRegion ? void 0 : context.homeRegion;
110
+ if (geo && home && 'GLOBAL' !== geo && geo !== home) tags.push({
68
111
  kind: 'out-of-region',
69
112
  label: context.i18n ? context.i18n._({
70
113
  id: 'modelPicker.tag.outOfRegion.label',
@@ -77,9 +120,9 @@ function deriveModelTags(model, context = {}) {
77
120
  id: 'modelPicker.tag.outOfRegion.tooltip',
78
121
  message: 'Routes traffic outside {homeRegion}',
79
122
  values: {
80
- homeRegion: context.homeRegion
123
+ homeRegion: home
81
124
  }
82
- }) : `Routes traffic outside ${context.homeRegion}`
125
+ }) : `Routes traffic outside ${home}`
83
126
  });
84
127
  }
85
128
  const poolBadges = context.badgesFor?.(model) ?? (()=>{
@@ -139,8 +182,8 @@ function formatDate(iso) {
139
182
  });
140
183
  }
141
184
  function buildSubscriptionMatchers(ctx) {
142
- const isRecommended = (m)=>void 0 !== ctx.recommendedModelIds ? ctx.recommendedModelIds.includes(m.modelId) : m.isRecommended ?? (m.modelSubscriptionType === RECOMMENDED_SUBSCRIPTION && !m.isPreview && !m.deprecationDetails?.usageEndDate);
143
- const isPreview = (m)=>void 0 !== ctx.previewModelIds ? ctx.previewModelIds.includes(m.modelId) : !!m.isPreview;
185
+ const isRecommended = (m)=>void 0 !== ctx.recommendedModelIds ? listMatchesModel(ctx.recommendedModelIds, m) : m.isRecommended ?? (m.modelSubscriptionType === RECOMMENDED_SUBSCRIPTION && !m.isPreview && !m.deprecationDetails?.usageEndDate);
186
+ const isPreview = (m)=>void 0 !== ctx.previewModelIds ? listMatchesModel(ctx.previewModelIds, m) : !!m.isPreview;
144
187
  const localize = (desc)=>{
145
188
  if (ctx.i18n) return tr(ctx.i18n, desc);
146
189
  return desc.message ?? desc.id;
@@ -267,4 +310,4 @@ function filterModels(models, query) {
267
310
  return haystack.includes(q);
268
311
  });
269
312
  }
270
- export { defaultCostTier, deriveModelTags, filterModels, getSubstitutionTarget, groupModels };
313
+ export { defaultCostTier, deriveModelTags, filterModels, getSubstitutionTarget, groupModels, isTextGenerationModel, resolveHomeGeography };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@uipath/apollo-react",
3
- "version": "6.16.5",
3
+ "version": "6.17.1",
4
4
  "description": "Apollo Design System - React component library with Material UI theming",
5
5
  "repository": {
6
6
  "type": "git",
@@ -201,7 +201,7 @@
201
201
  "lodash": "^4.18.1",
202
202
  "lucide-react": "^0.577.0",
203
203
  "luxon": "^3.7.1",
204
- "mermaid": "^11.15.0",
204
+ "mermaid": "^11.16.1",
205
205
  "motion": "^12.23.12",
206
206
  "react-dropzone": "^14.3.8",
207
207
  "react-focus-lock": "^2.13.7",