@dynamicforms/vue-forms 0.1.2 → 0.1.3

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,12 +1,12 @@
1
1
  var J = Object.defineProperty, K = Object.defineProperties;
2
2
  var Q = Object.getOwnPropertyDescriptors;
3
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) => {
4
+ var w = (n, i, t) => i in n ? J(n, i, { enumerable: !0, configurable: !0, writable: !0, value: t }) : n[i] = t, _ = (n, i) => {
5
5
  for (var t in i || (i = {}))
6
- R.call(i, t) && L(n, t, i[t]);
6
+ R.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
+ z.call(i, t) && w(n, t, i[t]);
10
10
  return n;
11
11
  }, d = (n, i) => K(n, Q(i));
12
12
  var v = (n, i) => {
@@ -18,7 +18,7 @@ var v = (n, i) => {
18
18
  i.indexOf(e) < 0 && z.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) => {
@@ -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,7 +257,7 @@ 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
  }
@@ -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(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],
@@ -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; ) {
@@ -586,7 +586,7 @@ const ft = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
586
586
  Group: b,
587
587
  List: H,
588
588
  ListItemAddedAction: C,
589
- ListItemRemovedAction: w,
589
+ ListItemRemovedAction: L,
590
590
  ValidChangedAction: N,
591
591
  ValidationError: q,
592
592
  ValidationErrorText: G,
@@ -608,7 +608,7 @@ export {
608
608
  b as Group,
609
609
  H as List,
610
610
  C as ListItemAddedAction,
611
- w as ListItemRemovedAction,
611
+ L as ListItemRemovedAction,
612
612
  N as ValidChangedAction,
613
613
  q as ValidationError,
614
614
  G as ValidationErrorText,
@@ -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 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 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 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"}})});
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":"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"}
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
 
@@ -71,10 +70,10 @@ export declare class ExecuteAction extends FieldActionBase {
71
70
  export declare class Field<T = any> extends FieldBase {
72
71
  private _value;
73
72
  protected constructor(params?: Partial<IField<T>>);
74
- static create<T = any>(params?: Partial<IField<T>>): Reactive<Field<T>>;
73
+ static create<T = any>(params?: Partial<IField<T>>): Field<T>;
75
74
  get value(): T;
76
75
  set value(newValue: T);
77
- clone(overrides?: Partial<IField<T>>): Reactive<Field<T>>;
76
+ clone(overrides?: Partial<IField<T>>): Field<T>;
78
77
  }
79
78
 
80
79
  export declare abstract class FieldActionBase implements IFieldAction {
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.3",
5
5
  "type": "module",
6
6
  "description": "Data entry forms for vue - logic (no controls here)",
7
7
  "author": "Jure Erznožnik",