@stemy/ngx-dynamic-form 10.2.23 → 10.2.24

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.
@@ -599,7 +599,7 @@
599
599
  });
600
600
  };
601
601
  DynamicFormService.prototype.serializeRecursive = function (formModel, formGroup) {
602
- var _a;
602
+ var _a, _b;
603
603
  return __awaiter(this, void 0, void 0, function () {
604
604
  var result, _c, _d, _i, i, subModel, subControl, serializer, _e, _f, length, subArray, resArray, i_1, itemModel, _g, _h, _j, _k;
605
605
  return __generator(this, function (_l) {
@@ -658,8 +658,7 @@
658
658
  case 10:
659
659
  if (subModel instanceof core.DynamicInputModel && !ngxUtils.ObjectUtils.isNullOrUndefined(subControl.value)) {
660
660
  result[subModel.id] = subModel.inputType == "number"
661
- ? parseFloat(("" + subControl.value || "0").replace(/,/gi, ".")) || null
662
- : subControl.value;
661
+ ? (_b = parseFloat(("" + subControl.value || "0").replace(/,/gi, "."))) !== null && _b !== void 0 ? _b : null : subControl.value;
663
662
  return [3 /*break*/, 11];
664
663
  }
665
664
  result[subModel.id] = subControl.value;
@@ -1 +1 @@
1
- {"version":3,"file":"stemy-ngx-dynamic-form.umd.js","sources":["../../src/ngx-dynamic-form/common-types.ts","../../src/ngx-dynamic-form/utils/validators.ts","../../node_modules/tslib/tslib.es6.js","../../src/ngx-dynamic-form/utils/form-subject.ts","../../src/ngx-dynamic-form/utils/dynamic-form-array.model.ts","../../src/ngx-dynamic-form/services/dynamic-form.service.ts","../../src/ngx-dynamic-form/directives/async-submit.directive.ts","../../src/ngx-dynamic-form/components/base/dynamic-base-form.component.ts","../../src/ngx-dynamic-form/components/base/dynamic-base-form-control-container.component.ts","../../src/ngx-dynamic-form/services/dynamic-form-validation.service.ts","../../src/ngx-dynamic-form/ngx-dynamic-form.module.ts","../../src/stemy-ngx-dynamic-form.ts"],"sourcesContent":["import {EventEmitter, TemplateRef} from \"@angular/core\";\r\nimport {AbstractControl, FormArray} from \"@angular/forms\";\r\nimport {Observable} from \"rxjs\";\r\nimport {\r\n DynamicFormControl,\r\n DynamicFormOptionConfig,\r\n DynamicFormValueControlModel,\r\n DynamicValidatorDescriptor,\r\n DynamicValidatorsConfig\r\n} from \"@ng-dynamic-forms/core\";\r\nimport {\r\n IAsyncMessage,\r\n IRequestOptions,\r\n IResolveFactory,\r\n ObjectUtils,\r\n ReflectUtils,\r\n UniqueUtils\r\n} from \"@stemy/ngx-utils\";\r\n\r\n// --- Basic form control interfaces ---\r\n\r\nexport interface IDynamicFormBase {\r\n\r\n status: DynamicFormState;\r\n\r\n onStatusChange: EventEmitter<IDynamicFormBase>;\r\n onValueChange: EventEmitter<IDynamicFormBase>;\r\n onSubmit: EventEmitter<IDynamicFormBase>;\r\n\r\n validate(): Promise<any>;\r\n serialize(validate?: boolean): Promise<any>;\r\n}\r\n\r\nexport interface IDynamicForm extends IDynamicFormBase{\r\n\r\n}\r\n\r\nexport interface OnCreatedFormControl extends DynamicFormControl {\r\n onCreated(): any;\r\n}\r\n\r\nexport type IFormControlSerializer = (model: DynamicFormValueControlModel<any>, control: AbstractControl) => Promise<any>;\r\nexport type IFormInputMask = string | RegExp;\r\nexport type IFormInputMaskFunction = (raw: string) => IFormInputMask[];\r\nexport type IFormInputUnMaskFunction = (value: string) => any;\r\n\r\nexport interface IFormSerializer {\r\n id: string;\r\n func: IFormControlSerializer;\r\n}\r\n\r\nexport interface IFormSerializers {\r\n [id: string]: IFormControlSerializer | IResolveFactory | null\r\n}\r\n\r\nexport type DynamicFormState = \"VALID\" | \"INVALID\" | \"PENDING\" | \"DISABLED\" | \"LOADING\";\r\nexport type DynamicFormUpdateOn = \"change\" | \"blur\" | \"submit\";\r\n\r\nexport interface IFormControl {\r\n id: string;\r\n type: string;\r\n visible?: boolean;\r\n data?: IFormControlData;\r\n}\r\n\r\nexport interface IFormControlData {\r\n label?: string;\r\n labelAlign?: string;\r\n fieldSet?: string;\r\n classes?: string;\r\n readonly?: FormControlTesterFactory;\r\n hidden?: FormControlTesterFactory;\r\n shouldSerialize?: FormControlTesterFactory;\r\n shouldValidate?: FormControlTesterFactory;\r\n validator?: DynamicValidatorDescriptor;\r\n validators?: DynamicValidatorsConfig;\r\n updateOn?: DynamicFormUpdateOn;\r\n reload?: string | string[];\r\n}\r\n\r\nexport interface IFormInputData extends IFormControlData {\r\n type?: string;\r\n autocomplete?: string;\r\n placeholder?: string;\r\n useLanguage?: boolean;\r\n mask?: IFormInputMaskFunction | IFormInputMask[];\r\n unmask?: IFormInputUnMaskFunction;\r\n step?: number;\r\n min?: number;\r\n max?: number;\r\n}\r\n\r\nexport interface IFormSelectData extends IFormControlData {\r\n options?: DynamicFormOptionConfig<any>[] | Observable<DynamicFormOptionConfig<any>[]>;\r\n emptyOption?: boolean;\r\n type?: string;\r\n multi?: boolean;\r\n}\r\n\r\nexport interface IFormStaticData extends IFormControlData {\r\n properties?: string[];\r\n style?: string;\r\n}\r\n\r\nexport interface IFormFileData extends IFormControlData {\r\n accept?: string;\r\n multi?: boolean;\r\n baseUrl?: string;\r\n asFile?: boolean;\r\n asDataUrl?: boolean;\r\n uploadUrl?: string;\r\n uploadOptions?: IRequestOptions;\r\n createUploadData?: (file: File) => any;\r\n}\r\n\r\nexport interface IFormModelData extends IFormControlData, IDynamicFormInfo {\r\n\r\n}\r\n\r\nexport interface IFormFieldSet {\r\n id: string;\r\n classes?: string;\r\n title?: string;\r\n titleClasses?: string;\r\n setClasses?: string;\r\n controlClasses?: string;\r\n}\r\n\r\nexport interface IFormControlOption {\r\n id: any;\r\n label: string;\r\n selectable?: boolean;\r\n}\r\n\r\n// --- Basic form interfaces ---\r\n\r\nexport interface IDynamicFormTemplates {\r\n [id: string]: TemplateRef<any>;\r\n}\r\n\r\nexport interface IDynamicFormConfig {\r\n path?: string | number | Array<string | number>;\r\n name?: string;\r\n classes?: string;\r\n formClasses?: string;\r\n innerFormClasses?: string;\r\n id: string;\r\n}\r\n\r\nexport interface IDynamicSingleFormConfig extends IDynamicFormConfig, IDynamicFormInfo {\r\n data: any;\r\n controlData?: IFormControlData;\r\n multi?: false;\r\n}\r\n\r\nexport interface IDynamicMultiFormConfig extends IDynamicFormConfig {\r\n data: IDynamicFormsConfigs;\r\n multi: true;\r\n}\r\n\r\nexport type IDynamicFormsConfigs = Array<IDynamicSingleFormConfig | IDynamicMultiFormConfig>;\r\n\r\nexport declare type AsyncSubmitMethod = (form: IDynamicFormBase, context?: any) => Promise<IAsyncMessage>;\r\n\r\nexport interface IDynamicFormInfo {\r\n name?: string;\r\n controls?: IFormControl[];\r\n serializers?: IFormSerializers;\r\n fieldSets?: IFormFieldSet[];\r\n}\r\n\r\nexport interface IDynamicFormFieldSets {\r\n [id: string]: IFormFieldSet\r\n}\r\n\r\n// --- Basic form types ---\r\nexport type FormControlTester = (control: AbstractControl) => Promise<boolean>;\r\nexport type FormControlTesterFactory = FormControlTester | IResolveFactory;\r\n\r\n// --- Decorator functions ---\r\nconst emptyArray: any = [];\r\nconst emptyTester: FormControlTester = () => {\r\n return Promise.resolve(false);\r\n};\r\n\r\nexport function defaultSerializer(id: string, parent: FormArray): Promise<any> {\r\n const control = parent.get(id);\r\n return !control ? null: control.value;\r\n}\r\n\r\nexport function FormSerializable(serializer?: IFormControlSerializer | IResolveFactory): PropertyDecorator {\r\n return (target: any, propertyKey: string): void => {\r\n ReflectUtils.defineMetadata(\"dynamicFormSerializer\", serializer || defaultSerializer, target, propertyKey);\r\n };\r\n}\r\n\r\nexport function FormInput(data?: IFormInputData): PropertyDecorator {\r\n return (target: any, propertyKey: string): void => {\r\n const meta = ReflectUtils.getOwnMetadata(\"design:type\", target, propertyKey);\r\n const type = meta ? meta.name : \"\";\r\n let inputType = propertyKey.indexOf(\"password\") < 0 ? \"text\" : \"password\";\r\n switch (type) {\r\n case \"Number\":\r\n inputType = \"number\";\r\n break;\r\n case \"Boolean\":\r\n inputType = \"checkbox\";\r\n break;\r\n }\r\n defineFormControl(target, propertyKey, createFormInput(propertyKey, data, inputType));\r\n };\r\n}\r\n\r\nexport function FormSelect(data?: IFormSelectData): PropertyDecorator {\r\n return (target: any, propertyKey: string): void => {\r\n defineFormControl(target, propertyKey, createFormSelect(propertyKey, data));\r\n };\r\n}\r\n\r\nexport function FormStatic(data?: IFormStaticData): PropertyDecorator {\r\n return (target: any, propertyKey: string): void => {\r\n defineFormControl(target, propertyKey, createFormStatic(propertyKey, data));\r\n };\r\n}\r\n\r\nexport function FormModel(data?: IFormModelData): PropertyDecorator {\r\n return (target: any, propertyKey: string): void => {\r\n defineFormControl(target, propertyKey, createFormModel(propertyKey, data));\r\n };\r\n}\r\n\r\nexport function FormFile(data?: IFormFileData): PropertyDecorator {\r\n return (target: any, propertyKey: string): void => {\r\n defineFormControl(target, propertyKey, createFormFile(propertyKey, data));\r\n };\r\n}\r\n\r\nexport function FormFieldSet(data: IFormFieldSet): ClassDecorator {\r\n return (target: any): void => {\r\n const sets = getFormFieldSets(target);\r\n data.classes = data.classes || \"\";\r\n sets[data.id] = data;\r\n ReflectUtils.defineMetadata(\"dynamicFormFieldSets\", sets, target);\r\n };\r\n}\r\n\r\nexport function defineFormControl(target: any, propertyKey: string, control: IFormControl): void {\r\n ReflectUtils.defineMetadata(\"dynamicFormControl\", control, target, propertyKey);\r\n}\r\n\r\nexport function getFormFieldSets(target: any): IDynamicFormFieldSets {\r\n return ReflectUtils.getMetadata(\"dynamicFormFieldSets\", target) || {};\r\n}\r\n\r\nexport function getFormControl(target: any, propertyKey: string): IFormControl {\r\n return ReflectUtils.getMetadata(\"dynamicFormControl\", target, propertyKey);\r\n}\r\n\r\nexport function getFormSerializer(target: any, propertyKey: string): IFormControlSerializer | IResolveFactory {\r\n return ReflectUtils.getMetadata(\"dynamicFormSerializer\", target, propertyKey);\r\n}\r\n\r\nexport function createFormControl(id: string, type: string, data?: IFormControlData): IFormControl {\r\n data = data || {};\r\n data.label = ObjectUtils.isNullOrUndefined(data.label) ? id : data.label;\r\n data.labelAlign = data.labelAlign || \"left\";\r\n data.fieldSet = data.fieldSet || UniqueUtils.uuid();\r\n data.classes = data.classes || \"\";\r\n data.readonly = data.readonly || emptyTester;\r\n data.hidden = data.hidden || emptyTester;\r\n data.validators = data.validators || emptyArray;\r\n return {\r\n id: id,\r\n type: type,\r\n data: data\r\n };\r\n}\r\n\r\nexport function createFormInput(id: string, data: IFormInputData, type: string = \"text\"): IFormControl {\r\n const control = createFormControl(id, \"input\", data);\r\n data = control.data;\r\n data.type = data.type || type;\r\n data.classes = !data.classes ? `form-group-${data.type}` : `${data.classes} form-group-${data.type}`;\r\n data.placeholder = data.placeholder || (data.type == \"mask\" ? \"_\" : \"\");\r\n data.step = data.step || 1;\r\n data.mask = data.mask || [/\\w*/gi];\r\n return control;\r\n}\r\n\r\nexport function createFormSelect(id: string, data: IFormSelectData): IFormControl {\r\n const control = createFormControl(id, \"select\", data);\r\n data = control.data;\r\n data.options = data.options || [];\r\n data.type = data.type || \"select\";\r\n const classType = data.type == \"select\" ? \"select\" : `select-${data.type}`;\r\n data.classes = !data.classes ? `form-group-${classType}` : `${data.classes} form-group-${classType}`;\r\n return control;\r\n}\r\n\r\nexport function createFormStatic(id: string, data: IFormStaticData): IFormControl {\r\n const control = createFormControl(id, \"static\", data);\r\n data = control.data;\r\n data.style = data.style || \"table\";\r\n return control;\r\n}\r\n\r\nexport function createFormModel(id: string, data: IFormModelData): IFormControl {\r\n const control = createFormControl(id, \"model\", data);\r\n data = control.data;\r\n data.name = data.name || \"\";\r\n return control;\r\n}\r\n\r\nexport function createFormFile(id: string, data: IFormFileData): IFormControl {\r\n const control = createFormControl(id, \"file\", data);\r\n data = control.data;\r\n data.accept = data.accept || \".jpg,.jpeg,.png\";\r\n data.multi = data.multi || false;\r\n data.baseUrl = ObjectUtils.isString(data.baseUrl) ? data.baseUrl : \"assets/\";\r\n data.uploadUrl = ObjectUtils.isString(data.uploadUrl) ? data.uploadUrl : \"assets\";\r\n data.createUploadData = data.createUploadData || ((file: File) => {\r\n const form = new FormData();\r\n form.append(\"file\", file);\r\n return form;\r\n });\r\n return control;\r\n}\r\n","import {AbstractControl, ValidationErrors} from \"@angular/forms\";\r\n\r\nexport function validateJSON(control: AbstractControl): ValidationErrors | null {\r\n const value = control.value;\r\n if (!value) return null;\r\n try {\r\n JSON.parse(value);\r\n return null;\r\n } catch (e) {\r\n return {json: true};\r\n }\r\n}\r\n\r\nexport function validateRequiredTranslation(control: AbstractControl): ValidationErrors | null {\r\n const value: any[] = control.value;\r\n if (!value || value.length == 0) return {requiredTranslation: true};\r\n return value.findIndex(t => (t.lang == \"de\" || t.lang == \"en\") && !t.translation) < 0\r\n ? null\r\n : {requiredTranslation: true};\r\n}\r\n\r\nexport function validatePhone(control: AbstractControl): ValidationErrors | null {\r\n const value = control.value;\r\n if (!value) return Promise.resolve(null);\r\n const phoneRegexp = /^(?:\\d){10,12}$/;\r\n return phoneRegexp.test(value) ? null : {phone: true};\r\n}\r\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","import {Subject} from \"rxjs\";\r\nimport {AbstractControl} from \"@angular/forms\";\r\nimport {DynamicFormControlModel} from \"@ng-dynamic-forms/core\";\r\n\r\nexport class FormSubject<T> extends Subject<T> {\r\n\r\n private readonly notifyCallback: (controlModel: DynamicFormControlModel, control: AbstractControl) => T | Promise<T>;\r\n\r\n constructor(notifyCallback: (formModel: DynamicFormControlModel, control: AbstractControl) => T | Promise<T>) {\r\n super();\r\n this.notifyCallback = notifyCallback;\r\n }\r\n\r\n async notify(controlModel: DynamicFormControlModel, control: AbstractControl): Promise<any> {\r\n let value = this.notifyCallback(controlModel, control);\r\n if (value instanceof Promise) {\r\n value = await value;\r\n }\r\n this.next(value);\r\n }\r\n}\r\n","import {\r\n DynamicFormArrayModel as Base,\r\n DynamicFormArrayModelConfig as ConfigBase,\r\n DynamicFormControlLayout\r\n} from \"@ng-dynamic-forms/core\";\r\n\r\nexport interface DynamicFormArrayModelConfig extends ConfigBase {\r\n additional?: {[key: string]: any};\r\n}\r\n\r\nexport class DynamicFormArrayModel extends Base {\r\n\r\n readonly additional: {[key: string]: any};\r\n\r\n constructor(config: DynamicFormArrayModelConfig, layout?: DynamicFormControlLayout) {\r\n super(config, layout);\r\n this.additional = config.additional || {};\r\n }\r\n}\r\n","import {EventEmitter, Injectable} from \"@angular/core\";\r\nimport {AbstractControl, FormArray, FormGroup} from \"@angular/forms\";\r\nimport {Subject} from \"rxjs\";\r\nimport {\r\n DynamicCheckboxModel,\r\n DynamicCheckboxModelConfig,\r\n DynamicFileUploadModel,\r\n DynamicFileUploadModelConfig,\r\n DynamicFormComponent,\r\n DynamicFormComponentService,\r\n DynamicFormControlModel,\r\n DynamicFormGroupModel,\r\n DynamicFormGroupModelConfig,\r\n DynamicFormModel,\r\n DynamicFormOptionConfig,\r\n DynamicFormService as Base,\r\n DynamicFormValidationService,\r\n DynamicFormValueControlModel,\r\n DynamicFormValueControlModelConfig,\r\n DynamicInputModel,\r\n DynamicInputModelConfig,\r\n DynamicSelectModel,\r\n DynamicSelectModelConfig,\r\n DynamicTextAreaModel,\r\n DynamicTextAreaModelConfig,\r\n DynamicValidatorsConfig,\r\n DynamicFormArrayModel as DynamicFormArrayModelBase\r\n} from \"@ng-dynamic-forms/core\";\r\nimport {\r\n IApiService,\r\n ILanguageService,\r\n IOpenApiSchema,\r\n IOpenApiSchemaProperty,\r\n IOpenApiSchemas,\r\n ObjectUtils,\r\n OpenApiService,\r\n StringUtils\r\n} from \"@stemy/ngx-utils\";\r\n\r\nimport {IFormControlSerializer} from \"../common-types\";\r\n\r\nimport {FormSubject} from \"../utils/form-subject\";\r\nimport {DynamicFormArrayModel, DynamicFormArrayModelConfig} from \"../utils/dynamic-form-array.model\";\r\n\r\n@Injectable()\r\nexport class DynamicFormService extends Base {\r\n\r\n get api(): IApiService {\r\n return this.openApi.api;\r\n }\r\n\r\n get language(): ILanguageService {\r\n return this.api.language;\r\n }\r\n\r\n readonly onDetectChanges: EventEmitter<DynamicFormComponent>;\r\n protected schemas: IOpenApiSchemas;\r\n\r\n constructor(cs: DynamicFormComponentService, vs: DynamicFormValidationService, readonly openApi: OpenApiService) {\r\n super(cs, vs);\r\n this.onDetectChanges = new EventEmitter<DynamicFormComponent>();\r\n }\r\n\r\n patchGroup(value: any, formModel: DynamicFormModel, formGroup: FormGroup): void {\r\n this.patchValueRecursive(value, formModel, formGroup);\r\n this.detectChanges();\r\n formGroup.patchValue(ObjectUtils.copy(value));\r\n }\r\n\r\n patchForm(value: any, component: DynamicFormComponent): void {\r\n this.patchValueRecursive(value, component.model, component.group);\r\n this.detectChanges(component);\r\n component.group.patchValue(value);\r\n }\r\n\r\n serialize(formModel: DynamicFormModel, formGroup: FormGroup): Promise<any> {\r\n return this.serializeRecursive(formModel, formGroup);\r\n }\r\n\r\n notifyChanges(formModel: DynamicFormModel, formGroup: FormGroup): void {\r\n this.notifyChangesRecursive(formModel, formGroup);\r\n }\r\n\r\n updateSelectOptions(formControlModel: DynamicFormControlModel, formControl: AbstractControl): void {\r\n if (formControlModel instanceof DynamicSelectModel) {\r\n let options = formControlModel.options$;\r\n if (options instanceof FormSubject) {\r\n options.notify(formControlModel, formControl);\r\n return;\r\n }\r\n while (options instanceof Subject && options.source) {\r\n options = options.source;\r\n if (options instanceof FormSubject) {\r\n options.notify(formControlModel, formControl);\r\n }\r\n }\r\n }\r\n }\r\n\r\n showErrors(form: DynamicFormComponent): void {\r\n this.showErrorsForGroup(form.group);\r\n this.detectChanges(form);\r\n }\r\n\r\n detectChanges(formComponent?: DynamicFormComponent) {\r\n super.detectChanges(formComponent);\r\n this.onDetectChanges.emit(formComponent);\r\n }\r\n\r\n protected patchValueRecursive(value: any, formModel: DynamicFormModel, formGroup: FormGroup): void {\r\n Object.keys(value).forEach(key => {\r\n const subModel = this.findModelById(key, formModel);\r\n const subValue = value[key];\r\n if (!subModel) return;\r\n const subControl = this.findControlByModel(subModel, formGroup);\r\n if (subModel instanceof DynamicSelectModel && ObjectUtils.isObject(subValue)) {\r\n value[key] = subValue.id || subValue._id || subValue;\r\n return;\r\n }\r\n if (subModel instanceof DynamicFormArrayModelBase) {\r\n const length = Array.isArray(subValue) ? subValue.length : 0;\r\n const subArray = subControl as FormArray;\r\n while (subModel.size > length) {\r\n this.removeFormArrayGroup(0, subArray, subModel);\r\n }\r\n while (subModel.size < length) {\r\n this.insertFormArrayGroup(subModel.size, subArray, subModel);\r\n }\r\n for (let i = 0; i < length; i++) {\r\n const itemModel = subModel.get(i);\r\n this.patchValueRecursive(subValue[i], itemModel.group, subArray.at(i) as FormGroup);\r\n }\r\n return;\r\n }\r\n if (subModel instanceof DynamicFormGroupModel) {\r\n this.patchValueRecursive(subValue, subModel.group, subControl as FormGroup);\r\n }\r\n });\r\n }\r\n\r\n protected async serializeRecursive(formModel: DynamicFormModel, formGroup: FormGroup): Promise<any> {\r\n const result = {};\r\n if (!formModel || !formGroup || !formGroup.value) return result;\r\n for (const i in formModel) {\r\n const subModel = formModel[i] as DynamicFormValueControlModel<any>;\r\n const subControl = this.findControlByModel(subModel, formGroup);\r\n const serializer = subModel.additional?.serializer as IFormControlSerializer;\r\n if (ObjectUtils.isFunction(serializer)) {\r\n result[subModel.id] = await serializer(subModel, subControl);\r\n continue;\r\n }\r\n if (subModel instanceof DynamicFormArrayModelBase) {\r\n const length = Array.isArray(subControl.value) ? subControl.value.length : 0;\r\n const subArray = subControl as FormArray;\r\n const resArray = [];\r\n for (let i = 0; i < length; i++) {\r\n const itemModel = subModel.get(i);\r\n resArray.push(\r\n await this.serializeRecursive(itemModel.group, subArray.at(i) as FormGroup)\r\n );\r\n }\r\n result[subModel.id] = resArray;\r\n continue;\r\n }\r\n if (subModel instanceof DynamicFormGroupModel) {\r\n result[subModel.id] = await this.serializeRecursive(subModel.group, subControl as FormGroup);\r\n continue;\r\n }\r\n if (subModel instanceof DynamicInputModel && !ObjectUtils.isNullOrUndefined(subControl.value)) {\r\n result[subModel.id] = subModel.inputType == \"number\"\r\n ? parseFloat((`${subControl.value}` || \"0\").replace(/,/gi, \".\")) || null\r\n : subControl.value;\r\n continue;\r\n }\r\n result[subModel.id] = subControl.value;\r\n }\r\n return result;\r\n }\r\n\r\n protected notifyChangesRecursive(formModel: DynamicFormModel, formGroup: FormGroup): void {\r\n if (!formModel || !formGroup) return;\r\n for (const i in formModel) {\r\n const subModel = formModel[i] as DynamicFormValueControlModel<any>;\r\n const subControl = this.findControlByModel(subModel, formGroup);\r\n if (subModel instanceof DynamicFormArrayModelBase) {\r\n const length = Array.isArray(subControl.value) ? subControl.value.length : 0;\r\n const subArray = subControl as FormArray;\r\n for (let i = 0; i < length; i++) {\r\n const itemModel = subModel.get(i);\r\n this.notifyChangesRecursive(itemModel.group, subArray.at(i) as FormGroup);\r\n }\r\n continue;\r\n }\r\n if (subModel instanceof DynamicFormGroupModel) {\r\n this.notifyChangesRecursive(subModel.group, subControl as FormGroup);\r\n continue;\r\n }\r\n this.updateSelectOptions(subModel, subControl);\r\n }\r\n }\r\n\r\n protected showErrorsForGroup(formGroup: FormGroup): void {\r\n if (!formGroup) return;\r\n formGroup.markAsTouched({onlySelf: true});\r\n const controls = Object.keys(formGroup.controls).map(id => formGroup.controls[id]);\r\n this.showErrorsForControls(controls);\r\n }\r\n\r\n protected showErrorsForControls(controls: AbstractControl[]): void {\r\n controls.forEach(control => {\r\n if (control instanceof FormGroup) {\r\n this.showErrorsForGroup(control);\r\n return;\r\n }\r\n control.markAsTouched({onlySelf: true});\r\n if (control instanceof FormArray) {\r\n this.showErrorsForControls(control.controls);\r\n }\r\n });\r\n }\r\n\r\n async getFormModelForSchema(name: string): Promise<DynamicFormModel> {\r\n this.api.cache = {};\r\n this.schemas = await this.openApi.getSchemas();\r\n return this.getFormModelForSchemaDef(this.schemas[name]);\r\n }\r\n\r\n protected getFormModelForSchemaDef(schema: IOpenApiSchema): DynamicFormModel {\r\n if (!schema)\r\n return [];\r\n return Object.keys(schema.properties || {}).map(p => {\r\n const property = schema.properties[p];\r\n return this.getFormControlModel(property, schema);\r\n }).filter(t => null !== t);\r\n }\r\n\r\n protected getFormControlModel(property: IOpenApiSchemaProperty, schema: IOpenApiSchema): DynamicFormControlModel {\r\n if (Array.isArray(property.enum) || ObjectUtils.isString(property.optionsPath)) {\r\n return new DynamicSelectModel<any>(this.getFormSelectConfig(property, schema));\r\n }\r\n switch (property.type) {\r\n case \"string\":\r\n case \"number\":\r\n case \"integer\":\r\n return new DynamicInputModel(this.getFormInputConfig(property, schema));\r\n case \"textarea\":\r\n return new DynamicTextAreaModel(this.getFormTextareaConfig(property, schema));\r\n case \"boolean\":\r\n return new DynamicCheckboxModel(this.getFormCheckboxConfig(property, schema));\r\n case \"list\":\r\n return new DynamicSelectModel<any>(this.getFormSelectConfig(property, schema));\r\n case \"array\":\r\n if (property.items?.$ref || property.$ref) {\r\n return new DynamicFormArrayModel(this.getFormArrayConfig(property, schema));\r\n } else if (property.items?.enum || property.enum) {\r\n return new DynamicSelectModel<any>(this.getFormSelectConfig(property, schema));\r\n } else {\r\n return new DynamicInputModel(this.getFormInputConfig(property, schema));\r\n }\r\n case \"file\":\r\n return new DynamicFileUploadModel(this.getFormUploadConfig(property, schema));\r\n }\r\n if (property.$ref) {\r\n return new DynamicFormGroupModel(this.getFormGroupConfig(property, schema));\r\n }\r\n return null;\r\n }\r\n\r\n protected getFormControlConfig(property: IOpenApiSchemaProperty, schema: IOpenApiSchema): DynamicFormValueControlModelConfig<any> {\r\n const validators = this.getValidators(property, schema);\r\n const errorMessages = Object.keys(validators).reduce((res, key) => {\r\n res[key] = `error.${key}`;\r\n return res;\r\n }, {});\r\n return {\r\n id: property.id,\r\n label: ObjectUtils.isString(property.label) ? property.label : property.id,\r\n hidden: property.hidden,\r\n disabled: property.disabled,\r\n validators,\r\n errorMessages,\r\n additional: Object.assign({}, property)\r\n };\r\n }\r\n\r\n protected getFormArrayConfig(property: IOpenApiSchemaProperty, schema: IOpenApiSchema): DynamicFormArrayModelConfig {\r\n const ref = property.items?.$ref || property.$ref || \"\";\r\n const subSchema = this.schemas[ref.split(\"/\").pop()];\r\n return Object.assign(this.getFormControlConfig(property, schema), {groupFactory: () => this.getFormModelForSchemaDef(subSchema)});\r\n }\r\n\r\n protected getFormGroupConfig(property: IOpenApiSchemaProperty, schema: IOpenApiSchema): DynamicFormGroupModelConfig {\r\n const ref = property.$ref || \"\";\r\n const subSchema = this.schemas[ref.split(\"/\").pop()];\r\n return Object.assign(this.getFormControlConfig(property, schema), {group: this.getFormModelForSchemaDef(subSchema)});\r\n }\r\n\r\n protected getFormInputConfig(property: IOpenApiSchemaProperty, schema: IOpenApiSchema): DynamicInputModelConfig {\r\n let inputType = StringUtils.has(property.id, \"password\", \"Password\") ? \"password\" : (property.items?.type || property.type);\r\n switch (inputType) {\r\n case \"boolean\":\r\n inputType = \"checkbox\";\r\n break;\r\n case \"textarea\":\r\n inputType = \"textarea\";\r\n break;\r\n case \"integer\":\r\n inputType = \"number\";\r\n break;\r\n }\r\n return Object.assign(\r\n this.getFormControlConfig(property, schema),\r\n {\r\n inputType,\r\n autoComplete: property.autoComplete || \"off\",\r\n multiple: property.type == \"array\",\r\n accept: ObjectUtils.isString(property.accept) ? property.accept : null,\r\n mask: ObjectUtils.isString(property.mask) ? property.mask : null,\r\n pattern: ObjectUtils.isString(property.pattern) ? property.pattern : null,\r\n step: isNaN(property.step) ? 1 : property.step,\r\n min: isNaN(property.min) ? Number.MIN_SAFE_INTEGER : property.min,\r\n max: isNaN(property.max) ? Number.MAX_SAFE_INTEGER : property.max,\r\n }\r\n );\r\n }\r\n\r\n protected getFormTextareaConfig(property: IOpenApiSchemaProperty, schema: IOpenApiSchema): DynamicTextAreaModelConfig {\r\n return Object.assign(\r\n this.getFormControlConfig(property, schema),\r\n {\r\n cols: property.cols || null,\r\n rows: property.rows || 10,\r\n wrap: property.wrap || false,\r\n autoComplete: property.autoComplete || \"off\",\r\n multiple: property.type == \"array\"\r\n }\r\n );\r\n }\r\n\r\n protected getFormSelectConfig(property: IOpenApiSchemaProperty, schema: IOpenApiSchema): DynamicSelectModelConfig<any> {\r\n return Object.assign(\r\n this.getFormControlConfig(property, schema),\r\n {\r\n options: this.getFormSelectOptions(property, schema),\r\n multiple: property.type == \"array\"\r\n }\r\n );\r\n }\r\n\r\n protected getFormCheckboxConfig(property: IOpenApiSchemaProperty, schema: IOpenApiSchema): DynamicCheckboxModelConfig {\r\n return Object.assign(\r\n this.getFormControlConfig(property, schema),\r\n {\r\n indeterminate: property.indeterminate === true\r\n }\r\n );\r\n }\r\n\r\n protected async translateOptions(options: DynamicFormOptionConfig<any>[]): Promise<DynamicFormOptionConfig<any>[]> {\r\n if (!options) return [];\r\n for (const option of options) {\r\n option.label = await this.language.getTranslation(option.label);\r\n }\r\n return options;\r\n }\r\n\r\n protected getFormSelectOptions(property: IOpenApiSchemaProperty, schema: IOpenApiSchema) {\r\n const $enum = property.items?.enum || property.enum;\r\n if (property.optionsPath) {\r\n return new FormSubject((formModel, control) => {\r\n let path = property.optionsPath;\r\n let target = control;\r\n if (path.startsWith(\"$root\")) {\r\n path = path.substr(5);\r\n while (target.parent) {\r\n target = target.parent;\r\n }\r\n }\r\n while (path.startsWith(\".\")) {\r\n path = path.substr(1);\r\n if (target.parent) {\r\n target = target.parent;\r\n }\r\n }\r\n const value = ObjectUtils.getValue(target.value, path);\r\n const options = (!ObjectUtils.isArray(value) ? []: value).map(value => ({value, label: value}));\r\n return this.translateOptions(options);\r\n });\r\n }\r\n if (ObjectUtils.isArray($enum)) {\r\n return new FormSubject(() => {\r\n const options = $enum.map(value => {\r\n const label = property.translatable ? `${property.id}.${value}` : value;\r\n return {value, label};\r\n });\r\n return this.translateOptions(options);\r\n });\r\n }\r\n return new FormSubject(async () => {\r\n this.api.cache[property.endpoint] = this.api.cache[property.endpoint] || this.api.list(property.endpoint, this.api.makeListParams(1, -1)).then(result => {\r\n return result.items.map(i => {\r\n return {value: i.id || i._id, label: i[property.labelField] || i.label || i.id || i._id};\r\n });\r\n });\r\n const options = (await this.api.cache[property.endpoint]).map(t => Object.assign({}, t));\r\n return this.translateOptions(options);\r\n });\r\n }\r\n\r\n protected getFormUploadConfig(property: IOpenApiSchemaProperty, schema: IOpenApiSchema): DynamicFileUploadModelConfig {\r\n const url = this.api.url(property.url || \"assets\");\r\n const {accept, autoUpload, maxSize, minSize, removeUrl, showFileList} = property;\r\n return Object.assign(this.getFormControlConfig(property, schema), {\r\n url,\r\n accept,\r\n autoUpload,\r\n maxSize,\r\n minSize,\r\n removeUrl,\r\n showFileList\r\n });\r\n }\r\n\r\n protected getValidators(property: IOpenApiSchemaProperty, schema: IOpenApiSchema): DynamicValidatorsConfig {\r\n const validators: DynamicValidatorsConfig = {};\r\n if (ObjectUtils.isArray(schema.required) && schema.required.indexOf(property.id) >= 0) {\r\n validators.required = null;\r\n }\r\n if (property.minLength) {\r\n validators.minLength = property.minLength;\r\n }\r\n if (property.maxLength) {\r\n validators.maxLength = property.maxLength;\r\n }\r\n if (property.min) {\r\n validators.min = property.min;\r\n }\r\n if (property.max) {\r\n validators.max = property.max;\r\n }\r\n switch (property.format) {\r\n case \"email\":\r\n validators.email = null;\r\n break;\r\n }\r\n return validators;\r\n }\r\n}\r\n","import {\r\n ChangeDetectorRef,\r\n Directive,\r\n ElementRef,\r\n EventEmitter,\r\n HostBinding,\r\n HostListener,\r\n Inject,\r\n Input,\r\n OnDestroy,\r\n OnInit,\r\n Output,\r\n Renderer2\r\n} from \"@angular/core\";\r\nimport {Subscription} from \"rxjs\";\r\nimport {IAsyncMessage, IToasterService, TOASTER_SERVICE} from \"@stemy/ngx-utils\";\r\nimport {AsyncSubmitMethod, IDynamicFormBase} from \"../common-types\";\r\n\r\n@Directive({\r\n selector: \"[async-submit]\",\r\n exportAs: \"async-submit\"\r\n})\r\nexport class AsyncSubmitDirective implements OnInit, OnDestroy {\r\n\r\n @Input(\"async-submit\") method: AsyncSubmitMethod;\r\n @Input() form: IDynamicFormBase;\r\n @Input() context: any;\r\n\r\n @Output() onSuccess: EventEmitter<IAsyncMessage>;\r\n @Output() onError: EventEmitter<IAsyncMessage>;\r\n\r\n private loading: boolean;\r\n private disabled: boolean;\r\n private callback: Function;\r\n private onStatusChange: Subscription;\r\n private onSubmit: Subscription;\r\n\r\n @HostBinding(\"class.disabled\")\r\n get isDisabled(): boolean {\r\n return this.disabled;\r\n }\r\n\r\n set isDisabled(value: boolean) {\r\n this.disabled = value;\r\n if (value) {\r\n this.renderer.setAttribute(this.elem.nativeElement, \"disabled\", \"disabled\");\r\n return;\r\n }\r\n this.renderer.removeAttribute(this.elem.nativeElement, \"disabled\");\r\n }\r\n\r\n @HostBinding(\"class.loading\")\r\n get isLoading(): boolean {\r\n return this.loading;\r\n }\r\n\r\n constructor(@Inject(TOASTER_SERVICE) private toaster: IToasterService,\r\n readonly cdr: ChangeDetectorRef,\r\n readonly elem: ElementRef,\r\n readonly renderer: Renderer2) {\r\n this.onSuccess = new EventEmitter<IAsyncMessage>();\r\n this.onError = new EventEmitter<IAsyncMessage>();\r\n if (elem.nativeElement.tagName !== \"BUTTON\") return;\r\n renderer.setAttribute(elem.nativeElement, \"type\", \"button\");\r\n }\r\n\r\n ngOnInit(): void {\r\n if (!this.form) return;\r\n this.isDisabled = this.form.status !== \"VALID\";\r\n this.cdr.detectChanges();\r\n this.onStatusChange = this.form.onStatusChange.subscribe(() => {\r\n this.isDisabled = this.form.status !== \"VALID\";\r\n this.cdr.detectChanges();\r\n if (!this.callback || this.form.status == \"PENDING\") return;\r\n if (!this.disabled) {\r\n this.callback();\r\n }\r\n this.callback = null;\r\n });\r\n this.onSubmit = this.form.onSubmit.subscribe(() => this.callMethod());\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if (this.onStatusChange) this.onStatusChange.unsubscribe();\r\n if (this.onSubmit) this.onSubmit.unsubscribe();\r\n }\r\n\r\n @HostListener(\"click\")\r\n click(): void {\r\n this.callback = () => this.callMethod();\r\n if (this.form.status !== \"VALID\" && this.form.status !== \"INVALID\") return;\r\n this.callback();\r\n this.callback = null;\r\n }\r\n\r\n callMethod(): void {\r\n if (this.loading) return;\r\n this.loading = true;\r\n this.method(this.form, this.context).then(result => {\r\n this.loading = false;\r\n if (result) {\r\n this.onSuccess.emit(result);\r\n this.toaster.success(result.message, result.context);\r\n }\r\n }, reason => {\r\n if (!reason || !reason.message)\r\n throw new Error(\"Reason must implement IAsyncMessage interface\");\r\n this.loading = false;\r\n this.onError.emit(reason);\r\n this.toaster.error(reason.message, reason.context);\r\n });\r\n }\r\n}\r\n","import {\r\n AfterViewInit,\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n ContentChildren,\r\n EventEmitter,\r\n Inject,\r\n Input,\r\n OnChanges,\r\n Output,\r\n QueryList,\r\n SimpleChanges, ViewChild,\r\n ViewChildren\r\n} from \"@angular/core\";\r\nimport {FormArray, FormGroup, NgForm} from \"@angular/forms\";\r\nimport {Subscription} from \"rxjs\";\r\nimport {first} from \"rxjs/operators\";\r\nimport {\r\n DynamicFormArrayModel,\r\n DynamicFormComponent,\r\n DynamicFormComponentService,\r\n DynamicFormControlEvent,\r\n DynamicFormLayout,\r\n DynamicFormModel,\r\n DynamicTemplateDirective\r\n} from \"@ng-dynamic-forms/core\";\r\nimport {EventsService, ObservableUtils} from \"@stemy/ngx-utils\";\r\nimport {DynamicFormState, IDynamicForm, IDynamicFormBase} from \"../../common-types\";\r\nimport {DynamicFormService} from \"../../services/dynamic-form.service\";\r\n\r\n@Component({\r\n selector: \"dynamic-base-form\",\r\n template: \"\",\r\n changeDetection: ChangeDetectionStrategy.Default\r\n})\r\nexport class DynamicBaseFormComponent extends DynamicFormComponent implements OnChanges, AfterViewInit, IDynamicForm {\r\n\r\n @Input() group: FormGroup;\r\n @Input() model: DynamicFormModel;\r\n @Input() layout: DynamicFormLayout;\r\n @Input() labelPrefix: string;\r\n\r\n @Output() blur: EventEmitter<DynamicFormControlEvent>;\r\n @Output() change: EventEmitter<DynamicFormControlEvent>;\r\n @Output() focus: EventEmitter<DynamicFormControlEvent>;\r\n\r\n @ContentChildren(DynamicTemplateDirective) contentTemplates: QueryList<DynamicTemplateDirective>;\r\n @ViewChildren(DynamicTemplateDirective) viewTemplates: QueryList<DynamicTemplateDirective>;\r\n\r\n get status(): DynamicFormState {\r\n return !this.group ? null : this.group.status as DynamicFormState;\r\n }\r\n\r\n @Output() readonly onStatusChange: EventEmitter<IDynamicFormBase>;\r\n @Output() readonly onValueChange: EventEmitter<IDynamicFormBase>;\r\n @Output() readonly onSubmit: EventEmitter<IDynamicFormBase>;\r\n\r\n @ViewChild(NgForm)\r\n protected ngForm: NgForm;\r\n protected subscription: Subscription;\r\n protected groupSubscription: Subscription;\r\n\r\n constructor(@Inject(DynamicFormService) readonly formService: DynamicFormService,\r\n @Inject(EventsService) readonly events: EventsService,\r\n changeDetectorRef: ChangeDetectorRef,\r\n componentService: DynamicFormComponentService,) {\r\n super(changeDetectorRef, componentService);\r\n this.blur = new EventEmitter<DynamicFormControlEvent>();\r\n this.change = new EventEmitter<DynamicFormControlEvent>();\r\n this.focus = new EventEmitter<DynamicFormControlEvent>();\r\n this.onStatusChange = new EventEmitter<IDynamicFormBase>();\r\n this.onValueChange = new EventEmitter<IDynamicFormBase>();\r\n this.onSubmit = new EventEmitter<IDynamicFormBase>();\r\n this.templates = new QueryList<DynamicTemplateDirective>();\r\n this.subscription = new Subscription();\r\n this.groupSubscription = new Subscription();\r\n this.labelPrefix = \"label\";\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n this.groupSubscription.unsubscribe();\r\n if (this.group) {\r\n this.groupSubscription = ObservableUtils.multiSubscription(\r\n this.group.statusChanges.subscribe(() => {\r\n this.onStatusChange.emit(this);\r\n }),\r\n this.group.valueChanges.subscribe(() => {\r\n this.onValueChange.emit(this);\r\n this.formService.notifyChanges(this.model, this.group);\r\n })\r\n );\r\n }\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this.subscription = ObservableUtils.multiSubscription(\r\n ObservableUtils.subscribe(\r\n {\r\n subjects: [this.contentTemplates.changes, this.viewTemplates.changes],\r\n cb: () => {\r\n const templates = this.contentTemplates.toArray().concat(this.viewTemplates.toArray());\r\n this.templates.reset(templates);\r\n }\r\n }\r\n ),\r\n this.events.languageChanged.subscribe(() => {\r\n this.formService.detectChanges(this)\r\n }),\r\n this.ngForm.ngSubmit.subscribe(() => {\r\n this.onSubmit.emit(this);\r\n })\r\n );\r\n }\r\n\r\n ngOnDestroy(): void {\r\n super.ngOnDestroy();\r\n this.subscription.unsubscribe();\r\n this.groupSubscription.unsubscribe();\r\n }\r\n\r\n insertFormArrayGroup(index: number, formArray: FormArray, formArrayModel: DynamicFormArrayModel): void {\r\n this.formService.insertFormArrayGroup(index, formArray, formArrayModel);\r\n this.changeDetectorRef.detectChanges();\r\n }\r\n\r\n removeFormArrayGroup(index: number, formArray: FormArray, formArrayModel: DynamicFormArrayModel): void {\r\n this.formService.removeFormArrayGroup(index, formArray, formArrayModel);\r\n this.changeDetectorRef.detectChanges();\r\n }\r\n\r\n moveFormArrayGroup(index: number, step: number, formArray: FormArray, formArrayModel: DynamicFormArrayModel): void {\r\n this.formService.moveFormArrayGroup(index, step, formArray, formArrayModel);\r\n this.changeDetectorRef.detectChanges();\r\n }\r\n\r\n clearFormArray(formArray: FormArray, formArrayModel: DynamicFormArrayModel): void {\r\n this.formService.clearFormArray(formArray, formArrayModel);\r\n this.changeDetectorRef.detectChanges();\r\n }\r\n\r\n validate(showErrors: boolean = true): Promise<any> {\r\n if (!this.group) return Promise.resolve();\r\n return new Promise<any>((resolve, reject) => {\r\n this.group.statusChanges.pipe(first(status => status == \"VALID\" || status == \"INVALID\")).subscribe(status => {\r\n if (showErrors) {\r\n this.formService.showErrors(this);\r\n }\r\n if (status == \"VALID\") {\r\n resolve(null);\r\n return;\r\n }\r\n reject(null);\r\n });\r\n this.group.updateValueAndValidity();\r\n });\r\n }\r\n\r\n async serialize(validate?: boolean): Promise<any> {\r\n if (!this.group) return null;\r\n if (validate) {\r\n await this.validate();\r\n }\r\n return await this.formService.serialize(this.model, this.group);\r\n }\r\n}\r\n","import {\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n ComponentFactoryResolver,\r\n ContentChildren,\r\n EventEmitter,\r\n HostBinding,\r\n Input,\r\n OnInit,\r\n Output,\r\n QueryList,\r\n Type,\r\n ViewChild,\r\n ViewContainerRef\r\n} from \"@angular/core\";\r\nimport {FormGroup} from \"@angular/forms\";\r\nimport {Subscription} from \"rxjs\";\r\nimport {\r\n DYNAMIC_FORM_CONTROL_TYPE_ARRAY,\r\n DynamicFormArrayGroupModel,\r\n DynamicFormComponentService,\r\n DynamicFormControl,\r\n DynamicFormControlContainerComponent,\r\n DynamicFormControlEvent,\r\n DynamicFormControlModel,\r\n DynamicFormLayout,\r\n DynamicFormLayoutService,\r\n DynamicFormRelationService,\r\n DynamicFormValidationService,\r\n DynamicTemplateDirective\r\n} from \"@ng-dynamic-forms/core\";\r\nimport {DynamicBaseFormComponent} from \"./dynamic-base-form.component\";\r\nimport {DynamicFormService} from \"../../services/dynamic-form.service\";\r\nimport {ObjectUtils} from \"@stemy/ngx-utils\";\r\nimport {OnCreatedFormControl} from \"../../common-types\";\r\n\r\n@Component({\r\n selector: \"dynamic-base-form-control\",\r\n template: \"\",\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class DynamicBaseFormControlContainerComponent extends DynamicFormControlContainerComponent implements OnInit {\r\n\r\n @ContentChildren(DynamicTemplateDirective) contentTemplateList: QueryList<DynamicTemplateDirective>;\r\n\r\n @HostBinding(\"class\") klass;\r\n\r\n @Input() context: DynamicFormArrayGroupModel | null = null;\r\n @Input() group: FormGroup;\r\n @Input() hostClass: string[];\r\n @Input(\"templates\") inputTemplateList: QueryList<DynamicTemplateDirective>;\r\n @Input() layout: DynamicFormLayout;\r\n @Input() model: DynamicFormControlModel;\r\n\r\n @Output() blur: EventEmitter<DynamicFormControlEvent> = new EventEmitter<DynamicFormControlEvent>();\r\n @Output() change: EventEmitter<DynamicFormControlEvent> = new EventEmitter<DynamicFormControlEvent>();\r\n @Output() focus: EventEmitter<DynamicFormControlEvent> = new EventEmitter<DynamicFormControlEvent>();\r\n\r\n @ViewChild(\"componentViewContainer\", {read: ViewContainerRef, static: true}) componentViewContainerRef: ViewContainerRef;\r\n\r\n protected onDetectChanges: Subscription;\r\n\r\n get componentType(): Type<DynamicFormControl> | null {\r\n return this.componentService.getCustomComponentType(this.model) ?? this.getComponentType(this.model);\r\n }\r\n\r\n get startTemplate(): DynamicTemplateDirective {\r\n return (this.model.type == DYNAMIC_FORM_CONTROL_TYPE_ARRAY)\r\n ? this.layoutService.getAlignedTemplate(this.model, this.templates, \"ARRAY_START\" as any)\r\n : this.layoutService.getStartTemplate(this.model, this.templates);\r\n }\r\n\r\n get endTemplate(): DynamicTemplateDirective {\r\n return (this.model.type == DYNAMIC_FORM_CONTROL_TYPE_ARRAY)\r\n ? this.layoutService.getAlignedTemplate(this.model, this.templates, \"ARRAY_END\" as any)\r\n : this.layoutService.getEndTemplate(this.model, this.templates);\r\n }\r\n\r\n get formService(): DynamicFormService {\r\n return this.form.formService;\r\n }\r\n\r\n constructor(readonly form: DynamicBaseFormComponent,\r\n readonly changeDetectorRef: ChangeDetectorRef,\r\n readonly componentFactoryResolver: ComponentFactoryResolver,\r\n readonly layoutService: DynamicFormLayoutService,\r\n readonly validationService: DynamicFormValidationService,\r\n readonly componentService: DynamicFormComponentService,\r\n readonly relationService: DynamicFormRelationService) {\r\n super(changeDetectorRef, componentFactoryResolver, layoutService, validationService, componentService, relationService);\r\n }\r\n\r\n ngOnInit(): void {\r\n this.onDetectChanges = this.formService.onDetectChanges.subscribe(form => {\r\n if (form !== this.form) return;\r\n this.changeDetectorRef.detectChanges();\r\n this.formService.updateSelectOptions(this.model, this.control);\r\n });\r\n }\r\n\r\n ngOnDestroy() {\r\n super.ngOnDestroy();\r\n this.onDetectChanges.unsubscribe();\r\n }\r\n\r\n protected createFormControlComponent() {\r\n super.createFormControlComponent();\r\n const component = this.componentRef?.instance as OnCreatedFormControl;\r\n if (!component || !ObjectUtils.isFunction(component.onCreated)) return;\r\n component.onCreated();\r\n }\r\n\r\n protected getComponentType(model: DynamicFormControlModel): Type<DynamicFormControl> | null {\r\n return null;\r\n }\r\n}\r\n","import {Injectable} from \"@angular/core\";\r\nimport {DynamicFormControlModel, DynamicFormValidationService as Base} from \"@ng-dynamic-forms/core\";\r\nimport {AbstractControl} from \"@angular/forms\";\r\n\r\n@Injectable()\r\nexport class DynamicFormValidationService extends Base {\r\n\r\n showErrorMessages(control: AbstractControl, model: DynamicFormControlModel, hasFocus: boolean): boolean {\r\n return super.showErrorMessages(control, model, hasFocus);\r\n }\r\n}\r\n","import {ModuleWithProviders, NgModule} from \"@angular/core\";\r\nimport {CommonModule} from \"@angular/common\";\r\nimport {FormsModule, NG_VALIDATORS, ReactiveFormsModule} from \"@angular/forms\";\r\nimport {\r\n DYNAMIC_VALIDATORS,\r\n DynamicFormService as BaseDynamicFormService,\r\n DynamicFormValidationService as BaseDynamicFormValidationService,\r\n Validator,\r\n ValidatorFactory\r\n} from \"@ng-dynamic-forms/core\";\r\nimport {NgxUtilsModule} from \"@stemy/ngx-utils\";\r\n\r\nimport {DynamicFormService} from \"./services/dynamic-form.service\";\r\n\r\nimport {AsyncSubmitDirective} from \"./directives/async-submit.directive\";\r\n\r\nimport {validateJSON, validatePhone, validateRequiredTranslation} from \"./utils/validators\";\r\n\r\nimport {DynamicBaseFormComponent} from \"./components/base/dynamic-base-form.component\";\r\nimport {DynamicBaseFormControlContainerComponent} from \"./components/base/dynamic-base-form-control-container.component\";\r\nimport {DynamicFormValidationService} from \"./services/dynamic-form-validation.service\";\r\n\r\n// --- Components ---\r\nexport const components = [\r\n DynamicBaseFormComponent,\r\n DynamicBaseFormControlContainerComponent\r\n];\r\n\r\n// --- Directives ---\r\nexport const directives = [\r\n AsyncSubmitDirective,\r\n];\r\n\r\n// --- Pipes ---\r\nexport const pipes = [];\r\n\r\n@NgModule({\r\n declarations: [\r\n ...components,\r\n ...directives,\r\n ...pipes\r\n ],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n NgxUtilsModule\r\n ],\r\n exports: [\r\n ...components,\r\n ...directives,\r\n ...pipes,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n NgxUtilsModule\r\n ],\r\n entryComponents: components,\r\n providers: [\r\n ...pipes,\r\n {provide: NG_VALIDATORS, useValue: validateJSON, multi: true},\r\n {provide: NG_VALIDATORS, useValue: validateRequiredTranslation, multi: true},\r\n {provide: NG_VALIDATORS, useValue: validatePhone, multi: true},\r\n {\r\n provide: DYNAMIC_VALIDATORS,\r\n useValue: new Map<string, Validator | ValidatorFactory>([\r\n [\"validateJSON\", validateJSON],\r\n [\"validateRequiredTranslation\", validateRequiredTranslation],\r\n [\"validatePhone\", validatePhone],\r\n ])\r\n }\r\n ]\r\n})\r\nexport class NgxDynamicFormModule {\r\n\r\n static forRoot(): ModuleWithProviders<NgxDynamicFormModule> {\r\n return {\r\n ngModule: NgxDynamicFormModule,\r\n providers: [\r\n DynamicFormService,\r\n DynamicFormValidationService,\r\n {\r\n provide: BaseDynamicFormService,\r\n useExisting: DynamicFormService\r\n },\r\n {\r\n provide: BaseDynamicFormValidationService,\r\n useExisting: DynamicFormValidationService\r\n }\r\n ]\r\n }\r\n }\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n\nexport {components as ɵa,directives as ɵb,pipes as ɵc} from './ngx-dynamic-form/ngx-dynamic-form.module';\nexport {DynamicFormValidationService as ɵd} from './ngx-dynamic-form/services/dynamic-form-validation.service';"],"names":["ReflectUtils","ObjectUtils","UniqueUtils","Subject","Base","EventEmitter","DynamicSelectModel","DynamicFormArrayModelBase","DynamicFormGroupModel","DynamicInputModel","FormGroup","FormArray","DynamicTextAreaModel","DynamicCheckboxModel","DynamicFileUploadModel","StringUtils","Injectable","DynamicFormComponentService","DynamicFormValidationService","OpenApiService","Directive","Inject","TOASTER_SERVICE","ChangeDetectorRef","ElementRef","Renderer2","Input","Output","HostBinding","HostListener","QueryList","Subscription","ObservableUtils","first","DynamicFormComponent","Component","ChangeDetectionStrategy","EventsService","ContentChildren","DynamicTemplateDirective","ViewChildren","ViewChild","NgForm","DYNAMIC_FORM_CONTROL_TYPE_ARRAY","DynamicFormControlContainerComponent","ComponentFactoryResolver","DynamicFormLayoutService","DynamicFormRelationService","ViewContainerRef","BaseDynamicFormService","BaseDynamicFormValidationService","NgModule","CommonModule","FormsModule","ReactiveFormsModule","NgxUtilsModule","NG_VALIDATORS","DYNAMIC_VALIDATORS"],"mappings":"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"}
1
+ {"version":3,"file":"stemy-ngx-dynamic-form.umd.js","sources":["../../src/ngx-dynamic-form/common-types.ts","../../src/ngx-dynamic-form/utils/validators.ts","../../node_modules/tslib/tslib.es6.js","../../src/ngx-dynamic-form/utils/form-subject.ts","../../src/ngx-dynamic-form/utils/dynamic-form-array.model.ts","../../src/ngx-dynamic-form/services/dynamic-form.service.ts","../../src/ngx-dynamic-form/directives/async-submit.directive.ts","../../src/ngx-dynamic-form/components/base/dynamic-base-form.component.ts","../../src/ngx-dynamic-form/components/base/dynamic-base-form-control-container.component.ts","../../src/ngx-dynamic-form/services/dynamic-form-validation.service.ts","../../src/ngx-dynamic-form/ngx-dynamic-form.module.ts","../../src/stemy-ngx-dynamic-form.ts"],"sourcesContent":["import {EventEmitter, TemplateRef} from \"@angular/core\";\r\nimport {AbstractControl, FormArray} from \"@angular/forms\";\r\nimport {Observable} from \"rxjs\";\r\nimport {\r\n DynamicFormControl,\r\n DynamicFormOptionConfig,\r\n DynamicFormValueControlModel,\r\n DynamicValidatorDescriptor,\r\n DynamicValidatorsConfig\r\n} from \"@ng-dynamic-forms/core\";\r\nimport {\r\n IAsyncMessage,\r\n IRequestOptions,\r\n IResolveFactory,\r\n ObjectUtils,\r\n ReflectUtils,\r\n UniqueUtils\r\n} from \"@stemy/ngx-utils\";\r\n\r\n// --- Basic form control interfaces ---\r\n\r\nexport interface IDynamicFormBase {\r\n\r\n status: DynamicFormState;\r\n\r\n onStatusChange: EventEmitter<IDynamicFormBase>;\r\n onValueChange: EventEmitter<IDynamicFormBase>;\r\n onSubmit: EventEmitter<IDynamicFormBase>;\r\n\r\n validate(): Promise<any>;\r\n serialize(validate?: boolean): Promise<any>;\r\n}\r\n\r\nexport interface IDynamicForm extends IDynamicFormBase{\r\n\r\n}\r\n\r\nexport interface OnCreatedFormControl extends DynamicFormControl {\r\n onCreated(): any;\r\n}\r\n\r\nexport type IFormControlSerializer = (model: DynamicFormValueControlModel<any>, control: AbstractControl) => Promise<any>;\r\nexport type IFormInputMask = string | RegExp;\r\nexport type IFormInputMaskFunction = (raw: string) => IFormInputMask[];\r\nexport type IFormInputUnMaskFunction = (value: string) => any;\r\n\r\nexport interface IFormSerializer {\r\n id: string;\r\n func: IFormControlSerializer;\r\n}\r\n\r\nexport interface IFormSerializers {\r\n [id: string]: IFormControlSerializer | IResolveFactory | null\r\n}\r\n\r\nexport type DynamicFormState = \"VALID\" | \"INVALID\" | \"PENDING\" | \"DISABLED\" | \"LOADING\";\r\nexport type DynamicFormUpdateOn = \"change\" | \"blur\" | \"submit\";\r\n\r\nexport interface IFormControl {\r\n id: string;\r\n type: string;\r\n visible?: boolean;\r\n data?: IFormControlData;\r\n}\r\n\r\nexport interface IFormControlData {\r\n label?: string;\r\n labelAlign?: string;\r\n fieldSet?: string;\r\n classes?: string;\r\n readonly?: FormControlTesterFactory;\r\n hidden?: FormControlTesterFactory;\r\n shouldSerialize?: FormControlTesterFactory;\r\n shouldValidate?: FormControlTesterFactory;\r\n validator?: DynamicValidatorDescriptor;\r\n validators?: DynamicValidatorsConfig;\r\n updateOn?: DynamicFormUpdateOn;\r\n reload?: string | string[];\r\n}\r\n\r\nexport interface IFormInputData extends IFormControlData {\r\n type?: string;\r\n autocomplete?: string;\r\n placeholder?: string;\r\n useLanguage?: boolean;\r\n mask?: IFormInputMaskFunction | IFormInputMask[];\r\n unmask?: IFormInputUnMaskFunction;\r\n step?: number;\r\n min?: number;\r\n max?: number;\r\n}\r\n\r\nexport interface IFormSelectData extends IFormControlData {\r\n options?: DynamicFormOptionConfig<any>[] | Observable<DynamicFormOptionConfig<any>[]>;\r\n emptyOption?: boolean;\r\n type?: string;\r\n multi?: boolean;\r\n}\r\n\r\nexport interface IFormStaticData extends IFormControlData {\r\n properties?: string[];\r\n style?: string;\r\n}\r\n\r\nexport interface IFormFileData extends IFormControlData {\r\n accept?: string;\r\n multi?: boolean;\r\n baseUrl?: string;\r\n asFile?: boolean;\r\n asDataUrl?: boolean;\r\n uploadUrl?: string;\r\n uploadOptions?: IRequestOptions;\r\n createUploadData?: (file: File) => any;\r\n}\r\n\r\nexport interface IFormModelData extends IFormControlData, IDynamicFormInfo {\r\n\r\n}\r\n\r\nexport interface IFormFieldSet {\r\n id: string;\r\n classes?: string;\r\n title?: string;\r\n titleClasses?: string;\r\n setClasses?: string;\r\n controlClasses?: string;\r\n}\r\n\r\nexport interface IFormControlOption {\r\n id: any;\r\n label: string;\r\n selectable?: boolean;\r\n}\r\n\r\n// --- Basic form interfaces ---\r\n\r\nexport interface IDynamicFormTemplates {\r\n [id: string]: TemplateRef<any>;\r\n}\r\n\r\nexport interface IDynamicFormConfig {\r\n path?: string | number | Array<string | number>;\r\n name?: string;\r\n classes?: string;\r\n formClasses?: string;\r\n innerFormClasses?: string;\r\n id: string;\r\n}\r\n\r\nexport interface IDynamicSingleFormConfig extends IDynamicFormConfig, IDynamicFormInfo {\r\n data: any;\r\n controlData?: IFormControlData;\r\n multi?: false;\r\n}\r\n\r\nexport interface IDynamicMultiFormConfig extends IDynamicFormConfig {\r\n data: IDynamicFormsConfigs;\r\n multi: true;\r\n}\r\n\r\nexport type IDynamicFormsConfigs = Array<IDynamicSingleFormConfig | IDynamicMultiFormConfig>;\r\n\r\nexport declare type AsyncSubmitMethod = (form: IDynamicFormBase, context?: any) => Promise<IAsyncMessage>;\r\n\r\nexport interface IDynamicFormInfo {\r\n name?: string;\r\n controls?: IFormControl[];\r\n serializers?: IFormSerializers;\r\n fieldSets?: IFormFieldSet[];\r\n}\r\n\r\nexport interface IDynamicFormFieldSets {\r\n [id: string]: IFormFieldSet\r\n}\r\n\r\n// --- Basic form types ---\r\nexport type FormControlTester = (control: AbstractControl) => Promise<boolean>;\r\nexport type FormControlTesterFactory = FormControlTester | IResolveFactory;\r\n\r\n// --- Decorator functions ---\r\nconst emptyArray: any = [];\r\nconst emptyTester: FormControlTester = () => {\r\n return Promise.resolve(false);\r\n};\r\n\r\nexport function defaultSerializer(id: string, parent: FormArray): Promise<any> {\r\n const control = parent.get(id);\r\n return !control ? null: control.value;\r\n}\r\n\r\nexport function FormSerializable(serializer?: IFormControlSerializer | IResolveFactory): PropertyDecorator {\r\n return (target: any, propertyKey: string): void => {\r\n ReflectUtils.defineMetadata(\"dynamicFormSerializer\", serializer || defaultSerializer, target, propertyKey);\r\n };\r\n}\r\n\r\nexport function FormInput(data?: IFormInputData): PropertyDecorator {\r\n return (target: any, propertyKey: string): void => {\r\n const meta = ReflectUtils.getOwnMetadata(\"design:type\", target, propertyKey);\r\n const type = meta ? meta.name : \"\";\r\n let inputType = propertyKey.indexOf(\"password\") < 0 ? \"text\" : \"password\";\r\n switch (type) {\r\n case \"Number\":\r\n inputType = \"number\";\r\n break;\r\n case \"Boolean\":\r\n inputType = \"checkbox\";\r\n break;\r\n }\r\n defineFormControl(target, propertyKey, createFormInput(propertyKey, data, inputType));\r\n };\r\n}\r\n\r\nexport function FormSelect(data?: IFormSelectData): PropertyDecorator {\r\n return (target: any, propertyKey: string): void => {\r\n defineFormControl(target, propertyKey, createFormSelect(propertyKey, data));\r\n };\r\n}\r\n\r\nexport function FormStatic(data?: IFormStaticData): PropertyDecorator {\r\n return (target: any, propertyKey: string): void => {\r\n defineFormControl(target, propertyKey, createFormStatic(propertyKey, data));\r\n };\r\n}\r\n\r\nexport function FormModel(data?: IFormModelData): PropertyDecorator {\r\n return (target: any, propertyKey: string): void => {\r\n defineFormControl(target, propertyKey, createFormModel(propertyKey, data));\r\n };\r\n}\r\n\r\nexport function FormFile(data?: IFormFileData): PropertyDecorator {\r\n return (target: any, propertyKey: string): void => {\r\n defineFormControl(target, propertyKey, createFormFile(propertyKey, data));\r\n };\r\n}\r\n\r\nexport function FormFieldSet(data: IFormFieldSet): ClassDecorator {\r\n return (target: any): void => {\r\n const sets = getFormFieldSets(target);\r\n data.classes = data.classes || \"\";\r\n sets[data.id] = data;\r\n ReflectUtils.defineMetadata(\"dynamicFormFieldSets\", sets, target);\r\n };\r\n}\r\n\r\nexport function defineFormControl(target: any, propertyKey: string, control: IFormControl): void {\r\n ReflectUtils.defineMetadata(\"dynamicFormControl\", control, target, propertyKey);\r\n}\r\n\r\nexport function getFormFieldSets(target: any): IDynamicFormFieldSets {\r\n return ReflectUtils.getMetadata(\"dynamicFormFieldSets\", target) || {};\r\n}\r\n\r\nexport function getFormControl(target: any, propertyKey: string): IFormControl {\r\n return ReflectUtils.getMetadata(\"dynamicFormControl\", target, propertyKey);\r\n}\r\n\r\nexport function getFormSerializer(target: any, propertyKey: string): IFormControlSerializer | IResolveFactory {\r\n return ReflectUtils.getMetadata(\"dynamicFormSerializer\", target, propertyKey);\r\n}\r\n\r\nexport function createFormControl(id: string, type: string, data?: IFormControlData): IFormControl {\r\n data = data || {};\r\n data.label = ObjectUtils.isNullOrUndefined(data.label) ? id : data.label;\r\n data.labelAlign = data.labelAlign || \"left\";\r\n data.fieldSet = data.fieldSet || UniqueUtils.uuid();\r\n data.classes = data.classes || \"\";\r\n data.readonly = data.readonly || emptyTester;\r\n data.hidden = data.hidden || emptyTester;\r\n data.validators = data.validators || emptyArray;\r\n return {\r\n id: id,\r\n type: type,\r\n data: data\r\n };\r\n}\r\n\r\nexport function createFormInput(id: string, data: IFormInputData, type: string = \"text\"): IFormControl {\r\n const control = createFormControl(id, \"input\", data);\r\n data = control.data;\r\n data.type = data.type || type;\r\n data.classes = !data.classes ? `form-group-${data.type}` : `${data.classes} form-group-${data.type}`;\r\n data.placeholder = data.placeholder || (data.type == \"mask\" ? \"_\" : \"\");\r\n data.step = data.step || 1;\r\n data.mask = data.mask || [/\\w*/gi];\r\n return control;\r\n}\r\n\r\nexport function createFormSelect(id: string, data: IFormSelectData): IFormControl {\r\n const control = createFormControl(id, \"select\", data);\r\n data = control.data;\r\n data.options = data.options || [];\r\n data.type = data.type || \"select\";\r\n const classType = data.type == \"select\" ? \"select\" : `select-${data.type}`;\r\n data.classes = !data.classes ? `form-group-${classType}` : `${data.classes} form-group-${classType}`;\r\n return control;\r\n}\r\n\r\nexport function createFormStatic(id: string, data: IFormStaticData): IFormControl {\r\n const control = createFormControl(id, \"static\", data);\r\n data = control.data;\r\n data.style = data.style || \"table\";\r\n return control;\r\n}\r\n\r\nexport function createFormModel(id: string, data: IFormModelData): IFormControl {\r\n const control = createFormControl(id, \"model\", data);\r\n data = control.data;\r\n data.name = data.name || \"\";\r\n return control;\r\n}\r\n\r\nexport function createFormFile(id: string, data: IFormFileData): IFormControl {\r\n const control = createFormControl(id, \"file\", data);\r\n data = control.data;\r\n data.accept = data.accept || \".jpg,.jpeg,.png\";\r\n data.multi = data.multi || false;\r\n data.baseUrl = ObjectUtils.isString(data.baseUrl) ? data.baseUrl : \"assets/\";\r\n data.uploadUrl = ObjectUtils.isString(data.uploadUrl) ? data.uploadUrl : \"assets\";\r\n data.createUploadData = data.createUploadData || ((file: File) => {\r\n const form = new FormData();\r\n form.append(\"file\", file);\r\n return form;\r\n });\r\n return control;\r\n}\r\n","import {AbstractControl, ValidationErrors} from \"@angular/forms\";\r\n\r\nexport function validateJSON(control: AbstractControl): ValidationErrors | null {\r\n const value = control.value;\r\n if (!value) return null;\r\n try {\r\n JSON.parse(value);\r\n return null;\r\n } catch (e) {\r\n return {json: true};\r\n }\r\n}\r\n\r\nexport function validateRequiredTranslation(control: AbstractControl): ValidationErrors | null {\r\n const value: any[] = control.value;\r\n if (!value || value.length == 0) return {requiredTranslation: true};\r\n return value.findIndex(t => (t.lang == \"de\" || t.lang == \"en\") && !t.translation) < 0\r\n ? null\r\n : {requiredTranslation: true};\r\n}\r\n\r\nexport function validatePhone(control: AbstractControl): ValidationErrors | null {\r\n const value = control.value;\r\n if (!value) return Promise.resolve(null);\r\n const phoneRegexp = /^(?:\\d){10,12}$/;\r\n return phoneRegexp.test(value) ? null : {phone: true};\r\n}\r\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","import {Subject} from \"rxjs\";\r\nimport {AbstractControl} from \"@angular/forms\";\r\nimport {DynamicFormControlModel} from \"@ng-dynamic-forms/core\";\r\n\r\nexport class FormSubject<T> extends Subject<T> {\r\n\r\n private readonly notifyCallback: (controlModel: DynamicFormControlModel, control: AbstractControl) => T | Promise<T>;\r\n\r\n constructor(notifyCallback: (formModel: DynamicFormControlModel, control: AbstractControl) => T | Promise<T>) {\r\n super();\r\n this.notifyCallback = notifyCallback;\r\n }\r\n\r\n async notify(controlModel: DynamicFormControlModel, control: AbstractControl): Promise<any> {\r\n let value = this.notifyCallback(controlModel, control);\r\n if (value instanceof Promise) {\r\n value = await value;\r\n }\r\n this.next(value);\r\n }\r\n}\r\n","import {\r\n DynamicFormArrayModel as Base,\r\n DynamicFormArrayModelConfig as ConfigBase,\r\n DynamicFormControlLayout\r\n} from \"@ng-dynamic-forms/core\";\r\n\r\nexport interface DynamicFormArrayModelConfig extends ConfigBase {\r\n additional?: {[key: string]: any};\r\n}\r\n\r\nexport class DynamicFormArrayModel extends Base {\r\n\r\n readonly additional: {[key: string]: any};\r\n\r\n constructor(config: DynamicFormArrayModelConfig, layout?: DynamicFormControlLayout) {\r\n super(config, layout);\r\n this.additional = config.additional || {};\r\n }\r\n}\r\n","import {EventEmitter, Injectable} from \"@angular/core\";\r\nimport {AbstractControl, FormArray, FormGroup} from \"@angular/forms\";\r\nimport {Subject} from \"rxjs\";\r\nimport {\r\n DynamicCheckboxModel,\r\n DynamicCheckboxModelConfig,\r\n DynamicFileUploadModel,\r\n DynamicFileUploadModelConfig,\r\n DynamicFormComponent,\r\n DynamicFormComponentService,\r\n DynamicFormControlModel,\r\n DynamicFormGroupModel,\r\n DynamicFormGroupModelConfig,\r\n DynamicFormModel,\r\n DynamicFormOptionConfig,\r\n DynamicFormService as Base,\r\n DynamicFormValidationService,\r\n DynamicFormValueControlModel,\r\n DynamicFormValueControlModelConfig,\r\n DynamicInputModel,\r\n DynamicInputModelConfig,\r\n DynamicSelectModel,\r\n DynamicSelectModelConfig,\r\n DynamicTextAreaModel,\r\n DynamicTextAreaModelConfig,\r\n DynamicValidatorsConfig,\r\n DynamicFormArrayModel as DynamicFormArrayModelBase\r\n} from \"@ng-dynamic-forms/core\";\r\nimport {\r\n IApiService,\r\n ILanguageService,\r\n IOpenApiSchema,\r\n IOpenApiSchemaProperty,\r\n IOpenApiSchemas,\r\n ObjectUtils,\r\n OpenApiService,\r\n StringUtils\r\n} from \"@stemy/ngx-utils\";\r\n\r\nimport {IFormControlSerializer} from \"../common-types\";\r\n\r\nimport {FormSubject} from \"../utils/form-subject\";\r\nimport {DynamicFormArrayModel, DynamicFormArrayModelConfig} from \"../utils/dynamic-form-array.model\";\r\n\r\n@Injectable()\r\nexport class DynamicFormService extends Base {\r\n\r\n get api(): IApiService {\r\n return this.openApi.api;\r\n }\r\n\r\n get language(): ILanguageService {\r\n return this.api.language;\r\n }\r\n\r\n readonly onDetectChanges: EventEmitter<DynamicFormComponent>;\r\n protected schemas: IOpenApiSchemas;\r\n\r\n constructor(cs: DynamicFormComponentService, vs: DynamicFormValidationService, readonly openApi: OpenApiService) {\r\n super(cs, vs);\r\n this.onDetectChanges = new EventEmitter<DynamicFormComponent>();\r\n }\r\n\r\n patchGroup(value: any, formModel: DynamicFormModel, formGroup: FormGroup): void {\r\n this.patchValueRecursive(value, formModel, formGroup);\r\n this.detectChanges();\r\n formGroup.patchValue(ObjectUtils.copy(value));\r\n }\r\n\r\n patchForm(value: any, component: DynamicFormComponent): void {\r\n this.patchValueRecursive(value, component.model, component.group);\r\n this.detectChanges(component);\r\n component.group.patchValue(value);\r\n }\r\n\r\n serialize(formModel: DynamicFormModel, formGroup: FormGroup): Promise<any> {\r\n return this.serializeRecursive(formModel, formGroup);\r\n }\r\n\r\n notifyChanges(formModel: DynamicFormModel, formGroup: FormGroup): void {\r\n this.notifyChangesRecursive(formModel, formGroup);\r\n }\r\n\r\n updateSelectOptions(formControlModel: DynamicFormControlModel, formControl: AbstractControl): void {\r\n if (formControlModel instanceof DynamicSelectModel) {\r\n let options = formControlModel.options$;\r\n if (options instanceof FormSubject) {\r\n options.notify(formControlModel, formControl);\r\n return;\r\n }\r\n while (options instanceof Subject && options.source) {\r\n options = options.source;\r\n if (options instanceof FormSubject) {\r\n options.notify(formControlModel, formControl);\r\n }\r\n }\r\n }\r\n }\r\n\r\n showErrors(form: DynamicFormComponent): void {\r\n this.showErrorsForGroup(form.group);\r\n this.detectChanges(form);\r\n }\r\n\r\n detectChanges(formComponent?: DynamicFormComponent) {\r\n super.detectChanges(formComponent);\r\n this.onDetectChanges.emit(formComponent);\r\n }\r\n\r\n protected patchValueRecursive(value: any, formModel: DynamicFormModel, formGroup: FormGroup): void {\r\n Object.keys(value).forEach(key => {\r\n const subModel = this.findModelById(key, formModel);\r\n const subValue = value[key];\r\n if (!subModel) return;\r\n const subControl = this.findControlByModel(subModel, formGroup);\r\n if (subModel instanceof DynamicSelectModel && ObjectUtils.isObject(subValue)) {\r\n value[key] = subValue.id || subValue._id || subValue;\r\n return;\r\n }\r\n if (subModel instanceof DynamicFormArrayModelBase) {\r\n const length = Array.isArray(subValue) ? subValue.length : 0;\r\n const subArray = subControl as FormArray;\r\n while (subModel.size > length) {\r\n this.removeFormArrayGroup(0, subArray, subModel);\r\n }\r\n while (subModel.size < length) {\r\n this.insertFormArrayGroup(subModel.size, subArray, subModel);\r\n }\r\n for (let i = 0; i < length; i++) {\r\n const itemModel = subModel.get(i);\r\n this.patchValueRecursive(subValue[i], itemModel.group, subArray.at(i) as FormGroup);\r\n }\r\n return;\r\n }\r\n if (subModel instanceof DynamicFormGroupModel) {\r\n this.patchValueRecursive(subValue, subModel.group, subControl as FormGroup);\r\n }\r\n });\r\n }\r\n\r\n protected async serializeRecursive(formModel: DynamicFormModel, formGroup: FormGroup): Promise<any> {\r\n const result = {};\r\n if (!formModel || !formGroup || !formGroup.value) return result;\r\n for (const i in formModel) {\r\n const subModel = formModel[i] as DynamicFormValueControlModel<any>;\r\n const subControl = this.findControlByModel(subModel, formGroup);\r\n const serializer = subModel.additional?.serializer as IFormControlSerializer;\r\n if (ObjectUtils.isFunction(serializer)) {\r\n result[subModel.id] = await serializer(subModel, subControl);\r\n continue;\r\n }\r\n if (subModel instanceof DynamicFormArrayModelBase) {\r\n const length = Array.isArray(subControl.value) ? subControl.value.length : 0;\r\n const subArray = subControl as FormArray;\r\n const resArray = [];\r\n for (let i = 0; i < length; i++) {\r\n const itemModel = subModel.get(i);\r\n resArray.push(\r\n await this.serializeRecursive(itemModel.group, subArray.at(i) as FormGroup)\r\n );\r\n }\r\n result[subModel.id] = resArray;\r\n continue;\r\n }\r\n if (subModel instanceof DynamicFormGroupModel) {\r\n result[subModel.id] = await this.serializeRecursive(subModel.group, subControl as FormGroup);\r\n continue;\r\n }\r\n if (subModel instanceof DynamicInputModel && !ObjectUtils.isNullOrUndefined(subControl.value)) {\r\n result[subModel.id] = subModel.inputType == \"number\"\r\n ? parseFloat((`${subControl.value}` || \"0\").replace(/,/gi, \".\")) ?? null\r\n : subControl.value;\r\n continue;\r\n }\r\n result[subModel.id] = subControl.value;\r\n }\r\n return result;\r\n }\r\n\r\n protected notifyChangesRecursive(formModel: DynamicFormModel, formGroup: FormGroup): void {\r\n if (!formModel || !formGroup) return;\r\n for (const i in formModel) {\r\n const subModel = formModel[i] as DynamicFormValueControlModel<any>;\r\n const subControl = this.findControlByModel(subModel, formGroup);\r\n if (subModel instanceof DynamicFormArrayModelBase) {\r\n const length = Array.isArray(subControl.value) ? subControl.value.length : 0;\r\n const subArray = subControl as FormArray;\r\n for (let i = 0; i < length; i++) {\r\n const itemModel = subModel.get(i);\r\n this.notifyChangesRecursive(itemModel.group, subArray.at(i) as FormGroup);\r\n }\r\n continue;\r\n }\r\n if (subModel instanceof DynamicFormGroupModel) {\r\n this.notifyChangesRecursive(subModel.group, subControl as FormGroup);\r\n continue;\r\n }\r\n this.updateSelectOptions(subModel, subControl);\r\n }\r\n }\r\n\r\n protected showErrorsForGroup(formGroup: FormGroup): void {\r\n if (!formGroup) return;\r\n formGroup.markAsTouched({onlySelf: true});\r\n const controls = Object.keys(formGroup.controls).map(id => formGroup.controls[id]);\r\n this.showErrorsForControls(controls);\r\n }\r\n\r\n protected showErrorsForControls(controls: AbstractControl[]): void {\r\n controls.forEach(control => {\r\n if (control instanceof FormGroup) {\r\n this.showErrorsForGroup(control);\r\n return;\r\n }\r\n control.markAsTouched({onlySelf: true});\r\n if (control instanceof FormArray) {\r\n this.showErrorsForControls(control.controls);\r\n }\r\n });\r\n }\r\n\r\n async getFormModelForSchema(name: string): Promise<DynamicFormModel> {\r\n this.api.cache = {};\r\n this.schemas = await this.openApi.getSchemas();\r\n return this.getFormModelForSchemaDef(this.schemas[name]);\r\n }\r\n\r\n protected getFormModelForSchemaDef(schema: IOpenApiSchema): DynamicFormModel {\r\n if (!schema)\r\n return [];\r\n return Object.keys(schema.properties || {}).map(p => {\r\n const property = schema.properties[p];\r\n return this.getFormControlModel(property, schema);\r\n }).filter(t => null !== t);\r\n }\r\n\r\n protected getFormControlModel(property: IOpenApiSchemaProperty, schema: IOpenApiSchema): DynamicFormControlModel {\r\n if (Array.isArray(property.enum) || ObjectUtils.isString(property.optionsPath)) {\r\n return new DynamicSelectModel<any>(this.getFormSelectConfig(property, schema));\r\n }\r\n switch (property.type) {\r\n case \"string\":\r\n case \"number\":\r\n case \"integer\":\r\n return new DynamicInputModel(this.getFormInputConfig(property, schema));\r\n case \"textarea\":\r\n return new DynamicTextAreaModel(this.getFormTextareaConfig(property, schema));\r\n case \"boolean\":\r\n return new DynamicCheckboxModel(this.getFormCheckboxConfig(property, schema));\r\n case \"list\":\r\n return new DynamicSelectModel<any>(this.getFormSelectConfig(property, schema));\r\n case \"array\":\r\n if (property.items?.$ref || property.$ref) {\r\n return new DynamicFormArrayModel(this.getFormArrayConfig(property, schema));\r\n } else if (property.items?.enum || property.enum) {\r\n return new DynamicSelectModel<any>(this.getFormSelectConfig(property, schema));\r\n } else {\r\n return new DynamicInputModel(this.getFormInputConfig(property, schema));\r\n }\r\n case \"file\":\r\n return new DynamicFileUploadModel(this.getFormUploadConfig(property, schema));\r\n }\r\n if (property.$ref) {\r\n return new DynamicFormGroupModel(this.getFormGroupConfig(property, schema));\r\n }\r\n return null;\r\n }\r\n\r\n protected getFormControlConfig(property: IOpenApiSchemaProperty, schema: IOpenApiSchema): DynamicFormValueControlModelConfig<any> {\r\n const validators = this.getValidators(property, schema);\r\n const errorMessages = Object.keys(validators).reduce((res, key) => {\r\n res[key] = `error.${key}`;\r\n return res;\r\n }, {});\r\n return {\r\n id: property.id,\r\n label: ObjectUtils.isString(property.label) ? property.label : property.id,\r\n hidden: property.hidden,\r\n disabled: property.disabled,\r\n validators,\r\n errorMessages,\r\n additional: Object.assign({}, property)\r\n };\r\n }\r\n\r\n protected getFormArrayConfig(property: IOpenApiSchemaProperty, schema: IOpenApiSchema): DynamicFormArrayModelConfig {\r\n const ref = property.items?.$ref || property.$ref || \"\";\r\n const subSchema = this.schemas[ref.split(\"/\").pop()];\r\n return Object.assign(this.getFormControlConfig(property, schema), {groupFactory: () => this.getFormModelForSchemaDef(subSchema)});\r\n }\r\n\r\n protected getFormGroupConfig(property: IOpenApiSchemaProperty, schema: IOpenApiSchema): DynamicFormGroupModelConfig {\r\n const ref = property.$ref || \"\";\r\n const subSchema = this.schemas[ref.split(\"/\").pop()];\r\n return Object.assign(this.getFormControlConfig(property, schema), {group: this.getFormModelForSchemaDef(subSchema)});\r\n }\r\n\r\n protected getFormInputConfig(property: IOpenApiSchemaProperty, schema: IOpenApiSchema): DynamicInputModelConfig {\r\n let inputType = StringUtils.has(property.id, \"password\", \"Password\") ? \"password\" : (property.items?.type || property.type);\r\n switch (inputType) {\r\n case \"boolean\":\r\n inputType = \"checkbox\";\r\n break;\r\n case \"textarea\":\r\n inputType = \"textarea\";\r\n break;\r\n case \"integer\":\r\n inputType = \"number\";\r\n break;\r\n }\r\n return Object.assign(\r\n this.getFormControlConfig(property, schema),\r\n {\r\n inputType,\r\n autoComplete: property.autoComplete || \"off\",\r\n multiple: property.type == \"array\",\r\n accept: ObjectUtils.isString(property.accept) ? property.accept : null,\r\n mask: ObjectUtils.isString(property.mask) ? property.mask : null,\r\n pattern: ObjectUtils.isString(property.pattern) ? property.pattern : null,\r\n step: isNaN(property.step) ? 1 : property.step,\r\n min: isNaN(property.min) ? Number.MIN_SAFE_INTEGER : property.min,\r\n max: isNaN(property.max) ? Number.MAX_SAFE_INTEGER : property.max,\r\n }\r\n );\r\n }\r\n\r\n protected getFormTextareaConfig(property: IOpenApiSchemaProperty, schema: IOpenApiSchema): DynamicTextAreaModelConfig {\r\n return Object.assign(\r\n this.getFormControlConfig(property, schema),\r\n {\r\n cols: property.cols || null,\r\n rows: property.rows || 10,\r\n wrap: property.wrap || false,\r\n autoComplete: property.autoComplete || \"off\",\r\n multiple: property.type == \"array\"\r\n }\r\n );\r\n }\r\n\r\n protected getFormSelectConfig(property: IOpenApiSchemaProperty, schema: IOpenApiSchema): DynamicSelectModelConfig<any> {\r\n return Object.assign(\r\n this.getFormControlConfig(property, schema),\r\n {\r\n options: this.getFormSelectOptions(property, schema),\r\n multiple: property.type == \"array\"\r\n }\r\n );\r\n }\r\n\r\n protected getFormCheckboxConfig(property: IOpenApiSchemaProperty, schema: IOpenApiSchema): DynamicCheckboxModelConfig {\r\n return Object.assign(\r\n this.getFormControlConfig(property, schema),\r\n {\r\n indeterminate: property.indeterminate === true\r\n }\r\n );\r\n }\r\n\r\n protected async translateOptions(options: DynamicFormOptionConfig<any>[]): Promise<DynamicFormOptionConfig<any>[]> {\r\n if (!options) return [];\r\n for (const option of options) {\r\n option.label = await this.language.getTranslation(option.label);\r\n }\r\n return options;\r\n }\r\n\r\n protected getFormSelectOptions(property: IOpenApiSchemaProperty, schema: IOpenApiSchema) {\r\n const $enum = property.items?.enum || property.enum;\r\n if (property.optionsPath) {\r\n return new FormSubject((formModel, control) => {\r\n let path = property.optionsPath;\r\n let target = control;\r\n if (path.startsWith(\"$root\")) {\r\n path = path.substr(5);\r\n while (target.parent) {\r\n target = target.parent;\r\n }\r\n }\r\n while (path.startsWith(\".\")) {\r\n path = path.substr(1);\r\n if (target.parent) {\r\n target = target.parent;\r\n }\r\n }\r\n const value = ObjectUtils.getValue(target.value, path);\r\n const options = (!ObjectUtils.isArray(value) ? []: value).map(value => ({value, label: value}));\r\n return this.translateOptions(options);\r\n });\r\n }\r\n if (ObjectUtils.isArray($enum)) {\r\n return new FormSubject(() => {\r\n const options = $enum.map(value => {\r\n const label = property.translatable ? `${property.id}.${value}` : value;\r\n return {value, label};\r\n });\r\n return this.translateOptions(options);\r\n });\r\n }\r\n return new FormSubject(async () => {\r\n this.api.cache[property.endpoint] = this.api.cache[property.endpoint] || this.api.list(property.endpoint, this.api.makeListParams(1, -1)).then(result => {\r\n return result.items.map(i => {\r\n return {value: i.id || i._id, label: i[property.labelField] || i.label || i.id || i._id};\r\n });\r\n });\r\n const options = (await this.api.cache[property.endpoint]).map(t => Object.assign({}, t));\r\n return this.translateOptions(options);\r\n });\r\n }\r\n\r\n protected getFormUploadConfig(property: IOpenApiSchemaProperty, schema: IOpenApiSchema): DynamicFileUploadModelConfig {\r\n const url = this.api.url(property.url || \"assets\");\r\n const {accept, autoUpload, maxSize, minSize, removeUrl, showFileList} = property;\r\n return Object.assign(this.getFormControlConfig(property, schema), {\r\n url,\r\n accept,\r\n autoUpload,\r\n maxSize,\r\n minSize,\r\n removeUrl,\r\n showFileList\r\n });\r\n }\r\n\r\n protected getValidators(property: IOpenApiSchemaProperty, schema: IOpenApiSchema): DynamicValidatorsConfig {\r\n const validators: DynamicValidatorsConfig = {};\r\n if (ObjectUtils.isArray(schema.required) && schema.required.indexOf(property.id) >= 0) {\r\n validators.required = null;\r\n }\r\n if (property.minLength) {\r\n validators.minLength = property.minLength;\r\n }\r\n if (property.maxLength) {\r\n validators.maxLength = property.maxLength;\r\n }\r\n if (property.min) {\r\n validators.min = property.min;\r\n }\r\n if (property.max) {\r\n validators.max = property.max;\r\n }\r\n switch (property.format) {\r\n case \"email\":\r\n validators.email = null;\r\n break;\r\n }\r\n return validators;\r\n }\r\n}\r\n","import {\r\n ChangeDetectorRef,\r\n Directive,\r\n ElementRef,\r\n EventEmitter,\r\n HostBinding,\r\n HostListener,\r\n Inject,\r\n Input,\r\n OnDestroy,\r\n OnInit,\r\n Output,\r\n Renderer2\r\n} from \"@angular/core\";\r\nimport {Subscription} from \"rxjs\";\r\nimport {IAsyncMessage, IToasterService, TOASTER_SERVICE} from \"@stemy/ngx-utils\";\r\nimport {AsyncSubmitMethod, IDynamicFormBase} from \"../common-types\";\r\n\r\n@Directive({\r\n selector: \"[async-submit]\",\r\n exportAs: \"async-submit\"\r\n})\r\nexport class AsyncSubmitDirective implements OnInit, OnDestroy {\r\n\r\n @Input(\"async-submit\") method: AsyncSubmitMethod;\r\n @Input() form: IDynamicFormBase;\r\n @Input() context: any;\r\n\r\n @Output() onSuccess: EventEmitter<IAsyncMessage>;\r\n @Output() onError: EventEmitter<IAsyncMessage>;\r\n\r\n private loading: boolean;\r\n private disabled: boolean;\r\n private callback: Function;\r\n private onStatusChange: Subscription;\r\n private onSubmit: Subscription;\r\n\r\n @HostBinding(\"class.disabled\")\r\n get isDisabled(): boolean {\r\n return this.disabled;\r\n }\r\n\r\n set isDisabled(value: boolean) {\r\n this.disabled = value;\r\n if (value) {\r\n this.renderer.setAttribute(this.elem.nativeElement, \"disabled\", \"disabled\");\r\n return;\r\n }\r\n this.renderer.removeAttribute(this.elem.nativeElement, \"disabled\");\r\n }\r\n\r\n @HostBinding(\"class.loading\")\r\n get isLoading(): boolean {\r\n return this.loading;\r\n }\r\n\r\n constructor(@Inject(TOASTER_SERVICE) private toaster: IToasterService,\r\n readonly cdr: ChangeDetectorRef,\r\n readonly elem: ElementRef,\r\n readonly renderer: Renderer2) {\r\n this.onSuccess = new EventEmitter<IAsyncMessage>();\r\n this.onError = new EventEmitter<IAsyncMessage>();\r\n if (elem.nativeElement.tagName !== \"BUTTON\") return;\r\n renderer.setAttribute(elem.nativeElement, \"type\", \"button\");\r\n }\r\n\r\n ngOnInit(): void {\r\n if (!this.form) return;\r\n this.isDisabled = this.form.status !== \"VALID\";\r\n this.cdr.detectChanges();\r\n this.onStatusChange = this.form.onStatusChange.subscribe(() => {\r\n this.isDisabled = this.form.status !== \"VALID\";\r\n this.cdr.detectChanges();\r\n if (!this.callback || this.form.status == \"PENDING\") return;\r\n if (!this.disabled) {\r\n this.callback();\r\n }\r\n this.callback = null;\r\n });\r\n this.onSubmit = this.form.onSubmit.subscribe(() => this.callMethod());\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if (this.onStatusChange) this.onStatusChange.unsubscribe();\r\n if (this.onSubmit) this.onSubmit.unsubscribe();\r\n }\r\n\r\n @HostListener(\"click\")\r\n click(): void {\r\n this.callback = () => this.callMethod();\r\n if (this.form.status !== \"VALID\" && this.form.status !== \"INVALID\") return;\r\n this.callback();\r\n this.callback = null;\r\n }\r\n\r\n callMethod(): void {\r\n if (this.loading) return;\r\n this.loading = true;\r\n this.method(this.form, this.context).then(result => {\r\n this.loading = false;\r\n if (result) {\r\n this.onSuccess.emit(result);\r\n this.toaster.success(result.message, result.context);\r\n }\r\n }, reason => {\r\n if (!reason || !reason.message)\r\n throw new Error(\"Reason must implement IAsyncMessage interface\");\r\n this.loading = false;\r\n this.onError.emit(reason);\r\n this.toaster.error(reason.message, reason.context);\r\n });\r\n }\r\n}\r\n","import {\r\n AfterViewInit,\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n ContentChildren,\r\n EventEmitter,\r\n Inject,\r\n Input,\r\n OnChanges,\r\n Output,\r\n QueryList,\r\n SimpleChanges, ViewChild,\r\n ViewChildren\r\n} from \"@angular/core\";\r\nimport {FormArray, FormGroup, NgForm} from \"@angular/forms\";\r\nimport {Subscription} from \"rxjs\";\r\nimport {first} from \"rxjs/operators\";\r\nimport {\r\n DynamicFormArrayModel,\r\n DynamicFormComponent,\r\n DynamicFormComponentService,\r\n DynamicFormControlEvent,\r\n DynamicFormLayout,\r\n DynamicFormModel,\r\n DynamicTemplateDirective\r\n} from \"@ng-dynamic-forms/core\";\r\nimport {EventsService, ObservableUtils} from \"@stemy/ngx-utils\";\r\nimport {DynamicFormState, IDynamicForm, IDynamicFormBase} from \"../../common-types\";\r\nimport {DynamicFormService} from \"../../services/dynamic-form.service\";\r\n\r\n@Component({\r\n selector: \"dynamic-base-form\",\r\n template: \"\",\r\n changeDetection: ChangeDetectionStrategy.Default\r\n})\r\nexport class DynamicBaseFormComponent extends DynamicFormComponent implements OnChanges, AfterViewInit, IDynamicForm {\r\n\r\n @Input() group: FormGroup;\r\n @Input() model: DynamicFormModel;\r\n @Input() layout: DynamicFormLayout;\r\n @Input() labelPrefix: string;\r\n\r\n @Output() blur: EventEmitter<DynamicFormControlEvent>;\r\n @Output() change: EventEmitter<DynamicFormControlEvent>;\r\n @Output() focus: EventEmitter<DynamicFormControlEvent>;\r\n\r\n @ContentChildren(DynamicTemplateDirective) contentTemplates: QueryList<DynamicTemplateDirective>;\r\n @ViewChildren(DynamicTemplateDirective) viewTemplates: QueryList<DynamicTemplateDirective>;\r\n\r\n get status(): DynamicFormState {\r\n return !this.group ? null : this.group.status as DynamicFormState;\r\n }\r\n\r\n @Output() readonly onStatusChange: EventEmitter<IDynamicFormBase>;\r\n @Output() readonly onValueChange: EventEmitter<IDynamicFormBase>;\r\n @Output() readonly onSubmit: EventEmitter<IDynamicFormBase>;\r\n\r\n @ViewChild(NgForm)\r\n protected ngForm: NgForm;\r\n protected subscription: Subscription;\r\n protected groupSubscription: Subscription;\r\n\r\n constructor(@Inject(DynamicFormService) readonly formService: DynamicFormService,\r\n @Inject(EventsService) readonly events: EventsService,\r\n changeDetectorRef: ChangeDetectorRef,\r\n componentService: DynamicFormComponentService,) {\r\n super(changeDetectorRef, componentService);\r\n this.blur = new EventEmitter<DynamicFormControlEvent>();\r\n this.change = new EventEmitter<DynamicFormControlEvent>();\r\n this.focus = new EventEmitter<DynamicFormControlEvent>();\r\n this.onStatusChange = new EventEmitter<IDynamicFormBase>();\r\n this.onValueChange = new EventEmitter<IDynamicFormBase>();\r\n this.onSubmit = new EventEmitter<IDynamicFormBase>();\r\n this.templates = new QueryList<DynamicTemplateDirective>();\r\n this.subscription = new Subscription();\r\n this.groupSubscription = new Subscription();\r\n this.labelPrefix = \"label\";\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n this.groupSubscription.unsubscribe();\r\n if (this.group) {\r\n this.groupSubscription = ObservableUtils.multiSubscription(\r\n this.group.statusChanges.subscribe(() => {\r\n this.onStatusChange.emit(this);\r\n }),\r\n this.group.valueChanges.subscribe(() => {\r\n this.onValueChange.emit(this);\r\n this.formService.notifyChanges(this.model, this.group);\r\n })\r\n );\r\n }\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this.subscription = ObservableUtils.multiSubscription(\r\n ObservableUtils.subscribe(\r\n {\r\n subjects: [this.contentTemplates.changes, this.viewTemplates.changes],\r\n cb: () => {\r\n const templates = this.contentTemplates.toArray().concat(this.viewTemplates.toArray());\r\n this.templates.reset(templates);\r\n }\r\n }\r\n ),\r\n this.events.languageChanged.subscribe(() => {\r\n this.formService.detectChanges(this)\r\n }),\r\n this.ngForm.ngSubmit.subscribe(() => {\r\n this.onSubmit.emit(this);\r\n })\r\n );\r\n }\r\n\r\n ngOnDestroy(): void {\r\n super.ngOnDestroy();\r\n this.subscription.unsubscribe();\r\n this.groupSubscription.unsubscribe();\r\n }\r\n\r\n insertFormArrayGroup(index: number, formArray: FormArray, formArrayModel: DynamicFormArrayModel): void {\r\n this.formService.insertFormArrayGroup(index, formArray, formArrayModel);\r\n this.changeDetectorRef.detectChanges();\r\n }\r\n\r\n removeFormArrayGroup(index: number, formArray: FormArray, formArrayModel: DynamicFormArrayModel): void {\r\n this.formService.removeFormArrayGroup(index, formArray, formArrayModel);\r\n this.changeDetectorRef.detectChanges();\r\n }\r\n\r\n moveFormArrayGroup(index: number, step: number, formArray: FormArray, formArrayModel: DynamicFormArrayModel): void {\r\n this.formService.moveFormArrayGroup(index, step, formArray, formArrayModel);\r\n this.changeDetectorRef.detectChanges();\r\n }\r\n\r\n clearFormArray(formArray: FormArray, formArrayModel: DynamicFormArrayModel): void {\r\n this.formService.clearFormArray(formArray, formArrayModel);\r\n this.changeDetectorRef.detectChanges();\r\n }\r\n\r\n validate(showErrors: boolean = true): Promise<any> {\r\n if (!this.group) return Promise.resolve();\r\n return new Promise<any>((resolve, reject) => {\r\n this.group.statusChanges.pipe(first(status => status == \"VALID\" || status == \"INVALID\")).subscribe(status => {\r\n if (showErrors) {\r\n this.formService.showErrors(this);\r\n }\r\n if (status == \"VALID\") {\r\n resolve(null);\r\n return;\r\n }\r\n reject(null);\r\n });\r\n this.group.updateValueAndValidity();\r\n });\r\n }\r\n\r\n async serialize(validate?: boolean): Promise<any> {\r\n if (!this.group) return null;\r\n if (validate) {\r\n await this.validate();\r\n }\r\n return await this.formService.serialize(this.model, this.group);\r\n }\r\n}\r\n","import {\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n ComponentFactoryResolver,\r\n ContentChildren,\r\n EventEmitter,\r\n HostBinding,\r\n Input,\r\n OnInit,\r\n Output,\r\n QueryList,\r\n Type,\r\n ViewChild,\r\n ViewContainerRef\r\n} from \"@angular/core\";\r\nimport {FormGroup} from \"@angular/forms\";\r\nimport {Subscription} from \"rxjs\";\r\nimport {\r\n DYNAMIC_FORM_CONTROL_TYPE_ARRAY,\r\n DynamicFormArrayGroupModel,\r\n DynamicFormComponentService,\r\n DynamicFormControl,\r\n DynamicFormControlContainerComponent,\r\n DynamicFormControlEvent,\r\n DynamicFormControlModel,\r\n DynamicFormLayout,\r\n DynamicFormLayoutService,\r\n DynamicFormRelationService,\r\n DynamicFormValidationService,\r\n DynamicTemplateDirective\r\n} from \"@ng-dynamic-forms/core\";\r\nimport {DynamicBaseFormComponent} from \"./dynamic-base-form.component\";\r\nimport {DynamicFormService} from \"../../services/dynamic-form.service\";\r\nimport {ObjectUtils} from \"@stemy/ngx-utils\";\r\nimport {OnCreatedFormControl} from \"../../common-types\";\r\n\r\n@Component({\r\n selector: \"dynamic-base-form-control\",\r\n template: \"\",\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class DynamicBaseFormControlContainerComponent extends DynamicFormControlContainerComponent implements OnInit {\r\n\r\n @ContentChildren(DynamicTemplateDirective) contentTemplateList: QueryList<DynamicTemplateDirective>;\r\n\r\n @HostBinding(\"class\") klass;\r\n\r\n @Input() context: DynamicFormArrayGroupModel | null = null;\r\n @Input() group: FormGroup;\r\n @Input() hostClass: string[];\r\n @Input(\"templates\") inputTemplateList: QueryList<DynamicTemplateDirective>;\r\n @Input() layout: DynamicFormLayout;\r\n @Input() model: DynamicFormControlModel;\r\n\r\n @Output() blur: EventEmitter<DynamicFormControlEvent> = new EventEmitter<DynamicFormControlEvent>();\r\n @Output() change: EventEmitter<DynamicFormControlEvent> = new EventEmitter<DynamicFormControlEvent>();\r\n @Output() focus: EventEmitter<DynamicFormControlEvent> = new EventEmitter<DynamicFormControlEvent>();\r\n\r\n @ViewChild(\"componentViewContainer\", {read: ViewContainerRef, static: true}) componentViewContainerRef: ViewContainerRef;\r\n\r\n protected onDetectChanges: Subscription;\r\n\r\n get componentType(): Type<DynamicFormControl> | null {\r\n return this.componentService.getCustomComponentType(this.model) ?? this.getComponentType(this.model);\r\n }\r\n\r\n get startTemplate(): DynamicTemplateDirective {\r\n return (this.model.type == DYNAMIC_FORM_CONTROL_TYPE_ARRAY)\r\n ? this.layoutService.getAlignedTemplate(this.model, this.templates, \"ARRAY_START\" as any)\r\n : this.layoutService.getStartTemplate(this.model, this.templates);\r\n }\r\n\r\n get endTemplate(): DynamicTemplateDirective {\r\n return (this.model.type == DYNAMIC_FORM_CONTROL_TYPE_ARRAY)\r\n ? this.layoutService.getAlignedTemplate(this.model, this.templates, \"ARRAY_END\" as any)\r\n : this.layoutService.getEndTemplate(this.model, this.templates);\r\n }\r\n\r\n get formService(): DynamicFormService {\r\n return this.form.formService;\r\n }\r\n\r\n constructor(readonly form: DynamicBaseFormComponent,\r\n readonly changeDetectorRef: ChangeDetectorRef,\r\n readonly componentFactoryResolver: ComponentFactoryResolver,\r\n readonly layoutService: DynamicFormLayoutService,\r\n readonly validationService: DynamicFormValidationService,\r\n readonly componentService: DynamicFormComponentService,\r\n readonly relationService: DynamicFormRelationService) {\r\n super(changeDetectorRef, componentFactoryResolver, layoutService, validationService, componentService, relationService);\r\n }\r\n\r\n ngOnInit(): void {\r\n this.onDetectChanges = this.formService.onDetectChanges.subscribe(form => {\r\n if (form !== this.form) return;\r\n this.changeDetectorRef.detectChanges();\r\n this.formService.updateSelectOptions(this.model, this.control);\r\n });\r\n }\r\n\r\n ngOnDestroy() {\r\n super.ngOnDestroy();\r\n this.onDetectChanges.unsubscribe();\r\n }\r\n\r\n protected createFormControlComponent() {\r\n super.createFormControlComponent();\r\n const component = this.componentRef?.instance as OnCreatedFormControl;\r\n if (!component || !ObjectUtils.isFunction(component.onCreated)) return;\r\n component.onCreated();\r\n }\r\n\r\n protected getComponentType(model: DynamicFormControlModel): Type<DynamicFormControl> | null {\r\n return null;\r\n }\r\n}\r\n","import {Injectable} from \"@angular/core\";\r\nimport {DynamicFormControlModel, DynamicFormValidationService as Base} from \"@ng-dynamic-forms/core\";\r\nimport {AbstractControl} from \"@angular/forms\";\r\n\r\n@Injectable()\r\nexport class DynamicFormValidationService extends Base {\r\n\r\n showErrorMessages(control: AbstractControl, model: DynamicFormControlModel, hasFocus: boolean): boolean {\r\n return super.showErrorMessages(control, model, hasFocus);\r\n }\r\n}\r\n","import {ModuleWithProviders, NgModule} from \"@angular/core\";\r\nimport {CommonModule} from \"@angular/common\";\r\nimport {FormsModule, NG_VALIDATORS, ReactiveFormsModule} from \"@angular/forms\";\r\nimport {\r\n DYNAMIC_VALIDATORS,\r\n DynamicFormService as BaseDynamicFormService,\r\n DynamicFormValidationService as BaseDynamicFormValidationService,\r\n Validator,\r\n ValidatorFactory\r\n} from \"@ng-dynamic-forms/core\";\r\nimport {NgxUtilsModule} from \"@stemy/ngx-utils\";\r\n\r\nimport {DynamicFormService} from \"./services/dynamic-form.service\";\r\n\r\nimport {AsyncSubmitDirective} from \"./directives/async-submit.directive\";\r\n\r\nimport {validateJSON, validatePhone, validateRequiredTranslation} from \"./utils/validators\";\r\n\r\nimport {DynamicBaseFormComponent} from \"./components/base/dynamic-base-form.component\";\r\nimport {DynamicBaseFormControlContainerComponent} from \"./components/base/dynamic-base-form-control-container.component\";\r\nimport {DynamicFormValidationService} from \"./services/dynamic-form-validation.service\";\r\n\r\n// --- Components ---\r\nexport const components = [\r\n DynamicBaseFormComponent,\r\n DynamicBaseFormControlContainerComponent\r\n];\r\n\r\n// --- Directives ---\r\nexport const directives = [\r\n AsyncSubmitDirective,\r\n];\r\n\r\n// --- Pipes ---\r\nexport const pipes = [];\r\n\r\n@NgModule({\r\n declarations: [\r\n ...components,\r\n ...directives,\r\n ...pipes\r\n ],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n NgxUtilsModule\r\n ],\r\n exports: [\r\n ...components,\r\n ...directives,\r\n ...pipes,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n NgxUtilsModule\r\n ],\r\n entryComponents: components,\r\n providers: [\r\n ...pipes,\r\n {provide: NG_VALIDATORS, useValue: validateJSON, multi: true},\r\n {provide: NG_VALIDATORS, useValue: validateRequiredTranslation, multi: true},\r\n {provide: NG_VALIDATORS, useValue: validatePhone, multi: true},\r\n {\r\n provide: DYNAMIC_VALIDATORS,\r\n useValue: new Map<string, Validator | ValidatorFactory>([\r\n [\"validateJSON\", validateJSON],\r\n [\"validateRequiredTranslation\", validateRequiredTranslation],\r\n [\"validatePhone\", validatePhone],\r\n ])\r\n }\r\n ]\r\n})\r\nexport class NgxDynamicFormModule {\r\n\r\n static forRoot(): ModuleWithProviders<NgxDynamicFormModule> {\r\n return {\r\n ngModule: NgxDynamicFormModule,\r\n providers: [\r\n DynamicFormService,\r\n DynamicFormValidationService,\r\n {\r\n provide: BaseDynamicFormService,\r\n useExisting: DynamicFormService\r\n },\r\n {\r\n provide: BaseDynamicFormValidationService,\r\n useExisting: DynamicFormValidationService\r\n }\r\n ]\r\n }\r\n }\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n\nexport {components as ɵa,directives as ɵb,pipes as ɵc} from './ngx-dynamic-form/ngx-dynamic-form.module';\nexport {DynamicFormValidationService as ɵd} from './ngx-dynamic-form/services/dynamic-form-validation.service';"],"names":["ReflectUtils","ObjectUtils","UniqueUtils","Subject","Base","EventEmitter","DynamicSelectModel","DynamicFormArrayModelBase","DynamicFormGroupModel","DynamicInputModel","FormGroup","FormArray","DynamicTextAreaModel","DynamicCheckboxModel","DynamicFileUploadModel","StringUtils","Injectable","DynamicFormComponentService","DynamicFormValidationService","OpenApiService","Directive","Inject","TOASTER_SERVICE","ChangeDetectorRef","ElementRef","Renderer2","Input","Output","HostBinding","HostListener","QueryList","Subscription","ObservableUtils","first","DynamicFormComponent","Component","ChangeDetectionStrategy","EventsService","ContentChildren","DynamicTemplateDirective","ViewChildren","ViewChild","NgForm","DYNAMIC_FORM_CONTROL_TYPE_ARRAY","DynamicFormControlContainerComponent","ComponentFactoryResolver","DynamicFormLayoutService","DynamicFormRelationService","ViewContainerRef","BaseDynamicFormService","BaseDynamicFormValidationService","NgModule","CommonModule","FormsModule","ReactiveFormsModule","NgxUtilsModule","NG_VALIDATORS","DYNAMIC_VALIDATORS"],"mappings":"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"}