{"__symbolic":"module","version":4,"metadata":{"ControlConfig":{"__symbolic":"interface"},"FieldSetControlConfig":{"__symbolic":"interface"},"FormSetControlConfig":{"__symbolic":"interface"},"ForeignKeyControlConfig":{"__symbolic":"interface"},"SelectControlConfig":{"__symbolic":"interface"},"AutoCompleteControlConfig":{"__symbolic":"interface"},"TextAreaControlConfig":{"__symbolic":"interface"},"TouchingFields":{"__symbolic":"interface"},"FieldConfig":{"__symbolic":"class","members":{}},"CustomElementConfig":{"__symbolic":"interface"},"ErrorMessage":{"__symbolic":"interface"},"PostSubmitAction":{"__symbolic":"interface"},"Metadata":{"__symbolic":"interface"},"ViewConfig":{"__symbolic":"interface"},"ListViewer":{"__symbolic":"interface"},"FormActions":{"__symbolic":"interface"},"FormViewer":{"__symbolic":"interface"},"IframeOptions":{"__symbolic":"interface"},"IFrameMode":{"POP_UP":"pop_up","NEW_PAGE":"new_page"},"FormView":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"Metadata"},{"__symbolic":"reference","name":"any"}]}]}},"ViewSettingsObj":{"__symbolic":"interface"},"ListingView":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"Metadata"},{"__symbolic":"reference","name":"any"}]}],"setDefaults":[{"__symbolic":"method"}]}},"ForeignKeyFieldComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":11,"character":1},"arguments":[{"selector":"ng-crud-foreign-key-field","exportAs":"ngcrudui-foreign-key","styles":[".input_icon{color: rgba(165, 151, 151, 0.87);height: 16px !important;cursor: pointer;margin-left: -20px;}"],"template":"<ng-container [formGroup]=\"formGroup\">\n    <mat-form-field>\n        <mat-label>{{ config.label }}</mat-label>\n        <mat-icon class=\"input_icon\" style=\"color: #2A55A2;\n        cursor: pointer;\n        position: absolute;\n        bottom: 10px;\n        right: 0px;\" *ngIf=\"config?.isSearchable\" (click)=\"openListingDialog($event)\">search</mat-icon>\n        <input type=\"text\" matInput id=\"{{config?.name}}-field\" [required]=\"formGroup.controls[config.name].hasError('required')\" [formControl]=\"_underlyingCtrl\" \n        attr.data-cy=\"{{config.label | getSelector}}-autocomplete\"\n        [matAutocomplete]=\"auto\">\n        <mat-error *ngIf=\"formGroup.controls[config.name].hasError('required') && (formGroup.controls[config.name].dirty || formGroup.controls[config.name].touched)\">\n            this field is required</mat-error>\n        <mat-error *ngIf=\"formGroup.controls[config.name].hasError('noOptionSelected')\">\n            Please select a valid option from the list\n        </mat-error>\n    </mat-form-field>\n\n    <mat-autocomplete (optionSelected)=\"selectOption($event.option.value)\" #auto=\"matAutocomplete\" [displayWith]=\"displayFn\">\n        <mat-option *ngFor=\"let option of availableOptions | async\" [value]=\"option\">\n            {{ option[controlConfig.metadata.optionName] }}\n        </mat-option>\n    </mat-autocomplete>\n</ng-container>"}]}],"members":{"formGroup":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":19,"character":3}}]}],"forcedSearchParams":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":20,"character":3}}]}],"config":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":21,"character":3}}]}],"display_name":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":22,"character":3}}]}],"initialChoices":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":23,"character":3}}]}],"reset":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":24,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ApiService"},{"__symbolic":"reference","module":"@angular/material/dialog","name":"MatDialog","line":30,"character":55}]}],"ngOnChanges":[{"__symbolic":"method"}],"ngOnInit":[{"__symbolic":"method"}],"selectOption":[{"__symbolic":"method"}],"fetchById":[{"__symbolic":"method"}],"fetch":[{"__symbolic":"method"}],"displayFn":[{"__symbolic":"method"}],"_filter":[{"__symbolic":"method"}],"_setControlValue":[{"__symbolic":"method"}],"openListingDialog":[{"__symbolic":"method"}],"removeSelection":[{"__symbolic":"method"}]}},"ForeignKeyFiledMultipleComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":9,"character":1},"arguments":[{"selector":"ng-foreign-key-filed-multiple","template":"<mat-select-autocomplete placeholder=\"{{config.label}}\" [fieldFormControl]=\"_underlyingCtrl\"\n  [ElementWidth]=\"config?.isSearchable ? '85%' : '100%'\" [options$]=\"options$.asObservable()\"\n  [display]=\"config.dropDownDisplay? config.dropDownDisplay : config.listFrom\" [value]=\"config.resolveValueFrom\" [multiple]='true' [labelCount]=\"10\"\n  [selectedOptions]=\"selectedOptions\" (selectionChange)=\"selected($event)\" (onSearch)=\"fetch($event)\"\n  [fieldsSelectors]=\"{searchField: config.name+'-search-field', selectField: 'select-'+ config.name, clearFieldIcon: 'icon-clear-' + config.name + '-field', clearSelection: config.name + '-clear-selection'}\">\n</mat-select-autocomplete>\n\n<mat-icon class=\"foriegnkey-lookup-icon\" id=\"lookup-{{config.name}}\" *ngIf=\"config?.isSearchable\"\n  (click)=\"openListingDialog($event)\">search\n</mat-icon>\n\n\n<!-- Copyright 2019 Google LLC. All Rights Reserved.\n    Use of this source code is governed by an MIT-style license that\n    can be found in the LICENSE file at http://angular.io/license -->","styles":[".foriegnkey-lookup-icon{color:#2a55a2;cursor:pointer;margin-left:3%;vertical-align:middle}"]}]}],"members":{"formGroup":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":20,"character":3}}]}],"mode":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":21,"character":3}}]}],"config":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":22,"character":3}}]}],"reset":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":23,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ApiService"},{"__symbolic":"reference","module":"@angular/material/dialog","name":"MatDialog","line":28,"character":55}]}],"ngOnChanges":[{"__symbolic":"method"}],"fetch":[{"__symbolic":"method"}],"selected":[{"__symbolic":"method"}],"openListingDialog":[{"__symbolic":"method"}],"setFormControlValue":[{"__symbolic":"method"}]}},"FormFieldComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":5,"character":1},"arguments":[{"selector":"ng-crud-form-field","exportAs":"ngcrudui-form-field","template":"<ng-container [ngSwitch]=\"config?.type\" [formGroup]=\"formGroup\" *ngIf=\"config?.showInListing !== false || mode !== 'search'\">\n\n    <ng-container *ngSwitchCase=\"'boolean'\">\n        <div class=\"checkbox-container\">\n            <mat-checkbox matInput class=\"crud_checkbox\" id=\"{{config?.name}}-field\" [formControlName]=\"config.name\" color=\"primary\" attr.data-cy=\"{{config.label | getSelector}}-checkbox\">{{ config.label }}</mat-checkbox>\n        </div>\n    </ng-container>\n\n    <ng-container *ngSwitchCase=\"'textArea'\">\n        <ng-crud-text-area-field [formGroup]=\"formGroup\" [config]=\"config\"></ng-crud-text-area-field>\n    </ng-container>\n\n    <ng-container *ngSwitchCase=\"'select'\">\n        <ng-crud-select-field [formGroup]=\"formGroup\" [config]=\"config\"></ng-crud-select-field>\n    </ng-container>\n\n    <mat-form-field *ngSwitchCase=\"'date'\">\n        <mat-label>{{ config?.label }}</mat-label>\n        <input matInput [formControlName]=\"config?.name\" id=\"{{config?.label | getSelector}}-input\"\n         attr.data-cy=\"{{config.label | getSelector}}-input\" [matDatepicker]=\"myDatepicker\" />\n        <mat-error *ngIf=\"f[config.name].hasError('required') && (f[config.name].dirty || f[config.name].touched)\" id=\"{{config.name}}-required-error\">\n            this field is required</mat-error>\n        <mat-datepicker-toggle matSuffix [for]=\"myDatepicker\" style=\"color: #2A55A2\"></mat-datepicker-toggle>\n        <mat-datepicker [startAt]=\"config?.DatePickerStartAt\" #myDatepicker></mat-datepicker>\n    </mat-form-field>\n\n    <ng-container *ngSwitchCase=\"'foreignKey'\">\n        <ng-crud-foreign-key-field [reset]=\"reset\" [config]=\"config\" [formGroup]=\"formGroup\" [initialChoices]=\"config?.defaultValue\">\n        </ng-crud-foreign-key-field>\n    </ng-container>\n\n    <ng-container *ngSwitchCase=\"'foreignKey_multiple'\">\n        <ng-foreign-key-filed-multiple [reset]=\"reset\" [mode]=\"mode\" [config]=\"config\" [formGroup]=\"formGroup\">\n        </ng-foreign-key-filed-multiple>\n    </ng-container>\n\n    <ng-container *ngSwitchCase=\"'file'\">\n        <ng-crud-attachments [config]=\"config\" [formGroup]=\"formGroup\" (deleteAttachment)=\"deleteAttachment($event)\">\n        </ng-crud-attachments>\n    </ng-container>\n\n    <ng-container *ngSwitchCase=\"'datetime'\">\n        <ng-date-time-picker [config]=\"config\" [formGroup]=\"formGroup\"></ng-date-time-picker>\n    </ng-container>\n\n    <ng-container *ngSwitchCase=\"'time'\">\n        <ng-time-picker [config]=\"config\" [formGroup]=\"formGroup\"></ng-time-picker>\n    </ng-container>\n\n    <!-- this fallsback from number and text -->\n    <mat-form-field *ngSwitchDefault>\n        <mat-label>{{ config?.label }}</mat-label>\n        <input matInput [formControlName]=\"config?.name\" attr.data-cy=\"{{config.label | getSelector}}-input\" id=\"{{config?.name}}-field\" [maxlength]=\"config?.maxlength\" [required]=\"f[config?.name].hasError('required') && mode !== 'search'\" [type]=\"config?.control ? config?.control.type : 'text'\" [readonly]=\"config.disabled !== undefined ? config.disabled : false\"/>\n        <ng-container *ngIf=\"mode !== 'search'\">\n            <mat-error *ngIf=\"f[config.name].hasError('required') && (f[config.name].dirty || f[config.name].touched)\" id=\"{{config.name}}-required-error\">\n                this field is required</mat-error>\n            <mat-error *ngIf=\"f[config.name].hasError('maxlength') && (f[config.name].dirty || f[config.name].touched)\" id=\"{{config.name}}-maxLength-error\">\n                max length is {{config?.maxlength}} characters</mat-error>\n            <mat-error *ngIf=\"f[config.name].hasError('pattern') && (f[config.name].dirty || f[config.name].touched)\" id=\"{{config.name}}-pattern-error\">\n                {{getFieldErrorMessage(\"pattern\")? getFieldErrorMessage(\"pattern\"): \"pattern for this field is invalid\"}}\n            </mat-error>\n            <mat-error *ngIf=\"(f[config.name].hasError('min') || f[config.name].hasError('max')) \n            && (f[config.name].dirty || f[config.name].touched)\" id=\"{{config.name}}-min-max-error\">\n                {{getFieldErrorMessage(\"minOrMax\") ? getFieldErrorMessage(\"minOrMax\"): \"Wrong minimum or maximum value.\"}}\n            </mat-error>\n        </ng-container>\n    </mat-form-field>\n</ng-container>\n","styles":[".holdFormCell{display:flex;flex-direction:column;width:100%}.checkbox-container{width:100%;height:100%;display:flex;align-items:center}::ng-deep.mat-checkbox-layout{padding:.4375em 0}"]}]}],"members":{"formGroup":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":13,"character":3}}]}],"mode":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":14,"character":3}}]}],"forcedSearchParams":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":15,"character":3}}]}],"config":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":16,"character":3}}]}],"choices":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":17,"character":3}}]}],"reset":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":18,"character":3}}]}],"elementDeleted":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":19,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor"}],"ngOnChanges":[{"__symbolic":"method"}],"deleteAttachment":[{"__symbolic":"method"}],"ngOnInit":[{"__symbolic":"method"}],"checkValidity":[{"__symbolic":"method"}],"getFieldErrorMessage":[{"__symbolic":"method"}]}},"FormsetComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":6,"character":1},"arguments":[{"selector":"ng-crud-formset","exportAs":"ngcrudui-formset","template":"<div *ngIf=\"control\">\n    <div class=\"row\">\n        <span class=\"spacer\"></span>\n        <button mat-raised-button (click)=\"addForm()\" class=\"add_btn\">\n            <mat-icon>add</mat-icon> Add\n        </button>\n    </div>\n    <div *ngIf=\"control?.subFields; else formsets\">\n        <ng-container [formGroup]=\"formGroup\">\n            <div [formArrayName]=\"config.name\">\n                <ng-container *ngFor=\"let _formGroup of formArray?.controls; index as i; trackBy: trackByFn\">\n                    <div class=\"row formset_container\">\n                        <ng-container *ngFor=\"let field of control.subFields\">\n                            <div *ngIf=\"field.isEditable\" class=\"crud-form-field-container\">\n                                <ng-crud-form-field [choices]=\"choices[field.name]\" [mode]=\"mode\"\n                                    [formGroup]=\"_formGroup\" [config]=\"field\">\n                                </ng-crud-form-field>\n                            </div>\n                        </ng-container>\n                        <div class=\"delete_btn bottom\">\n                            <button mat-icon-button style=\"color:red;\" (click)=\"delete(i)\">\n                                <mat-icon>delete_outline</mat-icon>\n                            </button>\n                        </div>\n                    </div>\n                </ng-container>\n            </div>\n        </ng-container>\n    </div>\n    <ng-template #formsets>\n        <ng-container [formGroup]=\"formGroup\">\n            <div [formArrayName]=\"config.name\">\n                <ng-container *ngFor=\"let _formGroup of formArray?.controls; index as i; trackBy: trackByFn\">\n                    <div class=\"row formset_container\">\n                        <ng-container *ngFor=\"let field of control.fields\">\n                            <div *ngIf=\"field.isEditable\" class=\"crud-form-field-container\">\n                                <ng-crud-form-field [choices]=\"choices[field.name]\" [mode]=\"mode\"\n                                    [formGroup]=\"_formGroup\" [config]=\"field\">\n                                </ng-crud-form-field>\n                            </div>\n                        </ng-container>\n                        <div class=\"delete_btn top\">\n                            <button mat-icon-button style=\"color:red;\" (click)=\"delete(i)\">\n                                <mat-icon>delete_outline</mat-icon>\n                            </button>\n                        </div>\n                    </div>\n                </ng-container>\n            </div>\n        </ng-container>\n    </ng-template>\n</div>","styles":[".formset{padding-top:12px}.row{display:flex}.row~.delete_btn{text-align:end}.row~.delete_btn a{text-decoration:underline;color:#e44b4b}.spacer{flex:1 1 auto}.add_btn{background-color:#5bb859;color:#fff}.formset_container{flex-wrap:wrap;background-color:hsla(0,0%,50.2%,.15);border-radius:4px;margin:10px 0;padding:10px}.crud-form-field-container{width:24%;display:inline-block;box-sizing:border-box;padding:0 9px}.delete_btn.top{width:calc(25% - 18px)}.delete_btn.bottom{position:absolute;right:40px;display:flex;justify-content:center;align-items:center;padding-top:10px}.delete_btn button{float:right}@media only screen and (max-width:599px){.crud-form-field-container{width:calc(50% - 17px);flex-grow:1;margin-right:0!important;padding:0}::ng-deep .crud_expansion_panel .mat-expansion-panel-body{padding:15px 8px 8px;gap:0 15px}::ng-deep .crud_expansion_panel .mat-expansion-panel-header{padding:0 8px}.mat-panel-title{font-size:16px}.delete_btn.bottom,.delete_btn.top{width:100%;position:unset;display:block;padding:0}.formset_container{gap:0 15px}}"]}]}],"members":{"formGroup":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":14,"character":3}}]}],"config":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":15,"character":3}}]}],"mode":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":16,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"FormService"}]}],"ngOnChanges":[{"__symbolic":"method"}],"getHiddenField":[{"__symbolic":"method"}],"addForm":[{"__symbolic":"method"}],"delete":[{"__symbolic":"method"}],"trackByFn":[{"__symbolic":"method"}]}},"ListingComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":21,"character":1},"arguments":[{"selector":"ng-crud-listing","exportAs":"ngcrudui-listing","template":"<ng-container>\n    <div *ngIf=\"!userHasPermission\" data-cy=\"no-permission-label\">\n        {{\"You don't have permissions to access this page!\" | translate}}\n    </div>\n    <div [ngStyle]=\"{'display': (initialLoading || !userHasPermission)?'none':'flex'}\" class=\"row add-new-row\" *ngIf=\"!viewConfig.dialog_mode\">\n        <ng-container #normal>\n            <button class=\"crud-new-btn\" mat-button routerLink=\"add\" id=\"create-btn\">\n                <mat-icon>add</mat-icon> Add New\n            </button>\n        </ng-container>\n        <ng-container *ngIf=\"viewConfig?.metadata?.externalViews\">\n            <button class=\"crud-views-button\" mat-raised-button color=\"primary\"\n                *ngFor=\"let view of viewConfig?.metadata?.externalViews\" (click)=\"changeView(view.link)\">\n                <mat-icon>{{view.icon}}</mat-icon>\n                {{view.name}}\n            </button>\n        </ng-container>\n    </div>\n    <h2 mat-dialog-title style=\"padding:10px;\" class=\"separated\" *ngIf=\"viewConfig.dialog_mode\">\n        <span> {{viewConfig.title + \" Search\"}}</span>\n        <mat-icon class=\"cancel_icon\" (click)=\"cancel()\" id=\"close-dialog-icon\">cancel</mat-icon>\n    </h2>\n    <ng-container *ngIf=\"viewConfig?.dialog_settings?.add_new_btn\">\n        <div class=\"dilaog-btns-container\" [ngStyle]=\"{'display': (initialLoading) ? 'none':'block'}\">\n            <a id=\"dialog-add-new-btn\" mat-button color=\"primary\" (click)=\"openCreationPopUp()\">\n                Add New\n            </a>\n        </div>\n    </ng-container>\n    <ng-template [ngIf]=\"viewConfig?.search?.enabled\">\n        <mat-expansion-panel [ngStyle]=\"{'display': (initialLoading || !userHasPermission)?'none':'block'}\"\n        [expanded]=\"viewConfig.metadata.expanded !== undefined ? viewConfig.metadata.expanded : true\"\n            class=\"crud-search\">\n            <mat-expansion-panel-header>\n                <mat-panel-title>\n                    <mat-icon>search</mat-icon>\n                    <mat-label>Search</mat-label>\n                </mat-panel-title>\n            </mat-expansion-panel-header>\n\n            <div #searchComponent></div>\n        </mat-expansion-panel>\n    </ng-template>\n\n\n    <div class=\"fo-spinner-main-container\" *ngIf=\"isLoading\">\n        <div class=\"fo-spinner-overlay\"></div>\n        <div class=\"fo-spinner-container\">\n            <mat-spinner class=\"fo-spinner\"></mat-spinner>\n        </div>\n    </div>\n\n    <div class=\"grid-spinner\" *ngIf=\"initialLoading\">\n        <mat-spinner></mat-spinner>\n    </div>\n\n    <div class=\"bulk_container\">\n        <button mat-raised-button class=\"bulk_btn\" [matMenuTriggerFor]=\"menu\" *ngIf=\"selection.selected.length>0 &&\n            viewConfig.metadata.bulkActions?.length>0\">Bulk Actions\n            <mat-icon>arrow_drop_down</mat-icon>\n        </button>\n        <mat-menu #menu=\"matMenu\">\n            <ng-container *ngFor=\"let action of viewConfig.metadata.bulkActions\">\n                <button mat-menu-item (click)=\"onAction(action)\"\n                    *ngIf=\"selection.selected.length>=action.minLength\">{{action.name}}</button>\n            </ng-container>\n        </mat-menu>\n    </div>\n    <mat-table [dataSource]=\"dataSource\" class=\"crud-table\" [ngStyle]=\"{'display': (initialLoading || !userHasPermission)?'none':'block'}\">\n        <ng-container *ngFor=\"let column of columns;let i=index\" [matColumnDef]=\"column.columnDef\">\n            <ng-template [ngIf]=\"column.columnDef === 'checked'\">\n                <ng-container matColumnDef=\"select\">\n                    <mat-header-cell *matHeaderCellDef>\n                        <mat-checkbox *ngIf=\"viewConfig.metadata.bulkActions?.length>0\"\n                            (change)=\"$event ? masterToggle() : null\"\n                            [checked]=\"selection.hasValue() && isAllSelected()\"\n                            [indeterminate]=\"selection.hasValue() && !isAllSelected()\" [aria-label]=\"checkboxLabel()\">\n                        </mat-checkbox>\n                    </mat-header-cell>\n                    <mat-cell *matCellDef=\"let row\">\n                        <mat-checkbox *ngIf=\"viewConfig.metadata.bulkActions?.length>0\"\n                            (click)=\"$event.stopPropagation()\" (change)=\"$event ? selection.toggle(row) : null\"\n                            [checked]=\"selection.isSelected(row)\" [aria-label]=\"checkboxLabel(row)\">\n                        </mat-checkbox>\n                    </mat-cell>\n                </ng-container>\n            </ng-template>\n\n            <ng-container *ngIf=\"column?.type === 'custom_element'\">\n                <mat-header-cell id=\"{{getColId(column.header)}}\" *matHeaderCellDef>\n                    {{ column.header }}\n                </mat-header-cell>\n                <mat-cell *matCellDef=\"let row\">\n                    <span #customElement></span>\n                </mat-cell>\n            </ng-container>\n\n            <ng-template [ngIf]=\"column.columnDef !== 'checked' &&\n             column.columnDef !== 'actions' &&\n              column.Def !== 'functions'\">\n                <mat-header-cell id=\"{{getColId(column.header)}}\" *matHeaderCellDef>{{ column.header }}\n                </mat-header-cell>\n                <mat-cell id=\"{{'cell-'+i}}\" attr.data-cy=\"{{column.header | getSelector}}\"  *matCellDef=\"let row\"\n                    [ngStyle]=\"column.cellStyle? column.cellStyle[column.cell(row)]: {}\">\n                    <ng-container #normal>\n                        <a class=\"clickable\" (click)=\"openEditView(row?.id)\"\n                            *ngIf=\"(mode !== 'pick' && column.clickable); else normalCell\">\n                            <ng-container *ngIf=\"(isString(column.cell(row)) && column?.isTranslated); else otherTypes\">\n                                {{ column.cell(row) | translate }}\n                            </ng-container>\n                            <ng-template #otherTypes>\n                                {{ column.cell(row) }}\n                            </ng-template>\n                        </a>\n                    </ng-container>\n\n                    <ng-template #normalCell>\n                        <ng-container *ngIf=\"column.cell(row)!=='boolean'\">\n                            <ng-container *ngIf=\"(isString(column.cell(row)) && column?.isTranslated); else otherTypes\">\n                                {{ column.cell(row)| translate }}\n                            </ng-container>\n                            <ng-template #otherTypes>\n                                {{ column.cell(row) ? column.cell(row): ''}}\n                            </ng-template>\n                        </ng-container>\n                        <ng-container *ngIf=\"column.cell(row)==='boolean'\">\n                            <mat-icon class=\"checkmark_icon\">checkmark</mat-icon>\n                        </ng-container>\n                    </ng-template>\n                </mat-cell>\n            </ng-template>\n            <ng-template [ngIf]=\"column.columnDef === 'edit'\">\n                <mat-header-cell id=\"{{getColId(column.header)}}\" *matHeaderCellDef>{{ column.header }}\n                </mat-header-cell>\n                <mat-cell id=\"edit-cell\" *matCellDef=\"let row\">\n                    <a class=\"clickable\" [routerLink]=\"row?.id\">\n                        <mat-icon>edit</mat-icon>\n                    </a>\n                </mat-cell>\n            </ng-template>\n            <ng-template [ngIf]=\"column.columnDef === 'delete'\">\n                <mat-header-cell id=\"{{getColId(column.header)}}\" *matHeaderCellDef>{{ column.header }}\n                </mat-header-cell>\n                <mat-cell id=\"delete-cell\" *matCellDef=\"let row\">\n                    <a class=\"clickable\" (click)=\"deleteRow(row?.id)\">\n                        <mat-icon>delete</mat-icon>\n                    </a>\n                </mat-cell>\n            </ng-template>\n            <ng-template [ngIf]=\"column.columnDef === 'actions'\">\n                <mat-header-cell id=\"{{getColId(column.header)}}\" *matHeaderCellDef>{{ column.header }}\n                </mat-header-cell>\n                <mat-cell *matCellDef=\"let row\">\n                </mat-cell>\n            </ng-template>\n        </ng-container>\n        <mat-header-row *matHeaderRowDef=\"displayColumns\"></mat-header-row>\n        <mat-row *matRowDef=\"let row; columns: displayColumns;index as i\" id=\"listing-row-{{i}}\" attr.data-cy=\"listing-row-{{i}}\"\n        [ngClass]=\"{'clickable': mode === 'pick'}\"\n        (click)=\"mode==='pick' && _picked(row)\"></mat-row>\n    </mat-table>\n    <mat-paginator [ngStyle]=\"{'display': (initialLoading || !userHasPermission)?'none':'block'}\" class=\"crud-paginator\" #paginator\n        *ngIf=\"viewConfig.pagination.enabled\" [length]=\"resultsCount\" [pageIndex]=\"pages-1\" [pageSize]=\"20\"\n        (page)=\"onChange($event)\">\n    </mat-paginator>\n    <ng-container *ngIf=\"openComponent\">\n        <div #customComponent></div>\n    </ng-container>","styles":[".add-new-row{margin:10px 20px;flex-direction:row;box-sizing:border-box;display:flex;place-content:space-between;align-items:center}.search-form-comp{margin:0 30px}.clickable{color:#2a55a2;cursor:pointer;text-decoration:none}.cancel_icon{float:right;cursor:pointer;position:relative}.mat-dialog-title{margin:0 0 20px;display:block}.crud-search{border:1px solid #d3d6dd;margin:0 20px}::ng-deep .crud-search .mat-expansion-panel-body{display:block}::ng-deep .crud-search .mat-expansion-panel-body .FormCell{padding:0 10px;box-sizing:border-box}::ng-deep .crud-search .mat-form-field{border-right:0;width:100%}.mat-expansion-panel-header,.mat-expansion-panel-header:hover{background-color:#2a55a2!important;height:45px}.bulk_container{display:flex;flex-direction:row-reverse;background-color:#fafafa;top:0;margin:8px 50px;z-index:1000}.bulk_btn{background-color:#2a8fc1;color:#fff}.crud-new-btn{width:9rem}#dialog-add-new-btn,.crud-new-btn{background-color:#5ab857;color:#fff}#dialog-add-new-btn{margin-bottom:20px;width:119px}.dilaog-btns-container{text-align:end}.crud-new-btn:hover{background-color:#84c273}.crud-new-btn:focus{background-color:#4f8b3e}.checkmark_icon{color:#5bb75b}.crud-views-button{float:right;background-color:#5ab857}.crud-views-button:hover{background-color:#84c273}.crus-views-button:focus{background-color:#4f8b3e}.separated{border-bottom:1px solid #929292}mat-row{align-items:stretch}mat-header-cell{background-color:#cecece;color:#231f20}mat-expansion-panel{background-color:#2a55a2;margin-bottom:10px}mat-panel-title{font-size:17px;color:#fff}::ng-deep .crud-search .mat-expansion-panel-body{background-color:#fff;padding:0}::ng-deep .crud-search .crud-form-body{padding:10px 24px 16px}::ng-deep .mat-paginator-container{justify-content:center!important}.crud-table{margin:8px 20px}.crud-table .mat-header-cell{color:#231f20;border-bottom:1px solid #000;font-weight:600;font-size:14px;background-color:#fff}@media (min-width:992px) and (max-width:1600px){.crud-search{margin:8px 50px}.crud-paginator{margin:24px 50px}.crud-paginator,.crud-table{font-family:Roboto,sans-serif;font-size:16}.crud-table{margin:0 50px}.crud-views-button{margin-right:50px}.crud-new-btn{margin-left:50px}}@media (min-width:1601px){.bulk_container{margin:8px 0}}@media (max-width:991px){.bulk_container{margin:0}}.grid-spinner{margin-top:calc(50vh - 100px)}.fo-spinner-main-container,.grid-spinner{display:flex;justify-content:center}.fo-spinner-overlay{position:fixed;height:100vh;width:100%;z-index:3}.fo-spinner-container{margin:auto;height:150px;width:150px;background-color:#fff;border-radius:50%;box-shadow:0 2px 1px -1px #001400,0 1px 1px 0 #c9c9d6,0 1px 3px 0 #00000c;position:fixed;top:calc(50% - 50px);z-index:5}.fo-spinner{width:100px;height:100px;margin:auto;top:calc(50% - 50px)}"]}]}],"members":{"paginator":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":28,"character":5},"arguments":[{"__symbolic":"reference","module":"@angular/material/paginator","name":"MatPaginator","line":28,"character":15},{"static":false}]}]}],"viewConfig":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":29,"character":5}}]}],"forcedSearchParams":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":33,"character":5}}]}],"searchComponent":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":46,"character":5},"arguments":["searchComponent",{"read":{"__symbolic":"reference","module":"@angular/core","name":"ViewContainerRef","line":46,"character":42},"static":false}]}]}],"customComponent":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":47,"character":5},"arguments":["customComponent",{"read":{"__symbolic":"reference","module":"@angular/core","name":"ViewContainerRef","line":47,"character":42}}]}]}],"customElement":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChildren","line":48,"character":5},"arguments":["customElement",{"read":{"__symbolic":"reference","module":"@angular/core","name":"ViewContainerRef","line":48,"character":43}}]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ApiService"},{"__symbolic":"reference","module":"@angular/core","name":"ViewContainerRef","line":53,"character":34},{"__symbolic":"reference","module":"@angular/material/dialog","name":"MatDialog","line":54,"character":24},{"__symbolic":"reference","module":"@angular/core","name":"ComponentFactoryResolver","line":55,"character":26},{"__symbolic":"reference","name":"MatDialogRef","module":"@angular/material/dialog","arguments":[{"__symbolic":"reference","name":"ListingDialogComponent"}]},{"__symbolic":"reference","module":"@angular/router","name":"Router","line":57,"character":24},{"__symbolic":"reference","module":"@angular/router","name":"ActivatedRoute","line":58,"character":29}]}],"ngOnInit":[{"__symbolic":"method"}],"ngAfterViewInit":[{"__symbolic":"method"}],"prepareColumns":[{"__symbolic":"method"}],"generateCode":[{"__symbolic":"method"}],"populateDataTable":[{"__symbolic":"method"}],"populateParams":[{"__symbolic":"method"}],"changeView":[{"__symbolic":"method"}],"getColId":[{"__symbolic":"method"}],"openEditView":[{"__symbolic":"method"}],"fetch":[{"__symbolic":"method"}],"addCustomElementColumnsToTemplate":[{"__symbolic":"method"}],"addCustomComponent":[{"__symbolic":"method"}],"onChange":[{"__symbolic":"method"}],"searchClicked":[{"__symbolic":"method"}],"setMultipleForeignFieldParams":[{"__symbolic":"method"}],"isAllSelected":[{"__symbolic":"method"}],"masterToggle":[{"__symbolic":"method"}],"checkboxLabel":[{"__symbolic":"method"}],"onAction":[{"__symbolic":"method"}],"_picked":[{"__symbolic":"method"}],"cancel":[{"__symbolic":"method"}],"deleteRow":[{"__symbolic":"method"}],"isString":[{"__symbolic":"method"}],"openCreationPopUp":[{"__symbolic":"method"}]}},"ModelFormComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":21,"character":1},"arguments":[{"selector":"ng-crud-model-form","exportAs":"ngcrudui-model-form","providers":[{"provide":{"__symbolic":"reference","module":"@angular/material/core","name":"DateAdapter","line":27,"character":19},"useClass":{"__symbolic":"reference","name":"ɵc"}},{"provide":{"__symbolic":"reference","module":"@angular/material/core","name":"MAT_DATE_FORMATS","line":28,"character":19},"useValue":{"__symbolic":"reference","name":"ɵb"}}],"template":"<div class=\"grid-spinner\" *ngIf=\"initialLoading;else page\">\n    <mat-spinner></mat-spinner>\n</div>\n\n<ng-template #page>\n    <div [hidden]=\"viewMode === 'form'\">\n        <body style=\"margin:0px;padding:0px;overflow:hidden\">\n            <iframe [src]=\"iframeSrc | safe\" #iframe frameborder=\"0\" id=\"crud-iframe\"\n            style=\"overflow:hidden;overflow-x:hidden;overflow-y:hidden;height:100%;width:100%;position:absolute;top:0px;left:0px;right:0px;bottom:0px\"\n            height=\"100%\" width=\"100%\"></iframe>\n        </body>\n    </div>\n    <ng-container #crudComponent *ngIf=\"viewMode === 'form'\">\n        <h2 mat-dialog-title style=\"padding:10px;\" class=\"separated\" *ngIf=\"openedInaialog\">\n            <span> {{id? \"Edit \" + viewConfig.title : \"Add New \" + viewConfig.title}}</span>\n            <mat-icon class=\"cancel_icon\" (click)=\"cancel($event)\" id=\"close-dialog-icon\">cancel</mat-icon>\n        </h2>\n        <div class=\"crud-form-body\" [ngStyle]=\"{'display': (initialLoading && mode==='edit')?'none':''}\">\n            <ng-template [ngIf]=\"is_ready\">\n                <ng-error-handling></ng-error-handling>\n                    <div class=\"header_btn_container\" *ngIf=\"viewConfig?.metadata?.formActions?.length && mode==='edit'\">\n                        <span class=\"header_btns\">\n                            <ng-container *ngIf=\"dropDownActionButtons?.length\">\n                                <button mat-raised-button id=\"actions-btn\" [matMenuTriggerFor]=\"menu\">\n                                    <mat-icon>more_horiz</mat-icon>\n                                </button>\n                                <mat-menu #menu=\"matMenu\">\n                                    <div *ngFor=\"let link of dropDownActionButtons; last as last\">\n                                        <button *ngIf=\"link?.isShown\" mat-button class=\"header_btn\"\n                                            [ngStyle]=\"getStyles(link)\" id=\"{{link.name}}-btn\" (click)=\"onAction(link)\">\n                                            <mat-icon *ngIf=\"link.icon\">{{link.icon}}</mat-icon>\n                                            {{link.name}}\n                                        </button>\n                                        <mat-divider class=\"action_btn_divider\" *ngIf=\"!last\"></mat-divider>\n                                    </div>\n                                </mat-menu>\n                            </ng-container>\n                        </span>\n                        <ng-container *ngFor=\"let link of normalActionButtons;\">\n                            <button [ngStyle]=\"getStyles(link)\" mat-raised-button *ngIf=\"link?.isShown\" class=\"header_btn history\"\n                                attr.data-cy=\"{{link.name | getSelector}}\"\n                                (click)=\"onAction(link)\">\n                                {{link.name}}\n                            </button>\n                        </ng-container>\n                    </div>\n\n                <div fxflexfill fxlayoutgap=\"18px grid\" fxlayoutgap.xs=\"16px grid\" class=\"row full\" [formGroup]=\"formGroup\">\n                    <ng-container *ngFor=\"let config of _visibleControls\">\n                        <ng-container *ngIf=\"config?.type === 'fieldset'\">\n                            <mat-accordion class=\"crud-accordion\">\n                                <mat-expansion-panel class=\"crud_expansion_panel\" [expanded]=\"config.expanded !== undefined ? config.expanded : true\">\n                                    <mat-expansion-panel-header id=\"{{config?.label}}-toggle\" [collapsedHeight]=\"'40px'\" [expandedHeight]=\"'40px'\">\n                                        <mat-panel-title class=\"panel_title\">\n                                            <mat-label>{{config?.label}}</mat-label>\n                                        </mat-panel-title>\n                                    </mat-expansion-panel-header>\n                                    <ng-container *ngFor=\"let config2 of config?.control?.fields\">\n                                        <div *ngIf=\"config2?.isEditable\"\n                                            class=\"crud-form-field-container outer-fields\">\n                                            <ng-crud-form-field class=\"FormCell\" [style.flex.%]=\"config.cssWidth\"\n                                                [style.max-width.%]=\"config.cssMaxWidth\"\n                                                [reset]=\"submit\" [config]=\"config2\" [mode]=\"mode\" [formGroup]=\"formGroup\"\n                                                (elementDeleted)=\"elementDeleted($event)\">\n                                            </ng-crud-form-field>\n                                        </div> \n                                    </ng-container>\n                                    <ng-container *ngIf=\"config?.control?.subFields\">\n                                            <mat-divider class=\"divider\"></mat-divider>\n                                            <ng-container *ngFor=\"let config3 of subFormsets; let i=index\">\n                                                <div class=\"formset_container\">\n                                                    <ng-crud-formset class=\"FormCell\" [config]=\"config3\" [mode]=\"mode\"\n                                                        [formGroup]=\"formGroup\">\n                                                    </ng-crud-formset>\n                                                </div>\n                                            </ng-container>\n                                    </ng-container>\n                                    <ng-container *ngIf=\"config?.control?.collapsibleFields\">\n                                            <mat-accordion style=\"width: 100%;\">\n                                                <mat-expansion-panel id=\"collapsible_control\" [expanded]=\"isExpanded\">\n                                                    <mat-expansion-panel-header (click)=\"toggleExpansion()\" id=\"collapsed-fields\" class=\"collapsible-accordion\">\n                                                        <mat-divider *ngIf=\"isExpanded\" class=\"divider\"></mat-divider>\n                                                    </mat-expansion-panel-header>\n                                                    <ng-container\n                                                        *ngFor=\"let config2 of config?.control?.collapsibleFields\">\n                                                        <div *ngIf=\"config2?.isEditable\"\n                                                            class=\"crud-form-field-container\"\n                                                            [style.width.%]=\"config2.cssWidth\">\n                                                            <ng-crud-form-field class=\"FormCell\"\n                                                                [style.flex.%]=\"config.cssWidth\" [reset]=\"submit\"\n                                                                [config]=\"config2\" [mode]=\"mode\" [formGroup]=\"formGroup\"\n                                                                (elementDeleted)=\"elementDeleted($event)\">\n                                                            </ng-crud-form-field>\n                                                        </div>\n                                                    </ng-container>\n                                                </mat-expansion-panel>\n                                            </mat-accordion>\n                                    </ng-container>\n                                </mat-expansion-panel>\n                            </mat-accordion>\n                        </ng-container>\n                        <ng-container *ngIf=\"config.type !== 'fieldset' && config.type !== 'formset' && config.isEditable\">\n                            <div *ngIf=\"mode==='edit' || mode==='create';else search\" class=\"crud_edit_fields\">\n                                <ng-crud-form-field class=\"FormCell\" [mode]=\"mode\" [reset]=\"submit\" [formGroup]=\"formGroup\"\n                                    [config]=\"config\" (elementDeleted)=\"elementDeleted($event)\">\n                                </ng-crud-form-field>\n                            </div>\n                            <ng-template #search>\n                                <ng-crud-form-field class=\"FormCell\" [mode]=\"mode\" [reset]=\"submit\" [formGroup]=\"formGroup\"\n                                    [config]=\"config\" (elementDeleted)=\"elementDeleted($event)\">\n                                </ng-crud-form-field>\n                            </ng-template>\n                        </ng-container>\n                        <ng-container *ngIf=\"config?.type === 'formset'\">\n                            <mat-accordion class=\"crud-accordion\">\n                                <mat-expansion-panel class=\"crud_expansion_panel\" [expanded]=\"true\">\n                                    <mat-expansion-panel-header [collapsedHeight]=\"'40px'\" [expandedHeight]=\"'40px'\">\n                                        <mat-panel-title class=\"panel_title\">\n                                            <mat-label>{{config?.label}}</mat-label>\n                                        </mat-panel-title>\n                                    </mat-expansion-panel-header>\n                                    <ng-container *ngFor=\"let config of formsets; let i=index\">\n                                        <div class=\"formset_container\">\n                                            <ng-crud-formset class=\"FormCell\" [config]=\"config\" [mode]=\"mode\" [formGroup]=\"formGroup\">\n                                            </ng-crud-formset>\n                                        </div>\n                                    </ng-container>\n                                </mat-expansion-panel>\n                            </mat-accordion>\n                        </ng-container>\n                    </ng-container>\n                </div>\n\n                <div class=\"actions\">\n                    <div *ngIf=\"mode==='edit' || mode==='create' || openedInaialog;else search\" class=\"edit-view\">\n                        <ng-container *ngIf=\"!openedInaialog\">\n                            <button mat-raised-button id=\"saveAndEdit-btn\" data-cy=\"save-and-edit-button\" class=\"submit-button saveAndEdit\"\n                                [disabled]=\"disabled\" (click)=\"_onSubmit('saveAndEdit')\">\n                                Save and Edit\n                            </button>\n                            <button mat-raised-button id=\"saveAndAdd-btn\" data-cy=\"save-and-add-button\" class=\"submit-button saveAndAdd\"\n                                [disabled]=\"disabled\" (click)=\"_onSubmit('saveAndAdd')\">\n                                Save and Add\n                            </button>\n                        </ng-container>\n                        <button mat-raised-button id=\"save-btn\" [disabled]=\"disabled\" data-cy=\"save-button\"\n                            [ngClass]=\"{'wide-save-btn': openedInaialog, 'submit-button save': !openedInaialog}\"\n                            (click)=\"_onSubmit('save')\">\n                            Save\n                        </button>\n                    </div>\n                    <ng-template #search>\n                        <div class=\"search-actions\">\n                            <button mat-button class=\"search submit-button\" id=\"search-button\" (click)=\"_onSubmit()\" data-cy=\"search-button\">\n                                Search\n                            </button>\n                            <button mat-button class=\"reset-button\" id=\"reset-button\" (click)=\"_onReset()\" class=\"reset_btn\" data-cy=\"reset-button\">\n                                Reset\n                            </button>\n                        </div>\n                    </ng-template>\n                </div>\n            </ng-template>\n        </div>\n    </ng-container>\n</ng-template>","styles":[".search-actions{flex-direction:row;box-sizing:border-box;display:flex;place-content:center flex-end;align-items:center}.search-actions .submit-button.search{margin-right:15px;box-sizing:border-box;color:#fff;width:150px;background-color:#2a55a2}.row{display:flex;flex:1 1 auto;justify-content:flex-start;flex-flow:row wrap}.submit-button{align-self:flex-end;background-color:#2a55a2;color:#fff}.reset_btn{cursor:pointer;width:150px;border:1px solid rgba(0,0,0,.12)}.actions{justify-content:flex-end!important;width:100%}.actions .edit-view{position:fixed;background-color:#fafafa;right:0;margin:24px 10px;bottom:0}.crud-form-body{display:flex;flex-wrap:wrap}.full{height:100%;min-height:100%;min-width:100%;width:100%;flex-flow:row wrap;box-sizing:border-box;display:flex}.FormCell{width:25%}.grid-spinner{display:flex;justify-content:center;margin-top:calc(50vh - 100px)}::ng-deep .crud_edit_fields{width:25%}::ng-deep .crud_edit_fields .mat-form-field{width:100%;padding:0 10px;box-sizing:border-box;-webkit-box-sizing:border-box}::ng-deep .crud_edit_fields .checkbox-container{padding:0 10px}mat-header-cell{background-color:#cecece;color:#231f20}mat-expansion-panel{background-color:#2a55a2;margin-bottom:10px}mat-panel-title{font-size:17px;color:#fff}.mat-expansion-indicator:before,::ng-deep .mat-expansion-indicator:after{color:#fff!important}::ng-deep .mat-checkbox-checked.mat-accent .mat-checkbox-background,::ng-deep .mat-checkbox-checked.mat-primary .mat-checkbox-background,::ng-deep .mat-checkbox-indeterminate.mat-accent .mat-checkbox-background{background-color:#2a55a2!important}::ng-deep .mat-checkbox-checked.mat-accent .mat-checkbox-ripple .mat-ripple-element{opacity:.03!important;background-color:#2a55a2!important}::ng-deep .mat-checkbox .mat-checkbox-frame{background-color:#cecece!important;border:none}::ng-deep .mat-form-field.mat-focused .mat-form-field-label{color:#2a55a2!important}::ng-deep .mat-focused .mat-form-field-underline .mat-form-field-ripple{background-color:#2a55a2!important}::ng-deep .mat-checkbox-layout:hover .mat-checkbox .mat-checkbox-frame,::ng-deep .mat-checkbox:hover .mat-checkbox .mat-checkbox-frame{border:1px solid #2a55a2!important}::ng-deep .mat-checkbox-layout:hover .mat-checkbox-frame,::ng-deep .mat-checkbox:hover .mat-checkbox-frame{background-color:transparent!important;border:1px solid #2a55a2!important}::ng-deep .crud_expansion_panel .mat-form-field{width:100%;border-right:.5rem solid transparent;box-sizing:border-box}::ng-deep .crud_expansion_panel .mat-expansion-panel-body{display:flex;flex-wrap:wrap;background-color:#fff;padding-top:10px}::ng-deep .crud-form-body{padding:6px 8px;margin:20px}.save{background-color:#82c572;color:#fff;margin-right:0;width:150px}.saveAndAdd{background-color:#f1b661}.saveAndAdd,.saveAndEdit{color:#fff;margin-right:15px;width:150px}.saveAndEdit{background-color:#3f51b5}::ng-deep snack-bar-container.success-bar{background-color:#1e9765}::ng-deep snack-bar-container.others-bar{background-color:#000}::ng-deep snack-bar-container.error-bar{background-color:#e45155;font-weight:700}.header_btn_container{display:flex;flex-wrap:wrap;flex:auto}.header_btn_container span{margin-right:15px;margin-left:5px;order:2;color:#337ab7}.header_btn.history{margin-left:10px}.formset_container{width:100%;flex-wrap:wrap}.wide-save-btn{background-color:#5ab857;color:#fff;margin-bottom:20px;width:119px}@media only screen and (max-width:600px){.field-wrapper{margin:4px;max-width:100%!important;flex:1 1 100%!important}}.divider{margin-bottom:10px;width:100%;border-top-width:2px!important}#collapsible_control{background-color:#fff!important}::ng-deep #collapsible_control .mat-expansion-panel-body{padding:0}::ng-deep .collapsible-accordion>.mat-expansion-indicator{padding:0 8px 5px;border:1px solid rgba(0,0,0,.87);border-radius:50%}::ng-deep .collapsible-accordion>.mat-expansion-indicator:after{color:rgba(0,0,0,.87)!important}.collapsible-accordion{padding:0;height:auto!important}.collapsible-accordion .divider{margin:0 10px 0 0}::ng-deep .crud-accordion{width:100%;margin:10px}.crud-form-field-container{width:25%;padding:0 9px;display:inline-block;box-sizing:border-box}@media only screen and (max-width:599px){::ng-deep .crud-accordion{margin:10px 0}.crud-form-field-container.outer-fields:last-child{width:100%}.crud-form-field-container{width:calc(50% - 17px);flex-grow:1;margin-right:0!important;padding:0}::ng-deep .crud_expansion_panel .mat-expansion-panel-body{padding:15px 8px 8px;gap:0 15px}::ng-deep .crud_expansion_panel .mat-expansion-panel-header{padding:0 8px}.mat-panel-title{font-size:16px}.header_btn_container span{margin-right:0}.actions{margin:24px 10px;justify-content:space-between!important}.save,.saveAndAdd,.saveAndEdit{margin-right:5px;width:30%;font-size:small;text-align:center;padding:0}.crud_expansion_panel .mat-form-field{border-right:0;padding:0}}.mat-accordion:last-child .crud-form-field-container.outer-fields{display:flex;width:100%}#actions-btn{min-width:47px;padding:2px 0}.capture_ID{padding:2px 16px}.collapsible-accordion{padding:0 9px}.action_btn_divider{margin:0 8px}.crud-form-body .mat-accordion:first-child .crud-form-field-container:nth-child(7){flex-grow:1}.separated{border-bottom:1px solid #929292}.cancel_icon{float:right;cursor:pointer;position:relative}"]}]}],"members":{"viewConfig":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":33,"character":5}}]}],"expanded":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":34,"character":5}}]}],"mode":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":35,"character":5}}]}],"id":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":36,"character":5}}]}],"submit":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":37,"character":5}}]}],"iframe":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":38,"character":5},"arguments":["iframe",{"static":false}]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ApiService"},{"__symbolic":"reference","name":"FormService"},{"__symbolic":"reference","module":"@angular/material/snack-bar","name":"MatSnackBar","line":62,"character":27},{"__symbolic":"reference","module":"@angular/material/dialog","name":"MatDialog","line":63,"character":24},{"__symbolic":"reference","module":"@angular/router","name":"Router","line":64,"character":24},{"__symbolic":"reference","name":"MatDialogRef","module":"@angular/material/dialog","arguments":[{"__symbolic":"reference","name":"ɵd"}]},{"__symbolic":"reference","name":"MatDialogRef","module":"@angular/material/dialog","arguments":[{"__symbolic":"reference","name":"ɵd"}]},{"__symbolic":"reference","name":"ɵa"}]}],"ngOnInit":[{"__symbolic":"method"}],"appendIframeSrc":[{"__symbolic":"method"}],"toggleExpansion":[{"__symbolic":"method"}],"updateFormBasedOnWindowMessages":[{"__symbolic":"method"}],"editForm":[{"__symbolic":"method"}],"populateParams":[{"__symbolic":"method"}],"getFormErrors":[{"__symbolic":"method"}],"onAction":[{"__symbolic":"method"}],"handleRequest":[{"__symbolic":"method"}],"openIframe":[{"__symbolic":"method"}],"openActionDialog":[{"__symbolic":"method"}],"fillFormControls":[{"__symbolic":"method"}],"requestAction":[{"__symbolic":"method"}],"saveAndEdit":[{"__symbolic":"method"}],"saveAndAdd":[{"__symbolic":"method"}],"save":[{"__symbolic":"method"}],"showSuccessMessage":[{"__symbolic":"method"}],"isEmptyObject":[{"__symbolic":"method"}],"removeEmptyFormsets":[{"__symbolic":"method"}],"_onSubmit":[{"__symbolic":"method"}],"_submitSearchFormWithFilters":[{"__symbolic":"method"}],"changeFieldsBeforeSending":[{"__symbolic":"method"}],"modifyDateFields":[{"__symbolic":"method"}],"handlePostSubmit":[{"__symbolic":"method"}],"checkForirgnKey":[{"__symbolic":"method"}],"elementDeleted":[{"__symbolic":"method"}],"applyPostSubmit":[{"__symbolic":"method"}],"displayError":[{"__symbolic":"method"}],"checkForPostSubmit":[{"__symbolic":"method"}],"updateForiegnKeyField":[{"__symbolic":"method"}],"updateForiegnKeyMultipleField":[{"__symbolic":"method"}],"performAction":[{"__symbolic":"method"}],"_onReset":[{"__symbolic":"method"}],"openSnackBar":[{"__symbolic":"method"}],"getStyles":[{"__symbolic":"method"}],"cancel":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}]}},"SelectFieldComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":7,"character":1},"arguments":[{"selector":"ng-crud-select-field","exportAs":"ngcrudui-select-field","template":"\n    <mat-form-field [formGroup]=\"formGroup\" >\n        <mat-label>{{ config.label }}</mat-label>\n        <mat-select attr.data-cy=\"{{config.label | getSelector}}-field\" [multiple]=\"controlConfig.multiple\" id=\"{{config?.name}}-field\" panelClass=\"SelectClass\" disableOptionCentering='true' \n        [required]=\"formGroup.controls[config.name].hasError('required')\" [formControlName]=\"config.name\">\n            <mat-option *ngFor=\"let c of controlConfig?.choices\" [value]=\"c['id']\" id=\"{{c?.id}}-option\">\n                {{ c[\"description\"] }}\n            </mat-option>\n        </mat-select>\n        <mat-error *ngIf=\"f[config.name].hasError('required') && (f[config.name].dirty || f[config.name].touched)\">this\n            field is required</mat-error>\n    </mat-form-field>\n  ","styles":[".form-field-wrapper{margin-right:24px}"]}]}],"members":{"formGroup":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":27,"character":3}}]}],"config":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":28,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor"}],"ngOnChanges":[{"__symbolic":"method"}],"ngOnInit":[{"__symbolic":"method"}]}},"TextAreaFieldComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":6,"character":1},"arguments":[{"selector":"ng-crud-text-area-field","exportAs":"ngcrudui-text-area-field","styles":[".form-field-wrapper{margin-right:  24px}"],"template":"<mat-form-field [formGroup]=\"formGroup\" >\n      <mat-label>{{ config.label }}</mat-label>\n      <textarea id=\"{{config?.name}}-field\" attr.data-cy=\"{{config.label | getSelector}}-input\"\n      [maxlength]=\"config?.maxlength\" matInput matTextareaAutosize [formControlName]=\"config.name\"\n      [rows]=\"controlConfig?.rowSpan || 1\"></textarea>\n    </mat-form-field>\n  "}]}],"members":{"formGroup":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":20,"character":3}}]}],"config":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":21,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor"}],"ngOnInit":[{"__symbolic":"method"}]}},"FileUploadComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":3,"character":1},"arguments":[{"selector":"ng-crud-file-upload","providers":[{"provide":{"__symbolic":"reference","module":"@angular/forms","name":"NG_VALUE_ACCESSOR","line":9,"character":15},"useExisting":{"__symbolic":"reference","name":"FileUploadComponent"},"multi":true}],"template":"<label class=\"fileContainer\">\n    Add Attachment\n    <input type=\"file\" id=\"file\" />\n</label>","styles":[".fileContainer{overflow:hidden;position:relative}.fileContainer [type=file]{cursor:inherit;display:block;font-size:999px;filter:alpha(opacity=0);min-height:100%;min-width:100%;opacity:0;position:absolute;right:0;text-align:right;top:0}.fileContainer{background:#59bb61;color:#fff;border-radius:4px;float:left;padding:10px;width:146px}.fileContainer [type=file]{cursor:pointer}@media only screen and (max-width:599px){.fileContainer{width:70px}}"]}]}],"members":{"emitFiles":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostListener","line":19,"character":3},"arguments":["change",["$event.target.files"]]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ElementRef","module":"@angular/core","arguments":[{"__symbolic":"error","message":"Could not resolve type","line":28,"character":39,"context":{"typeName":"HTMLInputElement"},"module":"./lib/components/file-upload/file-upload.component"}]}]}],"writeValue":[{"__symbolic":"method"}],"deleteFile":[{"__symbolic":"method"}],"registerOnChange":[{"__symbolic":"method"}],"registerOnTouched":[{"__symbolic":"method"}]}},"DateTimePickerComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":5,"character":1},"arguments":[{"selector":"ng-date-time-picker","template":"<mat-form-field [formGroup]=\"formGroup\">\n    <mat-label>{{config.label}}</mat-label>\n    <input id=\"{{config?.name}}-field\" matInput [formControl]=\"selectedMoment\" [owlDateTimeTrigger]=\"dtPicker\" [owlDateTime]=\"dtPicker\">\n    <owl-date-time #dtPicker></owl-date-time>\n</mat-form-field>","styles":[""]}]}],"members":{"formGroup":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":11,"character":3}}]}],"config":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":12,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor"}],"ngOnInit":[{"__symbolic":"method"}],"setValue":[{"__symbolic":"method"}]}},"TimePickerComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":6,"character":1},"arguments":[{"selector":"ng-time-picker","template":"<mat-form-field [formGroup]=\"formGroup\">\n    <mat-label>{{config.label}}</mat-label>\n    <input matInput id=\"{{config?.name}}-field\" type=\"time\" readonly (click)=\"openTimePicker('14:00:00')\" [formControl]=\"selectedTime\" />\n</mat-form-field>","styles":[""]}]}],"members":{"formGroup":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":12,"character":3}}]}],"config":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":13,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@jonijnm/amazing-time-picker","name":"AmazingTimePickerService","line":15,"character":27}]}],"ngOnInit":[{"__symbolic":"method"}],"openTimePicker":[{"__symbolic":"method"}],"setTimes":[{"__symbolic":"method"}]}},"ListingDialogComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":5,"character":1},"arguments":[{"template":"<section class=\"app-settings\">\n\n  <!-- <ng-crud-listing (picked)=\"picked($event)\" [viewConfig]=\"viewConfig\" mode=\"pick\">\n\n  </ng-crud-listing> -->\n  <div #listingView></div>\n</section>","styles":["#custom-header{padding-top:12px;margin-bottom:12px}.page-title a{color:#333}.mat-tab-nav-bar,mat-tab-nav-bar{border:none!important}.tabs-bar a{color:#fff}"]}]}],"members":{"listingView":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":12,"character":3},"arguments":["listingView",{"read":{"__symbolic":"reference","module":"@angular/core","name":"ViewContainerRef","line":12,"character":36},"static":false}]}]}],"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,null,null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":18,"character":5},"arguments":[{"__symbolic":"reference","module":"@angular/material/dialog","name":"MAT_DIALOG_DATA","line":18,"character":12}]}]],"parameters":[{"__symbolic":"reference","name":"MatDialogRef","module":"@angular/material/dialog","arguments":[{"__symbolic":"reference","name":"ListingDialogComponent"}]},{"__symbolic":"reference","module":"@angular/core","name":"ViewContainerRef","line":16,"character":23},{"__symbolic":"reference","module":"@angular/core","name":"ComponentFactoryResolver","line":17,"character":22},{"__symbolic":"reference","name":"any"}]}],"ngOnInit":[{"__symbolic":"method"}],"picked":[{"__symbolic":"method"}]}},"ScreenWrapperComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":20,"character":1},"arguments":[{"template":"<div #dynamicComponentContainer class=\"crud_container\">\n</div>\n<!-- \n<section class=\"app-settings\" *ngIf=\"modelName\">\n\n  <ng-crud-listing [modelName]=\"modelName\" [appName]=\"appName\" [moduleName]=\"moduleName\">\n\n  </ng-crud-listing>\n</section> -->","styles":["#custom-header{padding-top:12px;margin-bottom:12px}.page-title a{color:#333}.mat-tab-nav-bar,mat-tab-nav-bar{border:none!important}.tabs-bar a{color:#fff}.crud_container{margin:0;padding:0;font-family:Roboto,sans-serif;font-size:16px}"]}]}],"members":{"dynamicComponentContainer":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":30,"character":3},"arguments":["dynamicComponentContainer",{"read":{"__symbolic":"reference","module":"@angular/core","name":"ViewContainerRef","line":30,"character":50},"static":false}]}]}],"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":33,"character":5}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":33,"character":17},"arguments":[{"__symbolic":"reference","module":"@angular/material/dialog","name":"MAT_DIALOG_DATA","line":33,"character":24}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":34,"character":5}}],null,null,null,null,null],"parameters":[{"__symbolic":"reference","name":"any"},{"__symbolic":"reference","name":"MatDialogRef","module":"@angular/material/dialog","arguments":[{"__symbolic":"reference","name":"ScreenWrapperComponent"}]},{"__symbolic":"reference","name":"Registry"},{"__symbolic":"reference","module":"@angular/router","name":"ActivatedRoute","line":36,"character":19},{"__symbolic":"reference","module":"@angular/core","name":"ViewContainerRef","line":37,"character":23},{"__symbolic":"reference","module":"@angular/core","name":"ComponentFactoryResolver","line":38,"character":22},{"__symbolic":"reference","module":"@angular/platform-browser","name":"Title","line":39,"character":19}]}],"ngOnInit":[{"__symbolic":"method"}]}},"Registry":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":7,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor"}],"registerMetadata":[{"__symbolic":"method"}],"registerScreen":[{"__symbolic":"method"}],"registerForm":[{"__symbolic":"method"}],"register":[{"__symbolic":"method"}]},"statics":{"ɵprov":{}}},"Navigator":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":2,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor"}]},"statics":{"ɵprov":{}}},"ErrorHanlderService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":3,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor"}],"setError":[{"__symbolic":"method"}],"defineErrorMessages":[{"__symbolic":"method"}],"getError":[{"__symbolic":"method"}]},"statics":{"ɵprov":{}}},"ApiService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":7,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/common/http","name":"HttpClient","line":12,"character":30},{"__symbolic":"reference","name":"ɵa"}]}],"fetch":[{"__symbolic":"method"}],"download":[{"__symbolic":"method"}],"put":[{"__symbolic":"method"}],"post":[{"__symbolic":"method"}],"delete":[{"__symbolic":"method"}]},"statics":{"ɵprov":{}}},"FormService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":4,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor"}],"create":[{"__symbolic":"method"}],"update":[{"__symbolic":"method"}],"checkIfEmptyArray":[{"__symbolic":"method"}]},"statics":{"ɵprov":{}}},"CrudModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":62,"character":1},"arguments":[{"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":64,"character":4},{"__symbolic":"reference","module":"@angular/forms","name":"FormsModule","line":65,"character":4},{"__symbolic":"reference","module":"@angular/forms","name":"ReactiveFormsModule","line":66,"character":4},{"__symbolic":"reference","module":"@angular/common/http","name":"HttpClientModule","line":67,"character":4},{"__symbolic":"reference","module":"@angular/router","name":"RouterModule","line":68,"character":4},{"__symbolic":"reference","module":"ng-pick-datetime","name":"OwlDateTimeModule","line":69,"character":4},{"__symbolic":"reference","module":"ng-pick-datetime","name":"OwlNativeDateTimeModule","line":70,"character":4},{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"ngx-cookie","name":"CookieModule","line":71,"character":4},"member":"forChild"}},{"__symbolic":"reference","module":"@angular/material/toolbar","name":"MatToolbarModule","line":72,"character":4},{"__symbolic":"reference","module":"@angular/material/sidenav","name":"MatSidenavModule","line":73,"character":4},{"__symbolic":"reference","module":"@angular/material/chips","name":"MatChipsModule","line":74,"character":4},{"__symbolic":"reference","module":"@angular/material/list","name":"MatListModule","line":75,"character":4},{"__symbolic":"reference","module":"@angular/material/icon","name":"MatIconModule","line":76,"character":4},{"__symbolic":"reference","module":"@angular/material/table","name":"MatTableModule","line":77,"character":4},{"__symbolic":"reference","module":"@angular/material/card","name":"MatCardModule","line":78,"character":4},{"__symbolic":"reference","module":"@angular/material/paginator","name":"MatPaginatorModule","line":79,"character":4},{"__symbolic":"reference","module":"@angular/material/button","name":"MatButtonModule","line":80,"character":4},{"__symbolic":"reference","module":"@angular/material/menu","name":"MatMenuModule","line":81,"character":4},{"__symbolic":"reference","module":"@angular/material/progress-bar","name":"MatProgressBarModule","line":82,"character":4},{"__symbolic":"reference","module":"@angular/material/progress-spinner","name":"MatProgressSpinnerModule","line":83,"character":4},{"__symbolic":"reference","module":"@angular/platform-browser/animations","name":"BrowserAnimationsModule","line":84,"character":4},{"__symbolic":"reference","module":"@angular/material/form-field","name":"MatFormFieldModule","line":85,"character":4},{"__symbolic":"reference","module":"@angular/material/input","name":"MatInputModule","line":86,"character":4},{"__symbolic":"reference","module":"@angular/material/checkbox","name":"MatCheckboxModule","line":87,"character":4},{"__symbolic":"reference","module":"@angular/material/dialog","name":"MatDialogModule","line":88,"character":4},{"__symbolic":"reference","module":"@angular/material/button-toggle","name":"MatButtonToggleModule","line":89,"character":4},{"__symbolic":"reference","module":"@angular/material/grid-list","name":"MatGridListModule","line":90,"character":4},{"__symbolic":"reference","module":"@angular/material/snack-bar","name":"MatSnackBarModule","line":91,"character":4},{"__symbolic":"reference","module":"@angular/material/datepicker","name":"MatDatepickerModule","line":92,"character":4},{"__symbolic":"reference","module":"@angular/material/select","name":"MatSelectModule","line":93,"character":4},{"__symbolic":"reference","module":"@angular/material/tabs","name":"MatTabsModule","line":94,"character":4},{"__symbolic":"reference","module":"@angular/material/expansion","name":"MatExpansionModule","line":95,"character":4},{"__symbolic":"reference","module":"@jonijnm/amazing-time-picker","name":"AmazingTimePickerModule","line":96,"character":4},{"__symbolic":"reference","module":"@angular/material/autocomplete","name":"MatAutocompleteModule","line":97,"character":4},{"__symbolic":"reference","module":"mat-select-autocomplete-angular11","name":"SelectAutocompleteModule","line":98,"character":4},{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@ngx-translate/core","name":"TranslateModule","line":99,"character":4},"member":"forRoot"}}],"declarations":[{"__symbolic":"reference","name":"FormFieldComponent"},{"__symbolic":"reference","name":"ListingComponent"},{"__symbolic":"reference","name":"ModelFormComponent"},{"__symbolic":"reference","name":"ScreenWrapperComponent"},{"__symbolic":"reference","name":"FormsetComponent"},{"__symbolic":"reference","name":"ForeignKeyFieldComponent"},{"__symbolic":"reference","name":"FileUploadComponent"},{"__symbolic":"reference","name":"DateTimePickerComponent"},{"__symbolic":"reference","name":"ListingDialogComponent"},{"__symbolic":"reference","name":"TextAreaFieldComponent"},{"__symbolic":"reference","name":"SelectFieldComponent"},{"__symbolic":"reference","name":"ForeignKeyFiledMultipleComponent"},{"__symbolic":"reference","name":"ɵe"},{"__symbolic":"reference","name":"ɵd"},{"__symbolic":"reference","name":"TimePickerComponent"},{"__symbolic":"reference","name":"ɵf"},{"__symbolic":"reference","name":"ɵg"},{"__symbolic":"reference","name":"ɵh"},{"__symbolic":"reference","name":"ɵi"},{"__symbolic":"reference","name":"ɵj"},{"__symbolic":"reference","name":"ɵk"},{"__symbolic":"reference","name":"ɵl"}],"providers":[{"provide":{"__symbolic":"reference","module":"@angular/common/http","name":"HTTP_INTERCEPTORS","line":126,"character":15},"useClass":{"__symbolic":"reference","name":"ɵm"},"multi":true},{"provide":{"__symbolic":"reference","module":"@angular/material/core","name":"MAT_DATE_LOCALE","line":127,"character":15},"useValue":"en_US"},{"provide":{"__symbolic":"reference","module":"@angular/material/dialog","name":"MatDialogRef","line":129,"character":15},"useValue":{}},{"provide":{"__symbolic":"reference","module":"@angular/material/core","name":"DateAdapter","line":132,"character":15},"useClass":{"__symbolic":"reference","name":"ɵc"}},{"provide":{"__symbolic":"reference","module":"@angular/material/core","name":"MAT_DATE_FORMATS","line":133,"character":15},"useValue":{"__symbolic":"reference","name":"ɵb"}}],"exports":[{"__symbolic":"reference","module":"@angular/common/http","name":"HttpClientModule","line":136,"character":4},{"__symbolic":"reference","module":"@angular/material/toolbar","name":"MatToolbarModule","line":137,"character":4},{"__symbolic":"reference","module":"@angular/material/sidenav","name":"MatSidenavModule","line":138,"character":4},{"__symbolic":"reference","module":"@angular/material/list","name":"MatListModule","line":139,"character":4},{"__symbolic":"reference","module":"@angular/material/icon","name":"MatIconModule","line":140,"character":4},{"__symbolic":"reference","module":"@angular/material/table","name":"MatTableModule","line":141,"character":4},{"__symbolic":"reference","module":"@angular/material/card","name":"MatCardModule","line":142,"character":4},{"__symbolic":"reference","module":"@angular/material/paginator","name":"MatPaginatorModule","line":143,"character":4},{"__symbolic":"reference","module":"@angular/material/button","name":"MatButtonModule","line":144,"character":4},{"__symbolic":"reference","module":"@angular/material/menu","name":"MatMenuModule","line":145,"character":4},{"__symbolic":"reference","module":"@angular/material/progress-bar","name":"MatProgressBarModule","line":146,"character":4},{"__symbolic":"reference","module":"@angular/material/form-field","name":"MatFormFieldModule","line":147,"character":4},{"__symbolic":"reference","module":"@angular/material/input","name":"MatInputModule","line":148,"character":4},{"__symbolic":"reference","module":"@angular/material/checkbox","name":"MatCheckboxModule","line":149,"character":4},{"__symbolic":"reference","module":"@angular/material/button-toggle","name":"MatButtonToggleModule","line":150,"character":4},{"__symbolic":"reference","module":"@angular/material/grid-list","name":"MatGridListModule","line":151,"character":4},{"__symbolic":"reference","module":"@angular/material/snack-bar","name":"MatSnackBarModule","line":152,"character":4},{"__symbolic":"reference","module":"@angular/material/datepicker","name":"MatDatepickerModule","line":153,"character":4},{"__symbolic":"reference","module":"@angular/material/select","name":"MatSelectModule","line":154,"character":4},{"__symbolic":"reference","module":"@angular/material/tabs","name":"MatTabsModule","line":155,"character":4},{"__symbolic":"reference","module":"@angular/material/autocomplete","name":"MatAutocompleteModule","line":156,"character":4},{"__symbolic":"reference","module":"@angular/material/expansion","name":"MatExpansionModule","line":157,"character":4},{"__symbolic":"reference","name":"FormFieldComponent"},{"__symbolic":"reference","name":"ListingComponent"},{"__symbolic":"reference","name":"ModelFormComponent"},{"__symbolic":"reference","name":"ScreenWrapperComponent"},{"__symbolic":"reference","name":"FormsetComponent"},{"__symbolic":"reference","name":"ForeignKeyFieldComponent"},{"__symbolic":"reference","name":"FileUploadComponent"},{"__symbolic":"reference","name":"DateTimePickerComponent"},{"__symbolic":"reference","name":"TimePickerComponent"},{"__symbolic":"reference","name":"TextAreaFieldComponent"},{"__symbolic":"reference","name":"SelectFieldComponent"},{"__symbolic":"reference","name":"ɵf"},{"__symbolic":"reference","name":"ɵk"}],"entryComponents":[{"__symbolic":"reference","name":"ListingComponent"},{"__symbolic":"reference","name":"ModelFormComponent"},{"__symbolic":"reference","name":"ListingDialogComponent"},{"__symbolic":"reference","name":"ScreenWrapperComponent"},{"__symbolic":"reference","name":"ɵd"},{"__symbolic":"reference","name":"ɵf"},{"__symbolic":"reference","name":"ɵk"}]}]}],"members":{}},"ɵa":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":5,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/common/http","name":"HttpClient","line":12,"character":28}]}]},"statics":{"ɵprov":{}}},"ɵb":{"parse":{"dateInput":"DD-MM-YYYY"},"display":{"dateInput":"DD-MM-YYYY","monthYearLabel":"MMM YYYY","monthYearA11yLabel":"MMMM YYYY"}},"ɵc":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"@angular/material-moment-adapter","name":"MomentDateAdapter","line":13,"character":39},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":12,"character":1}}],"members":{"format":[{"__symbolic":"method"}]}},"ɵd":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":6,"character":1},"arguments":[{"selector":"ng-crud-iframe-modal","template":"<h2 mat-dialog-title style=\"padding:10px;\" [ngClass]=\"{'separated':title !== ''}\">\n    <span *ngIf=\"title?.length!=0\"> {{title}}</span>\n    <mat-icon class=\"cancel_icon\"\n     [ngClass]=\"data.color=='grey'? 'grey':'red'\"\n     (click)=\"closeDialog()\">cancel\n    </mat-icon>\n</h2>\n<br />\n<mat-dialog-content>\n    <iframe [src]=\"src\" frameborder=\"0\" id=\"{{data?.iframeId}}\"></iframe>\n</mat-dialog-content>\n","styles":["iframe{height:85%;width:100%}.close{float:right}.mat-dialog-title{margin-top:-25px!important}h2{font-size:20px!important}.separated{border-bottom:1px solid #e0e0e0}.mat-dialog-content{display:contents!important}mat-icon{float:right;cursor:pointer}.red{color:red}.grey{color:#606060;font-size:30px}::ng-deep .edit-view-popup .mat-dialog-container{overflow:hidden}"]}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":16,"character":5},"arguments":[{"__symbolic":"reference","module":"@angular/material/dialog","name":"MAT_DIALOG_DATA","line":16,"character":12}]}],null,null],"parameters":[{"__symbolic":"reference","name":"any"},{"__symbolic":"reference","name":"MatDialogRef","module":"@angular/material/dialog","arguments":[{"__symbolic":"reference","name":"ɵd"}]},{"__symbolic":"reference","module":"@angular/platform-browser","name":"DomSanitizer","line":18,"character":23}]}],"ngOnInit":[{"__symbolic":"method"}],"closeDialog":[{"__symbolic":"method"}]}},"ɵe":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":4,"character":1},"arguments":[{"selector":"ng-error-handling","template":"<div class=\"err-container\" *ngIf=\"hasErr\">\n    <div fxlayoutgap=\"10px grid\" fxflexfill>\n        <ng-container *ngFor=\"let err of strErrors\">\n            <div fxflex=\"25\" style=\"padding: 6px 10px 6px 6px;\n                      flex: 1 1 25%;\n                      box-sizing: border-box;\">\n                <div class=\"one\" style=\"height: 100%; min-height: 100%; min-width: 100%;font-size:15px; width: 100%; align-items: flex-start; flex-direction: row; box-sizing: border-box; display: flex;\">\n                    {{ err}}\n                </div>\n            </div>\n        </ng-container>\n        <ng-container *ngFor=\"let err of errors\">\n            <div fxflex=\"25\" style=\"padding: 6px 10px 6px 6px;\n                      flex: 1 1 25%;\n                      box-sizing: border-box;\">\n                <div class=\"one\" style=\"height: 100%; min-height: 100%; min-width: 100%;font-size:15px; width: 100%; align-items: flex-start; flex-direction: row; box-sizing: border-box; display: flex;\">\n                    {{ err.key}} : {{err.value}}\n                </div>\n            </div>\n        </ng-container>\n    </div>\n</div>","styles":[".err-container{color:red;margin:20px;background-color:#fdf3f4;border-radius:5.5px}"]}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ErrorHanlderService"}]}],"setError":[{"__symbolic":"method"}],"setForbiddenErrors":[{"__symbolic":"method"}],"declareError":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}]}},"ɵf":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":4,"character":1},"arguments":[{"selector":"ng-crud-attachments","template":"<div class=\"wrapper\" fxLayoutWrap=\"10px\">\n    <div [formGroup]=\"formGroup\" class=\"form-container\">\n        <mat-hint class=\"hint\" >\n            <p class=\"pre\">\n  Allowed file extensions: PDF, Doc, Docx, Xls, Xlsx, JPEG, GIF, PNG, BMP, JPG. <br>\n  Maximum file size: 1 MB.\n            </p>\n        </mat-hint>\n        <div class=\"upload_container\">\n            <ng-crud-file-upload [formControlName]=\"config?.name\" #fileInput></ng-crud-file-upload>\n        </div>\n        <mat-error *ngIf=\"formControls[config?.name].hasError('requiredFileType')\">\n            The selected file type is not allowed\n        </mat-error>\n        <mat-error *ngIf=\"formControls[config?.name].hasError('fileExsist')\">\n            A file with the same name is already attached\n        </mat-error>\n        <mat-error *ngIf=\"formControls[config?.name].hasError('requiredFileSize')\">\n            The selected file size exceeds the allowed size\n        </mat-error>\n        <mat-error *ngIf=\"formControls[config?.name].hasError('requiredFileLength')\">\n            Ensure this field has no more than 50 characters\n        </mat-error>\n    </div>\n    <table class=\"table attachment-table\" *ngIf=\"attachments?.length > 0\">\n        <tbody class=\"tableBody\">\n            <tr *ngFor=\"let file of attachments; let i=index;\" class=\"border_bottom\">\n                <td class=\"file-name\" id=\"{{ 'file-' + i }}\">\n                    {{!isUploaded(file)?file.name+'.'+file.extension:file.name}}\n                </td>\n                <td *ngIf=\"isUploaded(file)\">\n                    <a mat-icon-button class=\"icon_btn\" [href]=\"file.file\" download=\"file.name\" target=\"_blank\"\n                        rel=\"noopener noreferrer\">\n                        <mat-icon class=\"download_icon\" id=\"{{'download-btn-' + i}}\">file_download</mat-icon>\n                    </a>\n                </td>\n                <td>\n                    <button mat-icon-button class=\"icon_btn delete_btn\" (click)=\"deleteFile(file,i)\">\n                        <mat-icon class=\"delete_icon\" id=\"{{'delete-btn-' + i}}\">delete_outline</mat-icon>\n                    </button>\n                </td>\n            </tr>\n        </tbody>\n\n    </table>\n</div>","styles":[".upload_container{text-align:center}.form-container{display:flex;justify-content:space-between;margin-bottom:26px}.delete_icon{color:#ef4430;cursor:pointer;padding:0}.icon_btn{width:unset}.download_icon{padding:0;cursor:pointer}.table_row{text-align:left;height:50px}tr.table_row th{font-size:14px;padding-left:10px}tr.border_bottom td{border-top:1pt solid #c5bebe}tr td{padding-left:3px}table.attachment-table{width:100%;border-collapse:collapse;color:rgba(0,0,0,.6);font-weight:400}table.attachment-table tr{font-size:13px}li{display:flex;align-items:center;justify-content:flex-start}.pre{font:200 10px/20px Roboto,Helvetica Neue,sans-serif;margin-bottom:-15px;display:inline}.thead{height:45px}.tableBody,.thead{display:block;width:100%}.tableBody{height:80px;overflow-y:auto;overflow-x:auto}.file-name{width:100%}"]}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ɵa"}]}],"formGroup":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":13,"character":3}}]}],"config":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":14,"character":3}}]}],"deleteAttachment":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":15,"character":3}}]}],"fileInput":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":20,"character":3},"arguments":["fileInput",{"static":true}]}]}],"ngOnChanges":[{"__symbolic":"method"}],"subscribeToFormChanges":[{"__symbolic":"method"}],"_handleReaderLoaded":[{"__symbolic":"method"}],"ifFileExsits":[{"__symbolic":"method"}],"addFile":[{"__symbolic":"method"}],"splitFile":[{"__symbolic":"method"}],"isUploaded":[{"__symbolic":"method"}],"deleteFile":[{"__symbolic":"method"}]}},"ɵg":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":4,"character":1},"arguments":[{"selector":"ng-search-dialog","template":"<section class=\"app-settings\">\n  <div #formView></div>\n</section>","styles":[""]}]}],"members":{"formView":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":11,"character":3},"arguments":["formView",{"read":{"__symbolic":"reference","module":"@angular/core","name":"ViewContainerRef","line":11,"character":33},"static":false}]}]}],"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,null,null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":15,"character":5},"arguments":[{"__symbolic":"reference","module":"@angular/material/dialog","name":"MAT_DIALOG_DATA","line":15,"character":12}]}]],"parameters":[{"__symbolic":"reference","name":"MatDialogRef","module":"@angular/material/dialog","arguments":[{"__symbolic":"reference","name":"ɵg"}]},{"__symbolic":"reference","module":"@angular/core","name":"ViewContainerRef","line":13,"character":23},{"__symbolic":"reference","module":"@angular/core","name":"ComponentFactoryResolver","line":14,"character":22},{"__symbolic":"reference","name":"any"}]}],"ngOnInit":[{"__symbolic":"method"}]}},"ɵh":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Pipe","line":2,"character":1},"arguments":[{"name":"safe"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/platform-browser","name":"DomSanitizer","line":7,"character":33}]}],"transform":[{"__symbolic":"method"}]}},"ɵi":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":3,"character":1},"arguments":[{"selector":"action-dialog","template":"<div class=\"container\" id=\"confirmation-dialog\">\n  <div mat-dialog-content>{{dialogData.title | translate}}</div>\n  <div class=\"actions\">\n    <button *ngFor=\"let option of dialogData.actionButtons\" mat-button id=\"btn-style\" (click)=\"dialogAction(option.name)\">{{ option.name |\n      translate }}</button>\n  </div>\n</div>","styles":[".container{display:flex;flex-direction:column;align-items:center;text-align:center;justify-content:space-around;height:120px;font:16px/19px Roboto,Helvetica Neue,sans-serif;font-weight:700;color:#707070}.actions{display:flex;justify-content:center;width:100%}#btn-style{width:184px;height:36px;margin:6px;background-color:#2a55a2;color:#fff}"]}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":10,"character":5},"arguments":[{"__symbolic":"reference","module":"@angular/material/dialog","name":"MAT_DIALOG_DATA","line":10,"character":12}]}],null],"parameters":[{"__symbolic":"reference","name":"any"},{"__symbolic":"reference","name":"MatDialogRef","module":"@angular/material/dialog","arguments":[{"__symbolic":"reference","name":"ɵi"}]}]}],"dialogAction":[{"__symbolic":"method"}]}},"ɵj":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Pipe","line":2,"character":1},"arguments":[{"name":"getSelector"}]}],"members":{"transform":[{"__symbolic":"method"}]}},"ɵk":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":3,"character":1},"arguments":[{"selector":"ng-history","template":"<div>\n    <h2 mat-dialog-title style=\"padding:10px;\">\n        <span> History</span>\n        <mat-icon class=\"cancel_icon\"\n         (click)=\"closeDialog()\">cancel\n        </mat-icon>\n    </h2>\n    <div class=\"history-container\">\n        <mat-card class=\"room-type-rules-card\">\n        <div class=\"header-row\">\n            <div class=\"column date-time\">{{'Date/time' | translate }}</div>\n            <div class=\"column user\">{{'User'| translate }}</div>\n            <div class=\"column action\">{{'Action'| translate }}</div>\n        </div>\n\n        <div class=\"data-row\" *ngFor=\"let record of logs; let i = index\">\n            <div class=\"column date-time\" attr.data-cy=\"history-datetime-{{i}}\">\n                {{ record.action_time | dateTimeFormat : dateTimeFormat}}\n            </div>\n            <div class=\"column user\" attr.data-cy=\"history-username-{{i}}\">\n                {{ record.user.username }}\n            </div>\n            <div class=\"column action action-box\" attr.data-cy=\"history-change_message-{{i}}\">\n                {{ record.change_message }}\n            </div>\n        </div>\n    </mat-card>\n    </div>\n\n</div>","styles":[".history-container{margin:0 auto;overflow-y:auto}.header-row{display:flex;background-color:#f5f5f5;font-weight:700}.column,.header-row{padding:10px}.date-time{width:20%;font-weight:700}.user{width:15%}.action{width:65%}.data-row{display:flex;padding:10px}.data-row:last-child{border-bottom:none}.action-box{background-color:#f6f5f5;padding:10px;border-radius:5px;display:inline-block}.history-container{margin:20px}.cancel_icon{float:right;color:grey;cursor:pointer}"]}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":11,"character":5},"arguments":[{"__symbolic":"reference","module":"@angular/material/dialog","name":"MAT_DIALOG_DATA","line":11,"character":12}]}],null],"parameters":[{"__symbolic":"reference","name":"any"},{"__symbolic":"reference","name":"MatDialogRef","module":"@angular/material/dialog","arguments":[{"__symbolic":"reference","name":"ɵk"}]}]}],"ngOnInit":[{"__symbolic":"method"}],"closeDialog":[{"__symbolic":"method"}]}},"ɵl":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Pipe","line":3,"character":1},"arguments":[{"name":"dateTimeFormat"}]}],"members":{"transform":[{"__symbolic":"method"}]}},"ɵm":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":7,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"ngx-cookie","name":"CookieService","line":9,"character":39},{"__symbolic":"reference","name":"ErrorHanlderService"}]}],"intercept":[{"__symbolic":"method"}],"handleError":[{"__symbolic":"method"}]}}},"origins":{"ControlConfig":"./lib/models/metadata","FieldSetControlConfig":"./lib/models/metadata","FormSetControlConfig":"./lib/models/metadata","ForeignKeyControlConfig":"./lib/models/metadata","SelectControlConfig":"./lib/models/metadata","AutoCompleteControlConfig":"./lib/models/metadata","TextAreaControlConfig":"./lib/models/metadata","TouchingFields":"./lib/models/metadata","FieldConfig":"./lib/models/metadata","CustomElementConfig":"./lib/models/metadata","ErrorMessage":"./lib/models/metadata","PostSubmitAction":"./lib/models/metadata","Metadata":"./lib/models/metadata","ViewConfig":"./lib/models/views","ListViewer":"./lib/models/views","FormActions":"./lib/models/views","FormViewer":"./lib/models/views","IframeOptions":"./lib/models/views","IFrameMode":"./lib/models/views","FormView":"./lib/models/views","ViewSettingsObj":"./lib/models/views","ListingView":"./lib/models/views","ForeignKeyFieldComponent":"./lib/components/foreign-key-field/foreign-key-field.component","ForeignKeyFiledMultipleComponent":"./lib/components/foreign-key-filed-multiple/foreign-key-filed-multiple.component","FormFieldComponent":"./lib/components/form-field/form-field.component","FormsetComponent":"./lib/components/formset/formset.component","ListingComponent":"./lib/components/listing/listing.component","ModelFormComponent":"./lib/components/model-form/model-form.component","SelectFieldComponent":"./lib/components/select-field/select-field.component","TextAreaFieldComponent":"./lib/components/text-area-field/text-area-field.component","FileUploadComponent":"./lib/components/file-upload/file-upload.component","DateTimePickerComponent":"./lib/components/date-time-picker/date-time-picker.component","TimePickerComponent":"./lib/components/time-picker/time-picker.component","ListingDialogComponent":"./lib/containers/listing-dialog/listing-dialog.component","ScreenWrapperComponent":"./lib/containers/screen-wrapper/screen-wrapper.component","Registry":"./lib/services/registry.service","Navigator":"./lib/services/navigator.service","ErrorHanlderService":"./lib/services/error-hanlder.service","ApiService":"./lib/services/api.service","FormService":"./lib/services/form.service","CrudModule":"./lib/crud.module","ɵa":"./lib/services/attachments.service","ɵb":"./lib/custom-date-adapter","ɵc":"./lib/custom-date-adapter","ɵd":"./lib/components/iframe-modal/iframe-modal.component","ɵe":"./lib/components/error-handling/error-handling.component","ɵf":"./lib/components/attachments/attachments.component","ɵg":"./lib/containers/search-dialog/search-dialog.component","ɵh":"./lib/components/pipes/safe.pipe","ɵi":"./lib/components/action-dialog/action-dialog.component","ɵj":"./lib/components/pipes/get-selector.pipe","ɵk":"./lib/components/history/history.component","ɵl":"./lib/components/pipes/date-time-format.pipe","ɵm":"./lib/cookie.interceptor"},"importAs":"ng-crud-ui"}