@devtron-labs/devtron-fe-common-lib 1.17.0-beta-8 → 1.17.0-beta-9

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.
@@ -0,0 +1,598 @@
1
+ import { j as n, at as y, av as k, au as M } from "./@vendor-DbxoIktR.js";
2
+ import W, { forwardRef as J, useMemo as P } from "react";
3
+ import V, { getDefaultRegistry as K } from "@rjsf/core";
4
+ import { T as N, j as w, c as v, b as F, S as q, i as Y, a as G, d as C, e as z } from "./@code-editor-DFmS2vEy.js";
5
+ import { getUiOptions as I, getTemplate as D, getSubmitButtonOptions as Q, ADDITIONAL_PROPERTY_FLAG as B, errorId as X, englishStringTranslator as Z, TranslatableString as ee, titleId as te, canExpand as ne, deepEquals as re } from "@rjsf/utils";
6
+ import { ReactComponent as se } from "./assets/ic-add.cfaa779b.svg";
7
+ import { ReactComponent as ae } from "./assets/ic-warning.ecf7ff97.svg";
8
+ import { ReactComponent as oe } from "./assets/ic-cross.01e03666.svg";
9
+ import './assets/@common-rjsf.css';const S = {
10
+ SELECT: "Please select an option",
11
+ INPUT: "Please enter an input",
12
+ OBJECT_KEY: "Please enter a value for the key"
13
+ }, le = "Key not available", Ue = {
14
+ "ui:submitButtonOptions": {
15
+ norender: !0
16
+ }
17
+ }, $ = "rjsf-form-select-portal-target", ie = ({
18
+ children: e,
19
+ disabled: t,
20
+ hasToolbar: s,
21
+ hasRemove: r,
22
+ index: a,
23
+ onDropIndexClick: i,
24
+ readonly: l,
25
+ registry: o,
26
+ uiSchema: c
27
+ }) => {
28
+ const { RemoveButton: d } = o.templates.ButtonTemplates;
29
+ return /* @__PURE__ */ n.jsxs("div", { className: "dc__position-rel display-grid rjsf-form-template__array-field-item flex-align-center", children: [
30
+ e,
31
+ /* @__PURE__ */ n.jsx("div", { className: "dc__position-abs remove-btn__container", style: { right: "-28px", top: "9px" }, children: s && r && /* @__PURE__ */ n.jsx(
32
+ d,
33
+ {
34
+ disabled: t || l,
35
+ onClick: i(a),
36
+ uiSchema: c,
37
+ registry: o
38
+ }
39
+ ) })
40
+ ] });
41
+ }, T = ({
42
+ showLabel: e,
43
+ label: t,
44
+ required: s,
45
+ children: r,
46
+ id: a,
47
+ rawDescription: i,
48
+ shouldAlignCenter: l = !0
49
+ }) => /* @__PURE__ */ n.jsxs(
50
+ "div",
51
+ {
52
+ className: e ? `display-grid dc__gap-12 rjsf-form-template__field ${l ? "" : "rjsf-form-template__field--align-top"}` : "",
53
+ children: [
54
+ e && /* @__PURE__ */ n.jsxs("label", { className: "cn-7 fs-13 lh-20 fw-4 flexbox mb-0", htmlFor: a, children: [
55
+ /* @__PURE__ */ n.jsx(N, { alwaysShowTippyOnHover: !!i, content: i, children: /* @__PURE__ */ n.jsx("span", { className: `dc__ellipsis-right ${i ? "dc__underline-dotted" : ""}`, children: t || le }) }),
56
+ s && /* @__PURE__ */ n.jsx("span", { className: "cr-5", children: " *" })
57
+ ] }),
58
+ r
59
+ ]
60
+ }
61
+ ), E = ({ label: e, canAdd: t, onAddClick: s, disabled: r, readonly: a, uiSchema: i, registry: l }) => {
62
+ const {
63
+ ButtonTemplates: { AddButton: o }
64
+ } = l.templates;
65
+ return t && /* @__PURE__ */ n.jsx(
66
+ o,
67
+ {
68
+ label: e,
69
+ onClick: s,
70
+ disabled: r || a,
71
+ uiSchema: i,
72
+ registry: l
73
+ }
74
+ );
75
+ }, ce = ({
76
+ canAdd: e,
77
+ className: t,
78
+ disabled: s,
79
+ idSchema: r,
80
+ uiSchema: a,
81
+ items: i,
82
+ onAddClick: l,
83
+ readonly: o,
84
+ registry: c,
85
+ required: d,
86
+ title: x
87
+ }) => {
88
+ const u = I(a), f = D("ArrayFieldItemTemplate", c, u), m = u.title || x;
89
+ return /* @__PURE__ */ n.jsx("fieldset", { className: t, id: r.$id, children: i.length ? /* @__PURE__ */ n.jsxs(n.Fragment, { children: [
90
+ i.map(({ key: j, ...h }, _) => {
91
+ const p = {
92
+ ...h.children,
93
+ props: {
94
+ ...h.children.props
95
+ }
96
+ };
97
+ return /* @__PURE__ */ n.jsx(f, { ...h, children: p }, j);
98
+ }),
99
+ /* @__PURE__ */ n.jsx(
100
+ E,
101
+ {
102
+ label: m,
103
+ canAdd: e,
104
+ onAddClick: l,
105
+ disabled: s,
106
+ readonly: o,
107
+ uiSchema: a,
108
+ registry: c
109
+ }
110
+ )
111
+ ] }) : /* @__PURE__ */ n.jsx(T, { label: m, required: d, showLabel: !0, id: r.$id, children: /* @__PURE__ */ n.jsx(
112
+ E,
113
+ {
114
+ label: m,
115
+ canAdd: e,
116
+ onAddClick: l,
117
+ disabled: s,
118
+ readonly: o,
119
+ uiSchema: a,
120
+ registry: c
121
+ }
122
+ ) }) });
123
+ }, {
124
+ templates: { BaseInputTemplate: de }
125
+ } = K(), ue = ({ placeholder: e, ...t }) => {
126
+ const { schema: s } = t;
127
+ return /* @__PURE__ */ n.jsx(
128
+ de,
129
+ {
130
+ placeholder: s.placeholder || e || S.INPUT,
131
+ ...t,
132
+ className: "form__input cn-9 fs-13 lh-20 fw-4"
133
+ }
134
+ );
135
+ }, L = ({
136
+ label: e,
137
+ icon: t,
138
+ iconType: s,
139
+ registry: r,
140
+ uiSchema: a,
141
+ ...i
142
+ }) => {
143
+ const l = `Add ${e}`;
144
+ return /* @__PURE__ */ n.jsx("div", { className: "flexbox flex-justify-start", children: /* @__PURE__ */ n.jsxs(
145
+ "button",
146
+ {
147
+ ...i,
148
+ type: "button",
149
+ className: "dc__outline-none-imp p-0 dc__transparent flex dc__gap-4 cursor dc__mxw-250",
150
+ title: "Add",
151
+ children: [
152
+ /* @__PURE__ */ n.jsx(se, { className: "icon-dim-16 fcb-5" }),
153
+ /* @__PURE__ */ n.jsx(N, { placement: "right", content: l, children: /* @__PURE__ */ n.jsx("span", { className: "cb-5 fs-13 lh-34 dc__truncate", children: l }) })
154
+ ]
155
+ }
156
+ ) });
157
+ }, me = ({ icon: e, iconType: t, registry: s, uiSchema: r, ...a }) => /* @__PURE__ */ n.jsx("button", { ...a, type: "button", className: "dc__outline-none-imp p-0 dc__transparent flex cursor", title: "Remove", children: /* @__PURE__ */ n.jsx(oe, { className: "icon-dim-16 fcn-6" }) }), pe = ({ uiSchema: e }) => {
158
+ const { submitText: t, norender: s, props: r = {} } = Q(e);
159
+ return s ? null : /* @__PURE__ */ n.jsx("div", { className: "flexbox flex-justify-end", children: /* @__PURE__ */ n.jsx("button", { type: "submit", ...r, className: `cta ${r.className || ""}`, children: t }) });
160
+ }, O = ({
161
+ id: e,
162
+ title: t,
163
+ required: s,
164
+ description: r
165
+ }) => /* @__PURE__ */ n.jsxs("legend", { className: "fs-13 fw-6 cn-9 lh-20 dc__no-border pb-9 mb-0", id: e, children: [
166
+ /* @__PURE__ */ n.jsx(N, { alwaysShowTippyOnHover: !!r, content: r, children: /* @__PURE__ */ n.jsx("span", { className: `${r ? "dc__underline-dotted" : ""}`, children: t }) }),
167
+ s && /* @__PURE__ */ n.jsx("span", { className: "cr-5", children: " *" })
168
+ ] }), fe = (e) => {
169
+ const {
170
+ id: t,
171
+ label: s,
172
+ children: r,
173
+ errors: a,
174
+ hidden: i,
175
+ required: l,
176
+ displayLabel: o,
177
+ registry: c,
178
+ uiSchema: d,
179
+ classNames: x,
180
+ schema: u,
181
+ rawDescription: f
182
+ } = e, m = I(d), j = D(
183
+ "WrapIfAdditionalTemplate",
184
+ c,
185
+ m
186
+ ), h = B in u, _ = (o || u.type === "boolean") && !h, p = u.type === "array";
187
+ return i ? /* @__PURE__ */ n.jsx("div", { className: "hidden", children: r }) : (
188
+ // NOTE: need to override the margins of default rjsf css
189
+ /* @__PURE__ */ n.jsxs("div", { className: `${x} mb-0`, children: [
190
+ p && /* @__PURE__ */ n.jsx(
191
+ O,
192
+ {
193
+ id: t,
194
+ title: s,
195
+ required: l,
196
+ registry: c,
197
+ uiSchema: d,
198
+ schema: u,
199
+ description: f
200
+ }
201
+ ),
202
+ /* @__PURE__ */ n.jsx(
203
+ T,
204
+ {
205
+ label: s,
206
+ showLabel: _,
207
+ id: t,
208
+ required: l,
209
+ rawDescription: f,
210
+ children: /* @__PURE__ */ n.jsx(j, { ...e, children: r })
211
+ }
212
+ ),
213
+ a
214
+ ] })
215
+ );
216
+ }, he = ({ errors: e = [], idSchema: t }) => {
217
+ const s = X(t);
218
+ return e.length > 0 && /* @__PURE__ */ n.jsx("span", { className: "display-grid rjsf-form-template__field--error dc__gap-12", id: s, children: e.filter((r) => !!r).map((r, a) => /* @__PURE__ */ n.jsxs(W.Fragment, { children: [
219
+ /* @__PURE__ */ n.jsx("span", {}),
220
+ /* @__PURE__ */ n.jsxs("span", { className: "form__error", children: [
221
+ /* @__PURE__ */ n.jsx(ae, { className: "form__icon form__icon--error" }),
222
+ r
223
+ ] })
224
+ ] }, a)) });
225
+ }, _e = (e, t) => {
226
+ switch (e) {
227
+ case ee.NewStringDefault:
228
+ return "";
229
+ default:
230
+ return Z(e, t);
231
+ }
232
+ }, He = (e) => {
233
+ try {
234
+ const t = new URL(e).origin === window.location.origin;
235
+ return {
236
+ href: e,
237
+ target: t ? "_self" : "_blank",
238
+ rel: t ? void 0 : "external noreferrer",
239
+ url: e
240
+ };
241
+ } catch {
242
+ return {
243
+ href: e,
244
+ target: "_blank",
245
+ url: `${e} (Invalid URL)`
246
+ };
247
+ }
248
+ }, ke = (e) => {
249
+ const t = typeof e;
250
+ switch (t) {
251
+ case "boolean":
252
+ case "string":
253
+ case "number":
254
+ return t;
255
+ case "object":
256
+ return Array.isArray(e) ? "array" : e === null ? "null" : t;
257
+ default:
258
+ return "null";
259
+ }
260
+ }, b = (e) => {
261
+ if (!e)
262
+ return "";
263
+ const t = e.trim(), r = (/^\/.+$/g.test(t) ? t : `/${t}`).replaceAll(/\./g, "/");
264
+ return /(\/(([^/~])|(~[01]))*)/g.test(r) ? r : "";
265
+ }, R = {
266
+ value: !1,
267
+ path: ""
268
+ }, xe = (e) => {
269
+ if (!e)
270
+ return null;
271
+ const t = structuredClone(e);
272
+ return typeof t == "string" ? {
273
+ value: !0,
274
+ path: b(t)
275
+ } : typeof t != "object" ? structuredClone(R) : Object.hasOwn(t, "condition") && "condition" in t && Object.hasOwn(t, "value") && "value" in t ? {
276
+ value: t.condition,
277
+ path: b(t.value)
278
+ } : Object.hasOwn(t, "value") && "value" in t && Object.hasOwn(t, "path") && "path" in t ? {
279
+ value: t.value,
280
+ path: b(t.path)
281
+ } : structuredClone(R);
282
+ }, U = (e, t, s) => {
283
+ e && (e.type === "object" && e.properties && typeof e.properties == "object" && Object.entries(e.properties).forEach(([r, a]) => {
284
+ U(a, `${t}/${r}`, s);
285
+ }), (e.type === "boolean" || e.type === "string" || e.type === "number" || e.type === "integer") && (s[t] = b(e.updatePath ?? t)));
286
+ }, je = (e) => {
287
+ const t = {};
288
+ return U(e, "", t), t;
289
+ }, H = (e, t, s) => {
290
+ if (t >= s.length)
291
+ return e;
292
+ const r = s[t];
293
+ if (t === s.length - 1) {
294
+ const a = structuredClone(e);
295
+ return delete a[r], a;
296
+ }
297
+ if (e[r] && (e[r] = H(e[r], t + 1, s)), Object.keys(e[r] ?? {}).length === 0) {
298
+ const a = structuredClone(e);
299
+ return delete a[r], a;
300
+ }
301
+ return e;
302
+ }, ge = (e, t) => {
303
+ if (!e || typeof e != "object" || Array.isArray(e))
304
+ throw new Error("Invalid object");
305
+ if (!t || !t.startsWith("/"))
306
+ throw new Error("Invalid path");
307
+ const s = t.split("/").slice(1);
308
+ return H(e, 0, s);
309
+ }, A = ({
310
+ formState: e,
311
+ formData: t,
312
+ schemaPathToUpdatePathMap: s
313
+ }) => {
314
+ let r = structuredClone(e);
315
+ return r && (Object.entries(s).forEach(([a, i]) => {
316
+ if (a === i || !i)
317
+ return;
318
+ const l = y({
319
+ json: t,
320
+ path: v(a),
321
+ resultType: "value",
322
+ wrap: !1
323
+ });
324
+ l === void 0 ? r = ge(r, a) : r = w([F(a, l), r]);
325
+ const o = y({
326
+ json: e,
327
+ path: v(a),
328
+ resultType: "value",
329
+ wrap: !1
330
+ });
331
+ o !== void 0 && (r = w([F(i, o), r]));
332
+ }), t && r ? k(t, M(t, r), !1, !1).newDocument : r);
333
+ }, be = ({ formData: e, schemaPathToUpdatePathMap: t }) => w([
334
+ ...Object.entries(t).map(([s, r]) => {
335
+ if (s === r || !r)
336
+ return {};
337
+ const a = y({
338
+ json: e,
339
+ path: v(r),
340
+ resultType: "value",
341
+ wrap: !1
342
+ });
343
+ return a === void 0 ? {} : F(s, a);
344
+ }),
345
+ structuredClone(e)
346
+ ]), ye = ({
347
+ disabled: e,
348
+ formData: t,
349
+ idSchema: s,
350
+ onAddClick: r,
351
+ properties: a,
352
+ readonly: i,
353
+ registry: l,
354
+ required: o,
355
+ schema: c,
356
+ title: d,
357
+ uiSchema: x,
358
+ formContext: u
359
+ }) => {
360
+ const f = !!c.additionalProperties, m = ne(c, x, t) && /* @__PURE__ */ n.jsx(
361
+ L,
362
+ {
363
+ label: d,
364
+ className: "object-property-expand",
365
+ onClick: r(c),
366
+ disabled: e || i,
367
+ uiSchema: x,
368
+ registry: l
369
+ }
370
+ ), j = a.filter((h) => {
371
+ const _ = c.properties?.[h.name]?.hidden;
372
+ if (!_)
373
+ return !0;
374
+ try {
375
+ const p = xe(_);
376
+ if (!p.path)
377
+ throw new Error("Empty path property of hidden descriptor field");
378
+ const g = y({
379
+ path: v(p.path),
380
+ json: u,
381
+ resultType: "value",
382
+ wrap: !1
383
+ });
384
+ return !(g === void 0 || re(p.value, g));
385
+ } catch {
386
+ return !0;
387
+ }
388
+ }).map((h) => h.content);
389
+ return f ? a.length ? /* @__PURE__ */ n.jsxs(n.Fragment, { children: [
390
+ /* @__PURE__ */ n.jsx(
391
+ T,
392
+ {
393
+ label: d,
394
+ required: o,
395
+ showLabel: !0,
396
+ id: s.$id,
397
+ shouldAlignCenter: !1,
398
+ children: /* @__PURE__ */ n.jsx("div", { children: j })
399
+ }
400
+ ),
401
+ m
402
+ ] }) : /* @__PURE__ */ n.jsx(T, { label: d, required: o, showLabel: !0, id: s.$id, children: m }) : /* @__PURE__ */ n.jsxs(n.Fragment, { children: [
403
+ j,
404
+ m
405
+ ] });
406
+ }, ve = (e) => {
407
+ const { idSchema: t, registry: s, required: r, schema: a, title: i, uiSchema: l, description: o } = e, c = !!a.additionalProperties, d = i && !c;
408
+ return /* @__PURE__ */ n.jsxs("fieldset", { id: t.$id, children: [
409
+ d && /* @__PURE__ */ n.jsx(
410
+ O,
411
+ {
412
+ id: te(t),
413
+ title: i,
414
+ required: r,
415
+ schema: a,
416
+ uiSchema: l,
417
+ registry: s,
418
+ description: o
419
+ }
420
+ ),
421
+ /* @__PURE__ */ n.jsx(
422
+ "div",
423
+ {
424
+ className: `${a.properties && !c && t.$id !== "root" ? "dc__border-left pl-12" : ""} ${t.$id === "root" ? "dc__separated-flexbox dc__separated-flexbox--vertical" : "flexbox-col dc__gap-8"}`,
425
+ children: /* @__PURE__ */ n.jsx(ye, { ...e })
426
+ }
427
+ )
428
+ ] });
429
+ }, Te = ({
430
+ id: e,
431
+ disabled: t,
432
+ label: s,
433
+ onKeyChange: r,
434
+ onDropPropertyClick: a,
435
+ readonly: i,
436
+ schema: l,
437
+ children: o,
438
+ uiSchema: c,
439
+ registry: d
440
+ }) => {
441
+ const { templates: x } = d, { RemoveButton: u } = x.ButtonTemplates, f = B in l;
442
+ return /* @__PURE__ */ n.jsx(n.Fragment, { children: f ? /* @__PURE__ */ n.jsxs("div", { className: "dc__position-rel rjsf-form-template__additional-fields display-grid dc__gap-8 flex-align-center", children: [
443
+ /* @__PURE__ */ n.jsx("div", { children: /* @__PURE__ */ n.jsx(
444
+ "input",
445
+ {
446
+ type: "text",
447
+ className: "form__input cn-9 fs-13 lh-20 fw-4",
448
+ id: `${e}-key`,
449
+ onBlur: (m) => r(m.target.value),
450
+ placeholder: S.OBJECT_KEY,
451
+ defaultValue: s
452
+ }
453
+ ) }),
454
+ /* @__PURE__ */ n.jsx("div", { children: o }),
455
+ /* @__PURE__ */ n.jsx("div", { className: "dc__position-abs remove-btn__container", style: { right: "-28px", top: "9px" }, children: /* @__PURE__ */ n.jsx(
456
+ u,
457
+ {
458
+ disabled: t || i,
459
+ onClick: a(s),
460
+ uiSchema: c,
461
+ registry: d
462
+ }
463
+ ) })
464
+ ] }) : o });
465
+ }, we = ({
466
+ id: e,
467
+ onChange: t,
468
+ value: s,
469
+ disabled: r,
470
+ readonly: a,
471
+ autofocus: i
472
+ }) => {
473
+ const l = Y(s) ? !1 : s, o = () => {
474
+ t(!l);
475
+ };
476
+ return /* @__PURE__ */ n.jsxs("div", { className: "flexbox dc__align-items-center dc__gap-8", children: [
477
+ /* @__PURE__ */ n.jsx(
478
+ q,
479
+ {
480
+ name: e,
481
+ ariaLabel: e,
482
+ onChange: o,
483
+ isChecked: l,
484
+ autoFocus: i,
485
+ isDisabled: r || a
486
+ }
487
+ ),
488
+ /* @__PURE__ */ n.jsx("span", { className: "dc__capitalize", children: l.toString() })
489
+ ] });
490
+ }, Fe = (e) => {
491
+ const {
492
+ id: t,
493
+ multiple: s = !1,
494
+ options: r,
495
+ value: a,
496
+ disabled: i,
497
+ readonly: l,
498
+ autofocus: o = !1,
499
+ onChange: c,
500
+ onBlur: d,
501
+ onFocus: x,
502
+ placeholder: u
503
+ } = e, { enumOptions: f = [] } = r, m = s ? [] : null, j = (_) => {
504
+ c(s ? _.map((p) => p.value) : _.value);
505
+ }, h = (_) => s ? f.filter((p) => _.some((g) => C(g, p.value))) : f.find((p) => C(_, p.value));
506
+ return /* @__PURE__ */ n.jsx(
507
+ G,
508
+ {
509
+ inputId: `devtron-rjsf-select__${t}`,
510
+ name: t,
511
+ isMulti: s,
512
+ value: typeof a > "u" ? m : h(a),
513
+ autoFocus: o,
514
+ onChange: j,
515
+ options: f,
516
+ onBlur: () => d(t, a),
517
+ onFocus: () => x(t, a),
518
+ placeholder: u || S.SELECT,
519
+ isDisabled: i || l,
520
+ menuPortalTarget: document.getElementById($),
521
+ menuPosition: "fixed"
522
+ }
523
+ );
524
+ }, Ne = {
525
+ CheckboxWidget: we,
526
+ SelectWidget: Fe
527
+ }, Se = {
528
+ ArrayFieldItemTemplate: ie,
529
+ ArrayFieldTemplate: ce,
530
+ BaseInputTemplate: ue,
531
+ ButtonTemplates: { AddButton: L, RemoveButton: me, SubmitButton: pe },
532
+ FieldTemplate: fe,
533
+ FieldErrorTemplate: he,
534
+ ObjectFieldTemplate: ve,
535
+ TitleFieldTemplate: O,
536
+ WrapIfAdditionalTemplate: Te
537
+ }, Oe = V, Pe = z, Me = J((e, t) => {
538
+ const { schemaPathToUpdatePathMap: s, isUpdatePathKeywordPresent: r } = P(() => {
539
+ const o = je(e.schema);
540
+ return {
541
+ schemaPathToUpdatePathMap: o,
542
+ isUpdatePathKeywordPresent: Object.entries(o).some(([c, d]) => c !== d)
543
+ };
544
+ }, [e.schema]), a = P(() => r ? be({ formData: e.formData ?? {}, schemaPathToUpdatePathMap: s }) : e.formData, [e.formData, s, r]), i = (o) => {
545
+ if (!e.onChange)
546
+ return;
547
+ const c = A({
548
+ formState: o.formData,
549
+ formData: e.formData,
550
+ schemaPathToUpdatePathMap: s
551
+ });
552
+ e.onChange({ ...o, formData: c });
553
+ }, l = (o, c) => {
554
+ if (!e.onSubmit)
555
+ return;
556
+ const d = A({
557
+ formState: o.formData,
558
+ formData: e.formData,
559
+ schemaPathToUpdatePathMap: s
560
+ });
561
+ e.onSubmit?.({ ...o, formData: d }, c);
562
+ };
563
+ return /* @__PURE__ */ n.jsxs(n.Fragment, { children: [
564
+ /* @__PURE__ */ n.jsx(
565
+ Oe,
566
+ {
567
+ noHtml5Validate: !0,
568
+ showErrorList: !1,
569
+ autoComplete: "off",
570
+ ...e,
571
+ formData: a,
572
+ ...r ? {
573
+ onChange: i,
574
+ onSubmit: l
575
+ } : {},
576
+ className: `rjsf-form-template__container ${e.className || ""}`,
577
+ validator: Pe,
578
+ templates: {
579
+ ...Se,
580
+ ...e.templates
581
+ },
582
+ formContext: a,
583
+ widgets: { ...Ne, ...e.widgets },
584
+ translateString: _e,
585
+ ref: t
586
+ }
587
+ ),
588
+ /* @__PURE__ */ n.jsx("div", { id: $ })
589
+ ] });
590
+ });
591
+ export {
592
+ Ue as H,
593
+ Me as R,
594
+ He as a,
595
+ je as b,
596
+ b as c,
597
+ ke as g
598
+ };
@@ -9,3 +9,4 @@ export declare const HIDE_SUBMIT_BUTTON_UI_SCHEMA: {
9
9
  norender: boolean;
10
10
  };
