@dynamicforms/vue-forms 0.1.2 → 0.1.4

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.
@@ -1,53 +1,53 @@
1
1
  var J = Object.defineProperty, K = Object.defineProperties;
2
2
  var Q = Object.getOwnPropertyDescriptors;
3
- var S = Object.getOwnPropertySymbols, X = Object.getPrototypeOf, R = Object.prototype.hasOwnProperty, z = Object.prototype.propertyIsEnumerable, Y = Reflect.get;
4
- var L = (n, i, t) => i in n ? J(n, i, { enumerable: !0, configurable: !0, writable: !0, value: t }) : n[i] = t, _ = (n, i) => {
3
+ var S = Object.getOwnPropertySymbols, X = Object.getPrototypeOf, D = Object.prototype.hasOwnProperty, H = Object.prototype.propertyIsEnumerable, Y = Reflect.get;
4
+ var w = (n, i, t) => i in n ? J(n, i, { enumerable: !0, configurable: !0, writable: !0, value: t }) : n[i] = t, d = (n, i) => {
5
5
  for (var t in i || (i = {}))
6
- R.call(i, t) && L(n, t, i[t]);
6
+ D.call(i, t) && w(n, t, i[t]);
7
7
  if (S)
8
8
  for (var t of S(i))
9
- z.call(i, t) && L(n, t, i[t]);
9
+ H.call(i, t) && w(n, t, i[t]);
10
10
  return n;
11
- }, d = (n, i) => K(n, Q(i));
12
- var v = (n, i) => {
11
+ }, v = (n, i) => K(n, Q(i));
12
+ var x = (n, i) => {
13
13
  var t = {};
14
14
  for (var e in n)
15
- R.call(n, e) && i.indexOf(e) < 0 && (t[e] = n[e]);
15
+ D.call(n, e) && i.indexOf(e) < 0 && (t[e] = n[e]);
16
16
  if (n != null && S)
17
17
  for (var e of S(n))
18
- i.indexOf(e) < 0 && z.call(n, e) && (t[e] = n[e]);
18
+ i.indexOf(e) < 0 && H.call(n, e) && (t[e] = n[e]);
19
19
  return t;
20
20
  };
21
- var u = (n, i, t) => L(n, typeof i != "symbol" ? i + "" : i, t);
21
+ var u = (n, i, t) => w(n, typeof i != "symbol" ? i + "" : i, t);
22
22
  var f = (n, i, t) => Y(X(n), t, i);
23
23
  var r = (n, i, t) => new Promise((e, s) => {
24
24
  var l = (h) => {
25
25
  try {
26
26
  c(t.next(h));
27
- } catch (m) {
28
- s(m);
27
+ } catch (_) {
28
+ s(_);
29
29
  }
30
30
  }, a = (h) => {
31
31
  try {
32
32
  c(t.throw(h));
33
- } catch (m) {
34
- s(m);
33
+ } catch (_) {
34
+ s(_);
35
35
  }
36
36
  }, c = (h) => h.done ? e(h.value) : Promise.resolve(h.value).then(l, a);
37
37
  c((t = t.apply(n, i)).next());
38
38
  });
39
39
  import { computed as Z, reactive as j } from "vue";
40
- import { isBoolean as D, isEqual as B, isEmpty as T } from "lodash-es";
40
+ import { isBoolean as R, isEqual as U, isEmpty as T } from "lodash-es";
41
41
  var V = /* @__PURE__ */ ((n) => (n[n.SUPPRESS = 1] = "SUPPRESS", n[n.HIDDEN = 5] = "HIDDEN", n[n.INVISIBLE = 8] = "INVISIBLE", n[n.FULL = 10] = "FULL", n))(V || {});
42
- const U = 10;
42
+ const z = 10;
43
43
  ((n) => {
44
44
  function i(s) {
45
- return s.toUpperCase() === "SUPPRESS" ? 1 : s.toUpperCase() === "HIDDEN" ? 5 : s.toUpperCase() === "INVISIBLE" ? 8 : U;
45
+ return s.toUpperCase() === "SUPPRESS" ? 1 : s.toUpperCase() === "HIDDEN" ? 5 : s.toUpperCase() === "INVISIBLE" ? 8 : z;
46
46
  }
47
47
  n.fromString = i;
48
48
  function t(s) {
49
49
  const l = typeof s == "number" ? s : n.fromString(s);
50
- return Object.values(n).includes(l) ? l : U;
50
+ return Object.values(n).includes(l) ? l : z;
51
51
  }
52
52
  n.fromAny = t;
53
53
  function e(s) {
@@ -57,7 +57,7 @@ const U = 10;
57
57
  n.isDefined = e;
58
58
  })(V || (V = {}));
59
59
  Object.freeze(V);
60
- const x = V;
60
+ const p = V;
61
61
  class q {
62
62
  get componentName() {
63
63
  return "Comment";
@@ -246,7 +246,7 @@ class C extends o {
246
246
  }
247
247
  }
248
248
  const ut = Symbol("ListItemRemovedAction");
249
- class w extends o {
249
+ class L extends o {
250
250
  // eslint-disable-next-line @typescript-eslint/no-useless-constructor
251
251
  constructor(i) {
252
252
  super(i);
@@ -257,11 +257,11 @@ class w extends o {
257
257
  }
258
258
  execute(i, t, e, s) {
259
259
  return r(this, null, function* () {
260
- return f(w.prototype, this, "execute").call(this, i, t, e, s);
260
+ return f(L.prototype, this, "execute").call(this, i, t, e, s);
261
261
  });
262
262
  }
263
263
  }
264
- class p {
264
+ class y {
265
265
  constructor() {
266
266
  u(this, "reactiveValue", Z(() => this.value));
267
267
  // contains original field value as was provided at creation
@@ -271,7 +271,7 @@ class p {
271
271
  // when member of a Group, fieldName specifies the name of this field
272
272
  u(this, "actions", new $());
273
273
  // default property handlers
274
- u(this, "_visibility", x.FULL);
274
+ u(this, "_visibility", p.FULL);
275
275
  u(this, "_enabled", !0);
276
276
  }
277
277
  get visibility() {
@@ -279,14 +279,14 @@ class p {
279
279
  }
280
280
  set visibility(i) {
281
281
  const t = this._visibility;
282
- if (!x.isDefined(i)) throw new Error("visibility must be a DisplayMode constant");
283
- this._visibility = x.fromAny(i), this.actions.trigger(E, this, this._visibility, t);
282
+ if (!p.isDefined(i)) throw new Error("visibility must be a DisplayMode constant");
283
+ this._visibility = p.fromAny(i), this.actions.trigger(E, this, this._visibility, t);
284
284
  }
285
285
  setVisibility(i) {
286
286
  return r(this, null, function* () {
287
287
  const t = this._visibility, e = yield this.actions.trigger(P, this, i, t);
288
- if (!x.isDefined(e != null ? e : i)) throw new Error("visibility must be a DisplayMode constant");
289
- this._visibility = x.fromAny(e != null ? e : i), this.actions.trigger(E, this, this._visibility, t);
288
+ if (!p.isDefined(e != null ? e : i)) throw new Error("visibility must be a DisplayMode constant");
289
+ this._visibility = p.fromAny(e != null ? e : i), this.actions.trigger(E, this, this._visibility, t);
290
290
  });
291
291
  }
292
292
  get enabled() {
@@ -294,13 +294,13 @@ class p {
294
294
  }
295
295
  set enabled(i) {
296
296
  const t = this._enabled;
297
- if (!D(i)) throw new Error("Enabled value must be boolean");
297
+ if (!R(i)) throw new Error("Enabled value must be boolean");
298
298
  this._enabled = i, this.actions.trigger(I, this, this._enabled, t);
299
299
  }
300
300
  setEnabled(i) {
301
301
  return r(this, null, function* () {
302
302
  const t = this._enabled, e = yield this.actions.trigger(O, this, i, t);
303
- if (!D(e != null ? e : i)) throw new Error("Enabled value must be boolean");
303
+ if (!R(e != null ? e : i)) throw new Error("Enabled value must be boolean");
304
304
  this._enabled = e != null ? e : i, this.actions.trigger(I, this, this._enabled, t);
305
305
  });
306
306
  }
@@ -312,7 +312,7 @@ class p {
312
312
  return this.value;
313
313
  }
314
314
  get isChanged() {
315
- return !B(this.value, this.originalValue);
315
+ return !U(this.value, this.originalValue);
316
316
  }
317
317
  registerAction(i) {
318
318
  return this.actions.register(i), this;
@@ -324,12 +324,12 @@ class p {
324
324
  function k(n, i) {
325
325
  return (n == null ? void 0 : n.label) == null && (n == null ? void 0 : n.icon) == null ? i : n;
326
326
  }
327
- class A extends p {
327
+ class A extends y {
328
328
  constructor(t) {
329
329
  super();
330
330
  u(this, "_value");
331
331
  if (t) {
332
- const e = t, { value: s, originalValue: l } = e, a = v(e, ["value", "originalValue"]);
332
+ const e = t, { value: s, originalValue: l } = e, a = x(e, ["value", "originalValue"]);
333
333
  Object.assign(this, a);
334
334
  const c = { label: s == null ? void 0 : s.label, icon: s == null ? void 0 : s.icon }, h = Object.freeze({ label: l == null ? void 0 : l.label, icon: l == null ? void 0 : l.icon });
335
335
  this._value = j(k(c, h)), this.originalValue = k(h, c);
@@ -361,7 +361,7 @@ class A extends p {
361
361
  }
362
362
  clone(t) {
363
363
  var e, s, l, a;
364
- return new A(d(_({
364
+ return A.create(v(d({
365
365
  value: (e = t == null ? void 0 : t.value) != null ? e : this.value
366
366
  }, t && "originalValue" in t ? { originalValue: t.originalValue } : {}), {
367
367
  errors: [...(s = t == null ? void 0 : t.errors) != null ? s : this.errors],
@@ -373,17 +373,17 @@ class A extends p {
373
373
  this.actions.trigger(F, this, t);
374
374
  }
375
375
  }
376
- class y extends p {
376
+ class m extends y {
377
377
  constructor(t) {
378
378
  super();
379
379
  u(this, "_value");
380
380
  if (t) {
381
- const e = t, { value: s } = e, l = v(e, ["value"]);
381
+ const e = t, { value: s } = e, l = x(e, ["value"]);
382
382
  Object.assign(this, l), this._value = s != null ? s : this.originalValue, this.originalValue === void 0 && (this.originalValue = this._value);
383
383
  }
384
384
  }
385
385
  static create(t) {
386
- return j(new y(t));
386
+ return j(new m(t));
387
387
  }
388
388
  get value() {
389
389
  return this._value;
@@ -395,7 +395,7 @@ class y extends p {
395
395
  }
396
396
  clone(t) {
397
397
  var e, s, l, a;
398
- return y.create(d(_({
398
+ return m.create(v(d({
399
399
  value: (e = t == null ? void 0 : t.value) != null ? e : this.value
400
400
  }, t && "originalValue" in t ? { originalValue: t.originalValue } : {}), {
401
401
  errors: [...(s = t == null ? void 0 : t.errors) != null ? s : this.errors],
@@ -404,12 +404,12 @@ class y extends p {
404
404
  }));
405
405
  }
406
406
  }
407
- const rt = y.create({ value: "EmptyField" }).registerAction(new g(
407
+ const rt = m.create({ value: "EmptyField" }).registerAction(new g(
408
408
  () => r(void 0, null, function* () {
409
409
  console.warn("Working with EmptyField! This should not happen");
410
410
  })
411
411
  ));
412
- class b extends p {
412
+ class b extends y {
413
413
  constructor(t, e) {
414
414
  super();
415
415
  u(this, "_fields");
@@ -425,23 +425,23 @@ class b extends p {
425
425
  }, configurable: !1, enumerable: !0 }
426
426
  );
427
427
  }), e) {
428
- const s = e, { value: l } = s, a = v(s, ["value"]);
428
+ const s = e, { value: l } = s, a = x(s, ["value"]);
429
429
  Object.assign(this, a), this.value = l != null ? l : this.originalValue;
430
430
  }
431
431
  this.originalValue === void 0 && (this.originalValue = this.value);
432
432
  }
433
433
  static isValidFields(t) {
434
434
  function e(s) {
435
- return s instanceof p;
435
+ return s instanceof y;
436
436
  }
437
437
  return typeof t == "object" && t !== null && Object.entries(t).every(([, s]) => e(s));
438
438
  }
439
439
  static createFromFormData(t) {
440
- if (t instanceof p)
440
+ if (t instanceof y)
441
441
  throw new Error("data is already a Form structure, should be a simple object");
442
442
  return new b(
443
443
  t == null ? {} : Object.fromEntries(
444
- Object.entries(t).map(([e, s]) => [e, y.create({ value: s })])
444
+ Object.entries(t).map(([e, s]) => [e, m.create({ value: s })])
445
445
  )
446
446
  );
447
447
  }
@@ -479,7 +479,7 @@ class b extends p {
479
479
  notifyValueChanged() {
480
480
  if (this.suppressNotifyValueChanged) return;
481
481
  const t = this.value;
482
- if (!B(t, this._value)) {
482
+ if (!U(t, this._value)) {
483
483
  const e = this._value;
484
484
  this._value = t, this.actions.trigger(g, this, t, e), this.parent && this.parent.notifyValueChanged();
485
485
  }
@@ -487,9 +487,9 @@ class b extends p {
487
487
  clone(t) {
488
488
  var s, l, a, c;
489
489
  const e = {};
490
- return Object.entries(this._fields).forEach(([h, m]) => {
491
- e[h] = m.clone();
492
- }), new b(e, d(_({
490
+ return Object.entries(this._fields).forEach(([h, _]) => {
491
+ e[h] = _.clone();
492
+ }), new b(e, v(d({
493
493
  value: (s = t == null ? void 0 : t.value) != null ? s : this.value
494
494
  }, t && "originalValue" in t ? { originalValue: t.originalValue } : {}), {
495
495
  errors: [...(l = t == null ? void 0 : t.errors) != null ? l : []],
@@ -498,14 +498,14 @@ class b extends p {
498
498
  }));
499
499
  }
500
500
  }
501
- class H extends p {
501
+ class B extends y {
502
502
  constructor(t, e) {
503
503
  super();
504
504
  u(this, "_value", null);
505
505
  u(this, "_itemTemplate");
506
506
  u(this, "_previousValue");
507
507
  if (this._itemTemplate = t, e) {
508
- const s = e, { value: l } = s, a = v(s, ["value"]);
508
+ const s = e, { value: l } = s, a = x(s, ["value"]);
509
509
  Object.assign(this, a), l && this.setValue(l);
510
510
  }
511
511
  this.originalValue === void 0 && (this.originalValue = this.value), this._previousValue = this.value;
@@ -528,7 +528,7 @@ class H extends p {
528
528
  }
529
529
  clone(t) {
530
530
  var e, s, l, a, c;
531
- return new H((e = this._itemTemplate) == null ? void 0 : e.clone(), d(_({
531
+ return new B((e = this._itemTemplate) == null ? void 0 : e.clone(), v(d({
532
532
  value: [...(s = t == null ? void 0 : t.value) != null ? s : this.value]
533
533
  }, t && "originalValue" in t ? { originalValue: t.originalValue } : {}), {
534
534
  errors: [...(l = t == null ? void 0 : t.errors) != null ? l : []],
@@ -538,7 +538,7 @@ class H extends p {
538
538
  }
539
539
  notifyValueChanged() {
540
540
  const t = this.value;
541
- if (!B(t, this._previousValue)) {
541
+ if (!U(t, this._previousValue)) {
542
542
  const e = this._previousValue;
543
543
  this._previousValue = t, this.actions.trigger(g, this, t, e), this.parent && this.parent.notifyValueChanged();
544
544
  }
@@ -558,7 +558,7 @@ class H extends p {
558
558
  var s;
559
559
  if (this._value == null || t < 0 || this._value.length <= t) return;
560
560
  let e = (s = this._value.splice(t, 1)) == null ? void 0 : s[0];
561
- return e && (e = e.clone(), this.actions.trigger(w, this, e, t), this.notifyValueChanged()), e;
561
+ return e && (e = e.clone(), this.actions.trigger(L, this, e, t), this.notifyValueChanged()), e;
562
562
  }
563
563
  insert(t, e) {
564
564
  for (this._value == null && (this._value = []); this._value.length < e; ) {
@@ -577,45 +577,45 @@ const ft = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
577
577
  AbortEventHandlingException: W,
578
578
  Action: A,
579
579
  ActionsMap: $,
580
+ DisplayMode: p,
580
581
  EmptyField: rt,
581
582
  EnabledChangedAction: I,
582
583
  EnabledChangingAction: O,
583
584
  ExecuteAction: F,
584
- Field: y,
585
+ Field: m,
585
586
  FieldActionBase: o,
586
587
  Group: b,
587
- List: H,
588
+ List: B,
588
589
  ListItemAddedAction: C,
589
- ListItemRemovedAction: w,
590
+ ListItemRemovedAction: L,
590
591
  ValidChangedAction: N,
591
592
  ValidationError: q,
592
593
  ValidationErrorText: G,
593
594
  ValueChangedAction: g,
594
595
  VisibilityChangedAction: E,
595
- VisibilityChangingAction: P,
596
- defaultDisplayMode: U
596
+ VisibilityChangingAction: P
597
597
  }, Symbol.toStringTag, { value: "Module" }));
598
598
  export {
599
599
  W as AbortEventHandlingException,
600
600
  A as Action,
601
601
  $ as ActionsMap,
602
+ p as DisplayMode,
602
603
  rt as EmptyField,
603
604
  I as EnabledChangedAction,
604
605
  O as EnabledChangingAction,
605
606
  F as ExecuteAction,
606
- y as Field,
607
+ m as Field,
607
608
  o as FieldActionBase,
608
609
  b as Group,
609
- H as List,
610
+ B as List,
610
611
  C as ListItemAddedAction,
611
- w as ListItemRemovedAction,
612
+ L as ListItemRemovedAction,
612
613
  N as ValidChangedAction,
613
614
  q as ValidationError,
614
615
  G as ValidationErrorText,
615
616
  g as ValueChangedAction,
616
617
  E as VisibilityChangedAction,
617
618
  P as VisibilityChangingAction,
618
- ft as default,
619
- U as defaultDisplayMode
619
+ ft as default
620
620
  };
621
621
  //# sourceMappingURL=dynamicforms-vue-forms.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"dynamicforms-vue-forms.js","sources":["../src/display-mode.ts","../src/validation-error.ts","../src/actions/field-action-base.ts","../src/field.interface.ts","../src/actions/actions-map.ts","../src/actions/enabled-actions.ts","../src/actions/execute-action.ts","../src/actions/visibility-actions.ts","../src/actions/valid-changed-action.ts","../src/actions/value-changed-action.ts","../src/actions/list-item-added-action.ts","../src/actions/list-item-removed-action.ts","../src/field-base.ts","../src/action.ts","../src/field.ts","../src/group.ts","../src/list.ts"],"sourcesContent":["/**\n * DisplayMode enum provides an enumeration for supported ways of rendering a particular object in the DOM\n */\nenum DisplayMode {\n // This enum is actually declared in dynamicforms.mixins.field_render.py\n SUPPRESS = 1, // Field will be entirely suppressed. it will not render (not even to JSON) and will not parse for PUT\n HIDDEN = 5, // Field will render as <input type=\"hidden\"> or <tr data-field_name>\n INVISIBLE = 8, // Field will render completely, but with display: none. Equal to setting its style = {display: none}\n FULL = 10, // Field will render completely\n}\n\nexport const defaultDisplayMode = DisplayMode.FULL;\n\nnamespace DisplayMode {\n export function fromString(mode: string): DisplayMode {\n if (mode.toUpperCase() === 'SUPPRESS') return DisplayMode.SUPPRESS;\n if (mode.toUpperCase() === 'HIDDEN') return DisplayMode.HIDDEN;\n if (mode.toUpperCase() === 'INVISIBLE') return DisplayMode.INVISIBLE;\n return defaultDisplayMode;\n }\n\n export function fromAny(mode: any): DisplayMode {\n const input = (typeof mode === 'number') ? mode : DisplayMode.fromString(mode as string);\n if (Object.values(DisplayMode).includes(input)) return input;\n return defaultDisplayMode;\n }\n\n export function isDefined(mode: number | string): boolean {\n const check = (typeof mode === 'number') ? mode : DisplayMode.fromString(mode as string);\n return Object.values(DisplayMode).includes(check);\n }\n}\n\nObject.freeze(DisplayMode);\n\nexport default DisplayMode;\n","/* eslint-disable max-classes-per-file */\nexport class ValidationError {\n get componentName() { return 'Comment'; } // eslint-disable-line class-methods-use-this\n\n get componentBindings() { return {}; } // eslint-disable-line class-methods-use-this\n}\n\nexport class ValidationErrorText extends ValidationError {\n text: string;\n\n constructor(text: string) {\n super();\n this.text = text;\n }\n\n get componentName() { return 'v-sheet'; } // eslint-disable-line class-methods-use-this\n\n get componentBindings() { return { class: 'text-body-1' }; } // eslint-disable-line class-methods-use-this\n}\n\n/** ********************************************************************************************************************\n *\n at some point there will be classes here that will support links or action buttons or something even more complex\n *\n ******************************************************************************************************************** */\n","// eslint-disable-next-line max-classes-per-file\nimport {\n FieldActionExecute,\n type IField,\n type IFieldAction,\n} from '@/field.interface';\n\ntype ActionExecutor = (field: IField, supr: FieldActionExecute, ...params: any[]) => Promise<any>;\n\nexport default abstract class FieldActionBase implements IFieldAction {\n public abstract get classIdentifier(): symbol;\n private readonly executorFn: ActionExecutor;\n\n constructor(executorFn: ActionExecutor) {\n this.executorFn = executorFn;\n }\n\n async execute(field: IField, supr: IFieldAction['execute'], ...params: any[]): Promise<any> {\n return this.executorFn(field, supr, ...params);\n }\n}\n","import { ComputedRef } from 'vue';\n\nimport type DisplayMode from './display-mode';\nimport { type ValidationError } from './validation-error';\n\nexport interface IField<T = any> {\n value: T;\n reactiveValue: ComputedRef<T>;\n fullValue: T;\n originalValue: T;\n valid: boolean;\n errors: ValidationError[];\n enabled: boolean;\n visibility: DisplayMode;\n\n parent?: any; // Group when member of a Group, parent will specify that group\n fieldName?: string; // when member of a Group, fieldName specifies the name of this field\n\n clone(overrides?: Partial<IField<T>>): IField<T>;\n // events\n registerAction(action: IFieldAction<T>): this;\n triggerAction<T2 extends IFieldAction<T>>(actionClass: abstract new (...args: any[]) => T2, ...params: any[]): any;\n\n // API\n validate(): void;\n isChanged: boolean;\n}\n\nexport class AbortEventHandlingException extends Error {}\n\nexport type FieldActionExecute<T = any> = (field: IField<T>, ...params: any[]) => Promise<any>;\nexport interface IFieldAction<T = any> {\n execute(field: IField<T>, supr: FieldActionExecute<T>, ...params: any[]): any;\n}\n","import { type FieldActionExecute, type IField, AbortEventHandlingException } from '../field.interface';\n\nimport FieldActionBase from './field-action-base';\n\nexport default class ActionsMap extends Map<symbol, FieldActionExecute> {\n register(action: FieldActionBase) {\n if (!(action instanceof FieldActionBase)) {\n throw new Error('Invalid action type');\n }\n\n const actionType = action.classIdentifier;\n const existingExecute = this.get(actionType) || (() => null);\n\n function ex(field: IField, ...params: any[]) {\n return action.execute(field, existingExecute, ...params);\n }\n this.set(actionType, ex);\n }\n\n trigger<T extends FieldActionBase>(\n ActionClass: new (...args: any[]) => T,\n field: IField,\n ...params: any[]\n ): any {\n const identifier = new ActionClass(() => {}).classIdentifier;\n const execute = this.get(identifier);\n try {\n if (execute) return execute(field, ...params);\n } catch (error) {\n if (!(error instanceof AbortEventHandlingException)) throw error;\n }\n return null;\n }\n}\n","// eslint-disable-next-line max-classes-per-file\nimport FieldActionBase from './field-action-base';\n\nimport { FieldActionExecute, type IField } from '@/field.interface';\n\nconst EnabledChangingActionClassIdentifier = Symbol('EnabledChangingAction');\n\nexport class EnabledChangingAction extends FieldActionBase {\n // eslint-disable-next-line @typescript-eslint/no-useless-constructor\n constructor(\n executorFn: (\n field: IField, supr: FieldActionExecute, newValue: boolean, oldValue: boolean\n ) => Promise<boolean>,\n ) {\n super(executorFn);\n }\n\n // eslint-disable-next-line class-methods-use-this\n get classIdentifier() { return EnabledChangingActionClassIdentifier; }\n\n async execute(field: IField, supr: FieldActionExecute, newValue: boolean, oldValue: boolean)\n : Promise<boolean> {\n return super.execute(field, supr, newValue, oldValue);\n }\n}\n\nconst EnabledChangedActionClassIdentifier = Symbol('EnabledChangedAction');\n\nexport class EnabledChangedAction extends FieldActionBase {\n // eslint-disable-next-line @typescript-eslint/no-useless-constructor\n constructor(\n executorFn: (\n field: IField, supr: FieldActionExecute, newValue: boolean, oldValue: boolean\n ) => Promise<void>,\n ) {\n super(executorFn);\n }\n\n // eslint-disable-next-line class-methods-use-this\n get classIdentifier() { return EnabledChangedActionClassIdentifier; }\n\n async execute(\n field: IField,\n supr: FieldActionExecute,\n newValue: boolean,\n oldValue: boolean,\n ): Promise<void> {\n return super.execute(field, supr, newValue, oldValue);\n }\n}\n","import FieldActionBase from './field-action-base';\n\nimport { FieldActionExecute, type IField } from '@/field.interface';\n\nconst ExecuteActionClassIdentifier = Symbol('ExecuteAction');\n\n// eslint-disable-next-line import/prefer-default-export\nexport class ExecuteAction extends FieldActionBase {\n // eslint-disable-next-line @typescript-eslint/no-useless-constructor\n constructor(\n executorFn: (field: IField, supr: FieldActionExecute, params: any) => Promise<any>,\n ) {\n super(executorFn);\n }\n\n // eslint-disable-next-line class-methods-use-this\n get classIdentifier() { return ExecuteActionClassIdentifier; }\n\n async execute(field: IField, supr: FieldActionExecute, params: any): Promise<any> {\n return super.execute(field, supr, params);\n }\n}\n","// eslint-disable-next-line max-classes-per-file\nimport FieldActionBase from './field-action-base';\n\nimport DisplayMode from '@/display-mode';\nimport { FieldActionExecute, type IField } from '@/field.interface';\n\nconst VisibilityChangingActionClassIdentifier = Symbol('VisibilityChangingAction');\n\nexport class VisibilityChangingAction extends FieldActionBase {\n // eslint-disable-next-line @typescript-eslint/no-useless-constructor\n constructor(\n executorFn: (\n field: IField, supr: FieldActionExecute, newValue: DisplayMode, oldValue: DisplayMode\n ) => Promise<DisplayMode>,\n ) {\n super(executorFn);\n }\n\n // eslint-disable-next-line class-methods-use-this\n get classIdentifier() { return VisibilityChangingActionClassIdentifier; }\n\n async execute(\n field: IField,\n supr: FieldActionExecute,\n newValue: DisplayMode,\n oldValue: DisplayMode,\n ): Promise<DisplayMode> {\n return super.execute(field, supr, newValue, oldValue);\n }\n}\n\nconst VisibilityChangedActionClassIdentifier = Symbol('VisibilityChangedAction');\n\nexport class VisibilityChangedAction extends FieldActionBase {\n // eslint-disable-next-line @typescript-eslint/no-useless-constructor\n constructor(\n executorFn: (\n field: IField, supr: FieldActionExecute, newValue: DisplayMode, oldValue: DisplayMode,\n ) => Promise<void>,\n ) {\n super(executorFn);\n }\n\n // eslint-disable-next-line class-methods-use-this\n get classIdentifier() { return VisibilityChangedActionClassIdentifier; }\n\n async execute(\n field: IField,\n supr: FieldActionExecute,\n newValue: DisplayMode,\n oldValue: DisplayMode,\n ): Promise<void> {\n return super.execute(field, supr, newValue, oldValue);\n }\n}\n","import FieldActionBase from './field-action-base';\n\nimport { FieldActionExecute, type IField } from '@/field.interface';\n\nconst ValidChangedActionClassIdentifier = Symbol('ValidChangedAction');\n\n// eslint-disable-next-line import/prefer-default-export\nexport class ValidChangedAction extends FieldActionBase {\n // eslint-disable-next-line @typescript-eslint/no-useless-constructor\n constructor(\n executorFn: (\n field: IField, supr: FieldActionExecute, newValue: boolean, oldValue: boolean,\n ) => Promise<void>,\n ) {\n super(executorFn);\n }\n\n // eslint-disable-next-line class-methods-use-this\n get classIdentifier() { return ValidChangedActionClassIdentifier; }\n\n async execute(\n field: IField,\n supr: FieldActionExecute,\n newValue: boolean,\n oldValue: boolean,\n ): Promise<void> {\n return super.execute(field, supr, newValue, oldValue);\n }\n}\n","import FieldActionBase from './field-action-base';\n\nimport { FieldActionExecute, type IField } from '@/field.interface';\n\nconst ValueChangedActionClassIdentifier = Symbol('ValueChangedAction');\n\n// eslint-disable-next-line import/prefer-default-export\nexport class ValueChangedAction<T = any> extends FieldActionBase {\n // eslint-disable-next-line @typescript-eslint/no-useless-constructor\n constructor(\n executorFn: (\n field: IField<T>, supr: FieldActionExecute<T>, newValue: T, oldValue: T,\n ) => Promise<void>,\n ) {\n super(executorFn);\n }\n\n // eslint-disable-next-line class-methods-use-this\n get classIdentifier() { return ValueChangedActionClassIdentifier; }\n\n async execute(\n field: IField<T>,\n supr: FieldActionExecute<T>,\n newValue: T,\n oldValue: T,\n ): Promise<void> {\n return super.execute(field, supr, newValue, oldValue);\n }\n}\n","import FieldActionBase from './field-action-base';\n\nimport { FieldActionExecute, type IField } from '@/field.interface';\n\nconst ListItemAddedActionClassIdentifier = Symbol('ListItemAddedAction');\n\n// eslint-disable-next-line import/prefer-default-export\nexport class ListItemAddedAction extends FieldActionBase {\n // eslint-disable-next-line @typescript-eslint/no-useless-constructor\n constructor(\n executorFn: (field: IField, supr: FieldActionExecute, item: any, index: number) => Promise<void>,\n ) {\n super(executorFn);\n }\n\n // eslint-disable-next-line class-methods-use-this\n get classIdentifier() { return ListItemAddedActionClassIdentifier; }\n\n async execute(field: IField, supr: FieldActionExecute, item: any, index: number): Promise<void> {\n return super.execute(field, supr, item, index);\n }\n}\n","import FieldActionBase from './field-action-base';\n\nimport { FieldActionExecute, type IField } from '@/field.interface';\n\nconst ListItemRemovedActionClassIdentifier = Symbol('ListItemRemovedAction');\n\n// eslint-disable-next-line import/prefer-default-export\nexport class ListItemRemovedAction extends FieldActionBase {\n // eslint-disable-next-line @typescript-eslint/no-useless-constructor\n constructor(\n executorFn: (field: IField, supr: FieldActionExecute, item: any, index: number) => Promise<void>,\n ) {\n super(executorFn);\n }\n\n // eslint-disable-next-line class-methods-use-this\n get classIdentifier() { return ListItemRemovedActionClassIdentifier; }\n\n async execute(field: IField, supr: FieldActionExecute, item: any, index: number): Promise<void> {\n return super.execute(field, supr, item, index);\n }\n}\n","import { isBoolean, isEqual } from 'lodash-es';\nimport { computed } from 'vue';\n\nimport {\n ActionsMap,\n EnabledChangedAction,\n EnabledChangingAction,\n ValidChangedAction,\n VisibilityChangedAction,\n VisibilityChangingAction,\n} from './actions';\nimport FieldActionBase from './actions/field-action-base';\nimport DisplayMode from './display-mode';\nimport { IField, IFieldAction } from './field.interface';\nimport { type Group } from './group';\nimport { ValidationError } from './validation-error';\n\n// eslint-disable-next-line import/prefer-default-export\nexport abstract class FieldBase<T = any> implements IField<T> {\n abstract get value(): T;\n abstract set value(newValue: T);\n public readonly reactiveValue = computed(() => this.value);\n\n abstract clone(overrides?: Partial<IField<T>>): IField<T>;\n\n declare originalValue: T; // contains original field value as was provided at creation\n\n valid: boolean = true; // is current value valid as per FE and BE validators?\n\n errors: ValidationError[] = []; // list of errors\n\n declare parent?: Group; // when member of a Group, parent will specify that group\n\n declare fieldName?: string; // when member of a Group, fieldName specifies the name of this field\n\n protected actions: ActionsMap = new ActionsMap();\n\n // default property handlers\n private _visibility: DisplayMode = DisplayMode.FULL;\n\n get visibility(): DisplayMode { return this._visibility; }\n\n set visibility(newValue: DisplayMode) {\n const oldValue = this._visibility;\n if (!DisplayMode.isDefined(newValue)) throw new Error('visibility must be a DisplayMode constant');\n this._visibility = DisplayMode.fromAny(newValue);\n this.actions.trigger(VisibilityChangedAction, this, this._visibility, oldValue);\n }\n\n async setVisibility(newValue: DisplayMode) {\n const oldValue = this._visibility;\n const alteredValue = await this.actions.trigger(VisibilityChangingAction, this, newValue, oldValue);\n if (!DisplayMode.isDefined(alteredValue ?? newValue)) throw new Error('visibility must be a DisplayMode constant');\n this._visibility = DisplayMode.fromAny(alteredValue ?? newValue);\n this.actions.trigger(VisibilityChangedAction, this, this._visibility, oldValue);\n }\n\n private _enabled: boolean = true;\n\n get enabled(): boolean { return this._enabled; }\n\n set enabled(newValue: boolean) {\n const oldValue = this._enabled;\n if (!isBoolean(newValue)) throw new Error('Enabled value must be boolean');\n this._enabled = newValue;\n this.actions.trigger(EnabledChangedAction, this, this._enabled, oldValue);\n }\n\n async setEnabled(newValue: boolean) {\n const oldValue = this._enabled;\n const alteredValue = await this.actions.trigger(EnabledChangingAction, this, newValue, oldValue);\n if (!isBoolean(alteredValue ?? newValue)) throw new Error('Enabled value must be boolean');\n this._enabled = alteredValue ?? newValue;\n this.actions.trigger(EnabledChangedAction, this, this._enabled, oldValue);\n }\n\n validate() {\n const oldValid = this.valid;\n this.valid = this.errors.length === 0;\n if (this.valid !== oldValid) this.actions.trigger(ValidChangedAction, this, this.valid, oldValid);\n }\n\n get fullValue(): any {\n return this.value;\n }\n\n get isChanged() : boolean {\n return !isEqual(this.value, this.originalValue);\n }\n\n registerAction(action: IFieldAction<T>): this {\n this.actions.register(action as FieldActionBase);\n return this;\n }\n\n triggerAction<T2 extends IFieldAction<T>>(\n actionClass: new (...args: any[]) => T2,\n ...params: any[]\n ): any {\n return this.actions.trigger(actionClass as any, this, ...params);\n }\n}\n","import { reactive, Reactive } from 'vue';\n\nimport { ExecuteAction, ValueChangedAction } from './actions';\nimport { FieldBase } from './field-base';\nimport { IField } from './field.interface';\n\nexport interface ActionValue {\n label?: string;\n icon?: string;\n}\n\nfunction isValEmpty(val: ActionValue, defaultIfTrue: ActionValue): ActionValue {\n if (val?.label == null && val?.icon == null) return defaultIfTrue;\n return val;\n}\n\nexport class Action extends FieldBase {\n private readonly _value: ActionValue;\n\n protected constructor(params?: Partial<IField<ActionValue>>) {\n super();\n if (params) {\n const { value: paramValue, originalValue, ...otherParams } = params;\n Object.assign(this, otherParams);\n const val = { label: paramValue?.label, icon: paramValue?.icon } as ActionValue;\n const orgVal = Object.freeze({ label: originalValue?.label, icon: originalValue?.icon } as ActionValue);\n this._value = reactive(isValEmpty(val, orgVal));\n this.originalValue = isValEmpty(orgVal, val);\n } else {\n this._value = reactive({ label: undefined, icon: undefined });\n }\n }\n\n static create(params?: Partial<IField<ActionValue>>): Reactive<Action> {\n return reactive(new Action(params));\n }\n\n get value(): ActionValue { return this._value; }\n\n set value(newValue: ActionValue) {\n if (!this.enabled) return; // a disabled field does not allow changing value\n const oldValue = this._value;\n this._value.icon = newValue?.icon;\n this._value.label = newValue?.label;\n this.actions.trigger(ValueChangedAction, this, newValue, oldValue);\n if (this.parent) this.parent.notifyValueChanged();\n this.validate();\n }\n\n get icon(): string | undefined {\n return this.value.icon;\n }\n\n set icon(newValue: string | undefined) {\n this.value = { label: this.label, icon: newValue };\n }\n\n get label(): string | undefined {\n return this.value.label;\n }\n\n set label(newValue: string | undefined) {\n this.value = { label: newValue, icon: this.value.icon };\n }\n\n clone(overrides?: Partial<IField>): Reactive<Action> {\n return new Action({\n value: overrides?.value ?? this.value,\n ...(overrides && 'originalValue' in overrides ? { originalValue: overrides.originalValue } : { }),\n errors: [...(overrides?.errors ?? this.errors)],\n enabled: overrides?.enabled ?? this.enabled,\n visibility: overrides?.visibility ?? this.visibility,\n });\n }\n\n execute(params: any) {\n this.actions.trigger(ExecuteAction, this, params);\n }\n}\n\nexport type NullableAction = Action | null;\n","import { reactive, Reactive } from 'vue';\n\nimport { ValueChangedAction } from './actions';\nimport { FieldBase } from './field-base';\nimport { IField } from './field.interface';\n\n// eslint-disable-next-line import/prefer-default-export\nexport class Field<T = any> extends FieldBase {\n private _value: T = undefined!;\n\n protected constructor(params?: Partial<IField<T>>) {\n super();\n if (params) {\n const { value: paramValue, ...otherParams } = params;\n Object.assign(this, otherParams);\n this._value = paramValue ?? this.originalValue;\n if (this.originalValue === undefined) this.originalValue = this._value;\n }\n }\n\n static create<T = any>(params?: Partial<IField<T>>): Reactive<Field<T>> {\n return reactive(new Field(params));\n }\n\n get value() { return this._value; }\n\n set value(newValue: T) {\n if (!this.enabled) return; // a disabled field does not allow changing value\n const oldValue = this._value;\n this._value = newValue;\n this.actions.trigger(ValueChangedAction, this, newValue, oldValue);\n if (this.parent) this.parent.notifyValueChanged();\n this.validate();\n }\n\n clone(overrides?: Partial<IField<T>>): Reactive<Field<T>> {\n return Field.create<T>({\n value: overrides?.value ?? this.value,\n ...(overrides && 'originalValue' in overrides ? { originalValue: overrides.originalValue } : { }),\n errors: [...(overrides?.errors ?? this.errors)],\n enabled: overrides?.enabled ?? this.enabled,\n visibility: overrides?.visibility ?? this.visibility,\n });\n }\n}\n\nexport type NullableField<T = any> = Field<T> | null;\n\nexport const EmptyField = Field.create({ value: 'EmptyField' })\n .registerAction(new ValueChangedAction(\n async () => {\n console.warn('Working with EmptyField! This should not happen');\n },\n ));\n","import { isEmpty, isEqual } from 'lodash-es';\n\nimport { ValueChangedAction } from './actions';\nimport { Field } from './field';\nimport { FieldBase } from './field-base';\nimport { IField } from './field.interface';\n\nexport type GenericFieldsInterface = Record<string, IField>;\n\nexport class Group<T extends GenericFieldsInterface = GenericFieldsInterface> extends FieldBase {\n private readonly _fields: T;\n\n private _value: Record<string, any> | null = null;\n\n private suppressNotifyValueChanged: boolean = false;\n\n constructor(fields: T, params?: Partial<IField>) {\n super();\n\n if (!Group.isValidFields(fields)) throw new Error('Invalid fields object provided');\n this._fields = {} as T;\n Object.entries(fields).forEach(([name, field]) => {\n Object.defineProperty(field, 'parent', { get: () => this, configurable: false, enumerable: false });\n Object.defineProperty(field, 'fieldName', { get: () => name, configurable: false, enumerable: false });\n Object.defineProperty(\n this._fields,\n name,\n { get() { return field; }, configurable: false, enumerable: true },\n );\n });\n\n if (params) {\n const { value: paramValue, ...otherParams } = params;\n Object.assign(this, otherParams);\n this.value = paramValue ?? this.originalValue;\n }\n\n if (this.originalValue === undefined) this.originalValue = this.value;\n\n // if (Object.keys(this._fields).length) console.log('group created', this, Error().stack);\n }\n\n private static isValidFields(flds: unknown): flds is Record<string, FieldBase> {\n function isFieldAll(field: unknown): field is FieldBase {\n return field instanceof FieldBase;\n }\n\n return typeof flds === 'object' &&\n flds !== null &&\n Object.entries(flds).every(([, field]) => isFieldAll(field));\n }\n\n static createFromFormData(data: Record<string, any> | null): Group {\n if (data instanceof FieldBase) {\n throw new Error('data is already a Form structure, should be a simple object');\n }\n return new Group(\n data == null ?\n { } :\n Object.fromEntries(\n Object.entries(data).map(([key, value]) => [key, Field.create({ value })]),\n ),\n );\n }\n\n field(fieldName: string): IField | null {\n return this._fields[fieldName] ?? null;\n }\n\n get fields(): T {\n return this._fields;\n }\n\n get value(): Record<string, any> | null {\n const value: Record<string, any> = {};\n Object.entries(this._fields).forEach(([name, field]) => {\n const fieldValue = field.value;\n if (field.enabled) {\n // readOnly fields do not serialize\n value[name] = fieldValue;\n } else if (field instanceof Group && !isEmpty(fieldValue)) {\n // readOnly group only serializes if it is non-empty (some of its fields are not readOnly)\n value[name] = fieldValue;\n }\n });\n return isEmpty(value) ? null : value;\n }\n\n set value(newValue: Record<string, any> | null) {\n this.suppressNotifyValueChanged = true;\n try {\n Object.entries(this._fields).forEach(([name, field]) => {\n if (newValue == null || name in newValue) {\n field.value = newValue == null ? null : newValue[name];\n }\n });\n } finally {\n this.suppressNotifyValueChanged = false;\n }\n this.notifyValueChanged();\n }\n\n get fullValue(): Record<string, any> {\n const value: Record<string, any> = {};\n Object.entries(this._fields).forEach(([name, field]) => { value[name] = field.fullValue; });\n return value;\n }\n\n notifyValueChanged() {\n if (this.suppressNotifyValueChanged) return;\n const newValue = this.value;\n if (!isEqual(newValue, this._value)) {\n const oldValue = this._value;\n this._value = newValue;\n this.actions.trigger(ValueChangedAction, this, newValue, oldValue);\n if (this.parent) this.parent.notifyValueChanged();\n }\n }\n\n clone(overrides?: Partial<IField>): Group<T> {\n const newFields = {} as T;\n Object.entries(this._fields).forEach(([name, field]) => {\n newFields[name as keyof T] = field.clone() as any;\n });\n\n return new Group(newFields, {\n value: overrides?.value ?? this.value,\n ...(overrides && 'originalValue' in overrides ? { originalValue: overrides.originalValue } : { }),\n errors: [...(overrides?.errors ?? [])],\n enabled: overrides?.enabled ?? this.enabled,\n visibility: overrides?.visibility ?? this.visibility,\n });\n }\n}\n\nexport type NullableGroup = Group | null;\n","import { isEmpty, isEqual } from 'lodash-es';\n\nimport { ListItemAddedAction, ListItemRemovedAction, ValueChangedAction } from './actions';\nimport { FieldBase } from './field-base';\nimport { IField } from './field.interface';\nimport { GenericFieldsInterface, Group } from './group';\n\nexport class List<T extends GenericFieldsInterface = GenericFieldsInterface> extends FieldBase {\n private _value: Group<T>[] | null = null;\n\n private _itemTemplate?: Group<T>;\n\n private _previousValue: Record<string, any>[] | null;\n\n constructor(itemTemplate?: Group<T>, params?: Partial<IField>) {\n super();\n\n this._itemTemplate = itemTemplate;\n\n if (params) {\n const { value: paramValue, ...otherParams } = params;\n Object.assign(this, otherParams);\n\n if (paramValue) this.setValue(paramValue);\n }\n\n if (this.originalValue === undefined) this.originalValue = this.value;\n this._previousValue = this.value;\n // if (Object.keys(this._fields).length) console.log('formGroup created', this, Error().stack);\n }\n\n private processSetValueItem(item: any) : Group<T> {\n let res: Group<T>;\n // If item is already a Group, use it\n if (item instanceof Group) res = item;\n // Otherwise create a Group from item\n else if (this._itemTemplate) res = this._itemTemplate.clone({ value: item });\n else res = Group.createFromFormData(item) as Group<T>;\n\n Object.defineProperty(res, 'parent', { get: () => this, configurable: false, enumerable: false });\n\n return res;\n }\n\n private setValue(newValue: any[]) {\n if (Array.isArray(newValue)) {\n this._value = newValue.map((item: any) => this.processSetValueItem(item));\n }\n }\n\n get value(): Record<string, any>[] | null {\n const value = this._value?.map((item) => item.value);\n return isEmpty(value) ? null : <Record<string, any>[]> value;\n }\n\n set value(newValue: Record<string, any>[]) {\n const oldValue = this.value;\n this.setValue(newValue);\n this.actions.trigger(ValueChangedAction, this, this.value, oldValue);\n if (this.parent) this.parent.notifyValueChanged();\n }\n\n clone(overrides?: Partial<IField>): List<T> {\n return new List(this._itemTemplate?.clone(), {\n value: [...(overrides?.value ?? this.value)],\n ...(overrides && 'originalValue' in overrides ? { originalValue: overrides.originalValue } : { }),\n errors: [...(overrides?.errors ?? [])],\n enabled: overrides?.enabled ?? this.enabled,\n visibility: overrides?.visibility ?? this.visibility,\n });\n }\n\n notifyValueChanged() {\n const newValue = this.value;\n if (!isEqual(newValue, this._previousValue)) {\n const oldValue = this._previousValue;\n this._previousValue = newValue;\n this.actions.trigger(ValueChangedAction, this, newValue, oldValue);\n if (this.parent) this.parent.notifyValueChanged();\n }\n }\n\n get(index: number): Group<T> | undefined {\n return this._value != null ? this._value[index] : undefined;\n }\n\n push(item: any): number {\n return this.insert(item, this._value?.length ?? 0) + 1;\n }\n\n pop(): Group<T> | undefined {\n return this.remove((this._value?.length ?? 0) - 1);\n }\n\n remove(index: number): Group<T> | undefined {\n if (this._value == null || index < 0 || this._value.length <= index) return undefined;\n\n let removedItem = this._value.splice(index, 1)?.[0];\n\n if (removedItem) {\n // Remove parent reference\n removedItem = removedItem.clone();\n\n // Trigger events\n this.actions.trigger(ListItemRemovedAction, this, removedItem, index);\n this.notifyValueChanged();\n }\n\n return removedItem;\n }\n\n insert(item: any, index: number): number {\n if (this._value == null) this._value = [];\n while (this._value.length < index) {\n // if the index is too large for current array size, we add as many as necessary\n const itm = this.processSetValueItem(null);\n const idx = this._value.push(itm);\n this.actions.trigger(ListItemAddedAction, this, itm, idx);\n }\n const itm = this.processSetValueItem(item);\n this._value.splice(index, 0, itm);\n\n this.actions.trigger(ListItemAddedAction, this, itm, index);\n this.notifyValueChanged();\n\n return index;\n }\n\n clear() {\n this._value = null;\n this.notifyValueChanged();\n }\n}\n\nexport type NullableList = List | null;\n"],"names":["DisplayMode","defaultDisplayMode","fromString","mode","fromAny","input","isDefined","check","DisplayMode$1","ValidationError","ValidationErrorText","text","__publicField","FieldActionBase","executorFn","field","supr","params","__async","AbortEventHandlingException","ActionsMap","action","actionType","existingExecute","ex","ActionClass","identifier","execute","error","EnabledChangingActionClassIdentifier","EnabledChangingAction","newValue","oldValue","__superGet","EnabledChangedActionClassIdentifier","EnabledChangedAction","ExecuteActionClassIdentifier","ExecuteAction","VisibilityChangingActionClassIdentifier","VisibilityChangingAction","VisibilityChangedActionClassIdentifier","VisibilityChangedAction","ValidChangedActionClassIdentifier","ValidChangedAction","ValueChangedActionClassIdentifier","ValueChangedAction","ListItemAddedActionClassIdentifier","ListItemAddedAction","item","index","ListItemRemovedActionClassIdentifier","ListItemRemovedAction","FieldBase","computed","alteredValue","isBoolean","oldValid","isEqual","actionClass","isValEmpty","val","defaultIfTrue","Action","_a","paramValue","originalValue","otherParams","__objRest","orgVal","reactive","overrides","__spreadProps","__spreadValues","_b","_c","_d","Field","EmptyField","Group","fields","name","flds","isFieldAll","data","key","value","fieldName","fieldValue","isEmpty","newFields","List","itemTemplate","res","_e","removedItem","itm","idx"],"mappings":"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"}
1
+ {"version":3,"file":"dynamicforms-vue-forms.js","sources":["../src/display-mode.ts","../src/validation-error.ts","../src/actions/field-action-base.ts","../src/field.interface.ts","../src/actions/actions-map.ts","../src/actions/enabled-actions.ts","../src/actions/execute-action.ts","../src/actions/visibility-actions.ts","../src/actions/valid-changed-action.ts","../src/actions/value-changed-action.ts","../src/actions/list-item-added-action.ts","../src/actions/list-item-removed-action.ts","../src/field-base.ts","../src/action.ts","../src/field.ts","../src/group.ts","../src/list.ts"],"sourcesContent":["/**\n * DisplayMode enum provides an enumeration for supported ways of rendering a particular object in the DOM\n */\nenum DisplayMode {\n // This enum is actually declared in dynamicforms.mixins.field_render.py\n SUPPRESS = 1, // Field will be entirely suppressed. it will not render (not even to JSON) and will not parse for PUT\n HIDDEN = 5, // Field will render as <input type=\"hidden\"> or <tr data-field_name>\n INVISIBLE = 8, // Field will render completely, but with display: none. Equal to setting its style = {display: none}\n FULL = 10, // Field will render completely\n}\n\nexport const defaultDisplayMode = DisplayMode.FULL;\n\nnamespace DisplayMode {\n export function fromString(mode: string): DisplayMode {\n if (mode.toUpperCase() === 'SUPPRESS') return DisplayMode.SUPPRESS;\n if (mode.toUpperCase() === 'HIDDEN') return DisplayMode.HIDDEN;\n if (mode.toUpperCase() === 'INVISIBLE') return DisplayMode.INVISIBLE;\n return defaultDisplayMode;\n }\n\n export function fromAny(mode: any): DisplayMode {\n const input = (typeof mode === 'number') ? mode : DisplayMode.fromString(mode as string);\n if (Object.values(DisplayMode).includes(input)) return input;\n return defaultDisplayMode;\n }\n\n export function isDefined(mode: number | string): boolean {\n const check = (typeof mode === 'number') ? mode : DisplayMode.fromString(mode as string);\n return Object.values(DisplayMode).includes(check);\n }\n}\n\nObject.freeze(DisplayMode);\n\nexport default DisplayMode;\n","/* eslint-disable max-classes-per-file */\nexport class ValidationError {\n get componentName() { return 'Comment'; } // eslint-disable-line class-methods-use-this\n\n get componentBindings() { return {}; } // eslint-disable-line class-methods-use-this\n}\n\nexport class ValidationErrorText extends ValidationError {\n text: string;\n\n constructor(text: string) {\n super();\n this.text = text;\n }\n\n get componentName() { return 'v-sheet'; } // eslint-disable-line class-methods-use-this\n\n get componentBindings() { return { class: 'text-body-1' }; } // eslint-disable-line class-methods-use-this\n}\n\n/** ********************************************************************************************************************\n *\n at some point there will be classes here that will support links or action buttons or something even more complex\n *\n ******************************************************************************************************************** */\n","// eslint-disable-next-line max-classes-per-file\nimport {\n FieldActionExecute,\n type IField,\n type IFieldAction,\n} from '@/field.interface';\n\ntype ActionExecutor = (field: IField, supr: FieldActionExecute, ...params: any[]) => Promise<any>;\n\nexport default abstract class FieldActionBase implements IFieldAction {\n public abstract get classIdentifier(): symbol;\n private readonly executorFn: ActionExecutor;\n\n constructor(executorFn: ActionExecutor) {\n this.executorFn = executorFn;\n }\n\n async execute(field: IField, supr: IFieldAction['execute'], ...params: any[]): Promise<any> {\n return this.executorFn(field, supr, ...params);\n }\n}\n","import { ComputedRef } from 'vue';\n\nimport type DisplayMode from './display-mode';\nimport { type ValidationError } from './validation-error';\n\nexport interface IField<T = any> {\n value: T;\n reactiveValue: ComputedRef<T>;\n fullValue: T;\n originalValue: T;\n valid: boolean;\n errors: ValidationError[];\n enabled: boolean;\n visibility: DisplayMode;\n\n parent?: any; // Group when member of a Group, parent will specify that group\n fieldName?: string; // when member of a Group, fieldName specifies the name of this field\n\n clone(overrides?: Partial<IField<T>>): IField<T>;\n // events\n registerAction(action: IFieldAction<T>): this;\n triggerAction<T2 extends IFieldAction<T>>(actionClass: abstract new (...args: any[]) => T2, ...params: any[]): any;\n\n // API\n validate(): void;\n isChanged: boolean;\n}\n\nexport class AbortEventHandlingException extends Error {}\n\nexport type FieldActionExecute<T = any> = (field: IField<T>, ...params: any[]) => Promise<any>;\nexport interface IFieldAction<T = any> {\n execute(field: IField<T>, supr: FieldActionExecute<T>, ...params: any[]): any;\n}\n","import { type FieldActionExecute, type IField, AbortEventHandlingException } from '../field.interface';\n\nimport FieldActionBase from './field-action-base';\n\nexport default class ActionsMap extends Map<symbol, FieldActionExecute> {\n register(action: FieldActionBase) {\n if (!(action instanceof FieldActionBase)) {\n throw new Error('Invalid action type');\n }\n\n const actionType = action.classIdentifier;\n const existingExecute = this.get(actionType) || (() => null);\n\n function ex(field: IField, ...params: any[]) {\n return action.execute(field, existingExecute, ...params);\n }\n this.set(actionType, ex);\n }\n\n trigger<T extends FieldActionBase>(\n ActionClass: new (...args: any[]) => T,\n field: IField,\n ...params: any[]\n ): any {\n const identifier = new ActionClass(() => {}).classIdentifier;\n const execute = this.get(identifier);\n try {\n if (execute) return execute(field, ...params);\n } catch (error) {\n if (!(error instanceof AbortEventHandlingException)) throw error;\n }\n return null;\n }\n}\n","// eslint-disable-next-line max-classes-per-file\nimport FieldActionBase from './field-action-base';\n\nimport { FieldActionExecute, type IField } from '@/field.interface';\n\nconst EnabledChangingActionClassIdentifier = Symbol('EnabledChangingAction');\n\nexport class EnabledChangingAction extends FieldActionBase {\n // eslint-disable-next-line @typescript-eslint/no-useless-constructor\n constructor(\n executorFn: (\n field: IField, supr: FieldActionExecute, newValue: boolean, oldValue: boolean\n ) => Promise<boolean>,\n ) {\n super(executorFn);\n }\n\n // eslint-disable-next-line class-methods-use-this\n get classIdentifier() { return EnabledChangingActionClassIdentifier; }\n\n async execute(field: IField, supr: FieldActionExecute, newValue: boolean, oldValue: boolean)\n : Promise<boolean> {\n return super.execute(field, supr, newValue, oldValue);\n }\n}\n\nconst EnabledChangedActionClassIdentifier = Symbol('EnabledChangedAction');\n\nexport class EnabledChangedAction extends FieldActionBase {\n // eslint-disable-next-line @typescript-eslint/no-useless-constructor\n constructor(\n executorFn: (\n field: IField, supr: FieldActionExecute, newValue: boolean, oldValue: boolean\n ) => Promise<void>,\n ) {\n super(executorFn);\n }\n\n // eslint-disable-next-line class-methods-use-this\n get classIdentifier() { return EnabledChangedActionClassIdentifier; }\n\n async execute(\n field: IField,\n supr: FieldActionExecute,\n newValue: boolean,\n oldValue: boolean,\n ): Promise<void> {\n return super.execute(field, supr, newValue, oldValue);\n }\n}\n","import FieldActionBase from './field-action-base';\n\nimport { FieldActionExecute, type IField } from '@/field.interface';\n\nconst ExecuteActionClassIdentifier = Symbol('ExecuteAction');\n\n// eslint-disable-next-line import/prefer-default-export\nexport class ExecuteAction extends FieldActionBase {\n // eslint-disable-next-line @typescript-eslint/no-useless-constructor\n constructor(\n executorFn: (field: IField, supr: FieldActionExecute, params: any) => Promise<any>,\n ) {\n super(executorFn);\n }\n\n // eslint-disable-next-line class-methods-use-this\n get classIdentifier() { return ExecuteActionClassIdentifier; }\n\n async execute(field: IField, supr: FieldActionExecute, params: any): Promise<any> {\n return super.execute(field, supr, params);\n }\n}\n","// eslint-disable-next-line max-classes-per-file\nimport FieldActionBase from './field-action-base';\n\nimport DisplayMode from '@/display-mode';\nimport { FieldActionExecute, type IField } from '@/field.interface';\n\nconst VisibilityChangingActionClassIdentifier = Symbol('VisibilityChangingAction');\n\nexport class VisibilityChangingAction extends FieldActionBase {\n // eslint-disable-next-line @typescript-eslint/no-useless-constructor\n constructor(\n executorFn: (\n field: IField, supr: FieldActionExecute, newValue: DisplayMode, oldValue: DisplayMode\n ) => Promise<DisplayMode>,\n ) {\n super(executorFn);\n }\n\n // eslint-disable-next-line class-methods-use-this\n get classIdentifier() { return VisibilityChangingActionClassIdentifier; }\n\n async execute(\n field: IField,\n supr: FieldActionExecute,\n newValue: DisplayMode,\n oldValue: DisplayMode,\n ): Promise<DisplayMode> {\n return super.execute(field, supr, newValue, oldValue);\n }\n}\n\nconst VisibilityChangedActionClassIdentifier = Symbol('VisibilityChangedAction');\n\nexport class VisibilityChangedAction extends FieldActionBase {\n // eslint-disable-next-line @typescript-eslint/no-useless-constructor\n constructor(\n executorFn: (\n field: IField, supr: FieldActionExecute, newValue: DisplayMode, oldValue: DisplayMode,\n ) => Promise<void>,\n ) {\n super(executorFn);\n }\n\n // eslint-disable-next-line class-methods-use-this\n get classIdentifier() { return VisibilityChangedActionClassIdentifier; }\n\n async execute(\n field: IField,\n supr: FieldActionExecute,\n newValue: DisplayMode,\n oldValue: DisplayMode,\n ): Promise<void> {\n return super.execute(field, supr, newValue, oldValue);\n }\n}\n","import FieldActionBase from './field-action-base';\n\nimport { FieldActionExecute, type IField } from '@/field.interface';\n\nconst ValidChangedActionClassIdentifier = Symbol('ValidChangedAction');\n\n// eslint-disable-next-line import/prefer-default-export\nexport class ValidChangedAction extends FieldActionBase {\n // eslint-disable-next-line @typescript-eslint/no-useless-constructor\n constructor(\n executorFn: (\n field: IField, supr: FieldActionExecute, newValue: boolean, oldValue: boolean,\n ) => Promise<void>,\n ) {\n super(executorFn);\n }\n\n // eslint-disable-next-line class-methods-use-this\n get classIdentifier() { return ValidChangedActionClassIdentifier; }\n\n async execute(\n field: IField,\n supr: FieldActionExecute,\n newValue: boolean,\n oldValue: boolean,\n ): Promise<void> {\n return super.execute(field, supr, newValue, oldValue);\n }\n}\n","import FieldActionBase from './field-action-base';\n\nimport { FieldActionExecute, type IField } from '@/field.interface';\n\nconst ValueChangedActionClassIdentifier = Symbol('ValueChangedAction');\n\n// eslint-disable-next-line import/prefer-default-export\nexport class ValueChangedAction<T = any> extends FieldActionBase {\n // eslint-disable-next-line @typescript-eslint/no-useless-constructor\n constructor(\n executorFn: (\n field: IField<T>, supr: FieldActionExecute<T>, newValue: T, oldValue: T,\n ) => Promise<void>,\n ) {\n super(executorFn);\n }\n\n // eslint-disable-next-line class-methods-use-this\n get classIdentifier() { return ValueChangedActionClassIdentifier; }\n\n async execute(\n field: IField<T>,\n supr: FieldActionExecute<T>,\n newValue: T,\n oldValue: T,\n ): Promise<void> {\n return super.execute(field, supr, newValue, oldValue);\n }\n}\n","import FieldActionBase from './field-action-base';\n\nimport { FieldActionExecute, type IField } from '@/field.interface';\n\nconst ListItemAddedActionClassIdentifier = Symbol('ListItemAddedAction');\n\n// eslint-disable-next-line import/prefer-default-export\nexport class ListItemAddedAction extends FieldActionBase {\n // eslint-disable-next-line @typescript-eslint/no-useless-constructor\n constructor(\n executorFn: (field: IField, supr: FieldActionExecute, item: any, index: number) => Promise<void>,\n ) {\n super(executorFn);\n }\n\n // eslint-disable-next-line class-methods-use-this\n get classIdentifier() { return ListItemAddedActionClassIdentifier; }\n\n async execute(field: IField, supr: FieldActionExecute, item: any, index: number): Promise<void> {\n return super.execute(field, supr, item, index);\n }\n}\n","import FieldActionBase from './field-action-base';\n\nimport { FieldActionExecute, type IField } from '@/field.interface';\n\nconst ListItemRemovedActionClassIdentifier = Symbol('ListItemRemovedAction');\n\n// eslint-disable-next-line import/prefer-default-export\nexport class ListItemRemovedAction extends FieldActionBase {\n // eslint-disable-next-line @typescript-eslint/no-useless-constructor\n constructor(\n executorFn: (field: IField, supr: FieldActionExecute, item: any, index: number) => Promise<void>,\n ) {\n super(executorFn);\n }\n\n // eslint-disable-next-line class-methods-use-this\n get classIdentifier() { return ListItemRemovedActionClassIdentifier; }\n\n async execute(field: IField, supr: FieldActionExecute, item: any, index: number): Promise<void> {\n return super.execute(field, supr, item, index);\n }\n}\n","import { isBoolean, isEqual } from 'lodash-es';\nimport { computed } from 'vue';\n\nimport {\n ActionsMap,\n EnabledChangedAction,\n EnabledChangingAction,\n ValidChangedAction,\n VisibilityChangedAction,\n VisibilityChangingAction,\n} from './actions';\nimport FieldActionBase from './actions/field-action-base';\nimport DisplayMode from './display-mode';\nimport { IField, IFieldAction } from './field.interface';\nimport { type Group } from './group';\nimport { ValidationError } from './validation-error';\n\n// eslint-disable-next-line import/prefer-default-export\nexport abstract class FieldBase<T = any> implements IField<T> {\n abstract get value(): T;\n abstract set value(newValue: T);\n public readonly reactiveValue = computed(() => this.value);\n\n abstract clone(overrides?: Partial<IField<T>>): IField<T>;\n\n declare originalValue: T; // contains original field value as was provided at creation\n\n valid: boolean = true; // is current value valid as per FE and BE validators?\n\n errors: ValidationError[] = []; // list of errors\n\n declare parent?: Group; // when member of a Group, parent will specify that group\n\n declare fieldName?: string; // when member of a Group, fieldName specifies the name of this field\n\n protected actions: ActionsMap = new ActionsMap();\n\n // default property handlers\n private _visibility: DisplayMode = DisplayMode.FULL;\n\n get visibility(): DisplayMode { return this._visibility; }\n\n set visibility(newValue: DisplayMode) {\n const oldValue = this._visibility;\n if (!DisplayMode.isDefined(newValue)) throw new Error('visibility must be a DisplayMode constant');\n this._visibility = DisplayMode.fromAny(newValue);\n this.actions.trigger(VisibilityChangedAction, this, this._visibility, oldValue);\n }\n\n async setVisibility(newValue: DisplayMode) {\n const oldValue = this._visibility;\n const alteredValue = await this.actions.trigger(VisibilityChangingAction, this, newValue, oldValue);\n if (!DisplayMode.isDefined(alteredValue ?? newValue)) throw new Error('visibility must be a DisplayMode constant');\n this._visibility = DisplayMode.fromAny(alteredValue ?? newValue);\n this.actions.trigger(VisibilityChangedAction, this, this._visibility, oldValue);\n }\n\n private _enabled: boolean = true;\n\n get enabled(): boolean { return this._enabled; }\n\n set enabled(newValue: boolean) {\n const oldValue = this._enabled;\n if (!isBoolean(newValue)) throw new Error('Enabled value must be boolean');\n this._enabled = newValue;\n this.actions.trigger(EnabledChangedAction, this, this._enabled, oldValue);\n }\n\n async setEnabled(newValue: boolean) {\n const oldValue = this._enabled;\n const alteredValue = await this.actions.trigger(EnabledChangingAction, this, newValue, oldValue);\n if (!isBoolean(alteredValue ?? newValue)) throw new Error('Enabled value must be boolean');\n this._enabled = alteredValue ?? newValue;\n this.actions.trigger(EnabledChangedAction, this, this._enabled, oldValue);\n }\n\n validate() {\n const oldValid = this.valid;\n this.valid = this.errors.length === 0;\n if (this.valid !== oldValid) this.actions.trigger(ValidChangedAction, this, this.valid, oldValid);\n }\n\n get fullValue(): any {\n return this.value;\n }\n\n get isChanged() : boolean {\n return !isEqual(this.value, this.originalValue);\n }\n\n registerAction(action: IFieldAction<T>): this {\n this.actions.register(action as FieldActionBase);\n return this;\n }\n\n triggerAction<T2 extends IFieldAction<T>>(\n actionClass: new (...args: any[]) => T2,\n ...params: any[]\n ): any {\n return this.actions.trigger(actionClass as any, this, ...params);\n }\n}\n","import { reactive } from 'vue';\n\nimport { ExecuteAction, ValueChangedAction } from './actions';\nimport { FieldBase } from './field-base';\nimport { IField } from './field.interface';\n\nexport interface ActionValue {\n label?: string;\n icon?: string;\n}\n\nfunction isValEmpty(val: ActionValue, defaultIfTrue: ActionValue): ActionValue {\n if (val?.label == null && val?.icon == null) return defaultIfTrue;\n return val;\n}\n\nexport class Action extends FieldBase {\n private readonly _value: ActionValue;\n\n protected constructor(params?: Partial<IField<ActionValue>>) {\n super();\n if (params) {\n const { value: paramValue, originalValue, ...otherParams } = params;\n Object.assign(this, otherParams);\n const val = { label: paramValue?.label, icon: paramValue?.icon } as ActionValue;\n const orgVal = Object.freeze({ label: originalValue?.label, icon: originalValue?.icon } as ActionValue);\n this._value = reactive(isValEmpty(val, orgVal));\n this.originalValue = isValEmpty(orgVal, val);\n } else {\n this._value = reactive({ label: undefined, icon: undefined });\n }\n }\n\n static create(params?: Partial<IField<ActionValue>>): Action {\n return reactive(new Action(params)) as Action;\n }\n\n get value(): ActionValue { return this._value; }\n\n set value(newValue: ActionValue) {\n if (!this.enabled) return; // a disabled field does not allow changing value\n const oldValue = this._value;\n this._value.icon = newValue?.icon;\n this._value.label = newValue?.label;\n this.actions.trigger(ValueChangedAction, this, newValue, oldValue);\n if (this.parent) this.parent.notifyValueChanged();\n this.validate();\n }\n\n get icon(): string | undefined {\n return this.value.icon;\n }\n\n set icon(newValue: string | undefined) {\n this.value = { label: this.label, icon: newValue };\n }\n\n get label(): string | undefined {\n return this.value.label;\n }\n\n set label(newValue: string | undefined) {\n this.value = { label: newValue, icon: this.value.icon };\n }\n\n clone(overrides?: Partial<IField>): Action {\n return Action.create({\n value: overrides?.value ?? this.value,\n ...(overrides && 'originalValue' in overrides ? { originalValue: overrides.originalValue } : { }),\n errors: [...(overrides?.errors ?? this.errors)],\n enabled: overrides?.enabled ?? this.enabled,\n visibility: overrides?.visibility ?? this.visibility,\n });\n }\n\n execute(params: any) {\n this.actions.trigger(ExecuteAction, this, params);\n }\n}\n\nexport type NullableAction = Action | null;\n","import { reactive } from 'vue';\n\nimport { ValueChangedAction } from './actions';\nimport { FieldBase } from './field-base';\nimport { IField } from './field.interface';\n\nexport class Field<T = any> extends FieldBase {\n private _value: T = undefined!;\n\n protected constructor(params?: Partial<IField<T>>) {\n super();\n if (params) {\n const { value: paramValue, ...otherParams } = params;\n Object.assign(this, otherParams);\n this._value = paramValue ?? this.originalValue;\n if (this.originalValue === undefined) this.originalValue = this._value;\n }\n }\n\n static create<T = any>(params?: Partial<IField<T>>): Field<T> {\n return reactive(new Field(params)) as Field<T>;\n }\n\n get value() { return this._value; }\n\n set value(newValue: T) {\n if (!this.enabled) return; // a disabled field does not allow changing value\n const oldValue = this._value;\n this._value = newValue;\n this.actions.trigger(ValueChangedAction, this, newValue, oldValue);\n if (this.parent) this.parent.notifyValueChanged();\n this.validate();\n }\n\n clone(overrides?: Partial<IField<T>>): Field<T> {\n return Field.create<T>({\n value: overrides?.value ?? this.value,\n ...(overrides && 'originalValue' in overrides ? { originalValue: overrides.originalValue } : { }),\n errors: [...(overrides?.errors ?? this.errors)],\n enabled: overrides?.enabled ?? this.enabled,\n visibility: overrides?.visibility ?? this.visibility,\n });\n }\n}\n\nexport type NullableField<T = any> = Field<T> | null;\n\nexport const EmptyField = Field.create({ value: 'EmptyField' })\n .registerAction(new ValueChangedAction(\n async () => {\n console.warn('Working with EmptyField! This should not happen');\n },\n ));\n","import { isEmpty, isEqual } from 'lodash-es';\n\nimport { ValueChangedAction } from './actions';\nimport { Field } from './field';\nimport { FieldBase } from './field-base';\nimport { IField } from './field.interface';\n\nexport type GenericFieldsInterface = Record<string, IField>;\n\nexport class Group<T extends GenericFieldsInterface = GenericFieldsInterface> extends FieldBase {\n private readonly _fields: T;\n\n private _value: Record<string, any> | null = null;\n\n private suppressNotifyValueChanged: boolean = false;\n\n constructor(fields: T, params?: Partial<IField>) {\n super();\n\n if (!Group.isValidFields(fields)) throw new Error('Invalid fields object provided');\n this._fields = {} as T;\n Object.entries(fields).forEach(([name, field]) => {\n Object.defineProperty(field, 'parent', { get: () => this, configurable: false, enumerable: false });\n Object.defineProperty(field, 'fieldName', { get: () => name, configurable: false, enumerable: false });\n Object.defineProperty(\n this._fields,\n name,\n { get() { return field; }, configurable: false, enumerable: true },\n );\n });\n\n if (params) {\n const { value: paramValue, ...otherParams } = params;\n Object.assign(this, otherParams);\n this.value = paramValue ?? this.originalValue;\n }\n\n if (this.originalValue === undefined) this.originalValue = this.value;\n\n // if (Object.keys(this._fields).length) console.log('group created', this, Error().stack);\n }\n\n private static isValidFields(flds: unknown): flds is Record<string, FieldBase> {\n function isFieldAll(field: unknown): field is FieldBase {\n return field instanceof FieldBase;\n }\n\n return typeof flds === 'object' &&\n flds !== null &&\n Object.entries(flds).every(([, field]) => isFieldAll(field));\n }\n\n static createFromFormData(data: Record<string, any> | null): Group {\n if (data instanceof FieldBase) {\n throw new Error('data is already a Form structure, should be a simple object');\n }\n return new Group(\n data == null ?\n { } :\n Object.fromEntries(\n Object.entries(data).map(([key, value]) => [key, Field.create({ value })]),\n ),\n );\n }\n\n field(fieldName: string): IField | null {\n return this._fields[fieldName] ?? null;\n }\n\n get fields(): T {\n return this._fields;\n }\n\n get value(): Record<string, any> | null {\n const value: Record<string, any> = {};\n Object.entries(this._fields).forEach(([name, field]) => {\n const fieldValue = field.value;\n if (field.enabled) {\n // readOnly fields do not serialize\n value[name] = fieldValue;\n } else if (field instanceof Group && !isEmpty(fieldValue)) {\n // readOnly group only serializes if it is non-empty (some of its fields are not readOnly)\n value[name] = fieldValue;\n }\n });\n return isEmpty(value) ? null : value;\n }\n\n set value(newValue: Record<string, any> | null) {\n this.suppressNotifyValueChanged = true;\n try {\n Object.entries(this._fields).forEach(([name, field]) => {\n if (newValue == null || name in newValue) {\n field.value = newValue == null ? null : newValue[name];\n }\n });\n } finally {\n this.suppressNotifyValueChanged = false;\n }\n this.notifyValueChanged();\n }\n\n get fullValue(): Record<string, any> {\n const value: Record<string, any> = {};\n Object.entries(this._fields).forEach(([name, field]) => { value[name] = field.fullValue; });\n return value;\n }\n\n notifyValueChanged() {\n if (this.suppressNotifyValueChanged) return;\n const newValue = this.value;\n if (!isEqual(newValue, this._value)) {\n const oldValue = this._value;\n this._value = newValue;\n this.actions.trigger(ValueChangedAction, this, newValue, oldValue);\n if (this.parent) this.parent.notifyValueChanged();\n }\n }\n\n clone(overrides?: Partial<IField>): Group<T> {\n const newFields = {} as T;\n Object.entries(this._fields).forEach(([name, field]) => {\n newFields[name as keyof T] = field.clone() as any;\n });\n\n return new Group(newFields, {\n value: overrides?.value ?? this.value,\n ...(overrides && 'originalValue' in overrides ? { originalValue: overrides.originalValue } : { }),\n errors: [...(overrides?.errors ?? [])],\n enabled: overrides?.enabled ?? this.enabled,\n visibility: overrides?.visibility ?? this.visibility,\n });\n }\n}\n\nexport type NullableGroup = Group | null;\n","import { isEmpty, isEqual } from 'lodash-es';\n\nimport { ListItemAddedAction, ListItemRemovedAction, ValueChangedAction } from './actions';\nimport { FieldBase } from './field-base';\nimport { IField } from './field.interface';\nimport { GenericFieldsInterface, Group } from './group';\n\nexport class List<T extends GenericFieldsInterface = GenericFieldsInterface> extends FieldBase {\n private _value: Group<T>[] | null = null;\n\n private _itemTemplate?: Group<T>;\n\n private _previousValue: Record<string, any>[] | null;\n\n constructor(itemTemplate?: Group<T>, params?: Partial<IField>) {\n super();\n\n this._itemTemplate = itemTemplate;\n\n if (params) {\n const { value: paramValue, ...otherParams } = params;\n Object.assign(this, otherParams);\n\n if (paramValue) this.setValue(paramValue);\n }\n\n if (this.originalValue === undefined) this.originalValue = this.value;\n this._previousValue = this.value;\n // if (Object.keys(this._fields).length) console.log('formGroup created', this, Error().stack);\n }\n\n private processSetValueItem(item: any) : Group<T> {\n let res: Group<T>;\n // If item is already a Group, use it\n if (item instanceof Group) res = item;\n // Otherwise create a Group from item\n else if (this._itemTemplate) res = this._itemTemplate.clone({ value: item });\n else res = Group.createFromFormData(item) as Group<T>;\n\n Object.defineProperty(res, 'parent', { get: () => this, configurable: false, enumerable: false });\n\n return res;\n }\n\n private setValue(newValue: any[]) {\n if (Array.isArray(newValue)) {\n this._value = newValue.map((item: any) => this.processSetValueItem(item));\n }\n }\n\n get value(): Record<string, any>[] | null {\n const value = this._value?.map((item) => item.value);\n return isEmpty(value) ? null : <Record<string, any>[]> value;\n }\n\n set value(newValue: Record<string, any>[]) {\n const oldValue = this.value;\n this.setValue(newValue);\n this.actions.trigger(ValueChangedAction, this, this.value, oldValue);\n if (this.parent) this.parent.notifyValueChanged();\n }\n\n clone(overrides?: Partial<IField>): List<T> {\n return new List(this._itemTemplate?.clone(), {\n value: [...(overrides?.value ?? this.value)],\n ...(overrides && 'originalValue' in overrides ? { originalValue: overrides.originalValue } : { }),\n errors: [...(overrides?.errors ?? [])],\n enabled: overrides?.enabled ?? this.enabled,\n visibility: overrides?.visibility ?? this.visibility,\n });\n }\n\n notifyValueChanged() {\n const newValue = this.value;\n if (!isEqual(newValue, this._previousValue)) {\n const oldValue = this._previousValue;\n this._previousValue = newValue;\n this.actions.trigger(ValueChangedAction, this, newValue, oldValue);\n if (this.parent) this.parent.notifyValueChanged();\n }\n }\n\n get(index: number): Group<T> | undefined {\n return this._value != null ? this._value[index] : undefined;\n }\n\n push(item: any): number {\n return this.insert(item, this._value?.length ?? 0) + 1;\n }\n\n pop(): Group<T> | undefined {\n return this.remove((this._value?.length ?? 0) - 1);\n }\n\n remove(index: number): Group<T> | undefined {\n if (this._value == null || index < 0 || this._value.length <= index) return undefined;\n\n let removedItem = this._value.splice(index, 1)?.[0];\n\n if (removedItem) {\n // Remove parent reference\n removedItem = removedItem.clone();\n\n // Trigger events\n this.actions.trigger(ListItemRemovedAction, this, removedItem, index);\n this.notifyValueChanged();\n }\n\n return removedItem;\n }\n\n insert(item: any, index: number): number {\n if (this._value == null) this._value = [];\n while (this._value.length < index) {\n // if the index is too large for current array size, we add as many as necessary\n const itm = this.processSetValueItem(null);\n const idx = this._value.push(itm);\n this.actions.trigger(ListItemAddedAction, this, itm, idx);\n }\n const itm = this.processSetValueItem(item);\n this._value.splice(index, 0, itm);\n\n this.actions.trigger(ListItemAddedAction, this, itm, index);\n this.notifyValueChanged();\n\n return index;\n }\n\n clear() {\n this._value = null;\n this.notifyValueChanged();\n }\n}\n\nexport type NullableList = List | null;\n"],"names":["DisplayMode","defaultDisplayMode","fromString","mode","fromAny","input","isDefined","check","DisplayMode$1","ValidationError","ValidationErrorText","text","__publicField","FieldActionBase","executorFn","field","supr","params","__async","AbortEventHandlingException","ActionsMap","action","actionType","existingExecute","ex","ActionClass","identifier","execute","error","EnabledChangingActionClassIdentifier","EnabledChangingAction","newValue","oldValue","__superGet","EnabledChangedActionClassIdentifier","EnabledChangedAction","ExecuteActionClassIdentifier","ExecuteAction","VisibilityChangingActionClassIdentifier","VisibilityChangingAction","VisibilityChangedActionClassIdentifier","VisibilityChangedAction","ValidChangedActionClassIdentifier","ValidChangedAction","ValueChangedActionClassIdentifier","ValueChangedAction","ListItemAddedActionClassIdentifier","ListItemAddedAction","item","index","ListItemRemovedActionClassIdentifier","ListItemRemovedAction","FieldBase","computed","alteredValue","isBoolean","oldValid","isEqual","actionClass","isValEmpty","val","defaultIfTrue","Action","_a","paramValue","originalValue","otherParams","__objRest","orgVal","reactive","overrides","__spreadProps","__spreadValues","_b","_c","_d","Field","EmptyField","Group","fields","name","flds","isFieldAll","data","key","value","fieldName","fieldValue","isEmpty","newFields","List","itemTemplate","res","_e","removedItem","itm","idx"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- (function(s,a){typeof exports=="object"&&typeof module!="undefined"?a(exports,require("vue"),require("lodash-es")):typeof define=="function"&&define.amd?define(["exports","vue","lodash-es"],a):(s=typeof globalThis!="undefined"?globalThis:s||self,a((s["dynamicforms-vue-forms"]=s["dynamicforms-vue-forms"]||{},s["dynamicforms-vue-forms"]["[name]"]={}),s.vue,s["lodash-es"]))})(this,function(s,a,u){"use strict";var nt=Object.defineProperty,st=Object.defineProperties;var lt=Object.getOwnPropertyDescriptors;var H=Object.getOwnPropertySymbols,at=Object.getPrototypeOf,W=Object.prototype.hasOwnProperty,$=Object.prototype.propertyIsEnumerable,ut=Reflect.get;var D=(s,a,u)=>a in s?nt(s,a,{enumerable:!0,configurable:!0,writable:!0,value:u}):s[a]=u,T=(s,a)=>{for(var u in a||(a={}))W.call(a,u)&&D(s,u,a[u]);if(H)for(var u of H(a))$.call(a,u)&&D(s,u,a[u]);return s},w=(s,a)=>st(s,lt(a));var B=(s,a)=>{var u={};for(var o in s)W.call(s,o)&&a.indexOf(o)<0&&(u[o]=s[o]);if(s!=null&&H)for(var o of H(s))a.indexOf(o)<0&&$.call(s,o)&&(u[o]=s[o]);return u};var f=(s,a,u)=>D(s,typeof a!="symbol"?a+"":a,u);var y=(s,a,u)=>ut(at(s),u,a);var g=(s,a,u)=>new Promise((o,p)=>{var v=h=>{try{E(u.next(h))}catch(_){p(_)}},x=h=>{try{E(u.throw(h))}catch(_){p(_)}},E=h=>h.done?o(h.value):Promise.resolve(h.value).then(v,x);E((u=u.apply(s,a)).next())});var o=(c=>(c[c.SUPPRESS=1]="SUPPRESS",c[c.HIDDEN=5]="HIDDEN",c[c.INVISIBLE=8]="INVISIBLE",c[c.FULL=10]="FULL",c))(o||{});const p=10;(c=>{function n(i){return i.toUpperCase()==="SUPPRESS"?1:i.toUpperCase()==="HIDDEN"?5:i.toUpperCase()==="INVISIBLE"?8:p}c.fromString=n;function t(i){const l=typeof i=="number"?i:c.fromString(i);return Object.values(c).includes(l)?l:p}c.fromAny=t;function e(i){const l=typeof i=="number"?i:c.fromString(i);return Object.values(c).includes(l)}c.isDefined=e})(o||(o={})),Object.freeze(o);const v=o;class x{get componentName(){return"Comment"}get componentBindings(){return{}}}class E extends x{constructor(t){super();f(this,"text");this.text=t}get componentName(){return"v-sheet"}get componentBindings(){return{class:"text-body-1"}}}class h{constructor(n){f(this,"executorFn");this.executorFn=n}execute(n,t,...e){return g(this,null,function*(){return this.executorFn(n,t,...e)})}}class _ extends Error{}class R extends Map{register(n){if(!(n instanceof h))throw new Error("Invalid action type");const t=n.classIdentifier,e=this.get(t)||(()=>null);function i(l,...r){return n.execute(l,e,...r)}this.set(t,i)}trigger(n,t,...e){const i=new n(()=>{}).classIdentifier,l=this.get(i);try{if(l)return l(t,...e)}catch(r){if(!(r instanceof _))throw r}return null}}const J=Symbol("EnabledChangingAction");class j extends h{constructor(n){super(n)}get classIdentifier(){return J}execute(n,t,e,i){return g(this,null,function*(){return y(j.prototype,this,"execute").call(this,n,t,e,i)})}}const K=Symbol("EnabledChangedAction");class I extends h{constructor(n){super(n)}get classIdentifier(){return K}execute(n,t,e,i){return g(this,null,function*(){return y(I.prototype,this,"execute").call(this,n,t,e,i)})}}const Q=Symbol("ExecuteAction");class F extends h{constructor(n){super(n)}get classIdentifier(){return Q}execute(n,t,e){return g(this,null,function*(){return y(F.prototype,this,"execute").call(this,n,t,e)})}}const X=Symbol("VisibilityChangingAction");class O extends h{constructor(n){super(n)}get classIdentifier(){return X}execute(n,t,e,i){return g(this,null,function*(){return y(O.prototype,this,"execute").call(this,n,t,e,i)})}}const Y=Symbol("VisibilityChangedAction");class C extends h{constructor(n){super(n)}get classIdentifier(){return Y}execute(n,t,e,i){return g(this,null,function*(){return y(C.prototype,this,"execute").call(this,n,t,e,i)})}}const Z=Symbol("ValidChangedAction");class P extends h{constructor(n){super(n)}get classIdentifier(){return Z}execute(n,t,e,i){return g(this,null,function*(){return y(P.prototype,this,"execute").call(this,n,t,e,i)})}}const G=Symbol("ValueChangedAction");class b extends h{constructor(n){super(n)}get classIdentifier(){return G}execute(n,t,e,i){return g(this,null,function*(){return y(b.prototype,this,"execute").call(this,n,t,e,i)})}}const M=Symbol("ListItemAddedAction");class A extends h{constructor(n){super(n)}get classIdentifier(){return M}execute(n,t,e,i){return g(this,null,function*(){return y(A.prototype,this,"execute").call(this,n,t,e,i)})}}const tt=Symbol("ListItemRemovedAction");class L extends h{constructor(n){super(n)}get classIdentifier(){return tt}execute(n,t,e,i){return g(this,null,function*(){return y(L.prototype,this,"execute").call(this,n,t,e,i)})}}class S{constructor(){f(this,"reactiveValue",a.computed(()=>this.value));f(this,"valid",!0);f(this,"errors",[]);f(this,"actions",new R);f(this,"_visibility",v.FULL);f(this,"_enabled",!0)}get visibility(){return this._visibility}set visibility(n){const t=this._visibility;if(!v.isDefined(n))throw new Error("visibility must be a DisplayMode constant");this._visibility=v.fromAny(n),this.actions.trigger(C,this,this._visibility,t)}setVisibility(n){return g(this,null,function*(){const t=this._visibility,e=yield this.actions.trigger(O,this,n,t);if(!v.isDefined(e!=null?e:n))throw new Error("visibility must be a DisplayMode constant");this._visibility=v.fromAny(e!=null?e:n),this.actions.trigger(C,this,this._visibility,t)})}get enabled(){return this._enabled}set enabled(n){const t=this._enabled;if(!u.isBoolean(n))throw new Error("Enabled value must be boolean");this._enabled=n,this.actions.trigger(I,this,this._enabled,t)}setEnabled(n){return g(this,null,function*(){const t=this._enabled,e=yield this.actions.trigger(j,this,n,t);if(!u.isBoolean(e!=null?e:n))throw new Error("Enabled value must be boolean");this._enabled=e!=null?e:n,this.actions.trigger(I,this,this._enabled,t)})}validate(){const n=this.valid;this.valid=this.errors.length===0,this.valid!==n&&this.actions.trigger(P,this,this.valid,n)}get fullValue(){return this.value}get isChanged(){return!u.isEqual(this.value,this.originalValue)}registerAction(n){return this.actions.register(n),this}triggerAction(n,...t){return this.actions.trigger(n,this,...t)}}function z(c,n){return(c==null?void 0:c.label)==null&&(c==null?void 0:c.icon)==null?n:c}class N extends S{constructor(t){super();f(this,"_value");if(t){const e=t,{value:i,originalValue:l}=e,r=B(e,["value","originalValue"]);Object.assign(this,r);const m={label:i==null?void 0:i.label,icon:i==null?void 0:i.icon},q=Object.freeze({label:l==null?void 0:l.label,icon:l==null?void 0:l.icon});this._value=a.reactive(z(m,q)),this.originalValue=z(q,m)}else this._value=a.reactive({label:void 0,icon:void 0})}static create(t){return a.reactive(new N(t))}get value(){return this._value}set value(t){if(!this.enabled)return;const e=this._value;this._value.icon=t==null?void 0:t.icon,this._value.label=t==null?void 0:t.label,this.actions.trigger(b,this,t,e),this.parent&&this.parent.notifyValueChanged(),this.validate()}get icon(){return this.value.icon}set icon(t){this.value={label:this.label,icon:t}}get label(){return this.value.label}set label(t){this.value={label:t,icon:this.value.icon}}clone(t){var e,i,l,r;return new N(w(T({value:(e=t==null?void 0:t.value)!=null?e:this.value},t&&"originalValue"in t?{originalValue:t.originalValue}:{}),{errors:[...(i=t==null?void 0:t.errors)!=null?i:this.errors],enabled:(l=t==null?void 0:t.enabled)!=null?l:this.enabled,visibility:(r=t==null?void 0:t.visibility)!=null?r:this.visibility}))}execute(t){this.actions.trigger(F,this,t)}}class V extends S{constructor(t){super();f(this,"_value");if(t){const e=t,{value:i}=e,l=B(e,["value"]);Object.assign(this,l),this._value=i!=null?i:this.originalValue,this.originalValue===void 0&&(this.originalValue=this._value)}}static create(t){return a.reactive(new V(t))}get value(){return this._value}set value(t){if(!this.enabled)return;const e=this._value;this._value=t,this.actions.trigger(b,this,t,e),this.parent&&this.parent.notifyValueChanged(),this.validate()}clone(t){var e,i,l,r;return V.create(w(T({value:(e=t==null?void 0:t.value)!=null?e:this.value},t&&"originalValue"in t?{originalValue:t.originalValue}:{}),{errors:[...(i=t==null?void 0:t.errors)!=null?i:this.errors],enabled:(l=t==null?void 0:t.enabled)!=null?l:this.enabled,visibility:(r=t==null?void 0:t.visibility)!=null?r:this.visibility}))}}const k=V.create({value:"EmptyField"}).registerAction(new b(()=>g(this,null,function*(){console.warn("Working with EmptyField! This should not happen")})));class d extends S{constructor(t,e){super();f(this,"_fields");f(this,"_value",null);f(this,"suppressNotifyValueChanged",!1);if(!d.isValidFields(t))throw new Error("Invalid fields object provided");if(this._fields={},Object.entries(t).forEach(([l,r])=>{Object.defineProperty(r,"parent",{get:()=>this,configurable:!1,enumerable:!1}),Object.defineProperty(r,"fieldName",{get:()=>l,configurable:!1,enumerable:!1}),Object.defineProperty(this._fields,l,{get(){return r},configurable:!1,enumerable:!0})}),e){const i=e,{value:l}=i,r=B(i,["value"]);Object.assign(this,r),this.value=l!=null?l:this.originalValue}this.originalValue===void 0&&(this.originalValue=this.value)}static isValidFields(t){function e(i){return i instanceof S}return typeof t=="object"&&t!==null&&Object.entries(t).every(([,i])=>e(i))}static createFromFormData(t){if(t instanceof S)throw new Error("data is already a Form structure, should be a simple object");return new d(t==null?{}:Object.fromEntries(Object.entries(t).map(([e,i])=>[e,V.create({value:i})])))}field(t){var e;return(e=this._fields[t])!=null?e:null}get fields(){return this._fields}get value(){const t={};return Object.entries(this._fields).forEach(([e,i])=>{const l=i.value;(i.enabled||i instanceof d&&!u.isEmpty(l))&&(t[e]=l)}),u.isEmpty(t)?null:t}set value(t){this.suppressNotifyValueChanged=!0;try{Object.entries(this._fields).forEach(([e,i])=>{(t==null||e in t)&&(i.value=t==null?null:t[e])})}finally{this.suppressNotifyValueChanged=!1}this.notifyValueChanged()}get fullValue(){const t={};return Object.entries(this._fields).forEach(([e,i])=>{t[e]=i.fullValue}),t}notifyValueChanged(){if(this.suppressNotifyValueChanged)return;const t=this.value;if(!u.isEqual(t,this._value)){const e=this._value;this._value=t,this.actions.trigger(b,this,t,e),this.parent&&this.parent.notifyValueChanged()}}clone(t){var i,l,r,m;const e={};return Object.entries(this._fields).forEach(([q,it])=>{e[q]=it.clone()}),new d(e,w(T({value:(i=t==null?void 0:t.value)!=null?i:this.value},t&&"originalValue"in t?{originalValue:t.originalValue}:{}),{errors:[...(l=t==null?void 0:t.errors)!=null?l:[]],enabled:(r=t==null?void 0:t.enabled)!=null?r:this.enabled,visibility:(m=t==null?void 0:t.visibility)!=null?m:this.visibility}))}}class U extends S{constructor(t,e){super();f(this,"_value",null);f(this,"_itemTemplate");f(this,"_previousValue");if(this._itemTemplate=t,e){const i=e,{value:l}=i,r=B(i,["value"]);Object.assign(this,r),l&&this.setValue(l)}this.originalValue===void 0&&(this.originalValue=this.value),this._previousValue=this.value}processSetValueItem(t){let e;return t instanceof d?e=t:this._itemTemplate?e=this._itemTemplate.clone({value:t}):e=d.createFromFormData(t),Object.defineProperty(e,"parent",{get:()=>this,configurable:!1,enumerable:!1}),e}setValue(t){Array.isArray(t)&&(this._value=t.map(e=>this.processSetValueItem(e)))}get value(){var e;const t=(e=this._value)==null?void 0:e.map(i=>i.value);return u.isEmpty(t)?null:t}set value(t){const e=this.value;this.setValue(t),this.actions.trigger(b,this,this.value,e),this.parent&&this.parent.notifyValueChanged()}clone(t){var e,i,l,r,m;return new U((e=this._itemTemplate)==null?void 0:e.clone(),w(T({value:[...(i=t==null?void 0:t.value)!=null?i:this.value]},t&&"originalValue"in t?{originalValue:t.originalValue}:{}),{errors:[...(l=t==null?void 0:t.errors)!=null?l:[]],enabled:(r=t==null?void 0:t.enabled)!=null?r:this.enabled,visibility:(m=t==null?void 0:t.visibility)!=null?m:this.visibility}))}notifyValueChanged(){const t=this.value;if(!u.isEqual(t,this._previousValue)){const e=this._previousValue;this._previousValue=t,this.actions.trigger(b,this,t,e),this.parent&&this.parent.notifyValueChanged()}}get(t){return this._value!=null?this._value[t]:void 0}push(t){var e,i;return this.insert(t,(i=(e=this._value)==null?void 0:e.length)!=null?i:0)+1}pop(){var t,e;return this.remove(((e=(t=this._value)==null?void 0:t.length)!=null?e:0)-1)}remove(t){var i;if(this._value==null||t<0||this._value.length<=t)return;let e=(i=this._value.splice(t,1))==null?void 0:i[0];return e&&(e=e.clone(),this.actions.trigger(L,this,e,t),this.notifyValueChanged()),e}insert(t,e){for(this._value==null&&(this._value=[]);this._value.length<e;){const l=this.processSetValueItem(null),r=this._value.push(l);this.actions.trigger(A,this,l,r)}const i=this.processSetValueItem(t);return this._value.splice(e,0,i),this.actions.trigger(A,this,i,e),this.notifyValueChanged(),e}clear(){this._value=null,this.notifyValueChanged()}}const et=Object.freeze(Object.defineProperty({__proto__:null,AbortEventHandlingException:_,Action:N,ActionsMap:R,EmptyField:k,EnabledChangedAction:I,EnabledChangingAction:j,ExecuteAction:F,Field:V,FieldActionBase:h,Group:d,List:U,ListItemAddedAction:A,ListItemRemovedAction:L,ValidChangedAction:P,ValidationError:x,ValidationErrorText:E,ValueChangedAction:b,VisibilityChangedAction:C,VisibilityChangingAction:O,defaultDisplayMode:p},Symbol.toStringTag,{value:"Module"}));s.AbortEventHandlingException=_,s.Action=N,s.ActionsMap=R,s.EmptyField=k,s.EnabledChangedAction=I,s.EnabledChangingAction=j,s.ExecuteAction=F,s.Field=V,s.FieldActionBase=h,s.Group=d,s.List=U,s.ListItemAddedAction=A,s.ListItemRemovedAction=L,s.ValidChangedAction=P,s.ValidationError=x,s.ValidationErrorText=E,s.ValueChangedAction=b,s.VisibilityChangedAction=C,s.VisibilityChangingAction=O,s.default=et,s.defaultDisplayMode=p,Object.defineProperties(s,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});
1
+ (function(s,a){typeof exports=="object"&&typeof module!="undefined"?a(exports,require("vue"),require("lodash-es")):typeof define=="function"&&define.amd?define(["exports","vue","lodash-es"],a):(s=typeof globalThis!="undefined"?globalThis:s||self,a((s["dynamicforms-vue-forms"]=s["dynamicforms-vue-forms"]||{},s["dynamicforms-vue-forms"]["[name]"]={}),s.vue,s["lodash-es"]))})(this,function(s,a,u){"use strict";var nt=Object.defineProperty,st=Object.defineProperties;var lt=Object.getOwnPropertyDescriptors;var D=Object.getOwnPropertySymbols,at=Object.getPrototypeOf,W=Object.prototype.hasOwnProperty,$=Object.prototype.propertyIsEnumerable,ut=Reflect.get;var R=(s,a,u)=>a in s?nt(s,a,{enumerable:!0,configurable:!0,writable:!0,value:u}):s[a]=u,T=(s,a)=>{for(var u in a||(a={}))W.call(a,u)&&R(s,u,a[u]);if(D)for(var u of D(a))$.call(a,u)&&R(s,u,a[u]);return s},w=(s,a)=>st(s,lt(a));var B=(s,a)=>{var u={};for(var o in s)W.call(s,o)&&a.indexOf(o)<0&&(u[o]=s[o]);if(s!=null&&D)for(var o of D(s))a.indexOf(o)<0&&$.call(s,o)&&(u[o]=s[o]);return u};var f=(s,a,u)=>R(s,typeof a!="symbol"?a+"":a,u);var y=(s,a,u)=>ut(at(s),u,a);var g=(s,a,u)=>new Promise((o,S)=>{var d=h=>{try{V(u.next(h))}catch(v){S(v)}},x=h=>{try{V(u.throw(h))}catch(v){S(v)}},V=h=>h.done?o(h.value):Promise.resolve(h.value).then(d,x);V((u=u.apply(s,a)).next())});var o=(c=>(c[c.SUPPRESS=1]="SUPPRESS",c[c.HIDDEN=5]="HIDDEN",c[c.INVISIBLE=8]="INVISIBLE",c[c.FULL=10]="FULL",c))(o||{});const S=10;(c=>{function n(i){return i.toUpperCase()==="SUPPRESS"?1:i.toUpperCase()==="HIDDEN"?5:i.toUpperCase()==="INVISIBLE"?8:S}c.fromString=n;function t(i){const l=typeof i=="number"?i:c.fromString(i);return Object.values(c).includes(l)?l:S}c.fromAny=t;function e(i){const l=typeof i=="number"?i:c.fromString(i);return Object.values(c).includes(l)}c.isDefined=e})(o||(o={})),Object.freeze(o);const d=o;class x{get componentName(){return"Comment"}get componentBindings(){return{}}}class V extends x{constructor(t){super();f(this,"text");this.text=t}get componentName(){return"v-sheet"}get componentBindings(){return{class:"text-body-1"}}}class h{constructor(n){f(this,"executorFn");this.executorFn=n}execute(n,t,...e){return g(this,null,function*(){return this.executorFn(n,t,...e)})}}class v extends Error{}class H extends Map{register(n){if(!(n instanceof h))throw new Error("Invalid action type");const t=n.classIdentifier,e=this.get(t)||(()=>null);function i(l,...r){return n.execute(l,e,...r)}this.set(t,i)}trigger(n,t,...e){const i=new n(()=>{}).classIdentifier,l=this.get(i);try{if(l)return l(t,...e)}catch(r){if(!(r instanceof v))throw r}return null}}const J=Symbol("EnabledChangingAction");class j extends h{constructor(n){super(n)}get classIdentifier(){return J}execute(n,t,e,i){return g(this,null,function*(){return y(j.prototype,this,"execute").call(this,n,t,e,i)})}}const K=Symbol("EnabledChangedAction");class E extends h{constructor(n){super(n)}get classIdentifier(){return K}execute(n,t,e,i){return g(this,null,function*(){return y(E.prototype,this,"execute").call(this,n,t,e,i)})}}const Q=Symbol("ExecuteAction");class F extends h{constructor(n){super(n)}get classIdentifier(){return Q}execute(n,t,e){return g(this,null,function*(){return y(F.prototype,this,"execute").call(this,n,t,e)})}}const X=Symbol("VisibilityChangingAction");class O extends h{constructor(n){super(n)}get classIdentifier(){return X}execute(n,t,e,i){return g(this,null,function*(){return y(O.prototype,this,"execute").call(this,n,t,e,i)})}}const Y=Symbol("VisibilityChangedAction");class I extends h{constructor(n){super(n)}get classIdentifier(){return Y}execute(n,t,e,i){return g(this,null,function*(){return y(I.prototype,this,"execute").call(this,n,t,e,i)})}}const Z=Symbol("ValidChangedAction");class P extends h{constructor(n){super(n)}get classIdentifier(){return Z}execute(n,t,e,i){return g(this,null,function*(){return y(P.prototype,this,"execute").call(this,n,t,e,i)})}}const M=Symbol("ValueChangedAction");class b extends h{constructor(n){super(n)}get classIdentifier(){return M}execute(n,t,e,i){return g(this,null,function*(){return y(b.prototype,this,"execute").call(this,n,t,e,i)})}}const G=Symbol("ListItemAddedAction");class C extends h{constructor(n){super(n)}get classIdentifier(){return G}execute(n,t,e,i){return g(this,null,function*(){return y(C.prototype,this,"execute").call(this,n,t,e,i)})}}const tt=Symbol("ListItemRemovedAction");class L extends h{constructor(n){super(n)}get classIdentifier(){return tt}execute(n,t,e,i){return g(this,null,function*(){return y(L.prototype,this,"execute").call(this,n,t,e,i)})}}class A{constructor(){f(this,"reactiveValue",a.computed(()=>this.value));f(this,"valid",!0);f(this,"errors",[]);f(this,"actions",new H);f(this,"_visibility",d.FULL);f(this,"_enabled",!0)}get visibility(){return this._visibility}set visibility(n){const t=this._visibility;if(!d.isDefined(n))throw new Error("visibility must be a DisplayMode constant");this._visibility=d.fromAny(n),this.actions.trigger(I,this,this._visibility,t)}setVisibility(n){return g(this,null,function*(){const t=this._visibility,e=yield this.actions.trigger(O,this,n,t);if(!d.isDefined(e!=null?e:n))throw new Error("visibility must be a DisplayMode constant");this._visibility=d.fromAny(e!=null?e:n),this.actions.trigger(I,this,this._visibility,t)})}get enabled(){return this._enabled}set enabled(n){const t=this._enabled;if(!u.isBoolean(n))throw new Error("Enabled value must be boolean");this._enabled=n,this.actions.trigger(E,this,this._enabled,t)}setEnabled(n){return g(this,null,function*(){const t=this._enabled,e=yield this.actions.trigger(j,this,n,t);if(!u.isBoolean(e!=null?e:n))throw new Error("Enabled value must be boolean");this._enabled=e!=null?e:n,this.actions.trigger(E,this,this._enabled,t)})}validate(){const n=this.valid;this.valid=this.errors.length===0,this.valid!==n&&this.actions.trigger(P,this,this.valid,n)}get fullValue(){return this.value}get isChanged(){return!u.isEqual(this.value,this.originalValue)}registerAction(n){return this.actions.register(n),this}triggerAction(n,...t){return this.actions.trigger(n,this,...t)}}function z(c,n){return(c==null?void 0:c.label)==null&&(c==null?void 0:c.icon)==null?n:c}class N extends A{constructor(t){super();f(this,"_value");if(t){const e=t,{value:i,originalValue:l}=e,r=B(e,["value","originalValue"]);Object.assign(this,r);const p={label:i==null?void 0:i.label,icon:i==null?void 0:i.icon},q=Object.freeze({label:l==null?void 0:l.label,icon:l==null?void 0:l.icon});this._value=a.reactive(z(p,q)),this.originalValue=z(q,p)}else this._value=a.reactive({label:void 0,icon:void 0})}static create(t){return a.reactive(new N(t))}get value(){return this._value}set value(t){if(!this.enabled)return;const e=this._value;this._value.icon=t==null?void 0:t.icon,this._value.label=t==null?void 0:t.label,this.actions.trigger(b,this,t,e),this.parent&&this.parent.notifyValueChanged(),this.validate()}get icon(){return this.value.icon}set icon(t){this.value={label:this.label,icon:t}}get label(){return this.value.label}set label(t){this.value={label:t,icon:this.value.icon}}clone(t){var e,i,l,r;return N.create(w(T({value:(e=t==null?void 0:t.value)!=null?e:this.value},t&&"originalValue"in t?{originalValue:t.originalValue}:{}),{errors:[...(i=t==null?void 0:t.errors)!=null?i:this.errors],enabled:(l=t==null?void 0:t.enabled)!=null?l:this.enabled,visibility:(r=t==null?void 0:t.visibility)!=null?r:this.visibility}))}execute(t){this.actions.trigger(F,this,t)}}class _ extends A{constructor(t){super();f(this,"_value");if(t){const e=t,{value:i}=e,l=B(e,["value"]);Object.assign(this,l),this._value=i!=null?i:this.originalValue,this.originalValue===void 0&&(this.originalValue=this._value)}}static create(t){return a.reactive(new _(t))}get value(){return this._value}set value(t){if(!this.enabled)return;const e=this._value;this._value=t,this.actions.trigger(b,this,t,e),this.parent&&this.parent.notifyValueChanged(),this.validate()}clone(t){var e,i,l,r;return _.create(w(T({value:(e=t==null?void 0:t.value)!=null?e:this.value},t&&"originalValue"in t?{originalValue:t.originalValue}:{}),{errors:[...(i=t==null?void 0:t.errors)!=null?i:this.errors],enabled:(l=t==null?void 0:t.enabled)!=null?l:this.enabled,visibility:(r=t==null?void 0:t.visibility)!=null?r:this.visibility}))}}const k=_.create({value:"EmptyField"}).registerAction(new b(()=>g(this,null,function*(){console.warn("Working with EmptyField! This should not happen")})));class m extends A{constructor(t,e){super();f(this,"_fields");f(this,"_value",null);f(this,"suppressNotifyValueChanged",!1);if(!m.isValidFields(t))throw new Error("Invalid fields object provided");if(this._fields={},Object.entries(t).forEach(([l,r])=>{Object.defineProperty(r,"parent",{get:()=>this,configurable:!1,enumerable:!1}),Object.defineProperty(r,"fieldName",{get:()=>l,configurable:!1,enumerable:!1}),Object.defineProperty(this._fields,l,{get(){return r},configurable:!1,enumerable:!0})}),e){const i=e,{value:l}=i,r=B(i,["value"]);Object.assign(this,r),this.value=l!=null?l:this.originalValue}this.originalValue===void 0&&(this.originalValue=this.value)}static isValidFields(t){function e(i){return i instanceof A}return typeof t=="object"&&t!==null&&Object.entries(t).every(([,i])=>e(i))}static createFromFormData(t){if(t instanceof A)throw new Error("data is already a Form structure, should be a simple object");return new m(t==null?{}:Object.fromEntries(Object.entries(t).map(([e,i])=>[e,_.create({value:i})])))}field(t){var e;return(e=this._fields[t])!=null?e:null}get fields(){return this._fields}get value(){const t={};return Object.entries(this._fields).forEach(([e,i])=>{const l=i.value;(i.enabled||i instanceof m&&!u.isEmpty(l))&&(t[e]=l)}),u.isEmpty(t)?null:t}set value(t){this.suppressNotifyValueChanged=!0;try{Object.entries(this._fields).forEach(([e,i])=>{(t==null||e in t)&&(i.value=t==null?null:t[e])})}finally{this.suppressNotifyValueChanged=!1}this.notifyValueChanged()}get fullValue(){const t={};return Object.entries(this._fields).forEach(([e,i])=>{t[e]=i.fullValue}),t}notifyValueChanged(){if(this.suppressNotifyValueChanged)return;const t=this.value;if(!u.isEqual(t,this._value)){const e=this._value;this._value=t,this.actions.trigger(b,this,t,e),this.parent&&this.parent.notifyValueChanged()}}clone(t){var i,l,r,p;const e={};return Object.entries(this._fields).forEach(([q,it])=>{e[q]=it.clone()}),new m(e,w(T({value:(i=t==null?void 0:t.value)!=null?i:this.value},t&&"originalValue"in t?{originalValue:t.originalValue}:{}),{errors:[...(l=t==null?void 0:t.errors)!=null?l:[]],enabled:(r=t==null?void 0:t.enabled)!=null?r:this.enabled,visibility:(p=t==null?void 0:t.visibility)!=null?p:this.visibility}))}}class U extends A{constructor(t,e){super();f(this,"_value",null);f(this,"_itemTemplate");f(this,"_previousValue");if(this._itemTemplate=t,e){const i=e,{value:l}=i,r=B(i,["value"]);Object.assign(this,r),l&&this.setValue(l)}this.originalValue===void 0&&(this.originalValue=this.value),this._previousValue=this.value}processSetValueItem(t){let e;return t instanceof m?e=t:this._itemTemplate?e=this._itemTemplate.clone({value:t}):e=m.createFromFormData(t),Object.defineProperty(e,"parent",{get:()=>this,configurable:!1,enumerable:!1}),e}setValue(t){Array.isArray(t)&&(this._value=t.map(e=>this.processSetValueItem(e)))}get value(){var e;const t=(e=this._value)==null?void 0:e.map(i=>i.value);return u.isEmpty(t)?null:t}set value(t){const e=this.value;this.setValue(t),this.actions.trigger(b,this,this.value,e),this.parent&&this.parent.notifyValueChanged()}clone(t){var e,i,l,r,p;return new U((e=this._itemTemplate)==null?void 0:e.clone(),w(T({value:[...(i=t==null?void 0:t.value)!=null?i:this.value]},t&&"originalValue"in t?{originalValue:t.originalValue}:{}),{errors:[...(l=t==null?void 0:t.errors)!=null?l:[]],enabled:(r=t==null?void 0:t.enabled)!=null?r:this.enabled,visibility:(p=t==null?void 0:t.visibility)!=null?p:this.visibility}))}notifyValueChanged(){const t=this.value;if(!u.isEqual(t,this._previousValue)){const e=this._previousValue;this._previousValue=t,this.actions.trigger(b,this,t,e),this.parent&&this.parent.notifyValueChanged()}}get(t){return this._value!=null?this._value[t]:void 0}push(t){var e,i;return this.insert(t,(i=(e=this._value)==null?void 0:e.length)!=null?i:0)+1}pop(){var t,e;return this.remove(((e=(t=this._value)==null?void 0:t.length)!=null?e:0)-1)}remove(t){var i;if(this._value==null||t<0||this._value.length<=t)return;let e=(i=this._value.splice(t,1))==null?void 0:i[0];return e&&(e=e.clone(),this.actions.trigger(L,this,e,t),this.notifyValueChanged()),e}insert(t,e){for(this._value==null&&(this._value=[]);this._value.length<e;){const l=this.processSetValueItem(null),r=this._value.push(l);this.actions.trigger(C,this,l,r)}const i=this.processSetValueItem(t);return this._value.splice(e,0,i),this.actions.trigger(C,this,i,e),this.notifyValueChanged(),e}clear(){this._value=null,this.notifyValueChanged()}}const et=Object.freeze(Object.defineProperty({__proto__:null,AbortEventHandlingException:v,Action:N,ActionsMap:H,DisplayMode:d,EmptyField:k,EnabledChangedAction:E,EnabledChangingAction:j,ExecuteAction:F,Field:_,FieldActionBase:h,Group:m,List:U,ListItemAddedAction:C,ListItemRemovedAction:L,ValidChangedAction:P,ValidationError:x,ValidationErrorText:V,ValueChangedAction:b,VisibilityChangedAction:I,VisibilityChangingAction:O},Symbol.toStringTag,{value:"Module"}));s.AbortEventHandlingException=v,s.Action=N,s.ActionsMap=H,s.DisplayMode=d,s.EmptyField=k,s.EnabledChangedAction=E,s.EnabledChangingAction=j,s.ExecuteAction=F,s.Field=_,s.FieldActionBase=h,s.Group=m,s.List=U,s.ListItemAddedAction=C,s.ListItemRemovedAction=L,s.ValidChangedAction=P,s.ValidationError=x,s.ValidationErrorText=V,s.ValueChangedAction=b,s.VisibilityChangedAction=I,s.VisibilityChangingAction=O,s.default=et,Object.defineProperties(s,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});
2
2
  //# sourceMappingURL=dynamicforms-vue-forms.umd.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"dynamicforms-vue-forms.umd.cjs","sources":["../src/display-mode.ts","../src/validation-error.ts","../src/actions/field-action-base.ts","../src/field.interface.ts","../src/actions/actions-map.ts","../src/actions/enabled-actions.ts","../src/actions/execute-action.ts","../src/actions/visibility-actions.ts","../src/actions/valid-changed-action.ts","../src/actions/value-changed-action.ts","../src/actions/list-item-added-action.ts","../src/actions/list-item-removed-action.ts","../src/field-base.ts","../src/action.ts","../src/field.ts","../src/group.ts","../src/list.ts"],"sourcesContent":["/**\n * DisplayMode enum provides an enumeration for supported ways of rendering a particular object in the DOM\n */\nenum DisplayMode {\n // This enum is actually declared in dynamicforms.mixins.field_render.py\n SUPPRESS = 1, // Field will be entirely suppressed. it will not render (not even to JSON) and will not parse for PUT\n HIDDEN = 5, // Field will render as <input type=\"hidden\"> or <tr data-field_name>\n INVISIBLE = 8, // Field will render completely, but with display: none. Equal to setting its style = {display: none}\n FULL = 10, // Field will render completely\n}\n\nexport const defaultDisplayMode = DisplayMode.FULL;\n\nnamespace DisplayMode {\n export function fromString(mode: string): DisplayMode {\n if (mode.toUpperCase() === 'SUPPRESS') return DisplayMode.SUPPRESS;\n if (mode.toUpperCase() === 'HIDDEN') return DisplayMode.HIDDEN;\n if (mode.toUpperCase() === 'INVISIBLE') return DisplayMode.INVISIBLE;\n return defaultDisplayMode;\n }\n\n export function fromAny(mode: any): DisplayMode {\n const input = (typeof mode === 'number') ? mode : DisplayMode.fromString(mode as string);\n if (Object.values(DisplayMode).includes(input)) return input;\n return defaultDisplayMode;\n }\n\n export function isDefined(mode: number | string): boolean {\n const check = (typeof mode === 'number') ? mode : DisplayMode.fromString(mode as string);\n return Object.values(DisplayMode).includes(check);\n }\n}\n\nObject.freeze(DisplayMode);\n\nexport default DisplayMode;\n","/* eslint-disable max-classes-per-file */\nexport class ValidationError {\n get componentName() { return 'Comment'; } // eslint-disable-line class-methods-use-this\n\n get componentBindings() { return {}; } // eslint-disable-line class-methods-use-this\n}\n\nexport class ValidationErrorText extends ValidationError {\n text: string;\n\n constructor(text: string) {\n super();\n this.text = text;\n }\n\n get componentName() { return 'v-sheet'; } // eslint-disable-line class-methods-use-this\n\n get componentBindings() { return { class: 'text-body-1' }; } // eslint-disable-line class-methods-use-this\n}\n\n/** ********************************************************************************************************************\n *\n at some point there will be classes here that will support links or action buttons or something even more complex\n *\n ******************************************************************************************************************** */\n","// eslint-disable-next-line max-classes-per-file\nimport {\n FieldActionExecute,\n type IField,\n type IFieldAction,\n} from '@/field.interface';\n\ntype ActionExecutor = (field: IField, supr: FieldActionExecute, ...params: any[]) => Promise<any>;\n\nexport default abstract class FieldActionBase implements IFieldAction {\n public abstract get classIdentifier(): symbol;\n private readonly executorFn: ActionExecutor;\n\n constructor(executorFn: ActionExecutor) {\n this.executorFn = executorFn;\n }\n\n async execute(field: IField, supr: IFieldAction['execute'], ...params: any[]): Promise<any> {\n return this.executorFn(field, supr, ...params);\n }\n}\n","import { ComputedRef } from 'vue';\n\nimport type DisplayMode from './display-mode';\nimport { type ValidationError } from './validation-error';\n\nexport interface IField<T = any> {\n value: T;\n reactiveValue: ComputedRef<T>;\n fullValue: T;\n originalValue: T;\n valid: boolean;\n errors: ValidationError[];\n enabled: boolean;\n visibility: DisplayMode;\n\n parent?: any; // Group when member of a Group, parent will specify that group\n fieldName?: string; // when member of a Group, fieldName specifies the name of this field\n\n clone(overrides?: Partial<IField<T>>): IField<T>;\n // events\n registerAction(action: IFieldAction<T>): this;\n triggerAction<T2 extends IFieldAction<T>>(actionClass: abstract new (...args: any[]) => T2, ...params: any[]): any;\n\n // API\n validate(): void;\n isChanged: boolean;\n}\n\nexport class AbortEventHandlingException extends Error {}\n\nexport type FieldActionExecute<T = any> = (field: IField<T>, ...params: any[]) => Promise<any>;\nexport interface IFieldAction<T = any> {\n execute(field: IField<T>, supr: FieldActionExecute<T>, ...params: any[]): any;\n}\n","import { type FieldActionExecute, type IField, AbortEventHandlingException } from '../field.interface';\n\nimport FieldActionBase from './field-action-base';\n\nexport default class ActionsMap extends Map<symbol, FieldActionExecute> {\n register(action: FieldActionBase) {\n if (!(action instanceof FieldActionBase)) {\n throw new Error('Invalid action type');\n }\n\n const actionType = action.classIdentifier;\n const existingExecute = this.get(actionType) || (() => null);\n\n function ex(field: IField, ...params: any[]) {\n return action.execute(field, existingExecute, ...params);\n }\n this.set(actionType, ex);\n }\n\n trigger<T extends FieldActionBase>(\n ActionClass: new (...args: any[]) => T,\n field: IField,\n ...params: any[]\n ): any {\n const identifier = new ActionClass(() => {}).classIdentifier;\n const execute = this.get(identifier);\n try {\n if (execute) return execute(field, ...params);\n } catch (error) {\n if (!(error instanceof AbortEventHandlingException)) throw error;\n }\n return null;\n }\n}\n","// eslint-disable-next-line max-classes-per-file\nimport FieldActionBase from './field-action-base';\n\nimport { FieldActionExecute, type IField } from '@/field.interface';\n\nconst EnabledChangingActionClassIdentifier = Symbol('EnabledChangingAction');\n\nexport class EnabledChangingAction extends FieldActionBase {\n // eslint-disable-next-line @typescript-eslint/no-useless-constructor\n constructor(\n executorFn: (\n field: IField, supr: FieldActionExecute, newValue: boolean, oldValue: boolean\n ) => Promise<boolean>,\n ) {\n super(executorFn);\n }\n\n // eslint-disable-next-line class-methods-use-this\n get classIdentifier() { return EnabledChangingActionClassIdentifier; }\n\n async execute(field: IField, supr: FieldActionExecute, newValue: boolean, oldValue: boolean)\n : Promise<boolean> {\n return super.execute(field, supr, newValue, oldValue);\n }\n}\n\nconst EnabledChangedActionClassIdentifier = Symbol('EnabledChangedAction');\n\nexport class EnabledChangedAction extends FieldActionBase {\n // eslint-disable-next-line @typescript-eslint/no-useless-constructor\n constructor(\n executorFn: (\n field: IField, supr: FieldActionExecute, newValue: boolean, oldValue: boolean\n ) => Promise<void>,\n ) {\n super(executorFn);\n }\n\n // eslint-disable-next-line class-methods-use-this\n get classIdentifier() { return EnabledChangedActionClassIdentifier; }\n\n async execute(\n field: IField,\n supr: FieldActionExecute,\n newValue: boolean,\n oldValue: boolean,\n ): Promise<void> {\n return super.execute(field, supr, newValue, oldValue);\n }\n}\n","import FieldActionBase from './field-action-base';\n\nimport { FieldActionExecute, type IField } from '@/field.interface';\n\nconst ExecuteActionClassIdentifier = Symbol('ExecuteAction');\n\n// eslint-disable-next-line import/prefer-default-export\nexport class ExecuteAction extends FieldActionBase {\n // eslint-disable-next-line @typescript-eslint/no-useless-constructor\n constructor(\n executorFn: (field: IField, supr: FieldActionExecute, params: any) => Promise<any>,\n ) {\n super(executorFn);\n }\n\n // eslint-disable-next-line class-methods-use-this\n get classIdentifier() { return ExecuteActionClassIdentifier; }\n\n async execute(field: IField, supr: FieldActionExecute, params: any): Promise<any> {\n return super.execute(field, supr, params);\n }\n}\n","// eslint-disable-next-line max-classes-per-file\nimport FieldActionBase from './field-action-base';\n\nimport DisplayMode from '@/display-mode';\nimport { FieldActionExecute, type IField } from '@/field.interface';\n\nconst VisibilityChangingActionClassIdentifier = Symbol('VisibilityChangingAction');\n\nexport class VisibilityChangingAction extends FieldActionBase {\n // eslint-disable-next-line @typescript-eslint/no-useless-constructor\n constructor(\n executorFn: (\n field: IField, supr: FieldActionExecute, newValue: DisplayMode, oldValue: DisplayMode\n ) => Promise<DisplayMode>,\n ) {\n super(executorFn);\n }\n\n // eslint-disable-next-line class-methods-use-this\n get classIdentifier() { return VisibilityChangingActionClassIdentifier; }\n\n async execute(\n field: IField,\n supr: FieldActionExecute,\n newValue: DisplayMode,\n oldValue: DisplayMode,\n ): Promise<DisplayMode> {\n return super.execute(field, supr, newValue, oldValue);\n }\n}\n\nconst VisibilityChangedActionClassIdentifier = Symbol('VisibilityChangedAction');\n\nexport class VisibilityChangedAction extends FieldActionBase {\n // eslint-disable-next-line @typescript-eslint/no-useless-constructor\n constructor(\n executorFn: (\n field: IField, supr: FieldActionExecute, newValue: DisplayMode, oldValue: DisplayMode,\n ) => Promise<void>,\n ) {\n super(executorFn);\n }\n\n // eslint-disable-next-line class-methods-use-this\n get classIdentifier() { return VisibilityChangedActionClassIdentifier; }\n\n async execute(\n field: IField,\n supr: FieldActionExecute,\n newValue: DisplayMode,\n oldValue: DisplayMode,\n ): Promise<void> {\n return super.execute(field, supr, newValue, oldValue);\n }\n}\n","import FieldActionBase from './field-action-base';\n\nimport { FieldActionExecute, type IField } from '@/field.interface';\n\nconst ValidChangedActionClassIdentifier = Symbol('ValidChangedAction');\n\n// eslint-disable-next-line import/prefer-default-export\nexport class ValidChangedAction extends FieldActionBase {\n // eslint-disable-next-line @typescript-eslint/no-useless-constructor\n constructor(\n executorFn: (\n field: IField, supr: FieldActionExecute, newValue: boolean, oldValue: boolean,\n ) => Promise<void>,\n ) {\n super(executorFn);\n }\n\n // eslint-disable-next-line class-methods-use-this\n get classIdentifier() { return ValidChangedActionClassIdentifier; }\n\n async execute(\n field: IField,\n supr: FieldActionExecute,\n newValue: boolean,\n oldValue: boolean,\n ): Promise<void> {\n return super.execute(field, supr, newValue, oldValue);\n }\n}\n","import FieldActionBase from './field-action-base';\n\nimport { FieldActionExecute, type IField } from '@/field.interface';\n\nconst ValueChangedActionClassIdentifier = Symbol('ValueChangedAction');\n\n// eslint-disable-next-line import/prefer-default-export\nexport class ValueChangedAction<T = any> extends FieldActionBase {\n // eslint-disable-next-line @typescript-eslint/no-useless-constructor\n constructor(\n executorFn: (\n field: IField<T>, supr: FieldActionExecute<T>, newValue: T, oldValue: T,\n ) => Promise<void>,\n ) {\n super(executorFn);\n }\n\n // eslint-disable-next-line class-methods-use-this\n get classIdentifier() { return ValueChangedActionClassIdentifier; }\n\n async execute(\n field: IField<T>,\n supr: FieldActionExecute<T>,\n newValue: T,\n oldValue: T,\n ): Promise<void> {\n return super.execute(field, supr, newValue, oldValue);\n }\n}\n","import FieldActionBase from './field-action-base';\n\nimport { FieldActionExecute, type IField } from '@/field.interface';\n\nconst ListItemAddedActionClassIdentifier = Symbol('ListItemAddedAction');\n\n// eslint-disable-next-line import/prefer-default-export\nexport class ListItemAddedAction extends FieldActionBase {\n // eslint-disable-next-line @typescript-eslint/no-useless-constructor\n constructor(\n executorFn: (field: IField, supr: FieldActionExecute, item: any, index: number) => Promise<void>,\n ) {\n super(executorFn);\n }\n\n // eslint-disable-next-line class-methods-use-this\n get classIdentifier() { return ListItemAddedActionClassIdentifier; }\n\n async execute(field: IField, supr: FieldActionExecute, item: any, index: number): Promise<void> {\n return super.execute(field, supr, item, index);\n }\n}\n","import FieldActionBase from './field-action-base';\n\nimport { FieldActionExecute, type IField } from '@/field.interface';\n\nconst ListItemRemovedActionClassIdentifier = Symbol('ListItemRemovedAction');\n\n// eslint-disable-next-line import/prefer-default-export\nexport class ListItemRemovedAction extends FieldActionBase {\n // eslint-disable-next-line @typescript-eslint/no-useless-constructor\n constructor(\n executorFn: (field: IField, supr: FieldActionExecute, item: any, index: number) => Promise<void>,\n ) {\n super(executorFn);\n }\n\n // eslint-disable-next-line class-methods-use-this\n get classIdentifier() { return ListItemRemovedActionClassIdentifier; }\n\n async execute(field: IField, supr: FieldActionExecute, item: any, index: number): Promise<void> {\n return super.execute(field, supr, item, index);\n }\n}\n","import { isBoolean, isEqual } from 'lodash-es';\nimport { computed } from 'vue';\n\nimport {\n ActionsMap,\n EnabledChangedAction,\n EnabledChangingAction,\n ValidChangedAction,\n VisibilityChangedAction,\n VisibilityChangingAction,\n} from './actions';\nimport FieldActionBase from './actions/field-action-base';\nimport DisplayMode from './display-mode';\nimport { IField, IFieldAction } from './field.interface';\nimport { type Group } from './group';\nimport { ValidationError } from './validation-error';\n\n// eslint-disable-next-line import/prefer-default-export\nexport abstract class FieldBase<T = any> implements IField<T> {\n abstract get value(): T;\n abstract set value(newValue: T);\n public readonly reactiveValue = computed(() => this.value);\n\n abstract clone(overrides?: Partial<IField<T>>): IField<T>;\n\n declare originalValue: T; // contains original field value as was provided at creation\n\n valid: boolean = true; // is current value valid as per FE and BE validators?\n\n errors: ValidationError[] = []; // list of errors\n\n declare parent?: Group; // when member of a Group, parent will specify that group\n\n declare fieldName?: string; // when member of a Group, fieldName specifies the name of this field\n\n protected actions: ActionsMap = new ActionsMap();\n\n // default property handlers\n private _visibility: DisplayMode = DisplayMode.FULL;\n\n get visibility(): DisplayMode { return this._visibility; }\n\n set visibility(newValue: DisplayMode) {\n const oldValue = this._visibility;\n if (!DisplayMode.isDefined(newValue)) throw new Error('visibility must be a DisplayMode constant');\n this._visibility = DisplayMode.fromAny(newValue);\n this.actions.trigger(VisibilityChangedAction, this, this._visibility, oldValue);\n }\n\n async setVisibility(newValue: DisplayMode) {\n const oldValue = this._visibility;\n const alteredValue = await this.actions.trigger(VisibilityChangingAction, this, newValue, oldValue);\n if (!DisplayMode.isDefined(alteredValue ?? newValue)) throw new Error('visibility must be a DisplayMode constant');\n this._visibility = DisplayMode.fromAny(alteredValue ?? newValue);\n this.actions.trigger(VisibilityChangedAction, this, this._visibility, oldValue);\n }\n\n private _enabled: boolean = true;\n\n get enabled(): boolean { return this._enabled; }\n\n set enabled(newValue: boolean) {\n const oldValue = this._enabled;\n if (!isBoolean(newValue)) throw new Error('Enabled value must be boolean');\n this._enabled = newValue;\n this.actions.trigger(EnabledChangedAction, this, this._enabled, oldValue);\n }\n\n async setEnabled(newValue: boolean) {\n const oldValue = this._enabled;\n const alteredValue = await this.actions.trigger(EnabledChangingAction, this, newValue, oldValue);\n if (!isBoolean(alteredValue ?? newValue)) throw new Error('Enabled value must be boolean');\n this._enabled = alteredValue ?? newValue;\n this.actions.trigger(EnabledChangedAction, this, this._enabled, oldValue);\n }\n\n validate() {\n const oldValid = this.valid;\n this.valid = this.errors.length === 0;\n if (this.valid !== oldValid) this.actions.trigger(ValidChangedAction, this, this.valid, oldValid);\n }\n\n get fullValue(): any {\n return this.value;\n }\n\n get isChanged() : boolean {\n return !isEqual(this.value, this.originalValue);\n }\n\n registerAction(action: IFieldAction<T>): this {\n this.actions.register(action as FieldActionBase);\n return this;\n }\n\n triggerAction<T2 extends IFieldAction<T>>(\n actionClass: new (...args: any[]) => T2,\n ...params: any[]\n ): any {\n return this.actions.trigger(actionClass as any, this, ...params);\n }\n}\n","import { reactive, Reactive } from 'vue';\n\nimport { ExecuteAction, ValueChangedAction } from './actions';\nimport { FieldBase } from './field-base';\nimport { IField } from './field.interface';\n\nexport interface ActionValue {\n label?: string;\n icon?: string;\n}\n\nfunction isValEmpty(val: ActionValue, defaultIfTrue: ActionValue): ActionValue {\n if (val?.label == null && val?.icon == null) return defaultIfTrue;\n return val;\n}\n\nexport class Action extends FieldBase {\n private readonly _value: ActionValue;\n\n protected constructor(params?: Partial<IField<ActionValue>>) {\n super();\n if (params) {\n const { value: paramValue, originalValue, ...otherParams } = params;\n Object.assign(this, otherParams);\n const val = { label: paramValue?.label, icon: paramValue?.icon } as ActionValue;\n const orgVal = Object.freeze({ label: originalValue?.label, icon: originalValue?.icon } as ActionValue);\n this._value = reactive(isValEmpty(val, orgVal));\n this.originalValue = isValEmpty(orgVal, val);\n } else {\n this._value = reactive({ label: undefined, icon: undefined });\n }\n }\n\n static create(params?: Partial<IField<ActionValue>>): Reactive<Action> {\n return reactive(new Action(params));\n }\n\n get value(): ActionValue { return this._value; }\n\n set value(newValue: ActionValue) {\n if (!this.enabled) return; // a disabled field does not allow changing value\n const oldValue = this._value;\n this._value.icon = newValue?.icon;\n this._value.label = newValue?.label;\n this.actions.trigger(ValueChangedAction, this, newValue, oldValue);\n if (this.parent) this.parent.notifyValueChanged();\n this.validate();\n }\n\n get icon(): string | undefined {\n return this.value.icon;\n }\n\n set icon(newValue: string | undefined) {\n this.value = { label: this.label, icon: newValue };\n }\n\n get label(): string | undefined {\n return this.value.label;\n }\n\n set label(newValue: string | undefined) {\n this.value = { label: newValue, icon: this.value.icon };\n }\n\n clone(overrides?: Partial<IField>): Reactive<Action> {\n return new Action({\n value: overrides?.value ?? this.value,\n ...(overrides && 'originalValue' in overrides ? { originalValue: overrides.originalValue } : { }),\n errors: [...(overrides?.errors ?? this.errors)],\n enabled: overrides?.enabled ?? this.enabled,\n visibility: overrides?.visibility ?? this.visibility,\n });\n }\n\n execute(params: any) {\n this.actions.trigger(ExecuteAction, this, params);\n }\n}\n\nexport type NullableAction = Action | null;\n","import { reactive, Reactive } from 'vue';\n\nimport { ValueChangedAction } from './actions';\nimport { FieldBase } from './field-base';\nimport { IField } from './field.interface';\n\n// eslint-disable-next-line import/prefer-default-export\nexport class Field<T = any> extends FieldBase {\n private _value: T = undefined!;\n\n protected constructor(params?: Partial<IField<T>>) {\n super();\n if (params) {\n const { value: paramValue, ...otherParams } = params;\n Object.assign(this, otherParams);\n this._value = paramValue ?? this.originalValue;\n if (this.originalValue === undefined) this.originalValue = this._value;\n }\n }\n\n static create<T = any>(params?: Partial<IField<T>>): Reactive<Field<T>> {\n return reactive(new Field(params));\n }\n\n get value() { return this._value; }\n\n set value(newValue: T) {\n if (!this.enabled) return; // a disabled field does not allow changing value\n const oldValue = this._value;\n this._value = newValue;\n this.actions.trigger(ValueChangedAction, this, newValue, oldValue);\n if (this.parent) this.parent.notifyValueChanged();\n this.validate();\n }\n\n clone(overrides?: Partial<IField<T>>): Reactive<Field<T>> {\n return Field.create<T>({\n value: overrides?.value ?? this.value,\n ...(overrides && 'originalValue' in overrides ? { originalValue: overrides.originalValue } : { }),\n errors: [...(overrides?.errors ?? this.errors)],\n enabled: overrides?.enabled ?? this.enabled,\n visibility: overrides?.visibility ?? this.visibility,\n });\n }\n}\n\nexport type NullableField<T = any> = Field<T> | null;\n\nexport const EmptyField = Field.create({ value: 'EmptyField' })\n .registerAction(new ValueChangedAction(\n async () => {\n console.warn('Working with EmptyField! This should not happen');\n },\n ));\n","import { isEmpty, isEqual } from 'lodash-es';\n\nimport { ValueChangedAction } from './actions';\nimport { Field } from './field';\nimport { FieldBase } from './field-base';\nimport { IField } from './field.interface';\n\nexport type GenericFieldsInterface = Record<string, IField>;\n\nexport class Group<T extends GenericFieldsInterface = GenericFieldsInterface> extends FieldBase {\n private readonly _fields: T;\n\n private _value: Record<string, any> | null = null;\n\n private suppressNotifyValueChanged: boolean = false;\n\n constructor(fields: T, params?: Partial<IField>) {\n super();\n\n if (!Group.isValidFields(fields)) throw new Error('Invalid fields object provided');\n this._fields = {} as T;\n Object.entries(fields).forEach(([name, field]) => {\n Object.defineProperty(field, 'parent', { get: () => this, configurable: false, enumerable: false });\n Object.defineProperty(field, 'fieldName', { get: () => name, configurable: false, enumerable: false });\n Object.defineProperty(\n this._fields,\n name,\n { get() { return field; }, configurable: false, enumerable: true },\n );\n });\n\n if (params) {\n const { value: paramValue, ...otherParams } = params;\n Object.assign(this, otherParams);\n this.value = paramValue ?? this.originalValue;\n }\n\n if (this.originalValue === undefined) this.originalValue = this.value;\n\n // if (Object.keys(this._fields).length) console.log('group created', this, Error().stack);\n }\n\n private static isValidFields(flds: unknown): flds is Record<string, FieldBase> {\n function isFieldAll(field: unknown): field is FieldBase {\n return field instanceof FieldBase;\n }\n\n return typeof flds === 'object' &&\n flds !== null &&\n Object.entries(flds).every(([, field]) => isFieldAll(field));\n }\n\n static createFromFormData(data: Record<string, any> | null): Group {\n if (data instanceof FieldBase) {\n throw new Error('data is already a Form structure, should be a simple object');\n }\n return new Group(\n data == null ?\n { } :\n Object.fromEntries(\n Object.entries(data).map(([key, value]) => [key, Field.create({ value })]),\n ),\n );\n }\n\n field(fieldName: string): IField | null {\n return this._fields[fieldName] ?? null;\n }\n\n get fields(): T {\n return this._fields;\n }\n\n get value(): Record<string, any> | null {\n const value: Record<string, any> = {};\n Object.entries(this._fields).forEach(([name, field]) => {\n const fieldValue = field.value;\n if (field.enabled) {\n // readOnly fields do not serialize\n value[name] = fieldValue;\n } else if (field instanceof Group && !isEmpty(fieldValue)) {\n // readOnly group only serializes if it is non-empty (some of its fields are not readOnly)\n value[name] = fieldValue;\n }\n });\n return isEmpty(value) ? null : value;\n }\n\n set value(newValue: Record<string, any> | null) {\n this.suppressNotifyValueChanged = true;\n try {\n Object.entries(this._fields).forEach(([name, field]) => {\n if (newValue == null || name in newValue) {\n field.value = newValue == null ? null : newValue[name];\n }\n });\n } finally {\n this.suppressNotifyValueChanged = false;\n }\n this.notifyValueChanged();\n }\n\n get fullValue(): Record<string, any> {\n const value: Record<string, any> = {};\n Object.entries(this._fields).forEach(([name, field]) => { value[name] = field.fullValue; });\n return value;\n }\n\n notifyValueChanged() {\n if (this.suppressNotifyValueChanged) return;\n const newValue = this.value;\n if (!isEqual(newValue, this._value)) {\n const oldValue = this._value;\n this._value = newValue;\n this.actions.trigger(ValueChangedAction, this, newValue, oldValue);\n if (this.parent) this.parent.notifyValueChanged();\n }\n }\n\n clone(overrides?: Partial<IField>): Group<T> {\n const newFields = {} as T;\n Object.entries(this._fields).forEach(([name, field]) => {\n newFields[name as keyof T] = field.clone() as any;\n });\n\n return new Group(newFields, {\n value: overrides?.value ?? this.value,\n ...(overrides && 'originalValue' in overrides ? { originalValue: overrides.originalValue } : { }),\n errors: [...(overrides?.errors ?? [])],\n enabled: overrides?.enabled ?? this.enabled,\n visibility: overrides?.visibility ?? this.visibility,\n });\n }\n}\n\nexport type NullableGroup = Group | null;\n","import { isEmpty, isEqual } from 'lodash-es';\n\nimport { ListItemAddedAction, ListItemRemovedAction, ValueChangedAction } from './actions';\nimport { FieldBase } from './field-base';\nimport { IField } from './field.interface';\nimport { GenericFieldsInterface, Group } from './group';\n\nexport class List<T extends GenericFieldsInterface = GenericFieldsInterface> extends FieldBase {\n private _value: Group<T>[] | null = null;\n\n private _itemTemplate?: Group<T>;\n\n private _previousValue: Record<string, any>[] | null;\n\n constructor(itemTemplate?: Group<T>, params?: Partial<IField>) {\n super();\n\n this._itemTemplate = itemTemplate;\n\n if (params) {\n const { value: paramValue, ...otherParams } = params;\n Object.assign(this, otherParams);\n\n if (paramValue) this.setValue(paramValue);\n }\n\n if (this.originalValue === undefined) this.originalValue = this.value;\n this._previousValue = this.value;\n // if (Object.keys(this._fields).length) console.log('formGroup created', this, Error().stack);\n }\n\n private processSetValueItem(item: any) : Group<T> {\n let res: Group<T>;\n // If item is already a Group, use it\n if (item instanceof Group) res = item;\n // Otherwise create a Group from item\n else if (this._itemTemplate) res = this._itemTemplate.clone({ value: item });\n else res = Group.createFromFormData(item) as Group<T>;\n\n Object.defineProperty(res, 'parent', { get: () => this, configurable: false, enumerable: false });\n\n return res;\n }\n\n private setValue(newValue: any[]) {\n if (Array.isArray(newValue)) {\n this._value = newValue.map((item: any) => this.processSetValueItem(item));\n }\n }\n\n get value(): Record<string, any>[] | null {\n const value = this._value?.map((item) => item.value);\n return isEmpty(value) ? null : <Record<string, any>[]> value;\n }\n\n set value(newValue: Record<string, any>[]) {\n const oldValue = this.value;\n this.setValue(newValue);\n this.actions.trigger(ValueChangedAction, this, this.value, oldValue);\n if (this.parent) this.parent.notifyValueChanged();\n }\n\n clone(overrides?: Partial<IField>): List<T> {\n return new List(this._itemTemplate?.clone(), {\n value: [...(overrides?.value ?? this.value)],\n ...(overrides && 'originalValue' in overrides ? { originalValue: overrides.originalValue } : { }),\n errors: [...(overrides?.errors ?? [])],\n enabled: overrides?.enabled ?? this.enabled,\n visibility: overrides?.visibility ?? this.visibility,\n });\n }\n\n notifyValueChanged() {\n const newValue = this.value;\n if (!isEqual(newValue, this._previousValue)) {\n const oldValue = this._previousValue;\n this._previousValue = newValue;\n this.actions.trigger(ValueChangedAction, this, newValue, oldValue);\n if (this.parent) this.parent.notifyValueChanged();\n }\n }\n\n get(index: number): Group<T> | undefined {\n return this._value != null ? this._value[index] : undefined;\n }\n\n push(item: any): number {\n return this.insert(item, this._value?.length ?? 0) + 1;\n }\n\n pop(): Group<T> | undefined {\n return this.remove((this._value?.length ?? 0) - 1);\n }\n\n remove(index: number): Group<T> | undefined {\n if (this._value == null || index < 0 || this._value.length <= index) return undefined;\n\n let removedItem = this._value.splice(index, 1)?.[0];\n\n if (removedItem) {\n // Remove parent reference\n removedItem = removedItem.clone();\n\n // Trigger events\n this.actions.trigger(ListItemRemovedAction, this, removedItem, index);\n this.notifyValueChanged();\n }\n\n return removedItem;\n }\n\n insert(item: any, index: number): number {\n if (this._value == null) this._value = [];\n while (this._value.length < index) {\n // if the index is too large for current array size, we add as many as necessary\n const itm = this.processSetValueItem(null);\n const idx = this._value.push(itm);\n this.actions.trigger(ListItemAddedAction, this, itm, idx);\n }\n const itm = this.processSetValueItem(item);\n this._value.splice(index, 0, itm);\n\n this.actions.trigger(ListItemAddedAction, this, itm, index);\n this.notifyValueChanged();\n\n return index;\n }\n\n clear() {\n this._value = null;\n this.notifyValueChanged();\n }\n}\n\nexport type NullableList = List | null;\n"],"names":["DisplayMode","defaultDisplayMode","fromString","mode","fromAny","input","isDefined","check","DisplayMode$1","ValidationError","ValidationErrorText","text","__publicField","FieldActionBase","executorFn","field","supr","params","__async","AbortEventHandlingException","ActionsMap","action","actionType","existingExecute","ex","ActionClass","identifier","execute","error","EnabledChangingActionClassIdentifier","EnabledChangingAction","newValue","oldValue","__superGet","EnabledChangedActionClassIdentifier","EnabledChangedAction","ExecuteActionClassIdentifier","ExecuteAction","VisibilityChangingActionClassIdentifier","VisibilityChangingAction","VisibilityChangedActionClassIdentifier","VisibilityChangedAction","ValidChangedActionClassIdentifier","ValidChangedAction","ValueChangedActionClassIdentifier","ValueChangedAction","ListItemAddedActionClassIdentifier","ListItemAddedAction","item","index","ListItemRemovedActionClassIdentifier","ListItemRemovedAction","FieldBase","computed","alteredValue","isBoolean","oldValid","isEqual","actionClass","isValEmpty","val","defaultIfTrue","Action","_a","paramValue","originalValue","otherParams","__objRest","orgVal","reactive","overrides","__spreadProps","__spreadValues","_b","_c","_d","Field","EmptyField","Group","fields","name","flds","isFieldAll","data","key","value","fieldName","fieldValue","isEmpty","newFields","List","itemTemplate","res","_e","removedItem","itm","idx"],"mappings":"6yCAGA,IAAKA,GAAAA,IAEHA,EAAAA,EAAA,SAAW,CAAX,EAAA,WACAA,EAAAA,EAAA,OAAS,CAAT,EAAA,SACAA,EAAAA,EAAA,UAAY,CAAZ,EAAA,YACAA,EAAAA,EAAA,KAAO,EAAP,EAAA,OALGA,IAAAA,GAAA,CAAA,CAAA,EAQQ,MAAAC,EAAqB,IAExBD,GAAV,CACS,SAASE,EAAWC,EAA2B,CACpD,OAAIA,EAAK,gBAAkB,WAAmB,EAC1CA,EAAK,gBAAkB,SAAiB,EACxCA,EAAK,gBAAkB,YAAoB,EACxCF,CAAA,CAJFD,EAAS,WAAAE,EAOT,SAASE,EAAQD,EAAwB,CAC9C,MAAME,EAAS,OAAOF,GAAS,SAAYA,EAAOH,EAAY,WAAWG,CAAc,EACvF,OAAI,OAAO,OAAOH,CAAW,EAAE,SAASK,CAAK,EAAUA,EAChDJ,CAAA,CAHFD,EAAS,QAAAI,EAMT,SAASE,EAAUH,EAAgC,CACxD,MAAMI,EAAS,OAAOJ,GAAS,SAAYA,EAAOH,EAAY,WAAWG,CAAc,EACvF,OAAO,OAAO,OAAOH,CAAW,EAAE,SAASO,CAAK,CAAA,CAF3CP,EAAS,UAAAM,CAAA,GAdRN,IAAAA,EAAA,CAAA,EAAA,EAoBV,OAAO,OAAOA,CAAW,EAEzB,MAAAQ,EAAeR,EClCR,MAAMS,CAAgB,CAC3B,IAAI,eAAgB,CAAS,MAAA,SAAA,CAE7B,IAAI,mBAAoB,CAAE,MAAO,CAAC,CAAA,CACpC,CAEO,MAAMC,UAA4BD,CAAgB,CAGvD,YAAYE,EAAc,CAClB,MAAA,EAHRC,EAAA,aAIE,KAAK,KAAOD,CAAA,CAGd,IAAI,eAAgB,CAAS,MAAA,SAAA,CAE7B,IAAI,mBAAoB,CAAS,MAAA,CAAE,MAAO,aAAc,CAAA,CAC1D,CCTA,MAA8BE,CAAwC,CAIpE,YAAYC,EAA4B,CAFvBF,EAAA,mBAGf,KAAK,WAAaE,CAAA,CAGd,QAAQC,EAAeC,KAAkCC,EAA6B,QAAAC,EAAA,sBAC1F,OAAO,KAAK,WAAWH,EAAOC,EAAM,GAAGC,CAAM,CAAA,GAEjD,CCQO,MAAME,UAAoC,KAAM,CAAC,CCxBxD,MAAqBC,UAAmB,GAAgC,CACtE,SAASC,EAAyB,CAC5B,GAAA,EAAEA,aAAkBR,GAChB,MAAA,IAAI,MAAM,qBAAqB,EAGvC,MAAMS,EAAaD,EAAO,gBACpBE,EAAkB,KAAK,IAAID,CAAU,IAAM,IAAM,MAE9C,SAAAE,EAAGT,KAAkBE,EAAe,CAC3C,OAAOI,EAAO,QAAQN,EAAOQ,EAAiB,GAAGN,CAAM,CAAA,CAEpD,KAAA,IAAIK,EAAYE,CAAE,CAAA,CAGzB,QACEC,EACAV,KACGE,EACE,CACC,MAAAS,EAAa,IAAID,EAAY,IAAM,CAAE,CAAA,EAAE,gBACvCE,EAAU,KAAK,IAAID,CAAU,EAC/B,GAAA,CACF,GAAIC,EAAS,OAAOA,EAAQZ,EAAO,GAAGE,CAAM,QACrCW,EAAO,CACV,GAAA,EAAEA,aAAiBT,GAAoC,MAAAS,CAAA,CAEtD,OAAA,IAAA,CAEX,CC5BA,MAAMC,EAAuC,OAAO,uBAAuB,EAEpE,MAAMC,UAA8BjB,CAAgB,CAEzD,YACEC,EAGA,CACA,MAAMA,CAAU,CAAA,CAIlB,IAAI,iBAAkB,CAAS,OAAAe,CAAA,CAEzB,QAAQd,EAAeC,EAA0Be,EAAmBC,EACrD,QAAAd,EAAA,sBACnB,OAAOe,EAAAH,EAAA,eAAM,gBAAN,KAAcf,EAAOC,EAAMe,EAAUC,CAAQ,CAAA,GAExD,CAEA,MAAME,EAAsC,OAAO,sBAAsB,EAElE,MAAMC,UAA6BtB,CAAgB,CAExD,YACEC,EAGA,CACA,MAAMA,CAAU,CAAA,CAIlB,IAAI,iBAAkB,CAAS,OAAAoB,CAAA,CAEzB,QACJnB,EACAC,EACAe,EACAC,EACe,QAAAd,EAAA,sBACf,OAAOe,EAAAE,EAAA,eAAM,gBAAN,KAAcpB,EAAOC,EAAMe,EAAUC,CAAQ,CAAA,GAExD,CC7CA,MAAMI,EAA+B,OAAO,eAAe,EAGpD,MAAMC,UAAsBxB,CAAgB,CAEjD,YACEC,EACA,CACA,MAAMA,CAAU,CAAA,CAIlB,IAAI,iBAAkB,CAAS,OAAAsB,CAAA,CAEzB,QAAQrB,EAAeC,EAA0BC,EAA2B,QAAAC,EAAA,sBAChF,OAAOe,EAAAI,EAAA,eAAM,gBAAN,KAActB,EAAOC,EAAMC,CAAM,CAAA,GAE5C,CCfA,MAAMqB,EAA0C,OAAO,0BAA0B,EAE1E,MAAMC,UAAiC1B,CAAgB,CAE5D,YACEC,EAGA,CACA,MAAMA,CAAU,CAAA,CAIlB,IAAI,iBAAkB,CAAS,OAAAwB,CAAA,CAEzB,QACJvB,EACAC,EACAe,EACAC,EACsB,QAAAd,EAAA,sBACtB,OAAOe,EAAAM,EAAA,eAAM,gBAAN,KAAcxB,EAAOC,EAAMe,EAAUC,CAAQ,CAAA,GAExD,CAEA,MAAMQ,EAAyC,OAAO,yBAAyB,EAExE,MAAMC,UAAgC5B,CAAgB,CAE3D,YACEC,EAGA,CACA,MAAMA,CAAU,CAAA,CAIlB,IAAI,iBAAkB,CAAS,OAAA0B,CAAA,CAEzB,QACJzB,EACAC,EACAe,EACAC,EACe,QAAAd,EAAA,sBACf,OAAOe,EAAAQ,EAAA,eAAM,gBAAN,KAAc1B,EAAOC,EAAMe,EAAUC,CAAQ,CAAA,GAExD,CClDA,MAAMU,EAAoC,OAAO,oBAAoB,EAG9D,MAAMC,UAA2B9B,CAAgB,CAEtD,YACEC,EAGA,CACA,MAAMA,CAAU,CAAA,CAIlB,IAAI,iBAAkB,CAAS,OAAA4B,CAAA,CAEzB,QACJ3B,EACAC,EACAe,EACAC,EACe,QAAAd,EAAA,sBACf,OAAOe,EAAAU,EAAA,eAAM,gBAAN,KAAc5B,EAAOC,EAAMe,EAAUC,CAAQ,CAAA,GAExD,CCxBA,MAAMY,EAAoC,OAAO,oBAAoB,EAG9D,MAAMC,UAAoChC,CAAgB,CAE/D,YACEC,EAGA,CACA,MAAMA,CAAU,CAAA,CAIlB,IAAI,iBAAkB,CAAS,OAAA8B,CAAA,CAEzB,QACJ7B,EACAC,EACAe,EACAC,EACe,QAAAd,EAAA,sBACf,OAAOe,EAAAY,EAAA,eAAM,gBAAN,KAAc9B,EAAOC,EAAMe,EAAUC,CAAQ,CAAA,GAExD,CCxBA,MAAMc,EAAqC,OAAO,qBAAqB,EAGhE,MAAMC,UAA4BlC,CAAgB,CAEvD,YACEC,EACA,CACA,MAAMA,CAAU,CAAA,CAIlB,IAAI,iBAAkB,CAAS,OAAAgC,CAAA,CAEzB,QAAQ/B,EAAeC,EAA0BgC,EAAWC,EAA8B,QAAA/B,EAAA,sBAC9F,OAAOe,EAAAc,EAAA,eAAM,gBAAN,KAAchC,EAAOC,EAAMgC,EAAMC,CAAK,CAAA,GAEjD,CCjBA,MAAMC,GAAuC,OAAO,uBAAuB,EAGpE,MAAMC,UAA8BtC,CAAgB,CAEzD,YACEC,EACA,CACA,MAAMA,CAAU,CAAA,CAIlB,IAAI,iBAAkB,CAAS,OAAAoC,EAAA,CAEzB,QAAQnC,EAAeC,EAA0BgC,EAAWC,EAA8B,QAAA/B,EAAA,sBAC9F,OAAOe,EAAAkB,EAAA,eAAM,gBAAN,KAAcpC,EAAOC,EAAMgC,EAAMC,CAAK,CAAA,GAEjD,CCHO,MAAeG,CAAwC,CAAvD,cAGWxC,EAAA,qBAAgByC,EAAA,SAAS,IAAM,KAAK,KAAK,GAMzDzC,EAAA,aAAiB,IAEjBA,EAAA,cAA4B,CAAC,GAMnBA,EAAA,eAAsB,IAAIQ,GAG5BR,EAAA,mBAA2BZ,EAAY,MAmBvCY,EAAA,gBAAoB,IAjB5B,IAAI,YAA0B,CAAE,OAAO,KAAK,WAAA,CAE5C,IAAI,WAAWmB,EAAuB,CACpC,MAAMC,EAAW,KAAK,YAClB,GAAA,CAAChC,EAAY,UAAU+B,CAAQ,EAAS,MAAA,IAAI,MAAM,2CAA2C,EAC5F,KAAA,YAAc/B,EAAY,QAAQ+B,CAAQ,EAC/C,KAAK,QAAQ,QAAQU,EAAyB,KAAM,KAAK,YAAaT,CAAQ,CAAA,CAG1E,cAAcD,EAAuB,QAAAb,EAAA,sBACzC,MAAMc,EAAW,KAAK,YAChBsB,EAAe,MAAM,KAAK,QAAQ,QAAQf,EAA0B,KAAMR,EAAUC,CAAQ,EAC9F,GAAA,CAAChC,EAAY,UAAUsD,GAAA,KAAAA,EAAgBvB,CAAQ,EAAG,MAAM,IAAI,MAAM,2CAA2C,EACjH,KAAK,YAAc/B,EAAY,QAAQsD,GAAA,KAAAA,EAAgBvB,CAAQ,EAC/D,KAAK,QAAQ,QAAQU,EAAyB,KAAM,KAAK,YAAaT,CAAQ,CAAA,GAKhF,IAAI,SAAmB,CAAE,OAAO,KAAK,QAAA,CAErC,IAAI,QAAQD,EAAmB,CAC7B,MAAMC,EAAW,KAAK,SACtB,GAAI,CAACuB,EAAU,UAAAxB,CAAQ,EAAS,MAAA,IAAI,MAAM,+BAA+B,EACzE,KAAK,SAAWA,EAChB,KAAK,QAAQ,QAAQI,EAAsB,KAAM,KAAK,SAAUH,CAAQ,CAAA,CAGpE,WAAWD,EAAmB,QAAAb,EAAA,sBAClC,MAAMc,EAAW,KAAK,SAChBsB,EAAe,MAAM,KAAK,QAAQ,QAAQxB,EAAuB,KAAMC,EAAUC,CAAQ,EAC3F,GAAA,CAACuB,YAAUD,GAAA,KAAAA,EAAgBvB,CAAQ,EAAS,MAAA,IAAI,MAAM,+BAA+B,EACzF,KAAK,SAAWuB,GAAA,KAAAA,EAAgBvB,EAChC,KAAK,QAAQ,QAAQI,EAAsB,KAAM,KAAK,SAAUH,CAAQ,CAAA,GAG1E,UAAW,CACT,MAAMwB,EAAW,KAAK,MACjB,KAAA,MAAQ,KAAK,OAAO,SAAW,EAChC,KAAK,QAAUA,GAAe,KAAA,QAAQ,QAAQb,EAAoB,KAAM,KAAK,MAAOa,CAAQ,CAAA,CAGlG,IAAI,WAAiB,CACnB,OAAO,KAAK,KAAA,CAGd,IAAI,WAAsB,CACxB,MAAO,CAACC,EAAAA,QAAQ,KAAK,MAAO,KAAK,aAAa,CAAA,CAGhD,eAAepC,EAA+B,CACvC,YAAA,QAAQ,SAASA,CAAyB,EACxC,IAAA,CAGT,cACEqC,KACGzC,EACE,CACL,OAAO,KAAK,QAAQ,QAAQyC,EAAoB,KAAM,GAAGzC,CAAM,CAAA,CAEnE,CC1FA,SAAS0C,EAAWC,EAAkBC,EAAyC,CAC7E,OAAID,GAAA,YAAAA,EAAK,QAAS,OAAQA,GAAA,YAAAA,EAAK,OAAQ,KAAaC,EAC7CD,CACT,CAEO,MAAME,UAAeV,CAAU,CAG1B,YAAYnC,EAAuC,CACrD,MAAA,EAHSL,EAAA,eAIX,GAAAK,EAAQ,CACV,MAA6D8C,EAAA9C,EAArD,OAAO+C,EAAY,cAAAC,GAAkCF,EAAhBG,EAAAC,EAAgBJ,EAAhB,CAArC,QAAmB,kBACpB,OAAA,OAAO,KAAMG,CAAW,EAC/B,MAAMN,EAAM,CAAE,MAAOI,GAAA,YAAAA,EAAY,MAAO,KAAMA,GAAA,YAAAA,EAAY,IAAK,EACzDI,EAAS,OAAO,OAAO,CAAE,MAAOH,GAAA,YAAAA,EAAe,MAAO,KAAMA,GAAA,YAAAA,EAAe,KAAqB,EACtG,KAAK,OAASI,EAAA,SAASV,EAAWC,EAAKQ,CAAM,CAAC,EACzC,KAAA,cAAgBT,EAAWS,EAAQR,CAAG,CAAA,MAE3C,KAAK,OAASS,WAAS,CAAE,MAAO,OAAW,KAAM,OAAW,CAC9D,CAGF,OAAO,OAAOpD,EAAyD,CACrE,OAAOoD,WAAS,IAAIP,EAAO7C,CAAM,CAAC,CAAA,CAGpC,IAAI,OAAqB,CAAE,OAAO,KAAK,MAAA,CAEvC,IAAI,MAAMc,EAAuB,CAC3B,GAAA,CAAC,KAAK,QAAS,OACnB,MAAMC,EAAW,KAAK,OACjB,KAAA,OAAO,KAAOD,GAAA,YAAAA,EAAU,KACxB,KAAA,OAAO,MAAQA,GAAA,YAAAA,EAAU,MAC9B,KAAK,QAAQ,QAAQc,EAAoB,KAAMd,EAAUC,CAAQ,EAC7D,KAAK,QAAa,KAAA,OAAO,mBAAmB,EAChD,KAAK,SAAS,CAAA,CAGhB,IAAI,MAA2B,CAC7B,OAAO,KAAK,MAAM,IAAA,CAGpB,IAAI,KAAKD,EAA8B,CACrC,KAAK,MAAQ,CAAE,MAAO,KAAK,MAAO,KAAMA,CAAS,CAAA,CAGnD,IAAI,OAA4B,CAC9B,OAAO,KAAK,MAAM,KAAA,CAGpB,IAAI,MAAMA,EAA8B,CACtC,KAAK,MAAQ,CAAE,MAAOA,EAAU,KAAM,KAAK,MAAM,IAAK,CAAA,CAGxD,MAAMuC,EAA+C,aACnD,OAAO,IAAIR,EAAOS,EAAAC,EAAA,CAChB,OAAOT,EAAAO,GAAA,YAAAA,EAAW,QAAX,KAAAP,EAAoB,KAAK,OAC5BO,GAAa,kBAAmBA,EAAY,CAAE,cAAeA,EAAU,aAAc,EAAI,CAAE,GAF/E,CAGhB,OAAQ,CAAC,IAAIG,EAAAH,GAAA,YAAAA,EAAW,SAAX,KAAAG,EAAqB,KAAK,MAAO,EAC9C,SAASC,EAAAJ,GAAA,YAAAA,EAAW,UAAX,KAAAI,EAAsB,KAAK,QACpC,YAAYC,EAAAL,GAAA,YAAAA,EAAW,aAAX,KAAAK,EAAyB,KAAK,UAAA,EAC3C,CAAA,CAGH,QAAQ1D,EAAa,CACnB,KAAK,QAAQ,QAAQoB,EAAe,KAAMpB,CAAM,CAAA,CAEpD,CCvEO,MAAM2D,UAAuBxB,CAAU,CAGlC,YAAYnC,EAA6B,CAC3C,MAAA,EAHAL,EAAA,eAIF,GAAAK,EAAQ,CACV,MAA8C8C,EAAA9C,EAAtC,OAAO+C,GAA+BD,EAAhBG,EAAAC,EAAgBJ,EAAhB,CAAtB,UACD,OAAA,OAAO,KAAMG,CAAW,EAC1B,KAAA,OAASF,GAAA,KAAAA,EAAc,KAAK,cAC7B,KAAK,gBAAkB,SAAW,KAAK,cAAgB,KAAK,OAAA,CAClE,CAGF,OAAO,OAAgB/C,EAAiD,CACtE,OAAOoD,WAAS,IAAIO,EAAM3D,CAAM,CAAC,CAAA,CAGnC,IAAI,OAAQ,CAAE,OAAO,KAAK,MAAA,CAE1B,IAAI,MAAMc,EAAa,CACjB,GAAA,CAAC,KAAK,QAAS,OACnB,MAAMC,EAAW,KAAK,OACtB,KAAK,OAASD,EACd,KAAK,QAAQ,QAAQc,EAAoB,KAAMd,EAAUC,CAAQ,EAC7D,KAAK,QAAa,KAAA,OAAO,mBAAmB,EAChD,KAAK,SAAS,CAAA,CAGhB,MAAMsC,EAAoD,aACxD,OAAOM,EAAM,OAAUL,EAAAC,EAAA,CACrB,OAAOT,EAAAO,GAAA,YAAAA,EAAW,QAAX,KAAAP,EAAoB,KAAK,OAC5BO,GAAa,kBAAmBA,EAAY,CAAE,cAAeA,EAAU,aAAc,EAAI,CAAE,GAF1E,CAGrB,OAAQ,CAAC,IAAIG,EAAAH,GAAA,YAAAA,EAAW,SAAX,KAAAG,EAAqB,KAAK,MAAO,EAC9C,SAASC,EAAAJ,GAAA,YAAAA,EAAW,UAAX,KAAAI,EAAsB,KAAK,QACpC,YAAYC,EAAAL,GAAA,YAAAA,EAAW,aAAX,KAAAK,EAAyB,KAAK,UAAA,EAC3C,CAAA,CAEL,CAIa,MAAAE,EAAaD,EAAM,OAAO,CAAE,MAAO,aAAc,EAC3D,eAAe,IAAI/B,EAClB,IAAY3B,EAAA,sBACV,QAAQ,KAAK,iDAAiD,CAAA,EAElE,CAAC,EC5CI,MAAM4D,UAAyE1B,CAAU,CAO9F,YAAY2B,EAAW9D,EAA0B,CACzC,MAAA,EAPSL,EAAA,gBAETA,EAAA,cAAqC,MAErCA,EAAA,kCAAsC,IAKxC,IAACkE,EAAM,cAAcC,CAAM,EAAS,MAAA,IAAI,MAAM,gCAAgC,EAYlF,GAXA,KAAK,QAAU,CAAC,EACT,OAAA,QAAQA,CAAM,EAAE,QAAQ,CAAC,CAACC,EAAMjE,CAAK,IAAM,CACzC,OAAA,eAAeA,EAAO,SAAU,CAAE,IAAK,IAAM,KAAM,aAAc,GAAO,WAAY,EAAA,CAAO,EAC3F,OAAA,eAAeA,EAAO,YAAa,CAAE,IAAK,IAAMiE,EAAM,aAAc,GAAO,WAAY,EAAA,CAAO,EAC9F,OAAA,eACL,KAAK,QACLA,EACA,CAAE,KAAM,CAAS,OAAAjE,CAAA,EAAU,aAAc,GAAO,WAAY,EAAK,CACnE,CAAA,CACD,EAEGE,EAAQ,CACV,MAA8C8C,EAAA9C,EAAtC,OAAO+C,GAA+BD,EAAhBG,EAAAC,EAAgBJ,EAAhB,CAAtB,UACD,OAAA,OAAO,KAAMG,CAAW,EAC1B,KAAA,MAAQF,GAAA,KAAAA,EAAc,KAAK,aAAA,CAG9B,KAAK,gBAAkB,SAAW,KAAK,cAAgB,KAAK,MAAA,CAKlE,OAAe,cAAciB,EAAkD,CAC7E,SAASC,EAAWnE,EAAoC,CACtD,OAAOA,aAAiBqC,CAAA,CAG1B,OAAO,OAAO6B,GAAS,UACrBA,IAAS,MACT,OAAO,QAAQA,CAAI,EAAE,MAAM,CAAC,CAAG,CAAAlE,CAAK,IAAMmE,EAAWnE,CAAK,CAAC,CAAA,CAG/D,OAAO,mBAAmBoE,EAAyC,CACjE,GAAIA,aAAgB/B,EACZ,MAAA,IAAI,MAAM,6DAA6D,EAE/E,OAAO,IAAI0B,EACTK,GAAQ,KACN,GACA,OAAO,YACL,OAAO,QAAQA,CAAI,EAAE,IAAI,CAAC,CAACC,EAAKC,CAAK,IAAM,CAACD,EAAKR,EAAM,OAAO,CAAE,MAAAS,CAAO,CAAA,CAAC,CAAC,CAAA,CAE/E,CAAA,CAGF,MAAMC,EAAkC,OAC/B,OAAAvB,EAAA,KAAK,QAAQuB,CAAS,IAAtB,KAAAvB,EAA2B,IAAA,CAGpC,IAAI,QAAY,CACd,OAAO,KAAK,OAAA,CAGd,IAAI,OAAoC,CACtC,MAAMsB,EAA6B,CAAC,EAC7B,cAAA,QAAQ,KAAK,OAAO,EAAE,QAAQ,CAAC,CAACL,EAAMjE,CAAK,IAAM,CACtD,MAAMwE,EAAaxE,EAAM,OACrBA,EAAM,SAGCA,aAAiB+D,GAAS,CAACU,EAAA,QAAQD,CAAU,KAEtDF,EAAML,CAAI,EAAIO,EAChB,CACD,EACMC,UAAQH,CAAK,EAAI,KAAOA,CAAA,CAGjC,IAAI,MAAMtD,EAAsC,CAC9C,KAAK,2BAA6B,GAC9B,GAAA,CACK,OAAA,QAAQ,KAAK,OAAO,EAAE,QAAQ,CAAC,CAACiD,EAAMjE,CAAK,IAAM,EAClDgB,GAAY,MAAQiD,KAAQjD,KAC9BhB,EAAM,MAAQgB,GAAY,KAAO,KAAOA,EAASiD,CAAI,EACvD,CACD,CAAA,QACD,CACA,KAAK,2BAA6B,EAAA,CAEpC,KAAK,mBAAmB,CAAA,CAG1B,IAAI,WAAiC,CACnC,MAAMK,EAA6B,CAAC,EAC7B,cAAA,QAAQ,KAAK,OAAO,EAAE,QAAQ,CAAC,CAACL,EAAMjE,CAAK,IAAM,CAAQsE,EAAAL,CAAI,EAAIjE,EAAM,SAAA,CAAY,EACnFsE,CAAA,CAGT,oBAAqB,CACnB,GAAI,KAAK,2BAA4B,OACrC,MAAMtD,EAAW,KAAK,MACtB,GAAI,CAAC0B,EAAAA,QAAQ1B,EAAU,KAAK,MAAM,EAAG,CACnC,MAAMC,EAAW,KAAK,OACtB,KAAK,OAASD,EACd,KAAK,QAAQ,QAAQc,EAAoB,KAAMd,EAAUC,CAAQ,EAC7D,KAAK,QAAa,KAAA,OAAO,mBAAmB,CAAA,CAClD,CAGF,MAAMsC,EAAuC,aAC3C,MAAMmB,EAAY,CAAC,EACZ,cAAA,QAAQ,KAAK,OAAO,EAAE,QAAQ,CAAC,CAACT,EAAMjE,EAAK,IAAM,CAC5C0E,EAAAT,CAAe,EAAIjE,GAAM,MAAM,CAAA,CAC1C,EAEM,IAAI+D,EAAMW,EAAWlB,EAAAC,EAAA,CAC1B,OAAOT,EAAAO,GAAA,YAAAA,EAAW,QAAX,KAAAP,EAAoB,KAAK,OAC5BO,GAAa,kBAAmBA,EAAY,CAAE,cAAeA,EAAU,aAAc,EAAI,CAAE,GAFrE,CAG1B,OAAQ,CAAC,IAAIG,EAAAH,GAAA,YAAAA,EAAW,SAAX,KAAAG,EAAqB,CAAA,CAAG,EACrC,SAASC,EAAAJ,GAAA,YAAAA,EAAW,UAAX,KAAAI,EAAsB,KAAK,QACpC,YAAYC,EAAAL,GAAA,YAAAA,EAAW,aAAX,KAAAK,EAAyB,KAAK,UAAA,EAC3C,CAAA,CAEL,CC9HO,MAAMe,UAAwEtC,CAAU,CAO7F,YAAYuC,EAAyB1E,EAA0B,CACvD,MAAA,EAPAL,EAAA,cAA4B,MAE5BA,EAAA,sBAEAA,EAAA,uBAKN,QAAK,cAAgB+E,EAEjB1E,EAAQ,CACV,MAA8C8C,EAAA9C,EAAtC,OAAO+C,GAA+BD,EAAhBG,EAAAC,EAAgBJ,EAAhB,CAAtB,UACD,OAAA,OAAO,KAAMG,CAAW,EAE3BF,GAAiB,KAAA,SAASA,CAAU,CAAA,CAGtC,KAAK,gBAAkB,SAAW,KAAK,cAAgB,KAAK,OAChE,KAAK,eAAiB,KAAK,KAAA,CAIrB,oBAAoBhB,EAAsB,CAC5C,IAAA4C,EAEA,OAAA5C,aAAgB8B,EAAac,EAAA5C,EAExB,KAAK,cAAqB4C,EAAA,KAAK,cAAc,MAAM,CAAE,MAAO5C,EAAM,EACtE4C,EAAMd,EAAM,mBAAmB9B,CAAI,EAEjC,OAAA,eAAe4C,EAAK,SAAU,CAAE,IAAK,IAAM,KAAM,aAAc,GAAO,WAAY,EAAA,CAAO,EAEzFA,CAAA,CAGD,SAAS7D,EAAiB,CAC5B,MAAM,QAAQA,CAAQ,IACnB,KAAA,OAASA,EAAS,IAAKiB,GAAc,KAAK,oBAAoBA,CAAI,CAAC,EAC1E,CAGF,IAAI,OAAsC,OACxC,MAAMqC,GAAQtB,EAAA,KAAK,SAAL,YAAAA,EAAa,IAAKf,GAASA,EAAK,OACvC,OAAAwC,UAAQH,CAAK,EAAI,KAA+BA,CAAA,CAGzD,IAAI,MAAMtD,EAAiC,CACzC,MAAMC,EAAW,KAAK,MACtB,KAAK,SAASD,CAAQ,EACtB,KAAK,QAAQ,QAAQc,EAAoB,KAAM,KAAK,MAAOb,CAAQ,EAC/D,KAAK,QAAa,KAAA,OAAO,mBAAmB,CAAA,CAGlD,MAAMsC,EAAsC,eAC1C,OAAO,IAAIoB,GAAK3B,EAAA,KAAK,gBAAL,YAAAA,EAAoB,QAASQ,EAAAC,EAAA,CAC3C,MAAO,CAAC,IAAIC,EAAAH,GAAA,YAAAA,EAAW,QAAX,KAAAG,EAAoB,KAAK,KAAM,GACvCH,GAAa,kBAAmBA,EAAY,CAAE,cAAeA,EAAU,aAAc,EAAI,CAAE,GAFpD,CAG3C,OAAQ,CAAC,IAAII,EAAAJ,GAAA,YAAAA,EAAW,SAAX,KAAAI,EAAqB,CAAA,CAAG,EACrC,SAASC,EAAAL,GAAA,YAAAA,EAAW,UAAX,KAAAK,EAAsB,KAAK,QACpC,YAAYkB,EAAAvB,GAAA,YAAAA,EAAW,aAAX,KAAAuB,EAAyB,KAAK,UAAA,EAC3C,CAAA,CAGH,oBAAqB,CACnB,MAAM9D,EAAW,KAAK,MACtB,GAAI,CAAC0B,EAAAA,QAAQ1B,EAAU,KAAK,cAAc,EAAG,CAC3C,MAAMC,EAAW,KAAK,eACtB,KAAK,eAAiBD,EACtB,KAAK,QAAQ,QAAQc,EAAoB,KAAMd,EAAUC,CAAQ,EAC7D,KAAK,QAAa,KAAA,OAAO,mBAAmB,CAAA,CAClD,CAGF,IAAIiB,EAAqC,CACvC,OAAO,KAAK,QAAU,KAAO,KAAK,OAAOA,CAAK,EAAI,MAAA,CAGpD,KAAKD,EAAmB,SACtB,OAAO,KAAK,OAAOA,GAAMyB,GAAAV,EAAA,KAAK,SAAL,YAAAA,EAAa,SAAb,KAAAU,EAAuB,CAAC,EAAI,CAAA,CAGvD,KAA4B,SAC1B,OAAO,KAAK,SAAQA,GAAAV,EAAA,KAAK,SAAL,YAAAA,EAAa,SAAb,KAAAU,EAAuB,GAAK,CAAC,CAAA,CAGnD,OAAOxB,EAAqC,OACtC,GAAA,KAAK,QAAU,MAAQA,EAAQ,GAAK,KAAK,OAAO,QAAUA,EAAc,OAE5E,IAAI6C,GAAc/B,EAAA,KAAK,OAAO,OAAOd,EAAO,CAAC,IAA3B,YAAAc,EAA+B,GAEjD,OAAI+B,IAEFA,EAAcA,EAAY,MAAM,EAGhC,KAAK,QAAQ,QAAQ3C,EAAuB,KAAM2C,EAAa7C,CAAK,EACpE,KAAK,mBAAmB,GAGnB6C,CAAA,CAGT,OAAO9C,EAAWC,EAAuB,CAEhC,IADH,KAAK,QAAU,OAAM,KAAK,OAAS,CAAC,GACjC,KAAK,OAAO,OAASA,GAAO,CAE3B8C,MAAAA,EAAM,KAAK,oBAAoB,IAAI,EACnCC,EAAM,KAAK,OAAO,KAAKD,CAAG,EAChC,KAAK,QAAQ,QAAQhD,EAAqB,KAAMgD,EAAKC,CAAG,CAAA,CAEpD,MAAAD,EAAM,KAAK,oBAAoB/C,CAAI,EACzC,YAAK,OAAO,OAAOC,EAAO,EAAG8C,CAAG,EAEhC,KAAK,QAAQ,QAAQhD,EAAqB,KAAMgD,EAAK9C,CAAK,EAC1D,KAAK,mBAAmB,EAEjBA,CAAA,CAGT,OAAQ,CACN,KAAK,OAAS,KACd,KAAK,mBAAmB,CAAA,CAE5B"}
1
+ {"version":3,"file":"dynamicforms-vue-forms.umd.cjs","sources":["../src/display-mode.ts","../src/validation-error.ts","../src/actions/field-action-base.ts","../src/field.interface.ts","../src/actions/actions-map.ts","../src/actions/enabled-actions.ts","../src/actions/execute-action.ts","../src/actions/visibility-actions.ts","../src/actions/valid-changed-action.ts","../src/actions/value-changed-action.ts","../src/actions/list-item-added-action.ts","../src/actions/list-item-removed-action.ts","../src/field-base.ts","../src/action.ts","../src/field.ts","../src/group.ts","../src/list.ts"],"sourcesContent":["/**\n * DisplayMode enum provides an enumeration for supported ways of rendering a particular object in the DOM\n */\nenum DisplayMode {\n // This enum is actually declared in dynamicforms.mixins.field_render.py\n SUPPRESS = 1, // Field will be entirely suppressed. it will not render (not even to JSON) and will not parse for PUT\n HIDDEN = 5, // Field will render as <input type=\"hidden\"> or <tr data-field_name>\n INVISIBLE = 8, // Field will render completely, but with display: none. Equal to setting its style = {display: none}\n FULL = 10, // Field will render completely\n}\n\nexport const defaultDisplayMode = DisplayMode.FULL;\n\nnamespace DisplayMode {\n export function fromString(mode: string): DisplayMode {\n if (mode.toUpperCase() === 'SUPPRESS') return DisplayMode.SUPPRESS;\n if (mode.toUpperCase() === 'HIDDEN') return DisplayMode.HIDDEN;\n if (mode.toUpperCase() === 'INVISIBLE') return DisplayMode.INVISIBLE;\n return defaultDisplayMode;\n }\n\n export function fromAny(mode: any): DisplayMode {\n const input = (typeof mode === 'number') ? mode : DisplayMode.fromString(mode as string);\n if (Object.values(DisplayMode).includes(input)) return input;\n return defaultDisplayMode;\n }\n\n export function isDefined(mode: number | string): boolean {\n const check = (typeof mode === 'number') ? mode : DisplayMode.fromString(mode as string);\n return Object.values(DisplayMode).includes(check);\n }\n}\n\nObject.freeze(DisplayMode);\n\nexport default DisplayMode;\n","/* eslint-disable max-classes-per-file */\nexport class ValidationError {\n get componentName() { return 'Comment'; } // eslint-disable-line class-methods-use-this\n\n get componentBindings() { return {}; } // eslint-disable-line class-methods-use-this\n}\n\nexport class ValidationErrorText extends ValidationError {\n text: string;\n\n constructor(text: string) {\n super();\n this.text = text;\n }\n\n get componentName() { return 'v-sheet'; } // eslint-disable-line class-methods-use-this\n\n get componentBindings() { return { class: 'text-body-1' }; } // eslint-disable-line class-methods-use-this\n}\n\n/** ********************************************************************************************************************\n *\n at some point there will be classes here that will support links or action buttons or something even more complex\n *\n ******************************************************************************************************************** */\n","// eslint-disable-next-line max-classes-per-file\nimport {\n FieldActionExecute,\n type IField,\n type IFieldAction,\n} from '@/field.interface';\n\ntype ActionExecutor = (field: IField, supr: FieldActionExecute, ...params: any[]) => Promise<any>;\n\nexport default abstract class FieldActionBase implements IFieldAction {\n public abstract get classIdentifier(): symbol;\n private readonly executorFn: ActionExecutor;\n\n constructor(executorFn: ActionExecutor) {\n this.executorFn = executorFn;\n }\n\n async execute(field: IField, supr: IFieldAction['execute'], ...params: any[]): Promise<any> {\n return this.executorFn(field, supr, ...params);\n }\n}\n","import { ComputedRef } from 'vue';\n\nimport type DisplayMode from './display-mode';\nimport { type ValidationError } from './validation-error';\n\nexport interface IField<T = any> {\n value: T;\n reactiveValue: ComputedRef<T>;\n fullValue: T;\n originalValue: T;\n valid: boolean;\n errors: ValidationError[];\n enabled: boolean;\n visibility: DisplayMode;\n\n parent?: any; // Group when member of a Group, parent will specify that group\n fieldName?: string; // when member of a Group, fieldName specifies the name of this field\n\n clone(overrides?: Partial<IField<T>>): IField<T>;\n // events\n registerAction(action: IFieldAction<T>): this;\n triggerAction<T2 extends IFieldAction<T>>(actionClass: abstract new (...args: any[]) => T2, ...params: any[]): any;\n\n // API\n validate(): void;\n isChanged: boolean;\n}\n\nexport class AbortEventHandlingException extends Error {}\n\nexport type FieldActionExecute<T = any> = (field: IField<T>, ...params: any[]) => Promise<any>;\nexport interface IFieldAction<T = any> {\n execute(field: IField<T>, supr: FieldActionExecute<T>, ...params: any[]): any;\n}\n","import { type FieldActionExecute, type IField, AbortEventHandlingException } from '../field.interface';\n\nimport FieldActionBase from './field-action-base';\n\nexport default class ActionsMap extends Map<symbol, FieldActionExecute> {\n register(action: FieldActionBase) {\n if (!(action instanceof FieldActionBase)) {\n throw new Error('Invalid action type');\n }\n\n const actionType = action.classIdentifier;\n const existingExecute = this.get(actionType) || (() => null);\n\n function ex(field: IField, ...params: any[]) {\n return action.execute(field, existingExecute, ...params);\n }\n this.set(actionType, ex);\n }\n\n trigger<T extends FieldActionBase>(\n ActionClass: new (...args: any[]) => T,\n field: IField,\n ...params: any[]\n ): any {\n const identifier = new ActionClass(() => {}).classIdentifier;\n const execute = this.get(identifier);\n try {\n if (execute) return execute(field, ...params);\n } catch (error) {\n if (!(error instanceof AbortEventHandlingException)) throw error;\n }\n return null;\n }\n}\n","// eslint-disable-next-line max-classes-per-file\nimport FieldActionBase from './field-action-base';\n\nimport { FieldActionExecute, type IField } from '@/field.interface';\n\nconst EnabledChangingActionClassIdentifier = Symbol('EnabledChangingAction');\n\nexport class EnabledChangingAction extends FieldActionBase {\n // eslint-disable-next-line @typescript-eslint/no-useless-constructor\n constructor(\n executorFn: (\n field: IField, supr: FieldActionExecute, newValue: boolean, oldValue: boolean\n ) => Promise<boolean>,\n ) {\n super(executorFn);\n }\n\n // eslint-disable-next-line class-methods-use-this\n get classIdentifier() { return EnabledChangingActionClassIdentifier; }\n\n async execute(field: IField, supr: FieldActionExecute, newValue: boolean, oldValue: boolean)\n : Promise<boolean> {\n return super.execute(field, supr, newValue, oldValue);\n }\n}\n\nconst EnabledChangedActionClassIdentifier = Symbol('EnabledChangedAction');\n\nexport class EnabledChangedAction extends FieldActionBase {\n // eslint-disable-next-line @typescript-eslint/no-useless-constructor\n constructor(\n executorFn: (\n field: IField, supr: FieldActionExecute, newValue: boolean, oldValue: boolean\n ) => Promise<void>,\n ) {\n super(executorFn);\n }\n\n // eslint-disable-next-line class-methods-use-this\n get classIdentifier() { return EnabledChangedActionClassIdentifier; }\n\n async execute(\n field: IField,\n supr: FieldActionExecute,\n newValue: boolean,\n oldValue: boolean,\n ): Promise<void> {\n return super.execute(field, supr, newValue, oldValue);\n }\n}\n","import FieldActionBase from './field-action-base';\n\nimport { FieldActionExecute, type IField } from '@/field.interface';\n\nconst ExecuteActionClassIdentifier = Symbol('ExecuteAction');\n\n// eslint-disable-next-line import/prefer-default-export\nexport class ExecuteAction extends FieldActionBase {\n // eslint-disable-next-line @typescript-eslint/no-useless-constructor\n constructor(\n executorFn: (field: IField, supr: FieldActionExecute, params: any) => Promise<any>,\n ) {\n super(executorFn);\n }\n\n // eslint-disable-next-line class-methods-use-this\n get classIdentifier() { return ExecuteActionClassIdentifier; }\n\n async execute(field: IField, supr: FieldActionExecute, params: any): Promise<any> {\n return super.execute(field, supr, params);\n }\n}\n","// eslint-disable-next-line max-classes-per-file\nimport FieldActionBase from './field-action-base';\n\nimport DisplayMode from '@/display-mode';\nimport { FieldActionExecute, type IField } from '@/field.interface';\n\nconst VisibilityChangingActionClassIdentifier = Symbol('VisibilityChangingAction');\n\nexport class VisibilityChangingAction extends FieldActionBase {\n // eslint-disable-next-line @typescript-eslint/no-useless-constructor\n constructor(\n executorFn: (\n field: IField, supr: FieldActionExecute, newValue: DisplayMode, oldValue: DisplayMode\n ) => Promise<DisplayMode>,\n ) {\n super(executorFn);\n }\n\n // eslint-disable-next-line class-methods-use-this\n get classIdentifier() { return VisibilityChangingActionClassIdentifier; }\n\n async execute(\n field: IField,\n supr: FieldActionExecute,\n newValue: DisplayMode,\n oldValue: DisplayMode,\n ): Promise<DisplayMode> {\n return super.execute(field, supr, newValue, oldValue);\n }\n}\n\nconst VisibilityChangedActionClassIdentifier = Symbol('VisibilityChangedAction');\n\nexport class VisibilityChangedAction extends FieldActionBase {\n // eslint-disable-next-line @typescript-eslint/no-useless-constructor\n constructor(\n executorFn: (\n field: IField, supr: FieldActionExecute, newValue: DisplayMode, oldValue: DisplayMode,\n ) => Promise<void>,\n ) {\n super(executorFn);\n }\n\n // eslint-disable-next-line class-methods-use-this\n get classIdentifier() { return VisibilityChangedActionClassIdentifier; }\n\n async execute(\n field: IField,\n supr: FieldActionExecute,\n newValue: DisplayMode,\n oldValue: DisplayMode,\n ): Promise<void> {\n return super.execute(field, supr, newValue, oldValue);\n }\n}\n","import FieldActionBase from './field-action-base';\n\nimport { FieldActionExecute, type IField } from '@/field.interface';\n\nconst ValidChangedActionClassIdentifier = Symbol('ValidChangedAction');\n\n// eslint-disable-next-line import/prefer-default-export\nexport class ValidChangedAction extends FieldActionBase {\n // eslint-disable-next-line @typescript-eslint/no-useless-constructor\n constructor(\n executorFn: (\n field: IField, supr: FieldActionExecute, newValue: boolean, oldValue: boolean,\n ) => Promise<void>,\n ) {\n super(executorFn);\n }\n\n // eslint-disable-next-line class-methods-use-this\n get classIdentifier() { return ValidChangedActionClassIdentifier; }\n\n async execute(\n field: IField,\n supr: FieldActionExecute,\n newValue: boolean,\n oldValue: boolean,\n ): Promise<void> {\n return super.execute(field, supr, newValue, oldValue);\n }\n}\n","import FieldActionBase from './field-action-base';\n\nimport { FieldActionExecute, type IField } from '@/field.interface';\n\nconst ValueChangedActionClassIdentifier = Symbol('ValueChangedAction');\n\n// eslint-disable-next-line import/prefer-default-export\nexport class ValueChangedAction<T = any> extends FieldActionBase {\n // eslint-disable-next-line @typescript-eslint/no-useless-constructor\n constructor(\n executorFn: (\n field: IField<T>, supr: FieldActionExecute<T>, newValue: T, oldValue: T,\n ) => Promise<void>,\n ) {\n super(executorFn);\n }\n\n // eslint-disable-next-line class-methods-use-this\n get classIdentifier() { return ValueChangedActionClassIdentifier; }\n\n async execute(\n field: IField<T>,\n supr: FieldActionExecute<T>,\n newValue: T,\n oldValue: T,\n ): Promise<void> {\n return super.execute(field, supr, newValue, oldValue);\n }\n}\n","import FieldActionBase from './field-action-base';\n\nimport { FieldActionExecute, type IField } from '@/field.interface';\n\nconst ListItemAddedActionClassIdentifier = Symbol('ListItemAddedAction');\n\n// eslint-disable-next-line import/prefer-default-export\nexport class ListItemAddedAction extends FieldActionBase {\n // eslint-disable-next-line @typescript-eslint/no-useless-constructor\n constructor(\n executorFn: (field: IField, supr: FieldActionExecute, item: any, index: number) => Promise<void>,\n ) {\n super(executorFn);\n }\n\n // eslint-disable-next-line class-methods-use-this\n get classIdentifier() { return ListItemAddedActionClassIdentifier; }\n\n async execute(field: IField, supr: FieldActionExecute, item: any, index: number): Promise<void> {\n return super.execute(field, supr, item, index);\n }\n}\n","import FieldActionBase from './field-action-base';\n\nimport { FieldActionExecute, type IField } from '@/field.interface';\n\nconst ListItemRemovedActionClassIdentifier = Symbol('ListItemRemovedAction');\n\n// eslint-disable-next-line import/prefer-default-export\nexport class ListItemRemovedAction extends FieldActionBase {\n // eslint-disable-next-line @typescript-eslint/no-useless-constructor\n constructor(\n executorFn: (field: IField, supr: FieldActionExecute, item: any, index: number) => Promise<void>,\n ) {\n super(executorFn);\n }\n\n // eslint-disable-next-line class-methods-use-this\n get classIdentifier() { return ListItemRemovedActionClassIdentifier; }\n\n async execute(field: IField, supr: FieldActionExecute, item: any, index: number): Promise<void> {\n return super.execute(field, supr, item, index);\n }\n}\n","import { isBoolean, isEqual } from 'lodash-es';\nimport { computed } from 'vue';\n\nimport {\n ActionsMap,\n EnabledChangedAction,\n EnabledChangingAction,\n ValidChangedAction,\n VisibilityChangedAction,\n VisibilityChangingAction,\n} from './actions';\nimport FieldActionBase from './actions/field-action-base';\nimport DisplayMode from './display-mode';\nimport { IField, IFieldAction } from './field.interface';\nimport { type Group } from './group';\nimport { ValidationError } from './validation-error';\n\n// eslint-disable-next-line import/prefer-default-export\nexport abstract class FieldBase<T = any> implements IField<T> {\n abstract get value(): T;\n abstract set value(newValue: T);\n public readonly reactiveValue = computed(() => this.value);\n\n abstract clone(overrides?: Partial<IField<T>>): IField<T>;\n\n declare originalValue: T; // contains original field value as was provided at creation\n\n valid: boolean = true; // is current value valid as per FE and BE validators?\n\n errors: ValidationError[] = []; // list of errors\n\n declare parent?: Group; // when member of a Group, parent will specify that group\n\n declare fieldName?: string; // when member of a Group, fieldName specifies the name of this field\n\n protected actions: ActionsMap = new ActionsMap();\n\n // default property handlers\n private _visibility: DisplayMode = DisplayMode.FULL;\n\n get visibility(): DisplayMode { return this._visibility; }\n\n set visibility(newValue: DisplayMode) {\n const oldValue = this._visibility;\n if (!DisplayMode.isDefined(newValue)) throw new Error('visibility must be a DisplayMode constant');\n this._visibility = DisplayMode.fromAny(newValue);\n this.actions.trigger(VisibilityChangedAction, this, this._visibility, oldValue);\n }\n\n async setVisibility(newValue: DisplayMode) {\n const oldValue = this._visibility;\n const alteredValue = await this.actions.trigger(VisibilityChangingAction, this, newValue, oldValue);\n if (!DisplayMode.isDefined(alteredValue ?? newValue)) throw new Error('visibility must be a DisplayMode constant');\n this._visibility = DisplayMode.fromAny(alteredValue ?? newValue);\n this.actions.trigger(VisibilityChangedAction, this, this._visibility, oldValue);\n }\n\n private _enabled: boolean = true;\n\n get enabled(): boolean { return this._enabled; }\n\n set enabled(newValue: boolean) {\n const oldValue = this._enabled;\n if (!isBoolean(newValue)) throw new Error('Enabled value must be boolean');\n this._enabled = newValue;\n this.actions.trigger(EnabledChangedAction, this, this._enabled, oldValue);\n }\n\n async setEnabled(newValue: boolean) {\n const oldValue = this._enabled;\n const alteredValue = await this.actions.trigger(EnabledChangingAction, this, newValue, oldValue);\n if (!isBoolean(alteredValue ?? newValue)) throw new Error('Enabled value must be boolean');\n this._enabled = alteredValue ?? newValue;\n this.actions.trigger(EnabledChangedAction, this, this._enabled, oldValue);\n }\n\n validate() {\n const oldValid = this.valid;\n this.valid = this.errors.length === 0;\n if (this.valid !== oldValid) this.actions.trigger(ValidChangedAction, this, this.valid, oldValid);\n }\n\n get fullValue(): any {\n return this.value;\n }\n\n get isChanged() : boolean {\n return !isEqual(this.value, this.originalValue);\n }\n\n registerAction(action: IFieldAction<T>): this {\n this.actions.register(action as FieldActionBase);\n return this;\n }\n\n triggerAction<T2 extends IFieldAction<T>>(\n actionClass: new (...args: any[]) => T2,\n ...params: any[]\n ): any {\n return this.actions.trigger(actionClass as any, this, ...params);\n }\n}\n","import { reactive } from 'vue';\n\nimport { ExecuteAction, ValueChangedAction } from './actions';\nimport { FieldBase } from './field-base';\nimport { IField } from './field.interface';\n\nexport interface ActionValue {\n label?: string;\n icon?: string;\n}\n\nfunction isValEmpty(val: ActionValue, defaultIfTrue: ActionValue): ActionValue {\n if (val?.label == null && val?.icon == null) return defaultIfTrue;\n return val;\n}\n\nexport class Action extends FieldBase {\n private readonly _value: ActionValue;\n\n protected constructor(params?: Partial<IField<ActionValue>>) {\n super();\n if (params) {\n const { value: paramValue, originalValue, ...otherParams } = params;\n Object.assign(this, otherParams);\n const val = { label: paramValue?.label, icon: paramValue?.icon } as ActionValue;\n const orgVal = Object.freeze({ label: originalValue?.label, icon: originalValue?.icon } as ActionValue);\n this._value = reactive(isValEmpty(val, orgVal));\n this.originalValue = isValEmpty(orgVal, val);\n } else {\n this._value = reactive({ label: undefined, icon: undefined });\n }\n }\n\n static create(params?: Partial<IField<ActionValue>>): Action {\n return reactive(new Action(params)) as Action;\n }\n\n get value(): ActionValue { return this._value; }\n\n set value(newValue: ActionValue) {\n if (!this.enabled) return; // a disabled field does not allow changing value\n const oldValue = this._value;\n this._value.icon = newValue?.icon;\n this._value.label = newValue?.label;\n this.actions.trigger(ValueChangedAction, this, newValue, oldValue);\n if (this.parent) this.parent.notifyValueChanged();\n this.validate();\n }\n\n get icon(): string | undefined {\n return this.value.icon;\n }\n\n set icon(newValue: string | undefined) {\n this.value = { label: this.label, icon: newValue };\n }\n\n get label(): string | undefined {\n return this.value.label;\n }\n\n set label(newValue: string | undefined) {\n this.value = { label: newValue, icon: this.value.icon };\n }\n\n clone(overrides?: Partial<IField>): Action {\n return Action.create({\n value: overrides?.value ?? this.value,\n ...(overrides && 'originalValue' in overrides ? { originalValue: overrides.originalValue } : { }),\n errors: [...(overrides?.errors ?? this.errors)],\n enabled: overrides?.enabled ?? this.enabled,\n visibility: overrides?.visibility ?? this.visibility,\n });\n }\n\n execute(params: any) {\n this.actions.trigger(ExecuteAction, this, params);\n }\n}\n\nexport type NullableAction = Action | null;\n","import { reactive } from 'vue';\n\nimport { ValueChangedAction } from './actions';\nimport { FieldBase } from './field-base';\nimport { IField } from './field.interface';\n\nexport class Field<T = any> extends FieldBase {\n private _value: T = undefined!;\n\n protected constructor(params?: Partial<IField<T>>) {\n super();\n if (params) {\n const { value: paramValue, ...otherParams } = params;\n Object.assign(this, otherParams);\n this._value = paramValue ?? this.originalValue;\n if (this.originalValue === undefined) this.originalValue = this._value;\n }\n }\n\n static create<T = any>(params?: Partial<IField<T>>): Field<T> {\n return reactive(new Field(params)) as Field<T>;\n }\n\n get value() { return this._value; }\n\n set value(newValue: T) {\n if (!this.enabled) return; // a disabled field does not allow changing value\n const oldValue = this._value;\n this._value = newValue;\n this.actions.trigger(ValueChangedAction, this, newValue, oldValue);\n if (this.parent) this.parent.notifyValueChanged();\n this.validate();\n }\n\n clone(overrides?: Partial<IField<T>>): Field<T> {\n return Field.create<T>({\n value: overrides?.value ?? this.value,\n ...(overrides && 'originalValue' in overrides ? { originalValue: overrides.originalValue } : { }),\n errors: [...(overrides?.errors ?? this.errors)],\n enabled: overrides?.enabled ?? this.enabled,\n visibility: overrides?.visibility ?? this.visibility,\n });\n }\n}\n\nexport type NullableField<T = any> = Field<T> | null;\n\nexport const EmptyField = Field.create({ value: 'EmptyField' })\n .registerAction(new ValueChangedAction(\n async () => {\n console.warn('Working with EmptyField! This should not happen');\n },\n ));\n","import { isEmpty, isEqual } from 'lodash-es';\n\nimport { ValueChangedAction } from './actions';\nimport { Field } from './field';\nimport { FieldBase } from './field-base';\nimport { IField } from './field.interface';\n\nexport type GenericFieldsInterface = Record<string, IField>;\n\nexport class Group<T extends GenericFieldsInterface = GenericFieldsInterface> extends FieldBase {\n private readonly _fields: T;\n\n private _value: Record<string, any> | null = null;\n\n private suppressNotifyValueChanged: boolean = false;\n\n constructor(fields: T, params?: Partial<IField>) {\n super();\n\n if (!Group.isValidFields(fields)) throw new Error('Invalid fields object provided');\n this._fields = {} as T;\n Object.entries(fields).forEach(([name, field]) => {\n Object.defineProperty(field, 'parent', { get: () => this, configurable: false, enumerable: false });\n Object.defineProperty(field, 'fieldName', { get: () => name, configurable: false, enumerable: false });\n Object.defineProperty(\n this._fields,\n name,\n { get() { return field; }, configurable: false, enumerable: true },\n );\n });\n\n if (params) {\n const { value: paramValue, ...otherParams } = params;\n Object.assign(this, otherParams);\n this.value = paramValue ?? this.originalValue;\n }\n\n if (this.originalValue === undefined) this.originalValue = this.value;\n\n // if (Object.keys(this._fields).length) console.log('group created', this, Error().stack);\n }\n\n private static isValidFields(flds: unknown): flds is Record<string, FieldBase> {\n function isFieldAll(field: unknown): field is FieldBase {\n return field instanceof FieldBase;\n }\n\n return typeof flds === 'object' &&\n flds !== null &&\n Object.entries(flds).every(([, field]) => isFieldAll(field));\n }\n\n static createFromFormData(data: Record<string, any> | null): Group {\n if (data instanceof FieldBase) {\n throw new Error('data is already a Form structure, should be a simple object');\n }\n return new Group(\n data == null ?\n { } :\n Object.fromEntries(\n Object.entries(data).map(([key, value]) => [key, Field.create({ value })]),\n ),\n );\n }\n\n field(fieldName: string): IField | null {\n return this._fields[fieldName] ?? null;\n }\n\n get fields(): T {\n return this._fields;\n }\n\n get value(): Record<string, any> | null {\n const value: Record<string, any> = {};\n Object.entries(this._fields).forEach(([name, field]) => {\n const fieldValue = field.value;\n if (field.enabled) {\n // readOnly fields do not serialize\n value[name] = fieldValue;\n } else if (field instanceof Group && !isEmpty(fieldValue)) {\n // readOnly group only serializes if it is non-empty (some of its fields are not readOnly)\n value[name] = fieldValue;\n }\n });\n return isEmpty(value) ? null : value;\n }\n\n set value(newValue: Record<string, any> | null) {\n this.suppressNotifyValueChanged = true;\n try {\n Object.entries(this._fields).forEach(([name, field]) => {\n if (newValue == null || name in newValue) {\n field.value = newValue == null ? null : newValue[name];\n }\n });\n } finally {\n this.suppressNotifyValueChanged = false;\n }\n this.notifyValueChanged();\n }\n\n get fullValue(): Record<string, any> {\n const value: Record<string, any> = {};\n Object.entries(this._fields).forEach(([name, field]) => { value[name] = field.fullValue; });\n return value;\n }\n\n notifyValueChanged() {\n if (this.suppressNotifyValueChanged) return;\n const newValue = this.value;\n if (!isEqual(newValue, this._value)) {\n const oldValue = this._value;\n this._value = newValue;\n this.actions.trigger(ValueChangedAction, this, newValue, oldValue);\n if (this.parent) this.parent.notifyValueChanged();\n }\n }\n\n clone(overrides?: Partial<IField>): Group<T> {\n const newFields = {} as T;\n Object.entries(this._fields).forEach(([name, field]) => {\n newFields[name as keyof T] = field.clone() as any;\n });\n\n return new Group(newFields, {\n value: overrides?.value ?? this.value,\n ...(overrides && 'originalValue' in overrides ? { originalValue: overrides.originalValue } : { }),\n errors: [...(overrides?.errors ?? [])],\n enabled: overrides?.enabled ?? this.enabled,\n visibility: overrides?.visibility ?? this.visibility,\n });\n }\n}\n\nexport type NullableGroup = Group | null;\n","import { isEmpty, isEqual } from 'lodash-es';\n\nimport { ListItemAddedAction, ListItemRemovedAction, ValueChangedAction } from './actions';\nimport { FieldBase } from './field-base';\nimport { IField } from './field.interface';\nimport { GenericFieldsInterface, Group } from './group';\n\nexport class List<T extends GenericFieldsInterface = GenericFieldsInterface> extends FieldBase {\n private _value: Group<T>[] | null = null;\n\n private _itemTemplate?: Group<T>;\n\n private _previousValue: Record<string, any>[] | null;\n\n constructor(itemTemplate?: Group<T>, params?: Partial<IField>) {\n super();\n\n this._itemTemplate = itemTemplate;\n\n if (params) {\n const { value: paramValue, ...otherParams } = params;\n Object.assign(this, otherParams);\n\n if (paramValue) this.setValue(paramValue);\n }\n\n if (this.originalValue === undefined) this.originalValue = this.value;\n this._previousValue = this.value;\n // if (Object.keys(this._fields).length) console.log('formGroup created', this, Error().stack);\n }\n\n private processSetValueItem(item: any) : Group<T> {\n let res: Group<T>;\n // If item is already a Group, use it\n if (item instanceof Group) res = item;\n // Otherwise create a Group from item\n else if (this._itemTemplate) res = this._itemTemplate.clone({ value: item });\n else res = Group.createFromFormData(item) as Group<T>;\n\n Object.defineProperty(res, 'parent', { get: () => this, configurable: false, enumerable: false });\n\n return res;\n }\n\n private setValue(newValue: any[]) {\n if (Array.isArray(newValue)) {\n this._value = newValue.map((item: any) => this.processSetValueItem(item));\n }\n }\n\n get value(): Record<string, any>[] | null {\n const value = this._value?.map((item) => item.value);\n return isEmpty(value) ? null : <Record<string, any>[]> value;\n }\n\n set value(newValue: Record<string, any>[]) {\n const oldValue = this.value;\n this.setValue(newValue);\n this.actions.trigger(ValueChangedAction, this, this.value, oldValue);\n if (this.parent) this.parent.notifyValueChanged();\n }\n\n clone(overrides?: Partial<IField>): List<T> {\n return new List(this._itemTemplate?.clone(), {\n value: [...(overrides?.value ?? this.value)],\n ...(overrides && 'originalValue' in overrides ? { originalValue: overrides.originalValue } : { }),\n errors: [...(overrides?.errors ?? [])],\n enabled: overrides?.enabled ?? this.enabled,\n visibility: overrides?.visibility ?? this.visibility,\n });\n }\n\n notifyValueChanged() {\n const newValue = this.value;\n if (!isEqual(newValue, this._previousValue)) {\n const oldValue = this._previousValue;\n this._previousValue = newValue;\n this.actions.trigger(ValueChangedAction, this, newValue, oldValue);\n if (this.parent) this.parent.notifyValueChanged();\n }\n }\n\n get(index: number): Group<T> | undefined {\n return this._value != null ? this._value[index] : undefined;\n }\n\n push(item: any): number {\n return this.insert(item, this._value?.length ?? 0) + 1;\n }\n\n pop(): Group<T> | undefined {\n return this.remove((this._value?.length ?? 0) - 1);\n }\n\n remove(index: number): Group<T> | undefined {\n if (this._value == null || index < 0 || this._value.length <= index) return undefined;\n\n let removedItem = this._value.splice(index, 1)?.[0];\n\n if (removedItem) {\n // Remove parent reference\n removedItem = removedItem.clone();\n\n // Trigger events\n this.actions.trigger(ListItemRemovedAction, this, removedItem, index);\n this.notifyValueChanged();\n }\n\n return removedItem;\n }\n\n insert(item: any, index: number): number {\n if (this._value == null) this._value = [];\n while (this._value.length < index) {\n // if the index is too large for current array size, we add as many as necessary\n const itm = this.processSetValueItem(null);\n const idx = this._value.push(itm);\n this.actions.trigger(ListItemAddedAction, this, itm, idx);\n }\n const itm = this.processSetValueItem(item);\n this._value.splice(index, 0, itm);\n\n this.actions.trigger(ListItemAddedAction, this, itm, index);\n this.notifyValueChanged();\n\n return index;\n }\n\n clear() {\n this._value = null;\n this.notifyValueChanged();\n }\n}\n\nexport type NullableList = List | null;\n"],"names":["DisplayMode","defaultDisplayMode","fromString","mode","fromAny","input","isDefined","check","DisplayMode$1","ValidationError","ValidationErrorText","text","__publicField","FieldActionBase","executorFn","field","supr","params","__async","AbortEventHandlingException","ActionsMap","action","actionType","existingExecute","ex","ActionClass","identifier","execute","error","EnabledChangingActionClassIdentifier","EnabledChangingAction","newValue","oldValue","__superGet","EnabledChangedActionClassIdentifier","EnabledChangedAction","ExecuteActionClassIdentifier","ExecuteAction","VisibilityChangingActionClassIdentifier","VisibilityChangingAction","VisibilityChangedActionClassIdentifier","VisibilityChangedAction","ValidChangedActionClassIdentifier","ValidChangedAction","ValueChangedActionClassIdentifier","ValueChangedAction","ListItemAddedActionClassIdentifier","ListItemAddedAction","item","index","ListItemRemovedActionClassIdentifier","ListItemRemovedAction","FieldBase","computed","alteredValue","isBoolean","oldValid","isEqual","actionClass","isValEmpty","val","defaultIfTrue","Action","_a","paramValue","originalValue","otherParams","__objRest","orgVal","reactive","overrides","__spreadProps","__spreadValues","_b","_c","_d","Field","EmptyField","Group","fields","name","flds","isFieldAll","data","key","value","fieldName","fieldValue","isEmpty","newFields","List","itemTemplate","res","_e","removedItem","itm","idx"],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,5 +1,4 @@
1
1
  import { ComputedRef } from 'vue';
2
- import { Reactive } from 'vue';
3
2
 
4
3
  export declare class AbortEventHandlingException extends Error {
5
4
  }
@@ -7,14 +6,14 @@ export declare class AbortEventHandlingException extends Error {
7
6
  export declare class Action extends FieldBase {
8
7
  private readonly _value;
9
8
  protected constructor(params?: Partial<IField<ActionValue>>);
10
- static create(params?: Partial<IField<ActionValue>>): Reactive<Action>;
9
+ static create(params?: Partial<IField<ActionValue>>): Action;
11
10
  get value(): ActionValue;
12
11
  set value(newValue: ActionValue);
13
12
  get icon(): string | undefined;
14
13
  set icon(newValue: string | undefined);
15
14
  get label(): string | undefined;
16
15
  set label(newValue: string | undefined);
17
- clone(overrides?: Partial<IField>): Reactive<Action>;
16
+ clone(overrides?: Partial<IField>): Action;
18
17
  execute(params: any): void;
19
18
  }
20
19
 
@@ -30,22 +29,20 @@ export declare interface ActionValue {
30
29
  icon?: string;
31
30
  }
32
31
 
33
- export declare const defaultDisplayMode = DisplayMode.FULL;
34
-
35
32
  /**
36
33
  * DisplayMode enum provides an enumeration for supported ways of rendering a particular object in the DOM
37
34
  */
38
- declare enum DisplayMode {
35
+ export declare enum DisplayMode {
39
36
  SUPPRESS = 1,// Field will be entirely suppressed. it will not render (not even to JSON) and will not parse for PUT
40
37
  HIDDEN = 5,// Field will render as <input type="hidden"> or <tr data-field_name>
41
38
  INVISIBLE = 8,// Field will render completely, but with display: none. Equal to setting its style = {display: none}
42
39
  FULL = 10
43
40
  }
44
41
 
45
- declare namespace DisplayMode {
46
- function fromString(mode: string): DisplayMode;
47
- function fromAny(mode: any): DisplayMode;
48
- function isDefined(mode: number | string): boolean;
42
+ export declare namespace DisplayMode {
43
+ export function fromString(mode: string): DisplayMode;
44
+ export function fromAny(mode: any): DisplayMode;
45
+ export function isDefined(mode: number | string): boolean;
49
46
  }
50
47
 
51
48
  export declare const EmptyField: Field<string>;
@@ -71,10 +68,10 @@ export declare class ExecuteAction extends FieldActionBase {
71
68
  export declare class Field<T = any> extends FieldBase {
72
69
  private _value;
73
70
  protected constructor(params?: Partial<IField<T>>);
74
- static create<T = any>(params?: Partial<IField<T>>): Reactive<Field<T>>;
71
+ static create<T = any>(params?: Partial<IField<T>>): Field<T>;
75
72
  get value(): T;
76
73
  set value(newValue: T);
77
- clone(overrides?: Partial<IField<T>>): Reactive<Field<T>>;
74
+ clone(overrides?: Partial<IField<T>>): Field<T>;
78
75
  }
79
76
 
80
77
  export declare abstract class FieldActionBase implements IFieldAction {
@@ -114,7 +111,7 @@ declare abstract class FieldBase<T = any> implements IField<T> {
114
111
 
115
112
  declare namespace Form {
116
113
  export {
117
- defaultDisplayMode,
114
+ DisplayMode,
118
115
  ValidationError,
119
116
  ValidationErrorText,
120
117
  FieldActionBase,
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@dynamicforms/vue-forms",
3
3
  "private": false,
4
- "version": "0.1.2",
4
+ "version": "0.1.4",
5
5
  "type": "module",
6
6
  "description": "Data entry forms for vue - logic (no controls here)",
7
7
  "author": "Jure Erznožnik",