UNPKG

95.7 kBSource Map (JSON)View Raw
1{"version":3,"file":"soushians-form.js.map","sources":["ng://@soushians/form/lib/models/add-form.api-model.ts","ng://@soushians/form/lib/models/edit-form.api-model.ts","ng://@soushians/form/lib/models/form-list.api-model.ts","ng://@soushians/form/lib/models/form-field-validator.model.ts","ng://@soushians/form/lib/models/field-config.model.ts","ng://@soushians/form/lib/models/form-schema.model.ts","ng://@soushians/form/lib/form.config.ts","ng://@soushians/form/lib/services/form-configuration.service.ts","ng://@soushians/form/lib/services/form.service.ts","ng://@soushians/form/lib/view/form-controls/select/select.component.ts","ng://@soushians/form/lib/view/form-controls/checkbox/checkbox.component.ts","ng://@soushians/form/lib/view/form-controls/email/email.component.ts","ng://@soushians/form/lib/view/form-controls/color/color.component.ts","ng://@soushians/form/lib/view/form-controls/table/table.component.ts","ng://@soushians/form/lib/view/form-controls/number/number.component.ts","ng://@soushians/form/lib/view/form-controls/text/text.component.ts","ng://@soushians/form/lib/list/list.actions.ts","ng://@soushians/form/lib/view/form-controls/date/date.component.ts","ng://@soushians/form/lib/view/form-controls/file/file.component.ts","ng://@soushians/form/lib/services/form-captcha.service.ts","ng://@soushians/form/lib/models/captcha.model.ts","ng://@soushians/form/lib/view/form-controls/form-captcha/form-captcha.component.ts","ng://@soushians/form/lib/view/form-view/form-view.component.ts","ng://@soushians/form/lib/list/list.reducers.ts","ng://@soushians/form/lib/main-container/main-container.reducers.ts","ng://@soushians/form/lib/add/form-group/form-group.component.ts","ng://@soushians/form/lib/add/form-array/form-array.component.ts","ng://@soushians/form/lib/add/form-control/form-control.component.ts","ng://@soushians/form/lib/edit/edit-form.actions.ts","ng://@soushians/form/lib/add/add-form.actions.ts","ng://@soushians/form/lib/add/add-form-container/add-form-container.component.ts","ng://@soushians/form/lib/edit/edit-form-container/edit-form-container.component.ts","ng://@soushians/form/lib/add/add-form/add-form.component.ts","ng://@soushians/form/lib/edit/edit-form/edit-form.component.ts","ng://@soushians/form/lib/list/form-list-container/form-list.container.component.ts","ng://@soushians/form/lib/list/form-list/form-list.component.ts","ng://@soushians/form/lib/main-container/main-container.component/main-container.component.ts","ng://@soushians/form/lib/add/add-form.effects.ts","ng://@soushians/form/lib/list/list.effects.ts","ng://@soushians/form/lib/edit/edit-form.effects.ts","ng://@soushians/form/lib/form-routing.module.ts","ng://@soushians/form/lib/add/captcha.actions.ts","ng://@soushians/form/lib/add/captcha.effects.ts","ng://@soushians/form/lib/form.module.ts"],"sourcesContent":["import { Injectable } from \"@angular/core\";\r\nimport { HttpRequestBaseModel } from \"@soushians/shared\";\r\nimport { FormGroup, FormControl, Validators } from \"@angular/forms\";\r\nimport { FormSchemaModel } from \"../models\";\r\n\r\nexport namespace AddFormApiModel {\r\n\texport class Request implements HttpRequestBaseModel<Request> {\r\n\t\t_id: string;\r\n\t\tname: string;\r\n\t\tform: any[];\r\n\t\tevents: any[];\r\n\t\tconstructor(initValue = {} as AddFormApiModel.Request) {\r\n\t\t\tObject.keys(initValue).forEach(key => (this[key] = initValue[key]));\r\n\t\t}\r\n\r\n\t\tgetRequestBody() {\r\n\t\t\treturn {\r\n\t\t\t\tname: this.name,\r\n\t\t\t\tform: this.form,\r\n\t\t\t\tevents: this.events\r\n\t\t\t};\r\n\t\t}\r\n\t\tstatic get formGroup() {\r\n\t\t\treturn new FormGroup({\r\n\t\t\t\t_id: new FormControl(\"\", [ Validators.required ]),\r\n\t\t\t\tname: new FormControl(\"\", [ Validators.required ]),\r\n\t\t\t\ttitle: new FormControl(\"\", [ Validators.required ]),\r\n\t\t\t\tform: new FormControl({}),\r\n\t\t\t\tevents: new FormGroup({\r\n\t\t\t\t\taccept: new FormGroup({\r\n\t\t\t\t\t\tshow: new FormControl(false),\r\n\t\t\t\t\t\ttext: new FormControl(\"ثبت\")\r\n\t\t\t\t\t}),\r\n\t\t\t\t\tcancel: new FormGroup({\r\n\t\t\t\t\t\tshow: new FormControl(false),\r\n\t\t\t\t\t\ttext: new FormControl(\"انصراف\")\r\n\t\t\t\t\t})\r\n\t\t\t\t})\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\texport class Response {\r\n\t\tResult: FormSchemaModel;\r\n\t\tconstructor() {}\r\n\t}\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { HttpRequestBaseModel } from \"@soushians/shared\";\r\nimport { FormGroup, FormControl, Validators } from \"@angular/forms\";\r\nimport { FormSchemaModel } from \"../models\";\r\n\r\nexport namespace EditFormApiModel {\r\n\texport class Request implements HttpRequestBaseModel<Request> {\r\n\t\t_id: string;\r\n\t\tname: string;\r\n\t\tform: any[];\r\n\t\tevents: any[];\r\n\t\tconstructor(initValue = {} as EditFormApiModel.Request) {\r\n\t\t\tObject.keys(initValue).forEach(key => (this[key] = initValue[key]));\r\n\t\t}\r\n\r\n\t\tgetRequestBody() {\r\n\t\t\treturn {\r\n\t\t\t\t_id: this._id,\r\n\t\t\t\tname: this.name,\r\n\t\t\t\tform: this.form,\r\n\t\t\t\tevents: this.events\r\n\t\t\t};\r\n\t\t}\r\n\t\tstatic get formGroup() {\r\n\t\t\treturn new FormGroup({\r\n\t\t\t\t_id: new FormControl(\"\", [ Validators.required ]),\r\n\t\t\t\tname: new FormControl(\"\", [ Validators.required ]),\r\n\t\t\t\tform: new FormControl({}),\r\n\t\t\t\tevents: new FormGroup({\r\n\t\t\t\t\taccept: new FormGroup({\r\n\t\t\t\t\t\tshow: new FormControl(false),\r\n\t\t\t\t\t\ttext: new FormControl(\"ثبت\")\r\n\t\t\t\t\t}),\r\n\t\t\t\t\tcancel: new FormGroup({\r\n\t\t\t\t\t\tshow: new FormControl(false),\r\n\t\t\t\t\t\ttext: new FormControl(\"انصراف\")\r\n\t\t\t\t\t})\r\n\t\t\t\t})\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\texport class Response {\r\n\t\tResult: FormSchemaModel;\r\n\t\tconstructor() {}\r\n\t}\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { HttpRequestBaseModel } from \"@soushians/shared\";\r\nimport { FormGroup, FormControl, Validators } from \"@angular/forms\";\r\nimport { FormSchemaModel } from \"../models\";\r\n\r\nexport namespace FormListApiModel {\r\n\texport class Request implements HttpRequestBaseModel<Request> {\r\n\t\tName: string;\r\n\t\tControls: object[];\r\n\t\tconstructor(initValue = {} as FormListApiModel.Request) {\r\n\t\t\tObject.keys(initValue).forEach((key) => (this[key] = initValue[key]));\r\n\t\t}\r\n\r\n\t\tgetRequestBody() {\r\n\t\t\treturn {\r\n\t\t\t\tName: this.Name,\r\n\t\t\t\tControls: this.Controls\r\n\t\t\t};\r\n\t\t}\r\n\t\tstatic get formGroup() {\r\n\t\t\treturn new FormGroup({\r\n\t\t\t\tName: new FormControl(\"\", [ Validators.required ]),\r\n\t\t\t\tControls: new FormGroup({})\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\texport class Response {\r\n\t\tResult: FormSchemaModel[];\r\n\t\tconstructor() {}\r\n\t}\r\n}\r\n","export interface validation {\r\n\tactive: boolean;\r\n\tmessage: string;\r\n\tvalue?: any;\r\n}\r\nexport class Validator {\r\n\trequired: validation;\r\n\tminlength: validation;\r\n\temail: validation;\r\n\r\n\tconstructor() {\r\n\t\tthis.required = {\r\n\t\t\tactive: false,\r\n\t\t\tmessage: \"این فیلد الزامی است\"\r\n\t\t};\r\n\t\tthis.minlength = {\r\n\t\t\tactive: false,\r\n\t\t\tmessage: \"حداقل تعداد کارکترها\",\r\n\t\t\tvalue: 5\r\n\t\t};\r\n\t\tthis.email = {\r\n\t\t\tactive: false,\r\n\t\t\tmessage: \"لطفا ایمیل صحیح وارد نمایید\"\r\n\t\t};\r\n\t}\r\n}\r\n","import { Validator } from \"./form-field-validator.model\";\r\n\r\nexport class FieldConfig {\r\n\tid: number;\r\n\ttype: \"group\" | \"array\" | \"control\";\r\n\tname: string;\r\n\tsubtype: string;\r\n\tdisabled?: boolean;\r\n\ttitle: string;\r\n\tparentType?: \"array\" | \"group\";\r\n\tformGroupPath?: string;\r\n\tpath?: string;\r\n\tinputType: \"select\" | \"text\" | \"number\" | \"email\" | \"color\" | \"checkbox\" | \"table\";\r\n\tvalue?: any;\r\n\torder?: number;\r\n\twidth?: number;\r\n\toptions: {\r\n\t\t[key: string]: string | number | boolean;\r\n\t}[];\r\n\tdataEndpoint?: string;\r\n\toptionsEndpoint: string;\r\n\tfields?: FieldConfig[];\r\n\tvalidator: Validator;\r\n\tconstructor(type: \"group\" | \"array\" | \"control\") {\r\n\t\tthis.type = type;\r\n\t\tif (type != \"control\") this.fields = [];\r\n\t\tthis.width = 3;\r\n\t\tthis.validator = new Validator();\r\n\t}\r\n}\r\n","import { FieldConfig } from \"./field-config.model\";\r\n\r\nexport class FormSchemaModel {\r\n\t_id: string;\r\n\tname: string;\r\n\tdescription: string;\r\n\tform: FieldConfig;\r\n\tevents = {\r\n\t\taccept: {\r\n\t\t\tshow: false,\r\n\t\t\ttext: \"ثبت\"\r\n\t\t},\r\n\t\tcancel: {\r\n\t\t\tshow: false,\r\n\t\t\ttext: \"انصراف\"\r\n\t\t}\r\n\t};\r\n\r\n\tconstructor() {\r\n\t\tthis.form = new FieldConfig(\"group\");\r\n\t}\r\n\tinit() {\r\n\t\tthis._id = (Math.random() * 10).toString();\r\n\t}\r\n}\r\n","import { InjectionToken } from \"@angular/core\";\r\n\r\nexport interface FormModuleConfig {\r\n\tenv?: {\r\n\t\tproduction: boolean;\r\n\t\tfrontend_server: string;\r\n\t\tserver: string;\r\n\t};\r\n\tendpoints?: {\r\n\t\taddForm: string;\r\n\t\teditForm: string;\r\n\t\tgetForm: string;\r\n\t\tgetList: string;\r\n\t\tdeleteForm: string;\r\n\t\tcaptchaUrl: string;\r\n\t};\r\n}\r\nexport const MODULE_DEFAULT_CONFIG: FormModuleConfig = {\r\n\tenv: {\r\n\t\tproduction: false,\r\n\t\tfrontend_server: \"frontend/server/did/not/set\",\r\n\t\tserver: \"server/did/not/set\"\r\n\t},\r\n\tendpoints: {\r\n\t\taddForm: \"\",\r\n\t\teditForm: \"\",\r\n\t\tgetForm: \"\",\r\n\t\tgetList: \"\",\r\n\t\tdeleteForm: \"\",\r\n\t\tcaptchaUrl: \"\"\r\n\r\n\t},\r\n};\r\nexport const MODULE_CONFIG_TOKEN = new InjectionToken<FormModuleConfig>(\"FormModuleConfig\");\r\n","import { BehaviorSubject } from \"rxjs\";\r\nimport { Inject, Injectable } from \"@angular/core\";\r\nimport { Store } from \"@ngrx/store\";\r\n\r\nimport { getFormModuleConfig } from \"@soushians/config\";\r\n\r\nimport { FormModuleConfig } from \"../form.config\";\r\nimport { MODULE_CONFIG_TOKEN, MODULE_DEFAULT_CONFIG } from \"../form.config\";\r\nimport { MainContainerState } from \"../main-container\";\r\n\r\n@Injectable({\r\n\tprovidedIn: \"root\"\r\n})\r\nexport class FormConfigurationService {\r\n\tprivate _config: FormModuleConfig;\r\n\tget config() {\r\n\t\treturn this._config;\r\n\t}\r\n\tconfig$ = new BehaviorSubject(MODULE_DEFAULT_CONFIG);\r\n\r\n\tconstructor(@Inject(MODULE_CONFIG_TOKEN) configFile, private store: Store<MainContainerState>) {\r\n\t\tthis._config = Object.assign({}, MODULE_DEFAULT_CONFIG, configFile);\r\n\t\tthis.config$.next(this._config);\r\n\t\tthis.store.select(getFormModuleConfig).subscribe(userConfig => {\r\n\t\t\tif (!userConfig) return;\r\n\t\t\tthis._config = Object.assign({}, this._config, userConfig.Config);\r\n\t\t\tthis.config$.next(this._config);\r\n\t\t});\r\n\t}\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { HttpClient } from \"@angular/common/http\";\r\nimport { Observable } from \"rxjs/Rx\";\r\nimport { Store } from \"@ngrx/store\";\r\nimport { BehaviorSubject } from \"rxjs/BehaviorSubject\";\r\nimport { filter, map } from \"rxjs/operators\";\r\n\r\nimport { stringTemplate } from \"@soushians/shared\";\r\n\r\nimport { FormSchemaModel, AddFormApiModel, EditFormApiModel, FormListApiModel } from \"../models\";\r\nimport { FormConfigurationService } from \"./form-configuration.service\";\r\n\r\nimport { MainContainerState } from \"../main-container/main-container.reducers\";\r\n\r\n@Injectable({\r\n\tprovidedIn: \"root\"\r\n})\r\nexport class FormService {\r\n\tconstructor(\r\n\t\tprivate http: HttpClient,\r\n\t\tprivate store: Store<MainContainerState>,\r\n\t\tprivate configurationService: FormConfigurationService\r\n\t) {}\r\n\r\n\tadd(data: AddFormApiModel.Request): Observable<FormSchemaModel> {\r\n\t\tconst model = new AddFormApiModel.Request(data);\r\n\t\treturn this.configurationService.config$\r\n\t\t\t.filter((config) => config.endpoints.addForm != \"\")\r\n\t\t\t.take(1)\r\n\t\t\t.switchMap((config) =>\r\n\t\t\t\tthis.http.post(config.env.frontend_server + config.endpoints.addForm, model.getRequestBody())\r\n\t\t\t)\r\n\t\t\t.map((response: AddFormApiModel.Response) => response.Result);\r\n\t}\r\n\tget(_id: string): Observable<FormSchemaModel> {\r\n\t\treturn this.configurationService.config$\r\n\t\t\t.filter((config) => config.endpoints.getForm != \"\")\r\n\t\t\t.take(1)\r\n\t\t\t.switchMap((config) =>\r\n\t\t\t\tthis.http.get(stringTemplate(config.env.frontend_server + config.endpoints.getForm, { _id }))\r\n\t\t\t)\r\n\t\t\t.map((response: EditFormApiModel.Response) => response.Result);\r\n\t}\r\n\tgetList(): Observable<FormSchemaModel[]> {\r\n\t\treturn this.configurationService.config$\r\n\t\t\t.filter((config) => config.endpoints.getList != \"\")\r\n\t\t\t.switchMap((config) => this.http.get(config.env.frontend_server + config.endpoints.getList))\r\n\t\t\t.map((response: FormListApiModel.Response) => response.Result);\r\n\t}\r\n\tupdate(data: EditFormApiModel.Request): Observable<FormSchemaModel> {\r\n\t\tconst model = new EditFormApiModel.Request(data);\r\n\t\treturn this.configurationService.config$\r\n\t\t\t.filter((config) => config.endpoints.editForm != \"\")\r\n\t\t\t.take(1)\r\n\t\t\t.switchMap((config) =>\r\n\t\t\t\tthis.http.put(config.env.frontend_server + config.endpoints.editForm, model.getRequestBody())\r\n\t\t\t)\r\n\t\t\t.map((response: EditFormApiModel.Response) => response.Result);\r\n\t}\r\n\tdelete(_id: string) {\r\n\t\treturn this.configurationService.config$\r\n\t\t\t.filter((config) => config.endpoints.deleteForm != \"\")\r\n\t\t\t.switchMap((config) => this.http.get(config.env.frontend_server + config.endpoints.deleteForm));\r\n\t}\r\n\tselectFormById(_id: string): Observable<FormSchemaModel> {\r\n\t\tconst subject = new BehaviorSubject<FormSchemaModel>(undefined);\r\n\t\tthis.store\r\n\t\t\t.select((state) => state.form.list.data)\r\n\t\t\t.pipe(filter((forms) => forms != null), map((forms) => forms.find((form) => form._id == _id)))\r\n\t\t\t.subscribe((formSchemaModel) => subject.next(formSchemaModel));\r\n\t\treturn subject.asObservable();\r\n\t}\r\n}\r\n","import { Component, OnInit, Input } from \"@angular/core\";\r\nimport { FieldConfig, Field } from \"../../../models\";\r\nimport { FormGroup } from \"@angular/forms\";\r\n\r\n@Component({\r\n\tselector: \"ngs-form-control-select\",\r\n\ttemplateUrl: \"./select.component.html\",\r\n\tstyleUrls: [ \"./select.component.scss\" ]\r\n})\r\nexport class SelectComponent implements Field {\r\n\tconfig: FieldConfig;\r\n\tgroup: FormGroup;\r\n\tconstructor() {}\r\n}\r\n","import { Component, OnInit, Input } from \"@angular/core\";\r\nimport { FormGroup } from \"@angular/forms\";\r\n\r\nimport { Field, FieldConfig } from \"../../../models\";\r\n\r\n@Component({\r\n\tselector: \"ngs-form-control-checkbox\",\r\n\ttemplateUrl: \"./checkbox.component.html\",\r\n\tstyleUrls: [ \"./checkbox.component.scss\" ]\r\n})\r\nexport class CheckboxComponent implements Field {\r\n\tconfig: FieldConfig;\r\n\tgroup: FormGroup;\r\n\r\n\tconstructor() {}\r\n}\r\n","import { Component, OnInit, Input } from \"@angular/core\";\r\nimport { FormGroup } from \"@angular/forms\";\r\n\r\nimport { FieldConfig, Field } from \"../../../models\";\r\n\r\n@Component({\r\n\tselector: \"ngs-form-control-email\",\r\n\ttemplateUrl: \"./email.component.html\",\r\n\tstyleUrls: [ \"./email.component.scss\" ]\r\n})\r\nexport class EmailComponent implements Field {\r\n\tconfig: FieldConfig;\r\n\tgroup: FormGroup;\r\n\r\n\tconstructor() {}\r\n\r\n\tngOnInit() {}\r\n}\r\n","import { Component, OnInit, Input } from \"@angular/core\";\r\nimport { FormGroup } from \"@angular/forms\";\r\n\r\nimport { FieldConfig, Field } from \"../../../models\";\r\n\r\n@Component({\r\n\tselector: \"ngs-form-control-color\",\r\n\ttemplateUrl: \"./color.component.html\",\r\n\tstyleUrls: [ \"./color.component.scss\" ]\r\n})\r\nexport class ColorComponent implements Field {\r\n\tconfig: FieldConfig;\r\n\tgroup: FormGroup;\r\n\r\n\t@Input() form: FormGroup;\r\n\t@Input() schema: FieldConfig;\r\n\tconstructor() {}\r\n\r\n\tngOnInit() {}\r\n}\r\n","import { Component, OnInit, Input } from \"@angular/core\";\r\nimport { FormGroup } from \"@angular/forms\";\r\n\r\nimport { FieldConfig, Field } from \"../../../models\";\r\nimport { HttpClient } from \"@angular/common/http\";\r\nimport { MatTableDataSource } from \"@angular/material\";\r\nimport { SelectionModel } from \"@angular/cdk/collections\";\r\n\r\n@Component({\r\n\tselector: \"ngs-form-control-table\",\r\n\ttemplateUrl: \"./table.component.html\",\r\n\tstyleUrls: [ \"./table.component.scss\" ]\r\n})\r\nexport class TableComponent implements OnInit, Field {\r\n\tconfig: FieldConfig;\r\n\tgroup: FormGroup;\r\n\t@Input() form: FormGroup;\r\n\t@Input() schema: FieldConfig;\r\n\tready: boolean;\r\n\tdisplayedColumns: string[];\r\n\tfiledDisplayedColumns: string[];\r\n\tdataSource: MatTableDataSource<any>;\r\n\r\n\tselection = new SelectionModel<any>(true, []);\r\n\tconstructor(private http: HttpClient) {\r\n\t\tthis.ready = false;\r\n\t}\r\n\tngOnInit() {\r\n\t\tthis.http.get(this.schema.dataEndpoint).subscribe((data: any) => {\r\n\t\t\tthis.ready = true;\r\n\t\t\tthis.displayedColumns = data.displayedColumns;\r\n\t\t\tthis.filedDisplayedColumns = data.filedDisplayedColumns;\r\n\t\t\tthis.dataSource = new MatTableDataSource<any>(data.dataSource);\r\n\t\t});\r\n\t}\r\n\r\n\t/** Whether the number of selected elements matches the total number of rows. */\r\n\tisAllSelected() {\r\n\t\tconst numSelected = this.selection.selected.length;\r\n\t\tthis.form.patchValue({\r\n\t\t\t[this.schema.name]: this.selection.selected\r\n\t\t});\r\n\t\tconst numRows = this.dataSource.data.length;\r\n\t\treturn numSelected === numRows;\r\n\t}\r\n\r\n\t/** Selects all rows if they are not all selected; otherwise clear selection. */\r\n\tmasterToggle() {\r\n\t\tthis.isAllSelected() ? this.selection.clear() : this.dataSource.data.forEach(row => this.selection.select(row));\r\n\t}\r\n}\r\n","import { Component, OnInit, Input } from \"@angular/core\";\r\nimport { FormGroup } from \"@angular/forms\";\r\n\r\nimport { FieldConfig } from \"../../../models\";\r\n\r\n@Component({\r\n\tselector: \"ngs-form-control-number\",\r\n\ttemplateUrl: \"./number.component.html\",\r\n\tstyleUrls: [ \"./number.component.scss\" ]\r\n})\r\nexport class NumberComponent implements OnInit {\r\n\t@Input() form: FormGroup;\r\n\t@Input() schema: FieldConfig;\r\n\tconstructor() {}\r\n\r\n\tngOnInit() {}\r\n}\r\n","import { Component, OnInit, Input } from \"@angular/core\";\r\nimport { FormGroup } from \"@angular/forms\";\r\n\r\nimport { FieldConfig, Field } from \"../../../models\";\r\n\r\n@Component({\r\n\tselector: \"ngs-form-control-text\",\r\n\ttemplateUrl: \"./text.component.html\",\r\n\tstyleUrls: [ \"./text.component.scss\" ]\r\n})\r\nexport class TextComponent implements Field {\r\n\tconfig: FieldConfig;\r\n\tgroup: FormGroup;\r\n\r\n\tconstructor() {}\r\n}\r\n","import { Action } from \"@ngrx/store\";\r\n\r\nimport { FormSchemaModel } from \"../models\";\r\n\r\nexport enum FormsListActionTypes {\r\n\tFORMS_LIST = \"[FORM][LIST] FORMS_LIST\",\r\n\tFORMS_LIST_START = \"[FORM][LIST] FORMS_LIST_START\",\r\n\tFORMS_LIST_SUCCEED = \"[FORM][LIST] FORMS_LIST_SUCCEED\",\r\n\tFORMS_LIST_FAILED = \"[FORM][LIST] FORMS_LIST_FAILED\",\r\n\tADD_FORM_SCHEMA = \"[FORM][LIST] ADD_FORM_SCHEMA\",\r\n\tFORM_SCHEMA_UPDATE = \"[FORM][LIST] FORM_SCHEMA_UPDATE\",\r\n\tGET_FORM_SCHEMA = \"[FORM][LIST] GET_FORM_SCHEMA\",\r\n\tFORM_SCHEMA_FETCHED = \"[FORM][LIST] FORM_SCHEMA_FETCHED\"\r\n}\r\n\r\nexport class FormsListAction implements Action {\r\n\treadonly type = FormsListActionTypes.FORMS_LIST;\r\n}\r\nexport class FormsListStartAction implements Action {\r\n\treadonly type = FormsListActionTypes.FORMS_LIST_START;\r\n}\r\nexport class FormsListSucceedAction implements Action {\r\n\treadonly type = FormsListActionTypes.FORMS_LIST_SUCCEED;\r\n\tconstructor(public payload: FormSchemaModel[]) {}\r\n}\r\nexport class FormsListFailedAction implements Action {\r\n\treadonly type = FormsListActionTypes.FORMS_LIST_FAILED;\r\n}\r\nexport class UpdateFormSchemaAction implements Action {\r\n\treadonly type = FormsListActionTypes.FORM_SCHEMA_UPDATE;\r\n\tconstructor(public payload: FormSchemaModel) {}\r\n}\r\nexport class AddFormSchemaAction implements Action {\r\n\treadonly type = FormsListActionTypes.ADD_FORM_SCHEMA;\r\n\tconstructor(public payload: FormSchemaModel) {}\r\n}\r\nexport class GetFormSchemaAction implements Action {\r\n\treadonly type = FormsListActionTypes.GET_FORM_SCHEMA;\r\n\tconstructor(public payload: string) {}\r\n}\r\nexport class FormSchemaFechedAction implements Action {\r\n\treadonly type = FormsListActionTypes.FORM_SCHEMA_FETCHED;\r\n\tconstructor(public payload: FormSchemaModel) {}\r\n}\r\n\r\nexport type FormsListActions =\r\n\t| FormsListAction\r\n\t| FormsListStartAction\r\n\t| FormsListSucceedAction\r\n\t| FormsListFailedAction\r\n\t| UpdateFormSchemaAction\r\n\t| AddFormSchemaAction\r\n\t| GetFormSchemaAction\r\n\t| FormSchemaFechedAction;\r\n","import { Component, OnInit, Input } from \"@angular/core\";\r\nimport { FormGroup } from \"@angular/forms\";\r\n\r\nimport { FieldConfig, Field } from \"../../../models\";\r\n\r\n@Component({\r\n\tselector: \"ngs-form-control-date\",\r\n\ttemplateUrl: \"./date.component.html\",\r\n\tstyleUrls: [ \"./date.component.scss\" ]\r\n})\r\nexport class DateFormInputControlComponent implements Field {\r\n\tconfig: FieldConfig;\r\n\tgroup: FormGroup;\r\n\r\n\tconstructor() {}\r\n}\r\n","import { Component, OnInit, Input } from \"@angular/core\";\r\nimport { FormGroup } from \"@angular/forms\";\r\n\r\nimport { FieldConfig, Field } from \"../../../models\";\r\n\r\n@Component({\r\n\tselector: \"ngs-form-control-file\",\r\n\ttemplateUrl: \"./file.component.html\",\r\n\tstyleUrls: [ \"./file.component.scss\" ]\r\n})\r\nexport class FileFormInputControlComponent implements Field {\r\n\tconfig: FieldConfig;\r\n\tgroup: FormGroup;\r\n\r\n\tconstructor() {}\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { HttpClient } from \"@angular/common/http\";\r\nimport { Observable } from \"rxjs\";\r\nimport { Store } from \"@ngrx/store\";\r\nimport { BehaviorSubject } from \"rxjs/BehaviorSubject\";\r\nimport { filter, map, take, switchMap } from \"rxjs/operators\";\r\n\r\nimport { stringTemplate } from \"@soushians/shared\";\r\n\r\nimport { FormSchemaModel, AddFormApiModel, EditFormApiModel, FormListApiModel } from \"../models\";\r\nimport { FormConfigurationService } from \"./form-configuration.service\";\r\n\r\nimport { MainContainerState } from \"../main-container/main-container.reducers\";\r\nimport { UpsertCaptchaApiModel } from \"../models/captcha.model\";\r\n\r\n@Injectable({\r\n\tprovidedIn: \"root\"\r\n})\r\nexport class FormCaptchaService {\r\n\tconstructor(\r\n\t\tprivate http: HttpClient,\r\n\t\tprivate store: Store<MainContainerState>,\r\n\t\tprivate configurationService: FormConfigurationService\r\n\t) { }\r\n\r\n\tgetCaptcha(): Observable<any> {\r\n\t\tdebugger;\r\n\t\treturn this.configurationService.config$.pipe(\r\n\t\t\tfilter((captcha) => captcha.endpoints.captchaUrl != \"\"),\r\n\t\t\ttake(1),\r\n\t\t\tswitchMap((captcha) =>\r\n\t\t\t\tthis.http.get(captcha.env.server + captcha.endpoints.captchaUrl)\r\n\t\t\t),\r\n\t\t\tmap((response: any) => response.Result),\r\n\t\t);\r\n\t}\r\n\tsendCaptcha(): Observable<FormSchemaModel[]> {\r\n\t\treturn this.configurationService.config$.pipe(\r\n\t\t\tfilter((config) => config.endpoints.getList != \"\"),\r\n\t\t\tswitchMap((config) => this.http.get(config.env.server + config.endpoints.getList)),\r\n\t\t\tmap((response: FormListApiModel.Response) => response.Result)\r\n\t\t);\r\n\t}\r\n}\r\n","\r\nexport class CaptchaModel {\r\n\tcaptchaImg: string;\r\n\tcaptchaCode: string;\r\n\tconstructor({ captchaImg, captchaCode }: { captchaImg?: string; captchaCode?: string; } = {}) {\r\n\t\tthis.captchaImg = `${captchaImg}?${Math.random()}`;\r\n\t\tthis.captchaCode = captchaCode || \"\";\r\n\t}\r\n}\r\n\r\nexport namespace UpsertCaptchaApiModel {\r\n\texport class Request {\r\n\t\tCaptcha: CaptchaModel;\r\n\t\tconstructor(initValue: Partial<UpsertCaptchaApiModel.Request> = {}) {\r\n\t\t\tObject.keys(initValue).forEach(key => (this[key] = initValue[key]));\r\n\t\t}\r\n\t\tgetRequestBody() {\r\n\t\t\treturn this.Captcha.captchaCode;\r\n\t\t}\r\n\t}\r\n\texport class Response {\r\n\t\tResult: CaptchaModel;\r\n\t\tconstructor() { }\r\n\t}\r\n}\r\n","import { Component, OnInit, Input, Output, EventEmitter } from \"@angular/core\";\r\nimport { FormGroup, FormControl, FormArray, Validators } from \"@angular/forms\";\r\nimport { Store } from \"@ngrx/store\";\r\n\r\nimport { Field, FieldConfig } from \"../../../models\";\r\nimport { FormCaptchaService } from \"../../../services/form-captcha.service\";\r\nimport { CaptchaModel } from \"../../../models/captcha.model\";\r\nimport { MainContainerState } from \"../../../main-container\";\r\nimport { FormConfigurationService } from \"../../../services/form-configuration.service\";\r\nimport { map } from \"rxjs/operators\";\r\nimport { generate } from \"rxjs\";\r\n\r\n@Component({\r\n\tselector: \"lib-form-captcha\",\r\n\ttemplateUrl: \"./form-captcha.component.html\",\r\n\tstyleUrls: [\"./form-captcha.component.scss\"]\r\n})\r\nexport class FormCaptchaComponent implements OnInit, Field {\r\n\tconfig: FieldConfig;\r\n\tgroup: FormGroup;\r\n\r\n\tcaptcha: CaptchaModel;\r\n\tcaptchaSrc: string;\r\n\tconstructor(\r\n\t\tprivate service: FormCaptchaService,\r\n\t\tprivate store: Store<MainContainerState>,\r\n\t\tprivate configurationService: FormConfigurationService\r\n\t) {\r\n\t\t// this.captcha = new CaptchaModel({\r\n\t\t// \tcaptchaImg: \"http://172.22.34.28:8001/api/authentication/captcha\"\r\n\t\t// });\r\n\r\n\t\tthis._captcha_generate();\r\n\t}\r\n\tngOnInit() {\r\n\t\tdebugger;\r\n\t}\r\n\trefresh() {\r\n\t\tthis.captcha.captchaImg = this._captcha_generate() + `?${Math.random()}`;\r\n\t}\r\n\t_captcha_generate() {\r\n\t\tthis.configurationService.config$.pipe(\r\n\t\t\tmap(config => config.env.server + config.endpoints.captchaUrl)).subscribe(captcha => {\r\n\t\t\t\tthis.captcha = new CaptchaModel({\r\n\t\t\t\t\tcaptchaImg: captcha\r\n\t\t\t\t});\r\n\t\t\t});\r\n\t}\r\n\r\n}\r\n","import {\r\n\tComponent,\r\n\tOnInit,\r\n\tViewChild,\r\n\tViewContainerRef,\r\n\tComponentFactoryResolver,\r\n\tCompiler,\r\n\tReflectiveInjector,\r\n\tNgModule,\r\n\tInput,\r\n\tOutput,\r\n\tEventEmitter,\r\n\tOnChanges,\r\n\tDirective,\r\n\tType,\r\n\tOnDestroy\r\n} from \"@angular/core\";\r\nimport { Observable } from \"rxjs/Observable\";\r\nimport { FormControl, FormGroup, FormArray, AbstractControl, Validators } from \"@angular/forms\";\r\nimport { BehaviorSubject } from \"rxjs/BehaviorSubject\";\r\nimport { Subject } from \"rxjs\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { ComponentRef } from \"@angular/core/src/linker/component_factory\";\r\nimport { Store } from \"@ngrx/store\";\r\n\r\nimport {\r\n\tSelectComponent,\r\n\tEmailComponent,\r\n\tColorComponent,\r\n\tCheckboxComponent,\r\n\tTextComponent,\r\n\tTableComponent\r\n} from \"../form-controls\";\r\nimport { FormService } from \"../../services/form.service\";\r\nimport { MainContainerState } from \"../../main-container/main-container.reducers\";\r\nimport { GetFormSchemaAction } from \"../../list/list.actions\";\r\nimport { Field, FieldConfig, FormSchemaModel } from \"../../models\";\r\nimport { DateFormInputControlComponent } from \"../form-controls/date/date.component\";\r\nimport { FileFormInputControlComponent } from \"../form-controls/file/file.component\";\r\nimport { FormCaptchaComponent } from \"../form-controls/form-captcha\";\r\n\r\n@Component({\r\n\tselector: \"ngs-form-view\",\r\n\ttemplateUrl: \"./form-view.component.html\",\r\n\tstyleUrls: [\"./form-view.component.css\"]\r\n})\r\nexport class FormViewComponent implements OnDestroy {\r\n\tunsubscribe = new Subject<void>();\r\n\t@Output() accept = new EventEmitter<FormGroup>();\r\n\t@Output() cancel = new EventEmitter<FormGroup>();\r\n\t@Input() local;\r\n\t@Input() card = false;\r\n\t@Input()\r\n\tset id(id: string) {\r\n\t\tif (!this.local) this.store.dispatch(new GetFormSchemaAction(id));\r\n\t\tthis.service\r\n\t\t\t.selectFormById(id)\r\n\t\t\t.pipe(takeUntil(this.unsubscribe))\r\n\t\t\t.subscribe(schema => this.schema$.next(schema));\r\n\t}\r\n\t@Input()\r\n\tset schema(schema: FormSchemaModel) {\r\n\t\tthis.schema$.next(schema);\r\n\t}\r\n\t_id: string;\r\n\tformGroup: FormGroup;\r\n\tformGroupCreated = false;\r\n\tschema$: BehaviorSubject<FormSchemaModel>;\r\n\r\n\tconstructor(\r\n\t\tprivate service: FormService,\r\n\t\tprivate compiler: Compiler,\r\n\t\tprivate resolver: ComponentFactoryResolver,\r\n\t\tprivate store: Store<MainContainerState>\r\n\t) {\r\n\t\tthis.schema$ = new BehaviorSubject(undefined);\r\n\t\tthis.schema$.pipe(takeUntil(this.unsubscribe)).subscribe(schema => {\r\n\t\t\tif (!schema) return;\r\n\t\t\tthis.formGroup = this.createFrom(schema.form) as FormGroup;\r\n\t\t\tif (!schema.form.name) return;\r\n\t\t\tthis.formGroupCreated = true;\r\n\t\t});\r\n\t}\r\n\tngOnDestroy() {\r\n\t\tthis.unsubscribe.next();\r\n\t\tthis.unsubscribe.complete();\r\n\t}\r\n\tgenerate(schema: FormSchemaModel) {\r\n\t\tthis.schema$.next(schema);\r\n\t}\r\n\r\n\tcreateFrom(data: FieldConfig, parentPath = \"\"): AbstractControl {\r\n\t\tif (data.type == \"control\") {\r\n\t\t\tlet formGroupPath;\r\n\t\t\tif (data.parentType == \"array\") {\r\n\t\t\t\t// parentPath = `${parentPath}.controls[${(data as FieldConfig).name}]`;\r\n\t\t\t} else if (data.parentType == \"group\") {\r\n\t\t\t\tformGroupPath = parentPath;\r\n\t\t\t\tparentPath = `${parentPath}.controls.${(data as FieldConfig).name}`;\r\n\t\t\t}\r\n\t\t\tconst validators = [];\r\n\t\t\tif (data.validator.required && data.validator.required.active) {\r\n\t\t\t\tvalidators.push(Validators.required);\r\n\t\t\t}\r\n\t\t\tif (data.validator.minlength && data.validator.minlength.active) {\r\n\t\t\t\tvalidators.push(Validators.minLength(data.validator.minlength.value));\r\n\t\t\t}\r\n\t\t\tif (data.validator.email && data.validator.email.active) {\r\n\t\t\t\tvalidators.push(Validators.email);\r\n\t\t\t}\r\n\t\t\tconst ctr = new FormControl(data.value, validators);\r\n\t\t\t(ctr as any).schema = data;\r\n\t\t\t(ctr as any).schema.path = parentPath;\r\n\t\t\t(ctr as any).schema.formGroupPath = formGroupPath;\r\n\t\t\treturn ctr;\r\n\t\t} else if (data.type == \"group\") {\r\n\t\t\tconst formGroup = new FormGroup({});\r\n\t\t\tif (data.parentType == undefined) {\r\n\t\t\t\tparentPath = (data as FieldConfig).name;\r\n\t\t\t} else if (data.parentType == \"array\") {\r\n\t\t\t\tparentPath = `${parentPath}.controls[${(data as FieldConfig).name}]`;\r\n\t\t\t} else if (data.parentType == \"group\") {\r\n\t\t\t\tparentPath = `${parentPath}.controls.${(data as FieldConfig).name}`;\r\n\t\t\t}\r\n\r\n\t\t\t(formGroup as any).schema = data;\r\n\t\t\t(formGroup as any).schema.path = parentPath;\r\n\t\t\tdata.fields.forEach(item => {\r\n\t\t\t\titem.parentType = \"group\";\r\n\t\t\t\tformGroup.addControl(item.name, this.createFrom(item, parentPath));\r\n\t\t\t});\r\n\t\t\treturn formGroup;\r\n\t\t} else {\r\n\t\t\tconst formArray: FormArray = new FormArray([]);\r\n\t\t\tparentPath =\r\n\t\t\t\tparentPath == \"\" ? (data as FieldConfig).name : `${parentPath}.controls.${(data as FieldConfig).name}`;\r\n\t\t\t(formArray as any).schema = data;\r\n\t\t\t(formArray as any).schema.path = parentPath;\r\n\t\t\tdata.fields.forEach((item, idx) => {\r\n\t\t\t\titem.parentType = \"array\";\r\n\t\t\t\titem.name = idx.toString();\r\n\t\t\t\tformArray.controls.push(this.createFrom(item, parentPath));\r\n\t\t\t});\r\n\t\t\treturn formArray;\r\n\t\t}\r\n\t}\r\n\r\n\taccepted() {\r\n\t\tthis.accept.emit(this.formGroup);\r\n\t}\r\n\tcanceled() {\r\n\t\tthis.cancel.emit(this.formGroup);\r\n\t}\r\n}\r\n\r\nconst components: { [type: string]: Type<Field> } = {\r\n\tcheckbox: CheckboxComponent,\r\n\ttext: TextComponent,\r\n\tpassword: TextComponent,\r\n\tdate: DateFormInputControlComponent,\r\n\tfile: FileFormInputControlComponent,\r\n\ttable: TableComponent,\r\n\tcolor: ColorComponent,\r\n\temail: EmailComponent,\r\n\tcaptcha: FormCaptchaComponent,\r\n\tselect: SelectComponent\r\n};\r\n\r\n@Directive({\r\n\tselector: \"[dynamicField]\"\r\n})\r\nexport class DynamicFieldDirective implements Field, OnChanges, OnInit {\r\n\t@Input() config: FieldConfig;\r\n\r\n\t@Input() group: FormGroup;\r\n\r\n\tcomponent: ComponentRef<Field>;\r\n\r\n\tconstructor(private resolver: ComponentFactoryResolver, private container: ViewContainerRef) { }\r\n\r\n\tngOnChanges() {\r\n\t\tdebugger;\r\n\t\tif (this.component) {\r\n\t\t\tthis.component.instance.config = this.config;\r\n\t\t\tthis.component.instance.group = this.group;\r\n\t\t}\r\n\t}\r\n\r\n\tngOnInit() {\r\n\t\tdebugger;\r\n\t\tif (this.config.inputType == undefined) return;\r\n\t\tif (!components[this.config.inputType]) {\r\n\t\t\tconst supportedTypes = Object.keys(components).join(\", \");\r\n\t\t\tthrow new Error(\r\n\t\t\t\t`Trying to use an unsupported type (${this.config.inputType}).\r\n\t\t Supported types: ${supportedTypes}`\r\n\t\t\t);\r\n\t\t}\r\n\t\tconst component = this.resolver.resolveComponentFactory<Field>(components[this.config.inputType]);\r\n\t\tthis.component = this.container.createComponent(component);\r\n\t\tthis.component.instance.config = this.config;\r\n\t\tthis.component.instance.group = this.group;\r\n\t}\r\n}\r\n","import { responseStatusTypes } from \"@soushians/shared\";\r\nimport { FormSchemaModel } from \"../models\";\r\nimport { FormsListActionTypes, FormsListActions } from \"./list.actions\";\r\n\r\nexport interface State {\r\n\tstatus: responseStatusTypes;\r\n\tdata: FormSchemaModel[];\r\n}\r\nexport const initialState: State = {\r\n\tstatus: \"pristine\",\r\n\tdata: []\r\n};\r\nexport function reducer(state = initialState, action: FormsListActions): State {\r\n\tswitch (action.type) {\r\n\t\tcase FormsListActionTypes.FORMS_LIST: {\r\n\t\t\treturn {\r\n\t\t\t\t...state,\r\n\t\t\t\tstatus: \"dirty\"\r\n\t\t\t};\r\n\t\t}\r\n\t\tcase FormsListActionTypes.FORMS_LIST_START: {\r\n\t\t\treturn {\r\n\t\t\t\t...state,\r\n\t\t\t\tstatus: \"pending\"\r\n\t\t\t};\r\n\t\t}\r\n\t\tcase FormsListActionTypes.FORMS_LIST_SUCCEED: {\r\n\t\t\treturn {\r\n\t\t\t\t...state,\r\n\t\t\t\tdata: action.payload,\r\n\t\t\t\tstatus: \"succeed\"\r\n\t\t\t};\r\n\t\t}\r\n\t\tcase FormsListActionTypes.FORMS_LIST_FAILED: {\r\n\t\t\treturn {\r\n\t\t\t\t...state,\r\n\t\t\t\tstatus: \"failed\"\r\n\t\t\t};\r\n\t\t}\r\n\t\tcase FormsListActionTypes.FORM_SCHEMA_UPDATE: {\r\n\t\t\tconst data = state.data.concat();\r\n\t\t\tvar entityIdx = state.data.findIndex(form => form._id == action.payload._id);\r\n\t\t\tif (entityIdx > -1) {\r\n\t\t\t\tdata[entityIdx] = Object.assign({}, data[entityIdx], action.payload);\r\n\t\t\t} else {\r\n\t\t\t\tdata.push(action.payload);\r\n\t\t\t}\r\n\t\t\treturn {\r\n\t\t\t\t...state,\r\n\t\t\t\tdata: data\r\n\t\t\t};\r\n\t\t}\r\n\t\tcase FormsListActionTypes.ADD_FORM_SCHEMA: {\r\n\t\t\tconst data = state.data.concat();\r\n\t\t\tvar entityIdx = state.data.findIndex(form => form._id == action.payload._id);\r\n\t\t\tif (entityIdx > -1) {\r\n\t\t\t\tdata[entityIdx] = Object.assign({}, data[entityIdx], action.payload);\r\n\t\t\t} else {\r\n\t\t\t\tdata.push(action.payload);\r\n\t\t\t}\r\n\t\t\treturn {\r\n\t\t\t\t...state,\r\n\t\t\t\tdata: data\r\n\t\t\t};\r\n\t\t}\r\n\t\tcase FormsListActionTypes.FORM_SCHEMA_FETCHED: {\r\n\t\t\tconst data = state.data.concat();\r\n\t\t\tvar entityIdx = state.data.findIndex(form => form._id == action.payload._id);\r\n\t\t\tif (entityIdx > -1) {\r\n\t\t\t\tdata[entityIdx] = Object.assign({}, data[entityIdx], action.payload);\r\n\t\t\t} else {\r\n\t\t\t\tdata.push(action.payload);\r\n\t\t\t}\r\n\t\t\treturn {\r\n\t\t\t\t...state,\r\n\t\t\t\tdata: data\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\tdefault: {\r\n\t\t\treturn state;\r\n\t\t}\r\n\t}\r\n}\r\n\r\nexport var getStatus = (state: State) => state.status;\r\n","import * as list from \"../list/list.reducers\";\r\n\r\nexport interface FormState {\r\n\tlist: list.State;\r\n}\r\n\r\nexport const FormReducers = {\r\n\tlist: list.reducer\r\n};\r\n\r\nexport interface MainContainerState {\r\n\t\"form\": FormState;\r\n}\r\n","import { Component, Input, Output, EventEmitter } from \"@angular/core\";\r\nimport { FieldConfig } from \"../../models\";\r\n\r\n@Component({\r\n\tselector: \"app-form-group\",\r\n\ttemplateUrl: \"./form-group.component.html\"\r\n})\r\nexport class FormGroupComponent {\r\n\t@Input() schema: FieldConfig;\r\n\t@Input() noHeader: boolean = false;\r\n\t@Output() changes = new EventEmitter();\r\n\t@Output() delete = new EventEmitter();\r\n\tconstructor() {}\r\n\r\n\tchanged() {\r\n\t\tthis.changes.emit();\r\n\t}\r\n\r\n\taddFormGroup(root: FieldConfig) {\r\n\t\tconst group = new FieldConfig(\"group\");\r\n\t\tgroup.fields = [];\r\n\t\troot.fields.push(group);\r\n\t\tthis.schema.id = this.schema.id + 1;\r\n\t\treturn group;\r\n\t}\r\n\taddFormArray(root: FieldConfig) {\r\n\t\tconst array = new FieldConfig(\"array\");\r\n\t\tarray.fields = [];\r\n\t\troot.fields.push(array);\r\n\t\treturn array;\r\n\t}\r\n\taddFormControl(root: FieldConfig) {\r\n\t\tconst control = new FieldConfig(\"control\");\r\n\t\troot.fields.push(control);\r\n\t\treturn control;\r\n\t}\r\n\tdeleteFormGroup(idx: number) {\r\n\t\tthis.schema.fields.splice(idx, 1);\r\n\t}\r\n}\r\n","import { Component, OnInit, Input, Output, EventEmitter } from \"@angular/core\";\r\nimport { FieldConfig } from \"../../models\";\r\n\r\n@Component({\r\n\tselector: \"app-form-array\",\r\n\ttemplateUrl: \"./form-array.component.html\"\r\n})\r\nexport class FormArrayComponent {\r\n\t@Input() schema: FieldConfig;\r\n\t@Output() changes = new EventEmitter();\r\n\tconstructor() {}\r\n\r\n\tchanged() {\r\n\t\tthis.changes.emit();\r\n\t}\r\n\r\n\taddFormGroup(root: FieldConfig) {\r\n\t\tconst group = new FieldConfig(\"group\");\r\n\t\tgroup.fields = [];\r\n\t\troot.fields.push(group);\r\n\t\treturn group;\r\n\t}\r\n\taddFormArray(root: FieldConfig) {\r\n\t\tconst array = new FieldConfig(\"array\");\r\n\t\tarray.fields = [];\r\n\t\troot.fields.push(array);\r\n\t\treturn array;\r\n\t}\r\n\taddFormControl(root: FieldConfig) {\r\n\t\tconst control = new FieldConfig(\"control\");\r\n\t\troot.fields.push(control);\r\n\t\treturn control;\r\n\t}\r\n}\r\n","import { Component, OnInit, Input, Output, EventEmitter } from \"@angular/core\";\r\nimport { FormGroup, FormControl, FormArray } from \"@angular/forms\";\r\nimport { FieldConfig } from \"../../models\";\r\n\r\n@Component({\r\n\tselector: \"app-form-control\",\r\n\ttemplateUrl: \"./form-control.component.html\"\r\n})\r\nexport class FormControlComponent {\r\n\t@Input() schema: FieldConfig;\r\n\t@Output() changes = new EventEmitter();\r\n\t@Output() delete = new EventEmitter();\r\n\r\n\twidth = [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ];\r\n\toptions = new FormArray([\r\n\t\tnew FormGroup({\r\n\t\t\tkey: new FormControl(),\r\n\t\t\tvalue: new FormControl()\r\n\t\t})\r\n\t]);\r\n\ttableOptions = new FormGroup({\r\n\t\tdataEndpoint: new FormControl(\"\")\r\n\t});\r\n\tconstructor() {}\r\n\r\n\tchanged() {\r\n\t\tif ([ this.schema.name, this.schema.title, this.schema.inputType ].some(item => !item)) return true;\r\n\t\tif (this.schema.inputType == \"table\") {\r\n\t\t\tthis.schema.options = this.tableOptions.value;\r\n\t\t} else if (this.schema.inputType == \"select\") {\r\n\t\t\tthis.schema.options = this.options.value;\r\n\t\t}\r\n\t\tthis.changes.emit();\r\n\t}\r\n\r\n\taddOption() {\r\n\t\tthis.options.push(\r\n\t\t\tnew FormGroup({\r\n\t\t\t\tkey: new FormControl(),\r\n\t\t\t\tvalue: new FormControl()\r\n\t\t\t})\r\n\t\t);\r\n\t}\r\n\tremoveOption(i) {\r\n\t\tthis.options.controls.splice(i, 1);\r\n\t}\r\n\tinsertOptions() {\r\n\t\tthis.schema.options = this.options.value;\r\n\t}\r\n}\r\n","import { Action } from \"@ngrx/store\";\r\n\r\nimport { FormSchemaModel } from \"../models\";\r\n\r\nexport enum EditFormActionTypes {\r\n\tEDIT_FORM = \"[FORM][EDIT] EDIT_FORM\",\r\n\tEDIT_FORM_START = \"[FORM][EDIT] EDIT_FORM_START\",\r\n\tEDIT_FORM_SUCCEED = \"[FORM][EDIT] EDIT_FORM_SUCCEED\",\r\n\tEDIT_FORM_FAILED = \"[FORM][EDIT] EDIT_FORM_FAILED\"\r\n}\r\n\r\nexport class EditFormAction implements Action {\r\n\treadonly type = EditFormActionTypes.EDIT_FORM;\r\n\tconstructor(public payload: FormSchemaModel) {}\r\n}\r\nexport class EditFormStartAction implements Action {\r\n\treadonly type = EditFormActionTypes.EDIT_FORM_START;\r\n\tconstructor(public payload: FormSchemaModel) {}\r\n}\r\nexport class EditFormSucceedAction implements Action {\r\n\treadonly type = EditFormActionTypes.EDIT_FORM_SUCCEED;\r\n\tconstructor(public payload: FormSchemaModel) {}\r\n}\r\nexport class EditFormFailedAction implements Action {\r\n\treadonly type = EditFormActionTypes.EDIT_FORM_FAILED;\r\n}\r\n\r\nexport type EditFormActions = EditFormAction | EditFormStartAction | EditFormSucceedAction | EditFormFailedAction;\r\n","import { Action } from \"@ngrx/store\";\r\n\r\nimport { FormSchemaModel } from \"../models\";\r\n\r\nexport enum AddFormActionTypes {\r\n\tADD_FORM = \"[FORM][ADD] ADD_FORM_PROFILE\",\r\n\tADD_FORM_START = \"[FORM][ADD] ADD_FORM_START\",\r\n\tADD_FORM_SUCCEED = \"[FORM][ADD] ADD_FORM_SUCCEED\",\r\n\tADD_FORM_FAILED = \"[FORM][ADD] ADD_FORM_FAILED\"\r\n}\r\n\r\nexport class AddFormAction implements Action {\r\n\treadonly type = AddFormActionTypes.ADD_FORM;\r\n\tconstructor(public payload: FormSchemaModel) {}\r\n}\r\nexport class AddFormStartAction implements Action {\r\n\treadonly type = AddFormActionTypes.ADD_FORM_START;\r\n\tconstructor(public payload: FormSchemaModel) {}\r\n}\r\nexport class AddFormSucceedAction implements Action {\r\n\treadonly type = AddFormActionTypes.ADD_FORM_SUCCEED;\r\n}\r\nexport class AddFormFailedAction implements Action {\r\n\treadonly type = AddFormActionTypes.ADD_FORM_FAILED;\r\n}\r\n\r\nexport type AddFormActions = AddFormAction | AddFormStartAction | AddFormSucceedAction | AddFormFailedAction;\r\n","import { Component, OnInit } from \"@angular/core\";\r\nimport { Observable } from \"rxjs/Observable\";\r\nimport { FormGroup, FormControl, Validators } from \"@angular/forms\";\r\nimport { Store } from \"@ngrx/store\";\r\n\r\nimport { MainContainerState } from \"../../main-container/main-container.reducers\";\r\nimport { FormSchemaModel } from \"../../models\";\r\nimport { AddFormAction } from \"../add-form.actions\";\r\nimport { AddFormSchemaAction, UpdateFormSchemaAction } from \"../../list/list.actions\";\r\nimport { FormService } from \"../../services/form.service\";\r\n\r\n@Component({\r\n\ttemplate: `<ngs-form-add \r\n\t\t\t\t\t[schema]=\"schema\" \r\n\t\t\t\t\t(changes)=\"update_schema($event)\" \r\n\t\t\t\t\t(submited)=add($event)\r\n\t\t\t\t></ngs-form-add>`\r\n})\r\nexport class AddFormContainerComponent implements OnInit {\r\n\tschema: FormSchemaModel;\r\n\tconstructor(public store: Store<MainContainerState>, public service: FormService) {}\r\n\tngOnInit() {\r\n\t\tthis.schema = new FormSchemaModel();\r\n\t\tthis.schema.init();\r\n\t\tthis.store.dispatch(new AddFormSchemaAction(this.schema));\r\n\t}\r\n\tadd(form: FormSchemaModel) {\r\n\t\tthis.store.dispatch(new AddFormAction(form));\r\n\t}\r\n\tupdate_schema(form: FormSchemaModel) {\r\n\t\tthis.store.dispatch(new UpdateFormSchemaAction(form));\r\n\t}\r\n}\r\n","import { Component } from \"@angular/core\";\r\nimport { ActivatedRoute } from \"@angular/router\";\r\nimport { FormGroup, FormControl, Validators } from \"@angular/forms\";\r\nimport { Store } from \"@ngrx/store\";\r\n\r\nimport { MainContainerState } from \"../../main-container/main-container.reducers\";\r\nimport { EditFormApiModel } from \"../../models\";\r\nimport { FormService } from \"../../services/form.service\";\r\nimport { EditFormAction } from \"../../edit/edit-form.actions\";\r\nimport { AddFormContainerComponent } from \"../../add/add-form-container\";\r\nimport { GetFormSchemaAction } from \"../../list/list.actions\";\r\n\r\n@Component({\r\n\ttemplate: `<edit-form\r\n\t\t\t\t\t[formGroup]=\"formGroup\"\r\n\t\t\t\t\t[schema]=\"schema\"\r\n\t\t\t\t\t(changes)=\"update_schema($event)\"\r\n\t\t\t\t\t(submited)=\"update($event)\">\r\n\t\t\t\t</edit-form>`\r\n})\r\nexport class EditFormContainerComponent extends AddFormContainerComponent {\r\n\tformGroup = EditFormApiModel.Request.formGroup;\r\n\tconstructor(public service: FormService, private route: ActivatedRoute, public store: Store<MainContainerState>) {\r\n\t\tsuper(store, service);\r\n\t}\r\n\r\n\tngOnInit() {\r\n\t\tthis.route.params\r\n\t\t\t.map((params) => params[\"_id\"])\r\n\t\t\t.subscribe((id) => this.store.dispatch(new GetFormSchemaAction(id)));\r\n\r\n\t\tthis.route.params\r\n\t\t\t.map((params) => params[\"_id\"])\r\n\t\t\t.switchMap((id) => this.service.selectFormById(id))\r\n\t\t\t.filter((data) => data != null)\r\n\t\t\t.take(1)\r\n\t\t\t.subscribe((formSchema) => {\r\n\t\t\t\tthis.schema = formSchema;\r\n\t\t\t\tthis.formGroup.patchValue(formSchema);\r\n\t\t\t});\r\n\t}\r\n\r\n\tupdate(data) {\r\n\t\tthis.store.dispatch(new EditFormAction(data));\r\n\t}\r\n}\r\n","import { Component, OnInit, EventEmitter, Output, Input } from \"@angular/core\";\r\nimport { FormGroup } from \"@angular/forms\";\r\n\r\nimport { FormSchemaModel, AddFormApiModel, FieldConfig } from \"../../models\";\r\n\r\n@Component({\r\n\tselector: \"ngs-form-add\",\r\n\ttemplateUrl: \"./add-form.component.html\"\r\n})\r\nexport class AddFormComponent {\r\n\t@Input() schema: FormSchemaModel;\r\n\t@Input() formGroup = AddFormApiModel.Request.formGroup;\r\n\t@Output() submited = new EventEmitter();\r\n\t@Output() changes = new EventEmitter();\r\n\r\n\temit() {\r\n\t\tthis.formGroup.patchValue({ form: this.schema.form });\r\n\t\tthis.submited.emit(this.formGroup.value);\r\n\t}\r\n\tchanged() {\r\n\t\tthis.formGroup.patchValue({ form: this.schema.form });\r\n\t\tthis.changes.emit(this.formGroup.value);\r\n\t}\r\n\tchangeOrder($event) {}\r\n\r\n\taddFormGroup(root: FieldConfig) {\r\n\t\tconst group = new FieldConfig(\"group\");\r\n\t\tgroup.fields = [];\r\n\t\troot.fields.push(group);\r\n\t\treturn group;\r\n\t}\r\n\taddFormArray(root: FieldConfig) {\r\n\t\tconst array = new FieldConfig(\"array\");\r\n\t\tarray.fields = [];\r\n\t\troot.fields.push(array);\r\n\t\treturn array;\r\n\t}\r\n\taddFormControl(root: FieldConfig) {\r\n\t\tconst control = new FieldConfig(\"control\");\r\n\t\troot.fields.push(control);\r\n\t\treturn control;\r\n\t}\r\n}\r\n","import { Component, OnInit, Input, Output, EventEmitter } from \"@angular/core\";\r\nimport { FormGroup, FormControl, Validators } from \"@angular/forms\";\r\n\r\nimport { AddFormComponent } from \"../../add/add-form\";\r\n\r\n@Component({\r\n selector: \"edit-form\",\r\n templateUrl: \"./edit-form.component.html\",\r\n styleUrls: [\"./edit-form.component.scss\"]\r\n})\r\nexport class EditFormComponent extends AddFormComponent {\r\n @Input() schema: any;\r\n emit() {\r\n if (!this.formGroup.valid) return;\r\n return this.submited.emit(this.formGroup.value);\r\n }\r\n}\r\n","import { Component, OnInit } from \"@angular/core\";\r\nimport { Observable } from \"rxjs/Observable\";\r\nimport { Store } from \"@ngrx/store\";\r\n\r\nimport { MainContainerState } from \"../../main-container\";\r\nimport { FormSchemaModel } from \"../../models\";\r\nimport { FormsListAction } from \"../../list/list.actions\";\r\n\r\n@Component({\r\n\ttemplate: `<form-list\r\n\t\t\t\t\t[data]=\"data$\">\r\n\t\t\t\t</form-list>`\r\n})\r\nexport class FormListContainerComponent implements OnInit {\r\n\tdata$: Observable<FormSchemaModel[]>;\r\n\tconstructor(public store: Store<MainContainerState>) {\r\n\t\tthis.data$ = this.store.select(state => state.form.list.data);\r\n\t}\r\n\tngOnInit() {\r\n\t\tthis.store.dispatch(new FormsListAction());\r\n\t}\r\n}\r\n","import { Component, Input } from \"@angular/core\";\r\nimport { Observable } from \"rxjs/Observable\";\r\n\r\nimport { FormSchemaModel } from \"../../models\";\r\n\r\n@Component({\r\n\tselector: \"form-list\",\r\n\ttemplateUrl: \"./form-list.component.html\",\r\n\tstyleUrls: [\"./form-list.component.scss\"]\r\n})\r\nexport class FormListComponent {\r\n\t// tslint:disable-next-line:no-input-rename\r\n\t@Input(\"data\") data$: Observable<FormSchemaModel[]>;\r\n}\r\n","import { Component, OnInit } from \"@angular/core\";\r\n\r\nimport * as MainContainerReducer from \"../../main-container/main-container.reducers\";\r\nimport { Store } from \"@ngrx/store\";\r\nimport { ActivatedRoute } from \"@angular/router\";\r\n\r\n@Component({\r\n\ttemplate: \"<router-outlet></router-outlet>\",\r\n})\r\nexport class MainContainerComponent {\r\n\tconstructor(private route: ActivatedRoute, private store: Store<MainContainerReducer.MainContainerState>) { }\r\n}\r\n","import \"rxjs/add/operator/map\";\r\nimport \"rxjs/add/operator/mergeMap\";\r\nimport \"rxjs/add/operator/switchMap\";\r\n\r\nimport { Injectable } from \"@angular/core\";\r\nimport { Router } from \"@angular/router\";\r\nimport { Observable } from \"rxjs/Observable\";\r\nimport { Action } from \"@ngrx/store\";\r\nimport { Actions, Effect } from \"@ngrx/effects\";\r\nimport { of } from \"rxjs/observable/of\";\r\nimport { Store } from \"@ngrx/store\";\r\n\r\nimport { FormService } from \"../services/form.service\";\r\nimport { AddFormApiModel } from \"../models\";\r\nimport { AddFormActionTypes, AddFormStartAction, AddFormSucceedAction, AddFormFailedAction } from \"./add-form.actions\";\r\nimport { map, switchMap, catchError } from \"rxjs/operators\";\r\n\r\n@Injectable()\r\nexport class AddFormEffects {\r\n\tconstructor(private actions$: Actions<any>, private router: Router, private service: FormService) {}\r\n\r\n\t@Effect()\r\n\tAddForm$ = this.actions$\r\n\t\t.ofType(AddFormActionTypes.ADD_FORM)\r\n\t\t.pipe(map(action => action.payload), map(data => new AddFormStartAction(data)));\r\n\r\n\t@Effect()\r\n\tAddFormStart$ = this.actions$\r\n\t\t.ofType(AddFormActionTypes.ADD_FORM_START)\r\n\t\t.pipe(\r\n\t\t\tmap(action => action.payload),\r\n\t\t\tswitchMap((data: AddFormApiModel.Request) => this.service.add(data)),\r\n\t\t\tmap(res => new AddFormSucceedAction()),\r\n\t\t\tcatchError(() => of(new AddFormFailedAction()))\r\n\t\t);\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { Router } from \"@angular/router\";\r\nimport { Observable } from \"rxjs/Observable\";\r\nimport { Action } from \"@ngrx/store\";\r\nimport { Actions, Effect } from \"@ngrx/effects\";\r\nimport { of } from \"rxjs/observable/of\";\r\nimport { Store } from \"@ngrx/store\";\r\nimport { switchMap, map, catchError } from \"rxjs/operators\";\r\n\r\nimport { FormService } from \"../services/form.service\";\r\nimport { FormSchemaModel } from \"../models\";\r\nimport {\r\n\tFormsListAction,\r\n\tFormsListActionTypes,\r\n\tFormsListActions,\r\n\tFormsListFailedAction,\r\n\tFormsListStartAction,\r\n\tFormsListSucceedAction,\r\n\tFormSchemaFechedAction\r\n} from \"./list.actions\";\r\n\r\n@Injectable()\r\nexport class FormsListEffects {\r\n\tconstructor(private actions$: Actions<any>, private router: Router, private service: FormService) {}\r\n\r\n\t@Effect()\r\n\tEditProfileRequest$ = this.actions$.ofType(FormsListActionTypes.FORMS_LIST).map(data => new FormsListStartAction());\r\n\r\n\t@Effect()\r\n\tGetForm$ = this.actions$\r\n\t\t.ofType(FormsListActionTypes.GET_FORM_SCHEMA)\r\n\t\t.pipe(\r\n\t\t\tmap(action => action.payload),\r\n\t\t\tswitchMap(id => this.service.get(id)),\r\n\t\t\tmap(formSchema => new FormSchemaFechedAction(formSchema))\r\n\t\t);\r\n\r\n\t@Effect()\r\n\tget_forms_list$ = this.actions$\r\n\t\t.ofType(FormsListActionTypes.FORMS_LIST_START)\r\n\t\t.pipe(\r\n\t\t\tswitchMap((data: any) => this.service.getList()),\r\n\t\t\tmap(res => new FormsListSucceedAction(res)),\r\n\t\t\tcatchError(() => of(new FormsListFailedAction()))\r\n\t\t);\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { Router } from \"@angular/router\";\r\nimport { Observable } from \"rxjs/Observable\";\r\nimport { Action } from \"@ngrx/store\";\r\nimport { Actions, Effect } from \"@ngrx/effects\";\r\nimport { of } from \"rxjs/observable/of\";\r\nimport { Store } from \"@ngrx/store\";\r\n\r\nimport { FormService } from \"../services/form.service\";\r\nimport { EditFormApiModel } from \"../models\";\r\nimport {\r\n\tEditFormActionTypes,\r\n\tEditFormStartAction,\r\n\tEditFormSucceedAction,\r\n\tEditFormFailedAction\r\n} from \"./edit-form.actions\";\r\nimport { UpdateFormSchemaAction } from \"../list\";\r\nimport { map, switchMap, catchError } from \"rxjs/operators\";\r\n\r\n@Injectable()\r\nexport class EditFormEffects {\r\n\tconstructor(private actions$: Actions<any>, private router: Router, private service: FormService) {}\r\n\r\n\t@Effect()\r\n\tEditForm$ = this.actions$\r\n\t\t.ofType(EditFormActionTypes.EDIT_FORM)\r\n\t\t.pipe(map(action => action.payload), map(data => new EditFormStartAction(data)));\r\n\r\n\t@Effect()\r\n\tEditFormStart$ = this.actions$\r\n\t\t.ofType(EditFormActionTypes.EDIT_FORM_START)\r\n\t\t.pipe(\r\n\t\t\tmap(action => action.payload),\r\n\t\t\tswitchMap((data: EditFormApiModel.Request) => this.service.update(data)),\r\n\t\t\tmap(formSchema => new EditFormSucceedAction(formSchema)),\r\n\t\t\tcatchError(() => of(new EditFormFailedAction()))\r\n\t\t);\r\n\r\n\t@Effect()\r\n\tUpdateFormsListStart$ = this.actions$\r\n\t\t.ofType(EditFormActionTypes.EDIT_FORM_SUCCEED)\r\n\t\t.pipe(map(action => action.payload), map(formSchema => new UpdateFormSchemaAction(formSchema)));\r\n}\r\n","import { ModuleWithProviders } from \"@angular/core\";\r\nimport { RouterModule, Routes } from \"@angular/router\";\r\n\r\nimport { MainContainerComponent } from \"./main-container/main-container.component/main-container.component\";\r\nimport { EditFormContainerComponent } from \"./edit/edit-form-container/edit-form-container.component\";\r\nimport { AddFormContainerComponent } from \"./add/add-form-container/add-form-container.component\";\r\nimport { FormListContainerComponent } from \"./list/form-list-container/form-list.container.component\";\r\n\r\nconst routes: Routes = [\r\n\t{\r\n\t\tpath: \"form\",\r\n\t\tcomponent: MainContainerComponent,\r\n\t\tchildren: [\r\n\t\t\t{\r\n\t\t\t\tpath: \"add\",\r\n\t\t\t\tcomponent: AddFormContainerComponent\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tpath: \"edit/:_id\",\r\n\t\t\t\tcomponent: EditFormContainerComponent\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tpath: \"\",\r\n\t\t\t\tcomponent: FormListContainerComponent\r\n\t\t\t}\r\n\t\t]\r\n\t}\r\n];\r\n\r\nexport const RoutingModule: ModuleWithProviders = RouterModule.forChild(routes);\r\n","import { Action } from \"@ngrx/store\";\r\n\r\nimport { FormSchemaModel } from \"../models\";\r\nimport { CaptchaModel } from \"../models/captcha.model\";\r\n\r\nexport enum CaptchaActionTypes {\r\n\tGET_CAPTCHA = \"[CAPTCHA][GET] GET_CAPTCHA\",\r\n\tGET_CAPTCHA_START = \"[CAPTCHA][GET] GET_CAPTCHA_START\",\r\n\tGET_CAPTCHA_SUCCEED = \"[CAPTCHA][GET] GET_CAPTCHA_SUCCEED\",\r\n\tGET_CAPTCHA_FAILED = \"[CAPTCHA][GET] GET_CAPTCHA_FAILED\"\r\n}\r\n\r\nexport class GetCaptchaAction implements Action {\r\n\treadonly type = CaptchaActionTypes.GET_CAPTCHA;\r\n\t// constructor(public payload: CaptchaModel) { }\r\n}\r\nexport class GetCaptchaStartAction implements Action {\r\n\treadonly type = CaptchaActionTypes.GET_CAPTCHA_START;\r\n\tconstructor(public payload: CaptchaModel) { }\r\n}\r\nexport class GetCaptchaSucceedAction implements Action {\r\n\treadonly type = CaptchaActionTypes.GET_CAPTCHA_SUCCEED;\r\n}\r\nexport class GetCaptchaFailedAction implements Action {\r\n\treadonly type = CaptchaActionTypes.GET_CAPTCHA_FAILED;\r\n}\r\n\r\nexport type CaptchaActions = GetCaptchaAction | GetCaptchaStartAction | GetCaptchaSucceedAction | GetCaptchaFailedAction;\r\n","import \"rxjs/add/operator/map\";\r\nimport \"rxjs/add/operator/mergeMap\";\r\nimport \"rxjs/add/operator/switchMap\";\r\n\r\nimport { Injectable } from \"@angular/core\";\r\nimport { Router } from \"@angular/router\";\r\nimport { Observable } from \"rxjs/Observable\";\r\nimport { Action } from \"@ngrx/store\";\r\nimport { Actions, Effect } from \"@ngrx/effects\";\r\nimport { of } from \"rxjs/observable/of\";\r\nimport { Store } from \"@ngrx/store\";\r\n\r\nimport { FormService } from \"../services/form.service\";\r\nimport { AddFormApiModel } from \"../models\";\r\nimport {\r\n\tCaptchaActionTypes,\r\n\tGetCaptchaSucceedAction,\r\n\tGetCaptchaFailedAction,\r\n\tGetCaptchaStartAction\r\n} from \"./captcha.actions\";\r\nimport { map, switchMap, catchError } from \"rxjs/operators\";\r\nimport { FormCaptchaService } from \"../services/form-captcha.service\";\r\n\r\n@Injectable()\r\nexport class CaptchaEffects {\r\n\tconstructor(private actions$: Actions<any>, private router: Router, private service: FormCaptchaService) {}\r\n\r\n\t@Effect()\r\n\tGetCaptcha$ = this.actions$\r\n\t\t.ofType(CaptchaActionTypes.GET_CAPTCHA)\r\n\t\t.pipe(map(action => action.payload), map(data => new GetCaptchaStartAction(data)));\r\n\r\n\t@Effect()\r\n\tAddFormStart$ = this.actions$\r\n\t\t.ofType(CaptchaActionTypes.GET_CAPTCHA_START)\r\n\t\t.pipe(\r\n\t\t\tmap(action => action.payload),\r\n\t\t\tswitchMap((data: AddFormApiModel.Request) => this.service.getCaptcha()),\r\n\t\t\tmap(res => new GetCaptchaSucceedAction()),\r\n\t\t\tcatchError(() => of(new GetCaptchaFailedAction()))\r\n\t\t);\r\n}\r\n","import { NgModule, ModuleWithProviders } from \"@angular/core\";\r\nimport { CommonModule } from \"@angular/common\";\r\nimport { RouterModule, Routes } from \"@angular/router\";\r\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\r\nimport { HttpClientModule } from \"@angular/common/http\";\r\nimport { FlexLayoutModule } from \"@angular/flex-layout\";\r\nimport {\r\n\tMatExpansionModule,\r\n\tMatSnackBarModule,\r\n\tMatIconModule,\r\n\tMatButtonModule,\r\n\tMatCardModule,\r\n\tMatSelectModule,\r\n\tMatInputModule,\r\n\tMatFormFieldModule,\r\n\tMatTabsModule,\r\n\tMatRadioModule,\r\n\tMatSlideToggleModule,\r\n\tMatDividerModule,\r\n\tMatCheckboxModule,\r\n\tMatTableModule,\r\n\tMatDatepickerModule\r\n} from \"@angular/material\";\r\nimport { StoreModule } from \"@ngrx/store\";\r\nimport { StoreDevtoolsModule } from \"@ngrx/store-devtools\";\r\nimport { EffectsModule, mergeEffects } from \"@ngrx/effects\";\r\n\r\nimport { FormModuleConfig, MODULE_CONFIG_TOKEN, MODULE_DEFAULT_CONFIG } from \"./form.config\";\r\nimport { FormReducers } from \"./main-container/main-container.reducers\";\r\nimport { SelectComponent } from \"./view/form-controls/select/select.component\";\r\nimport { FormGroupComponent } from \"./add/form-group/form-group.component\";\r\nimport { FormArrayComponent } from \"./add/form-array/form-array.component\";\r\nimport { FormControlComponent } from \"./add/form-control/form-control.component\";\r\nimport { FormViewComponent, DynamicFieldDirective } from \"./view/form-view/form-view.component\";\r\nimport { TextComponent } from \"./view/form-controls/text/text.component\";\r\nimport { CheckboxComponent } from \"./view/form-controls/checkbox/checkbox.component\";\r\nimport { EmailComponent } from \"./view/form-controls/email/email.component\";\r\nimport { ColorComponent } from \"./view/form-controls/color/color.component\";\r\nimport { NumberComponent } from \"./view/form-controls/number/number.component\";\r\nimport { TableComponent } from \"./view/form-controls/table/table.component\";\r\nimport { EditFormContainerComponent } from \"./edit/edit-form-container/edit-form-container.component\";\r\nimport { EditFormComponent } from \"./edit/edit-form/edit-form.component\";\r\nimport { FormListContainerComponent } from \"./list/form-list-container/form-list.container.component\";\r\nimport { FormListComponent } from \"./list/form-list/form-list.component\";\r\nimport { AddFormContainerComponent } from \"./add/add-form-container/add-form-container.component\";\r\nimport { MainContainerComponent } from \"./main-container/main-container.component/main-container.component\";\r\nimport { AddFormComponent } from \"./add/add-form/add-form.component\";\r\nimport { AddFormEffects } from \"./add/add-form.effects\";\r\nimport { EditFormEffects } from \"./edit/edit-form.effects\";\r\nimport { FormsListEffects } from \"./list/list.effects\";\r\nimport { RoutingModule } from \"./form-routing.module\";\r\nimport { DateFormInputControlComponent } from \"./view/form-controls/date/date.component\";\r\nimport { FileFormInputControlComponent } from \"./view/form-controls/file/file.component\";\r\nimport { CaptchaEffects } from \"./add/captcha.effects\";\r\nimport { FormCaptchaComponent } from \"./view/form-controls/form-captcha/form-captcha.component\";\r\nimport { FormConfigurationService } from \"./services/form-configuration.service\";\r\n\r\n@NgModule({\r\n\timports: [\r\n\t\tHttpClientModule,\r\n\t\tFormsModule,\r\n\t\tRouterModule,\r\n\t\tCommonModule,\r\n\t\tMatExpansionModule,\r\n\t\tMatSnackBarModule,\r\n\t\tMatIconModule,\r\n\t\tMatDatepickerModule,\r\n\t\tMatButtonModule,\r\n\t\tMatCardModule,\r\n\t\tMatCheckboxModule,\r\n\t\tMatTableModule,\r\n\t\tMatSelectModule,\r\n\t\tMatInputModule,\r\n\t\tMatFormFieldModule,\r\n\t\tMatTabsModule,\r\n\t\tMatDividerModule,\r\n\t\tFlexLayoutModule,\r\n\t\tMatRadioModule,\r\n\t\tMatSlideToggleModule,\r\n\t\tReactiveFormsModule\r\n\t],\r\n\tdeclarations: [\r\n\t\tEditFormContainerComponent,\r\n\t\tEditFormComponent,\r\n\t\tFormListContainerComponent,\r\n\t\tFormListComponent,\r\n\t\tAddFormContainerComponent,\r\n\t\tMainContainerComponent,\r\n\t\tAddFormComponent,\r\n\t\tFormGroupComponent,\r\n\t\tFormArrayComponent,\r\n\t\tFormControlComponent,\r\n\t\tFormViewComponent,\r\n\t\tDynamicFieldDirective,\r\n\t\tSelectComponent,\r\n\t\tCheckboxComponent,\r\n\t\tEmailComponent,\r\n\t\tColorComponent,\r\n\t\tDateFormInputControlComponent,\r\n\t\tFileFormInputControlComponent,\r\n\t\tTextComponent,\r\n\t\tNumberComponent,\r\n\t\tTableComponent,\r\n\t\tFormCaptchaComponent\r\n\t\t// NgsFormSelectorComponent\r\n\t],\r\n\tentryComponents: [\r\n\t\tSelectComponent,\r\n\t\tCheckboxComponent,\r\n\t\tEmailComponent,\r\n\t\tColorComponent,\r\n\t\tDateFormInputControlComponent,\r\n\t\tFileFormInputControlComponent,\r\n\t\tTextComponent,\r\n\t\tNumberComponent,\r\n\t\tTableComponent,\r\n\t\tFormCaptchaComponent\r\n\t],\r\n\texports: [ FormViewComponent ]\r\n\t// exports: [ FormViewComponent, NgsFormSelectorComponent ]\r\n})\r\nexport class NgsFormModule {\r\n\tstatic forRoot(config?: FormModuleConfig): ModuleWithProviders {\r\n\t\treturn {\r\n\t\t\tngModule: RootNgsFormModule,\r\n\t\t\tproviders: [ { provide: MODULE_CONFIG_TOKEN, useValue: config }, FormConfigurationService ]\r\n\t\t};\r\n\t}\r\n}\r\n\r\n@NgModule({\r\n\timports: [\r\n\t\tNgsFormModule,\r\n\t\tStoreModule.forFeature(\"form\", FormReducers),\r\n\t\tEffectsModule.forFeature([ AddFormEffects, EditFormEffects, FormsListEffects, CaptchaEffects ]),\r\n\t\tRoutingModule\r\n\t],\r\n\texports: [ NgsFormModule ]\r\n})\r\nexport class RootNgsFormModule {}\r\n"],"names":["BehaviorSubject","list.reducer"],"mappings":"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"}