11
11
  };
12
+ export declare const RJSF_FORM_SELECT_PORTAL_TARGET_ID = "rjsf-form-select-portal-target";
@@ -13,7 +13,7 @@ export declare const getRedirectionProps: (url: string) => React.AnchorHTMLAttri
13
13
  /**
14
14
  * Infers the type for json schema from value type
15
15
  */
16
- export declare const getInferredTypeFromValueType: (value: any) => "string" | "number" | "boolean" | "object" | "array" | "null";
16
+ export declare const getInferredTypeFromValueType: (value: any) => "string" | "number" | "boolean" | "object" | "null" | "array";
17
17
  export declare const conformPathToPointers: (path: string) => string;
18
18
  export declare const parseSchemaHiddenType: (hiddenSchema: HiddenType) => MetaHiddenType;
19
19
  export declare const getSchemaPathToUpdatePathMap: (schema: RJSFFormSchema) => Record<string, string>;
@@ -0,0 +1,2 @@
1
+ import { ContextSwitcherTypes } from './types';
2
+ export declare const ContextSwitcher: ({ inputId, options, inputValue, onInputChange, isLoading, value, onChange, placeholder, filterOption, formatOptionLabel, optionListError, reloadOptionList, classNamePrefix, }: ContextSwitcherTypes) => JSX.Element;
@@ -0,0 +1,3 @@
1
+ export { ContextSwitcher } from './ContextSwitcher';
2
+ export type { ContextSwitcherTypes, RecentlyVisitedGroupedOptionsType, RecentlyVisitedOptions } from './types';
3
+ export { getMinCharSearchPlaceholderGroup } from './utils';
@@ -0,0 +1,14 @@
1
+ import { GroupBase } from 'react-select';
2
+ import { SelectPickerOptionType, SelectPickerProps } from '../SelectPicker';
3
+ export interface ContextSwitcherTypes extends Pick<SelectPickerProps, 'placeholder' | 'onChange' | 'value' | 'isLoading' | 'onInputChange' | 'inputValue' | 'inputId' | 'formatOptionLabel' | 'filterOption' | 'optionListError' | 'reloadOptionList' | 'classNamePrefix'> {
4
+ options: GroupBase<SelectPickerOptionType<string | number>>[];
5
+ isAppDataAvailable?: boolean;
6
+ }
7
+ export interface RecentlyVisitedOptions extends SelectPickerOptionType<number> {
8
+ isDisabled?: boolean;
9
+ isRecentlyVisited?: boolean;
10
+ }
11
+ export interface RecentlyVisitedGroupedOptionsType extends GroupBase<SelectPickerOptionType<number>> {
12
+ label: string;
13
+ options: RecentlyVisitedOptions[];
14
+ }
@@ -0,0 +1,5 @@
1
+ import { SelectPickerProps } from '../SelectPicker';
2
+ import { RecentlyVisitedGroupedOptionsType, RecentlyVisitedOptions } from './types';
3
+ export declare const getDisabledOptions: (option: RecentlyVisitedOptions) => SelectPickerProps["isDisabled"];
4
+ export declare const customSelectFilterOption: SelectPickerProps['filterOption'];
5
+ export declare const getMinCharSearchPlaceholderGroup: (resourceKind: string) => RecentlyVisitedGroupedOptionsType;
@@ -101,7 +101,7 @@ export declare enum SelectPickerVariantType {
101
101
  BORDER_LESS = "border-less",
102
102
  COMPACT = "compact"
103
103
  }
