@realtek/core-theme 0.0.375 → 0.0.377

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.
package/dist-lib/index.js CHANGED
@@ -7,7 +7,7 @@ import { a as ya, c as ba, d as xa, f as Sa, i as Ca, l as wa, m as Ta, o as Ea,
7
7
  import { r as Ma } from "./diceCandidateMapper-DqBO4EhL.js";
8
8
  import { r as Na } from "./formGroupsCache-JeC59oNe.js";
9
9
  import { r as Pa } from "./addFormApi-TMxokB57.js";
10
- import { a as Fa, c as Ia, i as La, l as Ra, o as za, r as Ba, s as Va, t as Ha } from "./FacebookCourseMappingsSection-rwzWu8Z5.js";
10
+ import { a as Fa, c as Ia, i as La, l as Ra, o as za, r as Ba, s as Va, t as Ha } from "./FacebookCourseMappingsSection-Dqn0D7cH.js";
11
11
  import { A as Ua, C as Wa, D as Ga, E as Ka, M as qa, O as Ja, S as Ya, T as Xa, _ as Za, a as Qa, b as $a, c as eo, d as to, f as no, g as ro, h as io, i as ao, j as oo, k as so, l as co, m as lo, n as uo, o as fo, p as po, r as mo, s as ho, t as go, u as _o, v as vo, w as yo, x as bo, y as xo } from "./verifyLockState-DhKU0URr.js";
12
12
  import So, { Fragment as Co, Suspense as wo, cloneElement as To, createContext as Eo, createElement as Do, isValidElement as Oo, lazy as ko, useCallback as Ao, useContext as jo, useEffect as I, useId as Mo, useLayoutEffect as No, useMemo as L, useRef as Po, useState as R, useSyncExternalStore as Fo } from "react";
13
13
  import { Alert as Io, AutoComplete as Lo, Avatar as Ro, Badge as zo, Breadcrumb as Bo, Button as z, Card as Vo, Checkbox as Ho, Col as B, Collapse as Uo, DatePicker as Wo, Descriptions as Go, Divider as Ko, Drawer as qo, Dropdown as Jo, Empty as Yo, Flex as Xo, Form as V, Grid as Zo, Input as H, InputNumber as Qo, Layout as $o, List as es, Mentions as ts, Menu as ns, Modal as rs, Popconfirm as is, Popover as as, Progress as os, Radio as ss, Result as cs, Row as ls, Segmented as us, Select as U, Skeleton as ds, Slider as fs, Space as W, Spin as ps, Statistic as ms, Steps as hs, Switch as G, Table as gs, Tabs as _s, Tag as K, TimePicker as vs, Timeline as ys, Tooltip as q, Tree as bs, Typography as xs, Upload as Ss, message as J } from "antd";
@@ -4845,37 +4845,52 @@ function Gh({ prompt: e, action: t, record: n, tab: r, onSubmit: i, onCancel: a,
4845
4845
  }
4846
4846
  //#endregion
4847
4847
  //#region src/components/detail/DetailGroupActions.jsx
4848
- function Kh({ moduleName: e, keys: t = [], record: n, onHostAction: r = null, onDone: i = null }) {
4849
- let a = ru(), o = nu(), { actions: s, actionRules: c } = jh(e), [l, u] = R(null), d = new Map((s ?? []).filter((e) => e?.key).map((e) => [String(e.key), e])), f = t.map((e) => d.get(String(e))).filter(Boolean).filter((e) => e.actionType !== "host" || typeof r == "function").filter((e) => !j(e.key, n, c, void 0, "detail")).map((e) => ({
4848
+ function Kh({ moduleName: e, keys: t = [], record: n, onHostAction: r = null, onDone: i = null, displayOnly: a = !1 }) {
4849
+ let o = ru(), s = nu(), { actions: c, actionRules: l } = jh(e), [u, d] = R(null), f = new Map((c ?? []).filter((e) => e?.key).map((e) => [String(e.key), e])), p = t.map((e) => f.get(String(e))).filter(Boolean).filter((e) => e.actionType !== "host" || typeof r == "function").filter((e) => !j(e.key, n, l, void 0, "detail")).map((e) => ({
4850
4850
  action: e,
4851
- reason: Cn(e.key, n, c, void 0, "detail")
4851
+ reason: Cn(e.key, n, l, void 0, "detail")
4852
4852
  }));
4853
- if (!f.length) return null;
4854
- let p = String(n?._id?.$oid ?? n?._id ?? n?.id ?? ""), m = (t, s = null) => (p && ir(e, p), t.actionType === "host" ? r?.(t.key, n, t) : Fh(t, n, {
4855
- navigate: a,
4856
- location: o,
4853
+ if (!p.length) return null;
4854
+ if (a) return /* @__PURE__ */ X("ul", {
4855
+ className: "v1-dg-actions v1-dg-actions--display",
4856
+ children: p.map(({ action: e }) => /* @__PURE__ */ Z("li", {
4857
+ className: "v1-dg-step",
4858
+ "data-action": e.key,
4859
+ children: [/* @__PURE__ */ X("span", {
4860
+ className: "v1-dg-action__icon",
4861
+ "aria-hidden": "true",
4862
+ "data-icon": e.icon || void 0
4863
+ }), /* @__PURE__ */ X("span", {
4864
+ className: "v1-dg-action__label",
4865
+ children: e.label || e.key
4866
+ })]
4867
+ }, e.key))
4868
+ });
4869
+ let m = String(n?._id?.$oid ?? n?._id ?? n?.id ?? ""), h = (t, a = null) => (m && ir(e, m), t.actionType === "host" ? r?.(t.key, n, t) : Fh(t, n, {
4870
+ navigate: o,
4871
+ location: s,
4857
4872
  module: e,
4858
4873
  onDone: () => i?.(),
4859
- input: s
4860
- })), h = (e) => {
4874
+ input: a
4875
+ })), g = (e) => {
4861
4876
  let t = () => {
4862
4877
  if (Lh(e.inputPrompt)) {
4863
- u(e);
4878
+ d(e);
4864
4879
  return;
4865
4880
  }
4866
- return m(e);
4881
+ return h(e);
4867
4882
  };
4868
4883
  return Lt(e) ? $t(e, n, {}).then((e) => e ? t() : void 0) : t();
4869
4884
  };
4870
4885
  return /* @__PURE__ */ Z("div", {
4871
4886
  className: "v1-dg-actions",
4872
- children: [f.map(({ action: e, reason: t }) => {
4887
+ children: [p.map(({ action: e, reason: t }) => {
4873
4888
  let n = /* @__PURE__ */ Z(z, {
4874
4889
  className: "v1-dg-action",
4875
4890
  "data-action": e.key,
4876
4891
  danger: !!e.danger || void 0,
4877
4892
  disabled: !!t,
4878
- onClick: () => h(e),
4893
+ onClick: () => g(e),
4879
4894
  children: [
4880
4895
  /* @__PURE__ */ X("span", {
4881
4896
  className: "v1-dg-action__icon",
@@ -4896,17 +4911,17 @@ function Kh({ moduleName: e, keys: t = [], record: n, onHostAction: r = null, on
4896
4911
  title: t,
4897
4912
  children: /* @__PURE__ */ X("span", { children: n })
4898
4913
  }, e.key) : n;
4899
- }), l && /* @__PURE__ */ X(Gh, {
4900
- prompt: l.inputPrompt,
4901
- action: l,
4914
+ }), u && /* @__PURE__ */ X(Gh, {
4915
+ prompt: u.inputPrompt,
4916
+ action: u,
4902
4917
  record: n,
4903
4918
  tab: "",
4904
- onCancel: () => u(null),
4919
+ onCancel: () => d(null),
4905
4920
  onSubmit: (e, t) => {
4906
- let n = l;
4907
- u(null), m(n, Bh(n.inputPrompt, e, t));
4921
+ let n = u;
4922
+ d(null), h(n, Bh(n.inputPrompt, e, t));
4908
4923
  }
4909
- }, l.key)]
4924
+ }, u.key)]
4910
4925
  });
4911
4926
  }
4912
4927
  //#endregion
@@ -5064,18 +5079,18 @@ function og({ value: e }) {
5064
5079
  children: t
5065
5080
  });
5066
5081
  }
5067
- function sg({ moduleName: e, id: t, refreshKey: n = 0, onDescriptionSaved: r, masterLabelFields: i = [], groupFilter: o = null, emptyContent: s = null, onOpenTab: c = null, onHostAction: l = null, onActionDone: u = null }) {
5068
- let [d, f] = R([]), [p, m] = R(!!e), [h, g] = R(""), [_, y] = R(!1), [b, x] = R(""), [S, C] = R(!1), [w, T] = R([]), E = Array.isArray(i) ? [...new Set(i.map((e) => String(e ?? "").trim()).filter(Boolean))].sort().join("|") : "", D = L(() => new Set(E ? E.split("|") : []), [E]), [O, A] = R({});
5082
+ function sg({ moduleName: e, id: t, refreshKey: n = 0, onDescriptionSaved: r, masterLabelFields: i = [], groupFilter: o = null, emptyContent: s = null, onOpenTab: c = null, onHostAction: l = null, onActionDone: u = null, displayOnlyActionGroups: d = null }) {
5083
+ let [f, p] = R([]), [m, h] = R(!!e), [g, _] = R(""), [y, b] = R(!1), [x, S] = R(""), [C, w] = R(!1), [T, E] = R([]), D = Array.isArray(i) ? [...new Set(i.map((e) => String(e ?? "").trim()).filter(Boolean))].sort().join("|") : "", O = L(() => new Set(D ? D.split("|") : []), [D]), [A, j] = R({});
5069
5084
  I(() => {
5070
5085
  if (!e || !t) {
5071
- Promise.resolve().then(() => T([]));
5086
+ Promise.resolve().then(() => E([]));
5072
5087
  return;
5073
5088
  }
5074
5089
  let n = !1;
5075
5090
  return qt(e, t).then((e) => {
5076
- n || T(Array.isArray(e) ? e : e?.data ?? []);
5091
+ n || E(Array.isArray(e) ? e : e?.data ?? []);
5077
5092
  }).catch(() => {
5078
- n || T([]);
5093
+ n || E([]);
5079
5094
  }), () => {
5080
5095
  n = !0;
5081
5096
  };
@@ -5084,18 +5099,18 @@ function sg({ moduleName: e, id: t, refreshKey: n = 0, onDescriptionSaved: r, ma
5084
5099
  t,
5085
5100
  n
5086
5101
  ]);
5087
- let [j, M] = R(null), [N, ee] = R({}), [P, te] = R({});
5102
+ let [M, N] = R(null), [ee, P] = R({}), [te, ne] = R({});
5088
5103
  I(() => {
5089
5104
  if (!e || !t) {
5090
- M(null);
5105
+ N(null);
5091
5106
  return;
5092
5107
  }
5093
5108
  let n = !1;
5094
5109
  return v(a, `/module/list?module=${encodeURIComponent(e)}&id=${encodeURIComponent(t)}`).then((e) => {
5095
5110
  let t = e?.data?.data ?? e?.data ?? [];
5096
- n || M(Array.isArray(t) ? t[0] : null);
5111
+ n || N(Array.isArray(t) ? t[0] : null);
5097
5112
  }).catch(() => {
5098
- n || M(null);
5113
+ n || N(null);
5099
5114
  }), () => {
5100
5115
  n = !0;
5101
5116
  };
@@ -5107,7 +5122,7 @@ function sg({ moduleName: e, id: t, refreshKey: n = 0, onDescriptionSaved: r, ma
5107
5122
  let e = !1;
5108
5123
  return v(a, "/module/list?module=users").then((t) => {
5109
5124
  let n = t?.data?.data ?? t?.data ?? [];
5110
- e || ee(Xt(n));
5125
+ e || P(Xt(n));
5111
5126
  }).catch(() => {}), () => {
5112
5127
  e = !0;
5113
5128
  };
@@ -5116,17 +5131,17 @@ function sg({ moduleName: e, id: t, refreshKey: n = 0, onDescriptionSaved: r, ma
5116
5131
  let n = !1;
5117
5132
  async function r() {
5118
5133
  try {
5119
- m(!0), g("");
5134
+ h(!0), _("");
5120
5135
  let [r] = await Promise.all([Pe({
5121
5136
  module: e,
5122
5137
  id: t,
5123
5138
  view: "detail"
5124
5139
  }), Te()]), i = await ig(Array.isArray(r) ? r : [], t, e);
5125
- n || f(i);
5140
+ n || p(i);
5126
5141
  } catch (t) {
5127
- console.error(`Failed to fetch ${e} detail fields:`, t), n || g(t?.message || "Failed to fetch detail fields");
5142
+ console.error(`Failed to fetch ${e} detail fields:`, t), n || _(t?.message || "Failed to fetch detail fields");
5128
5143
  } finally {
5129
- n || m(!1);
5144
+ n || h(!1);
5130
5145
  }
5131
5146
  }
5132
5147
  return r(), () => {
@@ -5137,17 +5152,17 @@ function sg({ moduleName: e, id: t, refreshKey: n = 0, onDescriptionSaved: r, ma
5137
5152
  t,
5138
5153
  n
5139
5154
  ]), I(() => {
5140
- if (!e || !E || !d.length) {
5141
- A((e) => Object.keys(e).length ? {} : e);
5155
+ if (!e || !D || !f.length) {
5156
+ j((e) => Object.keys(e).length ? {} : e);
5142
5157
  return;
5143
5158
  }
5144
5159
  let t = [], n = /* @__PURE__ */ new Set();
5145
- for (let e of d) for (let r of e?.fields ?? []) {
5160
+ for (let e of f) for (let r of e?.fields ?? []) {
5146
5161
  let e = String(r?.field ?? "").trim();
5147
- !e || n.has(e) || !D.has(e) || (n.add(e), !(String(r?.dataSource ?? "").trim().toLowerCase() !== "master" || !r?.masterName) && t.push(r));
5162
+ !e || n.has(e) || !O.has(e) || (n.add(e), !(String(r?.dataSource ?? "").trim().toLowerCase() !== "master" || !r?.masterName) && t.push(r));
5148
5163
  }
5149
5164
  if (!t.length) {
5150
- A((e) => Object.keys(e).length ? {} : e);
5165
+ j((e) => Object.keys(e).length ? {} : e);
5151
5166
  return;
5152
5167
  }
5153
5168
  let r = !1;
@@ -5171,38 +5186,38 @@ function sg({ moduleName: e, id: t, refreshKey: n = 0, onDescriptionSaved: r, ma
5171
5186
  return console.warn(`[DetailViewV1] Unable to resolve master label for "${t.field}":`, e), [t.field, {}];
5172
5187
  }
5173
5188
  })).then((e) => {
5174
- r || A(Object.fromEntries(e));
5189
+ r || j(Object.fromEntries(e));
5175
5190
  }), () => {
5176
5191
  r = !0;
5177
5192
  };
5178
5193
  }, [
5179
5194
  e,
5180
- d,
5181
- E,
5182
- D
5195
+ f,
5196
+ D,
5197
+ O
5183
5198
  ]);
5184
- let ne = L(() => Qh(d).filter((e) => typeof o != "function" || o(e)), [d, o]), re = L(() => {
5199
+ let re = L(() => Qh(f).filter((e) => typeof o != "function" || o(e)), [f, o]), ie = L(() => {
5185
5200
  let e = /* @__PURE__ */ new Set();
5186
- return d.forEach((t) => {
5201
+ return f.forEach((t) => {
5187
5202
  Yh(t.appendHistory) && [t.historyField, ...t.historyFields || []].filter(Boolean).forEach((t) => e.add(t));
5188
5203
  }), e;
5189
- }, [d]);
5204
+ }, [f]);
5190
5205
  I(() => {
5191
- if (!j || !re.size) return;
5206
+ if (!M || !ie.size) return;
5192
5207
  let e = /* @__PURE__ */ new Set();
5193
- if (re.forEach((t) => {
5194
- let n = j[t];
5208
+ if (ie.forEach((t) => {
5209
+ let n = M[t];
5195
5210
  Array.isArray(n) && n.forEach((t) => {
5196
5211
  let n = t?.updatedBy ?? t?.changedBy;
5197
5212
  if (n == null || n === "") return;
5198
5213
  let r = String(n);
5199
- !N[r] && !P[r] && e.add(r);
5214
+ !ee[r] && !te[r] && e.add(r);
5200
5215
  });
5201
5216
  }), !e.size) return;
5202
5217
  let t = !1;
5203
5218
  return Promise.all([...e].map((e) => ar(e).then((t) => [e, t]))).then((e) => {
5204
5219
  let n = Object.fromEntries(e.filter(([, e]) => e));
5205
- !t && Object.keys(n).length && te((e) => ({
5220
+ !t && Object.keys(n).length && ne((e) => ({
5206
5221
  ...e,
5207
5222
  ...n
5208
5223
  }));
@@ -5210,15 +5225,15 @@ function sg({ moduleName: e, id: t, refreshKey: n = 0, onDescriptionSaved: r, ma
5210
5225
  t = !0;
5211
5226
  };
5212
5227
  }, [
5213
- j,
5214
- re,
5215
- N,
5216
- P
5228
+ M,
5229
+ ie,
5230
+ ee,
5231
+ te
5217
5232
  ]);
5218
- let ie = {
5233
+ let ae = {
5219
5234
  proposedRate: "Proposed Rate",
5220
5235
  candidateBudget: "Candidate Rate"
5221
- }, ae = (e, t, n) => {
5236
+ }, oe = (e, t, n) => {
5222
5237
  let r = `${e}.`, i = (t) => [t?.historyField, ...t?.historyFields || []].includes(e);
5223
5238
  for (let r of t ?? []) {
5224
5239
  if (!i(r)) continue;
@@ -5227,81 +5242,81 @@ function sg({ moduleName: e, id: t, refreshKey: n = 0, onDescriptionSaved: r, ma
5227
5242
  let a = r.historyLabelFrom?.[e];
5228
5243
  if (a) {
5229
5244
  let t = (r.fields ?? []).find((e) => e?.field === a);
5230
- if (t) return fm(t, n) || ie[e] || e;
5245
+ if (t) return fm(t, n) || ae[e] || e;
5231
5246
  }
5232
5247
  }
5233
- for (let i of t ?? []) for (let t of i?.fields ?? []) if (String(t?.field ?? "").startsWith(r)) return fm(t, n) || ie[e] || e;
5234
- return ie[e] || e;
5235
- }, oe = (e, t) => {
5236
- let { amount: n, currency: r, unit: i } = Em(e, t, d), a = e?.timestamp?.$date ?? e?.timestamp ?? e?.updatedAt?.$date ?? e?.updatedAt ?? e?.changedAt?.$date ?? e?.changedAt, o = e?.updatedBy ?? e?.changedBy, s = n == null || n === "" ? null : Number(n);
5248
+ for (let i of t ?? []) for (let t of i?.fields ?? []) if (String(t?.field ?? "").startsWith(r)) return fm(t, n) || ae[e] || e;
5249
+ return ae[e] || e;
5250
+ }, se = (e, t) => {
5251
+ let { amount: n, currency: r, unit: i } = Em(e, t, f), a = e?.timestamp?.$date ?? e?.timestamp ?? e?.updatedAt?.$date ?? e?.updatedAt ?? e?.changedAt?.$date ?? e?.changedAt, o = e?.updatedBy ?? e?.changedBy, s = n == null || n === "" ? null : Number(n);
5237
5252
  return {
5238
5253
  amount: s != null && !Number.isNaN(s) ? `${Om(r)}${Pm(s)}` : "—",
5239
5254
  unit: Am(i),
5240
5255
  when: a && Jl(a).isValid() ? We(a) : "",
5241
- by: o == null ? "" : N[String(o)] || P[String(o)] || ""
5256
+ by: o == null ? "" : ee[String(o)] || te[String(o)] || ""
5242
5257
  };
5243
- }, se = L(() => {
5244
- if (!j) return [];
5245
- let e = lm(d), t = [];
5246
- return re.forEach((n) => {
5247
- let r = j[n];
5258
+ }, ce = L(() => {
5259
+ if (!M) return [];
5260
+ let e = lm(f), t = [];
5261
+ return ie.forEach((n) => {
5262
+ let r = M[n];
5248
5263
  if (!Array.isArray(r) || r.length === 0) return;
5249
5264
  let i = r.filter((e) => e && (e.timestamp || e.updatedAt || e.changedAt));
5250
5265
  i.length !== 0 && t.push({
5251
5266
  key: n,
5252
- label: ae(n, d, e),
5253
- entries: [...i].reverse().map((e) => oe(e, n))
5267
+ label: oe(n, f, e),
5268
+ entries: [...i].reverse().map((e) => se(e, n))
5254
5269
  });
5255
5270
  }), t;
5256
5271
  }, [
5257
- j,
5258
- d,
5259
- re,
5260
- N,
5261
- P
5262
- ]), ce = L(() => {
5263
- let e = new Set(se.map((e) => e.key));
5264
- return e.size ? ne.map((t) => {
5272
+ M,
5273
+ f,
5274
+ ie,
5275
+ ee,
5276
+ te
5277
+ ]), le = L(() => {
5278
+ let e = new Set(ce.map((e) => e.key));
5279
+ return e.size ? re.map((t) => {
5265
5280
  if (!Yh(t.appendHistory)) return t;
5266
5281
  let n = [t.historyField, ...t.historyFields || []].filter((t) => t && e.has(t));
5267
5282
  return n.length ? {
5268
5283
  ...t,
5269
5284
  fields: t.fields.filter((e) => !n.some((t) => String(e.field ?? "").startsWith(`${t}.`)))
5270
5285
  } : t;
5271
- }).filter((e) => e.fields.length) : ne;
5272
- }, [ne, se]), le = L(() => {
5273
- let e = new Set(se.map((e) => e.key)), t = d.find((t) => Yh(t.appendHistory) && [t.historyField, ...t.historyFields || []].some((t) => t && e.has(t)));
5286
+ }).filter((e) => e.fields.length) : re;
5287
+ }, [re, ce]), ue = L(() => {
5288
+ let e = new Set(ce.map((e) => e.key)), t = f.find((t) => Yh(t.appendHistory) && [t.historyField, ...t.historyFields || []].some((t) => t && e.has(t)));
5274
5289
  return t?.label ?? t?.name ?? "Rate Details";
5275
- }, [d, se]), ue = e === "job", de = L(() => ue ? Zh(d) : null, [ue, d]), fe = () => {
5276
- y(!1), x("");
5277
- }, pe = async () => {
5278
- if (!b.trim()) {
5290
+ }, [f, ce]), de = e === "job", fe = L(() => de ? Zh(f) : null, [de, f]), pe = () => {
5291
+ b(!1), S("");
5292
+ }, me = async () => {
5293
+ if (!x.trim()) {
5279
5294
  J.warning("Please enter a job description");
5280
5295
  return;
5281
5296
  }
5282
- C(!0);
5297
+ w(!0);
5283
5298
  try {
5284
- await mp(t, b.trim()), y(!1), x(""), m(!0);
5299
+ await mp(t, x.trim()), b(!1), S(""), h(!0);
5285
5300
  let n = await Pe({
5286
5301
  module: e,
5287
5302
  id: t,
5288
5303
  view: "detail"
5289
5304
  });
5290
- f(Array.isArray(n) ? n : []), J.success("Description updated and parsed successfully"), r?.();
5305
+ p(Array.isArray(n) ? n : []), J.success("Description updated and parsed successfully"), r?.();
5291
5306
  } catch {
5292
5307
  J.error("Failed to update description");
5293
5308
  } finally {
5294
- C(!1), m(!1);
5309
+ w(!1), h(!1);
5295
5310
  }
5296
- }, me = (e) => {
5311
+ }, he = (e) => {
5297
5312
  let t = Number(e.detailCol);
5298
5313
  if (Number.isFinite(t) && t > 0) return Math.max(1, Math.min(3, Math.round(t / 8)));
5299
5314
  let n = typeof e.value == "string" ? e.value : "";
5300
5315
  return e.renderType === "document" || e.type === "text-editor" || n.length > 120 ? 3 : /\s(?:·|-|–|\/)\s/.test(n) && n.length >= 16 ? 2 : 1;
5301
- }, he = (e) => e.renderType === "document" || e.type === "text-editor" || (typeof e.value == "string" ? e.value : "").length > 60, ge = L(() => lm(d), [d]), _e = (e, t) => {
5316
+ }, ge = (e) => e.renderType === "document" || e.type === "text-editor" || (typeof e.value == "string" ? e.value : "").length > 60, _e = L(() => lm(f), [f]), ve = (e, t) => {
5302
5317
  let n = String(e?.field ?? "").trim();
5303
- if (!n || !D.has(n)) return t;
5304
- let r = O[n];
5318
+ if (!n || !O.has(n)) return t;
5319
+ let r = A[n];
5305
5320
  if (!r || !Object.keys(r).length) return t;
5306
5321
  let i = (e) => {
5307
5322
  if (e == null || e === "") return e;
@@ -5314,17 +5329,17 @@ function sg({ moduleName: e, id: t, refreshKey: n = 0, onDescriptionSaved: r, ma
5314
5329
  return r[String(e)] ?? e;
5315
5330
  };
5316
5331
  return Array.isArray(t) ? t.map(i) : i(t);
5317
- }, ve = (e) => {
5318
- let t = _e(e, e?.value);
5332
+ }, ye = (e) => {
5333
+ let t = ve(e, e?.value);
5319
5334
  return t === e?.value ? e : {
5320
5335
  ...e,
5321
5336
  value: t
5322
5337
  };
5323
- }, ye = (e, t = "", n = ge) => {
5324
- let r = ve(e), i = r.label ?? r.field, a = he(r), o = typeof r.value == "string" ? r.value : void 0;
5338
+ }, be = (e, t = "", n = _e) => {
5339
+ let r = ye(e), i = r.label ?? r.field, a = ge(r), o = typeof r.value == "string" ? r.value : void 0;
5325
5340
  return /* @__PURE__ */ X("div", {
5326
5341
  className: `v1-detail-cell${a ? " v1-detail-cell--wrap" : ""}`,
5327
- style: { "--v1-cell-span": me(r) },
5342
+ style: { "--v1-cell-span": he(r) },
5328
5343
  children: /* @__PURE__ */ Z("div", {
5329
5344
  className: "v1-detail-field",
5330
5345
  title: !a && o ? `${i}: ${o}` : void 0,
@@ -5339,18 +5354,18 @@ function sg({ moduleName: e, id: t, refreshKey: n = 0, onDescriptionSaved: r, ma
5339
5354
  })]
5340
5355
  })
5341
5356
  }, `${e.field}${t}`);
5342
- }, be = /^\d{4}-\d{2}-\d{2}([T ]\d{2}:\d{2}|$)/, xe = (e, t, n = ge) => {
5343
- let r = _e(e, t), i = sm(e, r, St());
5357
+ }, xe = /^\d{4}-\d{2}-\d{2}([T ]\d{2}:\d{2}|$)/, Se = (e, t, n = _e) => {
5358
+ let r = ve(e, t), i = sm(e, r, St());
5344
5359
  if (i) return i.join("; ");
5345
5360
  if (r == null || typeof r == "object" && !Array.isArray(r)) return "";
5346
5361
  let a = Array.isArray(r) ? r.map((e) => String(e ?? "").trim()).filter(Boolean).join(", ") : String(r).trim();
5347
5362
  if (!a) return "";
5348
- if (e?.type === "date" || e?.renderType === "date" || be.test(a)) {
5363
+ if (e?.type === "date" || e?.renderType === "date" || xe.test(a)) {
5349
5364
  let t = Jl(a);
5350
5365
  if (t.isValid()) return t.format(e?.renderOptions?.dateFormat || St().dateFormat);
5351
5366
  }
5352
5367
  return (e?.formatter === "phone" || e?.type === "phone" || e?.renderType === "phone") && we(e, a, n) || a;
5353
- }, Se = (e, t) => {
5368
+ }, Ce = (e, t) => {
5354
5369
  if (e?.hidePartLabel || e?.renderOptions?.hidePartLabel) return "";
5355
5370
  let n = String(e?.label ?? "").trim();
5356
5371
  if (!n) return "";
@@ -5361,11 +5376,11 @@ function sg({ moduleName: e, id: t, refreshKey: n = 0, onDescriptionSaved: r, ma
5361
5376
  a += 1;
5362
5377
  }
5363
5378
  return i.slice(a).join(" ").trim();
5364
- }, Ce = (e, t, n, r, i = ge) => {
5379
+ }, Ee = (e, t, n, r, i = _e) => {
5365
5380
  let a = e.map((e) => ({
5366
5381
  field: e,
5367
5382
  cell: n(e)
5368
- })), o = a.filter(({ cell: e }) => Oe(e)).map(({ cell: e }) => ({
5383
+ })), o = a.filter(({ cell: e }) => ke(e)).map(({ cell: e }) => ({
5369
5384
  ...e,
5370
5385
  renderType: "document"
5371
5386
  })).filter((e) => Hp(e.value)), s = /* @__PURE__ */ new Set();
@@ -5376,13 +5391,13 @@ function sg({ moduleName: e, id: t, refreshKey: n = 0, onDescriptionSaved: r, ma
5376
5391
  n !== e && t.includes(n.field) && s.add(n.field);
5377
5392
  });
5378
5393
  });
5379
- let c = typeof t.combineLabel == "string" && t.combineLabel.trim() ? t.combineLabel : t.label ?? t.field, l = a.filter(({ cell: e }) => !Oe(e)).filter(({ field: e }) => !s.has(e.field)).filter(({ cell: e }) => !Kp(e, e.value)).map(({ field: e, cell: t }) => ({
5394
+ let c = typeof t.combineLabel == "string" && t.combineLabel.trim() ? t.combineLabel : t.label ?? t.field, l = a.filter(({ cell: e }) => !ke(e)).filter(({ field: e }) => !s.has(e.field)).filter(({ cell: e }) => !Kp(e, e.value)).map(({ field: e, cell: t }) => ({
5380
5395
  key: e.field,
5381
- label: Se(e, c),
5382
- text: xe(e, t.value, i)
5396
+ label: Ce(e, c),
5397
+ text: Se(e, t.value, i)
5383
5398
  })).filter((e) => e.text !== "");
5384
5399
  if (!l.length && !o.length && Kp(t, void 0)) return null;
5385
- let u = l.map((e) => `${e.label ? `${e.label} ` : ""}${e.text}`).join(" · "), d = me({
5400
+ let u = l.map((e) => `${e.label ? `${e.label} ` : ""}${e.text}`).join(" · "), d = he({
5386
5401
  detailCol: t.detailCol,
5387
5402
  value: u
5388
5403
  }), f = o.length ? Math.max(d, 2) : d;
@@ -5420,7 +5435,7 @@ function sg({ moduleName: e, id: t, refreshKey: n = 0, onDescriptionSaved: r, ma
5420
5435
  ]
5421
5436
  })
5422
5437
  }, `${t.field}-merged${r}`);
5423
- }, Ee = (e, t, n = "", r = ge) => {
5438
+ }, De = (e, t, n = "", r = _e) => {
5424
5439
  let i = /* @__PURE__ */ new Set(), a = [];
5425
5440
  return e.forEach((o) => {
5426
5441
  let s = o.combineKey?.trim?.();
@@ -5429,17 +5444,17 @@ function sg({ moduleName: e, id: t, refreshKey: n = 0, onDescriptionSaved: r, ma
5429
5444
  i.add(s);
5430
5445
  let o = e.filter((e) => e.combineKey?.trim?.() === s);
5431
5446
  if (o.length > 1) {
5432
- let e = o.find((e) => e.combineLabel) ?? o[0], i = Ce(o, e, t, n, r);
5447
+ let e = o.find((e) => e.combineLabel) ?? o[0], i = Ee(o, e, t, n, r);
5433
5448
  i && a.push(i);
5434
5449
  return;
5435
5450
  }
5436
5451
  }
5437
5452
  let c = t(o);
5438
- Kp(c, c.value) || a.push(ye(c, n, r));
5453
+ Kp(c, c.value) || a.push(be(c, n, r));
5439
5454
  }), a;
5440
- }, De = L(() => {
5455
+ }, Oe = L(() => {
5441
5456
  let e = {};
5442
- for (let t of w) {
5457
+ for (let t of T) {
5443
5458
  let n = t.fieldName || t.field || "file";
5444
5459
  (e[n] ??= []).push({
5445
5460
  location: t.s3Key ?? t.location ?? t.uniqueName ?? "",
@@ -5448,25 +5463,25 @@ function sg({ moduleName: e, id: t, refreshKey: n = 0, onDescriptionSaved: r, ma
5448
5463
  });
5449
5464
  }
5450
5465
  return e;
5451
- }, [w]), Oe = (e) => e.type === "file" || e.type === "document" || e.renderType === "document", ke = (e) => De[e.field] || e.fileKey && De[e.fileKey] || null, Ae = (e) => String(e?.name || e?.location || "").trim().toLowerCase(), je = (e) => {
5466
+ }, [T]), ke = (e) => e.type === "file" || e.type === "document" || e.renderType === "document", Ae = (e) => Oe[e.field] || e.fileKey && Oe[e.fileKey] || null, je = (e) => String(e?.name || e?.location || "").trim().toLowerCase(), Me = (e) => {
5452
5467
  let [t] = F(e);
5453
- return !t || !t.location && !t.url ? null : Ae(t);
5454
- }, Me = (e, t = []) => {
5468
+ return !t || !t.location && !t.url ? null : je(t);
5469
+ }, Ne = (e, t = []) => {
5455
5470
  let n = /* @__PURE__ */ new Set(), r = [], i = (e) => {
5456
5471
  if (e == null || e === "") return;
5457
- let t = je(e);
5472
+ let t = Me(e);
5458
5473
  t !== null && (t && n.has(t) || (t && n.add(t), r.push(e)));
5459
5474
  };
5460
5475
  return t.forEach(i), (Array.isArray(e) ? e : [e]).forEach(i), r;
5461
- }, Ne = (e) => F(e).map(Ae).filter(Boolean), Fe = (e) => {
5476
+ }, Fe = (e) => F(e).map(je).filter(Boolean), Ie = (e) => {
5462
5477
  let t = (e.validations ?? []).find((e) => e?.type === "maxFiles");
5463
5478
  return t ? Math.max(1, Number(t.value ?? 1)) : Yh(e.multiple) ? Math.max(1, Number(e.maxCount ?? 5)) : Math.max(1, Number(e.maxCount ?? 1));
5464
- }, Ie = (e, t, n) => {
5465
- let r = Fe(e);
5479
+ }, Le = (e, t, n) => {
5480
+ let r = Ie(e);
5466
5481
  if (t.length <= r) return t;
5467
- let [i] = Ne(n);
5468
- return (i ? [...t].sort((e, t) => Number(je(t) === i) - Number(je(e) === i)) : t).slice(0, r);
5469
- }, Le = (e, t) => {
5482
+ let [i] = Fe(n);
5483
+ return (i ? [...t].sort((e, t) => Number(Me(t) === i) - Number(Me(e) === i)) : t).slice(0, r);
5484
+ }, Re = (e, t) => {
5470
5485
  if (e.type === "file" || e.type === "document") return {
5471
5486
  ...e,
5472
5487
  renderType: "document",
@@ -5477,19 +5492,19 @@ function sg({ moduleName: e, id: t, refreshKey: n = 0, onDescriptionSaved: r, ma
5477
5492
  ...e,
5478
5493
  value: n
5479
5494
  };
5480
- }, Re = (e) => {
5481
- if (!Oe(e)) return e;
5482
- let t = Ie(e, Me(e.value, ke(e) ?? []), e.value);
5495
+ }, ze = (e) => {
5496
+ if (!ke(e)) return e;
5497
+ let t = Le(e, Ne(e.value, Ae(e) ?? []), e.value);
5483
5498
  return t.length ? {
5484
5499
  ...e,
5485
5500
  renderType: "document",
5486
5501
  value: t
5487
5502
  } : e;
5488
- }, ze = (e, t, n) => {
5489
- let r = e.name ?? e.id ?? String(t), i = Array.isArray(e.rows) ? e.rows : [], a = new Set(i.flatMap((e) => Ne(e))), o = [], s = /* @__PURE__ */ new Set();
5490
- return n.filter(Oe).forEach((e) => {
5491
- (ke(e) ?? []).forEach((e) => {
5492
- let t = Ae(e);
5503
+ }, Be = (e, t, n) => {
5504
+ let r = e.name ?? e.id ?? String(t), i = Array.isArray(e.rows) ? e.rows : [], a = new Set(i.flatMap((e) => Fe(e))), o = [], s = /* @__PURE__ */ new Set();
5505
+ return n.filter(ke).forEach((e) => {
5506
+ (Ae(e) ?? []).forEach((e) => {
5507
+ let t = je(e);
5493
5508
  !t || a.has(t) || s.has(t) || (s.add(t), o.push(e));
5494
5509
  });
5495
5510
  }), /* @__PURE__ */ Z(Vo, {
@@ -5514,13 +5529,13 @@ function sg({ moduleName: e, id: t, refreshKey: n = 0, onDescriptionSaved: r, ma
5514
5529
  ]
5515
5530
  }), /* @__PURE__ */ X("div", {
5516
5531
  className: "v1-detail-grid",
5517
- children: Ee(n, (e) => Le(e, t), `-${r}`, t)
5532
+ children: De(n, (e) => Re(e, t), `-${r}`, t)
5518
5533
  })]
5519
5534
  }, r)), o.length > 0 && /* @__PURE__ */ X("div", {
5520
5535
  className: "v1-detail-addrow-item",
5521
5536
  children: /* @__PURE__ */ X("div", {
5522
5537
  className: "v1-detail-grid",
5523
- children: ye({
5538
+ children: be({
5524
5539
  field: `${r}-files`,
5525
5540
  label: "Uploaded Files",
5526
5541
  renderType: "document",
@@ -5530,62 +5545,63 @@ function sg({ moduleName: e, id: t, refreshKey: n = 0, onDescriptionSaved: r, ma
5530
5545
  })
5531
5546
  })]
5532
5547
  }, r);
5533
- }, Be = (n, r) => {
5534
- let i = n.name ?? n.id ?? String(r), a = de ? n.fields.filter((e) => e.field !== de.key) : n.fields, o = Sh(n);
5548
+ }, Ve = (n, r) => {
5549
+ let i = n.name ?? n.id ?? String(r), a = fe ? n.fields.filter((e) => e.field !== fe.key) : n.fields, o = Sh(n);
5535
5550
  if (!a.length && !o.length) return null;
5536
- if (n.addRow && a.length) return ze(n, r, a);
5551
+ if (n.addRow && a.length) return Be(n, r, a);
5537
5552
  let s = fh(n);
5538
5553
  if (s && !o.length && !gh({
5539
5554
  ...n,
5540
5555
  fields: a
5541
5556
  }).length) return null;
5542
- let d = s && a.length ? /* @__PURE__ */ X(Th, {
5557
+ let f = s && a.length ? /* @__PURE__ */ X(Th, {
5543
5558
  group: {
5544
5559
  ...n,
5545
5560
  fields: a
5546
5561
  },
5547
- record: ge
5548
- }) : null, f = uh(n), p = bh(n), m = String(n.detailLinkTab ?? "").trim(), h = m && typeof c == "function" ? /* @__PURE__ */ X(z, {
5562
+ record: _e
5563
+ }) : null, p = uh(n), m = bh(n), h = String(n.detailLinkTab ?? "").trim(), g = h && typeof c == "function" ? /* @__PURE__ */ X(z, {
5549
5564
  type: "link",
5550
5565
  size: "small",
5551
5566
  className: "v1-detail-card__link",
5552
- onClick: () => c(m),
5567
+ onClick: () => c(h),
5553
5568
  children: n.detailLinkLabel || "View All"
5554
5569
  }) : null;
5555
5570
  return /* @__PURE__ */ Z(Vo, {
5556
5571
  size: "small",
5557
- className: `v1-card v1-detail-card${s ? ` v1-detail-card--${s}` : ""}${f ? ` v1-detail-card--w-${n.detailWidth}` : ""}${o.length ? " v1-detail-card--with-actions" : ""}`,
5558
- style: f ? { "--v1-group-span": f } : void 0,
5572
+ className: `v1-card v1-detail-card${s ? ` v1-detail-card--${s}` : ""}${p ? ` v1-detail-card--w-${n.detailWidth}` : ""}${o.length ? " v1-detail-card--with-actions" : ""}`,
5573
+ style: p ? { "--v1-group-span": p } : void 0,
5559
5574
  "data-group": n.name ?? void 0,
5560
- "data-column": p || void 0,
5575
+ "data-column": m || void 0,
5561
5576
  title: /* @__PURE__ */ X(ag, {
5562
5577
  icon: Jh[r % Jh.length],
5563
5578
  title: n.label ?? n.name ?? "Details"
5564
5579
  }),
5565
- extra: h,
5566
- children: [a.length ? d ?? /* @__PURE__ */ X("div", {
5580
+ extra: g,
5581
+ children: [a.length ? f ?? /* @__PURE__ */ X("div", {
5567
5582
  className: "v1-detail-grid",
5568
- children: Ee(a, Re)
5583
+ children: De(a, ze)
5569
5584
  }) : null, o.length ? /* @__PURE__ */ X(Kh, {
5570
5585
  moduleName: e,
5571
5586
  keys: o,
5572
5587
  record: {
5573
- ...ge,
5574
- _id: ge?._id ?? t,
5575
- id: ge?.id ?? t
5588
+ ..._e,
5589
+ _id: _e?._id ?? t,
5590
+ id: _e?.id ?? t
5576
5591
  },
5577
5592
  onHostAction: l,
5578
- onDone: u
5593
+ onDone: u,
5594
+ displayOnly: Array.isArray(d) && d.includes(n.name)
5579
5595
  }) : null]
5580
5596
  }, i);
5581
- }, Ve = () => /* @__PURE__ */ X(Vo, {
5597
+ }, He = () => /* @__PURE__ */ X(Vo, {
5582
5598
  size: "small",
5583
5599
  className: "v1-card v1-detail-card",
5584
5600
  title: /* @__PURE__ */ X(ag, {
5585
5601
  icon: /* @__PURE__ */ X(Pc, {}),
5586
- title: le
5602
+ title: ue
5587
5603
  }),
5588
- children: se.map((e, t) => /* @__PURE__ */ Z("div", {
5604
+ children: ce.map((e, t) => /* @__PURE__ */ Z("div", {
5589
5605
  className: `v1-rh-section${t > 0 ? " v1-rh-section--gap" : ""}`,
5590
5606
  children: [/* @__PURE__ */ X("div", {
5591
5607
  className: "v1-rh-section-title",
@@ -5627,49 +5643,49 @@ function sg({ moduleName: e, id: t, refreshKey: n = 0, onDescriptionSaved: r, ma
5627
5643
  }, t))
5628
5644
  })]
5629
5645
  }, e.key))
5630
- }, "rate-details-history"), He = L(() => {
5631
- let e = d.find((e) => Yh(e.appendHistory) && e.historyAfterGroup);
5646
+ }, "rate-details-history"), Ue = L(() => {
5647
+ let e = f.find((e) => Yh(e.appendHistory) && e.historyAfterGroup);
5632
5648
  return String(e?.historyAfterGroup ?? "").trim().toLowerCase();
5633
- }, [d]), Ue = (e) => He ? String(e.name ?? "").trim().toLowerCase() === He : /current_employer|employer_details/i.test(e.name || "") || (e.fields || []).some((e) => e.field === "employerId");
5649
+ }, [f]), Ge = (e) => Ue ? String(e.name ?? "").trim().toLowerCase() === Ue : /current_employer|employer_details/i.test(e.name || "") || (e.fields || []).some((e) => e.field === "employerId");
5634
5650
  return /* @__PURE__ */ X(ps, {
5635
- spinning: p,
5651
+ spinning: m,
5636
5652
  tip: "Loading detail fields...",
5637
5653
  children: /* @__PURE__ */ Z("div", {
5638
- className: `v1-detail-left${dh(ce) ? " v1-detail-left--layout" : ""}`,
5654
+ className: `v1-detail-left${dh(le) ? " v1-detail-left--layout" : ""}`,
5639
5655
  children: [
5640
- h && /* @__PURE__ */ X(Io, {
5656
+ g && /* @__PURE__ */ X(Io, {
5641
5657
  type: "error",
5642
5658
  showIcon: !0,
5643
5659
  message: "Unable to load detail fields",
5644
- description: h,
5660
+ description: g,
5645
5661
  className: "v1-detail-alert"
5646
5662
  }),
5647
- !p && !h && ce.length === 0 && se.length === 0 && (s ?? /* @__PURE__ */ X(Yo, { description: "No detail fields are configured." })),
5648
- xh(ce) ? /* @__PURE__ */ Z(Y, { children: [/* @__PURE__ */ X("div", {
5663
+ !m && !g && le.length === 0 && ce.length === 0 && (s ?? /* @__PURE__ */ X(Yo, { description: "No detail fields are configured." })),
5664
+ xh(le) ? /* @__PURE__ */ Z(Y, { children: [/* @__PURE__ */ X("div", {
5649
5665
  className: "v1-detail-columns",
5650
- "data-columns": Math.max(...ce.map(bh)),
5666
+ "data-columns": Math.max(...le.map(bh)),
5651
5667
  children: [
5652
5668
  1,
5653
5669
  2,
5654
5670
  3
5655
- ].filter((e) => e <= Math.max(...ce.map(bh))).map((e) => /* @__PURE__ */ X("div", {
5671
+ ].filter((e) => e <= Math.max(...le.map(bh))).map((e) => /* @__PURE__ */ X("div", {
5656
5672
  className: "v1-detail-column",
5657
5673
  "data-column": e,
5658
- children: ce.map((t, n) => bh(t) === e ? Be(t, n) : null)
5674
+ children: le.map((t, n) => bh(t) === e ? Ve(t, n) : null)
5659
5675
  }, `column-${e}`))
5660
- }), ce.map((e, t) => bh(e) ? null : Be(e, t))] }) : ce.flatMap((e, t) => {
5661
- let n = [Be(e, t)];
5662
- return Ue(e) && se.length > 0 && n.push(Ve()), n;
5676
+ }), le.map((e, t) => bh(e) ? null : Ve(e, t))] }) : le.flatMap((e, t) => {
5677
+ let n = [Ve(e, t)];
5678
+ return Ge(e) && ce.length > 0 && n.push(He()), n;
5663
5679
  }),
5664
- se.length > 0 && !ce.some(Ue) && Ve(),
5665
- ue && de?.value && /* @__PURE__ */ X(Vo, {
5680
+ ce.length > 0 && !le.some(Ge) && He(),
5681
+ de && fe?.value && /* @__PURE__ */ X(Vo, {
5666
5682
  size: "small",
5667
5683
  className: "v1-card v1-detail-card",
5668
5684
  title: /* @__PURE__ */ X(ag, {
5669
5685
  icon: /* @__PURE__ */ X(Dc, {}),
5670
5686
  title: "Description"
5671
5687
  }),
5672
- children: _ ? /* @__PURE__ */ Z("div", {
5688
+ children: y ? /* @__PURE__ */ Z("div", {
5673
5689
  style: {
5674
5690
  display: "flex",
5675
5691
  flexDirection: "column",
@@ -5685,9 +5701,9 @@ function sg({ moduleName: e, id: t, refreshKey: n = 0, onDescriptionSaved: r, ma
5685
5701
  },
5686
5702
  children: /* @__PURE__ */ X(H.TextArea, {
5687
5703
  rows: 10,
5688
- value: b,
5689
- onChange: (e) => x(e.target.value),
5690
- placeholder: de.hidePlaceholder ? void 0 : de.placeholder,
5704
+ value: x,
5705
+ onChange: (e) => S(e.target.value),
5706
+ placeholder: fe.hidePlaceholder ? void 0 : fe.placeholder,
5691
5707
  style: {
5692
5708
  fontSize: 13,
5693
5709
  lineHeight: 1.65,
@@ -5705,16 +5721,16 @@ function sg({ moduleName: e, id: t, refreshKey: n = 0, onDescriptionSaved: r, ma
5705
5721
  children: [/* @__PURE__ */ X(Mn, {
5706
5722
  variant: "primary",
5707
5723
  size: "small",
5708
- loading: S,
5709
- onClick: pe,
5724
+ loading: C,
5725
+ onClick: me,
5710
5726
  children: "Save & Parse"
5711
5727
  }), /* @__PURE__ */ X(Mn, {
5712
5728
  size: "small",
5713
- onClick: fe,
5729
+ onClick: pe,
5714
5730
  children: "Cancel"
5715
5731
  })]
5716
5732
  })]
5717
- }) : /* @__PURE__ */ X(og, { value: de.value })
5733
+ }) : /* @__PURE__ */ X(og, { value: fe.value })
5718
5734
  })
5719
5735
  ]
5720
5736
  })
@@ -36861,23 +36877,26 @@ function oN({ open: e, onClose: t }) {
36861
36877
  });
36862
36878
  }
36863
36879
  function sN() {
36864
- let [e, t] = R([]), [n, r] = R(!0), [i, a] = R(""), { actions: o } = jh(i), s = L(() => (o ?? []).filter((e) => e?.key).map((e) => ({
36880
+ let [e, t] = R([]), [n, r] = R(!0), [i, a] = R(""), o = Po({
36881
+ on: !0,
36882
+ tries: 0
36883
+ }), s = Po([]), { actions: c } = jh(i), l = L(() => (c ?? []).filter((e) => e?.key).map((e) => ({
36865
36884
  value: e.key,
36866
36885
  label: `${e.label || e.key} (${e.key})`
36867
- })), [o]), [c, l] = R([]), [u, d] = R({}), [f, p] = R({}), [m, h] = R([]), [g, _] = R([]), [v, y] = R({}), [b, x] = R([]), [S, C] = R([]), [w, T] = R({}), [E, D] = R([]), [O, k] = R({}), [A, j] = R([]), [M, N] = R(!1), [ee, P] = R(""), [F, te] = R(!1), [ne, re] = R(null), [ie, ae] = R(null), [oe, se] = R(!1), [ce, le] = R(!1), [ue, de] = R(null), [fe, pe] = R(0), [me, he] = R(""), [ge, _e] = R([]), [ve, ye] = R(""), [be, xe] = R(""), [Se, Ce] = R({});
36868
- function we(e, t = {}) {
36869
- de({
36886
+ })), [c]), [u, d] = R([]), [f, p] = R({}), [m, h] = R({}), [g, _] = R([]), [v, y] = R([]), [b, x] = R({}), [S, C] = R([]), [w, T] = R([]), [E, D] = R({}), [O, k] = R([]), [A, j] = R({}), [M, N] = R([]), [ee, P] = R(!1), [F, te] = R(""), [ne, re] = R(!1), [ie, ae] = R(null), [oe, se] = R(null), [ce, le] = R(!1), [ue, de] = R(!1), [fe, pe] = R(null), [me, he] = R(0), [ge, _e] = R(""), [ve, ye] = R([]), [be, xe] = R(""), [Se, Ce] = R(""), [we, Te] = R({});
36887
+ function Ee(e, t = {}) {
36888
+ pe({
36870
36889
  ...RM[e],
36871
36890
  ...t
36872
36891
  });
36873
36892
  }
36874
- async function Te(e, t, n, r) {
36893
+ async function De(e, t, n, r) {
36875
36894
  if (hM(e)) return;
36876
- let i = c;
36877
- l((r) => r.map((r) => r.id === e.id ? {
36895
+ let i = u;
36896
+ d((r) => r.map((r) => r.id === e.id ? {
36878
36897
  ...r,
36879
36898
  [t]: n
36880
- } : r)), Ce((n) => ({
36899
+ } : r)), Te((n) => ({
36881
36900
  ...n,
36882
36901
  [`${e.id}:${t}`]: !0
36883
36902
  }));
@@ -36887,20 +36906,20 @@ function sN() {
36887
36906
  [t]: n
36888
36907
  }), J.success(n ? r.on : r.off);
36889
36908
  } catch (e) {
36890
- l(i), J.error(e?.message || "Could not update group visibility");
36909
+ d(i), J.error(e?.message || "Could not update group visibility");
36891
36910
  } finally {
36892
- Ce((n) => {
36911
+ Te((n) => {
36893
36912
  let r = { ...n };
36894
36913
  return delete r[`${e.id}:${t}`], r;
36895
36914
  });
36896
36915
  }
36897
36916
  }
36898
- async function Ee(e, t, n) {
36917
+ async function Oe(e, t, n) {
36899
36918
  if (hM(e)) return;
36900
36919
  let r = String(n ?? "").trim();
36901
36920
  if (r === String(e?.[t] ?? "").trim()) return;
36902
- let i = c;
36903
- l((n) => n.map((n) => n.id === e.id ? {
36921
+ let i = u;
36922
+ d((n) => n.map((n) => n.id === e.id ? {
36904
36923
  ...n,
36905
36924
  [t]: r
36906
36925
  } : n));
@@ -36910,151 +36929,157 @@ function sN() {
36910
36929
  [t]: r
36911
36930
  }), J.success("Empty text saved");
36912
36931
  } catch (e) {
36913
- l(i), J.error(e?.message || "Could not save empty text");
36932
+ d(i), J.error(e?.message || "Could not save empty text");
36914
36933
  }
36915
36934
  }
36916
- let De = (e, t) => Te(e, "hideGroup", t, {
36935
+ let ke = (e, t) => De(e, "hideGroup", t, {
36917
36936
  on: "Group hidden from add/edit forms and the detail view",
36918
36937
  off: "Group is visible again"
36919
- }), Oe = (e, t) => Te(e, "hideGroupInDetail", t, {
36938
+ }), Ae = (e, t) => De(e, "hideGroupInDetail", t, {
36920
36939
  on: "Group hidden from the detail view only — add/edit forms keep it",
36921
36940
  off: "Group is visible in the detail view again"
36922
- }), ke = (e, t) => Te(e, "ignoreShowIfInDetail", t, {
36941
+ }), je = (e, t) => De(e, "ignoreShowIfInDetail", t, {
36923
36942
  on: "Group always shows in the detail view, even when its Show Condition fails",
36924
36943
  off: "Group follows its Show Condition in the detail view"
36925
36944
  });
36926
- function Ae() {
36927
- de(null), pe((e) => e + 1);
36945
+ function Me() {
36946
+ pe(null), he((e) => e + 1);
36928
36947
  }
36929
36948
  I(() => {
36930
- fi({ limit: 200 }).then(_e).catch(() => _e([]));
36949
+ fi({ limit: 200 }).then(ye).catch(() => ye([]));
36931
36950
  }, []), I(() => {
36932
36951
  Lr().then((e) => {
36933
36952
  let n = nk(e).map(({ value: e, label: t }) => ({
36934
36953
  key: e,
36935
36954
  label: t
36936
36955
  }));
36937
- t(n), n.length && a(n[0].key);
36956
+ t(n), s.current = n, n.length && a(n[0].key);
36938
36957
  }).catch(() => t([])).finally(() => r(!1));
36939
36958
  }, []), I(() => {
36940
36959
  if (!i) return;
36941
36960
  let e = !1;
36942
36961
  return (async () => {
36943
- N(!0), P("");
36962
+ P(!0), te("");
36944
36963
  try {
36945
- let [t, n] = await Promise.all([Br(i, { clientId: ve }).catch((e) => {
36964
+ let [t, n] = await Promise.all([Br(i, { clientId: be }).catch((e) => {
36946
36965
  if (e?.status === 404) return [];
36947
36966
  throw e;
36948
- }), Yr(i, { clientId: ve })]);
36967
+ }), Yr(i, { clientId: be })]);
36949
36968
  if (e) return;
36950
- let r = n.sourceFields ?? [], a = _M(t, r), { labels: o, layout: s, custom: c } = TM(n.groups ?? []), u = Object.fromEntries(a.filter((e) => e?.name).map((e) => [e.name, e.label ?? e.name])), f = a.map((e) => ({
36969
+ let r = n.sourceFields ?? [], a = _M(t, r), { labels: o, layout: s, custom: c } = TM(n.groups ?? []), l = Object.fromEntries(a.filter((e) => e?.name).map((e) => [e.name, e.label ?? e.name])), u = a.map((e) => ({
36951
36970
  ...e,
36952
36971
  label: o[e.name] ?? e.label
36953
36972
  }));
36954
- xe(n.clientId ?? ""), C(r), T(s), D(c), k(n.header ?? {}), j(n.computedFields ?? []), d(o), p(u), l(f), h(UM(f)), _(f.map((e) => ({
36973
+ Ce(n.clientId ?? ""), T(r), D(s), k(c), j(n.header ?? {}), N(n.computedFields ?? []), p(o), h(l), d(u), _(UM(u)), y(u.map((e) => ({
36955
36974
  value: e.name,
36956
36975
  label: e.label ?? e.name
36957
36976
  })));
36958
- let m = {};
36977
+ let f = {};
36959
36978
  (n.fields ?? []).forEach((e) => {
36960
- m[e.field] = e;
36961
- }), y(m), x(n.merges ?? []);
36979
+ f[e.field] = e;
36980
+ }), x(f), C(n.merges ?? []);
36962
36981
  } catch (t) {
36963
- e || P(t?.message || "Failed to load configuration");
36982
+ if (e) return;
36983
+ let n = o.current, r = s.current, c = n.on && n.tries < 5 ? r[r.findIndex((e) => e.key === i) + 1] : null;
36984
+ if (c) {
36985
+ n.tries += 1, a(c.key);
36986
+ return;
36987
+ }
36988
+ te(/not found|status (400|404)|\b40[04]\b/i.test(String(t?.message ?? "")) || t?.status === 404 || t?.status === 400 ? "This module has nothing to configure here (no form or detail data)." : t?.message || "Failed to load configuration");
36964
36989
  } finally {
36965
- e || N(!1);
36990
+ e || P(!1);
36966
36991
  }
36967
36992
  })(), () => {
36968
36993
  e = !0;
36969
36994
  };
36970
36995
  }, [
36971
36996
  i,
36972
- fe,
36973
- ve
36997
+ me,
36998
+ be
36974
36999
  ]);
36975
- let je = L(() => m.map((e) => ({
37000
+ let Ne = L(() => g.map((e) => ({
36976
37001
  value: e.key,
36977
37002
  label: `${e.label} (${e.key})`
36978
- })), [m]);
36979
- async function Me(e = {}) {
37003
+ })), [g]);
37004
+ async function Pe(e = {}) {
36980
37005
  let t = e?.announce !== !1;
36981
- te(!0);
37006
+ re(!0);
36982
37007
  try {
36983
37008
  let e = EM({
36984
- labels: u,
36985
- baseLabels: f,
36986
- layout: w,
36987
- custom: E
36988
- }), n = Object.entries(v).map(([e, t]) => WM(e, t)).filter(Boolean), { nextGroups: r, changed: a } = qM(c, v);
37009
+ labels: f,
37010
+ baseLabels: m,
37011
+ layout: E,
37012
+ custom: O
37013
+ }), n = Object.entries(b).map(([e, t]) => WM(e, t)).filter(Boolean), { nextGroups: r, changed: a } = qM(u, b);
36989
37014
  return await Li({
36990
37015
  module: i,
36991
37016
  groups: e,
36992
37017
  fields: n,
36993
- merges: GM(b),
36994
- sourceFields: S,
36995
- clientId: ve,
36996
- header: kM(O)
36997
- }), a.length && (l(r), h(UM(r)), _(r.map((e) => ({
37018
+ merges: GM(S),
37019
+ sourceFields: w,
37020
+ clientId: be,
37021
+ header: kM(A)
37022
+ }), a.length && (d(r), _(UM(r)), y(r.map((e) => ({
36998
37023
  value: e.name,
36999
37024
  label: e.label ?? e.name
37000
- })))), xe(ve), t && J.success(ve ? "Detail view configuration saved for this client" : "Detail view configuration saved"), !0;
37025
+ })))), Ce(be), t && J.success(be ? "Detail view configuration saved for this client" : "Detail view configuration saved"), !0;
37001
37026
  } catch (e) {
37002
37027
  return J.error(e?.message || "Could not save configuration"), !1;
37003
37028
  } finally {
37004
- te(!1);
37029
+ re(!1);
37005
37030
  }
37006
37031
  }
37007
- function Ne(e, t) {
37032
+ function Fe(e, t) {
37008
37033
  let n = String(e?.name ?? "").trim();
37009
- n && (d((e) => ({
37034
+ n && (p((e) => ({
37010
37035
  ...e,
37011
37036
  [n]: t
37012
- })), l((e) => e.map((e) => e.name === n ? {
37037
+ })), d((e) => e.map((e) => e.name === n ? {
37013
37038
  ...e,
37014
37039
  label: t
37015
- } : e)), _((e) => e.map((e) => e.value === n ? {
37040
+ } : e)), y((e) => e.map((e) => e.value === n ? {
37016
37041
  ...e,
37017
37042
  label: t || n
37018
37043
  } : e)));
37019
37044
  }
37020
- function Pe(e, t) {
37045
+ function Ie(e, t) {
37021
37046
  let n = String(e?.name ?? "").trim();
37022
37047
  if (!n) return;
37023
- let r = String(t ?? "").trim(), i = String(f[n] ?? n).trim() || n, a = r || i;
37024
- l((e) => e.map((e) => e.name === n ? {
37048
+ let r = String(t ?? "").trim(), i = String(m[n] ?? n).trim() || n, a = r || i;
37049
+ d((e) => e.map((e) => e.name === n ? {
37025
37050
  ...e,
37026
37051
  label: a
37027
- } : e)), _((e) => e.map((e) => e.value === n ? {
37052
+ } : e)), y((e) => e.map((e) => e.value === n ? {
37028
37053
  ...e,
37029
37054
  label: a
37030
- } : e)), d((e) => {
37055
+ } : e)), p((e) => {
37031
37056
  let t = { ...e };
37032
37057
  return a === i ? delete t[n] : t[n] = a, t;
37033
37058
  });
37034
37059
  }
37035
- function Fe(e) {
37036
- y((t) => ({
37060
+ function Le(e) {
37061
+ x((t) => ({
37037
37062
  ...t,
37038
- [ne.key]: {
37063
+ [ie.key]: {
37039
37064
  ...e,
37040
- field: ne.key
37065
+ field: ie.key
37041
37066
  }
37042
- })), re(null);
37067
+ })), ae(null);
37043
37068
  }
37044
- function Ie(e) {
37045
- y((t) => {
37069
+ function Re(e) {
37070
+ x((t) => {
37046
37071
  let n = { ...t };
37047
37072
  return delete n[e], n;
37048
37073
  });
37049
37074
  }
37050
- function Le(e) {
37051
- x((t) => {
37075
+ function ze(e) {
37076
+ C((t) => {
37052
37077
  let n = [...t];
37053
- return ie.index === null ? n.push(e) : n[ie.index] = e, n;
37054
- }), ae(null);
37078
+ return oe.index === null ? n.push(e) : n[oe.index] = e, n;
37079
+ }), se(null);
37055
37080
  }
37056
- function Re(e, t, n = !1) {
37057
- y((r) => {
37081
+ function Be(e, t, n = !1) {
37082
+ x((r) => {
37058
37083
  let i = r[e] ?? { field: e };
37059
37084
  return n ? {
37060
37085
  ...r,
@@ -37072,7 +37097,7 @@ function sN() {
37072
37097
  };
37073
37098
  });
37074
37099
  }
37075
- let ze = (e) => {
37100
+ let Ve = (e) => {
37076
37101
  if (!e) return null;
37077
37102
  let t = [];
37078
37103
  e.label && t.push(/* @__PURE__ */ X(K, {
@@ -37106,7 +37131,7 @@ function sN() {
37106
37131
  style: { fontSize: 12 },
37107
37132
  children: "—"
37108
37133
  });
37109
- }, Be = [
37134
+ }, He = [
37110
37135
  {
37111
37136
  title: "Group",
37112
37137
  dataIndex: "label",
@@ -37120,8 +37145,8 @@ function sN() {
37120
37145
  size: "small",
37121
37146
  value: e ?? t.name,
37122
37147
  "aria-label": `Detail group label for ${t.name}`,
37123
- onChange: (e) => Ne(t, e.target.value),
37124
- onBlur: (e) => Pe(t, e.target.value),
37148
+ onChange: (e) => Fe(t, e.target.value),
37149
+ onBlur: (e) => Ie(t, e.target.value),
37125
37150
  onPressEnter: (e) => e.currentTarget.blur(),
37126
37151
  style: {
37127
37152
  width: 220,
@@ -37172,7 +37197,7 @@ function sN() {
37172
37197
  width: 100,
37173
37198
  align: "center",
37174
37199
  render: (e, t) => {
37175
- let n = (t.fields ?? []).filter((e) => v[e.field]).length;
37200
+ let n = (t.fields ?? []).filter((e) => b[e.field]).length;
37176
37201
  return n ? /* @__PURE__ */ X(K, {
37177
37202
  color: "blue",
37178
37203
  style: { margin: 0 },
@@ -37199,8 +37224,8 @@ function sN() {
37199
37224
  checkedChildren: "Hide",
37200
37225
  unCheckedChildren: "Show",
37201
37226
  checked: HM(t.hideGroup),
37202
- loading: !!Se[`${t.id}:hideGroup`],
37203
- onChange: (e) => De(t, e)
37227
+ loading: !!we[`${t.id}:hideGroup`],
37228
+ onChange: (e) => ke(t, e)
37204
37229
  })
37205
37230
  })
37206
37231
  },
@@ -37223,8 +37248,8 @@ function sN() {
37223
37248
  checkedChildren: "Always",
37224
37249
  unCheckedChildren: "Follow",
37225
37250
  checked: HM(t.ignoreShowIfInDetail),
37226
- loading: !!Se[`${t.id}:ignoreShowIfInDetail`],
37227
- onChange: (e) => ke(t, e)
37251
+ loading: !!we[`${t.id}:ignoreShowIfInDetail`],
37252
+ onChange: (e) => je(t, e)
37228
37253
  })
37229
37254
  }) : /* @__PURE__ */ X(NM, {
37230
37255
  type: "secondary",
@@ -37241,7 +37266,7 @@ function sN() {
37241
37266
  size: "small",
37242
37267
  defaultValue: t.emptyText ?? "",
37243
37268
  placeholder: `No ${String(t.label ?? t.name ?? "").toLowerCase()} added`,
37244
- onBlur: (e) => Ee(t, "emptyText", e.target.value),
37269
+ onBlur: (e) => Oe(t, "emptyText", e.target.value),
37245
37270
  onPressEnter: (e) => e.currentTarget.blur()
37246
37271
  }) : /* @__PURE__ */ X(NM, {
37247
37272
  type: "secondary",
@@ -37264,17 +37289,17 @@ function sN() {
37264
37289
  checkedChildren: "Hide",
37265
37290
  unCheckedChildren: "Show",
37266
37291
  checked: HM(t.hideGroupInDetail),
37267
- loading: !!Se[`${t.id}:hideGroupInDetail`],
37268
- onChange: (e) => Oe(t, e)
37292
+ loading: !!we[`${t.id}:hideGroupInDetail`],
37293
+ onChange: (e) => Ae(t, e)
37269
37294
  })
37270
37295
  })
37271
37296
  }
37272
- ], Ve = (e) => {
37297
+ ], Ue = (e) => {
37273
37298
  let t = e.fields ?? [], n = hM(e);
37274
37299
  return t.length ? /* @__PURE__ */ X("div", {
37275
37300
  className: "fg-expanded-fields",
37276
37301
  children: t.map((t) => {
37277
- let r = v[t.field], i = n ? !!r?.hideInDetail : r?.hidden ?? KM(t), a = {
37302
+ let r = b[t.field], i = n ? !!r?.hideInDetail : r?.hidden ?? KM(t), a = {
37278
37303
  key: t.field,
37279
37304
  label: t.label ?? t.field,
37280
37305
  type: t.type ?? "text",
@@ -37343,7 +37368,7 @@ function sN() {
37343
37368
  }),
37344
37369
  /* @__PURE__ */ X("div", {
37345
37370
  className: "fg-field-row-flags",
37346
- children: ze(r)
37371
+ children: Ve(r)
37347
37372
  }),
37348
37373
  /* @__PURE__ */ Z(W, {
37349
37374
  size: 4,
@@ -37356,7 +37381,7 @@ function sN() {
37356
37381
  checkedChildren: "Hide",
37357
37382
  unCheckedChildren: "Show",
37358
37383
  checked: i,
37359
- onChange: (e) => Re(t.field, e, n)
37384
+ onChange: (e) => Be(t.field, e, n)
37360
37385
  })
37361
37386
  }),
37362
37387
  /* @__PURE__ */ X(q, {
@@ -37365,7 +37390,7 @@ function sN() {
37365
37390
  type: "text",
37366
37391
  size: "small",
37367
37392
  icon: /* @__PURE__ */ X(dc, {}),
37368
- onClick: () => re(a)
37393
+ onClick: () => ae(a)
37369
37394
  })
37370
37395
  }),
37371
37396
  r && /* @__PURE__ */ X(q, {
@@ -37375,7 +37400,7 @@ function sN() {
37375
37400
  size: "small",
37376
37401
  danger: !0,
37377
37402
  icon: /* @__PURE__ */ X(dl, {}),
37378
- onClick: () => Ie(t.field)
37403
+ onClick: () => Re(t.field)
37379
37404
  })
37380
37405
  })
37381
37406
  ]
@@ -37388,9 +37413,9 @@ function sN() {
37388
37413
  style: { fontSize: 12 },
37389
37414
  children: "No fields in this group."
37390
37415
  });
37391
- }, He = L(() => {
37392
- let e = me.trim().toLowerCase();
37393
- return [...c].filter((t) => !e || [
37416
+ }, We = L(() => {
37417
+ let e = ge.trim().toLowerCase();
37418
+ return [...u].filter((t) => !e || [
37394
37419
  t.label,
37395
37420
  t.name,
37396
37421
  ...(t.fields ?? []).flatMap((e) => [
@@ -37399,7 +37424,7 @@ function sN() {
37399
37424
  e.type
37400
37425
  ])
37401
37426
  ].some((t) => String(t ?? "").toLowerCase().includes(e))).sort((e, t) => (e.order ?? 0) - (t.order ?? 0));
37402
- }, [c, me]), Ue = [
37427
+ }, [u, ge]), Ge = [
37403
37428
  {
37404
37429
  title: "Label",
37405
37430
  dataIndex: "label",
@@ -37444,7 +37469,7 @@ function sN() {
37444
37469
  type: "text",
37445
37470
  size: "small",
37446
37471
  icon: /* @__PURE__ */ X(dc, {}),
37447
- onClick: () => ae({
37472
+ onClick: () => se({
37448
37473
  index: n,
37449
37474
  merge: t
37450
37475
  })
@@ -37456,12 +37481,12 @@ function sN() {
37456
37481
  size: "small",
37457
37482
  danger: !0,
37458
37483
  icon: /* @__PURE__ */ X(rc, {}),
37459
- onClick: () => x((e) => e.filter((e, t) => t !== n))
37484
+ onClick: () => C((e) => e.filter((e, t) => t !== n))
37460
37485
  })
37461
37486
  })]
37462
37487
  })
37463
37488
  }
37464
- ], We = e.map((e) => ({
37489
+ ], Ke = e.map((e) => ({
37465
37490
  key: e.key,
37466
37491
  label: e.label
37467
37492
  }));
@@ -37479,9 +37504,9 @@ function sN() {
37479
37504
  size: "small",
37480
37505
  icon: /* @__PURE__ */ X(nc, {}),
37481
37506
  disabled: !i,
37482
- onClick: () => we("discoverFields", {
37507
+ onClick: () => Ee("discoverFields", {
37483
37508
  module: i,
37484
- clientId: ve,
37509
+ clientId: be,
37485
37510
  title: `Read ${i} database fields`
37486
37511
  }),
37487
37512
  children: "Read Database Fields"
@@ -37493,13 +37518,13 @@ function sN() {
37493
37518
  key: "save",
37494
37519
  label: "Save current as default",
37495
37520
  icon: /* @__PURE__ */ X(_l, {}),
37496
- onClick: () => we("save")
37521
+ onClick: () => Ee("save")
37497
37522
  },
37498
37523
  {
37499
37524
  key: "restore",
37500
37525
  label: "Restore saved default",
37501
37526
  icon: /* @__PURE__ */ X(Ys, {}),
37502
- onClick: () => we("restore")
37527
+ onClick: () => Ee("restore")
37503
37528
  },
37504
37529
  { type: "divider" },
37505
37530
  {
@@ -37507,7 +37532,7 @@ function sN() {
37507
37532
  label: "Reset all detail settings",
37508
37533
  icon: /* @__PURE__ */ X(dl, {}),
37509
37534
  danger: !0,
37510
- onClick: () => we("reset")
37535
+ onClick: () => Ee("reset")
37511
37536
  }
37512
37537
  ] },
37513
37538
  children: /* @__PURE__ */ X(z, {
@@ -37519,23 +37544,23 @@ function sN() {
37519
37544
  /* @__PURE__ */ X(z, {
37520
37545
  size: "small",
37521
37546
  icon: /* @__PURE__ */ X(bl, {}),
37522
- onClick: () => le(!0),
37547
+ onClick: () => de(!0),
37523
37548
  children: "Display Defaults"
37524
37549
  }),
37525
37550
  /* @__PURE__ */ X(z, {
37526
37551
  size: "small",
37527
37552
  icon: /* @__PURE__ */ X(_c, {}),
37528
37553
  disabled: !i,
37529
- onClick: () => se(!0),
37554
+ onClick: () => le(!0),
37530
37555
  children: "Preview"
37531
37556
  }),
37532
37557
  /* @__PURE__ */ X(z, {
37533
37558
  type: "primary",
37534
37559
  size: "small",
37535
37560
  icon: /* @__PURE__ */ X(_l, {}),
37536
- loading: F,
37561
+ loading: ne,
37537
37562
  disabled: !i,
37538
- onClick: Me,
37563
+ onClick: Pe,
37539
37564
  children: "Save Configuration"
37540
37565
  })
37541
37566
  ]
@@ -37558,33 +37583,33 @@ function sN() {
37558
37583
  showSearch: !0,
37559
37584
  placeholder: "Client (default)",
37560
37585
  style: { width: 240 },
37561
- value: ve || void 0,
37586
+ value: be || void 0,
37562
37587
  optionFilterProp: "label",
37563
- options: ge.map((e) => ({
37588
+ options: ve.map((e) => ({
37564
37589
  value: e._id ?? e.id,
37565
37590
  label: e.clientName ?? e.name ?? e.clientRefrenceId ?? e._id
37566
37591
  })).filter((e) => e.value),
37567
- onChange: (e) => ye(e ?? "")
37592
+ onChange: (e) => xe(e ?? "")
37568
37593
  }), /* @__PURE__ */ X(z, {
37569
37594
  size: "small",
37570
37595
  icon: /* @__PURE__ */ X(dl, {}),
37571
- onClick: () => pe((e) => e + 1),
37596
+ onClick: () => he((e) => e + 1),
37572
37597
  children: "Reload"
37573
37598
  })]
37574
37599
  })]
37575
37600
  }),
37576
- ve && !be && !M && /* @__PURE__ */ X(Io, {
37601
+ be && !Se && !ee && /* @__PURE__ */ X(Io, {
37577
37602
  type: "info",
37578
37603
  showIcon: !0,
37579
37604
  style: { marginBottom: 12 },
37580
37605
  message: "This client has no detail config of its own yet",
37581
37606
  description: "You are viewing the module default. Saving now creates a config for this client only — the default and every other client are left untouched."
37582
37607
  }),
37583
- !M && S.length > 0 && /* @__PURE__ */ X(Io, {
37608
+ !ee && w.length > 0 && /* @__PURE__ */ X(Io, {
37584
37609
  type: "success",
37585
37610
  showIcon: !0,
37586
37611
  style: { marginBottom: 12 },
37587
- message: `${S.length} database field${S.length === 1 ? "" : "s"} available to this detail view`,
37612
+ message: `${w.length} database field${w.length === 1 ? "" : "s"} available to this detail view`,
37588
37613
  description: "These fields are stored only in Detail configuration and do not appear in Add or Edit forms. Read Database Fields again to refresh the list after the collection schema changes."
37589
37614
  }),
37590
37615
  /* @__PURE__ */ X(NM, {
@@ -37601,21 +37626,23 @@ function sN() {
37601
37626
  children: [
37602
37627
  /* @__PURE__ */ X(_s, {
37603
37628
  activeKey: i,
37604
- onChange: a,
37605
- items: We.map((e) => ({
37629
+ onChange: (e) => {
37630
+ o.current.on = !1, a(e);
37631
+ },
37632
+ items: Ke.map((e) => ({
37606
37633
  ...e,
37607
37634
  children: null
37608
37635
  })),
37609
37636
  className: "admin-module-tabs"
37610
37637
  }),
37611
- ee && /* @__PURE__ */ X(Io, {
37638
+ F && /* @__PURE__ */ X(Io, {
37612
37639
  type: "error",
37613
37640
  showIcon: !0,
37614
- message: ee,
37641
+ message: F,
37615
37642
  style: { marginBottom: 12 }
37616
37643
  }),
37617
37644
  /* @__PURE__ */ Z(ps, {
37618
- spinning: M,
37645
+ spinning: ee,
37619
37646
  children: [
37620
37647
  /* @__PURE__ */ Z("div", {
37621
37648
  className: "admin-config-table-tools",
@@ -37623,29 +37650,29 @@ function sN() {
37623
37650
  allowClear: !0,
37624
37651
  prefix: /* @__PURE__ */ X(vl, {}),
37625
37652
  placeholder: "Search groups or fields",
37626
- value: me,
37627
- onChange: (e) => he(e.target.value)
37653
+ value: ge,
37654
+ onChange: (e) => _e(e.target.value)
37628
37655
  }), /* @__PURE__ */ Z(NM, {
37629
37656
  type: "secondary",
37630
37657
  style: { fontSize: 12 },
37631
37658
  children: [
37632
- c.length,
37659
+ u.length,
37633
37660
  " groups · ",
37634
- m.length,
37661
+ g.length,
37635
37662
  " fields",
37636
- S.length ? ` · ${S.length} from database` : ""
37663
+ w.length ? ` · ${w.length} from database` : ""
37637
37664
  ]
37638
37665
  })]
37639
37666
  }),
37640
37667
  /* @__PURE__ */ X(gs, {
37641
37668
  rowKey: (e) => e.id ?? e.name,
37642
- dataSource: He,
37643
- columns: Be,
37669
+ dataSource: We,
37670
+ columns: He,
37644
37671
  pagination: !1,
37645
37672
  size: "small",
37646
37673
  className: "fg-table",
37647
37674
  expandable: {
37648
- expandedRowRender: Ve,
37675
+ expandedRowRender: Ue,
37649
37676
  rowExpandable: () => !0
37650
37677
  },
37651
37678
  locale: { emptyText: /* @__PURE__ */ X(Yo, {
@@ -37668,7 +37695,7 @@ function sN() {
37668
37695
  type: "dashed",
37669
37696
  icon: /* @__PURE__ */ X(al, {}),
37670
37697
  disabled: !i,
37671
- onClick: () => ae({
37698
+ onClick: () => se({
37672
37699
  index: null,
37673
37700
  merge: null
37674
37701
  }),
@@ -37677,8 +37704,8 @@ function sN() {
37677
37704
  }),
37678
37705
  /* @__PURE__ */ X(gs, {
37679
37706
  rowKey: "key",
37680
- dataSource: b,
37681
- columns: Ue,
37707
+ dataSource: S,
37708
+ columns: Ge,
37682
37709
  pagination: !1,
37683
37710
  size: "small",
37684
37711
  className: "fg-table",
@@ -37695,27 +37722,27 @@ function sN() {
37695
37722
  })
37696
37723
  }),
37697
37724
  /* @__PURE__ */ X(jM, {
37698
- formGroups: c.filter((e) => !hM(e)),
37699
- labels: u,
37700
- layout: w,
37701
- custom: E,
37702
- header: O,
37725
+ formGroups: u.filter((e) => !hM(e)),
37726
+ labels: f,
37727
+ layout: E,
37728
+ custom: O,
37729
+ header: A,
37703
37730
  fieldOptions: OM({
37704
- fields: m,
37705
- sourceFields: S,
37706
- computedFields: A
37731
+ fields: g,
37732
+ sourceFields: w,
37733
+ computedFields: M
37707
37734
  }),
37708
- actionOptions: s,
37709
- onLayoutChange: (e, t) => T((n) => ({
37735
+ actionOptions: l,
37736
+ onLayoutChange: (e, t) => D((n) => ({
37710
37737
  ...n,
37711
37738
  [e]: wM({
37712
37739
  ...n[e] ?? {},
37713
37740
  ...t
37714
37741
  })
37715
37742
  })),
37716
- onCustomChange: D,
37717
- onHeaderChange: k,
37718
- onEditField: (e, t) => re({
37743
+ onCustomChange: k,
37744
+ onHeaderChange: j,
37745
+ onEditField: (e, t) => ae({
37719
37746
  key: e,
37720
37747
  label: t,
37721
37748
  type: "text",
@@ -37729,48 +37756,48 @@ function sN() {
37729
37756
  })
37730
37757
  }),
37731
37758
  /* @__PURE__ */ X(QM, {
37732
- open: !!ne,
37733
- fieldMeta: ne,
37734
- value: ne ? {
37735
- ...ne.lookupDefaults,
37736
- ...v[ne.key] ?? {}
37737
- } : null,
37738
- moduleFieldOptions: je,
37739
- onClose: () => re(null),
37740
- onSave: Fe
37741
- }, ne?.key ?? "field-closed"),
37742
- /* @__PURE__ */ X(tN, {
37743
37759
  open: !!ie,
37744
- merge: ie?.merge,
37745
- fieldOptions: je,
37746
- groupOptions: g,
37760
+ fieldMeta: ie,
37761
+ value: ie ? {
37762
+ ...ie.lookupDefaults,
37763
+ ...b[ie.key] ?? {}
37764
+ } : null,
37765
+ moduleFieldOptions: Ne,
37747
37766
  onClose: () => ae(null),
37748
37767
  onSave: Le
37749
- }, ie ? `merge-${ie.index ?? "new"}` : "merge-closed"),
37768
+ }, ie?.key ?? "field-closed"),
37769
+ /* @__PURE__ */ X(tN, {
37770
+ open: !!oe,
37771
+ merge: oe?.merge,
37772
+ fieldOptions: Ne,
37773
+ groupOptions: v,
37774
+ onClose: () => se(null),
37775
+ onSave: ze
37776
+ }, oe ? `merge-${oe.index ?? "new"}` : "merge-closed"),
37750
37777
  /* @__PURE__ */ X(oN, {
37751
- open: ce,
37752
- onClose: () => le(!1)
37778
+ open: ue,
37779
+ onClose: () => de(!1)
37753
37780
  }),
37754
37781
  /* @__PURE__ */ X(nN, {
37755
- open: oe,
37782
+ open: ce,
37756
37783
  module: i,
37757
- clientId: ve,
37758
- onBeforeLoad: () => Me({ announce: !1 }),
37759
- onClose: () => se(!1)
37784
+ clientId: be,
37785
+ onBeforeLoad: () => Pe({ announce: !1 }),
37786
+ onClose: () => le(!1)
37760
37787
  }),
37761
37788
  /* @__PURE__ */ X(pj, {
37762
- open: !!ue,
37789
+ open: !!fe,
37763
37790
  scope: "detailConfig",
37764
- action: ue?.action,
37765
- title: ue?.title,
37766
- description: ue?.description,
37767
- confirmLabel: ue?.confirmLabel,
37768
- danger: ue?.danger,
37769
- onCancel: () => de(null),
37770
- onVerified: Ae,
37771
- onConfirm: ue?.action === "discoverFields" ? (e) => Ei({
37772
- module: ue.module,
37773
- clientId: ue.clientId,
37791
+ action: fe?.action,
37792
+ title: fe?.title,
37793
+ description: fe?.description,
37794
+ confirmLabel: fe?.confirmLabel,
37795
+ danger: fe?.danger,
37796
+ onCancel: () => pe(null),
37797
+ onVerified: Me,
37798
+ onConfirm: fe?.action === "discoverFields" ? (e) => Ei({
37799
+ module: fe.module,
37800
+ clientId: fe.clientId,
37774
37801
  otp: e
37775
37802
  }) : void 0
37776
37803
  })
@@ -43818,46 +43845,55 @@ var ZP = {
43818
43845
  cacheInvalidate: []
43819
43846
  };
43820
43847
  function QP() {
43821
- let [e, t] = R([]), [n, r] = R(!0), [i, a] = R(""), [o, s] = R({ storage: "mongo" }), [c, l] = R("mongo"), [u, d] = R(ZP), [f, p] = R(!1), [m, h] = R(!1), [g, _] = R(""), [v, y] = R(null), [b, x] = R(null), [S, C] = R(null), [w, T] = R(null), [E, D] = R(null);
43848
+ let [e, t] = R([]), [n, r] = R(!0), [i, a] = R(""), o = Po({
43849
+ on: !0,
43850
+ tries: 0
43851
+ }), s = Po([]), [c, l] = R({ storage: "mongo" }), [u, d] = R("mongo"), [f, p] = R(ZP), [m, h] = R(!1), [g, _] = R(!1), [v, y] = R(""), [b, x] = R(null), [S, C] = R(null), [w, T] = R(null), [E, D] = R(null), [O, k] = R(null);
43822
43852
  I(() => {
43823
43853
  Lr().then((e) => {
43824
43854
  let n = nk(e).map(({ value: e, label: t }) => ({
43825
43855
  key: e,
43826
43856
  label: t
43827
43857
  }));
43828
- t(n), n.length && a(n[0].key);
43858
+ t(n), s.current = n, n.length && a(n[0].key);
43829
43859
  }).catch(() => t([])).finally(() => r(!1));
43830
43860
  }, []), I(() => {
43831
43861
  if (!i) return;
43832
43862
  let e = !1;
43833
43863
  return (async () => {
43834
- p(!0), _("");
43864
+ h(!0), y("");
43835
43865
  try {
43836
43866
  let t = await bi(i);
43837
43867
  if (e) return;
43838
43868
  let n = t.gateway ?? { storage: "mongo" };
43839
- s(n), l(n.storage || "mongo"), d({
43869
+ l(n), d(n.storage || "mongo"), p({
43840
43870
  ...ZP,
43841
43871
  ...t.strategies ?? {}
43842
43872
  });
43843
43873
  } catch (t) {
43844
- e || _(t?.message || "Failed to load automations");
43874
+ if (e) return;
43875
+ let n = o.current, r = s.current, c = n.on && n.tries < 5 ? r[r.findIndex((e) => e.key === i) + 1] : null;
43876
+ if (c) {
43877
+ n.tries += 1, a(c.key);
43878
+ return;
43879
+ }
43880
+ y(/not found|status (400|404)|\b40[04]\b/i.test(String(t?.message ?? "")) || t?.status === 404 || t?.status === 400 ? "This module has nothing to configure here (no form or detail data)." : t?.message || "Failed to load automations");
43845
43881
  } finally {
43846
- e || p(!1);
43882
+ e || h(!1);
43847
43883
  }
43848
43884
  })(), () => {
43849
43885
  e = !0;
43850
43886
  };
43851
43887
  }, [i]);
43852
- let O = L(() => (u.hierarchyExpands ?? []).map((e) => e.name).filter(Boolean), [u.hierarchyExpands]);
43853
- function k(e, t) {
43854
- d((n) => ({
43888
+ let A = L(() => (f.hierarchyExpands ?? []).map((e) => e.name).filter(Boolean), [f.hierarchyExpands]);
43889
+ function j(e, t) {
43890
+ p((n) => ({
43855
43891
  ...n,
43856
43892
  [e]: t
43857
43893
  }));
43858
43894
  }
43859
- function A(e, t) {
43860
- d((n) => {
43895
+ function M(e, t) {
43896
+ p((n) => {
43861
43897
  let r = n.duplicateCheck ?? {}, i = [...r.stages ?? []];
43862
43898
  return i[e] = t, {
43863
43899
  ...n,
@@ -43868,40 +43904,40 @@ function QP() {
43868
43904
  };
43869
43905
  });
43870
43906
  }
43871
- function j() {
43872
- h(!0);
43907
+ function N() {
43908
+ _(!0);
43873
43909
  let e = {
43874
- ...u,
43875
- denormalizations: u.denormalizations?.length ? u.denormalizations : void 0,
43876
- arrayEnrichments: u.arrayEnrichments?.length ? u.arrayEnrichments : void 0,
43877
- fileFieldMaps: u.fileFieldMaps?.length ? u.fileFieldMaps : void 0,
43878
- sanitizeFields: u.sanitizeFields?.length ? u.sanitizeFields : void 0,
43879
- hierarchyExpands: u.hierarchyExpands?.length ? u.hierarchyExpands : void 0,
43880
- relatedUpdates: u.relatedUpdates?.length ? u.relatedUpdates : void 0,
43881
- cacheInvalidate: u.cacheInvalidate?.length ? u.cacheInvalidate : void 0,
43882
- defaults: Object.keys(u.defaults ?? {}).length ? u.defaults : void 0
43910
+ ...f,
43911
+ denormalizations: f.denormalizations?.length ? f.denormalizations : void 0,
43912
+ arrayEnrichments: f.arrayEnrichments?.length ? f.arrayEnrichments : void 0,
43913
+ fileFieldMaps: f.fileFieldMaps?.length ? f.fileFieldMaps : void 0,
43914
+ sanitizeFields: f.sanitizeFields?.length ? f.sanitizeFields : void 0,
43915
+ hierarchyExpands: f.hierarchyExpands?.length ? f.hierarchyExpands : void 0,
43916
+ relatedUpdates: f.relatedUpdates?.length ? f.relatedUpdates : void 0,
43917
+ cacheInvalidate: f.cacheInvalidate?.length ? f.cacheInvalidate : void 0,
43918
+ defaults: Object.keys(f.defaults ?? {}).length ? f.defaults : void 0
43883
43919
  };
43884
43920
  ha(i, {
43885
- gateway: o,
43921
+ gateway: c,
43886
43922
  strategies: e
43887
43923
  }).then(() => {
43888
- l(o.storage || "mongo"), J.success("Automations saved");
43889
- }).catch((e) => J.error(e?.message || "Could not save automations")).finally(() => h(!1));
43924
+ d(c.storage || "mongo"), J.success("Automations saved");
43925
+ }).catch((e) => J.error(e?.message || "Could not save automations")).finally(() => _(!1));
43890
43926
  }
43891
- function M() {
43892
- if ((o.storage || "mongo") !== c) {
43927
+ function ee() {
43928
+ if ((c.storage || "mongo") !== u) {
43893
43929
  rs.confirm({
43894
43930
  title: "Change how this module persists writes?",
43895
- content: `You're switching ${i} from "${c}" to "${o.storage}". ` + (o.storage === "mongo" ? "This module will stop calling its downstream service and this gateway will own the write + every Strategy below." : "This module will stop using the Strategies below and go back to calling its downstream service.") + " Make sure the downstream service / e2e checks are ready before confirming.",
43931
+ content: `You're switching ${i} from "${u}" to "${c.storage}". ` + (c.storage === "mongo" ? "This module will stop calling its downstream service and this gateway will own the write + every Strategy below." : "This module will stop using the Strategies below and go back to calling its downstream service.") + " Make sure the downstream service / e2e checks are ready before confirming.",
43896
43932
  okText: "Confirm cutover",
43897
43933
  okButtonProps: { danger: !0 },
43898
- onOk: j
43934
+ onOk: N
43899
43935
  });
43900
43936
  return;
43901
43937
  }
43902
- j();
43938
+ N();
43903
43939
  }
43904
- let N = [
43940
+ let P = [
43905
43941
  {
43906
43942
  title: "Source module",
43907
43943
  dataIndex: "sourceModule",
@@ -43939,7 +43975,7 @@ function QP() {
43939
43975
  children: "optional"
43940
43976
  })
43941
43977
  }
43942
- ], ee = [
43978
+ ], F = [
43943
43979
  {
43944
43980
  title: "Source field",
43945
43981
  dataIndex: "sourceField",
@@ -43972,7 +44008,7 @@ function QP() {
43972
44008
  color: "var(--color-brand)"
43973
44009
  })
43974
44010
  }
43975
- ], P = [
44011
+ ], te = [
43976
44012
  {
43977
44013
  title: "Source field",
43978
44014
  dataIndex: "sourceField",
@@ -44011,7 +44047,7 @@ function QP() {
44011
44047
  children: "—"
44012
44048
  })
44013
44049
  }
44014
- ], F = [
44050
+ ], ne = [
44015
44051
  {
44016
44052
  title: "Name",
44017
44053
  dataIndex: "name",
@@ -44051,7 +44087,7 @@ function QP() {
44051
44087
  children: "top"
44052
44088
  })
44053
44089
  }
44054
- ], te = [
44090
+ ], re = [
44055
44091
  {
44056
44092
  title: "Target",
44057
44093
  key: "target",
@@ -44089,7 +44125,7 @@ function QP() {
44089
44125
  children: "Insert if missing"
44090
44126
  }) : /* @__PURE__ */ X(K, { children: "Update" })
44091
44127
  }
44092
- ], ne = e.map((e) => ({
44128
+ ], ie = e.map((e) => ({
44093
44129
  key: e.key,
44094
44130
  label: e.label
44095
44131
  }));
@@ -44103,9 +44139,9 @@ function QP() {
44103
44139
  type: "primary",
44104
44140
  size: "small",
44105
44141
  icon: /* @__PURE__ */ X(_l, {}),
44106
- loading: m,
44142
+ loading: g,
44107
44143
  disabled: !i,
44108
- onClick: M,
44144
+ onClick: ee,
44109
44145
  children: "Save Automations"
44110
44146
  }),
44111
44147
  children: [/* @__PURE__ */ X("div", { className: "admin-accent-bar" }), /* @__PURE__ */ X(RP, {
@@ -44121,21 +44157,23 @@ function QP() {
44121
44157
  children: [
44122
44158
  /* @__PURE__ */ X(_s, {
44123
44159
  activeKey: i,
44124
- onChange: a,
44125
- items: ne.map((e) => ({
44160
+ onChange: (e) => {
44161
+ o.current.on = !1, a(e);
44162
+ },
44163
+ items: ie.map((e) => ({
44126
44164
  ...e,
44127
44165
  children: null
44128
44166
  })),
44129
44167
  className: "admin-module-tabs"
44130
44168
  }),
44131
- g && /* @__PURE__ */ X(Io, {
44169
+ v && /* @__PURE__ */ X(Io, {
44132
44170
  type: "error",
44133
44171
  showIcon: !0,
44134
- message: g,
44172
+ message: v,
44135
44173
  style: { marginBottom: 12 }
44136
44174
  }),
44137
44175
  /* @__PURE__ */ Z(ps, {
44138
- spinning: f,
44176
+ spinning: m,
44139
44177
  children: [
44140
44178
  /* @__PURE__ */ Z(OO, {
44141
44179
  title: "Gateway",
@@ -44161,8 +44199,8 @@ function QP() {
44161
44199
  }), /* @__PURE__ */ X(U, {
44162
44200
  size: "small",
44163
44201
  style: { width: "100%" },
44164
- value: o.storage || "mongo",
44165
- onChange: (e) => s((t) => ({
44202
+ value: c.storage || "mongo",
44203
+ onChange: (e) => l((t) => ({
44166
44204
  ...t,
44167
44205
  storage: e
44168
44206
  })),
@@ -44183,8 +44221,8 @@ function QP() {
44183
44221
  }), /* @__PURE__ */ X(H, {
44184
44222
  size: "small",
44185
44223
  placeholder: "file",
44186
- value: o.fileKey ?? "",
44187
- onChange: (e) => s((t) => ({
44224
+ value: c.fileKey ?? "",
44225
+ onChange: (e) => l((t) => ({
44188
44226
  ...t,
44189
44227
  fileKey: e.target.value
44190
44228
  })),
@@ -44192,7 +44230,7 @@ function QP() {
44192
44230
  })]
44193
44231
  })]
44194
44232
  }),
44195
- o.storage === "proxy" && /* @__PURE__ */ Z(Y, { children: [/* @__PURE__ */ Z("div", {
44233
+ c.storage === "proxy" && /* @__PURE__ */ Z(Y, { children: [/* @__PURE__ */ Z("div", {
44196
44234
  className: "fg-field-meta-row",
44197
44235
  style: { marginTop: 12 },
44198
44236
  children: [/* @__PURE__ */ Z("div", {
@@ -44204,8 +44242,8 @@ function QP() {
44204
44242
  }), /* @__PURE__ */ X(H, {
44205
44243
  size: "small",
44206
44244
  placeholder: "JOBS_SERVICE_URL",
44207
- value: o.baseUrlEnv ?? "",
44208
- onChange: (e) => s((t) => ({
44245
+ value: c.baseUrlEnv ?? "",
44246
+ onChange: (e) => l((t) => ({
44209
44247
  ...t,
44210
44248
  baseUrlEnv: e.target.value
44211
44249
  })),
@@ -44220,8 +44258,8 @@ function QP() {
44220
44258
  }), /* @__PURE__ */ X(H, {
44221
44259
  size: "small",
44222
44260
  placeholder: "http://...",
44223
- value: o.baseUrl ?? "",
44224
- onChange: (e) => s((t) => ({
44261
+ value: c.baseUrl ?? "",
44262
+ onChange: (e) => l((t) => ({
44225
44263
  ...t,
44226
44264
  baseUrl: e.target.value
44227
44265
  })),
@@ -44241,8 +44279,8 @@ function QP() {
44241
44279
  }), /* @__PURE__ */ X(H, {
44242
44280
  size: "small",
44243
44281
  placeholder: "/v1/jobs",
44244
- value: o.createPath ?? "",
44245
- onChange: (e) => s((t) => ({
44282
+ value: c.createPath ?? "",
44283
+ onChange: (e) => l((t) => ({
44246
44284
  ...t,
44247
44285
  createPath: e.target.value
44248
44286
  })),
@@ -44258,8 +44296,8 @@ function QP() {
44258
44296
  }), /* @__PURE__ */ X(H, {
44259
44297
  size: "small",
44260
44298
  placeholder: "/v1/edit/%s",
44261
- value: o.updatePath ?? "",
44262
- onChange: (e) => s((t) => ({
44299
+ value: c.updatePath ?? "",
44300
+ onChange: (e) => l((t) => ({
44263
44301
  ...t,
44264
44302
  updatePath: e.target.value
44265
44303
  })),
@@ -44275,8 +44313,8 @@ function QP() {
44275
44313
  }), /* @__PURE__ */ X(U, {
44276
44314
  size: "small",
44277
44315
  style: { width: "100%" },
44278
- value: o.updateMethod || "PUT",
44279
- onChange: (e) => s((t) => ({
44316
+ value: c.updateMethod || "PUT",
44317
+ onChange: (e) => l((t) => ({
44280
44318
  ...t,
44281
44319
  updateMethod: e
44282
44320
  })),
@@ -44306,8 +44344,8 @@ function QP() {
44306
44344
  },
44307
44345
  children: [/* @__PURE__ */ X(G, {
44308
44346
  size: "small",
44309
- checked: !!u.sequence,
44310
- onChange: (e) => k("sequence", e ? {
44347
+ checked: !!f.sequence,
44348
+ onChange: (e) => j("sequence", e ? {
44311
44349
  field: "",
44312
44350
  prefix: "",
44313
44351
  counterKey: ""
@@ -44320,7 +44358,7 @@ function QP() {
44320
44358
  "\" reference id on create"
44321
44359
  ]
44322
44360
  })]
44323
- }), u.sequence && /* @__PURE__ */ Z("div", {
44361
+ }), f.sequence && /* @__PURE__ */ Z("div", {
44324
44362
  className: "fg-field-meta-row",
44325
44363
  children: [
44326
44364
  /* @__PURE__ */ Z("div", {
@@ -44332,9 +44370,9 @@ function QP() {
44332
44370
  }), /* @__PURE__ */ X(H, {
44333
44371
  size: "small",
44334
44372
  placeholder: "submissionId",
44335
- value: u.sequence.field ?? "",
44336
- onChange: (e) => k("sequence", {
44337
- ...u.sequence,
44373
+ value: f.sequence.field ?? "",
44374
+ onChange: (e) => j("sequence", {
44375
+ ...f.sequence,
44338
44376
  field: e.target.value
44339
44377
  }),
44340
44378
  className: "fg-mono-input"
@@ -44349,9 +44387,9 @@ function QP() {
44349
44387
  }), /* @__PURE__ */ X(H, {
44350
44388
  size: "small",
44351
44389
  placeholder: "sub",
44352
- value: u.sequence.prefix ?? "",
44353
- onChange: (e) => k("sequence", {
44354
- ...u.sequence,
44390
+ value: f.sequence.prefix ?? "",
44391
+ onChange: (e) => j("sequence", {
44392
+ ...f.sequence,
44355
44393
  prefix: e.target.value
44356
44394
  }),
44357
44395
  className: "fg-mono-input"
@@ -44366,9 +44404,9 @@ function QP() {
44366
44404
  }), /* @__PURE__ */ X(H, {
44367
44405
  size: "small",
44368
44406
  placeholder: "submissions",
44369
- value: u.sequence.counterKey ?? "",
44370
- onChange: (e) => k("sequence", {
44371
- ...u.sequence,
44407
+ value: f.sequence.counterKey ?? "",
44408
+ onChange: (e) => j("sequence", {
44409
+ ...f.sequence,
44372
44410
  counterKey: e.target.value
44373
44411
  }),
44374
44412
  className: "fg-mono-input"
@@ -44399,8 +44437,8 @@ function QP() {
44399
44437
  },
44400
44438
  children: [/* @__PURE__ */ X(G, {
44401
44439
  size: "small",
44402
- checked: !!u.duplicateCheck,
44403
- onChange: (e) => k("duplicateCheck", e ? {
44440
+ checked: !!f.duplicateCheck,
44441
+ onChange: (e) => j("duplicateCheck", e ? {
44404
44442
  stages: [],
44405
44443
  policy: "prompt",
44406
44444
  displayFields: [],
@@ -44411,7 +44449,7 @@ function QP() {
44411
44449
  children: "Check before saving a new record"
44412
44450
  })]
44413
44451
  }),
44414
- u.duplicateCheck && /* @__PURE__ */ Z(Y, { children: [
44452
+ f.duplicateCheck && /* @__PURE__ */ Z(Y, { children: [
44415
44453
  /* @__PURE__ */ Z(RP, {
44416
44454
  type: "secondary",
44417
44455
  style: {
@@ -44421,7 +44459,7 @@ function QP() {
44421
44459
  },
44422
44460
  children: [/* @__PURE__ */ X("b", { children: "Checks run in order, top first, and stop at the first match." }), " Put your most certain check first — matching an email or a phone number is near proof; matching a name alone is only a maybe, so it belongs lower down."]
44423
44461
  }),
44424
- (u.duplicateCheck.stages ?? []).map((e, t) => /* @__PURE__ */ Z("div", {
44462
+ (f.duplicateCheck.stages ?? []).map((e, t) => /* @__PURE__ */ Z("div", {
44425
44463
  className: "fg-field-meta-row",
44426
44464
  style: {
44427
44465
  marginBottom: 8,
@@ -44444,7 +44482,7 @@ function QP() {
44444
44482
  style: { width: "100%" },
44445
44483
  placeholder: "email, contactNumber",
44446
44484
  value: e.fields ?? [],
44447
- onChange: (n) => A(t, {
44485
+ onChange: (n) => M(t, {
44448
44486
  ...e,
44449
44487
  fields: n
44450
44488
  })
@@ -44460,7 +44498,7 @@ function QP() {
44460
44498
  size: "small",
44461
44499
  style: { width: "100%" },
44462
44500
  value: e.match ?? "all",
44463
- onChange: (n) => A(t, {
44501
+ onChange: (n) => M(t, {
44464
44502
  ...e,
44465
44503
  match: n
44466
44504
  }),
@@ -44483,7 +44521,7 @@ function QP() {
44483
44521
  size: "small",
44484
44522
  style: { width: "100%" },
44485
44523
  value: e.weight ?? "strong",
44486
- onChange: (n) => A(t, {
44524
+ onChange: (n) => M(t, {
44487
44525
  ...e,
44488
44526
  weight: n
44489
44527
  }),
@@ -44506,7 +44544,7 @@ function QP() {
44506
44544
  size: "small",
44507
44545
  placeholder: "A candidate with this email already exists — {name}, last updated {age}.",
44508
44546
  value: e.message ?? "",
44509
- onChange: (n) => A(t, {
44547
+ onChange: (n) => M(t, {
44510
44548
  ...e,
44511
44549
  message: n.target.value
44512
44550
  })
@@ -44516,9 +44554,9 @@ function QP() {
44516
44554
  size: "small",
44517
44555
  danger: !0,
44518
44556
  type: "text",
44519
- onClick: () => k("duplicateCheck", {
44520
- ...u.duplicateCheck,
44521
- stages: (u.duplicateCheck.stages ?? []).filter((e, n) => n !== t)
44557
+ onClick: () => j("duplicateCheck", {
44558
+ ...f.duplicateCheck,
44559
+ stages: (f.duplicateCheck.stages ?? []).filter((e, n) => n !== t)
44522
44560
  }),
44523
44561
  children: "Remove"
44524
44562
  })
@@ -44528,9 +44566,9 @@ function QP() {
44528
44566
  size: "small",
44529
44567
  type: "dashed",
44530
44568
  style: { marginBottom: 12 },
44531
- onClick: () => k("duplicateCheck", {
44532
- ...u.duplicateCheck,
44533
- stages: [...u.duplicateCheck.stages ?? [], {
44569
+ onClick: () => j("duplicateCheck", {
44570
+ ...f.duplicateCheck,
44571
+ stages: [...f.duplicateCheck.stages ?? [], {
44534
44572
  fields: [],
44535
44573
  match: "any",
44536
44574
  weight: "strong"
@@ -44549,9 +44587,9 @@ function QP() {
44549
44587
  }), /* @__PURE__ */ X(U, {
44550
44588
  size: "small",
44551
44589
  style: { width: "100%" },
44552
- value: u.duplicateCheck.policy ?? "prompt",
44553
- onChange: (e) => k("duplicateCheck", {
44554
- ...u.duplicateCheck,
44590
+ value: f.duplicateCheck.policy ?? "prompt",
44591
+ onChange: (e) => j("duplicateCheck", {
44592
+ ...f.duplicateCheck,
44555
44593
  policy: e
44556
44594
  }),
44557
44595
  options: [{
@@ -44573,9 +44611,9 @@ function QP() {
44573
44611
  size: "small",
44574
44612
  style: { width: "100%" },
44575
44613
  placeholder: "firstName, lastName, email",
44576
- value: u.duplicateCheck.displayFields ?? [],
44577
- onChange: (e) => k("duplicateCheck", {
44578
- ...u.duplicateCheck,
44614
+ value: f.duplicateCheck.displayFields ?? [],
44615
+ onChange: (e) => j("duplicateCheck", {
44616
+ ...f.duplicateCheck,
44579
44617
  displayFields: e
44580
44618
  })
44581
44619
  })]
@@ -44594,9 +44632,9 @@ function QP() {
44594
44632
  size: "small",
44595
44633
  className: "fg-mono-input",
44596
44634
  placeholder: "/candidate/edit/:id",
44597
- value: u.duplicateCheck.editRoute ?? "",
44598
- onChange: (e) => k("duplicateCheck", {
44599
- ...u.duplicateCheck,
44635
+ value: f.duplicateCheck.editRoute ?? "",
44636
+ onChange: (e) => j("duplicateCheck", {
44637
+ ...f.duplicateCheck,
44600
44638
  editRoute: e.target.value
44601
44639
  })
44602
44640
  })]
@@ -44661,8 +44699,8 @@ function QP() {
44661
44699
  },
44662
44700
  children: [/* @__PURE__ */ X(G, {
44663
44701
  size: "small",
44664
- checked: !!u.fileVersioning,
44665
- onChange: (e) => k("fileVersioning", e ? {
44702
+ checked: !!f.fileVersioning,
44703
+ onChange: (e) => j("fileVersioning", e ? {
44666
44704
  fields: [],
44667
44705
  keep: 2,
44668
44706
  historyKey: "",
@@ -44674,7 +44712,7 @@ function QP() {
44674
44712
  children: "Keep previous uploads"
44675
44713
  })]
44676
44714
  }),
44677
- u.fileVersioning && /* @__PURE__ */ Z(Y, { children: [
44715
+ f.fileVersioning && /* @__PURE__ */ Z(Y, { children: [
44678
44716
  /* @__PURE__ */ Z("div", {
44679
44717
  style: { marginBottom: 10 },
44680
44718
  children: [
@@ -44688,13 +44726,13 @@ function QP() {
44688
44726
  }),
44689
44727
  /* @__PURE__ */ Z(ss.Group, {
44690
44728
  size: "small",
44691
- value: u.fileVersioning.store === "documents" ? "documents" : "record",
44729
+ value: f.fileVersioning.store === "documents" ? "documents" : "record",
44692
44730
  onChange: (e) => {
44693
44731
  let t = e.target.value, n = {
44694
- ...u.fileVersioning,
44732
+ ...f.fileVersioning,
44695
44733
  store: t === "documents" ? "documents" : ""
44696
44734
  };
44697
- t === "documents" && (n.linkField = n.linkField || "documentIds", n.clearRecordKeys = n.clearRecordKeys?.length ? n.clearRecordKeys : (n.fields ?? []).flatMap((e) => [`${e}History`, `${e}Versions`])), k("fileVersioning", n);
44735
+ t === "documents" && (n.linkField = n.linkField || "documentIds", n.clearRecordKeys = n.clearRecordKeys?.length ? n.clearRecordKeys : (n.fields ?? []).flatMap((e) => [`${e}History`, `${e}Versions`])), j("fileVersioning", n);
44698
44736
  },
44699
44737
  children: [/* @__PURE__ */ X(ss, {
44700
44738
  value: "documents",
@@ -44720,7 +44758,7 @@ function QP() {
44720
44758
  })
44721
44759
  ]
44722
44760
  }),
44723
- u.fileVersioning.store === "documents" && /* @__PURE__ */ Z("div", {
44761
+ f.fileVersioning.store === "documents" && /* @__PURE__ */ Z("div", {
44724
44762
  className: "fg-field-meta-row",
44725
44763
  style: { marginBottom: 10 },
44726
44764
  children: [/* @__PURE__ */ Z("div", {
@@ -44732,9 +44770,9 @@ function QP() {
44732
44770
  }), /* @__PURE__ */ X(H, {
44733
44771
  size: "small",
44734
44772
  placeholder: "documentIds",
44735
- value: u.fileVersioning.linkField ?? "",
44736
- onChange: (e) => k("fileVersioning", {
44737
- ...u.fileVersioning,
44773
+ value: f.fileVersioning.linkField ?? "",
44774
+ onChange: (e) => j("fileVersioning", {
44775
+ ...f.fileVersioning,
44738
44776
  linkField: e.target.value
44739
44777
  })
44740
44778
  })]
@@ -44749,9 +44787,9 @@ function QP() {
44749
44787
  size: "small",
44750
44788
  style: { width: "100%" },
44751
44789
  placeholder: "resumeHistory",
44752
- value: u.fileVersioning.clearRecordKeys ?? [],
44753
- onChange: (e) => k("fileVersioning", {
44754
- ...u.fileVersioning,
44790
+ value: f.fileVersioning.clearRecordKeys ?? [],
44791
+ onChange: (e) => j("fileVersioning", {
44792
+ ...f.fileVersioning,
44755
44793
  clearRecordKeys: e
44756
44794
  })
44757
44795
  })]
@@ -44771,9 +44809,9 @@ function QP() {
44771
44809
  size: "small",
44772
44810
  style: { width: "100%" },
44773
44811
  placeholder: "resume",
44774
- value: u.fileVersioning.fields ?? [],
44775
- onChange: (e) => k("fileVersioning", {
44776
- ...u.fileVersioning,
44812
+ value: f.fileVersioning.fields ?? [],
44813
+ onChange: (e) => j("fileVersioning", {
44814
+ ...f.fileVersioning,
44777
44815
  fields: e
44778
44816
  })
44779
44817
  })]
@@ -44788,9 +44826,9 @@ function QP() {
44788
44826
  size: "small",
44789
44827
  type: "number",
44790
44828
  min: 1,
44791
- value: u.fileVersioning.keep ?? 2,
44792
- onChange: (e) => k("fileVersioning", {
44793
- ...u.fileVersioning,
44829
+ value: f.fileVersioning.keep ?? 2,
44830
+ onChange: (e) => j("fileVersioning", {
44831
+ ...f.fileVersioning,
44794
44832
  keep: Number(e.target.value) || 1
44795
44833
  })
44796
44834
  })]
@@ -44804,9 +44842,9 @@ function QP() {
44804
44842
  }), /* @__PURE__ */ X(H, {
44805
44843
  size: "small",
44806
44844
  placeholder: "candidates/{recordId}/resume",
44807
- value: u.fileVersioning.s3Prefix ?? "",
44808
- onChange: (e) => k("fileVersioning", {
44809
- ...u.fileVersioning,
44845
+ value: f.fileVersioning.s3Prefix ?? "",
44846
+ onChange: (e) => j("fileVersioning", {
44847
+ ...f.fileVersioning,
44810
44848
  s3Prefix: e.target.value
44811
44849
  })
44812
44850
  })]
@@ -44822,9 +44860,9 @@ function QP() {
44822
44860
  },
44823
44861
  children: [/* @__PURE__ */ X(G, {
44824
44862
  size: "small",
44825
- checked: !!u.fileVersioning.deleteEvicted,
44826
- onChange: (e) => k("fileVersioning", {
44827
- ...u.fileVersioning,
44863
+ checked: !!f.fileVersioning.deleteEvicted,
44864
+ onChange: (e) => j("fileVersioning", {
44865
+ ...f.fileVersioning,
44828
44866
  deleteEvicted: e
44829
44867
  })
44830
44868
  }), /* @__PURE__ */ X(RP, {
@@ -44848,49 +44886,49 @@ function QP() {
44848
44886
  icon: /* @__PURE__ */ X(nc, {}),
44849
44887
  title: "Denormalizations",
44850
44888
  description: "Copy fields from ANOTHER module's record onto this payload before insert (e.g. a submission snapshotting job title/client).",
44851
- rules: u.denormalizations ?? [],
44852
- columns: N,
44853
- onAdd: () => y({
44889
+ rules: f.denormalizations ?? [],
44890
+ columns: P,
44891
+ onAdd: () => x({
44854
44892
  index: null,
44855
44893
  rule: null
44856
44894
  }),
44857
- onEdit: (e, t) => y({
44895
+ onEdit: (e, t) => x({
44858
44896
  index: e,
44859
44897
  rule: t
44860
44898
  }),
44861
- onDelete: (e) => k("denormalizations", (u.denormalizations ?? []).filter((t, n) => n !== e))
44899
+ onDelete: (e) => j("denormalizations", (f.denormalizations ?? []).filter((t, n) => n !== e))
44862
44900
  }),
44863
44901
  /* @__PURE__ */ X(XP, {
44864
44902
  icon: /* @__PURE__ */ X(ws, {}),
44865
44903
  title: "Array Enrichments",
44866
44904
  description: "Enrich a payload array of ids (e.g. recruitersData) into objects carrying looked-up fields (name, email) before insert.",
44867
- rules: u.arrayEnrichments ?? [],
44868
- columns: ee,
44869
- onAdd: () => x({
44905
+ rules: f.arrayEnrichments ?? [],
44906
+ columns: F,
44907
+ onAdd: () => C({
44870
44908
  index: null,
44871
44909
  rule: null
44872
44910
  }),
44873
- onEdit: (e, t) => x({
44911
+ onEdit: (e, t) => C({
44874
44912
  index: e,
44875
44913
  rule: t
44876
44914
  }),
44877
- onDelete: (e) => k("arrayEnrichments", (u.arrayEnrichments ?? []).filter((t, n) => n !== e))
44915
+ onDelete: (e) => j("arrayEnrichments", (f.arrayEnrichments ?? []).filter((t, n) => n !== e))
44878
44916
  }),
44879
44917
  /* @__PURE__ */ X(XP, {
44880
44918
  icon: /* @__PURE__ */ X(nc, {}),
44881
44919
  title: "File Field Maps",
44882
44920
  description: "Turn an uploaded file field into a nested object (location + filename + who/when) or an array of such objects, instead of a flat S3 path string — needed for schemas like resume/passport/visa.",
44883
- rules: u.fileFieldMaps ?? [],
44884
- columns: P,
44885
- onAdd: () => C({
44921
+ rules: f.fileFieldMaps ?? [],
44922
+ columns: te,
44923
+ onAdd: () => T({
44886
44924
  index: null,
44887
44925
  rule: null
44888
44926
  }),
44889
- onEdit: (e, t) => C({
44927
+ onEdit: (e, t) => T({
44890
44928
  index: e,
44891
44929
  rule: t
44892
44930
  }),
44893
- onDelete: (e) => k("fileFieldMaps", (u.fileFieldMaps ?? []).filter((t, n) => n !== e))
44931
+ onDelete: (e) => j("fileFieldMaps", (f.fileFieldMaps ?? []).filter((t, n) => n !== e))
44894
44932
  }),
44895
44933
  /* @__PURE__ */ Z(OO, {
44896
44934
  title: "Sanitize Fields",
@@ -44907,8 +44945,8 @@ function QP() {
44907
44945
  mode: "tags",
44908
44946
  style: { width: "100%" },
44909
44947
  placeholder: "firstName, lastName, email",
44910
- value: u.sanitizeFields ?? [],
44911
- onChange: (e) => k("sanitizeFields", e)
44948
+ value: f.sanitizeFields ?? [],
44949
+ onChange: (e) => j("sanitizeFields", e)
44912
44950
  })]
44913
44951
  }),
44914
44952
  /* @__PURE__ */ Z(OO, {
@@ -44923,8 +44961,8 @@ function QP() {
44923
44961
  },
44924
44962
  children: "Set a field only when the payload doesn't already carry a non-blank value — status defaults, empty arrays."
44925
44963
  }), /* @__PURE__ */ X(BP, {
44926
- rows: UP(u.defaults),
44927
- onChange: (e) => k("defaults", WP(e)),
44964
+ rows: UP(f.defaults),
44965
+ onChange: (e) => j("defaults", WP(e)),
44928
44966
  keyPlaceholder: "internalSubmissionStatus.internalSubmissionStatusText",
44929
44967
  valuePlaceholder: "\"Under Evaluation\""
44930
44968
  })]
@@ -44933,33 +44971,33 @@ function QP() {
44933
44971
  icon: /* @__PURE__ */ X(ws, {}),
44934
44972
  title: "Hierarchy Expansions",
44935
44973
  description: "Walk the reporting chain up (toward admin) or down (toward a team) from a seed user, publishing the result as {{hierarchy.<name>}} for Related Updates / Notify to use.",
44936
- rules: u.hierarchyExpands ?? [],
44937
- columns: F,
44938
- onAdd: () => T({
44974
+ rules: f.hierarchyExpands ?? [],
44975
+ columns: ne,
44976
+ onAdd: () => D({
44939
44977
  index: null,
44940
44978
  rule: null
44941
44979
  }),
44942
- onEdit: (e, t) => T({
44980
+ onEdit: (e, t) => D({
44943
44981
  index: e,
44944
44982
  rule: t
44945
44983
  }),
44946
- onDelete: (e) => k("hierarchyExpands", (u.hierarchyExpands ?? []).filter((t, n) => n !== e))
44984
+ onDelete: (e) => j("hierarchyExpands", (f.hierarchyExpands ?? []).filter((t, n) => n !== e))
44947
44985
  }),
44948
44986
  /* @__PURE__ */ X(XP, {
44949
44987
  icon: /* @__PURE__ */ X(Ml, {}),
44950
44988
  title: "Related Updates",
44951
44989
  description: "Best-effort side-effect writes to other collections after a successful insert — board state, activity logs. Combine with ForEach + a Hierarchy Expansion to seed one document per user in a chain.",
44952
- rules: u.relatedUpdates ?? [],
44953
- columns: te,
44954
- onAdd: () => D({
44990
+ rules: f.relatedUpdates ?? [],
44991
+ columns: re,
44992
+ onAdd: () => k({
44955
44993
  index: null,
44956
44994
  rule: null
44957
44995
  }),
44958
- onEdit: (e, t) => D({
44996
+ onEdit: (e, t) => k({
44959
44997
  index: e,
44960
44998
  rule: t
44961
44999
  }),
44962
- onDelete: (e) => k("relatedUpdates", (u.relatedUpdates ?? []).filter((t, n) => n !== e))
45000
+ onDelete: (e) => j("relatedUpdates", (f.relatedUpdates ?? []).filter((t, n) => n !== e))
44963
45001
  }),
44964
45002
  /* @__PURE__ */ Z(OO, {
44965
45003
  title: "Notify",
@@ -44973,8 +45011,8 @@ function QP() {
44973
45011
  },
44974
45012
  children: [/* @__PURE__ */ X(G, {
44975
45013
  size: "small",
44976
- checked: !!u.notify,
44977
- onChange: (e) => k("notify", e ? {
45014
+ checked: !!f.notify,
45015
+ onChange: (e) => j("notify", e ? {
44978
45016
  action: "",
44979
45017
  subjectDefault: "",
44980
45018
  bodyDefault: "",
@@ -44985,7 +45023,7 @@ function QP() {
44985
45023
  style: { fontSize: 13 },
44986
45024
  children: "Send a best-effort email after a successful insert"
44987
45025
  })]
44988
- }), u.notify && /* @__PURE__ */ Z(Y, { children: [
45026
+ }), f.notify && /* @__PURE__ */ Z(Y, { children: [
44989
45027
  /* @__PURE__ */ Z("div", {
44990
45028
  className: "fg-field-meta-row",
44991
45029
  children: [/* @__PURE__ */ Z("div", {
@@ -44997,9 +45035,9 @@ function QP() {
44997
45035
  }), /* @__PURE__ */ X(H, {
44998
45036
  size: "small",
44999
45037
  placeholder: "internalSubmit",
45000
- value: u.notify.action ?? "",
45001
- onChange: (e) => k("notify", {
45002
- ...u.notify,
45038
+ value: f.notify.action ?? "",
45039
+ onChange: (e) => j("notify", {
45040
+ ...f.notify,
45003
45041
  action: e.target.value
45004
45042
  }),
45005
45043
  className: "fg-mono-input"
@@ -45015,12 +45053,12 @@ function QP() {
45015
45053
  style: { width: "100%" },
45016
45054
  allowClear: !0,
45017
45055
  placeholder: "pick a Hierarchy Expansion",
45018
- value: u.notify.toHierarchy || void 0,
45019
- onChange: (e) => k("notify", {
45020
- ...u.notify,
45056
+ value: f.notify.toHierarchy || void 0,
45057
+ onChange: (e) => j("notify", {
45058
+ ...f.notify,
45021
45059
  toHierarchy: e ?? ""
45022
45060
  }),
45023
- options: O.map((e) => ({
45061
+ options: A.map((e) => ({
45024
45062
  value: e,
45025
45063
  label: e
45026
45064
  }))
@@ -45036,9 +45074,9 @@ function QP() {
45036
45074
  },
45037
45075
  children: [/* @__PURE__ */ X(G, {
45038
45076
  size: "small",
45039
- checked: !!u.notify.toReportingManager,
45040
- onChange: (e) => k("notify", {
45041
- ...u.notify,
45077
+ checked: !!f.notify.toReportingManager,
45078
+ onChange: (e) => j("notify", {
45079
+ ...f.notify,
45042
45080
  toReportingManager: e
45043
45081
  })
45044
45082
  }), /* @__PURE__ */ X(RP, {
@@ -45055,9 +45093,9 @@ function QP() {
45055
45093
  }), /* @__PURE__ */ X(H, {
45056
45094
  size: "small",
45057
45095
  placeholder: "New submission",
45058
- value: u.notify.subjectDefault ?? "",
45059
- onChange: (e) => k("notify", {
45060
- ...u.notify,
45096
+ value: f.notify.subjectDefault ?? "",
45097
+ onChange: (e) => j("notify", {
45098
+ ...f.notify,
45061
45099
  subjectDefault: e.target.value
45062
45100
  })
45063
45101
  })]
@@ -45070,9 +45108,9 @@ function QP() {
45070
45108
  children: "Default body (used when no EmailTemplates doc matches)"
45071
45109
  }), /* @__PURE__ */ X(H.TextArea, {
45072
45110
  rows: 4,
45073
- value: u.notify.bodyDefault ?? "",
45074
- onChange: (e) => k("notify", {
45075
- ...u.notify,
45111
+ value: f.notify.bodyDefault ?? "",
45112
+ onChange: (e) => j("notify", {
45113
+ ...f.notify,
45076
45114
  bodyDefault: e.target.value
45077
45115
  }),
45078
45116
  className: "fg-mono-input"
@@ -45099,8 +45137,8 @@ function QP() {
45099
45137
  mode: "tags",
45100
45138
  style: { width: "100%" },
45101
45139
  placeholder: "jobs:{{tenantId}}:{{businessId}}:{{businessUnitId}}:*",
45102
- value: u.cacheInvalidate ?? [],
45103
- onChange: (e) => k("cacheInvalidate", e)
45140
+ value: f.cacheInvalidate ?? [],
45141
+ onChange: (e) => j("cacheInvalidate", e)
45104
45142
  })]
45105
45143
  })
45106
45144
  ]
@@ -45109,46 +45147,46 @@ function QP() {
45109
45147
  })
45110
45148
  }),
45111
45149
  /* @__PURE__ */ X(GP, {
45112
- open: !!v,
45113
- rule: v?.rule,
45114
- onClose: () => y(null),
45115
- onSave: (e) => {
45116
- k("denormalizations", v.index === null ? [...u.denormalizations ?? [], e] : (u.denormalizations ?? []).map((t, n) => n === v.index ? e : t)), y(null);
45117
- }
45118
- }, v ? `denorm-${v.index ?? "new"}` : "denorm-closed"),
45119
- /* @__PURE__ */ X(KP, {
45120
45150
  open: !!b,
45121
45151
  rule: b?.rule,
45122
45152
  onClose: () => x(null),
45123
45153
  onSave: (e) => {
45124
- k("arrayEnrichments", b.index === null ? [...u.arrayEnrichments ?? [], e] : (u.arrayEnrichments ?? []).map((t, n) => n === b.index ? e : t)), x(null);
45154
+ j("denormalizations", b.index === null ? [...f.denormalizations ?? [], e] : (f.denormalizations ?? []).map((t, n) => n === b.index ? e : t)), x(null);
45125
45155
  }
45126
- }, b ? `enrich-${b.index ?? "new"}` : "enrich-closed"),
45127
- /* @__PURE__ */ X(qP, {
45156
+ }, b ? `denorm-${b.index ?? "new"}` : "denorm-closed"),
45157
+ /* @__PURE__ */ X(KP, {
45128
45158
  open: !!S,
45129
45159
  rule: S?.rule,
45130
45160
  onClose: () => C(null),
45131
45161
  onSave: (e) => {
45132
- k("fileFieldMaps", S.index === null ? [...u.fileFieldMaps ?? [], e] : (u.fileFieldMaps ?? []).map((t, n) => n === S.index ? e : t)), C(null);
45162
+ j("arrayEnrichments", S.index === null ? [...f.arrayEnrichments ?? [], e] : (f.arrayEnrichments ?? []).map((t, n) => n === S.index ? e : t)), C(null);
45133
45163
  }
45134
- }, S ? `filemap-${S.index ?? "new"}` : "filemap-closed"),
45135
- /* @__PURE__ */ X(JP, {
45164
+ }, S ? `enrich-${S.index ?? "new"}` : "enrich-closed"),
45165
+ /* @__PURE__ */ X(qP, {
45136
45166
  open: !!w,
45137
45167
  rule: w?.rule,
45138
45168
  onClose: () => T(null),
45139
45169
  onSave: (e) => {
45140
- k("hierarchyExpands", w.index === null ? [...u.hierarchyExpands ?? [], e] : (u.hierarchyExpands ?? []).map((t, n) => n === w.index ? e : t)), T(null);
45170
+ j("fileFieldMaps", w.index === null ? [...f.fileFieldMaps ?? [], e] : (f.fileFieldMaps ?? []).map((t, n) => n === w.index ? e : t)), T(null);
45141
45171
  }
45142
- }, w ? `hier-${w.index ?? "new"}` : "hier-closed"),
45143
- /* @__PURE__ */ X(YP, {
45172
+ }, w ? `filemap-${w.index ?? "new"}` : "filemap-closed"),
45173
+ /* @__PURE__ */ X(JP, {
45144
45174
  open: !!E,
45145
45175
  rule: E?.rule,
45146
- hierarchyNames: O,
45147
45176
  onClose: () => D(null),
45148
45177
  onSave: (e) => {
45149
- k("relatedUpdates", E.index === null ? [...u.relatedUpdates ?? [], e] : (u.relatedUpdates ?? []).map((t, n) => n === E.index ? e : t)), D(null);
45178
+ j("hierarchyExpands", E.index === null ? [...f.hierarchyExpands ?? [], e] : (f.hierarchyExpands ?? []).map((t, n) => n === E.index ? e : t)), D(null);
45150
45179
  }
45151
- }, E ? `ru-${E.index ?? "new"}` : "ru-closed")
45180
+ }, E ? `hier-${E.index ?? "new"}` : "hier-closed"),
45181
+ /* @__PURE__ */ X(YP, {
45182
+ open: !!O,
45183
+ rule: O?.rule,
45184
+ hierarchyNames: A,
45185
+ onClose: () => k(null),
45186
+ onSave: (e) => {
45187
+ j("relatedUpdates", O.index === null ? [...f.relatedUpdates ?? [], e] : (f.relatedUpdates ?? []).map((t, n) => n === O.index ? e : t)), k(null);
45188
+ }
45189
+ }, O ? `ru-${O.index ?? "new"}` : "ru-closed")
45152
45190
  ]
45153
45191
  });
45154
45192
  }
@@ -45829,9 +45867,9 @@ function _F(e) {
45829
45867
  return r != null && r !== "" ? Number(r) : void 0;
45830
45868
  }
45831
45869
  function vF(e) {
45832
- if (!e) return "—";
45870
+ if (!e) return "Not recorded";
45833
45871
  let t = new Date(e);
45834
- return Number.isNaN(t.getTime()) ? "—" : new Intl.DateTimeFormat(void 0, {
45872
+ return Number.isNaN(t.getTime()) ? "Not recorded" : new Intl.DateTimeFormat(void 0, {
45835
45873
  dateStyle: "medium",
45836
45874
  timeStyle: "short"
45837
45875
  }).format(t);
@@ -46012,7 +46050,7 @@ function SF() {
46012
46050
  return Number.isFinite(n) ? /* @__PURE__ */ Z(K, {
46013
46051
  color: "blue",
46014
46052
  children: [n, "%"]
46015
- }) : "—";
46053
+ }) : "Not set";
46016
46054
  }
46017
46055
  },
46018
46056
  {
@@ -46922,7 +46960,11 @@ function PF() {
46922
46960
  },
46923
46961
  {
46924
46962
  title: "Route / API",
46925
- dataIndex: "api_url"
46963
+ dataIndex: "api_url",
46964
+ render: (e) => String(e ?? "").trim() ? e : /* @__PURE__ */ X("span", {
46965
+ style: { color: "var(--color-text-secondary, #8c8c8c)" },
46966
+ children: "No route (menu group)"
46967
+ })
46926
46968
  },
46927
46969
  {
46928
46970
  title: "Icon",
@@ -47896,7 +47938,11 @@ function nI({ onLogout: e, initialTab: t = "users", embedded: n = !1 }) {
47896
47938
  },
47897
47939
  {
47898
47940
  label: "Description",
47899
- value: "description"
47941
+ value: "description",
47942
+ render: (e) => String(e ?? "").trim() ? e : /* @__PURE__ */ X(VF, {
47943
+ type: "secondary",
47944
+ children: "No description"
47945
+ })
47900
47946
  },
47901
47947
  {
47902
47948
  label: "Status",
@@ -58683,7 +58729,7 @@ function FU({ sections: e, onOpen: t }) {
58683
58729
  }
58684
58730
  //#endregion
58685
58731
  //#region src/pages/Modules/Admin/settings/SettingsPage.jsx
58686
- var IU = ko(() => import("./FacebookCourseMappingsSection-rwzWu8Z5.js").then((e) => e.n)), LU = ko(() => Promise.resolve().then(() => LF)), { Title: RU } = xs, zU = [
58732
+ var IU = ko(() => import("./FacebookCourseMappingsSection-Dqn0D7cH.js").then((e) => e.n)), LU = ko(() => Promise.resolve().then(() => LF)), { Title: RU } = xs, zU = [
58687
58733
  {
58688
58734
  key: "mappings",
58689
58735
  label: "Mapping & Distributions",
@@ -66501,43 +66547,43 @@ function qJ(e, t = de) {
66501
66547
  return i.forEach((n) => {
66502
66548
  t[n.key] = typeof n.value == "function" ? IJ(n.value, e, { row: e }) : FJ(e, n.value ?? n.key);
66503
66549
  }), t;
66504
- }), c = i.map((e) => {
66505
- let { value: t, after: n, ...r } = e;
66550
+ }), c = new Map(PJ(o.fields).map((e) => [KJ(e), e?.isVisible === !0 || e?.isVisible === "true"])), l = new Set(i.filter((e) => $(e.adminField) && c.get(String(e.adminField)) !== !0).map((e) => e.key)), u = i.map((e) => {
66551
+ let { value: t, after: n, adminField: r, ...i } = e;
66506
66552
  return {
66507
- ...r,
66553
+ ...i,
66508
66554
  field: e.key,
66509
66555
  label: e.label ?? e.key,
66510
66556
  isVisible: !0,
66511
66557
  isVirtual: !0
66512
66558
  };
66513
- }), l = (e) => {
66559
+ }).filter((e) => !l.has(e.field)), d = (e) => {
66514
66560
  let t = KJ(e);
66515
66561
  return r[t] ? {
66516
66562
  ...e,
66517
66563
  ...r[t]
66518
66564
  } : e;
66519
- }, u;
66565
+ }, f;
66520
66566
  if (n.length) {
66521
- let e = new Map([...PJ(o.fields), ...c].map((e) => [KJ(e), e]));
66522
- u = n.map((t) => e.get(t) ?? (r[t] ? {
66567
+ let e = new Map([...PJ(o.fields), ...u].map((e) => [KJ(e), e]));
66568
+ f = n.filter((e) => !l.has(e)).map((t) => e.get(t) ?? (r[t] ? {
66523
66569
  field: t,
66524
66570
  label: r[t].label ?? t
66525
66571
  } : null)).filter(Boolean).map((e, t) => ({
66526
- ...l(e),
66572
+ ...d(e),
66527
66573
  isVisible: !0,
66528
66574
  order: t
66529
66575
  }));
66530
- } else u = PJ(o.fields).map(l), c.forEach((e, t) => {
66531
- let n = $(i[t].after) ? u.findIndex((e) => KJ(e) === i[t].after) : -1;
66532
- n >= 0 ? u.splice(n + 1, 0, e) : u.push(e);
66533
- }), u.some((e) => e.order !== void 0 && e.order !== null && e.order !== "") && (u = u.map((e, t) => ({
66576
+ } else f = PJ(o.fields).map(d), u.forEach((e) => {
66577
+ let t = i.find((t) => t.key === e.field) ?? {}, n = $(t.after) ? f.findIndex((e) => KJ(e) === t.after) : -1;
66578
+ n >= 0 ? f.splice(n + 1, 0, e) : f.push(e);
66579
+ }), f.some((e) => e.order !== void 0 && e.order !== null && e.order !== "") && (f = f.map((e, t) => ({
66534
66580
  ...e,
66535
66581
  order: t
66536
66582
  })));
66537
66583
  return {
66538
66584
  ...o,
66539
66585
  rows: s,
66540
- fields: u
66586
+ fields: f
66541
66587
  };
66542
66588
  },
66543
66589
  ...n.length ? { defaultVisibleColumnCount: n.length } : {}
@@ -68216,7 +68262,8 @@ function MY({ tab: e, moduleName: t, id: n, refreshKey: r, onOpenTab: i = null,
68216
68262
  emptyContent: d,
68217
68263
  onOpenTab: i,
68218
68264
  onHostAction: a,
68219
- onActionDone: o
68265
+ onActionDone: o,
68266
+ displayOnlyActionGroups: Array.isArray(e.displayOnlyActionGroups) ? e.displayOnlyActionGroups : null
68220
68267
  })
68221
68268
  });
68222
68269
  }
@@ -73211,7 +73258,7 @@ async function OQ(e, t, { limit: n = 20, offset: r = 0, sort: i = "", sortDir: a
73211
73258
  }
73212
73259
  //#endregion
73213
73260
  //#region src/index.js
73214
- typeof window < "u" && (window.__CORE_THEME_BUILD__ = "2026-11-13T12:12:14.821Z");
73261
+ typeof window < "u" && (window.__CORE_THEME_BUILD__ = "2026-11-14T13:02:50.939Z");
73215
73262
  var kQ = AV, AQ = WD(zW), jQ = WD(VW), MQ = WD(nG), NQ = WD(mG), PQ = WD(CG), FQ = WD(EG), IQ = WD(kG), LQ = WD(MG), RQ = WD(PG), zQ = WD(qG), BQ = WD(YG);
73216
73263
  //#endregion
73217
73264
  export { se as ACTION_RULE_SURFACES, D as ADMIN_API_URL, c as ADMIN_APP_ID, E as APP_ID, a as AUTH_URL, sY as ActionInputBox, qf as ActivityNotesCard, Hf as ActivityTab, aV as AddBatchCandidatePopup, Aa as AddFormV1, JZ as AddRecordDrawer, AV as AdminDashboard, nI as AdminDashboardContent, kQ as AdminPage, Ra as AppAlert, Mn as AppButton, pD as AppShell, bw as ApprovalActionBar, Jf as AssigneeAvatars, oD as AuthGuard, l_ as BILLING_STATUS_FLOW, oC as BOOLEAN_API_KEYS, Gx as BOOLEAN_PARSEABLE_API_KEYS, bv as BUILT_IN_WIZARD_STEP_TYPES, Yf as BULK_UPLOAD_DEFAULT_ACCEPT, Xf as BULK_UPLOAD_DEFAULT_MAX_SIZE_MB, rt as Breadcrumb, MQ as BulkUploadPage, ip as BulkUploadPanel, t as CANDIDATES_URL, Ww as CONTRACT_C2C, Uw as CONTRACT_W2, Dm as CURRENCY_SYMBOLS, bu as CalendarCard, zX as CombinedDashboardPage, zX as DASHBOARDPAGE, IY as CombinedDetailViewPage, IY as DETAILVIEWPAGE, SY as CombinedHomePage, SY as HOMEPAGE, BZ as CompactRecordList, oI as CoreThemeAdminApp, aI as CoreThemeAdminRoutes, jZ as CreateActionButton, pe as CustomPagination, HC as DEFAULT_HOURS_POLICY, nC as DEFAULT_RESULTS_VIEW, wZ as DETAILSSECTION, wZ as DetailsSection, _Z as DETAILS_BLOCKS, BX as DETAILS_ICONS, fw as DayLogModal, _p as DescriptionBlock, fv as DetailHeaderCard, yv as DetailViewPage, sg as DetailViewV1, va as DocumentViewer, xf as DynamicCards, DR as DynamicPopup, uV as DynamicPopupRoute, kn as DynamicTabs, Yb as DynamicWizard, Ub as EditFormV1, ES as FIELD_TYPE_REGISTRY, Fw as FINANCE_APPROVAL_CONFIG, Ow as FINANCE_TYPE_CFO, Dw as FINANCE_TYPE_ONBOARDING_MANAGER, jw as FINANCE_TYPE_ONBOARDING_MANAGER_REAPPROVE, kw as FINANCE_TYPE_ONLY_FINANCE, Ew as FINANCE_TYPE_SUBMISSION_MANAGER, Aw as FINANCE_TYPE_SUBMISSION_MANAGER_REAPPROVE, YT as FileListCard, JK as FilterRail, OT as FinanceApprovalPanel, W_ as FinanceAvatar, J_ as FinanceBadge, Sw as FinanceDayCell, I_ as FinanceDivider, G_ as FinanceEmployeeCell, N_ as FinanceEmptyState, L_ as FinanceEquation, V_ as FinanceHistoryTimeline, M_ as FinanceHoursGrid, j_ as FinanceKpiRow, F_ as FinanceLine, VC as FinanceListToolbar, Y_ as FinanceMarginBadge, q_ as FinanceMoneyCell, Q_ as FinanceRecordsTable, X_ as FinanceRowChevron, P_ as FinanceSection, A_ as FinanceStatusPill, K_ as FinanceTextCell, ww as FinanceTimesheetAnalysis, R_ as FinanceWorkflowSteps, UC as HOURS_MESSAGES, wE as Header, Ef as HierarchyUserFilter, CY as HubOverview, T as JOBS_URL, AQ as LegacyAdminPage, cr as ListView, cq as ListWithQuickView, BQ as LmsHomePage, zQ as LmsTestForm, mD as Login, bq as MATCH_NOTHING, LI as MailPopup, FQ as ManageModules, IQ as ManageSubmodules, AZ as MasterDetailWorkspace, ex as ModuleRowActions, aQ as ModuleWorkspace, yw as NotesPanel, Kf as NotesTab, qS as OPEN_AS_OPTIONS, MJ as PAGE_ICONS, u_ as PAYROLL_STATUS_FLOW, XB as POPUP_CONFIGS, GZ as PanelBreadcrumb, UZ as PanelTabs, wx as ParamCardView, Ax as ParamListView, bV as PaymentInvoicePopup, tw as PeriodBadgeTag, mL as PreviewPopup, UD as ProjectSelect, vw as ProofUploadPreview, hw as QuickLogBar, pw as QuickLogSelectionBar, xY as QuickViewCard, cY as QuickViewModuleActions, sq as QuickViewPopover, TK as RAIL_KIND, oJ as REALTIME_STATUS, tC as RESULTS_VIEW_OPTIONS, EQ as RealtimeProvider, WZ as RecordDetailPanel, AY as RecordHub, yq as RecordQuickView, qZ as RecordSidePanel, mw as RejectionReasonModal, Xq as RelatedModuleTab, r as SUBMISSIONS_URL, MC as SearchBuilderV1, lQ as SearchResultsWorkspace, dQ as SearchSummaryBanner, VU as SettingsPage, nD as Sidebar, Ia as StatStrip, PC as StatusBadge, ew as StatusBadgeTag, jQ as StickyNotesFullPage, IC as StylishDynamicTabs, RC as TemplateEditor, NQ as TestForm, RQ as TestingHomePage, Pf as TimelineGroups, lw as TimesheetDayCell, ht as TipTapEditor, kV as UserForm, mV as VendorShareDrawer, br as ViewSummaryWidget, Fy as WIZARD_ACTIONS_CONTRACT_VERSION, Iy as WIZARD_ACTIONS_PATH, uy as WIZARD_CONTENT_TYPES, Sy as WizardAccessMatrixStep, Ry as WizardActionError, Cy as WizardActivityStep, xy as WizardChoiceCardsStep, wy as WizardDeclarationStep, _y as WizardListStep, Zv as WizardPermissionMatrixStep, bL as WizardPopup, Dy as WizardPreview, qv as WizardPreviewStep, Py as WizardStepContent, Ay as WizardSuccessStep, jy as WizardUnknownContentStep, vQ as WorkspaceAppFrame, oq as WorkspaceListView, MZ as WorkspaceTopBar, LQ as ZinnextTableView, PQ as ZinnextTestForm, Rn as actedRecently, Dn as actionRuleConditionMatches, hx as adminActionAllowed, N as appNow, qi as applyIntegrationStatus, Qu as approveSubmission, BY as attentionItems, tp as buildAcceptAttr, dC as buildBooleanRequest, w_ as buildCsv, v_ as buildDailyRows, sw as buildDayGradient, Ka as buildFormWizardSteps, hT as buildRateHistoryEntries, wq as buildRelationConditions, gC as buildSearchRequest, x_ as buildWeeklyRollup, sJ as canonicalModule, er as clearNewRecord, m as clearSelectedProject, Ze as colors, sT as computeFinance, YC as computeHoursPolicy, S_ as computeMarginBand, dr as conditionMatches, n as configureCoreTheme, Vn as configuredFieldLabel, Kb as configuredWizardSteps, $t as confirmAction, BK as countActiveRows, SK as createAllWorkflowsListFetcher, gK as createMergedListFetcher, lK as createModuleListFetchAdapter, pJ as createRealtimeClient, _K as createWorkflowStageListFetcher, Om as currencySymbol, LY as dashboardRange, tK as defaultMergeRow, Zi as deleteIntegrationConfig, __ as deriveDayStats, ZC as describeCapacity, FZ as displayText, O_ as downloadCsv, RK as draftToRows, rr as evaluateShowIfWith, v as fetchJsonWithAuth, DQ as fetchRelatedRecords, OQ as fetchScopedRecords, Kn as fillConfirmText, tT as findEmployerRow, $w as flattenGroups, Pm as formatAmount, Tn as formatApp, We as formatAppDateTime, ep as formatFileSize, gT as formatFinanceMoney, e_ as formatHours, Fm as formatMoney, n_ as formatPercent, Im as formatRate, TQ as formatSearchCount, wQ as formatSearchDuration, In as getActivity, CK as getAllWorkflowsModuleList, Je as getAppTimeZone, o_ as getApprovalDate, Bi as getBgcIntegrationConfig, ti as getBgcIntegrationSummary, d_ as getBillingActionStates, MS as getBooleanEligibleTypes, l as getCurrentRoleName, E_ as getFieldLabel, OS as getFieldType, $f as getFileExtension, Bw as getFinanceApprovalConfig, Pa as getFormGroups, RT as getFormGroupsRaw, ga as getIntegrationConfig, zr as getIntegrationConfigs, _i as getIntegrationSummary, vd as getModuleConfig, pn as getModuleDataDetail, f_ as getPayrollActionStates, bd as getPeriodBadgeConfig, WS as getSearchPopup, g as getSelectedProject, C as getStoredToken, u as getStoredUser, d as getUserRoles, $u as getVMSApprove, D_ as getValueStyle, wK as getWorkflowStageModuleList, p_ as getWorkflowSteps, a_ as humanizeEvent, T_ as indexFieldConfig, r_ as initialsOf, Bh as inputPayload, Yx as insertTokenAtCursor, y as invalidateGetCache, kS as isBooleanEligible, qx as isBooleanParsable, _ as isTester, Ga as isWizardConfigEnabled, Ja as isWizardConfigReady, qJ as listPropsForColumns, f as logout, yC as makeSearchFetcher, de as mapListResponse, Hw as marginIncludesReferral, yn as markNewRecord, oT as matchLocationTax, so as mergeWizardSubmitValues, cJ as moduleTopic, he as moduleViewAllowed, Zy as n, Hn as newRecordMarks, Lt as normalizeConfirm, rT as normalizeContract, Lh as normalizeInputPrompt, VJ as normalizePageLayout, GK as parseRows, RZ as pickCompactFields, gq as quickViewFields, hq as quickViewValueText, ap as r, Am as rateUnitLabel, Mm as rateUnitShort, ZS as readActionButtons, rq as readPageParam, XC as reconcileHours, ir as recordActionRun, zZ as recordIdOf, lJ as recordTopic, DS as registerFieldType, US as registerSearchPopup, Ov as registerWizardPreview, Dv as registerWizardStepType, td as rejectSubmission, Eq as relationSignature, zf as resolveActivityMeta, cT as resolveAndCompute, qC as resolveDayKind, aT as resolveFinanceInputs, $G as resolveMergeKey, $G as resolveMergedListKey, YS as resolveOpenAs, BJ as resolvePageButtons, NJ as resolvePageIcon, IJ as resolvePageValue, oY as resolveQuickViewActions, Vw as resolveRejectionReason, aC as resolveResultsSearchPlaceholder, iC as resolveResultsView, zT as resolveSubmissionFinance, VK as rowsSignature, zK as rowsToDraft, He as ruleAppliesToSurface, Ke as rulePrimaryAction, Fh as runModuleAction, Hy as runWizardAction, Bv as safeWizardActionRoute, Ki as saveBgcIntegrationConfig, Ci as saveIntegrationConfig, Nq as scopeConditionsFor, CQ as searchCriteriaParts, WK as serializeRows, w as setSelectedProject, Wt as showIfConditions, vK as stageCountKey, Mq as supportsAnyOf, hD as t, hi as testIntegrationConnection, _e as toApp, Nm as toNumber, NK as toRailFields, dJ as topicsForEvent, ke as tzLabel, Be as tzShortLabel, GS as unregisterSearchPopup, Tq as unscopedConditions, _x as useAdminAction, gx as useAdminActionsVersion, Jb as useConfiguredWizardSteps, Mr as useDropdownFields, re as useDropdownValues, XT as useEditForm, P as useFieldConfig, bt as useFilterFields, aq as useInPlaceRecordLinks, jJ as useLiveRefresh, De as useMenuPermission, jh as useModuleActions, Re as useModuleViewAccess, Yt as useNewRecordMarks, EJ as useRealtimeClient, AJ as useRealtimeReconnect, DJ as useRealtimeStatus, kJ as useRealtimeTopics, KZ as useRecordFields, OY as useRecordHub, gv as useRecordRefresh, qq as useRelatedCounts, tq as useWorkspaceList, Jx as validateBooleanQuery, np as validateBulkFile, zh as validateInputValue, i as withAdminAppId, h as withAppId, WD as withAuthGuard, iq as withPageParam, Dq as withSubTab };