UNPKG

@noaestudio/forms

Version:

Dynamic forms extension for Covalent

1 lines 90.9 kB
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("@angular/core"),require("@angular/forms"),require("@ngx-translate/core"),require("is-json"),require("moment"),require("@angular/material"),require("@angular/cdk/collections"),require("@angular/cdk/tree"),require("@angular/material/tree"),require("rxjs"),require("@angular/material/dialog"),require("@angular/cdk/drag-drop"),require("lodash"),require("@angular/cdk/portal"),require("rxjs/operators"),require("angular-tree-component"),require("@covalent/core/loading"),require("@angular/material-moment-adapter"),require("@angular/common"),require("@angular/material/input"),require("@angular/material/select"),require("@angular/material/checkbox"),require("@angular/material/slider"),require("@angular/material/slide-toggle"),require("@angular/material/icon"),require("@angular/material/button"),require("@angular/material/datepicker"),require("@angular/material/tabs"),require("@angular/material/chips"),require("@covalent/core/common"),require("@covalent/core/file"),require("ngx-editor"),require("angular-font-awesome"),require("material-community-components"),require("@ng-select/ng-select"),require("ngx-material-timepicker"),require("@ngx-translate/http-loader")):"function"==typeof define&&define.amd?define("@covalent/dynamic-forms",["exports","@angular/core","@angular/forms","@ngx-translate/core","is-json","moment","@angular/material","@angular/cdk/collections","@angular/cdk/tree","@angular/material/tree","rxjs","@angular/material/dialog","@angular/cdk/drag-drop","lodash","@angular/cdk/portal","rxjs/operators","angular-tree-component","@covalent/core/loading","@angular/material-moment-adapter","@angular/common","@angular/material/input","@angular/material/select","@angular/material/checkbox","@angular/material/slider","@angular/material/slide-toggle","@angular/material/icon","@angular/material/button","@angular/material/datepicker","@angular/material/tabs","@angular/material/chips","@covalent/core/common","@covalent/core/file","ngx-editor","angular-font-awesome","material-community-components","@ng-select/ng-select","ngx-material-timepicker","@ngx-translate/http-loader"],e):e((t.covalent=t.covalent||{},t.covalent["dynamic-forms"]={}),t.ng.core,t.ng.forms,null,null,null,t.ng.material,t.ng.cdk.collections,t.ng.cdk.tree,t.ng.material.tree,t.rxjs,t.ng.material.dialog,t.ng.cdk["drag-drop"],null,t.ng.cdk.portal,t.rxjs.operators,null,t.covalent.core.loading,t.ng["material-moment-adapter"],t.ng.common,t.ng.material.input,t.ng.material.select,t.ng.material.checkbox,t.ng.material.slider,t.ng.material["slide-toggle"],t.ng.material.icon,t.ng.material.button,t.ng.material.datepicker,t.ng.material.tabs,t.ng.material.chips,t.covalent.core.common,t.covalent.core.file,null,null,null,null,null,null)}(this,function(t,i,n,e,a,r,l,o,d,s,c,p,m,u,f,h,g,y,x,b,v,w,k,C,I,M,E,T,_,O,D,N,S,L,V,A,F,R){"use strict";var q=function(t,e){return(q=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])})(t,e)};function P(t,e){function n(){this.constructor=t}q(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)}function z(e,o,l,d){return new(l||(l=Promise))(function(t,n){function a(t){try{i(d.next(t))}catch(e){n(e)}}function r(t){try{i(d["throw"](t))}catch(e){n(e)}}function i(e){e.done?t(e.value):new l(function(t){t(e.value)}).then(a,r)}i((d=d.apply(e,o||[])).next())})}function j(n,a){var r,i,o,t,l={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return t={next:e(0),"throw":e(1),"return":e(2)},"function"==typeof Symbol&&(t[Symbol.iterator]=function(){return this}),t;function e(e){return function(t){return function(t){if(r)throw new TypeError("Generator is already executing.");for(;l;)try{if(r=1,i&&(o=2&t[0]?i["return"]:t[0]?i["throw"]||((o=i["return"])&&o.call(i),0):i.next)&&!(o=o.call(i,t[1])).done)return o;switch(i=0,o&&(t=[2&t[0],o.value]),t[0]){case 0:case 1:o=t;break;case 4:return l.label++,{value:t[1],done:!1};case 5:l.label++,i=t[1],t=[0];continue;case 7:t=l.ops.pop(),l.trys.pop();continue;default:if(!(o=0<(o=l.trys).length&&o[o.length-1])&&(6===t[0]||2===t[0])){l=0;continue}if(3===t[0]&&(!o||t[1]>o[0]&&t[1]<o[3])){l.label=t[1];break}if(6===t[0]&&l.label<o[1]){l.label=o[1],o=t;break}if(o&&l.label<o[2]){l.label=o[2],l.ops.push(t);break}o[2]&&l.ops.pop(),l.trys.pop();continue}t=a.call(n,l)}catch(e){t=[6,e],i=0}finally{r=o=0}if(5&t[0])throw t[1];return{value:t[0]?t[1]:void 0,done:!0}}([e,t])}}}function U(t){var e="function"==typeof Symbol&&t[Symbol.iterator],n=0;return e?e.call(t):{next:function(){return t&&n>=t.length&&(t=void 0),{value:t&&t[n++],done:!t}}}}function G(t,e){var n="function"==typeof Symbol&&t[Symbol.iterator];if(!n)return t;var a,r,i=n.call(t),o=[];try{for(;(void 0===e||0<e--)&&!(a=i.next()).done;)o.push(a.value)}catch(l){r={error:l}}finally{try{a&&!a.done&&(n=i["return"])&&n.call(i)}finally{if(r)throw r.error}}return o}function $(){for(var t=[],e=0;e<arguments.length;e++)t=t.concat(G(arguments[e]));return t}var H=function(){},J=function(){function t(){this._value=undefined,this.onChange=function(t){return H},this.onTouched=function(){return H}}return Object.defineProperty(t.prototype,"value",{get:function(){return this._value},set:function(t){t!==this._value&&(this._value=t,this.onChange(t))},enumerable:!0,configurable:!0}),t.prototype.writeValue=function(t){this.value=t},t.prototype.registerOnChange=function(t){this.onChange=t},t.prototype.registerOnTouched=function(t){this.onTouched=t},t}(),Y={provide:n.NG_VALUE_ACCESSOR,useExisting:i.forwardRef(function(){return B}),multi:!0},B=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.label="",t.type=undefined,t.required=undefined,t.min=undefined,t.max=undefined,t.minLength=undefined,t.maxLength=undefined,t.step=undefined,t.autocomplete="off",t}return P(t,e),t.prototype.ngOnInit=function(){"password"==this.type?this.autocomplete="new-password":this.autocomplete="off"},t.decorators=[{type:i.Component,args:[{providers:[Y],selector:"td-dynamic-input",styles:[".td-dynamic-input-wrapper{-ms-flex-direction:row;flex-direction:row;display:-ms-flexbox;display:flex;box-sizing:border-box}.td-dynamic-input-wrapper .td-dynamic-input-field{-ms-flex:1;flex:1;box-sizing:border-box}"],template:'<div class="td-dynamic-input-wrapper">\n <mat-form-field class="td-dynamic-input-field">\n <input #elementInput matInput [(ngModel)]="value" [formControl]="control" [placeholder]="label"\n [type]="type" [autocomplete]="autocomplete" [required]="required" [attr.min]="min" [attr.max]="max"\n [attr.minLength]="minLength" [attr.maxLength]="maxLength" [attr.step]="step" />\n </mat-form-field>\n</div>\n'}]}],t.ctorParameters=function(){return[]},t}(J),K={provide:n.NG_VALUE_ACCESSOR,useExisting:i.forwardRef(function(){return X}),multi:!0},X=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.required=undefined,t.label="",t}return P(t,e),t.decorators=[{type:i.Component,args:[{providers:[K],selector:"td-dynamic-file-input",styles:[".td-dynamic-file-input-wrapper{-ms-flex-direction:row;flex-direction:row;display:-ms-flexbox;display:flex;box-sizing:border-box}.td-dynamic-file-input-wrapper .td-dynamic-file-input-field{-ms-flex:1;flex:1;box-sizing:border-box}.td-file-input{margin-left:10px}"],template:'<div class="td-dynamic-file-input-wrapper">\n\t<mat-form-field tdFileDrop\n\t\tclass="td-dynamic-file-input-field"\n\t\tfloatLabel="never"\n\t\t[disabled]="control?.disabled"\n\t\t(fileDrop)="value = $event"\n\t\t(click)="!control?.disabled && fileInput.inputElement.click()"\n\t\t(keyup.enter)="!control?.disabled && fileInput.inputElement.click()"\n\t\t(keyup.delete)="fileInput.clear()"\n\t\t(keyup.backspace)="fileInput.clear()" >\n\t\t\t<input matInput\n\t\t\t\t[value]="value?.name"\n\t\t\t\t[placeholder]="label"\n\t\t\t\t[disabled]="control?.disabled"\n\t\t\t\tautocomplete="off"\n\t\t\t\treadonly />\n\t</mat-form-field>\n\t<button mat-icon-button *ngIf="value" (click)="fileInput.clear()" (keyup.enter)="fileInput.clear()">\n\t\t<mat-icon>cancel</mat-icon>\n\t</button>\n\t<td-file-input class="td-file-input" #fileInput [(ngModel)]="value">\n\t\t<mat-icon>folder</mat-icon>\n\t\t<span>{{ label }}</span>\n\t</td-file-input>\n</div>\n'}]}],t.ctorParameters=function(){return[]},t}(J),Q={provide:n.NG_VALUE_ACCESSOR,useExisting:i.forwardRef(function(){return W}),multi:!0},W=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.label="",t.required=undefined,t}return P(t,e),t.decorators=[{type:i.Component,args:[{providers:[Q],selector:"td-dynamic-textarea",styles:[".td-dynamic-textarea-wrapper{-ms-flex-direction:row;flex-direction:row;display:-ms-flexbox;display:flex;box-sizing:border-box}.td-dynamic-textarea-wrapper .td-dynamic-textarea-field{-ms-flex:1;flex:1;box-sizing:border-box}"],template:'<div class="td-dynamic-textarea-wrapper">\n <mat-form-field class="td-dynamic-textarea-field">\n <textarea #elementInput\n matInput\n [(ngModel)]="value"\n [placeholder]="label"\n [required]="required"\n rows="4">\n </textarea>\n </mat-form-field>\n</div>'}]}],t.ctorParameters=function(){return[]},t}(J),Z={provide:n.NG_VALUE_ACCESSOR,useExisting:i.forwardRef(function(){return tt}),multi:!0},tt=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.label="",t.required=!1,t}return P(t,e),t.decorators=[{type:i.Component,args:[{providers:[Z],selector:"td-dynamic-slide-toggle",styles:[""],template:'<div class="td-dynamic-slide-toggle-wrapper">\n <mat-slide-toggle [(ngModel)]="value"\n [required]="required">\n {{label}}\n </mat-slide-toggle>\n</div>'}]}],t.ctorParameters=function(){return[]},t}(J),et={provide:n.NG_VALUE_ACCESSOR,useExisting:i.forwardRef(function(){return nt}),multi:!0},nt=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.label="",t.required=!1,t}return P(t,e),t.decorators=[{type:i.Component,args:[{providers:[et],selector:"td-dynamic-checkbox",styles:[""],template:'<div class="td-dynamic-checkbox-wrapper">\n <mat-checkbox [(ngModel)]="value"\n [required]="required">\n {{label}}\n </mat-checkbox>\n</div>'}]}],t.ctorParameters=function(){return[]},t}(J),at={provide:n.NG_VALUE_ACCESSOR,useExisting:i.forwardRef(function(){return rt}),multi:!0},rt=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.label="",t.required=undefined,t.min=undefined,t.max=undefined,t}return P(t,e),t.decorators=[{type:i.Component,args:[{providers:[at],selector:"td-dynamic-slider",styles:[".td-dynamic-slider-field{position:relative;margin-top:8px;-ms-flex-direction:row;flex-direction:row;display:-ms-flexbox;display:flex;box-sizing:border-box}.td-dynamic-slider-field .td-dynamic-slider{-ms-flex:1;flex:1}"],template:'<div class="td-dynamic-slider-wrapper">\n <div class="mat-form-field-placeholder-wrapper mat-form-field-can-float mat-form-field-should-float"\n [class.mat-focused]="slider._isActive">\n <label class="mat-form-field-placeholder mat-float mat-form-field-float td-slider-label"> {{label}} <span *ngIf="required" class="mat-placeholder-required">*</span></label>\n </div>\n <div class="td-dynamic-slider-field">\n <mat-slider #slider\n class="td-dynamic-slider"\n [(ngModel)]="value"\n [min]="min"\n [max]="max"\n thumbLabel\n tickInterval="auto"\n [required]="required">\n </mat-slider>\n </div>\n</div>\n'}]}],t.ctorParameters=function(){return[]},t}(J),it=a,ot={provide:n.NG_VALUE_ACCESSOR,useExisting:i.forwardRef(function(){return lt}),multi:!0},lt=function(n){function t(t){var e=n.call(this)||this;return e.translator=t,e.label="",e.required=undefined,e.selections=undefined,e.selectComplex=!1,e.selectMultiple=!1,e.flex=100,e.flexPerc=e.flex/100,e}return P(t,n),t.prototype.ngOnInit=function(){var e=this;this.selections&&this.selections.forEach(function(t){t.label&&(t.label=e.translateLabel(t.label))})},t.prototype.translateLabel=function(t){var e=this.translator.currentLang,n=this.translator.defaultLang;if(!it(t))return this.translator.instant(t);var a=JSON.parse(t);if(a[e])return a[e];if(a[n])return a[n];for(var r in a)return a[r]},t.decorators=[{type:i.Component,args:[{providers:[ot],selector:"td-dynamic-select",styles:[".td-dynamic-select-wrapper{-ms-flex-direction:row;flex-direction:row;display:-ms-flexbox;display:flex;box-sizing:border-box}.td-dynamic-select-wrapper .td-dynamic-select-field{-ms-flex:1;flex:1;box-sizing:border-box}"],template:'<div class="td-dynamic-select-wrapper">\n\n\t<mat-form-field *ngIf="!selectComplex" class="td-dynamic-select-field">\n\t\t<mat-select [(ngModel)]="value" [placeholder]="label" [required]="required">\n\t\t\t<mat-option *ngFor="let selection of selections" [value]="selection.value || selection">{{selection.label || selection}}</mat-option>\n\t\t</mat-select>\n\t</mat-form-field>\n\n\t<ng-select style="padding-bottom: 2.25em;" *ngIf="selectComplex" [(ngModel)]="value" placeholder="{{label + (required ? \' *\' : \'\')}}" [required]="required" [multiple]="selectMultiple" [items]="selections"\n\t\t [searchable]="true" bindLabel="label" bindValue="value" appendTo="body" [style.flex]="flexPerc">\n\t</ng-select>\n\n</div>\n'}]}],t.ctorParameters=function(){return[{type:e.TranslateService}]},t}(J),dt={provide:n.NG_VALUE_ACCESSOR,useExisting:i.forwardRef(function(){return st}),multi:!0},st=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.label="",t.type=undefined,t.required=undefined,t.min=undefined,t.max=undefined,t}return P(t,e),t.decorators=[{type:i.Component,args:[{providers:[dt],selector:"td-dynamic-datepicker",styles:[".td-dynamic-datepicker-wrapper{-ms-flex-direction:row;flex-direction:row;display:-ms-flexbox;display:flex;box-sizing:border-box}.td-dynamic-datepicker-wrapper .td-dynamic-datepicker-field{-ms-flex:1;flex:1;box-sizing:border-box}"],template:'<div class="td-dynamic-datepicker-wrapper">\n <mat-form-field class="td-dynamic-datepicker-field">\n <input #elementInput\n matInput\n [matDatepicker]="dynamicDatePicker"\n [(ngModel)]="value"\n [formControl]="control"\n autocomplete="off"\n [placeholder]="label"\n [required]="required"\n [min]="min"\n [max]="max"/>\n <mat-datepicker-toggle matSuffix [for]="dynamicDatePicker"></mat-datepicker-toggle>\n <mat-datepicker #dynamicDatePicker></mat-datepicker>\n </mat-form-field>\n</div>\n'}]}],t.ctorParameters=function(){return[]},t}(J),ct={provide:n.NG_VALUE_ACCESSOR,useExisting:i.forwardRef(function(){return pt}),multi:!0},pt=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.label="",t.type=undefined,t.required=undefined,t.min=undefined,t.max=undefined,t.minLength=undefined,t.maxLength=undefined,t.height="150px",t.toolbarConfig=[["bold","italic","underline"],["fontName","fontSize","color"],["justifyLeft","justifyCenter","justifyRight","justifyFull","indent","outdent"],["cut","copy","delete","removeFormat","undo","redo"],["horizontalLine","orderedList","unorderedList"],["link","unlink"]],t}return P(t,e),t.decorators=[{type:i.Component,args:[{providers:[ct],selector:"text-editor",styles:[".td-dynamic-input-wrapper{-ms-flex-direction:row;flex-direction:row;display:-ms-flexbox;display:flex;box-sizing:border-box}.td-dynamic-input-wrapper .td-dynamic-input-field{-ms-flex:1;flex:1;box-sizing:border-box}.td-dynamic-input-wrapper .ngx-editor{margin-top:10px}"],template:'<style>\n\n.ngx-editor {\n\tmargin-top: 10px;\n}\n\n</style>\n\n<div class="td-dynamic-input-wrapper" style="display: block;">\n\t<label>{{label}} {{required ? \'*\' : \'\'}}</label>\n\t<app-ngx-editor [(ngModel)]="value" [height]="height" [minHeight]="height" [toolbar]="toolbarConfig" style="width:100%;">\n\t</app-ngx-editor>\n</div>\n'}]}],t.ctorParameters=function(){return[]},t}(J),mt={provide:n.NG_VALUE_ACCESSOR,useExisting:i.forwardRef(function(){return ut}),multi:!0},ut=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.label="",t.type=undefined,t.required=undefined,t.min=undefined,t.max=undefined,t.minLength=undefined,t.maxLength=undefined,t.hideUsedColors=!0,t}return P(t,e),t.prototype.selectColor=function(t){this.control.setValue(t)},t.decorators=[{type:i.Component,args:[{providers:[mt],selector:"color-picker",styles:[".td-dynamic-input-wrapper{-ms-flex-direction:row;flex-direction:row;display:-ms-flexbox;display:flex;box-sizing:border-box}.td-dynamic-input-wrapper .td-dynamic-input-field{-ms-flex:1;flex:1;box-sizing:border-box}.td-dynamic-input-wrapper .ngx-editor{margin-top:10px}"],template:'<style>\n\n.ngx-editor {\n\tmargin-top: 10px;\n}\n\n</style>\n\n<div class="td-dynamic-input-wrapper" style="display: block;">\n\t<label style="display: block; margin-right: 10px;">{{label}} {{required ? \'*\' : \'\'}}</label>\n\t<mcc-color-picker [selectedColor]="value" (selected)="selectColor($event)" [hideUsedColors]="hideUsedColors"></mcc-color-picker>\n</div>\n'}]}],t.ctorParameters=function(){return[]},t}(J),ft={provide:n.NG_VALUE_ACCESSOR,useExisting:i.forwardRef(function(){return ht}),multi:!0},ht=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.label="",t.type=undefined,t.required=undefined,t.min=undefined,t.max=undefined,t.format=24,t}return P(t,e),t.prototype.selectValue=function(t){this.control.setValue(t)},t.decorators=[{type:i.Component,args:[{providers:[ft],selector:"td-time-picker",styles:[".td-dynamic-timepicker-wrapper{-ms-flex-direction:row;flex-direction:row;display:-ms-flexbox;display:flex;box-sizing:border-box}.td-dynamic-timepicker-wrapper .td-dynamic-timepicker-field{-ms-flex:1;flex:1;box-sizing:border-box}"],template:'<div class="td-time-picker">\n\t<mat-form-field class="td-dynamic-timepicker-field">\n\t\t<input matInput [(ngModel)]="value" (ngModelChange)="selectValue($event)" [format]="format" [ngxTimepicker]="pickerT"\n\t\t\t[placeholder]="label" [required]="required" [min]="min" [max]="max" autocomplete="off"/>\n\t\t<ngx-material-timepicker #pickerT></ngx-material-timepicker>\n </mat-form-field>\n</div>\n'}]}],t.ctorParameters=function(){return[]},t}(J),gt=r,yt={provide:n.NG_VALUE_ACCESSOR,useExisting:i.forwardRef(function(){return xt}),multi:!0},xt=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.label="",t.type=undefined,t.required=undefined,t.min=undefined,t.max=undefined,t.format=24,t.dateTime=gt.utc(),t.dateValue=null,t.timeValue="",t}return P(t,e),t.prototype.ngOnInit=function(){this.value?(this.dateTime=this.value,this.initValues()):(this.dateTime=gt.utc(),this.control.setValue(this.dateTime))},t.prototype.initValues=function(){this.dateValue=gt.utc(this.dateTime.clone()),this.timeValue=this.dateTime.format("HH:mm")},t.prototype.selectDateValue=function(t){null==this.dateTime&&(this.dateTime=gt.utc()),this.dateTime.year(t.year()).month(t.month()).date(t.date()),this.control.setValue(this.dateTime)},t.prototype.selectTimeValue=function(t){var e=gt.utc(this.timeValue,"HH:mm");null==this.dateTime&&(this.dateTime=gt.utc()),this.dateTime.hour(e.hour()).minute(e.minute()).second(e.second()),this.control.setValue(this.dateTime)},t.decorators=[{type:i.Component,args:[{providers:[yt],selector:"td-date-time-picker",styles:[".td-dynamic-timepicker-wrapper{-ms-flex-direction:row;flex-direction:row;display:-ms-flexbox;display:flex;box-sizing:border-box}.td-dynamic-timepicker-wrapper .td-dynamic-timepicker-field{-ms-flex:1;flex:1;box-sizing:border-box}"],template:'<style>\n\n.timeLabel {\n\tdisplay: block;\n\tmargin-bottom: 5px;\n\tcolor: rgba(0, 0, 0, 0.54);\n\tfont-size: 11px;\n}\n\n.timeInput {\n\tborder: none;\n border-bottom: 1px solid rgba(0, 0, 0, 0.54);\n width: 201px;\n}\n\n.timeIcon {\n\tdisplay: inline-flex;\n\tvertical-align: middle;\n}\n\n</style>\n\n<div class="td-dynamic-datepicker-wrapper">\n\t<label>{{label}}</label>\n\n\t<br />\n\t<br />\n\n\t<mat-form-field class="td-dynamic-datepicker-field">\n\t\t<input #elementInput matInput [matDatepicker]="dynamicDatePicker" autocomplete="off"\n\t\t\t[(ngModel)]="dateValue" (ngModelChange)="selectDateValue($event)"\n\t\t\tplaceholder="Fecha" [required]="required" [min]="min" [max]="max"\n\t\t/>\n\t\t<mat-datepicker-toggle matSuffix [for]="dynamicDatePicker"></mat-datepicker-toggle>\n\t\t<mat-datepicker #dynamicDatePicker></mat-datepicker>\n\n\t</mat-form-field>\n\n\t<br />\n\n\t<label class="timeLabel">Hora</label>\n\t<input class="timeInput" [ngxTimepicker]="pickerDT" [(ngModel)]="timeValue" (ngModelChange)="selectTimeValue($event)"\n\t\t[disableClick]="true" readonly [format]="format" [required]="required" autocomplete="off" />\n <ngx-material-timepicker-toggle class="timeIcon" [for]="pickerDT"></ngx-material-timepicker-toggle>\n <ngx-material-timepicker #pickerDT></ngx-material-timepicker>\n\n</div>\n'}]}],t.ctorParameters=function(){return[]},t}(J),bt=function(){function t(t,e){this.dialogRef=t,this.data=e,this.remainingLangs=[],this.selectedLang="",this.data&&this.data.langs&&(this.remainingLangs=this.data.langs)}return t.prototype.ngOnInit=function(){},t.decorators=[{type:i.Component,args:[{selector:"translate-dialog",template:'<h4 mat-dialog-title>{{\'newLanguage\' | translate}}</h4>\n<div mat-dialog-content>\n\t<mat-form-field>\n\t\t<mat-select placeholder="{{\'language\' | translate}}" [(ngModel)]="selectedLang">\n\t\t <mat-option *ngFor="let lang of remainingLangs" [value]="lang">\n\t\t\t\t{{lang | translate}}\n\t\t </mat-option>\n\t\t</mat-select>\n\t</mat-form-field>\n</div>\n<div mat-dialog-actions>\n \t<button mat-button style="float:right;" (click)="dialogRef.close(selectedLang)">OK</button>\n</div>\n'}]}],t.ctorParameters=function(){return[{type:l.MatDialogRef},{type:undefined,decorators:[{type:i.Inject,args:[l.MAT_DIALOG_DATA]}]}]},t}(),vt={provide:n.NG_VALUE_ACCESSOR,useExisting:i.forwardRef(function(){return wt}),multi:!0},wt=function(a){function o(t,e){var n=a.call(this)||this;return n.dialog=t,n.changeDetector=e,n.height="150px",n.toolbarConfig=[["bold","italic","underline"],["fontName","fontSize","color"],["justifyLeft","justifyCenter","justifyRight","justifyFull","indent","outdent"],["cut","copy","delete","removeFormat","undo","redo"],["horizontalLine","orderedList","unorderedList"],["link","unlink"]],n.label="",n.type=undefined,n.required=undefined,n.min=undefined,n.max=undefined,n.minLength=undefined,n.maxLength=undefined,n.langs=["es"],n.allLangs=["es","en","fr","de"],n.selectedIndex=0,n.selectedLang="",n.templateType="",n}return P(o,a),o.prototype.ngOnInit=function(){this.selectedLang=this.langs[0],this.templateType=o.getTemplateType(this.type),this.initValue(this.value)},o.prototype.inArray=function(t,e){return-1<t.indexOf(e)},o.prototype.initValue=function(t){if(this.valuesJSON={},t)for(var e in"string"==typeof t&&(t=JSON.parse(t)),this.langs=[],t)this.inArray(this.allLangs,e)&&this.langs.push(e);try{for(var n=U(this.langs),a=n.next();!a.done;a=n.next()){e=a.value;this.valuesJSON[e]=t&&t[e]||""}}catch(l){r={error:l}}finally{try{a&&!a.done&&(i=n["return"])&&i.call(n)}finally{if(r)throw r.error}}this.values=this.parseInit(this.valuesJSON);var r,i,o=JSON.stringify(this.valuesJSON);this.control.setValue(o)},o.prototype.parseInit=function(t){var e={};for(var n in t)e[n]=this.parseValue(t[n]);return e},o.prototype.parseValue=function(t){return"file-input"==this.templateType?undefined:t},o.getTemplateType=function(t){switch(t){case"text":case"input":return"input";case"textarea":return"area";case"text-editor":return"editor";case"file-input":return"file-input";default:return""}},o.prototype.selectLang=function(e){var t=this.langs.findIndex(function(t){return t==e});t!=this.selectedIndex&&(this.selectedIndex=t)},o.prototype.addLang=function(){var e=this,n=this.langs,t=this.allLangs.filter(function(t){return!e.inArray(n,t)});this.openDialog(t)},o.prototype.removeLang=function(e){if(!(this.langs.length<=1)){var t=this.langs.findIndex(function(t){return t==e});if(-1!==t){this.langs.splice(t,1),delete this.values[e],delete this.valuesJSON[e],t==this.selectedIndex?(this.selectedIndex=0,this.selectedLang=this.langs[0]):this.selectLang(this.selectedLang);var n=JSON.stringify(this.valuesJSON);this.control.setValue(n)}}},o.prototype.openDialog=function(t){var e=this,n={langs:t};this.dialog.open(bt,{data:n}).afterClosed().subscribe(function(t){t&&(e.valuesJSON[t]="",e.values[t]=e.parseValue(e.valuesJSON[t]),e.langs.push(t),e.changeDetector.detectChanges(),e.selectLang(t))})},o.prototype.changeValue=function(r,i){return z(this,void 0,void 0,function(){var e,n,a;return j(this,function(t){switch(t.label){case 0:return r instanceof File?(e=this.valuesJSON,n=i,[4,o.toBase64(r)]):[3,2];case 1:return e[n]=t.sent(),[3,3];case 2:r==undefined?this.valuesJSON[i]="":this.valuesJSON[i]=r,t.label=3;case 3:return a=JSON.stringify(this.valuesJSON),this.control.setValue(a),[2]}})})},o.toBase64=function(r){return z(this,void 0,void 0,function(){var n,a;return j(this,function(t){return n=new FileReader,a="",[2,new Promise(function(e){n.onloadend=function(t){a=n.result,e(a)},n.readAsDataURL(r)})]})})},o.decorators=[{type:i.Component,args:[{providers:[vt],selector:"translate",styles:[".td-dynamic-input-wrapper{-ms-flex-direction:row;flex-direction:row;display:-ms-flexbox;display:flex;box-sizing:border-box}.td-dynamic-input-wrapper .td-dynamic-input-field{-ms-flex:1;flex:1;box-sizing:border-box}"],template:'<style>\n\n.ngx-editor {\n\tmargin-top: 10px;\n}\n\n</style>\n\n<div class="td-translatable">\n\t<label>{{label}}</label>\n\t<mat-tab-group #tabGroup class="tab-group" dynamicHeight [(selectedIndex)]="selectedIndex">\n\t\t<mat-tab *ngFor="let lang of langs">\n\t\t\t<ng-template matTabLabel>\n\t\t\t\t<span (click)="selectLang(lang)">{{lang | translate}}</span>\n\t\t\t\t<mat-icon (click)="removeLang(lang)" style="vertical-align: middle; margin-left: 10px;">close</mat-icon>\n\t\t\t</ng-template>\n\t\t\t<div style="width:100%;" [ngSwitch]="templateType">\n\t\t\t\t<ng-template ngSwitchCase="input">\n\t\t\t\t\t<div class="td-dynamic-input-wrapper">\n\t\t\t\t\t <mat-form-field class="td-dynamic-input-field">\n\t\t\t\t\t <input #elementInput\n\t\t\t\t\t matInput\n\t\t\t\t\t\t\t\tautocomplete="off"\n\t\t\t\t\t [(ngModel)]="values[lang]"\n\t\t\t\t\t\t\t\t(ngModelChange)="changeValue($event, lang)"\n\t\t\t\t\t [type]="type"\n\t\t\t\t\t [required]="required"\n\t\t\t\t\t [attr.min]="min"\n\t\t\t\t\t [attr.max]="max"\n\t\t\t\t\t [attr.minLength]="minLength"\n\t\t\t\t\t [attr.maxLength]="maxLength"/>\n\t\t\t\t\t </mat-form-field>\n\t\t\t\t\t</div>\n\t\t\t\t</ng-template>\n\t\t\t\t<ng-template ngSwitchCase="area">\n\t\t\t\t\t<div class="td-dynamic-textarea-wrapper">\n\t\t\t\t\t <mat-form-field class="td-dynamic-textarea-field" style="width:100%;">\n\t\t\t\t\t <textarea #elementInput\n\t\t\t\t\t matInput\n\t\t\t\t\t [(ngModel)]="values[lang]"\n\t\t\t\t\t\t\t\t(ngModelChange)="changeValue($event, lang)"\n\t\t\t\t\t [required]="required"\n\t\t\t\t\t rows="4">\n\t\t\t\t\t </textarea>\n\t\t\t\t\t </mat-form-field>\n\t\t\t\t\t</div>\n\t\t\t\t</ng-template>\n\t\t\t\t<ng-template ngSwitchCase="editor">\n\t\t\t\t\t<div class="td-dynamic-input-wrapper" style="display: block;">\n\t\t\t\t\t\t<app-ngx-editor [(ngModel)]="values[lang]" (ngModelChange)="changeValue($event, lang)"\n\t\t\t\t\t\t\t[height]="height" [minHeight]="height" [toolbar]="toolbarConfig" style="width:100%;">\n\t\t\t\t\t\t</app-ngx-editor>\n\t\t\t\t\t</div>\n\t\t\t\t</ng-template>\n\t\t\t\t<ng-template ngSwitchCase="file-input">\n\t\t\t\t\t<div class="td-dynamic-file-input-wrapper" style="display: flex;">\n\t\t\t\t\t\t<mat-form-field tdFileDrop class="td-dynamic-file-input-field" floatLabel="never" (fileDrop)="values[lang] = $event"\n\t\t\t\t\t\t\t(click)="fileInput.inputElement.click()" (keyup.enter)="fileInput.inputElement.click()"\n\t\t\t\t\t\t\t(keyup.delete)="fileInput.clear()" (keyup.backspace)="fileInput.clear()">\n\t\t\t\t\t\t\t\t<input matInput autocomplete="off" [value]="values[lang]?.name" [placeholder]="label" readonly />\n\t\t\t\t\t\t</mat-form-field>\n\t\t\t\t\t\t<button style="align-self: center;" mat-icon-button *ngIf="values[lang]" (click)="fileInput.clear(); changeValue(undefined,lang);" (keyup.enter)="fileInput.clear()">\n\t\t\t\t\t\t\t<mat-icon>cancel</mat-icon>\n\t\t\t\t\t\t</button>\n\t\t\t\t\t\t<td-file-input style="align-self:center; margin-left:10px;" class="td-file-input" #fileInput [(ngModel)]="values[lang]" (ngModelChange)="changeValue($event, lang)">\n\t\t\t\t\t\t\t<mat-icon>folder</mat-icon>\n\t\t\t\t\t\t\t<span>{{ label }}</span>\n\t\t\t\t\t\t</td-file-input>\n\t\t\t\t\t</div>\n\t\t\t\t</ng-template>\n\t\t\t\t<ng-template ngSwitchDefault>\n\t\t\t\t\t<div class="td-dynamic-input-wrapper">\n\t\t\t\t\t <mat-form-field class="td-dynamic-input-field">\n\t\t\t\t\t <input #elementInput\n\t\t\t\t\t\t\t\tautocomplete="off"\n\t\t\t\t\t matInput\n\t\t\t\t\t [(ngModel)]="values[lang]"\n\t\t\t\t\t\t\t\t(ngModelChange)="changeValue($event, lang)"\n\t\t\t\t\t [type]="type"\n\t\t\t\t\t [required]="required"\n\t\t\t\t\t [attr.min]="min"\n\t\t\t\t\t [attr.max]="max"\n\t\t\t\t\t [attr.minLength]="minLength"\n\t\t\t\t\t [attr.maxLength]="maxLength"/>\n\t\t\t\t\t </mat-form-field>\n\t\t\t\t\t</div>\n\t\t\t\t</ng-template>\n\t\t\t</div>\n\t\t</mat-tab>\n\t\t<mat-tab [disabled]=true>\n\t\t\t<ng-template matTabLabel><mat-icon (click)="addLang()" style="color: #000000;">add</mat-icon></ng-template>\n\t\t</mat-tab>\n\t</mat-tab-group>\n</div>\n'}]}],o.ctorParameters=function(){return[{type:l.MatDialog},{type:i.ChangeDetectorRef}]},o.propDecorators={tabGroup:[{type:i.ViewChild,args:["tabGroup"]}]},o}(J),kt={provide:n.NG_VALUE_ACCESSOR,useExisting:i.forwardRef(function(){return Ct}),multi:!0},Ct=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.label="",t.type=undefined,t.required=undefined,t.hasFilter=!1,t.hasButtons=!0,t.editable=!0,t.multiple=!1,t.saveable=!1,t.expandible=!0,t.collapsable=!0,t.nodes=[],t.extraFields=[],t}return P(t,e),t.prototype.ngOnInit=function(){this.value&&(this.nodes=this.value)},t.prototype.onUpdate=function(t){0<t.length?this.control.setValue(t):this.control.setValue(null)},t.decorators=[{type:i.Component,args:[{providers:[kt],selector:"form-organization",styles:[".td-dynamic-input-wrapper{-ms-flex-direction:row;flex-direction:row;display:-ms-flexbox;display:flex;box-sizing:border-box}.td-dynamic-input-wrapper .td-dynamic-input-field{-ms-flex:1;flex:1;box-sizing:border-box}.td-dynamic-input-wrapper .ngx-editor{margin-top:10px}"],template:'<style>\n\n</style>\n\n<div class="td-dynamic-input-wrapper" style="display: block;">\n\t<label>{{label}} {{required ? \'*\' : \'\'}}</label>\n\t<covalent-organization [hasFilter]="hasFilter" [hasButtons]="hasButtons" [editable]="editable" [multiple]="multiple"\n\t\t[saveable]="saveable" [expandible]="expandible" [collapsable]="collapsable" [nodes]="nodes" [extraFields]="extraFields"\n\t\t(updater)="onUpdate($event)">\n\t</covalent-organization>\n</div>\n'}]}],t.ctorParameters=function(){return[]},t}(J),It={provide:n.NG_VALUE_ACCESSOR,useExisting:i.forwardRef(function(){return Mt}),multi:!0},Mt=function(n){function t(t){var e=n.call(this)||this;return e.changeDetector=t,e.label="",e.required=undefined,e.flex=100,e.flexPerc=e.flex/100,e.id="",e.thumb="",e}return P(t,n),t.prototype.assignValue=function(t){this.value=t,this.control.setValue(this.value),t.id&&(this.id=t.id),t.thumb&&(this.thumb=t.thumb)},t.prototype.ngOnInit=function(){this.assignValue(this.value)},t.prototype.openGallery=function(){var e=this;this.action(this.control.parent.value).then(function(t){null!=t&&t!=undefined&&t!={}&&e.assignValue(t),e.changeDetector.detectChanges()})},t.decorators=[{type:i.Component,args:[{providers:[It],selector:"gallery-selector",styles:[".td-dynamic-gallery-selector-wrapper{-ms-flex-direction:row;flex-direction:row;display:-ms-flexbox;display:flex;box-sizing:border-box}.td-dynamic-gallery-selector-wrapper img{background:#ddd;width:36px;height:36px;border-radius:5px;margin-right:10px}"],template:'<div class="td-dynamic-gallery-selector-wrapper">\n\t\n\t<img [src]="thumb" />\n\t<button mat-raised-button color="primary" (click)="openGallery()">\n\t\t{{label}}\n\t</button>\n\n</div>'}]}],t.ctorParameters=function(){return[{type:i.ChangeDetectorRef}]},t}(J),Et=function(){},Tt={provide:n.NG_VALUE_ACCESSOR,useExisting:i.forwardRef(function(){return _t}),multi:!0},_t=function(a){function t(t,e,n){var r=a.call(this)||this;return r.translator=t,r.dialog=e,r.changeDetector=n,r.flatNodeMap=new Map,r.nestedNodeMap=new Map,r.selectedParent=null,r.checklistSelection=new o.SelectionModel(!0),r.selectMultiple=!1,r.label="",r.flattenedItems=[],r.masterNode=0,r.outputItems=[],r.outputPreview=[],r.getLevel=function(t){return t.level},r.isExpandable=function(t){return t.expandable},r.getChildren=function(t){return c.of(t.children)},r.hasChild=function(t,e){return e.expandable},r.hasNoContent=function(t,e){return""===e.name},r.transformer=function(t,e){var n=r.nestedNodeMap.get(t),a=n&&n.id===t.id?n:new Et;return a.id=t.id,a.name=t.name,a.parent=t.parent,a.checked=t.checked,a.children=t.children,a.level=e,a.expandable=!!t.children,r.flatNodeMap.set(a,t),r.nestedNodeMap.set(t,a),a},r.treeFlattener=new s.MatTreeFlattener(r.transformer,r.getLevel,r.isExpandable,r.getChildren),r.treeControl=new d.FlatTreeControl(r.getLevel,r.isExpandable),r.dataSource=new s.MatTreeFlatDataSource(r.treeControl,r.treeFlattener),r}return P(t,a),t.prototype.ngOnInit=function(){if(null!=this.treeItems&&0<this.treeItems.length){var t=this.generateTree(this.treeItems[0],null);this.dataSource.data=t,this.masterNode=this.treeItems[0].id,this.flattenedItems=this.flattenItems(this.treeItems),null!=this.control.value&&this.loadData()}},t.prototype.flattenItems=function(t){var e,n,a=[];try{for(var r=U(t),i=r.next();!i.done;i=r.next()){var o=i.value;a.push({id:o.id,name:o.name});var l=this.flattenItems(o.children);a.push.apply(a,$(l))}}catch(d){e={error:d}}finally{try{i&&!i.done&&(n=r["return"])&&n.call(r)}finally{if(e)throw e.error}}return a},Object.defineProperty(t.prototype,"selectItems",{get:function(){return this.value?this.value[0]:[]},set:function(t){this.value=t?[t]:[],this.loadSearchData()},enumerable:!0,configurable:!0}),t.prototype.loadSearchData=function(){for(var t=JSON.parse(JSON.stringify(this.value)),e=[],n=0;n<this.treeControl.dataNodes.length;n++)t.includes(this.treeControl.dataNodes[n].id)?(this.treeControl.dataNodes[n].checked=!0,e.push({name:this.treeControl.dataNodes[n].name})):this.treeControl.dataNodes[n].checked=!1;this.outputPreview=e},t.prototype.generateTree=function(t,e){var n,a=new Et;for(var r in a.id=t.id,a.name=t.name,a.parent=e,a.checked=t.checked,a.children=t.children,0<t.children.length&&(a.children=[]),t.children)(n=a.children).push.apply(n,$(this.generateTree(t.children[r],t.id)));return[a]},t.prototype.refrescaPadre=function(t,e){var n=null;if(1==e){if(null!=t){for(var a=0;a<this.treeControl.dataNodes.length;a++)this.treeControl.dataNodes[a].id==t.parent&&(n=this.treeControl.dataNodes[a]);if(null!=n){n.checked=!0;for(a=0;a<this.treeControl.dataNodes.length;a++)this.treeControl.dataNodes[a].parent!=n.id||this.treeControl.dataNodes[a].checked||(n.checked=!1)}}null!=n&&this.refrescaPadre(n,e)}else{if(null!=t)for(a=0;a<this.treeControl.dataNodes.length;a++)this.treeControl.dataNodes[a].id==t.parent&&(n=this.treeControl.dataNodes[a],this.treeControl.dataNodes[a].checked=e);null!=n&&this.refrescaPadre(n,e)}this.changeDetector.detectChanges()},t.prototype.checkNode=function(t,e){if(e.checked=t.checked,this.selectMultiple)t.checked?(this.changeAllDescendants(e,!0),this.refrescaPadre(e,!0)):(this.changeAllDescendants(e,!1),this.refrescaPadre(e,!1)),this.getSelectedItems(e);else if(t.checked){for(var n=0;n<this.treeControl.dataNodes.length;n++)this.treeControl.dataNodes[n].id!=e.id&&(this.treeControl.dataNodes[n].checked=!1);this.outputItems=[e.id],this.outputPreview=[e]}else this.outputItems=[],this.outputPreview=[];this.control.setValue(this.outputItems)},t.prototype.changeAllDescendants=function(t,e){for(var n=0;n<t.children.length;n++){for(var a=t.children[n],r=0;r<this.treeControl.dataNodes.length;r++)this.treeControl.dataNodes[r].id==a.id&&(this.treeControl.dataNodes[r].checked=e);this.changeAllDescendants(a,e)}},t.prototype.getSelectedItems=function(t){this.outputItems=[],this.outputPreview=[];for(var e=null,n=0;n<this.treeControl.dataNodes.length;n++)this.treeControl.dataNodes[n].id==this.masterNode&&(e=this.treeControl.dataNodes[n]);e.checked?(this.outputItems=[this.masterNode],this.outputPreview=[{name:this.treeItems[0].name}]):this.getOutputNodes(e),this.control.setValue(this.outputItems)},t.prototype.getOutputNodes=function(t){if(!t.checked||t.id==this.masterNode)for(var e=0;e<t.children.length;e++)for(var n=t.children[e],a=0;a<this.treeControl.dataNodes.length;a++)if(this.treeControl.dataNodes[a].id==n.id&&this.treeControl.dataNodes[a].checked){var r=this.outputItems.indexOf(n.id);-1!==r&&this.outputItems.splice(r,1),this.outputItems.push(n.id),-1!==r&&this.outputPreview.splice(r,1),this.outputPreview.push(n)}else this.treeControl.dataNodes[a].id!=n.id||this.treeControl.dataNodes[a].checked||this.getOutputNodes(this.treeControl.dataNodes[a])},t.prototype.loadData=function(){for(var t=JSON.parse(JSON.stringify(this.control.value)),e=0;e<t.length;e++)for(var n=0;n<this.treeControl.dataNodes.length;n++)this.treeControl.dataNodes[n].id==t[e]&&this.checkNode({checked:!0},this.treeControl.dataNodes[n])},t.prototype.toggleTree=function(){this.treeControl.isExpanded(this.treeControl.dataNodes[0])?this.treeControl.collapseAll():this.treeControl.expandAll()},t.decorators=[{type:i.Component,args:[{providers:[Tt],selector:"tree-selector",styles:[".td-dynamic-input-wrapper{-ms-flex-direction:row;flex-direction:row;display:-ms-flexbox;display:flex;box-sizing:border-box}.td-dynamic-input-wrapper .td-dynamic-input-field{-ms-flex:1;flex:1;box-sizing:border-box}.td-dynamic-input-wrapper .ngx-editor{margin-top:10px}.label{padding:10px 0;display:inline-block;width:50%}.container{overflow:auto;border:1px solid #f3f3f3;border-radius:5px 5px 0 0}.selected-items{padding:5px;display:block;background:#f3f3f3;border-radius:0 0 5px 5px;min-height:30px}.selected-items span{background:#689f38;margin:2px;padding:5px;border-radius:5px;color:#fff;display:inline-block}.search-bar{display:inline-block;width:50%;text-align:left;margin-bottom:10px}.buttons{display:inline-block;width:50%;text-align:right}.buttons button{padding:0;width:30px!important;min-width:30px;border-radius:50px;height:30px}.buttons button mat-icon{position:relative!important;top:-4px!important}"],template:'<div class="label">{{label}} {{required ? \'*\' : \'\'}}</div>\n<div class="buttons">\n\t<button mat-raised-button color="primary" (click)="toggleTree()">\n\t\t<mat-icon *ngIf="!treeControl.isExpanded(treeControl.dataNodes[0])">add</mat-icon>\n\t\t<mat-icon *ngIf="treeControl.isExpanded(treeControl.dataNodes[0])">remove</mat-icon>\n\t</button>\n</div>\n<div *ngIf="searchable" class="search-bar">\n\t<ng-select [(ngModel)]="selectItems" placeholder="Buscar" [multiple]="selectMultiple" [items]="flattenedItems"\n\t\t[required]="required" [searchable]="true" bindLabel="name" bindValue="id" appendTo="body" [style.flex]="100">\n\t</ng-select>\n</div>\n<div class="container">\n\t<mat-tree [dataSource]="dataSource" [treeControl]="treeControl">\n\t\t<mat-tree-node *matTreeNodeDef="let node; when: hasChild" matTreeNodePadding>\n\t\t\t<button mat-icon-button matTreeNodeToggle\n\t\t\t\t[attr.aria-label]="\'toggle \' + node.filename">\n\t\t\t\t<mat-icon class="mat-icon-rtl-mirror" *ngIf="node.children.length > 0">\n\t\t\t\t\t{{treeControl.isExpanded(node) ? \'expand_more\' : \'chevron_right\'}}\n\t\t\t\t</mat-icon>\n\t\t\t</button>\n\t\t\t<mat-checkbox [checked]="node.checked" (change)="checkNode($event, node)">{{node.name}}</mat-checkbox>\n\t\t</mat-tree-node>\n\t</mat-tree>\n</div>\n<div class="selected-items">\n\t<span *ngFor="let item of outputPreview">{{item.name}}</span>\n</div>\n'}]}],t.ctorParameters=function(){return[{type:e.TranslateService},{type:l.MatDialog},{type:i.ChangeDetectorRef}]},t}(J),Ot=function(){function t(t,e){this.dialogRef=t,this.data=e,this.errorMessage="app.dialogs.error.default",this.title="app.dialogs.error.title",this.data&&this.data.message&&(this.errorMessage=this.data.message),this.data&&this.data.title&&(this.title=this.data.title)}return t.prototype.ngOnInit=function(){},t.prototype.closeDialog=function(){this.dialogRef.close()},t.decorators=[{type:i.Component,args:[{selector:"error-dialog",template:'<h4 mat-dialog-title>{{title | translate}}</h4>\n<div mat-dialog-content>{{errorMessage | translate}}</div>\n<div mat-dialog-actions class="dialog-example-buttons">\n \t<button mat-button style="margin:auto;" (click)="closeDialog()">OK</button>\n</div>\n'}]}],t.ctorParameters=function(){return[{type:p.MatDialogRef},{type:undefined,decorators:[{type:i.Inject,args:[p.MAT_DIALOG_DATA]}]}]},t}(),Dt=function(){function t(t,e){this.dialogRef=t,this.data=e,this.errorMessage="app.dialogs.confirm.question",this.title="app.dialogs.confirm.title"}return t.prototype.ngOnInit=function(){},t.decorators=[{type:i.Component,args:[{selector:"confirm-dialog",template:'<h4 mat-dialog-title>{{title | translate}}</h4>\n<div mat-dialog-content>{{errorMessage | translate}}</div>\n<div mat-dialog-actions class="dialog-example-buttons">\n \t<button mat-button style="margin:auto;" (click)="dialogRef.close(true)">{{\'app.yes\' | translate}}</button>\n\t<button mat-button style="margin:auto;" (click)="dialogRef.close(false)">{{\'app.no\' | translate}}</button>\n</div>\n'}]}],t.ctorParameters=function(){return[{type:p.MatDialogRef},{type:undefined,decorators:[{type:i.Inject,args:[p.MAT_DIALOG_DATA]}]}]},t}(),Nt=u,St={provide:n.NG_VALUE_ACCESSOR,useExisting:i.forwardRef(function(){return Lt}),multi:!0},Lt=function(r){function t(t,e,n){var a=r.call(this)||this;return a.translator=t,a.dialog=e,a.changeDetector=n,a.label="",a.outputItems=[],a.schema=null,a.draggable=!1,a.newElement={},a.extras=null,a.showDelete=!0,a.addTitle="Nuevo elemento",a}return P(t,r),t.prototype.ngOnInit=function(){this.value==undefined&&(this.value=[]);for(var t=0;t<this.schema.length;t++)this.newElement[this.schema[t].name]=null;this.extras&&(this.extras.showDelete!=undefined&&null!=this.extras.showDelete&&(this.showDelete=this.extras.showDelete),this.extras.addTitle!=undefined&&null!=this.extras.addTitle&&(this.addTitle=this.extras.addTitle))},t.prototype.addItem=function(){this.value.push(this.cloneObject(this.newElement)),this.control.setValue(this.value),this.checkRequired(),this.checkValidators()},t.prototype.removeItem=function(e){var n=this,a=function(){n.value.splice(e,1),n.control.setValue(n.value),n.checkRequired(),n.checkValidators(),n.changeDetector.detectChanges()};this.openConfirm().then(function(t){t&&(n.extras!=undefined&&null!=n.extras&&n.extras.deleteAction!=undefined?n.extras.deleteAction(n.value[e]).then(function(t){t&&a()})["catch"](function(t){var e=t.error.message;n.openDialog("Error",e)}):a())})},t.prototype.cloneObject=function(t){return Nt.cloneDeep(t)},t.prototype.changesOut=function(t){this.control.setValue(this.value),this.checkRequired(),this.checkValidators()},t.prototype.drop=function(t){m.moveItemInArray(this.value,t.previousIndex,t.currentIndex),this.control.setValue(this.value)},t.prototype.checkRequired=function(){var a=this;this.value.forEach(function(n){Object.keys(n).forEach(function(t){var e=a.getFieldSchema(t);null!=e&&e.required!=undefined&&e.required&&null==n[t]&&a.control.setErrors({required:!0})})})},t.prototype.getFieldSchema=function(e){var n=null;return this.schema.forEach(function(t){t.name==e&&(n=t)}),n},t.prototype.checkValidators=function(){if(this.extras.rowValidator)try{for(var t=U(this.value),e=t.next();!e.done;e=t.next()){var n=e.value,a=this.extras.rowValidator(n);a&&this.control.setErrors(a.errorList)}}catch(o){r={error:o}}finally{try{e&&!e.done&&(i=t["return"])&&i.call(t)}finally{if(r)throw r.error}}var r,i},t.prototype.isValid=function(t,e){var n=!0;if(this.extras.rowValidator){var a=this.extras.rowValidator(t);if(a)for(var r=0;r<a.errorFields.length;r++)a.errorFields[r].field==e&&(n=!1)}return n},t.prototype.fieldErrorMessage=function(t,e){var n="";if(this.extras.rowValidator){var a=this.extras.rowValidator(t);if(a)for(var r=0;r<a.errorFields.length;r++)a.errorFields[r].field==e&&(n=a.errorFields[r].message)}return n},t.prototype.openDialog=function(t,e){var n={title:t,message:e};this.dialog.open(Ot,{data:n})},t.prototype.openConfirm=function(){return this.dialog.open(Dt).afterClosed().toPromise()},t.decorators=[{type:i.Component,args:[{providers:[St],selector:"editable-table",styles:["td{padding:10px}.td-dynamic-input-wrapper{-ms-flex-direction:row;flex-direction:row;display:-ms-flexbox;display:flex;box-sizing:border-box}.td-dynamic-input-wrapper .td-dynamic-input-field{-ms-flex:1;flex:1;box-sizing:border-box}.td-dynamic-input-wrapper .ngx-editor{margin-top:10px}.label{padding:10px 0;display:inline-block;width:50%}.container{overflow:auto;border:1px solid #f3f3f3;border-radius:5px 5px 0 0}.selected-items{padding:5px;display:block;background:#f3f3f3;border-radius:0 0 5px 5px;min-height:30px}.selected-items span{background:#689f38;margin:2px;padding:5px;border-radius:5px;color:#fff;display:inline-block}.buttons{display:inline-block;width:50%;text-align:right}.buttons button{padding:0;width:30px!important;min-width:30px;border-radius:50px;height:30px}.buttons button mat-icon{position:relative!important;top:-4px!important}.main-container{border:1px solid #f3f3f3;border-radius:5px;padding:5px 10px 20px;overflow:auto}hr{display:block;height:1px;border:0;border-top:1px solid #ccc;margin:1em 0;padding:0}.dragger{text-align:center;background:#f3f3f3;height:24px;border-radius:5px;width:36px;margin:auto 8px auto auto;border:1px solid #ddd;cursor:move}.error-validate{color:#e53934;font-size:75%;top:33px;position:absolute;left:0}.error-validate.boolean{position:relative!important;top:9px;width:100%;display:inline-block}.error-validate.datetime{position:relative!important;top:9px;padding-bottom:10px;width:100%;display:inline-block}.editable-field{min-width:100%}table{width:100%;border-collapse:collapse;border-spacing:0}tr th{text-align:left}tr:nth-child(even){background:#fafafa}tr:nth-child(even) input{background:#fafafa!important}/deep/ .time-field label{display:block;color:#929292;margin-top:-12px}/deep/ .time-field input{border:0;border-bottom:1px solid #9e9f9e;font-size:14px}/deep/ .mat-datepicker-toggle button{box-shadow:0 3px 1px -2px rgba(0,0,0,.2),0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12);border-radius:3px!important}/deep/ .time-field{margin-bottom:4px}.details{font-size:11px;padding:5px 0}"],template:'<div class="label">{{label}}</div>\n<div class="main-container">\n <table td-data-table>\n <thead>\n <tr td-data-table-column-row>\n <th td-data-table-column>\n {{addTitle}}\n </th>\n </tr>\n </thead>\n <tbody>\n <tr td-data-table-row>\n <td td-data-table-cell *ngFor="let item of schema; let i=index">\n <ng-container *ngIf="item.type == \'string\'">\n <mat-form-field class="editable-field">\n <input matInput autocomplete="off" placeholder="{{item.label}}" [(ngModel)]="newElement[item.name]">\n </mat-form-field>\n </ng-container>\n\n <ng-container *ngIf="item.type == \'date\'">\n <mat-form-field class="editable-field">\n <input matInput autocomplete="off" [matDatepicker]="i" placeholder="{{item.label}}"\n [attr.id]="\'dtPicker\' + i" [(ngModel)]="newElement[item.name]">\n <mat-datepicker-toggle matSuffix [for]="i"></mat-datepicker-toggle><mat-datepicker #i></mat-datepicker>\n </mat-form-field>\n </ng-container>\n\n <ng-container *ngIf="item.type == \'time\'">\n <div class="time-field">\n <label class="timeLabel">Hora</label>\n <input aria-label="default time" autocomplete="off" [ngxTimepicker]="defaultTime" [(ngModel)]="newElement[item.name]">\n <ngx-material-timepicker #defaultTime></ngx-material-timepicker>\n </div>\n </ng-container>\n\n\t\t\t\t\t<ng-container *ngIf="item.type == \'dateTime\'">\n <date-time-picker [min]="item.min" [max]="item.max" [(myModel)]="newElement[item.name]"></date-time-picker>\n </ng-container>\n\n <ng-container *ngIf="item.type == \'number\'">\n <mat-form-field class="editable-field">\n <input matInput type="number" autocomplete="off" placeholder="{{item.label}}"\n [(ngModel)]="newElement[item.name]" min="{{item.min}}" max="{{item.max}}">\n </mat-form-field>\n </ng-container>\n\n