From 78b4650595894e237ba4cb39b7d8acb7e46893eb Mon Sep 17 00:00:00 2001 From: Artem Serebryakov Date: Tue, 12 Feb 2019 13:41:42 -0500 Subject: [PATCH 1/4] fix: fixed tests code warnings --- .../dynamic-form.component.spec.ts | 1 + .../groups/group/group.component.spec.ts | 18 +++++++++--------- 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/src/app/dynamic-form/dynamic-form.component.spec.ts b/src/app/dynamic-form/dynamic-form.component.spec.ts index 8f507db..efd31e1 100644 --- a/src/app/dynamic-form/dynamic-form.component.spec.ts +++ b/src/app/dynamic-form/dynamic-form.component.spec.ts @@ -30,6 +30,7 @@ class TestComponent { data: {}; dynamicForm: {}; lookups: {}; + model: any } @NgModule({ diff --git a/src/app/layouts/groups/group/group.component.spec.ts b/src/app/layouts/groups/group/group.component.spec.ts index f7e9fd4..561db96 100644 --- a/src/app/layouts/groups/group/group.component.spec.ts +++ b/src/app/layouts/groups/group/group.component.spec.ts @@ -1,5 +1,5 @@ import { Component, NgModule } from "@angular/core"; -import { Field, FieldConfig, FieldDictionary, FIELD_DICT_TOKEN, ConditionType, LAYOUTS_TOKEN } from "../../../../types"; +import { Field, FieldConfig, FieldDictionary, FIELD_DICT_TOKEN, ConditionType, LAYOUTS_TOKEN, FormConfig } from "../../../../types"; import { FormGroup, ReactiveFormsModule, FormsModule } from "@angular/forms"; import { ComponentFixture, TestBed, async } from "@angular/core/testing"; import { CommonModule } from "@angular/common"; @@ -119,7 +119,7 @@ describe('GroupComponent Core', () => { { label: 'no fields with panels', panels: [{ label: 'no fields' }] }, { label: 'no fields, no panels' } ] - }; + } as FormConfig; component.model = model; fixture.detectChanges(); }); @@ -134,35 +134,35 @@ describe('GroupComponent Core', () => { it('should not find lookup when no lookups were passed', () => { component.lookups = null; - component.formConfig = { form: [{ fields: [{ type: 'text', name: 'title', lookup: 'test' }] }] }; + component.formConfig = { form: [{ fields: [{ type: 'text', name: 'title', lookup: 'test' }] }] } as FormConfig; component.ngOnInit(); expect(component.formConfig.form[0].fields[0].options).toBeUndefined(); }); it('should not find lookup when no lookups found', () => { component.lookups = { test: ['a', 'b', 'c'] };; - component.formConfig = { form: [{ fields: [{ type: 'text', name: 'title' }] }] }; + component.formConfig = { form: [{ fields: [{ type: 'text', name: 'title' }] }] } as FormConfig; component.ngOnInit(); expect(component.formConfig.form[0].fields[0].options).toBeUndefined(); }); it('should not copy lookup with wrong name', () => { component.lookups = { test: ['a', 'b', 'c'] };; - component.formConfig = { form: [{ fields: [{ type: 'text', name: 'title', lookup: 'test1' }] }] }; + component.formConfig = { form: [{ fields: [{ type: 'text', name: 'title', lookup: 'test1' }] }] } as FormConfig; component.ngOnInit(); expect(component.formConfig.form[0].fields[0].options).toBeUndefined(); }); it('should copy lookup', () => { component.lookups = { test: ['a', 'b', 'c'] };; - component.formConfig = { form: [{ fields: [{ type: 'text', name: 'title', lookup: 'test' }] }] }; + component.formConfig = { form: [{ fields: [{ type: 'text', name: 'title', lookup: 'test' }] }] } as FormConfig; component.ngOnInit(); expect(component.formConfig.form[0].fields[0].options).toEqual(['a', 'b', 'c']); }); it('should extract lookup', () => { component.lookups = { test: [{ t: 'a' }, { t: 'b' }, { t: 'c' }] };; - component.formConfig = { form: [{ fields: [{ type: 'text', name: 'title', lookup: { name: 'test', extract: 't' } }] }] }; + component.formConfig = { form: [{ fields: [{ type: 'text', name: 'title', lookup: { name: 'test', extract: 't' } }] }] } as FormConfig; component.ngOnInit(); expect(component.formConfig.form[0].fields[0].options).toEqual(['a', 'b', 'c']); }); @@ -173,14 +173,14 @@ describe('GroupComponent Core', () => { it('should enable the fields', () => { component.model = { title: 'test' }; - component.formConfig = { form: [{ fields: [{ type: 'text', name: 'title' }], enableWhen: { rules: [{ field: "title", equals: ["test"] }] } }] }; + component.formConfig = { form: [{ fields: [{ type: 'text', name: 'title' }], enableWhen: { rules: [{ field: "title", equals: ["test"] }] } }] } as FormConfig; component.ngOnInit(); expect(component.formConfig.form[0].fields[0].disabled).toBeFalsy(); }); it('should disable the fields', () => { component.model = { title: 'test' }; - component.formConfig = { form: [{ fields: [{ type: 'text', name: 'title' }], enableWhen: { rules: [{ field: "title", equals: ["test1"] }] } }] }; + component.formConfig = { form: [{ fields: [{ type: 'text', name: 'title' }], enableWhen: { rules: [{ field: "title", equals: ["test1"] }] } }] } as FormConfig; component.ngOnInit(); expect(component.formConfig.form[0].fields[0].disabled).toBeTruthy(); }); From 329e64787e205d8e4fa07f4cc6515a6c01fc80d3 Mon Sep 17 00:00:00 2001 From: Artem Serebryakov Date: Tue, 12 Feb 2019 14:40:31 -0500 Subject: [PATCH 2/4] feat: added basic layout --- dist/ngx-forms.js | 2 +- .../layouts/basic/basic-layout.component.html | 6 ++ .../basic/basic-layout.component.spec.ts | 81 +++++++++++++++++++ .../layouts/basic/basic-layout.component.ts | 14 ++++ src/app/layouts/layouts.module.ts | 16 ++-- 5 files changed, 110 insertions(+), 9 deletions(-) create mode 100644 src/app/layouts/basic/basic-layout.component.html create mode 100644 src/app/layouts/basic/basic-layout.component.spec.ts create mode 100644 src/app/layouts/basic/basic-layout.component.ts diff --git a/dist/ngx-forms.js b/dist/ngx-forms.js index 9bed1cb..e840a46 100644 --- a/dist/ngx-forms.js +++ b/dist/ngx-forms.js @@ -1 +1 @@ -!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.ngxForms=t():e.ngxForms=t()}(window,function(){return function(e){var t={};function o(n){if(t[n])return t[n].exports;var r=t[n]={i:n,l:!1,exports:{}};return e[n].call(r.exports,r,r.exports,o),r.l=!0,r.exports}return o.m=e,o.c=t,o.d=function(e,t,n){o.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},o.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},o.t=function(e,t){if(1&t&&(e=o(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(o.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var r in e)o.d(n,r,function(t){return e[t]}.bind(null,r));return n},o.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return o.d(t,"a",t),t},o.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},o.p="",o(o.s=8)}([function(e,t){e.exports=require("@angular/core")},function(e,t){e.exports=require("@angular/common")},function(e,t){e.exports=require("@angular/forms")},function(e,t,o){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=o(0);t.FIELD_DICT_TOKEN=new n.InjectionToken("fields"),t.LAYOUTS_TOKEN=new n.InjectionToken("layouts"),function(e){e.And="and",e.Or="or"}(t.ConditionType||(t.ConditionType={}))},function(e,t,o){"use strict";e.exports=function(e){var t=[];return t.toString=function(){return this.map(function(t){var o=function(e,t){var o=e[1]||"",n=e[3];if(!n)return o;if(t&&"function"==typeof btoa){var r=(c=n,"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(c))))+" */"),i=n.sources.map(function(e){return"/*# sourceURL="+n.sourceRoot+e+" */"});return[o].concat(i).concat([r]).join("\n")}var c;return[o].join("\n")}(t,e);return t[2]?"@media "+t[2]+"{"+o+"}":o}).join("")},t.i=function(e,o){"string"==typeof e&&(e=[[null,e,""]]);for(var n={},r=0;r=0&&f.splice(t,1)}function h(e){var t=document.createElement("style");if(void 0===e.attrs.type&&(e.attrs.type="text/css"),void 0===e.attrs.nonce){var n=function(){0;return o.nc}();n&&(e.attrs.nonce=n)}return y(t,e.attrs),m(e,t),t}function y(e,t){Object.keys(t).forEach(function(o){e.setAttribute(o,t[o])})}function b(e,t){var o,n,r,i;if(t.transform&&e.css){if(!(i=t.transform(e.css)))return function(){};e.css=i}if(t.singleton){var c=s++;o=l||(l=h(t)),n=C.bind(null,o,c,!1),r=C.bind(null,o,c,!0)}else e.sourceMap&&"function"==typeof URL&&"function"==typeof URL.createObjectURL&&"function"==typeof URL.revokeObjectURL&&"function"==typeof Blob&&"function"==typeof btoa?(o=function(e){var t=document.createElement("link");return void 0===e.attrs.type&&(e.attrs.type="text/css"),e.attrs.rel="stylesheet",y(t,e.attrs),m(e,t),t}(t),n=function(e,t,o){var n=o.css,r=o.sourceMap,i=void 0===t.convertToAbsoluteUrls&&r;(t.convertToAbsoluteUrls||i)&&(n=u(n));r&&(n+="\n/*# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(r))))+" */");var c=new Blob([n],{type:"text/css"}),a=e.href;e.href=URL.createObjectURL(c),a&&URL.revokeObjectURL(a)}.bind(null,o,t),r=function(){v(o),o.href&&URL.revokeObjectURL(o.href)}):(o=h(t),n=function(e,t){var o=t.css,n=t.media;n&&e.setAttribute("media",n);if(e.styleSheet)e.styleSheet.cssText=o;else{for(;e.firstChild;)e.removeChild(e.firstChild);e.appendChild(document.createTextNode(o))}}.bind(null,o),r=function(){v(o)});return n(e),function(t){if(t){if(t.css===e.css&&t.media===e.media&&t.sourceMap===e.sourceMap)return;n(e=t)}else r()}}e.exports=function(e,t){if("undefined"!=typeof DEBUG&&DEBUG&&"object"!=typeof document)throw new Error("The style-loader cannot be used in a non-browser environment");(t=t||{}).attrs="object"==typeof t.attrs?t.attrs:{},t.singleton||"boolean"==typeof t.singleton||(t.singleton=c()),t.insertInto||(t.insertInto="head"),t.insertAt||(t.insertAt="bottom");var o=d(e,t);return p(o,t),function(e){for(var n=[],r=0;r=0;a--)(r=e[a])&&(c=(i<3?r(c):i>3?r(t,o,c):r(t,o))||c);return i>3&&c&&Object.defineProperty(t,o,c),c};Object.defineProperty(t,"__esModule",{value:!0});var r=o(0),i=function(){function e(){this.selected=0,this.groups=[],this.watchers=[]}return e.prototype.add=function(e){var t=this;this.groups.push(e),this.groups.length>1&&(e.hidden=!0),this.watchers.forEach(function(e){return e.groups=t.groups})},e.prototype.select=function(e){this.groups.forEach(function(e){e.hidden=!0}),this.groups[e].hidden=!1,this.selected=e},e.prototype.reset=function(){this.groups.forEach(function(e){e.hidden=!1}),this.groups=[],this.selected=0},e.prototype.addWatcher=function(e){this.watchers.push(e)},e.prototype.getAllGroups=function(){return this.groups},e=n([r.Injectable()],e)}();t.FormNavService=i},function(e,t,o){"use strict";var n=this&&this.__decorate||function(e,t,o,n){var r,i=arguments.length,c=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,o):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)c=Reflect.decorate(e,t,o,n);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(c=(i<3?r(c):i>3?r(t,o,c):r(t,o))||c);return i>3&&c&&Object.defineProperty(t,o,c),c};Object.defineProperty(t,"__esModule",{value:!0});var r=o(0),i=o(53),c=o(1),a=function(){function e(){}return e=n([r.NgModule({imports:[c.CommonModule],declarations:[i.DynamicFieldDirective],exports:[i.DynamicFieldDirective],schemas:[r.NO_ERRORS_SCHEMA]})],e)}();t.DynamicFieldModule=a},function(e,t,o){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),o(9),function(e){for(var o in e)t.hasOwnProperty(o)||(t[o]=e[o])}(o(10))},function(e,t){e.exports=require("reflect-metadata")},function(e,t,o){"use strict";var n=this&&this.__decorate||function(e,t,o,n){var r,i=arguments.length,c=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,o):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)c=Reflect.decorate(e,t,o,n);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(c=(i<3?r(c):i>3?r(t,o,c):r(t,o))||c);return i>3&&c&&Object.defineProperty(t,o,c),c};Object.defineProperty(t,"__esModule",{value:!0});var r=o(0),i=o(1),c=o(2),a=o(11),l=o(12),s=o(3),f=o(13),u=o(38),p=o(7),d=function(){function e(){}var t;return t=e,e.forRoot=function(e){var o=e.fieldDictionary,n=e.layoutDictionary;return o&&Object.keys(o).forEach(function(e){return f.defaultInputs[e]=o[e]}),n&&Object.keys(n).forEach(function(e){return u.defaultLayouts[e]=n[e]}),{ngModule:t,providers:[{provide:s.FIELD_DICT_TOKEN,useValue:f.defaultInputs},{provide:s.LAYOUTS_TOKEN,useValue:u.defaultLayouts}]}},e=t=n([r.NgModule({imports:[i.CommonModule,l.BrowserAnimationsModule,c.ReactiveFormsModule,c.FormsModule,u.FormLayoutsModule,f.FormFieldsModule,p.DynamicFieldModule],declarations:[a.DynamicFormDirective],exports:[a.DynamicFormDirective],providers:[{provide:s.FIELD_DICT_TOKEN,useValue:f.defaultInputs},{provide:s.LAYOUTS_TOKEN,useValue:u.defaultLayouts}],schemas:[r.NO_ERRORS_SCHEMA]})],e)}();t.NgxFormModule=d},function(e,t,o){"use strict";var n=this&&this.__decorate||function(e,t,o,n){var r,i=arguments.length,c=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,o):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)c=Reflect.decorate(e,t,o,n);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(c=(i<3?r(c):i>3?r(t,o,c):r(t,o))||c);return i>3&&c&&Object.defineProperty(t,o,c),c},r=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},i=this&&this.__param||function(e,t){return function(o,n){t(o,n,e)}};Object.defineProperty(t,"__esModule",{value:!0});var c=o(0),a=o(2),l=o(3),s=function(){function e(e,t,o){this.componentFactoryResolver=e,this.container=t,this.layouts=o,this.form=new a.FormGroup({})}var t,o,s,f;return Object.defineProperty(e.prototype,"changes",{get:function(){return this.form.valueChanges},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"valid",{get:function(){return this.form.valid},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"value",{get:function(){return this.form.value},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"rawValue",{get:function(){return this.form.getRawValue()},enumerable:!0,configurable:!0}),e.prototype.ngOnInit=function(){if(!this.layouts[this.formConfig.layout])throw new Error('Layout with name "'+this.formConfig.layout+'" was not found');var e=this.layouts[this.formConfig.layout],t=this.componentFactoryResolver.resolveComponentFactory(e),o=this.container.createComponent(t);o.instance.form=this.form,o.instance.formConfig=this.formConfig,o.instance.model=this.model},n([c.Input(),r("design:type","function"==typeof(t=void 0!==l.FormConfig&&l.FormConfig)?t:Object)],e.prototype,"formConfig",void 0),n([c.Input(),r("design:type",Object)],e.prototype,"model",void 0),n([c.Input(),r("design:type",Object)],e.prototype,"lookups",void 0),e=n([c.Directive({exportAs:"dynamicForm",selector:"dynamic-form"}),i(2,c.Inject(l.LAYOUTS_TOKEN)),r("design:paramtypes",["function"==typeof(o=void 0!==c.ComponentFactoryResolver&&c.ComponentFactoryResolver)?o:Object,"function"==typeof(s=void 0!==c.ViewContainerRef&&c.ViewContainerRef)?s:Object,"function"==typeof(f=void 0!==l.LayoutDictionary&&l.LayoutDictionary)?f:Object])],e)}();t.DynamicFormDirective=s},function(e,t){e.exports=require("@angular/platform-browser/animations")},function(e,t,o){"use strict";var n=this&&this.__decorate||function(e,t,o,n){var r,i=arguments.length,c=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,o):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)c=Reflect.decorate(e,t,o,n);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(c=(i<3?r(c):i>3?r(t,o,c):r(t,o))||c);return i>3&&c&&Object.defineProperty(t,o,c),c};Object.defineProperty(t,"__esModule",{value:!0});var r=o(0),i=o(1),c=o(14),a=o(15),l=o(16),s=o(18),f=o(20),u=o(25),p=o(27),d=o(29),m=o(31),v=o(33),h=o(35),y=o(37);t.defaultInputs={text:l.FormInputComponent,select:s.FormSelectComponent,editor:f.FormTextEditorComponent,textarea:d.FormTextareaComponent,hidden:m.FormInputHiddenComponent,radio:p.FormRadioComponent,checkbox:u.FormCheckboxComponent,label:v.FormLabelComponent,date:h.FormDateComponent};var b=function(){function e(){}return e=n([r.NgModule({imports:[i.CommonModule,a.TagInputModule,c.QuillModule,y.NgbModule],declarations:[l.FormInputComponent,s.FormSelectComponent,f.FormTextEditorComponent,d.FormTextareaComponent,m.FormInputHiddenComponent,p.FormRadioComponent,u.FormCheckboxComponent,v.FormLabelComponent,h.FormDateComponent],exports:[l.FormInputComponent,s.FormSelectComponent,f.FormTextEditorComponent,d.FormTextareaComponent,m.FormInputHiddenComponent,p.FormRadioComponent,u.FormCheckboxComponent,v.FormLabelComponent,h.FormDateComponent],entryComponents:[l.FormInputComponent,s.FormSelectComponent,f.FormTextEditorComponent,d.FormTextareaComponent,m.FormInputHiddenComponent,p.FormRadioComponent,u.FormCheckboxComponent,v.FormLabelComponent,h.FormDateComponent],schemas:[r.NO_ERRORS_SCHEMA]})],e)}();t.FormFieldsModule=b},function(e,t){e.exports=require("ngx-quill")},function(e,t){e.exports=require("ngx-chips")},function(e,t,o){"use strict";var n=this&&this.__decorate||function(e,t,o,n){var r,i=arguments.length,c=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,o):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)c=Reflect.decorate(e,t,o,n);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(c=(i<3?r(c):i>3?r(t,o,c):r(t,o))||c);return i>3&&c&&Object.defineProperty(t,o,c),c};Object.defineProperty(t,"__esModule",{value:!0});var r=o(0),i=function(){function e(){}return e=n([r.Component({selector:"form-input",template:o(17)})],e)}();t.FormInputComponent=i},function(e,t){e.exports='
\n \n
\n \n
\n
\n'},function(e,t,o){"use strict";var n=this&&this.__decorate||function(e,t,o,n){var r,i=arguments.length,c=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,o):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)c=Reflect.decorate(e,t,o,n);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(c=(i<3?r(c):i>3?r(t,o,c):r(t,o))||c);return i>3&&c&&Object.defineProperty(t,o,c),c};Object.defineProperty(t,"__esModule",{value:!0});var r=o(0),i=function(){function e(){}return e=n([r.Component({selector:"form-select",template:o(19)})],e)}();t.FormSelectComponent=i},function(e,t){e.exports='
\n \n
\n \n
\n
'},function(e,t,o){"use strict";var n=this&&this.__decorate||function(e,t,o,n){var r,i=arguments.length,c=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,o):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)c=Reflect.decorate(e,t,o,n);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(c=(i<3?r(c):i>3?r(t,o,c):r(t,o))||c);return i>3&&c&&Object.defineProperty(t,o,c),c};Object.defineProperty(t,"__esModule",{value:!0});var r=o(0),i=function(){function e(){this.quillToolbar={toolbar:["bold","italic","underline","strike",{header:1},{header:2},{list:"ordered"},{list:"bullet"},"blockquote","code-block","link"]}}return e=n([r.Component({selector:"form-text-editor",template:o(21),styles:[o(22).toString()]})],e)}();t.FormTextEditorComponent=i},function(e,t){e.exports='
\n \n
\n \n
\n
'},function(e,t,o){var n=o(23);"string"==typeof n&&(n=[[e.i,n,""]]);var r={hmr:!0,transform:void 0,insertInto:void 0};o(5)(n,r);n.locals&&(e.exports=n.locals)},function(e,t,o){(e.exports=o(4)(!1)).push([e.i,"form-text-editor .editor-container {\n margin-bottom: 40px; }\n\nform-text-editor .ql-container.ql-disabled {\n background-color: #e9ecef; }\n",""])},function(e,t){e.exports=function(e){var t="undefined"!=typeof window&&window.location;if(!t)throw new Error("fixUrls requires window.location");if(!e||"string"!=typeof e)return e;var o=t.protocol+"//"+t.host,n=o+t.pathname.replace(/\/[^\/]*$/,"/");return e.replace(/url\s*\(((?:[^)(]|\((?:[^)(]+|\([^)(]*\))*\))*)\)/gi,function(e,t){var r,i=t.trim().replace(/^"(.*)"$/,function(e,t){return t}).replace(/^'(.*)'$/,function(e,t){return t});return/^(#|data:|http:\/\/|https:\/\/|file:\/\/\/|\s*$)/i.test(i)?e:(r=0===i.indexOf("//")?i:0===i.indexOf("/")?o+i:n+i.replace(/^\.\//,""),"url("+JSON.stringify(r)+")")})}},function(e,t,o){"use strict";var n=this&&this.__decorate||function(e,t,o,n){var r,i=arguments.length,c=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,o):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)c=Reflect.decorate(e,t,o,n);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(c=(i<3?r(c):i>3?r(t,o,c):r(t,o))||c);return i>3&&c&&Object.defineProperty(t,o,c),c};Object.defineProperty(t,"__esModule",{value:!0});var r=o(0),i=function(){function e(){}return e=n([r.Component({selector:"form-checkbox",template:o(26)})],e)}();t.FormCheckboxComponent=i},function(e,t){e.exports='
\n \n
\n \n
\n
'},function(e,t,o){"use strict";var n=this&&this.__decorate||function(e,t,o,n){var r,i=arguments.length,c=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,o):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)c=Reflect.decorate(e,t,o,n);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(c=(i<3?r(c):i>3?r(t,o,c):r(t,o))||c);return i>3&&c&&Object.defineProperty(t,o,c),c};Object.defineProperty(t,"__esModule",{value:!0});var r=o(0),i=function(){function e(){}return e=n([r.Component({selector:"form-radio",template:o(28)})],e)}();t.FormRadioComponent=i},function(e,t){e.exports='
\n \n
\n \n
\n
'},function(e,t,o){"use strict";var n=this&&this.__decorate||function(e,t,o,n){var r,i=arguments.length,c=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,o):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)c=Reflect.decorate(e,t,o,n);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(c=(i<3?r(c):i>3?r(t,o,c):r(t,o))||c);return i>3&&c&&Object.defineProperty(t,o,c),c};Object.defineProperty(t,"__esModule",{value:!0});var r=o(0),i=function(){function e(){}return e=n([r.Component({selector:"form-textarea",template:o(30)})],e)}();t.FormTextareaComponent=i},function(e,t){e.exports='
\n \n
\n \n
\n
'},function(e,t,o){"use strict";var n=this&&this.__decorate||function(e,t,o,n){var r,i=arguments.length,c=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,o):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)c=Reflect.decorate(e,t,o,n);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(c=(i<3?r(c):i>3?r(t,o,c):r(t,o))||c);return i>3&&c&&Object.defineProperty(t,o,c),c};Object.defineProperty(t,"__esModule",{value:!0});var r=o(0),i=function(){function e(){}return e=n([r.Component({selector:"form-hidden",template:o(32)})],e)}();t.FormInputHiddenComponent=i},function(e,t){e.exports='\n \n\n'},function(e,t,o){"use strict";var n=this&&this.__decorate||function(e,t,o,n){var r,i=arguments.length,c=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,o):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)c=Reflect.decorate(e,t,o,n);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(c=(i<3?r(c):i>3?r(t,o,c):r(t,o))||c);return i>3&&c&&Object.defineProperty(t,o,c),c};Object.defineProperty(t,"__esModule",{value:!0});var r=o(0),i=function(){function e(){}return e=n([r.Component({selector:"form-label",template:o(34)})],e)}();t.FormLabelComponent=i},function(e,t){e.exports='
\n \n
\n {{group.value[this.field.name]}}\n
\n
'},function(e,t,o){"use strict";var n=this&&this.__decorate||function(e,t,o,n){var r,i=arguments.length,c=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,o):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)c=Reflect.decorate(e,t,o,n);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(c=(i<3?r(c):i>3?r(t,o,c):r(t,o))||c);return i>3&&c&&Object.defineProperty(t,o,c),c};Object.defineProperty(t,"__esModule",{value:!0});var r=o(0),i=function(){function e(){}return e=n([r.Component({selector:"form-date",template:o(36)})],e)}();t.FormDateComponent=i},function(e,t){e.exports='
\n \n
\n \n
\n
\n'},function(e,t){e.exports=require("@ng-bootstrap/ng-bootstrap")},function(e,t,o){"use strict";var n=this&&this.__decorate||function(e,t,o,n){var r,i=arguments.length,c=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,o):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)c=Reflect.decorate(e,t,o,n);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(c=(i<3?r(c):i>3?r(t,o,c):r(t,o))||c);return i>3&&c&&Object.defineProperty(t,o,c),c};Object.defineProperty(t,"__esModule",{value:!0});var r=o(0),i=o(1),c=o(39),a=o(43),l=o(49),s=o(7);t.defaultLayouts={groups:c.GroupComponent};var f=function(){function e(){}return e=n([r.NgModule({imports:[i.CommonModule,a.FormNavModule,s.DynamicFieldModule],declarations:[c.GroupComponent,l.PanelComponent],exports:[c.GroupComponent,l.PanelComponent],entryComponents:[c.GroupComponent,l.PanelComponent],schemas:[r.NO_ERRORS_SCHEMA]})],e)}();t.FormLayoutsModule=f},function(e,t,o){"use strict";var n=this&&this.__decorate||function(e,t,o,n){var r,i=arguments.length,c=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,o):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)c=Reflect.decorate(e,t,o,n);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(c=(i<3?r(c):i>3?r(t,o,c):r(t,o))||c);return i>3&&c&&Object.defineProperty(t,o,c),c},r=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)};Object.defineProperty(t,"__esModule",{value:!0});var i=o(0),c=o(2),a=o(3),l=function(){function e(){}var t,l;return e.prototype.ngOnInit=function(){var e=this,t=[];this.formConfig.form.forEach(function(o){o.fields&&(t=t.concat(o.fields)),o.panels&&o.panels.forEach(function(e){e.fields&&(t=t.concat(e.fields))}),o.enableWhen&&!e.checkRules(o,e.model)&&t.forEach(function(e){return e.disabled=!0})}),t.forEach(function(t){if(t.lookup&&e.lookups){var o="string"==typeof t.lookup?{name:t.lookup,extract:null}:t.lookup;t.options=o.extract?e.lookups[o.name].map(function(e){return e[o.extract]}):e.lookups[o.name]}else;})},e.prototype.checkRules=function(e,t){var o=!0;if(e.enableWhen){var n=e.enableWhen;if(!n.rules.length)return!0;var r=function(o){var n,r=t[o.field]||(n=e.fields.find(function(e){return e.name===o.field}))&&n.value||"";return Array.isArray(o.equals)||(o.equals=[o.equals]),o.equals.indexOf(r)>-1};return n.type!==a.ConditionType.Or&&n.type||(o=n.rules.some(r)),n.type===a.ConditionType.And&&(o=n.rules.every(r)),o}},n([i.Input(),r("design:type","function"==typeof(t=void 0!==a.FormConfig&&a.FormConfig)?t:Object)],e.prototype,"formConfig",void 0),n([i.Input(),r("design:type",Object)],e.prototype,"model",void 0),n([i.Input(),r("design:type",Object)],e.prototype,"lookups",void 0),n([i.Input(),r("design:type","function"==typeof(l=void 0!==c.FormGroup&&c.FormGroup)?l:Object)],e.prototype,"form",void 0),e=n([i.Component({selector:"layout-group-group",template:o(40),styles:[o(41).toString()]})],e)}();t.GroupComponent=l},function(e,t){e.exports='
\n
\n \n
\n
\n
\n\n \n \n \n\n \n \n \n
\n
\n
'},function(e,t,o){var n=o(42);"string"==typeof n&&(n=[[e.i,n,""]]);var r={hmr:!0,transform:void 0,insertInto:void 0};o(5)(n,r);n.locals&&(e.exports=n.locals)},function(e,t,o){(e.exports=o(4)(!1)).push([e.i,".required-icon {\n color: red; }\n",""])},function(e,t,o){"use strict";var n=this&&this.__decorate||function(e,t,o,n){var r,i=arguments.length,c=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,o):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)c=Reflect.decorate(e,t,o,n);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(c=(i<3?r(c):i>3?r(t,o,c):r(t,o))||c);return i>3&&c&&Object.defineProperty(t,o,c),c};Object.defineProperty(t,"__esModule",{value:!0});var r=o(0),i=o(44),c=o(48),a=o(6),l=o(1),s=function(){function e(){}return e=n([r.NgModule({imports:[l.CommonModule],declarations:[i.FormNavComponent,c.NavDirective],exports:[i.FormNavComponent,c.NavDirective],providers:[a.FormNavService],schemas:[r.NO_ERRORS_SCHEMA]})],e)}();t.FormNavModule=s},function(e,t,o){"use strict";var n=this&&this.__decorate||function(e,t,o,n){var r,i=arguments.length,c=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,o):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)c=Reflect.decorate(e,t,o,n);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(c=(i<3?r(c):i>3?r(t,o,c):r(t,o))||c);return i>3&&c&&Object.defineProperty(t,o,c),c},r=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)};Object.defineProperty(t,"__esModule",{value:!0});var i=o(0),c=o(6),a=o(2),l=function(){function e(e){this.ns=e,this.ref={groups:[]},this.subscriptions=[],e.addWatcher(this.ref)}var t,l;return e.prototype.ngAfterContentInit=function(){for(var e=this,t=(Object.keys(this.form.controls),function(t){var o=[];t.fields&&(o=o.concat(t.fields)),t.panels&&t.panels.forEach(function(e){e.fields&&(o=o.concat(e.fields))}),t.controls=o.filter(function(e){return e.required}).map(function(t){return e.form.get(t.name)}),0===t.controls.length?t.valid=!0:t.controls.forEach(function(o){e.subscriptions.push(o.statusChanges.subscribe(function(){t.valid=t.controls.every(function(e){return e.valid})}))})}),o=0,n=this.ref.groups;othis.ref.groups.length-2},e.prototype.ngOnDestroy=function(){this.subscriptions.forEach(function(e){return e.unsubscribe()}),this.ns.reset()},n([i.Input(),r("design:type","function"==typeof(t=void 0!==a.FormGroup&&a.FormGroup)?t:Object)],e.prototype,"form",void 0),e=n([i.Component({selector:"form-nav",template:o(45),styles:[o(46).toString()]}),r("design:paramtypes",["function"==typeof(l=void 0!==c.FormNavService&&c.FormNavService)?l:Object])],e)}();t.FormNavComponent=l},function(e,t){e.exports='\n
\n
\n
\n \n \n
\n
\n
'},function(e,t,o){var n=o(47);"string"==typeof n&&(n=[[e.i,n,""]]);var r={hmr:!0,transform:void 0,insertInto:void 0};o(5)(n,r);n.locals&&(e.exports=n.locals)},function(e,t,o){(e.exports=o(4)(!1)).push([e.i,"",""])},function(e,t,o){"use strict";var n=this&&this.__decorate||function(e,t,o,n){var r,i=arguments.length,c=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,o):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)c=Reflect.decorate(e,t,o,n);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(c=(i<3?r(c):i>3?r(t,o,c):r(t,o))||c);return i>3&&c&&Object.defineProperty(t,o,c),c},r=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)};Object.defineProperty(t,"__esModule",{value:!0});var i=o(0),c=o(6),a=function(){function e(e){this.navService=e}var t;return e.prototype.ngOnInit=function(){this.panel.static||this.navService.add(this.panel)},n([i.Input("navTab"),r("design:type",Object)],e.prototype,"panel",void 0),e=n([i.Directive({selector:"[navTab]"}),r("design:paramtypes",["function"==typeof(t=void 0!==c.FormNavService&&c.FormNavService)?t:Object])],e)}();t.NavDirective=a},function(e,t,o){"use strict";var n=this&&this.__decorate||function(e,t,o,n){var r,i=arguments.length,c=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,o):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)c=Reflect.decorate(e,t,o,n);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(c=(i<3?r(c):i>3?r(t,o,c):r(t,o))||c);return i>3&&c&&Object.defineProperty(t,o,c),c},r=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)};Object.defineProperty(t,"__esModule",{value:!0});var i=o(0),c=function(){function e(){}return n([i.Input(),r("design:type",Object)],e.prototype,"panelConfig",void 0),n([i.Input(),r("design:type",Object)],e.prototype,"group",void 0),n([i.Input(),r("design:type",Object)],e.prototype,"model",void 0),e=n([i.Component({selector:"layout-group-panel",template:o(50),styles:[o(51).toString()]})],e)}();t.PanelComponent=c},function(e,t){e.exports='
\n
\n {{panelConfig.label}}\n
\n
\n
\n
\n
'},function(e,t,o){var n=o(52);"string"==typeof n&&(n=[[e.i,n,""]]);var r={hmr:!0,transform:void 0,insertInto:void 0};o(5)(n,r);n.locals&&(e.exports=n.locals)},function(e,t,o){(e.exports=o(4)(!1)).push([e.i,"layout-group-panel .panel {\n margin-bottom: 20px;\n background-color: #fff;\n border-radius: 4px;\n border: 1px solid #ddd;\n -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);\n box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05); }\n layout-group-panel .panel .panel-heading {\n color: #333;\n background-color: #f5f5f5;\n padding: 10px 15px;\n border-bottom: 1px solid #ddd;\n border-top-left-radius: 3px;\n border-top-right-radius: 3px; }\n layout-group-panel .panel .panel-body {\n padding: 15px; }\n",""])},function(e,t,o){"use strict";var n=this&&this.__decorate||function(e,t,o,n){var r,i=arguments.length,c=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,o):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)c=Reflect.decorate(e,t,o,n);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(c=(i<3?r(c):i>3?r(t,o,c):r(t,o))||c);return i>3&&c&&Object.defineProperty(t,o,c),c},r=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},i=this&&this.__param||function(e,t){return function(o,n){t(o,n,e)}};Object.defineProperty(t,"__esModule",{value:!0});var c=o(0),a=o(2),l=o(3),s=function(){function e(e,t,o,n){this.resolver=e,this.container=t,this.fb=o,this.inputs=n}var t,o,s,f,u,p;return e.prototype.ngOnInit=function(){if(!this.group)throw new Error("group is not set");if(!this.inputs[this.field.type])throw new Error('Input with type "'+this.field.type+'" was not found');var e=this.inputs[this.field.type],t=this.resolver.resolveComponentFactory(e);this.component=this.container.createComponent(t),this.component.instance.field=this.field,this.component.instance.group=this.group,this.component.instance.model=this.model,this.group.addControl(this.field.name,this.createControl(this.field)),this.model&&this.model[this.field.name]&&this.group.get(this.field.name).patchValue(this.model[this.field.name])},e.prototype.createControl=function(e){var t=e.disabled,o=e.required,n=e.minLength,r=e.maxLength,i=e.email,c=e.min,l=e.max,s=e.pattern,f=e.value,u=[];return void 0!==o&&o&&u.push(a.Validators.required),void 0!==n&&u.push(a.Validators.minLength(n)),void 0!==r&&u.push(a.Validators.maxLength(r)),void 0!==i&&u.push(a.Validators.email),void 0!==c&&u.push(a.Validators.min(c)),void 0!==l&&u.push(a.Validators.max(l)),void 0!==s&&u.push(a.Validators.pattern(s)),this.fb.control({disabled:t,value:f},u)},e.prototype.ngOnDestroy=function(){this.component&&this.component.destroy()},n([c.Input(),r("design:type","function"==typeof(t=void 0!==l.FieldConfig&&l.FieldConfig)?t:Object)],e.prototype,"field",void 0),n([c.Input(),r("design:type","function"==typeof(o=void 0!==a.FormGroup&&a.FormGroup)?o:Object)],e.prototype,"group",void 0),n([c.Input(),r("design:type",Object)],e.prototype,"model",void 0),e=n([c.Directive({selector:"[dynamicField]"}),i(3,c.Inject(l.FIELD_DICT_TOKEN)),r("design:paramtypes",["function"==typeof(s=void 0!==c.ComponentFactoryResolver&&c.ComponentFactoryResolver)?s:Object,"function"==typeof(f=void 0!==c.ViewContainerRef&&c.ViewContainerRef)?f:Object,"function"==typeof(u=void 0!==a.FormBuilder&&a.FormBuilder)?u:Object,"function"==typeof(p=void 0!==l.FieldDictionary&&l.FieldDictionary)?p:Object])],e)}();t.DynamicFieldDirective=s}])}); \ No newline at end of file +!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.ngxForms=t():e.ngxForms=t()}(window,function(){return function(e){var t={};function o(n){if(t[n])return t[n].exports;var r=t[n]={i:n,l:!1,exports:{}};return e[n].call(r.exports,r,r.exports,o),r.l=!0,r.exports}return o.m=e,o.c=t,o.d=function(e,t,n){o.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},o.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},o.t=function(e,t){if(1&t&&(e=o(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(o.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var r in e)o.d(n,r,function(t){return e[t]}.bind(null,r));return n},o.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return o.d(t,"a",t),t},o.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},o.p="",o(o.s=8)}([function(e,t){e.exports=require("@angular/core")},function(e,t){e.exports=require("@angular/forms")},function(e,t){e.exports=require("@angular/common")},function(e,t,o){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=o(0);t.FIELD_DICT_TOKEN=new n.InjectionToken("fields"),t.LAYOUTS_TOKEN=new n.InjectionToken("layouts"),function(e){e.And="and",e.Or="or"}(t.ConditionType||(t.ConditionType={}))},function(e,t,o){"use strict";e.exports=function(e){var t=[];return t.toString=function(){return this.map(function(t){var o=function(e,t){var o=e[1]||"",n=e[3];if(!n)return o;if(t&&"function"==typeof btoa){var r=(c=n,"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(c))))+" */"),i=n.sources.map(function(e){return"/*# sourceURL="+n.sourceRoot+e+" */"});return[o].concat(i).concat([r]).join("\n")}var c;return[o].join("\n")}(t,e);return t[2]?"@media "+t[2]+"{"+o+"}":o}).join("")},t.i=function(e,o){"string"==typeof e&&(e=[[null,e,""]]);for(var n={},r=0;r=0&&f.splice(t,1)}function h(e){var t=document.createElement("style");if(void 0===e.attrs.type&&(e.attrs.type="text/css"),void 0===e.attrs.nonce){var n=function(){0;return o.nc}();n&&(e.attrs.nonce=n)}return y(t,e.attrs),m(e,t),t}function y(e,t){Object.keys(t).forEach(function(o){e.setAttribute(o,t[o])})}function b(e,t){var o,n,r,i;if(t.transform&&e.css){if(!(i=t.transform(e.css)))return function(){};e.css=i}if(t.singleton){var c=s++;o=l||(l=h(t)),n=C.bind(null,o,c,!1),r=C.bind(null,o,c,!0)}else e.sourceMap&&"function"==typeof URL&&"function"==typeof URL.createObjectURL&&"function"==typeof URL.revokeObjectURL&&"function"==typeof Blob&&"function"==typeof btoa?(o=function(e){var t=document.createElement("link");return void 0===e.attrs.type&&(e.attrs.type="text/css"),e.attrs.rel="stylesheet",y(t,e.attrs),m(e,t),t}(t),n=function(e,t,o){var n=o.css,r=o.sourceMap,i=void 0===t.convertToAbsoluteUrls&&r;(t.convertToAbsoluteUrls||i)&&(n=u(n));r&&(n+="\n/*# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(r))))+" */");var c=new Blob([n],{type:"text/css"}),a=e.href;e.href=URL.createObjectURL(c),a&&URL.revokeObjectURL(a)}.bind(null,o,t),r=function(){v(o),o.href&&URL.revokeObjectURL(o.href)}):(o=h(t),n=function(e,t){var o=t.css,n=t.media;n&&e.setAttribute("media",n);if(e.styleSheet)e.styleSheet.cssText=o;else{for(;e.firstChild;)e.removeChild(e.firstChild);e.appendChild(document.createTextNode(o))}}.bind(null,o),r=function(){v(o)});return n(e),function(t){if(t){if(t.css===e.css&&t.media===e.media&&t.sourceMap===e.sourceMap)return;n(e=t)}else r()}}e.exports=function(e,t){if("undefined"!=typeof DEBUG&&DEBUG&&"object"!=typeof document)throw new Error("The style-loader cannot be used in a non-browser environment");(t=t||{}).attrs="object"==typeof t.attrs?t.attrs:{},t.singleton||"boolean"==typeof t.singleton||(t.singleton=c()),t.insertInto||(t.insertInto="head"),t.insertAt||(t.insertAt="bottom");var o=d(e,t);return p(o,t),function(e){for(var n=[],r=0;r=0;a--)(r=e[a])&&(c=(i<3?r(c):i>3?r(t,o,c):r(t,o))||c);return i>3&&c&&Object.defineProperty(t,o,c),c};Object.defineProperty(t,"__esModule",{value:!0});var r=o(0),i=function(){function e(){this.selected=0,this.groups=[],this.watchers=[]}return e.prototype.add=function(e){var t=this;this.groups.push(e),this.groups.length>1&&(e.hidden=!0),this.watchers.forEach(function(e){return e.groups=t.groups})},e.prototype.select=function(e){this.groups.forEach(function(e){e.hidden=!0}),this.groups[e].hidden=!1,this.selected=e},e.prototype.reset=function(){this.groups.forEach(function(e){e.hidden=!1}),this.groups=[],this.selected=0},e.prototype.addWatcher=function(e){this.watchers.push(e)},e.prototype.getAllGroups=function(){return this.groups},e=n([r.Injectable()],e)}();t.FormNavService=i},function(e,t,o){"use strict";var n=this&&this.__decorate||function(e,t,o,n){var r,i=arguments.length,c=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,o):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)c=Reflect.decorate(e,t,o,n);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(c=(i<3?r(c):i>3?r(t,o,c):r(t,o))||c);return i>3&&c&&Object.defineProperty(t,o,c),c};Object.defineProperty(t,"__esModule",{value:!0});var r=o(0),i=o(53),c=o(2),a=function(){function e(){}return e=n([r.NgModule({imports:[c.CommonModule],declarations:[i.DynamicFieldDirective],exports:[i.DynamicFieldDirective],schemas:[r.NO_ERRORS_SCHEMA]})],e)}();t.DynamicFieldModule=a},function(e,t,o){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),o(9),function(e){for(var o in e)t.hasOwnProperty(o)||(t[o]=e[o])}(o(10))},function(e,t){e.exports=require("reflect-metadata")},function(e,t,o){"use strict";var n=this&&this.__decorate||function(e,t,o,n){var r,i=arguments.length,c=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,o):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)c=Reflect.decorate(e,t,o,n);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(c=(i<3?r(c):i>3?r(t,o,c):r(t,o))||c);return i>3&&c&&Object.defineProperty(t,o,c),c};Object.defineProperty(t,"__esModule",{value:!0});var r=o(0),i=o(2),c=o(1),a=o(11),l=o(12),s=o(3),f=o(13),u=o(38),p=o(7),d=function(){function e(){}var t;return t=e,e.forRoot=function(e){var o=e.fieldDictionary,n=e.layoutDictionary;return o&&Object.keys(o).forEach(function(e){return f.defaultInputs[e]=o[e]}),n&&Object.keys(n).forEach(function(e){return u.defaultLayouts[e]=n[e]}),{ngModule:t,providers:[{provide:s.FIELD_DICT_TOKEN,useValue:f.defaultInputs},{provide:s.LAYOUTS_TOKEN,useValue:u.defaultLayouts}]}},e=t=n([r.NgModule({imports:[i.CommonModule,l.BrowserAnimationsModule,c.ReactiveFormsModule,c.FormsModule,u.FormLayoutsModule,f.FormFieldsModule,p.DynamicFieldModule],declarations:[a.DynamicFormDirective],exports:[a.DynamicFormDirective],providers:[{provide:s.FIELD_DICT_TOKEN,useValue:f.defaultInputs},{provide:s.LAYOUTS_TOKEN,useValue:u.defaultLayouts}],schemas:[r.NO_ERRORS_SCHEMA]})],e)}();t.NgxFormModule=d},function(e,t,o){"use strict";var n=this&&this.__decorate||function(e,t,o,n){var r,i=arguments.length,c=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,o):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)c=Reflect.decorate(e,t,o,n);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(c=(i<3?r(c):i>3?r(t,o,c):r(t,o))||c);return i>3&&c&&Object.defineProperty(t,o,c),c},r=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},i=this&&this.__param||function(e,t){return function(o,n){t(o,n,e)}};Object.defineProperty(t,"__esModule",{value:!0});var c=o(0),a=o(1),l=o(3),s=function(){function e(e,t,o){this.componentFactoryResolver=e,this.container=t,this.layouts=o,this.form=new a.FormGroup({})}var t,o,s,f;return Object.defineProperty(e.prototype,"changes",{get:function(){return this.form.valueChanges},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"valid",{get:function(){return this.form.valid},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"value",{get:function(){return this.form.value},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"rawValue",{get:function(){return this.form.getRawValue()},enumerable:!0,configurable:!0}),e.prototype.ngOnInit=function(){if(!this.layouts[this.formConfig.layout])throw new Error('Layout with name "'+this.formConfig.layout+'" was not found');var e=this.layouts[this.formConfig.layout],t=this.componentFactoryResolver.resolveComponentFactory(e),o=this.container.createComponent(t);o.instance.form=this.form,o.instance.formConfig=this.formConfig,o.instance.model=this.model},n([c.Input(),r("design:type","function"==typeof(t=void 0!==l.FormConfig&&l.FormConfig)?t:Object)],e.prototype,"formConfig",void 0),n([c.Input(),r("design:type",Object)],e.prototype,"model",void 0),n([c.Input(),r("design:type",Object)],e.prototype,"lookups",void 0),e=n([c.Directive({exportAs:"dynamicForm",selector:"dynamic-form"}),i(2,c.Inject(l.LAYOUTS_TOKEN)),r("design:paramtypes",["function"==typeof(o=void 0!==c.ComponentFactoryResolver&&c.ComponentFactoryResolver)?o:Object,"function"==typeof(s=void 0!==c.ViewContainerRef&&c.ViewContainerRef)?s:Object,"function"==typeof(f=void 0!==l.LayoutDictionary&&l.LayoutDictionary)?f:Object])],e)}();t.DynamicFormDirective=s},function(e,t){e.exports=require("@angular/platform-browser/animations")},function(e,t,o){"use strict";var n=this&&this.__decorate||function(e,t,o,n){var r,i=arguments.length,c=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,o):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)c=Reflect.decorate(e,t,o,n);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(c=(i<3?r(c):i>3?r(t,o,c):r(t,o))||c);return i>3&&c&&Object.defineProperty(t,o,c),c};Object.defineProperty(t,"__esModule",{value:!0});var r=o(0),i=o(2),c=o(14),a=o(15),l=o(16),s=o(18),f=o(20),u=o(25),p=o(27),d=o(29),m=o(31),v=o(33),h=o(35),y=o(37);t.defaultInputs={text:l.FormInputComponent,select:s.FormSelectComponent,editor:f.FormTextEditorComponent,textarea:d.FormTextareaComponent,hidden:m.FormInputHiddenComponent,radio:p.FormRadioComponent,checkbox:u.FormCheckboxComponent,label:v.FormLabelComponent,date:h.FormDateComponent};var b=function(){function e(){}return e=n([r.NgModule({imports:[i.CommonModule,a.TagInputModule,c.QuillModule,y.NgbModule],declarations:[l.FormInputComponent,s.FormSelectComponent,f.FormTextEditorComponent,d.FormTextareaComponent,m.FormInputHiddenComponent,p.FormRadioComponent,u.FormCheckboxComponent,v.FormLabelComponent,h.FormDateComponent],exports:[l.FormInputComponent,s.FormSelectComponent,f.FormTextEditorComponent,d.FormTextareaComponent,m.FormInputHiddenComponent,p.FormRadioComponent,u.FormCheckboxComponent,v.FormLabelComponent,h.FormDateComponent],entryComponents:[l.FormInputComponent,s.FormSelectComponent,f.FormTextEditorComponent,d.FormTextareaComponent,m.FormInputHiddenComponent,p.FormRadioComponent,u.FormCheckboxComponent,v.FormLabelComponent,h.FormDateComponent],schemas:[r.NO_ERRORS_SCHEMA]})],e)}();t.FormFieldsModule=b},function(e,t){e.exports=require("ngx-quill")},function(e,t){e.exports=require("ngx-chips")},function(e,t,o){"use strict";var n=this&&this.__decorate||function(e,t,o,n){var r,i=arguments.length,c=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,o):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)c=Reflect.decorate(e,t,o,n);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(c=(i<3?r(c):i>3?r(t,o,c):r(t,o))||c);return i>3&&c&&Object.defineProperty(t,o,c),c};Object.defineProperty(t,"__esModule",{value:!0});var r=o(0),i=function(){function e(){}return e=n([r.Component({selector:"form-input",template:o(17)})],e)}();t.FormInputComponent=i},function(e,t){e.exports='
\n \n
\n \n
\n
\n'},function(e,t,o){"use strict";var n=this&&this.__decorate||function(e,t,o,n){var r,i=arguments.length,c=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,o):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)c=Reflect.decorate(e,t,o,n);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(c=(i<3?r(c):i>3?r(t,o,c):r(t,o))||c);return i>3&&c&&Object.defineProperty(t,o,c),c};Object.defineProperty(t,"__esModule",{value:!0});var r=o(0),i=function(){function e(){}return e=n([r.Component({selector:"form-select",template:o(19)})],e)}();t.FormSelectComponent=i},function(e,t){e.exports='
\n \n
\n \n
\n
'},function(e,t,o){"use strict";var n=this&&this.__decorate||function(e,t,o,n){var r,i=arguments.length,c=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,o):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)c=Reflect.decorate(e,t,o,n);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(c=(i<3?r(c):i>3?r(t,o,c):r(t,o))||c);return i>3&&c&&Object.defineProperty(t,o,c),c};Object.defineProperty(t,"__esModule",{value:!0});var r=o(0),i=function(){function e(){this.quillToolbar={toolbar:["bold","italic","underline","strike",{header:1},{header:2},{list:"ordered"},{list:"bullet"},"blockquote","code-block","link"]}}return e=n([r.Component({selector:"form-text-editor",template:o(21),styles:[o(22).toString()]})],e)}();t.FormTextEditorComponent=i},function(e,t){e.exports='
\n \n
\n \n
\n
'},function(e,t,o){var n=o(23);"string"==typeof n&&(n=[[e.i,n,""]]);var r={hmr:!0,transform:void 0,insertInto:void 0};o(5)(n,r);n.locals&&(e.exports=n.locals)},function(e,t,o){(e.exports=o(4)(!1)).push([e.i,"form-text-editor .editor-container {\n margin-bottom: 40px; }\n\nform-text-editor .ql-container.ql-disabled {\n background-color: #e9ecef; }\n",""])},function(e,t){e.exports=function(e){var t="undefined"!=typeof window&&window.location;if(!t)throw new Error("fixUrls requires window.location");if(!e||"string"!=typeof e)return e;var o=t.protocol+"//"+t.host,n=o+t.pathname.replace(/\/[^\/]*$/,"/");return e.replace(/url\s*\(((?:[^)(]|\((?:[^)(]+|\([^)(]*\))*\))*)\)/gi,function(e,t){var r,i=t.trim().replace(/^"(.*)"$/,function(e,t){return t}).replace(/^'(.*)'$/,function(e,t){return t});return/^(#|data:|http:\/\/|https:\/\/|file:\/\/\/|\s*$)/i.test(i)?e:(r=0===i.indexOf("//")?i:0===i.indexOf("/")?o+i:n+i.replace(/^\.\//,""),"url("+JSON.stringify(r)+")")})}},function(e,t,o){"use strict";var n=this&&this.__decorate||function(e,t,o,n){var r,i=arguments.length,c=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,o):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)c=Reflect.decorate(e,t,o,n);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(c=(i<3?r(c):i>3?r(t,o,c):r(t,o))||c);return i>3&&c&&Object.defineProperty(t,o,c),c};Object.defineProperty(t,"__esModule",{value:!0});var r=o(0),i=function(){function e(){}return e=n([r.Component({selector:"form-checkbox",template:o(26)})],e)}();t.FormCheckboxComponent=i},function(e,t){e.exports='
\n \n
\n \n
\n
'},function(e,t,o){"use strict";var n=this&&this.__decorate||function(e,t,o,n){var r,i=arguments.length,c=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,o):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)c=Reflect.decorate(e,t,o,n);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(c=(i<3?r(c):i>3?r(t,o,c):r(t,o))||c);return i>3&&c&&Object.defineProperty(t,o,c),c};Object.defineProperty(t,"__esModule",{value:!0});var r=o(0),i=function(){function e(){}return e=n([r.Component({selector:"form-radio",template:o(28)})],e)}();t.FormRadioComponent=i},function(e,t){e.exports='
\n \n
\n \n
\n
'},function(e,t,o){"use strict";var n=this&&this.__decorate||function(e,t,o,n){var r,i=arguments.length,c=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,o):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)c=Reflect.decorate(e,t,o,n);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(c=(i<3?r(c):i>3?r(t,o,c):r(t,o))||c);return i>3&&c&&Object.defineProperty(t,o,c),c};Object.defineProperty(t,"__esModule",{value:!0});var r=o(0),i=function(){function e(){}return e=n([r.Component({selector:"form-textarea",template:o(30)})],e)}();t.FormTextareaComponent=i},function(e,t){e.exports='
\n \n
\n \n
\n
'},function(e,t,o){"use strict";var n=this&&this.__decorate||function(e,t,o,n){var r,i=arguments.length,c=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,o):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)c=Reflect.decorate(e,t,o,n);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(c=(i<3?r(c):i>3?r(t,o,c):r(t,o))||c);return i>3&&c&&Object.defineProperty(t,o,c),c};Object.defineProperty(t,"__esModule",{value:!0});var r=o(0),i=function(){function e(){}return e=n([r.Component({selector:"form-hidden",template:o(32)})],e)}();t.FormInputHiddenComponent=i},function(e,t){e.exports='\n \n\n'},function(e,t,o){"use strict";var n=this&&this.__decorate||function(e,t,o,n){var r,i=arguments.length,c=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,o):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)c=Reflect.decorate(e,t,o,n);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(c=(i<3?r(c):i>3?r(t,o,c):r(t,o))||c);return i>3&&c&&Object.defineProperty(t,o,c),c};Object.defineProperty(t,"__esModule",{value:!0});var r=o(0),i=function(){function e(){}return e=n([r.Component({selector:"form-label",template:o(34)})],e)}();t.FormLabelComponent=i},function(e,t){e.exports='
\n \n
\n {{group.value[this.field.name]}}\n
\n
'},function(e,t,o){"use strict";var n=this&&this.__decorate||function(e,t,o,n){var r,i=arguments.length,c=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,o):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)c=Reflect.decorate(e,t,o,n);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(c=(i<3?r(c):i>3?r(t,o,c):r(t,o))||c);return i>3&&c&&Object.defineProperty(t,o,c),c};Object.defineProperty(t,"__esModule",{value:!0});var r=o(0),i=function(){function e(){}return e=n([r.Component({selector:"form-date",template:o(36)})],e)}();t.FormDateComponent=i},function(e,t){e.exports='
\n \n
\n \n
\n
\n'},function(e,t){e.exports=require("@ng-bootstrap/ng-bootstrap")},function(e,t,o){"use strict";var n=this&&this.__decorate||function(e,t,o,n){var r,i=arguments.length,c=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,o):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)c=Reflect.decorate(e,t,o,n);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(c=(i<3?r(c):i>3?r(t,o,c):r(t,o))||c);return i>3&&c&&Object.defineProperty(t,o,c),c};Object.defineProperty(t,"__esModule",{value:!0});var r=o(0),i=o(2),c=o(39),a=o(43),l=o(49),s=o(7),f=o(54);t.defaultLayouts={groups:c.GroupComponent,basic:f.BasicLayoutComponent};var u=function(){function e(){}return e=n([r.NgModule({imports:[i.CommonModule,a.FormNavModule,s.DynamicFieldModule],declarations:[c.GroupComponent,l.PanelComponent,f.BasicLayoutComponent],entryComponents:[c.GroupComponent,l.PanelComponent,f.BasicLayoutComponent],schemas:[r.NO_ERRORS_SCHEMA]})],e)}();t.FormLayoutsModule=u},function(e,t,o){"use strict";var n=this&&this.__decorate||function(e,t,o,n){var r,i=arguments.length,c=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,o):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)c=Reflect.decorate(e,t,o,n);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(c=(i<3?r(c):i>3?r(t,o,c):r(t,o))||c);return i>3&&c&&Object.defineProperty(t,o,c),c},r=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)};Object.defineProperty(t,"__esModule",{value:!0});var i=o(0),c=o(1),a=o(3),l=function(){function e(){}var t,l;return e.prototype.ngOnInit=function(){var e=this,t=[];this.formConfig.form.forEach(function(o){o.fields&&(t=t.concat(o.fields)),o.panels&&o.panels.forEach(function(e){e.fields&&(t=t.concat(e.fields))}),o.enableWhen&&!e.checkRules(o,e.model)&&t.forEach(function(e){return e.disabled=!0})}),t.forEach(function(t){if(t.lookup&&e.lookups){var o="string"==typeof t.lookup?{name:t.lookup,extract:null}:t.lookup;t.options=o.extract?e.lookups[o.name].map(function(e){return e[o.extract]}):e.lookups[o.name]}else;})},e.prototype.checkRules=function(e,t){var o=!0;if(e.enableWhen){var n=e.enableWhen;if(!n.rules.length)return!0;var r=function(o){var n,r=t[o.field]||(n=e.fields.find(function(e){return e.name===o.field}))&&n.value||"";return Array.isArray(o.equals)||(o.equals=[o.equals]),o.equals.indexOf(r)>-1};return n.type!==a.ConditionType.Or&&n.type||(o=n.rules.some(r)),n.type===a.ConditionType.And&&(o=n.rules.every(r)),o}},n([i.Input(),r("design:type","function"==typeof(t=void 0!==a.FormConfig&&a.FormConfig)?t:Object)],e.prototype,"formConfig",void 0),n([i.Input(),r("design:type",Object)],e.prototype,"model",void 0),n([i.Input(),r("design:type",Object)],e.prototype,"lookups",void 0),n([i.Input(),r("design:type","function"==typeof(l=void 0!==c.FormGroup&&c.FormGroup)?l:Object)],e.prototype,"form",void 0),e=n([i.Component({selector:"layout-group-group",template:o(40),styles:[o(41).toString()]})],e)}();t.GroupComponent=l},function(e,t){e.exports='
\n
\n \n
\n
\n
\n\n \n \n \n\n \n \n \n
\n
\n
'},function(e,t,o){var n=o(42);"string"==typeof n&&(n=[[e.i,n,""]]);var r={hmr:!0,transform:void 0,insertInto:void 0};o(5)(n,r);n.locals&&(e.exports=n.locals)},function(e,t,o){(e.exports=o(4)(!1)).push([e.i,".required-icon {\n color: red; }\n",""])},function(e,t,o){"use strict";var n=this&&this.__decorate||function(e,t,o,n){var r,i=arguments.length,c=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,o):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)c=Reflect.decorate(e,t,o,n);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(c=(i<3?r(c):i>3?r(t,o,c):r(t,o))||c);return i>3&&c&&Object.defineProperty(t,o,c),c};Object.defineProperty(t,"__esModule",{value:!0});var r=o(0),i=o(44),c=o(48),a=o(6),l=o(2),s=function(){function e(){}return e=n([r.NgModule({imports:[l.CommonModule],declarations:[i.FormNavComponent,c.NavDirective],exports:[i.FormNavComponent,c.NavDirective],providers:[a.FormNavService],schemas:[r.NO_ERRORS_SCHEMA]})],e)}();t.FormNavModule=s},function(e,t,o){"use strict";var n=this&&this.__decorate||function(e,t,o,n){var r,i=arguments.length,c=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,o):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)c=Reflect.decorate(e,t,o,n);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(c=(i<3?r(c):i>3?r(t,o,c):r(t,o))||c);return i>3&&c&&Object.defineProperty(t,o,c),c},r=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)};Object.defineProperty(t,"__esModule",{value:!0});var i=o(0),c=o(6),a=o(1),l=function(){function e(e){this.ns=e,this.ref={groups:[]},this.subscriptions=[],e.addWatcher(this.ref)}var t,l;return e.prototype.ngAfterContentInit=function(){for(var e=this,t=(Object.keys(this.form.controls),function(t){var o=[];t.fields&&(o=o.concat(t.fields)),t.panels&&t.panels.forEach(function(e){e.fields&&(o=o.concat(e.fields))}),t.controls=o.filter(function(e){return e.required}).map(function(t){return e.form.get(t.name)}),0===t.controls.length?t.valid=!0:t.controls.forEach(function(o){e.subscriptions.push(o.statusChanges.subscribe(function(){t.valid=t.controls.every(function(e){return e.valid})}))})}),o=0,n=this.ref.groups;othis.ref.groups.length-2},e.prototype.ngOnDestroy=function(){this.subscriptions.forEach(function(e){return e.unsubscribe()}),this.ns.reset()},n([i.Input(),r("design:type","function"==typeof(t=void 0!==a.FormGroup&&a.FormGroup)?t:Object)],e.prototype,"form",void 0),e=n([i.Component({selector:"form-nav",template:o(45),styles:[o(46).toString()]}),r("design:paramtypes",["function"==typeof(l=void 0!==c.FormNavService&&c.FormNavService)?l:Object])],e)}();t.FormNavComponent=l},function(e,t){e.exports='\n
\n
\n
\n \n \n
\n
\n
'},function(e,t,o){var n=o(47);"string"==typeof n&&(n=[[e.i,n,""]]);var r={hmr:!0,transform:void 0,insertInto:void 0};o(5)(n,r);n.locals&&(e.exports=n.locals)},function(e,t,o){(e.exports=o(4)(!1)).push([e.i,"",""])},function(e,t,o){"use strict";var n=this&&this.__decorate||function(e,t,o,n){var r,i=arguments.length,c=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,o):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)c=Reflect.decorate(e,t,o,n);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(c=(i<3?r(c):i>3?r(t,o,c):r(t,o))||c);return i>3&&c&&Object.defineProperty(t,o,c),c},r=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)};Object.defineProperty(t,"__esModule",{value:!0});var i=o(0),c=o(6),a=function(){function e(e){this.navService=e}var t;return e.prototype.ngOnInit=function(){this.panel.static||this.navService.add(this.panel)},n([i.Input("navTab"),r("design:type",Object)],e.prototype,"panel",void 0),e=n([i.Directive({selector:"[navTab]"}),r("design:paramtypes",["function"==typeof(t=void 0!==c.FormNavService&&c.FormNavService)?t:Object])],e)}();t.NavDirective=a},function(e,t,o){"use strict";var n=this&&this.__decorate||function(e,t,o,n){var r,i=arguments.length,c=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,o):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)c=Reflect.decorate(e,t,o,n);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(c=(i<3?r(c):i>3?r(t,o,c):r(t,o))||c);return i>3&&c&&Object.defineProperty(t,o,c),c},r=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)};Object.defineProperty(t,"__esModule",{value:!0});var i=o(0),c=function(){function e(){}return n([i.Input(),r("design:type",Object)],e.prototype,"panelConfig",void 0),n([i.Input(),r("design:type",Object)],e.prototype,"group",void 0),n([i.Input(),r("design:type",Object)],e.prototype,"model",void 0),e=n([i.Component({selector:"layout-group-panel",template:o(50),styles:[o(51).toString()]})],e)}();t.PanelComponent=c},function(e,t){e.exports='
\n
\n {{panelConfig.label}}\n
\n
\n
\n
\n
'},function(e,t,o){var n=o(52);"string"==typeof n&&(n=[[e.i,n,""]]);var r={hmr:!0,transform:void 0,insertInto:void 0};o(5)(n,r);n.locals&&(e.exports=n.locals)},function(e,t,o){(e.exports=o(4)(!1)).push([e.i,"layout-group-panel .panel {\n margin-bottom: 20px;\n background-color: #fff;\n border-radius: 4px;\n border: 1px solid #ddd;\n -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);\n box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05); }\n layout-group-panel .panel .panel-heading {\n color: #333;\n background-color: #f5f5f5;\n padding: 10px 15px;\n border-bottom: 1px solid #ddd;\n border-top-left-radius: 3px;\n border-top-right-radius: 3px; }\n layout-group-panel .panel .panel-body {\n padding: 15px; }\n",""])},function(e,t,o){"use strict";var n=this&&this.__decorate||function(e,t,o,n){var r,i=arguments.length,c=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,o):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)c=Reflect.decorate(e,t,o,n);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(c=(i<3?r(c):i>3?r(t,o,c):r(t,o))||c);return i>3&&c&&Object.defineProperty(t,o,c),c},r=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},i=this&&this.__param||function(e,t){return function(o,n){t(o,n,e)}};Object.defineProperty(t,"__esModule",{value:!0});var c=o(0),a=o(1),l=o(3),s=function(){function e(e,t,o,n){this.resolver=e,this.container=t,this.fb=o,this.inputs=n}var t,o,s,f,u,p;return e.prototype.ngOnInit=function(){if(!this.group)throw new Error("group is not set");if(!this.inputs[this.field.type])throw new Error('Input with type "'+this.field.type+'" was not found');var e=this.inputs[this.field.type],t=this.resolver.resolveComponentFactory(e);this.component=this.container.createComponent(t),this.component.instance.field=this.field,this.component.instance.group=this.group,this.component.instance.model=this.model,this.group.addControl(this.field.name,this.createControl(this.field)),this.model&&this.model[this.field.name]&&this.group.get(this.field.name).patchValue(this.model[this.field.name])},e.prototype.createControl=function(e){var t=e.disabled,o=e.required,n=e.minLength,r=e.maxLength,i=e.email,c=e.min,l=e.max,s=e.pattern,f=e.value,u=[];return void 0!==o&&o&&u.push(a.Validators.required),void 0!==n&&u.push(a.Validators.minLength(n)),void 0!==r&&u.push(a.Validators.maxLength(r)),void 0!==i&&u.push(a.Validators.email),void 0!==c&&u.push(a.Validators.min(c)),void 0!==l&&u.push(a.Validators.max(l)),void 0!==s&&u.push(a.Validators.pattern(s)),this.fb.control({disabled:t,value:f},u)},e.prototype.ngOnDestroy=function(){this.component&&this.component.destroy()},n([c.Input(),r("design:type","function"==typeof(t=void 0!==l.FieldConfig&&l.FieldConfig)?t:Object)],e.prototype,"field",void 0),n([c.Input(),r("design:type","function"==typeof(o=void 0!==a.FormGroup&&a.FormGroup)?o:Object)],e.prototype,"group",void 0),n([c.Input(),r("design:type",Object)],e.prototype,"model",void 0),e=n([c.Directive({selector:"[dynamicField]"}),i(3,c.Inject(l.FIELD_DICT_TOKEN)),r("design:paramtypes",["function"==typeof(s=void 0!==c.ComponentFactoryResolver&&c.ComponentFactoryResolver)?s:Object,"function"==typeof(f=void 0!==c.ViewContainerRef&&c.ViewContainerRef)?f:Object,"function"==typeof(u=void 0!==a.FormBuilder&&a.FormBuilder)?u:Object,"function"==typeof(p=void 0!==l.FieldDictionary&&l.FieldDictionary)?p:Object])],e)}();t.DynamicFieldDirective=s},function(e,t,o){"use strict";var n=this&&this.__decorate||function(e,t,o,n){var r,i=arguments.length,c=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,o):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)c=Reflect.decorate(e,t,o,n);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(c=(i<3?r(c):i>3?r(t,o,c):r(t,o))||c);return i>3&&c&&Object.defineProperty(t,o,c),c},r=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)};Object.defineProperty(t,"__esModule",{value:!0});var i=o(0),c=o(1),a=o(3),l=function(){function e(){}var t,l;return n([i.Input(),r("design:type","function"==typeof(t=void 0!==a.FormConfig&&a.FormConfig)?t:Object)],e.prototype,"formConfig",void 0),n([i.Input(),r("design:type",Object)],e.prototype,"model",void 0),n([i.Input(),r("design:type",Object)],e.prototype,"lookups",void 0),n([i.Input(),r("design:type","function"==typeof(l=void 0!==c.FormGroup&&c.FormGroup)?l:Object)],e.prototype,"form",void 0),e=n([i.Component({selector:"layout-basic",template:o(55)})],e)}();t.BasicLayoutComponent=l},function(e,t){e.exports='
\n
\n

{{formConfig.title}}

\n
\n
\n
'}])}); \ No newline at end of file diff --git a/src/app/layouts/basic/basic-layout.component.html b/src/app/layouts/basic/basic-layout.component.html new file mode 100644 index 0000000..616b912 --- /dev/null +++ b/src/app/layouts/basic/basic-layout.component.html @@ -0,0 +1,6 @@ +
+
+

{{formConfig.title}}

+
+
+
\ No newline at end of file diff --git a/src/app/layouts/basic/basic-layout.component.spec.ts b/src/app/layouts/basic/basic-layout.component.spec.ts new file mode 100644 index 0000000..b936fa5 --- /dev/null +++ b/src/app/layouts/basic/basic-layout.component.spec.ts @@ -0,0 +1,81 @@ +import { Component, NgModule } from "@angular/core"; +import { Field, FieldConfig, FieldDictionary, FIELD_DICT_TOKEN, FormConfig } from "../../../types"; +import { FormGroup, ReactiveFormsModule, FormsModule } from "@angular/forms"; +import { ComponentFixture, TestBed, async } from "@angular/core/testing"; +import { CommonModule } from "@angular/common"; +import { DynamicFieldDirective } from "../../dynamic-field/dynamic-field.directive"; +import { BasicLayoutComponent } from './basic-layout.component'; +import { DynamicFormDirective} from '../../dynamic-form/dynamic-form.component'; + +@Component({ + selector: 'form-input', + template: '
' +}) +export class FormInputComponent implements Field { + field: FieldConfig; + group: FormGroup; +} + +const defaultInputs: FieldDictionary = { + text: FormInputComponent +} + +const layouts = { + groups: BasicLayoutComponent +} + +@Component({ + template: `` +}) +class TestComponent { + formConfig + data: {}; + dynamicForm: {}; + lookups: {}; +} + +@NgModule({ + declarations: [FormInputComponent], + imports: [FormsModule, ReactiveFormsModule, CommonModule], + entryComponents: [FormInputComponent, BasicLayoutComponent] +}) +class TestModule { } + +describe('BasicLayoutComponent Core', () => { + let component: BasicLayoutComponent; + let fixture: ComponentFixture; + let model = { test: 'test', title: 'title' }; + + beforeEach(() => { + TestBed.configureTestingModule({ + declarations: [DynamicFieldDirective, TestComponent, BasicLayoutComponent, DynamicFormDirective], + imports: [FormsModule, ReactiveFormsModule, TestModule], + providers: [{ provide: FIELD_DICT_TOKEN, useValue: defaultInputs }] + }).compileComponents(); + }); + + beforeEach(() => { + fixture = TestBed.createComponent(BasicLayoutComponent); + component = fixture.componentInstance; + component.form = new FormGroup({}) + component.formConfig = { + form: [ + { label: 'fields and panels', panels: [{ label: 'fields', fields: [{ type: 'text', name: 'title', required: true }] }] }, + { label: 'fields, no panels', fields: [{ type: 'text', name: 'test', required: true }] }, + { label: 'no fields with panels', panels: [{ label: 'no fields' }] }, + { label: 'no fields, no panels' } + ] + } as FormConfig; + component.model = model; + fixture.detectChanges(); + }); + + describe('ngOnInit()', () => { + + it('should create group', () => { + expect(component.form).toBeDefined(); + }); + + }); + +}); diff --git a/src/app/layouts/basic/basic-layout.component.ts b/src/app/layouts/basic/basic-layout.component.ts new file mode 100644 index 0000000..0d3dff3 --- /dev/null +++ b/src/app/layouts/basic/basic-layout.component.ts @@ -0,0 +1,14 @@ +import { Component, Input } from '@angular/core'; +import { FormGroup } from '@angular/forms'; +import { FormConfig } from '../../../types'; // todo: move specific types here + +@Component({ + selector: 'layout-basic', + template: require('./basic-layout.component.html') +}) +export class BasicLayoutComponent { + @Input() formConfig: FormConfig; + @Input() model: any; + @Input() lookups: object; + @Input() form: FormGroup; +} diff --git a/src/app/layouts/layouts.module.ts b/src/app/layouts/layouts.module.ts index f74b25d..365d53b 100644 --- a/src/app/layouts/layouts.module.ts +++ b/src/app/layouts/layouts.module.ts @@ -2,12 +2,14 @@ import { NgModule, NO_ERRORS_SCHEMA } from '@angular/core'; import { CommonModule } from '@angular/common'; import { LayoutDictionary } from '../../types'; import { GroupComponent } from './groups/group/group.component'; -import { FormNavModule} from './groups/nav/nav-app'; +import { FormNavModule } from './groups/nav/nav-app'; import { PanelComponent } from './groups/panel/panel.component'; import { DynamicFieldModule } from '../dynamic-field/dynamic-field.module'; +import { BasicLayoutComponent } from './basic/basic-layout.component'; export const defaultLayouts: LayoutDictionary = { - groups: GroupComponent + groups: GroupComponent, + basic: BasicLayoutComponent }; @NgModule({ @@ -18,15 +20,13 @@ export const defaultLayouts: LayoutDictionary = { ], declarations: [ GroupComponent, - PanelComponent - ], - exports: [ - GroupComponent, - PanelComponent + PanelComponent, + BasicLayoutComponent ], entryComponents: [ GroupComponent, - PanelComponent + PanelComponent, + BasicLayoutComponent ], schemas: [ NO_ERRORS_SCHEMA From fecab014e16a0ce50346d78be33171134d7b2257 Mon Sep 17 00:00:00 2001 From: Artem Serebryakov Date: Tue, 12 Feb 2019 14:55:42 -0500 Subject: [PATCH 3/4] chore(refactor): renamed form to formGroup --- dist/ngx-forms.js | 2 +- src/app/app.module.ts | 4 ++-- .../dynamic-form/dynamic-form.component.spec.ts | 8 ++++---- src/app/dynamic-form/dynamic-form.component.ts | 14 +++++++------- src/app/layouts/basic/basic-layout.component.html | 4 ++-- .../layouts/basic/basic-layout.component.spec.ts | 8 ++------ src/app/layouts/basic/basic-layout.component.ts | 6 +++--- src/app/layouts/groups/group/group.component.html | 8 ++++---- .../layouts/groups/group/group.component.spec.ts | 4 ++-- src/app/layouts/groups/group/group.component.ts | 6 +++--- src/types.ts | 2 +- 11 files changed, 31 insertions(+), 35 deletions(-) diff --git a/dist/ngx-forms.js b/dist/ngx-forms.js index e840a46..d54eb24 100644 --- a/dist/ngx-forms.js +++ b/dist/ngx-forms.js @@ -1 +1 @@ -!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.ngxForms=t():e.ngxForms=t()}(window,function(){return function(e){var t={};function o(n){if(t[n])return t[n].exports;var r=t[n]={i:n,l:!1,exports:{}};return e[n].call(r.exports,r,r.exports,o),r.l=!0,r.exports}return o.m=e,o.c=t,o.d=function(e,t,n){o.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},o.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},o.t=function(e,t){if(1&t&&(e=o(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(o.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var r in e)o.d(n,r,function(t){return e[t]}.bind(null,r));return n},o.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return o.d(t,"a",t),t},o.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},o.p="",o(o.s=8)}([function(e,t){e.exports=require("@angular/core")},function(e,t){e.exports=require("@angular/forms")},function(e,t){e.exports=require("@angular/common")},function(e,t,o){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=o(0);t.FIELD_DICT_TOKEN=new n.InjectionToken("fields"),t.LAYOUTS_TOKEN=new n.InjectionToken("layouts"),function(e){e.And="and",e.Or="or"}(t.ConditionType||(t.ConditionType={}))},function(e,t,o){"use strict";e.exports=function(e){var t=[];return t.toString=function(){return this.map(function(t){var o=function(e,t){var o=e[1]||"",n=e[3];if(!n)return o;if(t&&"function"==typeof btoa){var r=(c=n,"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(c))))+" */"),i=n.sources.map(function(e){return"/*# sourceURL="+n.sourceRoot+e+" */"});return[o].concat(i).concat([r]).join("\n")}var c;return[o].join("\n")}(t,e);return t[2]?"@media "+t[2]+"{"+o+"}":o}).join("")},t.i=function(e,o){"string"==typeof e&&(e=[[null,e,""]]);for(var n={},r=0;r=0&&f.splice(t,1)}function h(e){var t=document.createElement("style");if(void 0===e.attrs.type&&(e.attrs.type="text/css"),void 0===e.attrs.nonce){var n=function(){0;return o.nc}();n&&(e.attrs.nonce=n)}return y(t,e.attrs),m(e,t),t}function y(e,t){Object.keys(t).forEach(function(o){e.setAttribute(o,t[o])})}function b(e,t){var o,n,r,i;if(t.transform&&e.css){if(!(i=t.transform(e.css)))return function(){};e.css=i}if(t.singleton){var c=s++;o=l||(l=h(t)),n=C.bind(null,o,c,!1),r=C.bind(null,o,c,!0)}else e.sourceMap&&"function"==typeof URL&&"function"==typeof URL.createObjectURL&&"function"==typeof URL.revokeObjectURL&&"function"==typeof Blob&&"function"==typeof btoa?(o=function(e){var t=document.createElement("link");return void 0===e.attrs.type&&(e.attrs.type="text/css"),e.attrs.rel="stylesheet",y(t,e.attrs),m(e,t),t}(t),n=function(e,t,o){var n=o.css,r=o.sourceMap,i=void 0===t.convertToAbsoluteUrls&&r;(t.convertToAbsoluteUrls||i)&&(n=u(n));r&&(n+="\n/*# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(r))))+" */");var c=new Blob([n],{type:"text/css"}),a=e.href;e.href=URL.createObjectURL(c),a&&URL.revokeObjectURL(a)}.bind(null,o,t),r=function(){v(o),o.href&&URL.revokeObjectURL(o.href)}):(o=h(t),n=function(e,t){var o=t.css,n=t.media;n&&e.setAttribute("media",n);if(e.styleSheet)e.styleSheet.cssText=o;else{for(;e.firstChild;)e.removeChild(e.firstChild);e.appendChild(document.createTextNode(o))}}.bind(null,o),r=function(){v(o)});return n(e),function(t){if(t){if(t.css===e.css&&t.media===e.media&&t.sourceMap===e.sourceMap)return;n(e=t)}else r()}}e.exports=function(e,t){if("undefined"!=typeof DEBUG&&DEBUG&&"object"!=typeof document)throw new Error("The style-loader cannot be used in a non-browser environment");(t=t||{}).attrs="object"==typeof t.attrs?t.attrs:{},t.singleton||"boolean"==typeof t.singleton||(t.singleton=c()),t.insertInto||(t.insertInto="head"),t.insertAt||(t.insertAt="bottom");var o=d(e,t);return p(o,t),function(e){for(var n=[],r=0;r=0;a--)(r=e[a])&&(c=(i<3?r(c):i>3?r(t,o,c):r(t,o))||c);return i>3&&c&&Object.defineProperty(t,o,c),c};Object.defineProperty(t,"__esModule",{value:!0});var r=o(0),i=function(){function e(){this.selected=0,this.groups=[],this.watchers=[]}return e.prototype.add=function(e){var t=this;this.groups.push(e),this.groups.length>1&&(e.hidden=!0),this.watchers.forEach(function(e){return e.groups=t.groups})},e.prototype.select=function(e){this.groups.forEach(function(e){e.hidden=!0}),this.groups[e].hidden=!1,this.selected=e},e.prototype.reset=function(){this.groups.forEach(function(e){e.hidden=!1}),this.groups=[],this.selected=0},e.prototype.addWatcher=function(e){this.watchers.push(e)},e.prototype.getAllGroups=function(){return this.groups},e=n([r.Injectable()],e)}();t.FormNavService=i},function(e,t,o){"use strict";var n=this&&this.__decorate||function(e,t,o,n){var r,i=arguments.length,c=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,o):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)c=Reflect.decorate(e,t,o,n);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(c=(i<3?r(c):i>3?r(t,o,c):r(t,o))||c);return i>3&&c&&Object.defineProperty(t,o,c),c};Object.defineProperty(t,"__esModule",{value:!0});var r=o(0),i=o(53),c=o(2),a=function(){function e(){}return e=n([r.NgModule({imports:[c.CommonModule],declarations:[i.DynamicFieldDirective],exports:[i.DynamicFieldDirective],schemas:[r.NO_ERRORS_SCHEMA]})],e)}();t.DynamicFieldModule=a},function(e,t,o){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),o(9),function(e){for(var o in e)t.hasOwnProperty(o)||(t[o]=e[o])}(o(10))},function(e,t){e.exports=require("reflect-metadata")},function(e,t,o){"use strict";var n=this&&this.__decorate||function(e,t,o,n){var r,i=arguments.length,c=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,o):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)c=Reflect.decorate(e,t,o,n);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(c=(i<3?r(c):i>3?r(t,o,c):r(t,o))||c);return i>3&&c&&Object.defineProperty(t,o,c),c};Object.defineProperty(t,"__esModule",{value:!0});var r=o(0),i=o(2),c=o(1),a=o(11),l=o(12),s=o(3),f=o(13),u=o(38),p=o(7),d=function(){function e(){}var t;return t=e,e.forRoot=function(e){var o=e.fieldDictionary,n=e.layoutDictionary;return o&&Object.keys(o).forEach(function(e){return f.defaultInputs[e]=o[e]}),n&&Object.keys(n).forEach(function(e){return u.defaultLayouts[e]=n[e]}),{ngModule:t,providers:[{provide:s.FIELD_DICT_TOKEN,useValue:f.defaultInputs},{provide:s.LAYOUTS_TOKEN,useValue:u.defaultLayouts}]}},e=t=n([r.NgModule({imports:[i.CommonModule,l.BrowserAnimationsModule,c.ReactiveFormsModule,c.FormsModule,u.FormLayoutsModule,f.FormFieldsModule,p.DynamicFieldModule],declarations:[a.DynamicFormDirective],exports:[a.DynamicFormDirective],providers:[{provide:s.FIELD_DICT_TOKEN,useValue:f.defaultInputs},{provide:s.LAYOUTS_TOKEN,useValue:u.defaultLayouts}],schemas:[r.NO_ERRORS_SCHEMA]})],e)}();t.NgxFormModule=d},function(e,t,o){"use strict";var n=this&&this.__decorate||function(e,t,o,n){var r,i=arguments.length,c=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,o):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)c=Reflect.decorate(e,t,o,n);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(c=(i<3?r(c):i>3?r(t,o,c):r(t,o))||c);return i>3&&c&&Object.defineProperty(t,o,c),c},r=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},i=this&&this.__param||function(e,t){return function(o,n){t(o,n,e)}};Object.defineProperty(t,"__esModule",{value:!0});var c=o(0),a=o(1),l=o(3),s=function(){function e(e,t,o){this.componentFactoryResolver=e,this.container=t,this.layouts=o,this.form=new a.FormGroup({})}var t,o,s,f;return Object.defineProperty(e.prototype,"changes",{get:function(){return this.form.valueChanges},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"valid",{get:function(){return this.form.valid},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"value",{get:function(){return this.form.value},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"rawValue",{get:function(){return this.form.getRawValue()},enumerable:!0,configurable:!0}),e.prototype.ngOnInit=function(){if(!this.layouts[this.formConfig.layout])throw new Error('Layout with name "'+this.formConfig.layout+'" was not found');var e=this.layouts[this.formConfig.layout],t=this.componentFactoryResolver.resolveComponentFactory(e),o=this.container.createComponent(t);o.instance.form=this.form,o.instance.formConfig=this.formConfig,o.instance.model=this.model},n([c.Input(),r("design:type","function"==typeof(t=void 0!==l.FormConfig&&l.FormConfig)?t:Object)],e.prototype,"formConfig",void 0),n([c.Input(),r("design:type",Object)],e.prototype,"model",void 0),n([c.Input(),r("design:type",Object)],e.prototype,"lookups",void 0),e=n([c.Directive({exportAs:"dynamicForm",selector:"dynamic-form"}),i(2,c.Inject(l.LAYOUTS_TOKEN)),r("design:paramtypes",["function"==typeof(o=void 0!==c.ComponentFactoryResolver&&c.ComponentFactoryResolver)?o:Object,"function"==typeof(s=void 0!==c.ViewContainerRef&&c.ViewContainerRef)?s:Object,"function"==typeof(f=void 0!==l.LayoutDictionary&&l.LayoutDictionary)?f:Object])],e)}();t.DynamicFormDirective=s},function(e,t){e.exports=require("@angular/platform-browser/animations")},function(e,t,o){"use strict";var n=this&&this.__decorate||function(e,t,o,n){var r,i=arguments.length,c=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,o):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)c=Reflect.decorate(e,t,o,n);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(c=(i<3?r(c):i>3?r(t,o,c):r(t,o))||c);return i>3&&c&&Object.defineProperty(t,o,c),c};Object.defineProperty(t,"__esModule",{value:!0});var r=o(0),i=o(2),c=o(14),a=o(15),l=o(16),s=o(18),f=o(20),u=o(25),p=o(27),d=o(29),m=o(31),v=o(33),h=o(35),y=o(37);t.defaultInputs={text:l.FormInputComponent,select:s.FormSelectComponent,editor:f.FormTextEditorComponent,textarea:d.FormTextareaComponent,hidden:m.FormInputHiddenComponent,radio:p.FormRadioComponent,checkbox:u.FormCheckboxComponent,label:v.FormLabelComponent,date:h.FormDateComponent};var b=function(){function e(){}return e=n([r.NgModule({imports:[i.CommonModule,a.TagInputModule,c.QuillModule,y.NgbModule],declarations:[l.FormInputComponent,s.FormSelectComponent,f.FormTextEditorComponent,d.FormTextareaComponent,m.FormInputHiddenComponent,p.FormRadioComponent,u.FormCheckboxComponent,v.FormLabelComponent,h.FormDateComponent],exports:[l.FormInputComponent,s.FormSelectComponent,f.FormTextEditorComponent,d.FormTextareaComponent,m.FormInputHiddenComponent,p.FormRadioComponent,u.FormCheckboxComponent,v.FormLabelComponent,h.FormDateComponent],entryComponents:[l.FormInputComponent,s.FormSelectComponent,f.FormTextEditorComponent,d.FormTextareaComponent,m.FormInputHiddenComponent,p.FormRadioComponent,u.FormCheckboxComponent,v.FormLabelComponent,h.FormDateComponent],schemas:[r.NO_ERRORS_SCHEMA]})],e)}();t.FormFieldsModule=b},function(e,t){e.exports=require("ngx-quill")},function(e,t){e.exports=require("ngx-chips")},function(e,t,o){"use strict";var n=this&&this.__decorate||function(e,t,o,n){var r,i=arguments.length,c=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,o):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)c=Reflect.decorate(e,t,o,n);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(c=(i<3?r(c):i>3?r(t,o,c):r(t,o))||c);return i>3&&c&&Object.defineProperty(t,o,c),c};Object.defineProperty(t,"__esModule",{value:!0});var r=o(0),i=function(){function e(){}return e=n([r.Component({selector:"form-input",template:o(17)})],e)}();t.FormInputComponent=i},function(e,t){e.exports='
\n \n
\n \n
\n
\n'},function(e,t,o){"use strict";var n=this&&this.__decorate||function(e,t,o,n){var r,i=arguments.length,c=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,o):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)c=Reflect.decorate(e,t,o,n);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(c=(i<3?r(c):i>3?r(t,o,c):r(t,o))||c);return i>3&&c&&Object.defineProperty(t,o,c),c};Object.defineProperty(t,"__esModule",{value:!0});var r=o(0),i=function(){function e(){}return e=n([r.Component({selector:"form-select",template:o(19)})],e)}();t.FormSelectComponent=i},function(e,t){e.exports='
\n \n
\n \n
\n
'},function(e,t,o){"use strict";var n=this&&this.__decorate||function(e,t,o,n){var r,i=arguments.length,c=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,o):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)c=Reflect.decorate(e,t,o,n);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(c=(i<3?r(c):i>3?r(t,o,c):r(t,o))||c);return i>3&&c&&Object.defineProperty(t,o,c),c};Object.defineProperty(t,"__esModule",{value:!0});var r=o(0),i=function(){function e(){this.quillToolbar={toolbar:["bold","italic","underline","strike",{header:1},{header:2},{list:"ordered"},{list:"bullet"},"blockquote","code-block","link"]}}return e=n([r.Component({selector:"form-text-editor",template:o(21),styles:[o(22).toString()]})],e)}();t.FormTextEditorComponent=i},function(e,t){e.exports='
\n \n
\n \n
\n
'},function(e,t,o){var n=o(23);"string"==typeof n&&(n=[[e.i,n,""]]);var r={hmr:!0,transform:void 0,insertInto:void 0};o(5)(n,r);n.locals&&(e.exports=n.locals)},function(e,t,o){(e.exports=o(4)(!1)).push([e.i,"form-text-editor .editor-container {\n margin-bottom: 40px; }\n\nform-text-editor .ql-container.ql-disabled {\n background-color: #e9ecef; }\n",""])},function(e,t){e.exports=function(e){var t="undefined"!=typeof window&&window.location;if(!t)throw new Error("fixUrls requires window.location");if(!e||"string"!=typeof e)return e;var o=t.protocol+"//"+t.host,n=o+t.pathname.replace(/\/[^\/]*$/,"/");return e.replace(/url\s*\(((?:[^)(]|\((?:[^)(]+|\([^)(]*\))*\))*)\)/gi,function(e,t){var r,i=t.trim().replace(/^"(.*)"$/,function(e,t){return t}).replace(/^'(.*)'$/,function(e,t){return t});return/^(#|data:|http:\/\/|https:\/\/|file:\/\/\/|\s*$)/i.test(i)?e:(r=0===i.indexOf("//")?i:0===i.indexOf("/")?o+i:n+i.replace(/^\.\//,""),"url("+JSON.stringify(r)+")")})}},function(e,t,o){"use strict";var n=this&&this.__decorate||function(e,t,o,n){var r,i=arguments.length,c=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,o):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)c=Reflect.decorate(e,t,o,n);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(c=(i<3?r(c):i>3?r(t,o,c):r(t,o))||c);return i>3&&c&&Object.defineProperty(t,o,c),c};Object.defineProperty(t,"__esModule",{value:!0});var r=o(0),i=function(){function e(){}return e=n([r.Component({selector:"form-checkbox",template:o(26)})],e)}();t.FormCheckboxComponent=i},function(e,t){e.exports='
\n \n
\n \n
\n
'},function(e,t,o){"use strict";var n=this&&this.__decorate||function(e,t,o,n){var r,i=arguments.length,c=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,o):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)c=Reflect.decorate(e,t,o,n);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(c=(i<3?r(c):i>3?r(t,o,c):r(t,o))||c);return i>3&&c&&Object.defineProperty(t,o,c),c};Object.defineProperty(t,"__esModule",{value:!0});var r=o(0),i=function(){function e(){}return e=n([r.Component({selector:"form-radio",template:o(28)})],e)}();t.FormRadioComponent=i},function(e,t){e.exports='
\n \n
\n \n
\n
'},function(e,t,o){"use strict";var n=this&&this.__decorate||function(e,t,o,n){var r,i=arguments.length,c=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,o):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)c=Reflect.decorate(e,t,o,n);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(c=(i<3?r(c):i>3?r(t,o,c):r(t,o))||c);return i>3&&c&&Object.defineProperty(t,o,c),c};Object.defineProperty(t,"__esModule",{value:!0});var r=o(0),i=function(){function e(){}return e=n([r.Component({selector:"form-textarea",template:o(30)})],e)}();t.FormTextareaComponent=i},function(e,t){e.exports='
\n \n
\n \n
\n
'},function(e,t,o){"use strict";var n=this&&this.__decorate||function(e,t,o,n){var r,i=arguments.length,c=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,o):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)c=Reflect.decorate(e,t,o,n);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(c=(i<3?r(c):i>3?r(t,o,c):r(t,o))||c);return i>3&&c&&Object.defineProperty(t,o,c),c};Object.defineProperty(t,"__esModule",{value:!0});var r=o(0),i=function(){function e(){}return e=n([r.Component({selector:"form-hidden",template:o(32)})],e)}();t.FormInputHiddenComponent=i},function(e,t){e.exports='\n \n\n'},function(e,t,o){"use strict";var n=this&&this.__decorate||function(e,t,o,n){var r,i=arguments.length,c=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,o):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)c=Reflect.decorate(e,t,o,n);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(c=(i<3?r(c):i>3?r(t,o,c):r(t,o))||c);return i>3&&c&&Object.defineProperty(t,o,c),c};Object.defineProperty(t,"__esModule",{value:!0});var r=o(0),i=function(){function e(){}return e=n([r.Component({selector:"form-label",template:o(34)})],e)}();t.FormLabelComponent=i},function(e,t){e.exports='
\n \n
\n {{group.value[this.field.name]}}\n
\n
'},function(e,t,o){"use strict";var n=this&&this.__decorate||function(e,t,o,n){var r,i=arguments.length,c=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,o):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)c=Reflect.decorate(e,t,o,n);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(c=(i<3?r(c):i>3?r(t,o,c):r(t,o))||c);return i>3&&c&&Object.defineProperty(t,o,c),c};Object.defineProperty(t,"__esModule",{value:!0});var r=o(0),i=function(){function e(){}return e=n([r.Component({selector:"form-date",template:o(36)})],e)}();t.FormDateComponent=i},function(e,t){e.exports='
\n \n
\n \n
\n
\n'},function(e,t){e.exports=require("@ng-bootstrap/ng-bootstrap")},function(e,t,o){"use strict";var n=this&&this.__decorate||function(e,t,o,n){var r,i=arguments.length,c=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,o):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)c=Reflect.decorate(e,t,o,n);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(c=(i<3?r(c):i>3?r(t,o,c):r(t,o))||c);return i>3&&c&&Object.defineProperty(t,o,c),c};Object.defineProperty(t,"__esModule",{value:!0});var r=o(0),i=o(2),c=o(39),a=o(43),l=o(49),s=o(7),f=o(54);t.defaultLayouts={groups:c.GroupComponent,basic:f.BasicLayoutComponent};var u=function(){function e(){}return e=n([r.NgModule({imports:[i.CommonModule,a.FormNavModule,s.DynamicFieldModule],declarations:[c.GroupComponent,l.PanelComponent,f.BasicLayoutComponent],entryComponents:[c.GroupComponent,l.PanelComponent,f.BasicLayoutComponent],schemas:[r.NO_ERRORS_SCHEMA]})],e)}();t.FormLayoutsModule=u},function(e,t,o){"use strict";var n=this&&this.__decorate||function(e,t,o,n){var r,i=arguments.length,c=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,o):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)c=Reflect.decorate(e,t,o,n);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(c=(i<3?r(c):i>3?r(t,o,c):r(t,o))||c);return i>3&&c&&Object.defineProperty(t,o,c),c},r=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)};Object.defineProperty(t,"__esModule",{value:!0});var i=o(0),c=o(1),a=o(3),l=function(){function e(){}var t,l;return e.prototype.ngOnInit=function(){var e=this,t=[];this.formConfig.form.forEach(function(o){o.fields&&(t=t.concat(o.fields)),o.panels&&o.panels.forEach(function(e){e.fields&&(t=t.concat(e.fields))}),o.enableWhen&&!e.checkRules(o,e.model)&&t.forEach(function(e){return e.disabled=!0})}),t.forEach(function(t){if(t.lookup&&e.lookups){var o="string"==typeof t.lookup?{name:t.lookup,extract:null}:t.lookup;t.options=o.extract?e.lookups[o.name].map(function(e){return e[o.extract]}):e.lookups[o.name]}else;})},e.prototype.checkRules=function(e,t){var o=!0;if(e.enableWhen){var n=e.enableWhen;if(!n.rules.length)return!0;var r=function(o){var n,r=t[o.field]||(n=e.fields.find(function(e){return e.name===o.field}))&&n.value||"";return Array.isArray(o.equals)||(o.equals=[o.equals]),o.equals.indexOf(r)>-1};return n.type!==a.ConditionType.Or&&n.type||(o=n.rules.some(r)),n.type===a.ConditionType.And&&(o=n.rules.every(r)),o}},n([i.Input(),r("design:type","function"==typeof(t=void 0!==a.FormConfig&&a.FormConfig)?t:Object)],e.prototype,"formConfig",void 0),n([i.Input(),r("design:type",Object)],e.prototype,"model",void 0),n([i.Input(),r("design:type",Object)],e.prototype,"lookups",void 0),n([i.Input(),r("design:type","function"==typeof(l=void 0!==c.FormGroup&&c.FormGroup)?l:Object)],e.prototype,"form",void 0),e=n([i.Component({selector:"layout-group-group",template:o(40),styles:[o(41).toString()]})],e)}();t.GroupComponent=l},function(e,t){e.exports='
\n
\n \n
\n
\n
\n\n \n \n \n\n \n \n \n
\n
\n
'},function(e,t,o){var n=o(42);"string"==typeof n&&(n=[[e.i,n,""]]);var r={hmr:!0,transform:void 0,insertInto:void 0};o(5)(n,r);n.locals&&(e.exports=n.locals)},function(e,t,o){(e.exports=o(4)(!1)).push([e.i,".required-icon {\n color: red; }\n",""])},function(e,t,o){"use strict";var n=this&&this.__decorate||function(e,t,o,n){var r,i=arguments.length,c=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,o):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)c=Reflect.decorate(e,t,o,n);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(c=(i<3?r(c):i>3?r(t,o,c):r(t,o))||c);return i>3&&c&&Object.defineProperty(t,o,c),c};Object.defineProperty(t,"__esModule",{value:!0});var r=o(0),i=o(44),c=o(48),a=o(6),l=o(2),s=function(){function e(){}return e=n([r.NgModule({imports:[l.CommonModule],declarations:[i.FormNavComponent,c.NavDirective],exports:[i.FormNavComponent,c.NavDirective],providers:[a.FormNavService],schemas:[r.NO_ERRORS_SCHEMA]})],e)}();t.FormNavModule=s},function(e,t,o){"use strict";var n=this&&this.__decorate||function(e,t,o,n){var r,i=arguments.length,c=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,o):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)c=Reflect.decorate(e,t,o,n);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(c=(i<3?r(c):i>3?r(t,o,c):r(t,o))||c);return i>3&&c&&Object.defineProperty(t,o,c),c},r=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)};Object.defineProperty(t,"__esModule",{value:!0});var i=o(0),c=o(6),a=o(1),l=function(){function e(e){this.ns=e,this.ref={groups:[]},this.subscriptions=[],e.addWatcher(this.ref)}var t,l;return e.prototype.ngAfterContentInit=function(){for(var e=this,t=(Object.keys(this.form.controls),function(t){var o=[];t.fields&&(o=o.concat(t.fields)),t.panels&&t.panels.forEach(function(e){e.fields&&(o=o.concat(e.fields))}),t.controls=o.filter(function(e){return e.required}).map(function(t){return e.form.get(t.name)}),0===t.controls.length?t.valid=!0:t.controls.forEach(function(o){e.subscriptions.push(o.statusChanges.subscribe(function(){t.valid=t.controls.every(function(e){return e.valid})}))})}),o=0,n=this.ref.groups;othis.ref.groups.length-2},e.prototype.ngOnDestroy=function(){this.subscriptions.forEach(function(e){return e.unsubscribe()}),this.ns.reset()},n([i.Input(),r("design:type","function"==typeof(t=void 0!==a.FormGroup&&a.FormGroup)?t:Object)],e.prototype,"form",void 0),e=n([i.Component({selector:"form-nav",template:o(45),styles:[o(46).toString()]}),r("design:paramtypes",["function"==typeof(l=void 0!==c.FormNavService&&c.FormNavService)?l:Object])],e)}();t.FormNavComponent=l},function(e,t){e.exports='\n
\n
\n
\n \n \n
\n
\n
'},function(e,t,o){var n=o(47);"string"==typeof n&&(n=[[e.i,n,""]]);var r={hmr:!0,transform:void 0,insertInto:void 0};o(5)(n,r);n.locals&&(e.exports=n.locals)},function(e,t,o){(e.exports=o(4)(!1)).push([e.i,"",""])},function(e,t,o){"use strict";var n=this&&this.__decorate||function(e,t,o,n){var r,i=arguments.length,c=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,o):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)c=Reflect.decorate(e,t,o,n);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(c=(i<3?r(c):i>3?r(t,o,c):r(t,o))||c);return i>3&&c&&Object.defineProperty(t,o,c),c},r=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)};Object.defineProperty(t,"__esModule",{value:!0});var i=o(0),c=o(6),a=function(){function e(e){this.navService=e}var t;return e.prototype.ngOnInit=function(){this.panel.static||this.navService.add(this.panel)},n([i.Input("navTab"),r("design:type",Object)],e.prototype,"panel",void 0),e=n([i.Directive({selector:"[navTab]"}),r("design:paramtypes",["function"==typeof(t=void 0!==c.FormNavService&&c.FormNavService)?t:Object])],e)}();t.NavDirective=a},function(e,t,o){"use strict";var n=this&&this.__decorate||function(e,t,o,n){var r,i=arguments.length,c=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,o):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)c=Reflect.decorate(e,t,o,n);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(c=(i<3?r(c):i>3?r(t,o,c):r(t,o))||c);return i>3&&c&&Object.defineProperty(t,o,c),c},r=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)};Object.defineProperty(t,"__esModule",{value:!0});var i=o(0),c=function(){function e(){}return n([i.Input(),r("design:type",Object)],e.prototype,"panelConfig",void 0),n([i.Input(),r("design:type",Object)],e.prototype,"group",void 0),n([i.Input(),r("design:type",Object)],e.prototype,"model",void 0),e=n([i.Component({selector:"layout-group-panel",template:o(50),styles:[o(51).toString()]})],e)}();t.PanelComponent=c},function(e,t){e.exports='
\n
\n {{panelConfig.label}}\n
\n
\n
\n
\n
'},function(e,t,o){var n=o(52);"string"==typeof n&&(n=[[e.i,n,""]]);var r={hmr:!0,transform:void 0,insertInto:void 0};o(5)(n,r);n.locals&&(e.exports=n.locals)},function(e,t,o){(e.exports=o(4)(!1)).push([e.i,"layout-group-panel .panel {\n margin-bottom: 20px;\n background-color: #fff;\n border-radius: 4px;\n border: 1px solid #ddd;\n -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);\n box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05); }\n layout-group-panel .panel .panel-heading {\n color: #333;\n background-color: #f5f5f5;\n padding: 10px 15px;\n border-bottom: 1px solid #ddd;\n border-top-left-radius: 3px;\n border-top-right-radius: 3px; }\n layout-group-panel .panel .panel-body {\n padding: 15px; }\n",""])},function(e,t,o){"use strict";var n=this&&this.__decorate||function(e,t,o,n){var r,i=arguments.length,c=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,o):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)c=Reflect.decorate(e,t,o,n);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(c=(i<3?r(c):i>3?r(t,o,c):r(t,o))||c);return i>3&&c&&Object.defineProperty(t,o,c),c},r=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},i=this&&this.__param||function(e,t){return function(o,n){t(o,n,e)}};Object.defineProperty(t,"__esModule",{value:!0});var c=o(0),a=o(1),l=o(3),s=function(){function e(e,t,o,n){this.resolver=e,this.container=t,this.fb=o,this.inputs=n}var t,o,s,f,u,p;return e.prototype.ngOnInit=function(){if(!this.group)throw new Error("group is not set");if(!this.inputs[this.field.type])throw new Error('Input with type "'+this.field.type+'" was not found');var e=this.inputs[this.field.type],t=this.resolver.resolveComponentFactory(e);this.component=this.container.createComponent(t),this.component.instance.field=this.field,this.component.instance.group=this.group,this.component.instance.model=this.model,this.group.addControl(this.field.name,this.createControl(this.field)),this.model&&this.model[this.field.name]&&this.group.get(this.field.name).patchValue(this.model[this.field.name])},e.prototype.createControl=function(e){var t=e.disabled,o=e.required,n=e.minLength,r=e.maxLength,i=e.email,c=e.min,l=e.max,s=e.pattern,f=e.value,u=[];return void 0!==o&&o&&u.push(a.Validators.required),void 0!==n&&u.push(a.Validators.minLength(n)),void 0!==r&&u.push(a.Validators.maxLength(r)),void 0!==i&&u.push(a.Validators.email),void 0!==c&&u.push(a.Validators.min(c)),void 0!==l&&u.push(a.Validators.max(l)),void 0!==s&&u.push(a.Validators.pattern(s)),this.fb.control({disabled:t,value:f},u)},e.prototype.ngOnDestroy=function(){this.component&&this.component.destroy()},n([c.Input(),r("design:type","function"==typeof(t=void 0!==l.FieldConfig&&l.FieldConfig)?t:Object)],e.prototype,"field",void 0),n([c.Input(),r("design:type","function"==typeof(o=void 0!==a.FormGroup&&a.FormGroup)?o:Object)],e.prototype,"group",void 0),n([c.Input(),r("design:type",Object)],e.prototype,"model",void 0),e=n([c.Directive({selector:"[dynamicField]"}),i(3,c.Inject(l.FIELD_DICT_TOKEN)),r("design:paramtypes",["function"==typeof(s=void 0!==c.ComponentFactoryResolver&&c.ComponentFactoryResolver)?s:Object,"function"==typeof(f=void 0!==c.ViewContainerRef&&c.ViewContainerRef)?f:Object,"function"==typeof(u=void 0!==a.FormBuilder&&a.FormBuilder)?u:Object,"function"==typeof(p=void 0!==l.FieldDictionary&&l.FieldDictionary)?p:Object])],e)}();t.DynamicFieldDirective=s},function(e,t,o){"use strict";var n=this&&this.__decorate||function(e,t,o,n){var r,i=arguments.length,c=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,o):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)c=Reflect.decorate(e,t,o,n);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(c=(i<3?r(c):i>3?r(t,o,c):r(t,o))||c);return i>3&&c&&Object.defineProperty(t,o,c),c},r=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)};Object.defineProperty(t,"__esModule",{value:!0});var i=o(0),c=o(1),a=o(3),l=function(){function e(){}var t,l;return n([i.Input(),r("design:type","function"==typeof(t=void 0!==a.FormConfig&&a.FormConfig)?t:Object)],e.prototype,"formConfig",void 0),n([i.Input(),r("design:type",Object)],e.prototype,"model",void 0),n([i.Input(),r("design:type",Object)],e.prototype,"lookups",void 0),n([i.Input(),r("design:type","function"==typeof(l=void 0!==c.FormGroup&&c.FormGroup)?l:Object)],e.prototype,"form",void 0),e=n([i.Component({selector:"layout-basic",template:o(55)})],e)}();t.BasicLayoutComponent=l},function(e,t){e.exports='
\n
\n

{{formConfig.title}}

\n
\n
\n
'}])}); \ No newline at end of file +!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.ngxForms=t():e.ngxForms=t()}(window,function(){return function(e){var t={};function o(n){if(t[n])return t[n].exports;var r=t[n]={i:n,l:!1,exports:{}};return e[n].call(r.exports,r,r.exports,o),r.l=!0,r.exports}return o.m=e,o.c=t,o.d=function(e,t,n){o.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},o.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},o.t=function(e,t){if(1&t&&(e=o(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(o.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var r in e)o.d(n,r,function(t){return e[t]}.bind(null,r));return n},o.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return o.d(t,"a",t),t},o.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},o.p="",o(o.s=8)}([function(e,t){e.exports=require("@angular/core")},function(e,t){e.exports=require("@angular/forms")},function(e,t){e.exports=require("@angular/common")},function(e,t,o){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=o(0);t.FIELD_DICT_TOKEN=new n.InjectionToken("fields"),t.LAYOUTS_TOKEN=new n.InjectionToken("layouts"),function(e){e.And="and",e.Or="or"}(t.ConditionType||(t.ConditionType={}))},function(e,t,o){"use strict";e.exports=function(e){var t=[];return t.toString=function(){return this.map(function(t){var o=function(e,t){var o=e[1]||"",n=e[3];if(!n)return o;if(t&&"function"==typeof btoa){var r=(c=n,"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(c))))+" */"),i=n.sources.map(function(e){return"/*# sourceURL="+n.sourceRoot+e+" */"});return[o].concat(i).concat([r]).join("\n")}var c;return[o].join("\n")}(t,e);return t[2]?"@media "+t[2]+"{"+o+"}":o}).join("")},t.i=function(e,o){"string"==typeof e&&(e=[[null,e,""]]);for(var n={},r=0;r=0&&f.splice(t,1)}function h(e){var t=document.createElement("style");if(void 0===e.attrs.type&&(e.attrs.type="text/css"),void 0===e.attrs.nonce){var n=function(){0;return o.nc}();n&&(e.attrs.nonce=n)}return y(t,e.attrs),m(e,t),t}function y(e,t){Object.keys(t).forEach(function(o){e.setAttribute(o,t[o])})}function b(e,t){var o,n,r,i;if(t.transform&&e.css){if(!(i=t.transform(e.css)))return function(){};e.css=i}if(t.singleton){var c=s++;o=l||(l=h(t)),n=C.bind(null,o,c,!1),r=C.bind(null,o,c,!0)}else e.sourceMap&&"function"==typeof URL&&"function"==typeof URL.createObjectURL&&"function"==typeof URL.revokeObjectURL&&"function"==typeof Blob&&"function"==typeof btoa?(o=function(e){var t=document.createElement("link");return void 0===e.attrs.type&&(e.attrs.type="text/css"),e.attrs.rel="stylesheet",y(t,e.attrs),m(e,t),t}(t),n=function(e,t,o){var n=o.css,r=o.sourceMap,i=void 0===t.convertToAbsoluteUrls&&r;(t.convertToAbsoluteUrls||i)&&(n=u(n));r&&(n+="\n/*# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(r))))+" */");var c=new Blob([n],{type:"text/css"}),a=e.href;e.href=URL.createObjectURL(c),a&&URL.revokeObjectURL(a)}.bind(null,o,t),r=function(){v(o),o.href&&URL.revokeObjectURL(o.href)}):(o=h(t),n=function(e,t){var o=t.css,n=t.media;n&&e.setAttribute("media",n);if(e.styleSheet)e.styleSheet.cssText=o;else{for(;e.firstChild;)e.removeChild(e.firstChild);e.appendChild(document.createTextNode(o))}}.bind(null,o),r=function(){v(o)});return n(e),function(t){if(t){if(t.css===e.css&&t.media===e.media&&t.sourceMap===e.sourceMap)return;n(e=t)}else r()}}e.exports=function(e,t){if("undefined"!=typeof DEBUG&&DEBUG&&"object"!=typeof document)throw new Error("The style-loader cannot be used in a non-browser environment");(t=t||{}).attrs="object"==typeof t.attrs?t.attrs:{},t.singleton||"boolean"==typeof t.singleton||(t.singleton=c()),t.insertInto||(t.insertInto="head"),t.insertAt||(t.insertAt="bottom");var o=d(e,t);return p(o,t),function(e){for(var n=[],r=0;r=0;a--)(r=e[a])&&(c=(i<3?r(c):i>3?r(t,o,c):r(t,o))||c);return i>3&&c&&Object.defineProperty(t,o,c),c};Object.defineProperty(t,"__esModule",{value:!0});var r=o(0),i=function(){function e(){this.selected=0,this.groups=[],this.watchers=[]}return e.prototype.add=function(e){var t=this;this.groups.push(e),this.groups.length>1&&(e.hidden=!0),this.watchers.forEach(function(e){return e.groups=t.groups})},e.prototype.select=function(e){this.groups.forEach(function(e){e.hidden=!0}),this.groups[e].hidden=!1,this.selected=e},e.prototype.reset=function(){this.groups.forEach(function(e){e.hidden=!1}),this.groups=[],this.selected=0},e.prototype.addWatcher=function(e){this.watchers.push(e)},e.prototype.getAllGroups=function(){return this.groups},e=n([r.Injectable()],e)}();t.FormNavService=i},function(e,t,o){"use strict";var n=this&&this.__decorate||function(e,t,o,n){var r,i=arguments.length,c=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,o):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)c=Reflect.decorate(e,t,o,n);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(c=(i<3?r(c):i>3?r(t,o,c):r(t,o))||c);return i>3&&c&&Object.defineProperty(t,o,c),c};Object.defineProperty(t,"__esModule",{value:!0});var r=o(0),i=o(53),c=o(2),a=function(){function e(){}return e=n([r.NgModule({imports:[c.CommonModule],declarations:[i.DynamicFieldDirective],exports:[i.DynamicFieldDirective],schemas:[r.NO_ERRORS_SCHEMA]})],e)}();t.DynamicFieldModule=a},function(e,t,o){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),o(9),function(e){for(var o in e)t.hasOwnProperty(o)||(t[o]=e[o])}(o(10))},function(e,t){e.exports=require("reflect-metadata")},function(e,t,o){"use strict";var n=this&&this.__decorate||function(e,t,o,n){var r,i=arguments.length,c=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,o):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)c=Reflect.decorate(e,t,o,n);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(c=(i<3?r(c):i>3?r(t,o,c):r(t,o))||c);return i>3&&c&&Object.defineProperty(t,o,c),c};Object.defineProperty(t,"__esModule",{value:!0});var r=o(0),i=o(2),c=o(1),a=o(11),l=o(12),s=o(3),f=o(13),u=o(38),p=o(7),d=function(){function e(){}var t;return t=e,e.forRoot=function(e){var o=e.fieldDictionary,n=e.layoutDictionary;return o&&Object.keys(o).forEach(function(e){return f.defaultInputs[e]=o[e]}),n&&Object.keys(n).forEach(function(e){return u.defaultLayouts[e]=n[e]}),{ngModule:t,providers:[{provide:s.FIELD_DICT_TOKEN,useValue:f.defaultInputs},{provide:s.LAYOUTS_TOKEN,useValue:u.defaultLayouts}]}},e=t=n([r.NgModule({imports:[i.CommonModule,l.BrowserAnimationsModule,c.ReactiveFormsModule,c.FormsModule,u.FormLayoutsModule,f.FormFieldsModule,p.DynamicFieldModule],declarations:[a.DynamicFormDirective],exports:[a.DynamicFormDirective],providers:[{provide:s.FIELD_DICT_TOKEN,useValue:f.defaultInputs},{provide:s.LAYOUTS_TOKEN,useValue:u.defaultLayouts}],schemas:[r.NO_ERRORS_SCHEMA]})],e)}();t.NgxFormModule=d},function(e,t,o){"use strict";var n=this&&this.__decorate||function(e,t,o,n){var r,i=arguments.length,c=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,o):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)c=Reflect.decorate(e,t,o,n);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(c=(i<3?r(c):i>3?r(t,o,c):r(t,o))||c);return i>3&&c&&Object.defineProperty(t,o,c),c},r=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},i=this&&this.__param||function(e,t){return function(o,n){t(o,n,e)}};Object.defineProperty(t,"__esModule",{value:!0});var c=o(0),a=o(1),l=o(3),s=function(){function e(e,t,o){this.componentFactoryResolver=e,this.container=t,this.layouts=o,this.formGroup=new a.FormGroup({})}var t,o,s,f;return Object.defineProperty(e.prototype,"changes",{get:function(){return this.formGroup.valueChanges},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"valid",{get:function(){return this.formGroup.valid},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"value",{get:function(){return this.formGroup.value},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"rawValue",{get:function(){return this.formGroup.getRawValue()},enumerable:!0,configurable:!0}),e.prototype.ngOnInit=function(){if(!this.layouts[this.formConfig.layout])throw new Error('Layout with name "'+this.formConfig.layout+'" was not found');var e=this.layouts[this.formConfig.layout],t=this.componentFactoryResolver.resolveComponentFactory(e),o=this.container.createComponent(t);o.instance.formGroup=this.formGroup,o.instance.formConfig=this.formConfig,o.instance.model=this.model},n([c.Input(),r("design:type","function"==typeof(t=void 0!==l.FormConfig&&l.FormConfig)?t:Object)],e.prototype,"formConfig",void 0),n([c.Input(),r("design:type",Object)],e.prototype,"model",void 0),n([c.Input(),r("design:type",Object)],e.prototype,"lookups",void 0),e=n([c.Directive({exportAs:"dynamicForm",selector:"dynamic-form"}),i(2,c.Inject(l.LAYOUTS_TOKEN)),r("design:paramtypes",["function"==typeof(o=void 0!==c.ComponentFactoryResolver&&c.ComponentFactoryResolver)?o:Object,"function"==typeof(s=void 0!==c.ViewContainerRef&&c.ViewContainerRef)?s:Object,"function"==typeof(f=void 0!==l.LayoutDictionary&&l.LayoutDictionary)?f:Object])],e)}();t.DynamicFormDirective=s},function(e,t){e.exports=require("@angular/platform-browser/animations")},function(e,t,o){"use strict";var n=this&&this.__decorate||function(e,t,o,n){var r,i=arguments.length,c=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,o):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)c=Reflect.decorate(e,t,o,n);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(c=(i<3?r(c):i>3?r(t,o,c):r(t,o))||c);return i>3&&c&&Object.defineProperty(t,o,c),c};Object.defineProperty(t,"__esModule",{value:!0});var r=o(0),i=o(2),c=o(14),a=o(15),l=o(16),s=o(18),f=o(20),u=o(25),p=o(27),d=o(29),m=o(31),v=o(33),h=o(35),y=o(37);t.defaultInputs={text:l.FormInputComponent,select:s.FormSelectComponent,editor:f.FormTextEditorComponent,textarea:d.FormTextareaComponent,hidden:m.FormInputHiddenComponent,radio:p.FormRadioComponent,checkbox:u.FormCheckboxComponent,label:v.FormLabelComponent,date:h.FormDateComponent};var b=function(){function e(){}return e=n([r.NgModule({imports:[i.CommonModule,a.TagInputModule,c.QuillModule,y.NgbModule],declarations:[l.FormInputComponent,s.FormSelectComponent,f.FormTextEditorComponent,d.FormTextareaComponent,m.FormInputHiddenComponent,p.FormRadioComponent,u.FormCheckboxComponent,v.FormLabelComponent,h.FormDateComponent],exports:[l.FormInputComponent,s.FormSelectComponent,f.FormTextEditorComponent,d.FormTextareaComponent,m.FormInputHiddenComponent,p.FormRadioComponent,u.FormCheckboxComponent,v.FormLabelComponent,h.FormDateComponent],entryComponents:[l.FormInputComponent,s.FormSelectComponent,f.FormTextEditorComponent,d.FormTextareaComponent,m.FormInputHiddenComponent,p.FormRadioComponent,u.FormCheckboxComponent,v.FormLabelComponent,h.FormDateComponent],schemas:[r.NO_ERRORS_SCHEMA]})],e)}();t.FormFieldsModule=b},function(e,t){e.exports=require("ngx-quill")},function(e,t){e.exports=require("ngx-chips")},function(e,t,o){"use strict";var n=this&&this.__decorate||function(e,t,o,n){var r,i=arguments.length,c=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,o):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)c=Reflect.decorate(e,t,o,n);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(c=(i<3?r(c):i>3?r(t,o,c):r(t,o))||c);return i>3&&c&&Object.defineProperty(t,o,c),c};Object.defineProperty(t,"__esModule",{value:!0});var r=o(0),i=function(){function e(){}return e=n([r.Component({selector:"form-input",template:o(17)})],e)}();t.FormInputComponent=i},function(e,t){e.exports='
\n \n
\n \n
\n
\n'},function(e,t,o){"use strict";var n=this&&this.__decorate||function(e,t,o,n){var r,i=arguments.length,c=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,o):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)c=Reflect.decorate(e,t,o,n);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(c=(i<3?r(c):i>3?r(t,o,c):r(t,o))||c);return i>3&&c&&Object.defineProperty(t,o,c),c};Object.defineProperty(t,"__esModule",{value:!0});var r=o(0),i=function(){function e(){}return e=n([r.Component({selector:"form-select",template:o(19)})],e)}();t.FormSelectComponent=i},function(e,t){e.exports='
\n \n
\n \n
\n
'},function(e,t,o){"use strict";var n=this&&this.__decorate||function(e,t,o,n){var r,i=arguments.length,c=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,o):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)c=Reflect.decorate(e,t,o,n);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(c=(i<3?r(c):i>3?r(t,o,c):r(t,o))||c);return i>3&&c&&Object.defineProperty(t,o,c),c};Object.defineProperty(t,"__esModule",{value:!0});var r=o(0),i=function(){function e(){this.quillToolbar={toolbar:["bold","italic","underline","strike",{header:1},{header:2},{list:"ordered"},{list:"bullet"},"blockquote","code-block","link"]}}return e=n([r.Component({selector:"form-text-editor",template:o(21),styles:[o(22).toString()]})],e)}();t.FormTextEditorComponent=i},function(e,t){e.exports='
\n \n
\n \n
\n
'},function(e,t,o){var n=o(23);"string"==typeof n&&(n=[[e.i,n,""]]);var r={hmr:!0,transform:void 0,insertInto:void 0};o(5)(n,r);n.locals&&(e.exports=n.locals)},function(e,t,o){(e.exports=o(4)(!1)).push([e.i,"form-text-editor .editor-container {\n margin-bottom: 40px; }\n\nform-text-editor .ql-container.ql-disabled {\n background-color: #e9ecef; }\n",""])},function(e,t){e.exports=function(e){var t="undefined"!=typeof window&&window.location;if(!t)throw new Error("fixUrls requires window.location");if(!e||"string"!=typeof e)return e;var o=t.protocol+"//"+t.host,n=o+t.pathname.replace(/\/[^\/]*$/,"/");return e.replace(/url\s*\(((?:[^)(]|\((?:[^)(]+|\([^)(]*\))*\))*)\)/gi,function(e,t){var r,i=t.trim().replace(/^"(.*)"$/,function(e,t){return t}).replace(/^'(.*)'$/,function(e,t){return t});return/^(#|data:|http:\/\/|https:\/\/|file:\/\/\/|\s*$)/i.test(i)?e:(r=0===i.indexOf("//")?i:0===i.indexOf("/")?o+i:n+i.replace(/^\.\//,""),"url("+JSON.stringify(r)+")")})}},function(e,t,o){"use strict";var n=this&&this.__decorate||function(e,t,o,n){var r,i=arguments.length,c=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,o):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)c=Reflect.decorate(e,t,o,n);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(c=(i<3?r(c):i>3?r(t,o,c):r(t,o))||c);return i>3&&c&&Object.defineProperty(t,o,c),c};Object.defineProperty(t,"__esModule",{value:!0});var r=o(0),i=function(){function e(){}return e=n([r.Component({selector:"form-checkbox",template:o(26)})],e)}();t.FormCheckboxComponent=i},function(e,t){e.exports='
\n \n
\n \n
\n
'},function(e,t,o){"use strict";var n=this&&this.__decorate||function(e,t,o,n){var r,i=arguments.length,c=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,o):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)c=Reflect.decorate(e,t,o,n);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(c=(i<3?r(c):i>3?r(t,o,c):r(t,o))||c);return i>3&&c&&Object.defineProperty(t,o,c),c};Object.defineProperty(t,"__esModule",{value:!0});var r=o(0),i=function(){function e(){}return e=n([r.Component({selector:"form-radio",template:o(28)})],e)}();t.FormRadioComponent=i},function(e,t){e.exports='
\n \n
\n \n
\n
'},function(e,t,o){"use strict";var n=this&&this.__decorate||function(e,t,o,n){var r,i=arguments.length,c=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,o):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)c=Reflect.decorate(e,t,o,n);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(c=(i<3?r(c):i>3?r(t,o,c):r(t,o))||c);return i>3&&c&&Object.defineProperty(t,o,c),c};Object.defineProperty(t,"__esModule",{value:!0});var r=o(0),i=function(){function e(){}return e=n([r.Component({selector:"form-textarea",template:o(30)})],e)}();t.FormTextareaComponent=i},function(e,t){e.exports='
\n \n
\n \n
\n
'},function(e,t,o){"use strict";var n=this&&this.__decorate||function(e,t,o,n){var r,i=arguments.length,c=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,o):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)c=Reflect.decorate(e,t,o,n);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(c=(i<3?r(c):i>3?r(t,o,c):r(t,o))||c);return i>3&&c&&Object.defineProperty(t,o,c),c};Object.defineProperty(t,"__esModule",{value:!0});var r=o(0),i=function(){function e(){}return e=n([r.Component({selector:"form-hidden",template:o(32)})],e)}();t.FormInputHiddenComponent=i},function(e,t){e.exports='\n \n\n'},function(e,t,o){"use strict";var n=this&&this.__decorate||function(e,t,o,n){var r,i=arguments.length,c=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,o):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)c=Reflect.decorate(e,t,o,n);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(c=(i<3?r(c):i>3?r(t,o,c):r(t,o))||c);return i>3&&c&&Object.defineProperty(t,o,c),c};Object.defineProperty(t,"__esModule",{value:!0});var r=o(0),i=function(){function e(){}return e=n([r.Component({selector:"form-label",template:o(34)})],e)}();t.FormLabelComponent=i},function(e,t){e.exports='
\n \n
\n {{group.value[this.field.name]}}\n
\n
'},function(e,t,o){"use strict";var n=this&&this.__decorate||function(e,t,o,n){var r,i=arguments.length,c=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,o):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)c=Reflect.decorate(e,t,o,n);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(c=(i<3?r(c):i>3?r(t,o,c):r(t,o))||c);return i>3&&c&&Object.defineProperty(t,o,c),c};Object.defineProperty(t,"__esModule",{value:!0});var r=o(0),i=function(){function e(){}return e=n([r.Component({selector:"form-date",template:o(36)})],e)}();t.FormDateComponent=i},function(e,t){e.exports='
\n \n
\n \n
\n
\n'},function(e,t){e.exports=require("@ng-bootstrap/ng-bootstrap")},function(e,t,o){"use strict";var n=this&&this.__decorate||function(e,t,o,n){var r,i=arguments.length,c=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,o):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)c=Reflect.decorate(e,t,o,n);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(c=(i<3?r(c):i>3?r(t,o,c):r(t,o))||c);return i>3&&c&&Object.defineProperty(t,o,c),c};Object.defineProperty(t,"__esModule",{value:!0});var r=o(0),i=o(2),c=o(39),a=o(43),l=o(49),s=o(7),f=o(54);t.defaultLayouts={groups:c.GroupComponent,basic:f.BasicLayoutComponent};var u=function(){function e(){}return e=n([r.NgModule({imports:[i.CommonModule,a.FormNavModule,s.DynamicFieldModule],declarations:[c.GroupComponent,l.PanelComponent,f.BasicLayoutComponent],entryComponents:[c.GroupComponent,l.PanelComponent,f.BasicLayoutComponent],schemas:[r.NO_ERRORS_SCHEMA]})],e)}();t.FormLayoutsModule=u},function(e,t,o){"use strict";var n=this&&this.__decorate||function(e,t,o,n){var r,i=arguments.length,c=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,o):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)c=Reflect.decorate(e,t,o,n);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(c=(i<3?r(c):i>3?r(t,o,c):r(t,o))||c);return i>3&&c&&Object.defineProperty(t,o,c),c},r=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)};Object.defineProperty(t,"__esModule",{value:!0});var i=o(0),c=o(1),a=o(3),l=function(){function e(){}var t,l;return e.prototype.ngOnInit=function(){var e=this,t=[];this.formConfig.form.forEach(function(o){o.fields&&(t=t.concat(o.fields)),o.panels&&o.panels.forEach(function(e){e.fields&&(t=t.concat(e.fields))}),o.enableWhen&&!e.checkRules(o,e.model)&&t.forEach(function(e){return e.disabled=!0})}),t.forEach(function(t){if(t.lookup&&e.lookups){var o="string"==typeof t.lookup?{name:t.lookup,extract:null}:t.lookup;t.options=o.extract?e.lookups[o.name].map(function(e){return e[o.extract]}):e.lookups[o.name]}else;})},e.prototype.checkRules=function(e,t){var o=!0;if(e.enableWhen){var n=e.enableWhen;if(!n.rules.length)return!0;var r=function(o){var n,r=t[o.field]||(n=e.fields.find(function(e){return e.name===o.field}))&&n.value||"";return Array.isArray(o.equals)||(o.equals=[o.equals]),o.equals.indexOf(r)>-1};return n.type!==a.ConditionType.Or&&n.type||(o=n.rules.some(r)),n.type===a.ConditionType.And&&(o=n.rules.every(r)),o}},n([i.Input(),r("design:type","function"==typeof(t=void 0!==a.FormConfig&&a.FormConfig)?t:Object)],e.prototype,"formConfig",void 0),n([i.Input(),r("design:type",Object)],e.prototype,"model",void 0),n([i.Input(),r("design:type",Object)],e.prototype,"lookups",void 0),n([i.Input(),r("design:type","function"==typeof(l=void 0!==c.FormGroup&&c.FormGroup)?l:Object)],e.prototype,"formGroup",void 0),e=n([i.Component({selector:"layout-group-group",template:o(40),styles:[o(41).toString()]})],e)}();t.GroupComponent=l},function(e,t){e.exports='
\n
\n \n
\n
\n
\n\n \n \n \n\n \n \n \n
\n
\n
'},function(e,t,o){var n=o(42);"string"==typeof n&&(n=[[e.i,n,""]]);var r={hmr:!0,transform:void 0,insertInto:void 0};o(5)(n,r);n.locals&&(e.exports=n.locals)},function(e,t,o){(e.exports=o(4)(!1)).push([e.i,".required-icon {\n color: red; }\n",""])},function(e,t,o){"use strict";var n=this&&this.__decorate||function(e,t,o,n){var r,i=arguments.length,c=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,o):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)c=Reflect.decorate(e,t,o,n);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(c=(i<3?r(c):i>3?r(t,o,c):r(t,o))||c);return i>3&&c&&Object.defineProperty(t,o,c),c};Object.defineProperty(t,"__esModule",{value:!0});var r=o(0),i=o(44),c=o(48),a=o(6),l=o(2),s=function(){function e(){}return e=n([r.NgModule({imports:[l.CommonModule],declarations:[i.FormNavComponent,c.NavDirective],exports:[i.FormNavComponent,c.NavDirective],providers:[a.FormNavService],schemas:[r.NO_ERRORS_SCHEMA]})],e)}();t.FormNavModule=s},function(e,t,o){"use strict";var n=this&&this.__decorate||function(e,t,o,n){var r,i=arguments.length,c=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,o):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)c=Reflect.decorate(e,t,o,n);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(c=(i<3?r(c):i>3?r(t,o,c):r(t,o))||c);return i>3&&c&&Object.defineProperty(t,o,c),c},r=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)};Object.defineProperty(t,"__esModule",{value:!0});var i=o(0),c=o(6),a=o(1),l=function(){function e(e){this.ns=e,this.ref={groups:[]},this.subscriptions=[],e.addWatcher(this.ref)}var t,l;return e.prototype.ngAfterContentInit=function(){for(var e=this,t=(Object.keys(this.form.controls),function(t){var o=[];t.fields&&(o=o.concat(t.fields)),t.panels&&t.panels.forEach(function(e){e.fields&&(o=o.concat(e.fields))}),t.controls=o.filter(function(e){return e.required}).map(function(t){return e.form.get(t.name)}),0===t.controls.length?t.valid=!0:t.controls.forEach(function(o){e.subscriptions.push(o.statusChanges.subscribe(function(){t.valid=t.controls.every(function(e){return e.valid})}))})}),o=0,n=this.ref.groups;othis.ref.groups.length-2},e.prototype.ngOnDestroy=function(){this.subscriptions.forEach(function(e){return e.unsubscribe()}),this.ns.reset()},n([i.Input(),r("design:type","function"==typeof(t=void 0!==a.FormGroup&&a.FormGroup)?t:Object)],e.prototype,"form",void 0),e=n([i.Component({selector:"form-nav",template:o(45),styles:[o(46).toString()]}),r("design:paramtypes",["function"==typeof(l=void 0!==c.FormNavService&&c.FormNavService)?l:Object])],e)}();t.FormNavComponent=l},function(e,t){e.exports='\n
\n
\n
\n \n \n
\n
\n
'},function(e,t,o){var n=o(47);"string"==typeof n&&(n=[[e.i,n,""]]);var r={hmr:!0,transform:void 0,insertInto:void 0};o(5)(n,r);n.locals&&(e.exports=n.locals)},function(e,t,o){(e.exports=o(4)(!1)).push([e.i,"",""])},function(e,t,o){"use strict";var n=this&&this.__decorate||function(e,t,o,n){var r,i=arguments.length,c=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,o):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)c=Reflect.decorate(e,t,o,n);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(c=(i<3?r(c):i>3?r(t,o,c):r(t,o))||c);return i>3&&c&&Object.defineProperty(t,o,c),c},r=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)};Object.defineProperty(t,"__esModule",{value:!0});var i=o(0),c=o(6),a=function(){function e(e){this.navService=e}var t;return e.prototype.ngOnInit=function(){this.panel.static||this.navService.add(this.panel)},n([i.Input("navTab"),r("design:type",Object)],e.prototype,"panel",void 0),e=n([i.Directive({selector:"[navTab]"}),r("design:paramtypes",["function"==typeof(t=void 0!==c.FormNavService&&c.FormNavService)?t:Object])],e)}();t.NavDirective=a},function(e,t,o){"use strict";var n=this&&this.__decorate||function(e,t,o,n){var r,i=arguments.length,c=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,o):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)c=Reflect.decorate(e,t,o,n);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(c=(i<3?r(c):i>3?r(t,o,c):r(t,o))||c);return i>3&&c&&Object.defineProperty(t,o,c),c},r=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)};Object.defineProperty(t,"__esModule",{value:!0});var i=o(0),c=function(){function e(){}return n([i.Input(),r("design:type",Object)],e.prototype,"panelConfig",void 0),n([i.Input(),r("design:type",Object)],e.prototype,"group",void 0),n([i.Input(),r("design:type",Object)],e.prototype,"model",void 0),e=n([i.Component({selector:"layout-group-panel",template:o(50),styles:[o(51).toString()]})],e)}();t.PanelComponent=c},function(e,t){e.exports='
\n
\n {{panelConfig.label}}\n
\n
\n
\n
\n
'},function(e,t,o){var n=o(52);"string"==typeof n&&(n=[[e.i,n,""]]);var r={hmr:!0,transform:void 0,insertInto:void 0};o(5)(n,r);n.locals&&(e.exports=n.locals)},function(e,t,o){(e.exports=o(4)(!1)).push([e.i,"layout-group-panel .panel {\n margin-bottom: 20px;\n background-color: #fff;\n border-radius: 4px;\n border: 1px solid #ddd;\n -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);\n box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05); }\n layout-group-panel .panel .panel-heading {\n color: #333;\n background-color: #f5f5f5;\n padding: 10px 15px;\n border-bottom: 1px solid #ddd;\n border-top-left-radius: 3px;\n border-top-right-radius: 3px; }\n layout-group-panel .panel .panel-body {\n padding: 15px; }\n",""])},function(e,t,o){"use strict";var n=this&&this.__decorate||function(e,t,o,n){var r,i=arguments.length,c=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,o):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)c=Reflect.decorate(e,t,o,n);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(c=(i<3?r(c):i>3?r(t,o,c):r(t,o))||c);return i>3&&c&&Object.defineProperty(t,o,c),c},r=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},i=this&&this.__param||function(e,t){return function(o,n){t(o,n,e)}};Object.defineProperty(t,"__esModule",{value:!0});var c=o(0),a=o(1),l=o(3),s=function(){function e(e,t,o,n){this.resolver=e,this.container=t,this.fb=o,this.inputs=n}var t,o,s,f,u,p;return e.prototype.ngOnInit=function(){if(!this.group)throw new Error("group is not set");if(!this.inputs[this.field.type])throw new Error('Input with type "'+this.field.type+'" was not found');var e=this.inputs[this.field.type],t=this.resolver.resolveComponentFactory(e);this.component=this.container.createComponent(t),this.component.instance.field=this.field,this.component.instance.group=this.group,this.component.instance.model=this.model,this.group.addControl(this.field.name,this.createControl(this.field)),this.model&&this.model[this.field.name]&&this.group.get(this.field.name).patchValue(this.model[this.field.name])},e.prototype.createControl=function(e){var t=e.disabled,o=e.required,n=e.minLength,r=e.maxLength,i=e.email,c=e.min,l=e.max,s=e.pattern,f=e.value,u=[];return void 0!==o&&o&&u.push(a.Validators.required),void 0!==n&&u.push(a.Validators.minLength(n)),void 0!==r&&u.push(a.Validators.maxLength(r)),void 0!==i&&u.push(a.Validators.email),void 0!==c&&u.push(a.Validators.min(c)),void 0!==l&&u.push(a.Validators.max(l)),void 0!==s&&u.push(a.Validators.pattern(s)),this.fb.control({disabled:t,value:f},u)},e.prototype.ngOnDestroy=function(){this.component&&this.component.destroy()},n([c.Input(),r("design:type","function"==typeof(t=void 0!==l.FieldConfig&&l.FieldConfig)?t:Object)],e.prototype,"field",void 0),n([c.Input(),r("design:type","function"==typeof(o=void 0!==a.FormGroup&&a.FormGroup)?o:Object)],e.prototype,"group",void 0),n([c.Input(),r("design:type",Object)],e.prototype,"model",void 0),e=n([c.Directive({selector:"[dynamicField]"}),i(3,c.Inject(l.FIELD_DICT_TOKEN)),r("design:paramtypes",["function"==typeof(s=void 0!==c.ComponentFactoryResolver&&c.ComponentFactoryResolver)?s:Object,"function"==typeof(f=void 0!==c.ViewContainerRef&&c.ViewContainerRef)?f:Object,"function"==typeof(u=void 0!==a.FormBuilder&&a.FormBuilder)?u:Object,"function"==typeof(p=void 0!==l.FieldDictionary&&l.FieldDictionary)?p:Object])],e)}();t.DynamicFieldDirective=s},function(e,t,o){"use strict";var n=this&&this.__decorate||function(e,t,o,n){var r,i=arguments.length,c=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,o):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)c=Reflect.decorate(e,t,o,n);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(c=(i<3?r(c):i>3?r(t,o,c):r(t,o))||c);return i>3&&c&&Object.defineProperty(t,o,c),c},r=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)};Object.defineProperty(t,"__esModule",{value:!0});var i=o(0),c=o(1),a=o(3),l=function(){function e(){}var t,l;return n([i.Input(),r("design:type","function"==typeof(t=void 0!==a.FormConfig&&a.FormConfig)?t:Object)],e.prototype,"formConfig",void 0),n([i.Input(),r("design:type",Object)],e.prototype,"model",void 0),n([i.Input(),r("design:type",Object)],e.prototype,"lookups",void 0),n([i.Input(),r("design:type","function"==typeof(l=void 0!==c.FormGroup&&c.FormGroup)?l:Object)],e.prototype,"formGroup",void 0),e=n([i.Component({selector:"layout-basic",template:o(55)})],e)}();t.BasicLayoutComponent=l},function(e,t){e.exports='
\n
\n

{{formConfig.title}}

\n
\n
\n
'}])}); \ No newline at end of file diff --git a/src/app/app.module.ts b/src/app/app.module.ts index 85abc2d..7de2a43 100644 --- a/src/app/app.module.ts +++ b/src/app/app.module.ts @@ -59,7 +59,7 @@ export class NgxFormModule { } } -// TODO: next -// create different default layouts for ngx-forms +// TODO: + // make nav part of group-layout // individual field layout ???? diff --git a/src/app/dynamic-form/dynamic-form.component.spec.ts b/src/app/dynamic-form/dynamic-form.component.spec.ts index efd31e1..a906585 100644 --- a/src/app/dynamic-form/dynamic-form.component.spec.ts +++ b/src/app/dynamic-form/dynamic-form.component.spec.ts @@ -82,19 +82,19 @@ describe('DynamicFormDirective', () => { it('should call changes()', () => { - expect(dir.changes).toEqual(dir.form.valueChanges); + expect(dir.changes).toEqual(dir.formGroup.valueChanges); }); it('should call valid()', () => { - expect(dir.valid).toEqual(dir.form.valid); + expect(dir.valid).toEqual(dir.formGroup.valid); }); it('should call value()', () => { - expect(dir.value).toEqual(dir.form.value); + expect(dir.value).toEqual(dir.formGroup.value); }); it('should call value()', () => { - expect(dir.rawValue).toEqual(dir.form.getRawValue()); + expect(dir.rawValue).toEqual(dir.formGroup.getRawValue()); }); }); diff --git a/src/app/dynamic-form/dynamic-form.component.ts b/src/app/dynamic-form/dynamic-form.component.ts index 1729f3b..29f13dc 100644 --- a/src/app/dynamic-form/dynamic-form.component.ts +++ b/src/app/dynamic-form/dynamic-form.component.ts @@ -11,17 +11,17 @@ export class DynamicFormDirective implements OnInit { @Input() model: any; @Input() lookups: object; - public form: FormGroup; - get changes() { return this.form.valueChanges; } - get valid() { return this.form.valid; } - get value() { return this.form.value; } - get rawValue() { return this.form.getRawValue(); } + public formGroup: FormGroup; + get changes() { return this.formGroup.valueChanges; } + get valid() { return this.formGroup.valid; } + get value() { return this.formGroup.value; } + get rawValue() { return this.formGroup.getRawValue(); } constructor( private componentFactoryResolver: ComponentFactoryResolver, private container: ViewContainerRef, @Inject(LAYOUTS_TOKEN) private layouts: LayoutDictionary) { - this.form = new FormGroup({}); + this.formGroup = new FormGroup({}); } public ngOnInit(): void { @@ -31,7 +31,7 @@ export class DynamicFormDirective implements OnInit { const componentReference = this.layouts[this.formConfig.layout]; const componentFactory = this.componentFactoryResolver.resolveComponentFactory(componentReference); const component = this.container.createComponent(componentFactory); - component.instance.form = this.form; + component.instance.formGroup = this.formGroup; component.instance.formConfig = this.formConfig; component.instance.model = this.model; } diff --git a/src/app/layouts/basic/basic-layout.component.html b/src/app/layouts/basic/basic-layout.component.html index 616b912..e12cc34 100644 --- a/src/app/layouts/basic/basic-layout.component.html +++ b/src/app/layouts/basic/basic-layout.component.html @@ -1,6 +1,6 @@
-
+

{{formConfig.title}}

-
+
\ No newline at end of file diff --git a/src/app/layouts/basic/basic-layout.component.spec.ts b/src/app/layouts/basic/basic-layout.component.spec.ts index b936fa5..4202a3c 100644 --- a/src/app/layouts/basic/basic-layout.component.spec.ts +++ b/src/app/layouts/basic/basic-layout.component.spec.ts @@ -20,10 +20,6 @@ const defaultInputs: FieldDictionary = { text: FormInputComponent } -const layouts = { - groups: BasicLayoutComponent -} - @Component({ template: `` }) @@ -57,7 +53,7 @@ describe('BasicLayoutComponent Core', () => { beforeEach(() => { fixture = TestBed.createComponent(BasicLayoutComponent); component = fixture.componentInstance; - component.form = new FormGroup({}) + component.formGroup = new FormGroup({}) component.formConfig = { form: [ { label: 'fields and panels', panels: [{ label: 'fields', fields: [{ type: 'text', name: 'title', required: true }] }] }, @@ -73,7 +69,7 @@ describe('BasicLayoutComponent Core', () => { describe('ngOnInit()', () => { it('should create group', () => { - expect(component.form).toBeDefined(); + expect(component.formGroup).toBeDefined(); }); }); diff --git a/src/app/layouts/basic/basic-layout.component.ts b/src/app/layouts/basic/basic-layout.component.ts index 0d3dff3..ae97f4b 100644 --- a/src/app/layouts/basic/basic-layout.component.ts +++ b/src/app/layouts/basic/basic-layout.component.ts @@ -1,14 +1,14 @@ import { Component, Input } from '@angular/core'; import { FormGroup } from '@angular/forms'; -import { FormConfig } from '../../../types'; // todo: move specific types here +import { FormConfig, Layout } from '../../../types'; // todo: move specific types here @Component({ selector: 'layout-basic', template: require('./basic-layout.component.html') }) -export class BasicLayoutComponent { +export class BasicLayoutComponent implements Layout { @Input() formConfig: FormConfig; @Input() model: any; @Input() lookups: object; - @Input() form: FormGroup; + @Input() formGroup: FormGroup; } diff --git a/src/app/layouts/groups/group/group.component.html b/src/app/layouts/groups/group/group.component.html index 3ca7b29..dc6727d 100644 --- a/src/app/layouts/groups/group/group.component.html +++ b/src/app/layouts/groups/group/group.component.html @@ -1,16 +1,16 @@
- +
-
+
- + -
diff --git a/src/app/layouts/groups/group/group.component.spec.ts b/src/app/layouts/groups/group/group.component.spec.ts index 561db96..30252cc 100644 --- a/src/app/layouts/groups/group/group.component.spec.ts +++ b/src/app/layouts/groups/group/group.component.spec.ts @@ -111,7 +111,7 @@ describe('GroupComponent Core', () => { beforeEach(() => { fixture = TestBed.createComponent(GroupComponent); component = fixture.componentInstance; - component.form = new FormGroup({}) + component.formGroup = new FormGroup({}) component.formConfig = { form: [ { label: 'fields and panels', panels: [{ label: 'fields', fields: [{ type: 'text', name: 'title', required: true }] }] }, @@ -127,7 +127,7 @@ describe('GroupComponent Core', () => { describe('ngOnInit()', () => { it('should create group', () => { - expect(component.form).toBeDefined(); + expect(component.formGroup).toBeDefined(); }); describe('Lookup Expansion', () => { diff --git a/src/app/layouts/groups/group/group.component.ts b/src/app/layouts/groups/group/group.component.ts index d7f8cc1..8e3fc69 100644 --- a/src/app/layouts/groups/group/group.component.ts +++ b/src/app/layouts/groups/group/group.component.ts @@ -1,17 +1,17 @@ import { Component, Input, OnInit } from '@angular/core'; import { FormGroup } from '@angular/forms'; -import { FieldConfig, ILookup, FormConfig, PanelGroup, ConditionType } from '../../../../types'; // todo: move specific types here +import { FieldConfig, ILookup, FormConfig, PanelGroup, ConditionType, Layout } from '../../../../types'; // todo: move specific types here @Component({ selector: 'layout-group-group', template: require('./group.component.html'), styles: [require('./group.component.scss').toString()] }) -export class GroupComponent implements OnInit { +export class GroupComponent implements OnInit, Layout { @Input() formConfig: FormConfig; @Input() model: any; @Input() lookups: object; - @Input() form: FormGroup; + @Input() formGroup: FormGroup; public ngOnInit(): void { let fields: FieldConfig[] = []; diff --git a/src/types.ts b/src/types.ts index fc00937..f16a1ea 100644 --- a/src/types.ts +++ b/src/types.ts @@ -45,7 +45,7 @@ export const FIELD_DICT_TOKEN = new InjectionToken('fields'); export const LAYOUTS_TOKEN = new InjectionToken('layouts'); export interface Layout { - form: FormGroup; + formGroup: FormGroup; formConfig: any; model: any; } From 055190b277f774abfed8373970dc26b0876f4d3b Mon Sep 17 00:00:00 2001 From: Artem Serebryakov Date: Tue, 12 Feb 2019 15:02:30 -0500 Subject: [PATCH 4/4] chore(abstraction): created base layout class, other layouts can extend --- dist/ngx-forms.js | 2 +- index.d.ts | 3 ++- src/app/layouts/base-layout.ts | 10 ++++++++++ src/app/layouts/basic/basic-layout.component.ts | 12 +++--------- src/app/layouts/groups/group/group.component.ts | 12 ++++-------- 5 files changed, 20 insertions(+), 19 deletions(-) create mode 100644 src/app/layouts/base-layout.ts diff --git a/dist/ngx-forms.js b/dist/ngx-forms.js index d54eb24..1f24060 100644 --- a/dist/ngx-forms.js +++ b/dist/ngx-forms.js @@ -1 +1 @@ -!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.ngxForms=t():e.ngxForms=t()}(window,function(){return function(e){var t={};function o(n){if(t[n])return t[n].exports;var r=t[n]={i:n,l:!1,exports:{}};return e[n].call(r.exports,r,r.exports,o),r.l=!0,r.exports}return o.m=e,o.c=t,o.d=function(e,t,n){o.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},o.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},o.t=function(e,t){if(1&t&&(e=o(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(o.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var r in e)o.d(n,r,function(t){return e[t]}.bind(null,r));return n},o.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return o.d(t,"a",t),t},o.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},o.p="",o(o.s=8)}([function(e,t){e.exports=require("@angular/core")},function(e,t){e.exports=require("@angular/forms")},function(e,t){e.exports=require("@angular/common")},function(e,t,o){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=o(0);t.FIELD_DICT_TOKEN=new n.InjectionToken("fields"),t.LAYOUTS_TOKEN=new n.InjectionToken("layouts"),function(e){e.And="and",e.Or="or"}(t.ConditionType||(t.ConditionType={}))},function(e,t,o){"use strict";e.exports=function(e){var t=[];return t.toString=function(){return this.map(function(t){var o=function(e,t){var o=e[1]||"",n=e[3];if(!n)return o;if(t&&"function"==typeof btoa){var r=(c=n,"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(c))))+" */"),i=n.sources.map(function(e){return"/*# sourceURL="+n.sourceRoot+e+" */"});return[o].concat(i).concat([r]).join("\n")}var c;return[o].join("\n")}(t,e);return t[2]?"@media "+t[2]+"{"+o+"}":o}).join("")},t.i=function(e,o){"string"==typeof e&&(e=[[null,e,""]]);for(var n={},r=0;r=0&&f.splice(t,1)}function h(e){var t=document.createElement("style");if(void 0===e.attrs.type&&(e.attrs.type="text/css"),void 0===e.attrs.nonce){var n=function(){0;return o.nc}();n&&(e.attrs.nonce=n)}return y(t,e.attrs),m(e,t),t}function y(e,t){Object.keys(t).forEach(function(o){e.setAttribute(o,t[o])})}function b(e,t){var o,n,r,i;if(t.transform&&e.css){if(!(i=t.transform(e.css)))return function(){};e.css=i}if(t.singleton){var c=s++;o=l||(l=h(t)),n=C.bind(null,o,c,!1),r=C.bind(null,o,c,!0)}else e.sourceMap&&"function"==typeof URL&&"function"==typeof URL.createObjectURL&&"function"==typeof URL.revokeObjectURL&&"function"==typeof Blob&&"function"==typeof btoa?(o=function(e){var t=document.createElement("link");return void 0===e.attrs.type&&(e.attrs.type="text/css"),e.attrs.rel="stylesheet",y(t,e.attrs),m(e,t),t}(t),n=function(e,t,o){var n=o.css,r=o.sourceMap,i=void 0===t.convertToAbsoluteUrls&&r;(t.convertToAbsoluteUrls||i)&&(n=u(n));r&&(n+="\n/*# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(r))))+" */");var c=new Blob([n],{type:"text/css"}),a=e.href;e.href=URL.createObjectURL(c),a&&URL.revokeObjectURL(a)}.bind(null,o,t),r=function(){v(o),o.href&&URL.revokeObjectURL(o.href)}):(o=h(t),n=function(e,t){var o=t.css,n=t.media;n&&e.setAttribute("media",n);if(e.styleSheet)e.styleSheet.cssText=o;else{for(;e.firstChild;)e.removeChild(e.firstChild);e.appendChild(document.createTextNode(o))}}.bind(null,o),r=function(){v(o)});return n(e),function(t){if(t){if(t.css===e.css&&t.media===e.media&&t.sourceMap===e.sourceMap)return;n(e=t)}else r()}}e.exports=function(e,t){if("undefined"!=typeof DEBUG&&DEBUG&&"object"!=typeof document)throw new Error("The style-loader cannot be used in a non-browser environment");(t=t||{}).attrs="object"==typeof t.attrs?t.attrs:{},t.singleton||"boolean"==typeof t.singleton||(t.singleton=c()),t.insertInto||(t.insertInto="head"),t.insertAt||(t.insertAt="bottom");var o=d(e,t);return p(o,t),function(e){for(var n=[],r=0;r=0;a--)(r=e[a])&&(c=(i<3?r(c):i>3?r(t,o,c):r(t,o))||c);return i>3&&c&&Object.defineProperty(t,o,c),c};Object.defineProperty(t,"__esModule",{value:!0});var r=o(0),i=function(){function e(){this.selected=0,this.groups=[],this.watchers=[]}return e.prototype.add=function(e){var t=this;this.groups.push(e),this.groups.length>1&&(e.hidden=!0),this.watchers.forEach(function(e){return e.groups=t.groups})},e.prototype.select=function(e){this.groups.forEach(function(e){e.hidden=!0}),this.groups[e].hidden=!1,this.selected=e},e.prototype.reset=function(){this.groups.forEach(function(e){e.hidden=!1}),this.groups=[],this.selected=0},e.prototype.addWatcher=function(e){this.watchers.push(e)},e.prototype.getAllGroups=function(){return this.groups},e=n([r.Injectable()],e)}();t.FormNavService=i},function(e,t,o){"use strict";var n=this&&this.__decorate||function(e,t,o,n){var r,i=arguments.length,c=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,o):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)c=Reflect.decorate(e,t,o,n);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(c=(i<3?r(c):i>3?r(t,o,c):r(t,o))||c);return i>3&&c&&Object.defineProperty(t,o,c),c};Object.defineProperty(t,"__esModule",{value:!0});var r=o(0),i=o(53),c=o(2),a=function(){function e(){}return e=n([r.NgModule({imports:[c.CommonModule],declarations:[i.DynamicFieldDirective],exports:[i.DynamicFieldDirective],schemas:[r.NO_ERRORS_SCHEMA]})],e)}();t.DynamicFieldModule=a},function(e,t,o){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),o(9),function(e){for(var o in e)t.hasOwnProperty(o)||(t[o]=e[o])}(o(10))},function(e,t){e.exports=require("reflect-metadata")},function(e,t,o){"use strict";var n=this&&this.__decorate||function(e,t,o,n){var r,i=arguments.length,c=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,o):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)c=Reflect.decorate(e,t,o,n);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(c=(i<3?r(c):i>3?r(t,o,c):r(t,o))||c);return i>3&&c&&Object.defineProperty(t,o,c),c};Object.defineProperty(t,"__esModule",{value:!0});var r=o(0),i=o(2),c=o(1),a=o(11),l=o(12),s=o(3),f=o(13),u=o(38),p=o(7),d=function(){function e(){}var t;return t=e,e.forRoot=function(e){var o=e.fieldDictionary,n=e.layoutDictionary;return o&&Object.keys(o).forEach(function(e){return f.defaultInputs[e]=o[e]}),n&&Object.keys(n).forEach(function(e){return u.defaultLayouts[e]=n[e]}),{ngModule:t,providers:[{provide:s.FIELD_DICT_TOKEN,useValue:f.defaultInputs},{provide:s.LAYOUTS_TOKEN,useValue:u.defaultLayouts}]}},e=t=n([r.NgModule({imports:[i.CommonModule,l.BrowserAnimationsModule,c.ReactiveFormsModule,c.FormsModule,u.FormLayoutsModule,f.FormFieldsModule,p.DynamicFieldModule],declarations:[a.DynamicFormDirective],exports:[a.DynamicFormDirective],providers:[{provide:s.FIELD_DICT_TOKEN,useValue:f.defaultInputs},{provide:s.LAYOUTS_TOKEN,useValue:u.defaultLayouts}],schemas:[r.NO_ERRORS_SCHEMA]})],e)}();t.NgxFormModule=d},function(e,t,o){"use strict";var n=this&&this.__decorate||function(e,t,o,n){var r,i=arguments.length,c=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,o):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)c=Reflect.decorate(e,t,o,n);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(c=(i<3?r(c):i>3?r(t,o,c):r(t,o))||c);return i>3&&c&&Object.defineProperty(t,o,c),c},r=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},i=this&&this.__param||function(e,t){return function(o,n){t(o,n,e)}};Object.defineProperty(t,"__esModule",{value:!0});var c=o(0),a=o(1),l=o(3),s=function(){function e(e,t,o){this.componentFactoryResolver=e,this.container=t,this.layouts=o,this.formGroup=new a.FormGroup({})}var t,o,s,f;return Object.defineProperty(e.prototype,"changes",{get:function(){return this.formGroup.valueChanges},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"valid",{get:function(){return this.formGroup.valid},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"value",{get:function(){return this.formGroup.value},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"rawValue",{get:function(){return this.formGroup.getRawValue()},enumerable:!0,configurable:!0}),e.prototype.ngOnInit=function(){if(!this.layouts[this.formConfig.layout])throw new Error('Layout with name "'+this.formConfig.layout+'" was not found');var e=this.layouts[this.formConfig.layout],t=this.componentFactoryResolver.resolveComponentFactory(e),o=this.container.createComponent(t);o.instance.formGroup=this.formGroup,o.instance.formConfig=this.formConfig,o.instance.model=this.model},n([c.Input(),r("design:type","function"==typeof(t=void 0!==l.FormConfig&&l.FormConfig)?t:Object)],e.prototype,"formConfig",void 0),n([c.Input(),r("design:type",Object)],e.prototype,"model",void 0),n([c.Input(),r("design:type",Object)],e.prototype,"lookups",void 0),e=n([c.Directive({exportAs:"dynamicForm",selector:"dynamic-form"}),i(2,c.Inject(l.LAYOUTS_TOKEN)),r("design:paramtypes",["function"==typeof(o=void 0!==c.ComponentFactoryResolver&&c.ComponentFactoryResolver)?o:Object,"function"==typeof(s=void 0!==c.ViewContainerRef&&c.ViewContainerRef)?s:Object,"function"==typeof(f=void 0!==l.LayoutDictionary&&l.LayoutDictionary)?f:Object])],e)}();t.DynamicFormDirective=s},function(e,t){e.exports=require("@angular/platform-browser/animations")},function(e,t,o){"use strict";var n=this&&this.__decorate||function(e,t,o,n){var r,i=arguments.length,c=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,o):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)c=Reflect.decorate(e,t,o,n);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(c=(i<3?r(c):i>3?r(t,o,c):r(t,o))||c);return i>3&&c&&Object.defineProperty(t,o,c),c};Object.defineProperty(t,"__esModule",{value:!0});var r=o(0),i=o(2),c=o(14),a=o(15),l=o(16),s=o(18),f=o(20),u=o(25),p=o(27),d=o(29),m=o(31),v=o(33),h=o(35),y=o(37);t.defaultInputs={text:l.FormInputComponent,select:s.FormSelectComponent,editor:f.FormTextEditorComponent,textarea:d.FormTextareaComponent,hidden:m.FormInputHiddenComponent,radio:p.FormRadioComponent,checkbox:u.FormCheckboxComponent,label:v.FormLabelComponent,date:h.FormDateComponent};var b=function(){function e(){}return e=n([r.NgModule({imports:[i.CommonModule,a.TagInputModule,c.QuillModule,y.NgbModule],declarations:[l.FormInputComponent,s.FormSelectComponent,f.FormTextEditorComponent,d.FormTextareaComponent,m.FormInputHiddenComponent,p.FormRadioComponent,u.FormCheckboxComponent,v.FormLabelComponent,h.FormDateComponent],exports:[l.FormInputComponent,s.FormSelectComponent,f.FormTextEditorComponent,d.FormTextareaComponent,m.FormInputHiddenComponent,p.FormRadioComponent,u.FormCheckboxComponent,v.FormLabelComponent,h.FormDateComponent],entryComponents:[l.FormInputComponent,s.FormSelectComponent,f.FormTextEditorComponent,d.FormTextareaComponent,m.FormInputHiddenComponent,p.FormRadioComponent,u.FormCheckboxComponent,v.FormLabelComponent,h.FormDateComponent],schemas:[r.NO_ERRORS_SCHEMA]})],e)}();t.FormFieldsModule=b},function(e,t){e.exports=require("ngx-quill")},function(e,t){e.exports=require("ngx-chips")},function(e,t,o){"use strict";var n=this&&this.__decorate||function(e,t,o,n){var r,i=arguments.length,c=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,o):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)c=Reflect.decorate(e,t,o,n);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(c=(i<3?r(c):i>3?r(t,o,c):r(t,o))||c);return i>3&&c&&Object.defineProperty(t,o,c),c};Object.defineProperty(t,"__esModule",{value:!0});var r=o(0),i=function(){function e(){}return e=n([r.Component({selector:"form-input",template:o(17)})],e)}();t.FormInputComponent=i},function(e,t){e.exports='
\n \n
\n \n
\n
\n'},function(e,t,o){"use strict";var n=this&&this.__decorate||function(e,t,o,n){var r,i=arguments.length,c=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,o):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)c=Reflect.decorate(e,t,o,n);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(c=(i<3?r(c):i>3?r(t,o,c):r(t,o))||c);return i>3&&c&&Object.defineProperty(t,o,c),c};Object.defineProperty(t,"__esModule",{value:!0});var r=o(0),i=function(){function e(){}return e=n([r.Component({selector:"form-select",template:o(19)})],e)}();t.FormSelectComponent=i},function(e,t){e.exports='
\n \n
\n \n
\n
'},function(e,t,o){"use strict";var n=this&&this.__decorate||function(e,t,o,n){var r,i=arguments.length,c=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,o):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)c=Reflect.decorate(e,t,o,n);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(c=(i<3?r(c):i>3?r(t,o,c):r(t,o))||c);return i>3&&c&&Object.defineProperty(t,o,c),c};Object.defineProperty(t,"__esModule",{value:!0});var r=o(0),i=function(){function e(){this.quillToolbar={toolbar:["bold","italic","underline","strike",{header:1},{header:2},{list:"ordered"},{list:"bullet"},"blockquote","code-block","link"]}}return e=n([r.Component({selector:"form-text-editor",template:o(21),styles:[o(22).toString()]})],e)}();t.FormTextEditorComponent=i},function(e,t){e.exports='
\n \n
\n \n
\n
'},function(e,t,o){var n=o(23);"string"==typeof n&&(n=[[e.i,n,""]]);var r={hmr:!0,transform:void 0,insertInto:void 0};o(5)(n,r);n.locals&&(e.exports=n.locals)},function(e,t,o){(e.exports=o(4)(!1)).push([e.i,"form-text-editor .editor-container {\n margin-bottom: 40px; }\n\nform-text-editor .ql-container.ql-disabled {\n background-color: #e9ecef; }\n",""])},function(e,t){e.exports=function(e){var t="undefined"!=typeof window&&window.location;if(!t)throw new Error("fixUrls requires window.location");if(!e||"string"!=typeof e)return e;var o=t.protocol+"//"+t.host,n=o+t.pathname.replace(/\/[^\/]*$/,"/");return e.replace(/url\s*\(((?:[^)(]|\((?:[^)(]+|\([^)(]*\))*\))*)\)/gi,function(e,t){var r,i=t.trim().replace(/^"(.*)"$/,function(e,t){return t}).replace(/^'(.*)'$/,function(e,t){return t});return/^(#|data:|http:\/\/|https:\/\/|file:\/\/\/|\s*$)/i.test(i)?e:(r=0===i.indexOf("//")?i:0===i.indexOf("/")?o+i:n+i.replace(/^\.\//,""),"url("+JSON.stringify(r)+")")})}},function(e,t,o){"use strict";var n=this&&this.__decorate||function(e,t,o,n){var r,i=arguments.length,c=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,o):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)c=Reflect.decorate(e,t,o,n);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(c=(i<3?r(c):i>3?r(t,o,c):r(t,o))||c);return i>3&&c&&Object.defineProperty(t,o,c),c};Object.defineProperty(t,"__esModule",{value:!0});var r=o(0),i=function(){function e(){}return e=n([r.Component({selector:"form-checkbox",template:o(26)})],e)}();t.FormCheckboxComponent=i},function(e,t){e.exports='
\n \n
\n \n
\n
'},function(e,t,o){"use strict";var n=this&&this.__decorate||function(e,t,o,n){var r,i=arguments.length,c=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,o):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)c=Reflect.decorate(e,t,o,n);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(c=(i<3?r(c):i>3?r(t,o,c):r(t,o))||c);return i>3&&c&&Object.defineProperty(t,o,c),c};Object.defineProperty(t,"__esModule",{value:!0});var r=o(0),i=function(){function e(){}return e=n([r.Component({selector:"form-radio",template:o(28)})],e)}();t.FormRadioComponent=i},function(e,t){e.exports='
\n \n
\n \n
\n
'},function(e,t,o){"use strict";var n=this&&this.__decorate||function(e,t,o,n){var r,i=arguments.length,c=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,o):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)c=Reflect.decorate(e,t,o,n);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(c=(i<3?r(c):i>3?r(t,o,c):r(t,o))||c);return i>3&&c&&Object.defineProperty(t,o,c),c};Object.defineProperty(t,"__esModule",{value:!0});var r=o(0),i=function(){function e(){}return e=n([r.Component({selector:"form-textarea",template:o(30)})],e)}();t.FormTextareaComponent=i},function(e,t){e.exports='
\n \n
\n \n
\n
'},function(e,t,o){"use strict";var n=this&&this.__decorate||function(e,t,o,n){var r,i=arguments.length,c=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,o):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)c=Reflect.decorate(e,t,o,n);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(c=(i<3?r(c):i>3?r(t,o,c):r(t,o))||c);return i>3&&c&&Object.defineProperty(t,o,c),c};Object.defineProperty(t,"__esModule",{value:!0});var r=o(0),i=function(){function e(){}return e=n([r.Component({selector:"form-hidden",template:o(32)})],e)}();t.FormInputHiddenComponent=i},function(e,t){e.exports='\n \n\n'},function(e,t,o){"use strict";var n=this&&this.__decorate||function(e,t,o,n){var r,i=arguments.length,c=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,o):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)c=Reflect.decorate(e,t,o,n);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(c=(i<3?r(c):i>3?r(t,o,c):r(t,o))||c);return i>3&&c&&Object.defineProperty(t,o,c),c};Object.defineProperty(t,"__esModule",{value:!0});var r=o(0),i=function(){function e(){}return e=n([r.Component({selector:"form-label",template:o(34)})],e)}();t.FormLabelComponent=i},function(e,t){e.exports='
\n \n
\n {{group.value[this.field.name]}}\n
\n
'},function(e,t,o){"use strict";var n=this&&this.__decorate||function(e,t,o,n){var r,i=arguments.length,c=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,o):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)c=Reflect.decorate(e,t,o,n);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(c=(i<3?r(c):i>3?r(t,o,c):r(t,o))||c);return i>3&&c&&Object.defineProperty(t,o,c),c};Object.defineProperty(t,"__esModule",{value:!0});var r=o(0),i=function(){function e(){}return e=n([r.Component({selector:"form-date",template:o(36)})],e)}();t.FormDateComponent=i},function(e,t){e.exports='
\n \n
\n \n
\n
\n'},function(e,t){e.exports=require("@ng-bootstrap/ng-bootstrap")},function(e,t,o){"use strict";var n=this&&this.__decorate||function(e,t,o,n){var r,i=arguments.length,c=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,o):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)c=Reflect.decorate(e,t,o,n);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(c=(i<3?r(c):i>3?r(t,o,c):r(t,o))||c);return i>3&&c&&Object.defineProperty(t,o,c),c};Object.defineProperty(t,"__esModule",{value:!0});var r=o(0),i=o(2),c=o(39),a=o(43),l=o(49),s=o(7),f=o(54);t.defaultLayouts={groups:c.GroupComponent,basic:f.BasicLayoutComponent};var u=function(){function e(){}return e=n([r.NgModule({imports:[i.CommonModule,a.FormNavModule,s.DynamicFieldModule],declarations:[c.GroupComponent,l.PanelComponent,f.BasicLayoutComponent],entryComponents:[c.GroupComponent,l.PanelComponent,f.BasicLayoutComponent],schemas:[r.NO_ERRORS_SCHEMA]})],e)}();t.FormLayoutsModule=u},function(e,t,o){"use strict";var n=this&&this.__decorate||function(e,t,o,n){var r,i=arguments.length,c=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,o):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)c=Reflect.decorate(e,t,o,n);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(c=(i<3?r(c):i>3?r(t,o,c):r(t,o))||c);return i>3&&c&&Object.defineProperty(t,o,c),c},r=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)};Object.defineProperty(t,"__esModule",{value:!0});var i=o(0),c=o(1),a=o(3),l=function(){function e(){}var t,l;return e.prototype.ngOnInit=function(){var e=this,t=[];this.formConfig.form.forEach(function(o){o.fields&&(t=t.concat(o.fields)),o.panels&&o.panels.forEach(function(e){e.fields&&(t=t.concat(e.fields))}),o.enableWhen&&!e.checkRules(o,e.model)&&t.forEach(function(e){return e.disabled=!0})}),t.forEach(function(t){if(t.lookup&&e.lookups){var o="string"==typeof t.lookup?{name:t.lookup,extract:null}:t.lookup;t.options=o.extract?e.lookups[o.name].map(function(e){return e[o.extract]}):e.lookups[o.name]}else;})},e.prototype.checkRules=function(e,t){var o=!0;if(e.enableWhen){var n=e.enableWhen;if(!n.rules.length)return!0;var r=function(o){var n,r=t[o.field]||(n=e.fields.find(function(e){return e.name===o.field}))&&n.value||"";return Array.isArray(o.equals)||(o.equals=[o.equals]),o.equals.indexOf(r)>-1};return n.type!==a.ConditionType.Or&&n.type||(o=n.rules.some(r)),n.type===a.ConditionType.And&&(o=n.rules.every(r)),o}},n([i.Input(),r("design:type","function"==typeof(t=void 0!==a.FormConfig&&a.FormConfig)?t:Object)],e.prototype,"formConfig",void 0),n([i.Input(),r("design:type",Object)],e.prototype,"model",void 0),n([i.Input(),r("design:type",Object)],e.prototype,"lookups",void 0),n([i.Input(),r("design:type","function"==typeof(l=void 0!==c.FormGroup&&c.FormGroup)?l:Object)],e.prototype,"formGroup",void 0),e=n([i.Component({selector:"layout-group-group",template:o(40),styles:[o(41).toString()]})],e)}();t.GroupComponent=l},function(e,t){e.exports='
\n
\n \n
\n
\n
\n\n \n \n \n\n \n \n \n
\n
\n
'},function(e,t,o){var n=o(42);"string"==typeof n&&(n=[[e.i,n,""]]);var r={hmr:!0,transform:void 0,insertInto:void 0};o(5)(n,r);n.locals&&(e.exports=n.locals)},function(e,t,o){(e.exports=o(4)(!1)).push([e.i,".required-icon {\n color: red; }\n",""])},function(e,t,o){"use strict";var n=this&&this.__decorate||function(e,t,o,n){var r,i=arguments.length,c=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,o):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)c=Reflect.decorate(e,t,o,n);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(c=(i<3?r(c):i>3?r(t,o,c):r(t,o))||c);return i>3&&c&&Object.defineProperty(t,o,c),c};Object.defineProperty(t,"__esModule",{value:!0});var r=o(0),i=o(44),c=o(48),a=o(6),l=o(2),s=function(){function e(){}return e=n([r.NgModule({imports:[l.CommonModule],declarations:[i.FormNavComponent,c.NavDirective],exports:[i.FormNavComponent,c.NavDirective],providers:[a.FormNavService],schemas:[r.NO_ERRORS_SCHEMA]})],e)}();t.FormNavModule=s},function(e,t,o){"use strict";var n=this&&this.__decorate||function(e,t,o,n){var r,i=arguments.length,c=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,o):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)c=Reflect.decorate(e,t,o,n);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(c=(i<3?r(c):i>3?r(t,o,c):r(t,o))||c);return i>3&&c&&Object.defineProperty(t,o,c),c},r=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)};Object.defineProperty(t,"__esModule",{value:!0});var i=o(0),c=o(6),a=o(1),l=function(){function e(e){this.ns=e,this.ref={groups:[]},this.subscriptions=[],e.addWatcher(this.ref)}var t,l;return e.prototype.ngAfterContentInit=function(){for(var e=this,t=(Object.keys(this.form.controls),function(t){var o=[];t.fields&&(o=o.concat(t.fields)),t.panels&&t.panels.forEach(function(e){e.fields&&(o=o.concat(e.fields))}),t.controls=o.filter(function(e){return e.required}).map(function(t){return e.form.get(t.name)}),0===t.controls.length?t.valid=!0:t.controls.forEach(function(o){e.subscriptions.push(o.statusChanges.subscribe(function(){t.valid=t.controls.every(function(e){return e.valid})}))})}),o=0,n=this.ref.groups;othis.ref.groups.length-2},e.prototype.ngOnDestroy=function(){this.subscriptions.forEach(function(e){return e.unsubscribe()}),this.ns.reset()},n([i.Input(),r("design:type","function"==typeof(t=void 0!==a.FormGroup&&a.FormGroup)?t:Object)],e.prototype,"form",void 0),e=n([i.Component({selector:"form-nav",template:o(45),styles:[o(46).toString()]}),r("design:paramtypes",["function"==typeof(l=void 0!==c.FormNavService&&c.FormNavService)?l:Object])],e)}();t.FormNavComponent=l},function(e,t){e.exports='\n
\n
\n
\n \n \n
\n
\n
'},function(e,t,o){var n=o(47);"string"==typeof n&&(n=[[e.i,n,""]]);var r={hmr:!0,transform:void 0,insertInto:void 0};o(5)(n,r);n.locals&&(e.exports=n.locals)},function(e,t,o){(e.exports=o(4)(!1)).push([e.i,"",""])},function(e,t,o){"use strict";var n=this&&this.__decorate||function(e,t,o,n){var r,i=arguments.length,c=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,o):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)c=Reflect.decorate(e,t,o,n);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(c=(i<3?r(c):i>3?r(t,o,c):r(t,o))||c);return i>3&&c&&Object.defineProperty(t,o,c),c},r=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)};Object.defineProperty(t,"__esModule",{value:!0});var i=o(0),c=o(6),a=function(){function e(e){this.navService=e}var t;return e.prototype.ngOnInit=function(){this.panel.static||this.navService.add(this.panel)},n([i.Input("navTab"),r("design:type",Object)],e.prototype,"panel",void 0),e=n([i.Directive({selector:"[navTab]"}),r("design:paramtypes",["function"==typeof(t=void 0!==c.FormNavService&&c.FormNavService)?t:Object])],e)}();t.NavDirective=a},function(e,t,o){"use strict";var n=this&&this.__decorate||function(e,t,o,n){var r,i=arguments.length,c=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,o):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)c=Reflect.decorate(e,t,o,n);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(c=(i<3?r(c):i>3?r(t,o,c):r(t,o))||c);return i>3&&c&&Object.defineProperty(t,o,c),c},r=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)};Object.defineProperty(t,"__esModule",{value:!0});var i=o(0),c=function(){function e(){}return n([i.Input(),r("design:type",Object)],e.prototype,"panelConfig",void 0),n([i.Input(),r("design:type",Object)],e.prototype,"group",void 0),n([i.Input(),r("design:type",Object)],e.prototype,"model",void 0),e=n([i.Component({selector:"layout-group-panel",template:o(50),styles:[o(51).toString()]})],e)}();t.PanelComponent=c},function(e,t){e.exports='
\n
\n {{panelConfig.label}}\n
\n
\n
\n
\n
'},function(e,t,o){var n=o(52);"string"==typeof n&&(n=[[e.i,n,""]]);var r={hmr:!0,transform:void 0,insertInto:void 0};o(5)(n,r);n.locals&&(e.exports=n.locals)},function(e,t,o){(e.exports=o(4)(!1)).push([e.i,"layout-group-panel .panel {\n margin-bottom: 20px;\n background-color: #fff;\n border-radius: 4px;\n border: 1px solid #ddd;\n -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);\n box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05); }\n layout-group-panel .panel .panel-heading {\n color: #333;\n background-color: #f5f5f5;\n padding: 10px 15px;\n border-bottom: 1px solid #ddd;\n border-top-left-radius: 3px;\n border-top-right-radius: 3px; }\n layout-group-panel .panel .panel-body {\n padding: 15px; }\n",""])},function(e,t,o){"use strict";var n=this&&this.__decorate||function(e,t,o,n){var r,i=arguments.length,c=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,o):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)c=Reflect.decorate(e,t,o,n);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(c=(i<3?r(c):i>3?r(t,o,c):r(t,o))||c);return i>3&&c&&Object.defineProperty(t,o,c),c},r=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},i=this&&this.__param||function(e,t){return function(o,n){t(o,n,e)}};Object.defineProperty(t,"__esModule",{value:!0});var c=o(0),a=o(1),l=o(3),s=function(){function e(e,t,o,n){this.resolver=e,this.container=t,this.fb=o,this.inputs=n}var t,o,s,f,u,p;return e.prototype.ngOnInit=function(){if(!this.group)throw new Error("group is not set");if(!this.inputs[this.field.type])throw new Error('Input with type "'+this.field.type+'" was not found');var e=this.inputs[this.field.type],t=this.resolver.resolveComponentFactory(e);this.component=this.container.createComponent(t),this.component.instance.field=this.field,this.component.instance.group=this.group,this.component.instance.model=this.model,this.group.addControl(this.field.name,this.createControl(this.field)),this.model&&this.model[this.field.name]&&this.group.get(this.field.name).patchValue(this.model[this.field.name])},e.prototype.createControl=function(e){var t=e.disabled,o=e.required,n=e.minLength,r=e.maxLength,i=e.email,c=e.min,l=e.max,s=e.pattern,f=e.value,u=[];return void 0!==o&&o&&u.push(a.Validators.required),void 0!==n&&u.push(a.Validators.minLength(n)),void 0!==r&&u.push(a.Validators.maxLength(r)),void 0!==i&&u.push(a.Validators.email),void 0!==c&&u.push(a.Validators.min(c)),void 0!==l&&u.push(a.Validators.max(l)),void 0!==s&&u.push(a.Validators.pattern(s)),this.fb.control({disabled:t,value:f},u)},e.prototype.ngOnDestroy=function(){this.component&&this.component.destroy()},n([c.Input(),r("design:type","function"==typeof(t=void 0!==l.FieldConfig&&l.FieldConfig)?t:Object)],e.prototype,"field",void 0),n([c.Input(),r("design:type","function"==typeof(o=void 0!==a.FormGroup&&a.FormGroup)?o:Object)],e.prototype,"group",void 0),n([c.Input(),r("design:type",Object)],e.prototype,"model",void 0),e=n([c.Directive({selector:"[dynamicField]"}),i(3,c.Inject(l.FIELD_DICT_TOKEN)),r("design:paramtypes",["function"==typeof(s=void 0!==c.ComponentFactoryResolver&&c.ComponentFactoryResolver)?s:Object,"function"==typeof(f=void 0!==c.ViewContainerRef&&c.ViewContainerRef)?f:Object,"function"==typeof(u=void 0!==a.FormBuilder&&a.FormBuilder)?u:Object,"function"==typeof(p=void 0!==l.FieldDictionary&&l.FieldDictionary)?p:Object])],e)}();t.DynamicFieldDirective=s},function(e,t,o){"use strict";var n=this&&this.__decorate||function(e,t,o,n){var r,i=arguments.length,c=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,o):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)c=Reflect.decorate(e,t,o,n);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(c=(i<3?r(c):i>3?r(t,o,c):r(t,o))||c);return i>3&&c&&Object.defineProperty(t,o,c),c},r=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)};Object.defineProperty(t,"__esModule",{value:!0});var i=o(0),c=o(1),a=o(3),l=function(){function e(){}var t,l;return n([i.Input(),r("design:type","function"==typeof(t=void 0!==a.FormConfig&&a.FormConfig)?t:Object)],e.prototype,"formConfig",void 0),n([i.Input(),r("design:type",Object)],e.prototype,"model",void 0),n([i.Input(),r("design:type",Object)],e.prototype,"lookups",void 0),n([i.Input(),r("design:type","function"==typeof(l=void 0!==c.FormGroup&&c.FormGroup)?l:Object)],e.prototype,"formGroup",void 0),e=n([i.Component({selector:"layout-basic",template:o(55)})],e)}();t.BasicLayoutComponent=l},function(e,t){e.exports='
\n
\n

{{formConfig.title}}

\n
\n
\n
'}])}); \ No newline at end of file +!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.ngxForms=t():e.ngxForms=t()}(window,function(){return function(e){var t={};function o(n){if(t[n])return t[n].exports;var r=t[n]={i:n,l:!1,exports:{}};return e[n].call(r.exports,r,r.exports,o),r.l=!0,r.exports}return o.m=e,o.c=t,o.d=function(e,t,n){o.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},o.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},o.t=function(e,t){if(1&t&&(e=o(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(o.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var r in e)o.d(n,r,function(t){return e[t]}.bind(null,r));return n},o.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return o.d(t,"a",t),t},o.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},o.p="",o(o.s=9)}([function(e,t){e.exports=require("@angular/core")},function(e,t){e.exports=require("@angular/common")},function(e,t){e.exports=require("@angular/forms")},function(e,t,o){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=o(0);t.FIELD_DICT_TOKEN=new n.InjectionToken("fields"),t.LAYOUTS_TOKEN=new n.InjectionToken("layouts"),function(e){e.And="and",e.Or="or"}(t.ConditionType||(t.ConditionType={}))},function(e,t,o){"use strict";e.exports=function(e){var t=[];return t.toString=function(){return this.map(function(t){var o=function(e,t){var o=e[1]||"",n=e[3];if(!n)return o;if(t&&"function"==typeof btoa){var r=(c=n,"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(c))))+" */"),i=n.sources.map(function(e){return"/*# sourceURL="+n.sourceRoot+e+" */"});return[o].concat(i).concat([r]).join("\n")}var c;return[o].join("\n")}(t,e);return t[2]?"@media "+t[2]+"{"+o+"}":o}).join("")},t.i=function(e,o){"string"==typeof e&&(e=[[null,e,""]]);for(var n={},r=0;r=0&&f.splice(t,1)}function h(e){var t=document.createElement("style");if(void 0===e.attrs.type&&(e.attrs.type="text/css"),void 0===e.attrs.nonce){var n=function(){0;return o.nc}();n&&(e.attrs.nonce=n)}return y(t,e.attrs),m(e,t),t}function y(e,t){Object.keys(t).forEach(function(o){e.setAttribute(o,t[o])})}function b(e,t){var o,n,r,i;if(t.transform&&e.css){if(!(i=t.transform(e.css)))return function(){};e.css=i}if(t.singleton){var c=s++;o=l||(l=h(t)),n=j.bind(null,o,c,!1),r=j.bind(null,o,c,!0)}else e.sourceMap&&"function"==typeof URL&&"function"==typeof URL.createObjectURL&&"function"==typeof URL.revokeObjectURL&&"function"==typeof Blob&&"function"==typeof btoa?(o=function(e){var t=document.createElement("link");return void 0===e.attrs.type&&(e.attrs.type="text/css"),e.attrs.rel="stylesheet",y(t,e.attrs),m(e,t),t}(t),n=function(e,t,o){var n=o.css,r=o.sourceMap,i=void 0===t.convertToAbsoluteUrls&&r;(t.convertToAbsoluteUrls||i)&&(n=u(n));r&&(n+="\n/*# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(r))))+" */");var c=new Blob([n],{type:"text/css"}),a=e.href;e.href=URL.createObjectURL(c),a&&URL.revokeObjectURL(a)}.bind(null,o,t),r=function(){v(o),o.href&&URL.revokeObjectURL(o.href)}):(o=h(t),n=function(e,t){var o=t.css,n=t.media;n&&e.setAttribute("media",n);if(e.styleSheet)e.styleSheet.cssText=o;else{for(;e.firstChild;)e.removeChild(e.firstChild);e.appendChild(document.createTextNode(o))}}.bind(null,o),r=function(){v(o)});return n(e),function(t){if(t){if(t.css===e.css&&t.media===e.media&&t.sourceMap===e.sourceMap)return;n(e=t)}else r()}}e.exports=function(e,t){if("undefined"!=typeof DEBUG&&DEBUG&&"object"!=typeof document)throw new Error("The style-loader cannot be used in a non-browser environment");(t=t||{}).attrs="object"==typeof t.attrs?t.attrs:{},t.singleton||"boolean"==typeof t.singleton||(t.singleton=c()),t.insertInto||(t.insertInto="head"),t.insertAt||(t.insertAt="bottom");var o=d(e,t);return p(o,t),function(e){for(var n=[],r=0;r=0;a--)(r=e[a])&&(c=(i<3?r(c):i>3?r(t,o,c):r(t,o))||c);return i>3&&c&&Object.defineProperty(t,o,c),c};Object.defineProperty(t,"__esModule",{value:!0});var r=o(0),i=function(){function e(){this.selected=0,this.groups=[],this.watchers=[]}return e.prototype.add=function(e){var t=this;this.groups.push(e),this.groups.length>1&&(e.hidden=!0),this.watchers.forEach(function(e){return e.groups=t.groups})},e.prototype.select=function(e){this.groups.forEach(function(e){e.hidden=!0}),this.groups[e].hidden=!1,this.selected=e},e.prototype.reset=function(){this.groups.forEach(function(e){e.hidden=!1}),this.groups=[],this.selected=0},e.prototype.addWatcher=function(e){this.watchers.push(e)},e.prototype.getAllGroups=function(){return this.groups},e=n([r.Injectable()],e)}();t.FormNavService=i},function(e,t,o){"use strict";var n=this&&this.__decorate||function(e,t,o,n){var r,i=arguments.length,c=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,o):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)c=Reflect.decorate(e,t,o,n);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(c=(i<3?r(c):i>3?r(t,o,c):r(t,o))||c);return i>3&&c&&Object.defineProperty(t,o,c),c},r=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)};Object.defineProperty(t,"__esModule",{value:!0});var i=o(0),c=o(2),a=o(3),l=function(){function e(){}var t,o;return n([i.Input(),r("design:type","function"==typeof(t=void 0!==a.FormConfig&&a.FormConfig)?t:Object)],e.prototype,"formConfig",void 0),n([i.Input(),r("design:type",Object)],e.prototype,"model",void 0),n([i.Input(),r("design:type",Object)],e.prototype,"lookups",void 0),n([i.Input(),r("design:type","function"==typeof(o=void 0!==c.FormGroup&&c.FormGroup)?o:Object)],e.prototype,"formGroup",void 0),e}();t.BaseLayout=l},function(e,t,o){"use strict";var n=this&&this.__decorate||function(e,t,o,n){var r,i=arguments.length,c=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,o):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)c=Reflect.decorate(e,t,o,n);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(c=(i<3?r(c):i>3?r(t,o,c):r(t,o))||c);return i>3&&c&&Object.defineProperty(t,o,c),c};Object.defineProperty(t,"__esModule",{value:!0});var r=o(0),i=o(54),c=o(1),a=function(){function e(){}return e=n([r.NgModule({imports:[c.CommonModule],declarations:[i.DynamicFieldDirective],exports:[i.DynamicFieldDirective],schemas:[r.NO_ERRORS_SCHEMA]})],e)}();t.DynamicFieldModule=a},function(e,t,o){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),o(10),function(e){for(var o in e)t.hasOwnProperty(o)||(t[o]=e[o])}(o(11))},function(e,t){e.exports=require("reflect-metadata")},function(e,t,o){"use strict";var n=this&&this.__decorate||function(e,t,o,n){var r,i=arguments.length,c=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,o):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)c=Reflect.decorate(e,t,o,n);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(c=(i<3?r(c):i>3?r(t,o,c):r(t,o))||c);return i>3&&c&&Object.defineProperty(t,o,c),c};Object.defineProperty(t,"__esModule",{value:!0});var r=o(0),i=o(1),c=o(2),a=o(12),l=o(13),s=o(3),f=o(14),u=o(39),p=o(8),d=function(){function e(){}var t;return t=e,e.forRoot=function(e){var o=e.fieldDictionary,n=e.layoutDictionary;return o&&Object.keys(o).forEach(function(e){return f.defaultInputs[e]=o[e]}),n&&Object.keys(n).forEach(function(e){return u.defaultLayouts[e]=n[e]}),{ngModule:t,providers:[{provide:s.FIELD_DICT_TOKEN,useValue:f.defaultInputs},{provide:s.LAYOUTS_TOKEN,useValue:u.defaultLayouts}]}},e=t=n([r.NgModule({imports:[i.CommonModule,l.BrowserAnimationsModule,c.ReactiveFormsModule,c.FormsModule,u.FormLayoutsModule,f.FormFieldsModule,p.DynamicFieldModule],declarations:[a.DynamicFormDirective],exports:[a.DynamicFormDirective],providers:[{provide:s.FIELD_DICT_TOKEN,useValue:f.defaultInputs},{provide:s.LAYOUTS_TOKEN,useValue:u.defaultLayouts}],schemas:[r.NO_ERRORS_SCHEMA]})],e)}();t.NgxFormModule=d},function(e,t,o){"use strict";var n=this&&this.__decorate||function(e,t,o,n){var r,i=arguments.length,c=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,o):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)c=Reflect.decorate(e,t,o,n);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(c=(i<3?r(c):i>3?r(t,o,c):r(t,o))||c);return i>3&&c&&Object.defineProperty(t,o,c),c},r=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},i=this&&this.__param||function(e,t){return function(o,n){t(o,n,e)}};Object.defineProperty(t,"__esModule",{value:!0});var c=o(0),a=o(2),l=o(3),s=function(){function e(e,t,o){this.componentFactoryResolver=e,this.container=t,this.layouts=o,this.formGroup=new a.FormGroup({})}var t,o,s,f;return Object.defineProperty(e.prototype,"changes",{get:function(){return this.formGroup.valueChanges},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"valid",{get:function(){return this.formGroup.valid},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"value",{get:function(){return this.formGroup.value},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"rawValue",{get:function(){return this.formGroup.getRawValue()},enumerable:!0,configurable:!0}),e.prototype.ngOnInit=function(){if(!this.layouts[this.formConfig.layout])throw new Error('Layout with name "'+this.formConfig.layout+'" was not found');var e=this.layouts[this.formConfig.layout],t=this.componentFactoryResolver.resolveComponentFactory(e),o=this.container.createComponent(t);o.instance.formGroup=this.formGroup,o.instance.formConfig=this.formConfig,o.instance.model=this.model},n([c.Input(),r("design:type","function"==typeof(t=void 0!==l.FormConfig&&l.FormConfig)?t:Object)],e.prototype,"formConfig",void 0),n([c.Input(),r("design:type",Object)],e.prototype,"model",void 0),n([c.Input(),r("design:type",Object)],e.prototype,"lookups",void 0),e=n([c.Directive({exportAs:"dynamicForm",selector:"dynamic-form"}),i(2,c.Inject(l.LAYOUTS_TOKEN)),r("design:paramtypes",["function"==typeof(o=void 0!==c.ComponentFactoryResolver&&c.ComponentFactoryResolver)?o:Object,"function"==typeof(s=void 0!==c.ViewContainerRef&&c.ViewContainerRef)?s:Object,"function"==typeof(f=void 0!==l.LayoutDictionary&&l.LayoutDictionary)?f:Object])],e)}();t.DynamicFormDirective=s},function(e,t){e.exports=require("@angular/platform-browser/animations")},function(e,t,o){"use strict";var n=this&&this.__decorate||function(e,t,o,n){var r,i=arguments.length,c=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,o):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)c=Reflect.decorate(e,t,o,n);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(c=(i<3?r(c):i>3?r(t,o,c):r(t,o))||c);return i>3&&c&&Object.defineProperty(t,o,c),c};Object.defineProperty(t,"__esModule",{value:!0});var r=o(0),i=o(1),c=o(15),a=o(16),l=o(17),s=o(19),f=o(21),u=o(26),p=o(28),d=o(30),m=o(32),v=o(34),h=o(36),y=o(38);t.defaultInputs={text:l.FormInputComponent,select:s.FormSelectComponent,editor:f.FormTextEditorComponent,textarea:d.FormTextareaComponent,hidden:m.FormInputHiddenComponent,radio:p.FormRadioComponent,checkbox:u.FormCheckboxComponent,label:v.FormLabelComponent,date:h.FormDateComponent};var b=function(){function e(){}return e=n([r.NgModule({imports:[i.CommonModule,a.TagInputModule,c.QuillModule,y.NgbModule],declarations:[l.FormInputComponent,s.FormSelectComponent,f.FormTextEditorComponent,d.FormTextareaComponent,m.FormInputHiddenComponent,p.FormRadioComponent,u.FormCheckboxComponent,v.FormLabelComponent,h.FormDateComponent],exports:[l.FormInputComponent,s.FormSelectComponent,f.FormTextEditorComponent,d.FormTextareaComponent,m.FormInputHiddenComponent,p.FormRadioComponent,u.FormCheckboxComponent,v.FormLabelComponent,h.FormDateComponent],entryComponents:[l.FormInputComponent,s.FormSelectComponent,f.FormTextEditorComponent,d.FormTextareaComponent,m.FormInputHiddenComponent,p.FormRadioComponent,u.FormCheckboxComponent,v.FormLabelComponent,h.FormDateComponent],schemas:[r.NO_ERRORS_SCHEMA]})],e)}();t.FormFieldsModule=b},function(e,t){e.exports=require("ngx-quill")},function(e,t){e.exports=require("ngx-chips")},function(e,t,o){"use strict";var n=this&&this.__decorate||function(e,t,o,n){var r,i=arguments.length,c=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,o):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)c=Reflect.decorate(e,t,o,n);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(c=(i<3?r(c):i>3?r(t,o,c):r(t,o))||c);return i>3&&c&&Object.defineProperty(t,o,c),c};Object.defineProperty(t,"__esModule",{value:!0});var r=o(0),i=function(){function e(){}return e=n([r.Component({selector:"form-input",template:o(18)})],e)}();t.FormInputComponent=i},function(e,t){e.exports='
\n \n
\n \n
\n
\n'},function(e,t,o){"use strict";var n=this&&this.__decorate||function(e,t,o,n){var r,i=arguments.length,c=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,o):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)c=Reflect.decorate(e,t,o,n);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(c=(i<3?r(c):i>3?r(t,o,c):r(t,o))||c);return i>3&&c&&Object.defineProperty(t,o,c),c};Object.defineProperty(t,"__esModule",{value:!0});var r=o(0),i=function(){function e(){}return e=n([r.Component({selector:"form-select",template:o(20)})],e)}();t.FormSelectComponent=i},function(e,t){e.exports='
\n \n
\n \n
\n
'},function(e,t,o){"use strict";var n=this&&this.__decorate||function(e,t,o,n){var r,i=arguments.length,c=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,o):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)c=Reflect.decorate(e,t,o,n);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(c=(i<3?r(c):i>3?r(t,o,c):r(t,o))||c);return i>3&&c&&Object.defineProperty(t,o,c),c};Object.defineProperty(t,"__esModule",{value:!0});var r=o(0),i=function(){function e(){this.quillToolbar={toolbar:["bold","italic","underline","strike",{header:1},{header:2},{list:"ordered"},{list:"bullet"},"blockquote","code-block","link"]}}return e=n([r.Component({selector:"form-text-editor",template:o(22),styles:[o(23).toString()]})],e)}();t.FormTextEditorComponent=i},function(e,t){e.exports='
\n \n
\n \n
\n
'},function(e,t,o){var n=o(24);"string"==typeof n&&(n=[[e.i,n,""]]);var r={hmr:!0,transform:void 0,insertInto:void 0};o(5)(n,r);n.locals&&(e.exports=n.locals)},function(e,t,o){(e.exports=o(4)(!1)).push([e.i,"form-text-editor .editor-container {\n margin-bottom: 40px; }\n\nform-text-editor .ql-container.ql-disabled {\n background-color: #e9ecef; }\n",""])},function(e,t){e.exports=function(e){var t="undefined"!=typeof window&&window.location;if(!t)throw new Error("fixUrls requires window.location");if(!e||"string"!=typeof e)return e;var o=t.protocol+"//"+t.host,n=o+t.pathname.replace(/\/[^\/]*$/,"/");return e.replace(/url\s*\(((?:[^)(]|\((?:[^)(]+|\([^)(]*\))*\))*)\)/gi,function(e,t){var r,i=t.trim().replace(/^"(.*)"$/,function(e,t){return t}).replace(/^'(.*)'$/,function(e,t){return t});return/^(#|data:|http:\/\/|https:\/\/|file:\/\/\/|\s*$)/i.test(i)?e:(r=0===i.indexOf("//")?i:0===i.indexOf("/")?o+i:n+i.replace(/^\.\//,""),"url("+JSON.stringify(r)+")")})}},function(e,t,o){"use strict";var n=this&&this.__decorate||function(e,t,o,n){var r,i=arguments.length,c=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,o):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)c=Reflect.decorate(e,t,o,n);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(c=(i<3?r(c):i>3?r(t,o,c):r(t,o))||c);return i>3&&c&&Object.defineProperty(t,o,c),c};Object.defineProperty(t,"__esModule",{value:!0});var r=o(0),i=function(){function e(){}return e=n([r.Component({selector:"form-checkbox",template:o(27)})],e)}();t.FormCheckboxComponent=i},function(e,t){e.exports='
\n \n
\n \n
\n
'},function(e,t,o){"use strict";var n=this&&this.__decorate||function(e,t,o,n){var r,i=arguments.length,c=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,o):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)c=Reflect.decorate(e,t,o,n);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(c=(i<3?r(c):i>3?r(t,o,c):r(t,o))||c);return i>3&&c&&Object.defineProperty(t,o,c),c};Object.defineProperty(t,"__esModule",{value:!0});var r=o(0),i=function(){function e(){}return e=n([r.Component({selector:"form-radio",template:o(29)})],e)}();t.FormRadioComponent=i},function(e,t){e.exports='
\n \n
\n \n
\n
'},function(e,t,o){"use strict";var n=this&&this.__decorate||function(e,t,o,n){var r,i=arguments.length,c=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,o):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)c=Reflect.decorate(e,t,o,n);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(c=(i<3?r(c):i>3?r(t,o,c):r(t,o))||c);return i>3&&c&&Object.defineProperty(t,o,c),c};Object.defineProperty(t,"__esModule",{value:!0});var r=o(0),i=function(){function e(){}return e=n([r.Component({selector:"form-textarea",template:o(31)})],e)}();t.FormTextareaComponent=i},function(e,t){e.exports='
\n \n
\n \n
\n
'},function(e,t,o){"use strict";var n=this&&this.__decorate||function(e,t,o,n){var r,i=arguments.length,c=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,o):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)c=Reflect.decorate(e,t,o,n);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(c=(i<3?r(c):i>3?r(t,o,c):r(t,o))||c);return i>3&&c&&Object.defineProperty(t,o,c),c};Object.defineProperty(t,"__esModule",{value:!0});var r=o(0),i=function(){function e(){}return e=n([r.Component({selector:"form-hidden",template:o(33)})],e)}();t.FormInputHiddenComponent=i},function(e,t){e.exports='\n \n\n'},function(e,t,o){"use strict";var n=this&&this.__decorate||function(e,t,o,n){var r,i=arguments.length,c=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,o):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)c=Reflect.decorate(e,t,o,n);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(c=(i<3?r(c):i>3?r(t,o,c):r(t,o))||c);return i>3&&c&&Object.defineProperty(t,o,c),c};Object.defineProperty(t,"__esModule",{value:!0});var r=o(0),i=function(){function e(){}return e=n([r.Component({selector:"form-label",template:o(35)})],e)}();t.FormLabelComponent=i},function(e,t){e.exports='
\n \n
\n {{group.value[this.field.name]}}\n
\n
'},function(e,t,o){"use strict";var n=this&&this.__decorate||function(e,t,o,n){var r,i=arguments.length,c=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,o):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)c=Reflect.decorate(e,t,o,n);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(c=(i<3?r(c):i>3?r(t,o,c):r(t,o))||c);return i>3&&c&&Object.defineProperty(t,o,c),c};Object.defineProperty(t,"__esModule",{value:!0});var r=o(0),i=function(){function e(){}return e=n([r.Component({selector:"form-date",template:o(37)})],e)}();t.FormDateComponent=i},function(e,t){e.exports='
\n \n
\n \n
\n
\n'},function(e,t){e.exports=require("@ng-bootstrap/ng-bootstrap")},function(e,t,o){"use strict";var n=this&&this.__decorate||function(e,t,o,n){var r,i=arguments.length,c=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,o):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)c=Reflect.decorate(e,t,o,n);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(c=(i<3?r(c):i>3?r(t,o,c):r(t,o))||c);return i>3&&c&&Object.defineProperty(t,o,c),c};Object.defineProperty(t,"__esModule",{value:!0});var r=o(0),i=o(1),c=o(40),a=o(44),l=o(50),s=o(8),f=o(55);t.defaultLayouts={groups:c.GroupComponent,basic:f.BasicLayoutComponent};var u=function(){function e(){}return e=n([r.NgModule({imports:[i.CommonModule,a.FormNavModule,s.DynamicFieldModule],declarations:[c.GroupComponent,l.PanelComponent,f.BasicLayoutComponent],entryComponents:[c.GroupComponent,l.PanelComponent,f.BasicLayoutComponent],schemas:[r.NO_ERRORS_SCHEMA]})],e)}();t.FormLayoutsModule=u},function(e,t,o){"use strict";var n,r=this&&this.__extends||(n=function(e,t){return(n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var o in t)t.hasOwnProperty(o)&&(e[o]=t[o])})(e,t)},function(e,t){function o(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(o.prototype=t.prototype,new o)}),i=this&&this.__decorate||function(e,t,o,n){var r,i=arguments.length,c=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,o):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)c=Reflect.decorate(e,t,o,n);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(c=(i<3?r(c):i>3?r(t,o,c):r(t,o))||c);return i>3&&c&&Object.defineProperty(t,o,c),c};Object.defineProperty(t,"__esModule",{value:!0});var c=o(0),a=o(3),l=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return r(t,e),t.prototype.ngOnInit=function(){var e=this,t=[];this.formConfig.form.forEach(function(o){o.fields&&(t=t.concat(o.fields)),o.panels&&o.panels.forEach(function(e){e.fields&&(t=t.concat(e.fields))}),o.enableWhen&&!e.checkRules(o,e.model)&&t.forEach(function(e){return e.disabled=!0})}),t.forEach(function(t){if(t.lookup&&e.lookups){var o="string"==typeof t.lookup?{name:t.lookup,extract:null}:t.lookup;t.options=o.extract?e.lookups[o.name].map(function(e){return e[o.extract]}):e.lookups[o.name]}else;})},t.prototype.checkRules=function(e,t){var o=!0;if(e.enableWhen){var n=e.enableWhen;if(!n.rules.length)return!0;var r=function(o){var n,r=t[o.field]||(n=e.fields.find(function(e){return e.name===o.field}))&&n.value||"";return Array.isArray(o.equals)||(o.equals=[o.equals]),o.equals.indexOf(r)>-1};return n.type!==a.ConditionType.Or&&n.type||(o=n.rules.some(r)),n.type===a.ConditionType.And&&(o=n.rules.every(r)),o}},t=i([c.Component({selector:"layout-group-group",template:o(41),styles:[o(42).toString()]})],t)}(o(7).BaseLayout);t.GroupComponent=l},function(e,t){e.exports='
\n
\n \n
\n
\n
\n\n \n \n \n\n \n \n \n
\n
\n
'},function(e,t,o){var n=o(43);"string"==typeof n&&(n=[[e.i,n,""]]);var r={hmr:!0,transform:void 0,insertInto:void 0};o(5)(n,r);n.locals&&(e.exports=n.locals)},function(e,t,o){(e.exports=o(4)(!1)).push([e.i,".required-icon {\n color: red; }\n",""])},function(e,t,o){"use strict";var n=this&&this.__decorate||function(e,t,o,n){var r,i=arguments.length,c=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,o):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)c=Reflect.decorate(e,t,o,n);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(c=(i<3?r(c):i>3?r(t,o,c):r(t,o))||c);return i>3&&c&&Object.defineProperty(t,o,c),c};Object.defineProperty(t,"__esModule",{value:!0});var r=o(0),i=o(45),c=o(49),a=o(6),l=o(1),s=function(){function e(){}return e=n([r.NgModule({imports:[l.CommonModule],declarations:[i.FormNavComponent,c.NavDirective],exports:[i.FormNavComponent,c.NavDirective],providers:[a.FormNavService],schemas:[r.NO_ERRORS_SCHEMA]})],e)}();t.FormNavModule=s},function(e,t,o){"use strict";var n=this&&this.__decorate||function(e,t,o,n){var r,i=arguments.length,c=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,o):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)c=Reflect.decorate(e,t,o,n);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(c=(i<3?r(c):i>3?r(t,o,c):r(t,o))||c);return i>3&&c&&Object.defineProperty(t,o,c),c},r=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)};Object.defineProperty(t,"__esModule",{value:!0});var i=o(0),c=o(6),a=o(2),l=function(){function e(e){this.ns=e,this.ref={groups:[]},this.subscriptions=[],e.addWatcher(this.ref)}var t,l;return e.prototype.ngAfterContentInit=function(){for(var e=this,t=(Object.keys(this.form.controls),function(t){var o=[];t.fields&&(o=o.concat(t.fields)),t.panels&&t.panels.forEach(function(e){e.fields&&(o=o.concat(e.fields))}),t.controls=o.filter(function(e){return e.required}).map(function(t){return e.form.get(t.name)}),0===t.controls.length?t.valid=!0:t.controls.forEach(function(o){e.subscriptions.push(o.statusChanges.subscribe(function(){t.valid=t.controls.every(function(e){return e.valid})}))})}),o=0,n=this.ref.groups;othis.ref.groups.length-2},e.prototype.ngOnDestroy=function(){this.subscriptions.forEach(function(e){return e.unsubscribe()}),this.ns.reset()},n([i.Input(),r("design:type","function"==typeof(t=void 0!==a.FormGroup&&a.FormGroup)?t:Object)],e.prototype,"form",void 0),e=n([i.Component({selector:"form-nav",template:o(46),styles:[o(47).toString()]}),r("design:paramtypes",["function"==typeof(l=void 0!==c.FormNavService&&c.FormNavService)?l:Object])],e)}();t.FormNavComponent=l},function(e,t){e.exports='\n
\n
\n
\n \n \n
\n
\n
'},function(e,t,o){var n=o(48);"string"==typeof n&&(n=[[e.i,n,""]]);var r={hmr:!0,transform:void 0,insertInto:void 0};o(5)(n,r);n.locals&&(e.exports=n.locals)},function(e,t,o){(e.exports=o(4)(!1)).push([e.i,"",""])},function(e,t,o){"use strict";var n=this&&this.__decorate||function(e,t,o,n){var r,i=arguments.length,c=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,o):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)c=Reflect.decorate(e,t,o,n);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(c=(i<3?r(c):i>3?r(t,o,c):r(t,o))||c);return i>3&&c&&Object.defineProperty(t,o,c),c},r=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)};Object.defineProperty(t,"__esModule",{value:!0});var i=o(0),c=o(6),a=function(){function e(e){this.navService=e}var t;return e.prototype.ngOnInit=function(){this.panel.static||this.navService.add(this.panel)},n([i.Input("navTab"),r("design:type",Object)],e.prototype,"panel",void 0),e=n([i.Directive({selector:"[navTab]"}),r("design:paramtypes",["function"==typeof(t=void 0!==c.FormNavService&&c.FormNavService)?t:Object])],e)}();t.NavDirective=a},function(e,t,o){"use strict";var n=this&&this.__decorate||function(e,t,o,n){var r,i=arguments.length,c=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,o):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)c=Reflect.decorate(e,t,o,n);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(c=(i<3?r(c):i>3?r(t,o,c):r(t,o))||c);return i>3&&c&&Object.defineProperty(t,o,c),c},r=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)};Object.defineProperty(t,"__esModule",{value:!0});var i=o(0),c=function(){function e(){}return n([i.Input(),r("design:type",Object)],e.prototype,"panelConfig",void 0),n([i.Input(),r("design:type",Object)],e.prototype,"group",void 0),n([i.Input(),r("design:type",Object)],e.prototype,"model",void 0),e=n([i.Component({selector:"layout-group-panel",template:o(51),styles:[o(52).toString()]})],e)}();t.PanelComponent=c},function(e,t){e.exports='
\n
\n {{panelConfig.label}}\n
\n
\n
\n
\n
'},function(e,t,o){var n=o(53);"string"==typeof n&&(n=[[e.i,n,""]]);var r={hmr:!0,transform:void 0,insertInto:void 0};o(5)(n,r);n.locals&&(e.exports=n.locals)},function(e,t,o){(e.exports=o(4)(!1)).push([e.i,"layout-group-panel .panel {\n margin-bottom: 20px;\n background-color: #fff;\n border-radius: 4px;\n border: 1px solid #ddd;\n -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);\n box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05); }\n layout-group-panel .panel .panel-heading {\n color: #333;\n background-color: #f5f5f5;\n padding: 10px 15px;\n border-bottom: 1px solid #ddd;\n border-top-left-radius: 3px;\n border-top-right-radius: 3px; }\n layout-group-panel .panel .panel-body {\n padding: 15px; }\n",""])},function(e,t,o){"use strict";var n=this&&this.__decorate||function(e,t,o,n){var r,i=arguments.length,c=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,o):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)c=Reflect.decorate(e,t,o,n);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(c=(i<3?r(c):i>3?r(t,o,c):r(t,o))||c);return i>3&&c&&Object.defineProperty(t,o,c),c},r=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},i=this&&this.__param||function(e,t){return function(o,n){t(o,n,e)}};Object.defineProperty(t,"__esModule",{value:!0});var c=o(0),a=o(2),l=o(3),s=function(){function e(e,t,o,n){this.resolver=e,this.container=t,this.fb=o,this.inputs=n}var t,o,s,f,u,p;return e.prototype.ngOnInit=function(){if(!this.group)throw new Error("group is not set");if(!this.inputs[this.field.type])throw new Error('Input with type "'+this.field.type+'" was not found');var e=this.inputs[this.field.type],t=this.resolver.resolveComponentFactory(e);this.component=this.container.createComponent(t),this.component.instance.field=this.field,this.component.instance.group=this.group,this.component.instance.model=this.model,this.group.addControl(this.field.name,this.createControl(this.field)),this.model&&this.model[this.field.name]&&this.group.get(this.field.name).patchValue(this.model[this.field.name])},e.prototype.createControl=function(e){var t=e.disabled,o=e.required,n=e.minLength,r=e.maxLength,i=e.email,c=e.min,l=e.max,s=e.pattern,f=e.value,u=[];return void 0!==o&&o&&u.push(a.Validators.required),void 0!==n&&u.push(a.Validators.minLength(n)),void 0!==r&&u.push(a.Validators.maxLength(r)),void 0!==i&&u.push(a.Validators.email),void 0!==c&&u.push(a.Validators.min(c)),void 0!==l&&u.push(a.Validators.max(l)),void 0!==s&&u.push(a.Validators.pattern(s)),this.fb.control({disabled:t,value:f},u)},e.prototype.ngOnDestroy=function(){this.component&&this.component.destroy()},n([c.Input(),r("design:type","function"==typeof(t=void 0!==l.FieldConfig&&l.FieldConfig)?t:Object)],e.prototype,"field",void 0),n([c.Input(),r("design:type","function"==typeof(o=void 0!==a.FormGroup&&a.FormGroup)?o:Object)],e.prototype,"group",void 0),n([c.Input(),r("design:type",Object)],e.prototype,"model",void 0),e=n([c.Directive({selector:"[dynamicField]"}),i(3,c.Inject(l.FIELD_DICT_TOKEN)),r("design:paramtypes",["function"==typeof(s=void 0!==c.ComponentFactoryResolver&&c.ComponentFactoryResolver)?s:Object,"function"==typeof(f=void 0!==c.ViewContainerRef&&c.ViewContainerRef)?f:Object,"function"==typeof(u=void 0!==a.FormBuilder&&a.FormBuilder)?u:Object,"function"==typeof(p=void 0!==l.FieldDictionary&&l.FieldDictionary)?p:Object])],e)}();t.DynamicFieldDirective=s},function(e,t,o){"use strict";var n,r=this&&this.__extends||(n=function(e,t){return(n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var o in t)t.hasOwnProperty(o)&&(e[o]=t[o])})(e,t)},function(e,t){function o(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(o.prototype=t.prototype,new o)}),i=this&&this.__decorate||function(e,t,o,n){var r,i=arguments.length,c=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,o):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)c=Reflect.decorate(e,t,o,n);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(c=(i<3?r(c):i>3?r(t,o,c):r(t,o))||c);return i>3&&c&&Object.defineProperty(t,o,c),c};Object.defineProperty(t,"__esModule",{value:!0});var c=o(0),a=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return r(t,e),t=i([c.Component({selector:"layout-basic",template:o(56)})],t)}(o(7).BaseLayout);t.BasicLayoutComponent=a},function(e,t){e.exports='
\n
\n

{{formConfig.title}}

\n
\n
\n
'}])}); \ No newline at end of file diff --git a/index.d.ts b/index.d.ts index e9fea41..de5798a 100644 --- a/index.d.ts +++ b/index.d.ts @@ -1,3 +1,4 @@ export { FieldConfig, Field } from "./src/types"; export { NgxFormModule } from "./src/app/app.module"; -export { DynamicFormDirective } from "./src/app/dynamic-form/dynamic-form.component"; \ No newline at end of file +export { DynamicFormDirective } from "./src/app/dynamic-form/dynamic-form.component"; +export { BaseLayout } from './src/app/layouts/base-layout'; \ No newline at end of file diff --git a/src/app/layouts/base-layout.ts b/src/app/layouts/base-layout.ts new file mode 100644 index 0000000..f6313c9 --- /dev/null +++ b/src/app/layouts/base-layout.ts @@ -0,0 +1,10 @@ +import { Input } from '@angular/core'; +import { FormGroup } from '@angular/forms'; +import { FormConfig, Layout } from '../../types'; + +export class BaseLayout implements Layout { + @Input() formConfig: FormConfig; + @Input() model: any; + @Input() lookups: object; + @Input() formGroup: FormGroup; +} diff --git a/src/app/layouts/basic/basic-layout.component.ts b/src/app/layouts/basic/basic-layout.component.ts index ae97f4b..4116be0 100644 --- a/src/app/layouts/basic/basic-layout.component.ts +++ b/src/app/layouts/basic/basic-layout.component.ts @@ -1,14 +1,8 @@ -import { Component, Input } from '@angular/core'; -import { FormGroup } from '@angular/forms'; -import { FormConfig, Layout } from '../../../types'; // todo: move specific types here +import { Component } from '@angular/core'; +import { BaseLayout } from '../base-layout'; @Component({ selector: 'layout-basic', template: require('./basic-layout.component.html') }) -export class BasicLayoutComponent implements Layout { - @Input() formConfig: FormConfig; - @Input() model: any; - @Input() lookups: object; - @Input() formGroup: FormGroup; -} +export class BasicLayoutComponent extends BaseLayout { } diff --git a/src/app/layouts/groups/group/group.component.ts b/src/app/layouts/groups/group/group.component.ts index 8e3fc69..0a3313a 100644 --- a/src/app/layouts/groups/group/group.component.ts +++ b/src/app/layouts/groups/group/group.component.ts @@ -1,17 +1,13 @@ -import { Component, Input, OnInit } from '@angular/core'; -import { FormGroup } from '@angular/forms'; -import { FieldConfig, ILookup, FormConfig, PanelGroup, ConditionType, Layout } from '../../../../types'; // todo: move specific types here +import { Component, OnInit } from '@angular/core'; +import { FieldConfig, ILookup, PanelGroup, ConditionType } from '../../../../types'; // todo: move specific types here +import { BaseLayout } from '../../base-layout'; @Component({ selector: 'layout-group-group', template: require('./group.component.html'), styles: [require('./group.component.scss').toString()] }) -export class GroupComponent implements OnInit, Layout { - @Input() formConfig: FormConfig; - @Input() model: any; - @Input() lookups: object; - @Input() formGroup: FormGroup; +export class GroupComponent extends BaseLayout implements OnInit { public ngOnInit(): void { let fields: FieldConfig[] = [];