104
- export type SelectPickerProps<OptionValue = number | string, IsMulti extends boolean = false> = Pick<SelectProps<OptionValue, IsMulti>, 'name' | 'classNamePrefix' | 'options' | 'value' | 'onChange' | 'isSearchable' | 'isClearable' | 'hideSelectedOptions' | 'controlShouldRenderValue' | 'closeMenuOnSelect' | 'isDisabled' | 'isLoading' | 'required' | 'isOptionDisabled' | 'placeholder' | 'menuPosition' | 'getOptionLabel' | 'getOptionValue' | 'isOptionSelected' | 'menuIsOpen' | 'onMenuOpen' | 'onMenuClose' | 'autoFocus' | 'onBlur' | 'onKeyDown' | 'formatOptionLabel' | 'onInputChange' | 'inputValue' | 'filterOption' | 'noOptionsMessage' | 'defaultMenuIsOpen'> & Partial<Pick<SelectProps<OptionValue, IsMulti>, 'shouldRenderCustomOptions' | 'renderCustomOptions' | 'icon' | 'showSelectedOptionIcon' | 'renderOptionsFooter' | 'shouldRenderTextArea'>> & Required<Pick<SelectProps<OptionValue, IsMulti>, 'inputId'>> & Partial<Pick<CreatableProps<SelectPickerOptionType<OptionValue>, IsMulti, GroupBase<SelectPickerOptionType<OptionValue>>>, 'onCreateOption' | 'formatCreateLabel' | 'menuPortalTarget'>> & Omit<FormFieldWrapperProps, 'children'> & {
104
+ export type SelectPickerProps<OptionValue = number | string, IsMulti extends boolean = false> = Pick<SelectProps<OptionValue, IsMulti>, 'name' | 'classNamePrefix' | 'options' | 'value' | 'onChange' | 'isSearchable' | 'isClearable' | 'hideSelectedOptions' | 'controlShouldRenderValue' | 'closeMenuOnSelect' | 'isDisabled' | 'isLoading' | 'required' | 'isOptionDisabled' | 'placeholder' | 'menuPosition' | 'getOptionLabel' | 'getOptionValue' | 'isOptionSelected' | 'menuIsOpen' | 'onMenuOpen' | 'onMenuClose' | 'autoFocus' | 'onBlur' | 'onKeyDown' | 'formatOptionLabel' | 'onInputChange' | 'inputValue' | 'filterOption' | 'noOptionsMessage' | 'defaultMenuIsOpen' | 'onFocus'> & Partial<Pick<SelectProps<OptionValue, IsMulti>, 'shouldRenderCustomOptions' | 'renderCustomOptions' | 'icon' | 'showSelectedOptionIcon' | 'renderOptionsFooter' | 'shouldRenderTextArea'>> & Required<Pick<SelectProps<OptionValue, IsMulti>, 'inputId'>> & Partial<Pick<CreatableProps<SelectPickerOptionType<OptionValue>, IsMulti, GroupBase<SelectPickerOptionType<OptionValue>>>, 'onCreateOption' | 'formatCreateLabel' | 'menuPortalTarget'>> & Omit<FormFieldWrapperProps, 'children'> & {
105
105
  /**
106
106
  * Config for the footer at the bottom of menu list. It is sticky by default
107
107
  *
@@ -21,6 +21,7 @@ export * from './CollapsibleList';
21
21
  export * from './CommitChipCell';
22
22
  export * from './Confetti';
23
23
  export * from './ConfirmationModal';
24
+ export * from './ContextSwitcher';
24
25
  export * from './CountrySelect';
25
26
  export * from './CustomInput';
26
27
  export * from './DatePicker';
@@ -1 +1,3 @@
1
+ import { PreferredResourceKindType } from './types';
1
2
  export declare const USER_PREFERENCES_ATTRIBUTE_KEY = "userPreferences";
3
+ export declare const DEFAULT_RESOURCES_MAP: Record<PreferredResourceKindType, null>;
@@ -1,4 +1,4 @@
1
1
  export * from './constants';
2
- export { getUserPreferences, updateUserPreferences } from './service';
2
+ export { getUserPreferences, updateAndPersistUserPreferences, updateUserPreferences } from './service';
3
3
  export * from './types';
4
4
  export { useUserPreferences } from './useUserPrefrences';