@kre-form/survey
Version:
1 lines • 154 kB
JavaScript
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@angular/common"),require("@angular/http"),require("@ngx-translate/core"),require("@angular/cdk/overlay"),require("ng-zorro-antd"),require("@ant-design/icons-angular/icons"),require("@angular/common/locales/zh"),require("ng-zorro-antd/modal"),require("ng-zorro-antd/message"),require("@angular/common/http"),require("rxjs"),require("rxjs/operators"),require("@kre-form/core"),require("lodash"),require("@angular/cdk/drag-drop"),require("@angular/forms"),require("@angular/core"),require("@angular/platform-browser")):"function"==typeof define&&define.amd?define("@kre-form/survey",["exports","@angular/common","@angular/http","@ngx-translate/core","@angular/cdk/overlay","ng-zorro-antd","@ant-design/icons-angular/icons","@angular/common/locales/zh","ng-zorro-antd/modal","ng-zorro-antd/message","@angular/common/http","rxjs","rxjs/operators","@kre-form/core","lodash","@angular/cdk/drag-drop","@angular/forms","@angular/core","@angular/platform-browser"],t):t((e["kre-form"]=e["kre-form"]||{},e["kre-form"].survey={}),e.ng.common,e.ng.http,e.core,e.ng.cdk.overlay,e.ngZorroAntd,e.icons,e.ng.common.locales.zh,e.i1,e.message,e.ng.common.http,e.rxjs,e.rxjs.operators,e.core$1,e._,e.ng.cdk["drag-drop"],e.ng.forms,e.ng.core,e.ng.platformBrowser)}(this,function(e,t,n,r,o,i,a,s,l,p,d,c,u,v,g,f,m,h,y){"use strict";s=s&&s.hasOwnProperty("default")?s["default"]:s;var b=function(e,t){return(b=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)};function k(e,t){function n(){this.constructor=e}b(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}function _(e,t){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var r,o,i=n.call(e),a=[];try{for(;(void 0===t||0<t--)&&!(r=i.next()).done;)a.push(r.value)}catch(s){o={error:s}}finally{try{r&&!r.done&&(n=i["return"])&&n.call(i)}finally{if(o)throw o.error}}return a}function x(){for(var e=[],t=0;t<arguments.length;t++)e=e.concat(_(arguments[t]));return e}var w=function(){function e(){this.btnEvent=new h.EventEmitter,this.fieldEvent=new h.EventEmitter,this.questionEvent=new h.EventEmitter,this.optionEvent=new h.EventEmitter,this.dragDropEvent=new h.EventEmitter,this.workList=[]}return e.prototype.fieldOperational=function(e,t){this.fieldEvent.emit({sign:e,field:t})},e.prototype.groupOperational=function(e,t){this.btnEvent.emit({type:e,field:t})},e.prototype.questionOperational=function(e,t){this.questionEvent.emit({sign:e,field:t})},e.prototype.optionOperational=function(e,t,n){this.optionEvent.emit({sign:e,option:t,field:n})},e.prototype.dragDropOperational=function(e,t,n){this.dragDropEvent.emit({previousData:e,previousIndex:t,currentIndex:n})},e.decorators=[{type:h.Injectable}],e.ctorParameters=function(){return[]},e}(),z=function(n){function e(e){var t=n.call(this)||this;return t.guid=v.Guid.create().value,t.service=e,t}return k(e,n),e.prototype.dropOption=function(e){},e.prototype.logicQuestion=function(){this.service.questionOperational("logic",this.field)},e.prototype.copyQuestion=function(){this.service.questionOperational("copy",this.field)},e.prototype.delQuestion=function(){this.service.questionOperational("delete",this.field)},e.prototype.activeQuestion=function(){this.active||this.service.questionOperational("active",this.field)},e.prototype.addOption=function(){this.service.optionOperational("add","",this.field)},e.prototype.addOptions=function(){this.service.optionOperational("adds","",this.field)},e.prototype.deleteOption=function(e){this.service.optionOperational("delete",e,this.field)},e.decorators=[{type:h.Component,args:[{selector:"kresurvey-radiogroup",template:'\n <ng-container *ngIf="formStatus !== 0">\n \n </ng-container>\n\n <ng-container *ngIf="formStatus === 0">\n \n </ng-container>\n '}]}],e.ctorParameters=function(){return[{type:w}]},e}(v.FieldType),O=function(n){function e(e){var t=n.call(this)||this;return t.service=e,t}return k(e,n),Object.defineProperty(e.prototype,"insertQuestionIndex",{get:function(){var e=-1;return this.to.index&&(e=this.to.index),e},enumerable:!0,configurable:!0}),e.prototype.drop=function(e){e.previousContainer===e.container?f.moveItemInArray(e.container.data,e.previousIndex,e.currentIndex):this.service.dragDropOperational(e.previousContainer.data,e.previousIndex,e.currentIndex)},e.prototype.fieldOperational=function(e){this.service.fieldOperational(e,this.field)},e.prototype.logicQuestion=function(e){this.service.questionOperational("logic",e)},e.prototype.copyQuestion=function(e){this.service.questionOperational("copy",e)},e.prototype.delQuestion=function(e){this.service.questionOperational("delete",e)},e.prototype.activeQuestion=function(e){this.field.active||this.service.questionOperational("active",e)},e.decorators=[{type:h.Component,args:[{selector:"kresurvey-drag-drop",template:'\n <div\n class="formly-drag-drop"\n (cdkDropListDropped)="drop($event)"\n cdkDropList\n [cdkDropListData]="field.fieldGroup"\n >\n <div class="formly-drag-drop">\n <ng-container *ngFor="let field of field.fieldGroup; let index = index">\n <div\n (click)="activeQuestion(field)"\n *ngIf="field.active == true"\n class="formly-drag-drop_wrap active"\n >\n <div class="field-operate">\n <span\n (click)="logicQuestion(field)"\n nzTooltipTitle="逻辑设置"\n nzTooltipPlacement="top"\n nz-tooltip\n >设置</span\n >\n <span\n (click)="copyQuestion(field)"\n nzTooltipTitle="复制题目"\n nzTooltipPlacement="top"\n nz-tooltip\n >复制</span\n >\n <span\n (click)="delQuestion(field)"\n nzTooltipTitle="删除题目"\n nzTooltipPlacement="top"\n nz-tooltip\n >删除</span\n >\n </div>\n <div class="field-content">\n <kreform-field\n [field]="field"\n [rowNumber]="index + 1"\n ></kreform-field>\n </div>\n </div>\n\n <div\n (click)="activeQuestion(field)"\n *ngIf="field.active != true"\n class="formly-drag-drop_wrap"\n cdkDrag\n >\n <div class="field-content">\n <kreform-field\n [field]="field"\n [rowNumber]="index + 1"\n ></kreform-field>\n </div>\n </div>\n </ng-container>\n </div>\n\n <ng-container\n *ngIf="field.fieldGroup == null || field.fieldGroup.length == 0"\n >\n <div class="formly_empty">\n <div\n class="formly-drag-drop"\n (cdkDropListDropped)="drop($event)"\n cdkDropList\n [cdkDropListData]="field.fieldGroup"\n >\n 请把题型拖入此区域\n </div>\n </div>\n </ng-container>\n </div>\n '}]}],e.ctorParameters=function(){return[{type:w}]},e}(v.FieldType),q=function(n){function e(e){var t=n.call(this)||this;return t.guid=v.Guid.create().value,t.service=e,t}return k(e,n),e.prototype.addOption=function(){this.service.optionOperational("add","",this.field)},e.prototype.addOptions=function(){this.service.optionOperational("adds","",this.field)},e.prototype.deleteOption=function(e){this.service.optionOperational("delete",e,this.field)},e.prototype.drop=function(e){e.previousContainer===e.container&&f.moveItemInArray(e.container.data,e.previousIndex,e.currentIndex)},e.decorators=[{type:h.Component,args:[{selector:"kresurvey-radio",template:' \n <ng-container *ngIf="formStatus !== 0"> \n <div class="question-wrap_title">\n <div class="required">\n <span *ngIf="to.required">*</span>\n </div>\n <inline-editor [(ngModel)]="to.label" [active]="active"\n ></inline-editor>\n </div>\n <div class="question-wrap_content" (cdkDropListDropped)="drop($event)" cdkDropList [cdkDropListData]="to.options">\n <div class="option_wrap basic_radio" *ngFor="let item of to.options" cdkDrag>\n <div class="option">\n <label nz-radio nzDisabled="true"></label> \n <inline-editor [(ngModel)]="item.label" [active]="active"></inline-editor> \n </div>\n <div class="operate" (click)="deleteOption(item)" *ngIf="active==true">\n <i class="icon-KT-Close"></i>\n </div>\n </div>\n </div> \n <div class="question-wrap_operate">\n <span (click)="addOption()">添加单个选项</span> \n <span (click)="addOptions()">批量添加选项</span>\n </div> \n </ng-container>\n\n <ng-container *ngIf="formStatus === 0">\n <nz-radio-group\n [nzName]="\'radiogroup-\' + guid"\n [formControl]="formControl"\n [kreFormAttributes]="field"\n [class.is-invalid]="showError"\n >\n <ng-container *ngFor="let item of to.options">\n <label nz-radio [nzValue]="item.value">{{ item.label }}</label>\n </ng-container>\n </nz-radio-group>\n </ng-container>\n '}]}],e.ctorParameters=function(){return[{type:w}]},e}(v.FieldType),C=function(n){function e(e){var t=n.call(this)||this;return t.guid=v.Guid.create().value,t.service=e,t}return k(e,n),e.prototype.addOption=function(){this.service.optionOperational("add","",this.field)},e.prototype.addOptions=function(){this.service.optionOperational("adds","",this.field)},e.prototype.deleteOption=function(e){this.service.optionOperational("delete",e,this.field)},e.prototype.onChange=function(e){var t=this;e!=undefined&&null!=e&&0<e.length&&e.forEach(function(e){t.to.options!==undefined&&null!==t.to.options&&t.to.options.forEach(function(e){e.value})}),this.formControl.patchValue(e),this.formControl.markAsTouched()},e.prototype.getCheckStatus=function(e){this.formControl.value},e.prototype.getControlChecked=function(e,t){var n=!1;return t&&e&&(n=e.some(function(e){return e==t.value})),n},e.prototype.drop=function(e){e.previousContainer===e.container&&f.moveItemInArray(e.container.data,e.previousIndex,e.currentIndex)},e.decorators=[{type:h.Component,args:[{selector:"kresurvey-checkbox",template:'\n <ng-container *ngIf="formStatus !== 0"> \n <div class="question-wrap_title">\n <div class="required">\n <span *ngIf="to.required">*</span>\n </div>\n <inline-editor [(ngModel)]="to.label" [active]="active"></inline-editor> \n </div>\n <div class="question-wrap_content" (cdkDropListDropped)="drop($event)" cdkDropList [cdkDropListData]="to.options">\n <div class="option_wrap basic_checkbox" *ngFor="let item of to.options" cdkDrag>\n <div class="option">\n <label nz-checkbox nzDisabled="true"></label> \n <inline-editor [(ngModel)]="item.label" [active]="active"></inline-editor> \n </div>\n <div class="operate" (click)="deleteOption(item)" *ngIf="active==true">\n <i class="icon-KT-Close"></i>\n </div> \n </div>\n </div> \n <div class="question-wrap_operate">\n <span (click)="addOption()">添加单个选项</span> \n <span (click)="addOptions()">批量添加选项</span>\n </div> \n </ng-container>\n\n <ng-container *ngIf="formStatus === 0">\n <nz-checkbox-wrapper\n style="width: 100%;"\n (nzOnChange)="onChange($event)"\n [class.is-invalid]="showError"\n >\n <ng-container *ngFor="let option of to.options; let i = index">\n <label\n nz-checkbox\n [nzValue]="option.value"\n [ngModel]="getControlChecked(formControl.value, option)"\n [kreFormAttributes]="field"\n >{{ option.label }}</label>\n </ng-container>\n </nz-checkbox-wrapper> \n </ng-container>\n '}]}],e.ctorParameters=function(){return[{type:w}]},e}(v.FieldType),I=function(n){function e(e){var t=n.call(this)||this;return t.guid=v.Guid.create().value,t.service=e,t}return k(e,n),e.prototype.addOption=function(){this.service.optionOperational("add","",this.field)},e.prototype.addOptions=function(){this.service.optionOperational("adds","",this.field)},e.prototype.deleteOption=function(e){this.service.optionOperational("delete",e,this.field)},e.prototype.drop=function(e){e.previousContainer===e.container&&f.moveItemInArray(e.container.data,e.previousIndex,e.currentIndex)},e.decorators=[{type:h.Component,args:[{selector:"kresurvey-dropdown",template:' \n <ng-container *ngIf="formStatus !== 0"> \n <div class="question-wrap_title">\n <div class="required">\n <span *ngIf="to.required">*</span>\n </div>\n <inline-editor [(ngModel)]="to.label" [active]="active"></inline-editor> \n </div>\n <div class="question-wrap_content" (cdkDropListDropped)="drop($event)" cdkDropList [cdkDropListData]="to.options">\n <div class="option_wrap basic_dropdown" *ngFor="let item of to.options" cdkDrag>\n <div class="option">\n <span class="handle"></span>\n <inline-editor [(ngModel)]="item.label"></inline-editor> \n </div>\n <div class="operate" (click)="deleteOption(item)">\n <i class="icon-KT-Close"></i>\n </div>\n </div>\n </div> \n <div class="question-wrap_operate">\n <span (click)="addOption()">添加单个选项</span> \n <span (click)="addOptions()">批量添加选项</span>\n </div> \n </ng-container> \n\n <ng-container *ngIf="formStatus === 0">\n <nz-select \n nzAllowClear \n [formControl]="formControl"\n [kreFormAttributes]="field"\n [class.is-invalid]="showError"\n nzPlaceHolder="请选择" \n >\n <ng-container *ngFor="let item of to.options">\n <nz-option\n [nzLabel]="item.label"\n [nzValue]="item.value"\n ></nz-option>\n </ng-container>\n </nz-select>\n </ng-container>\n '}]}],e.ctorParameters=function(){return[{type:w}]},e}(v.FieldType),S=function(){function e(e){this.modalService=e}return e.prototype.switchSize=function(e){var t={width:700,height:500};switch(e){case"small":t.width=530,t.height=400;break;case"medium":t.width=700,t.height=500;break;case"large":t.width=950,t.height=600;break;default:t.width=700,t.height=500}return t},e.prototype.CreateModelDialog=function(e,t,n){var r=this.switchSize(e.size).width,o=this.switchSize(e.size).height,i=this.modalService.create({nzTitle:e.nzTitle?e.nzTitle:"提示",nzWidth:r+"px",nzClosable:!0,nzMaskClosable:!1,nzWrapClassName:e.vertical?"vertical-center-modal":"",nzBodyStyle:{padding:"0",height:e.hideBtn?o-54+"px":o-107+"px"},nzContent:e.nzContent,nzFooter:e.hideBtn?null:[{show:!0,label:"取消",type:"default",onClick:function(e){i.destroy()}},{show:e.showResetBtn,label:"重置",type:"default",onClick:function(e){return n(e,i)}},{show:!0,label:e.primaryLabel?e.primaryLabel:"确定",type:"primary",onClick:function(e){return n(e,i)}}],nzOnOk:function(e){},nzOnCancel:function(e){},nzComponentParams:t});i.afterClose.subscribe(function(e){e&&n(e)})},e.decorators=[{type:h.Injectable,args:[{providedIn:"root"}]}],e.ctorParameters=function(){return[{type:i.NzModalService}]},e.ngInjectableDef=h.ɵɵdefineInjectable({factory:function(){return new e(h.ɵɵinject(l.NzModalService))},token:e,providedIn:"root"}),e}(),F=function(){function e(){this.cascaderData=[],this.row1={cascader:1,current:"",showadd:!0,data:[]},this.row2={cascader:2,current:"",showadd:!1,data:[]},this.row3={cascader:3,current:"",showadd:!1,data:[]},this.row4={cascader:4,current:"",showadd:!1,data:[]}}return Object.defineProperty(e.prototype,"fieldConfig",{set:function(e){e!=undefined&&null!=e&&e.templateOptions!=undefined&&null!=e.templateOptions&&e.templateOptions.options!=undefined&&null!=e.templateOptions.options&&(Array.isArray(e.templateOptions.options)?this.cascaderData=g.cloneDeep(e.templateOptions.options):this.cascaderData=[]),this.row1.data=this.cascaderData},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"data",{get:function(){return this.cascaderData},set:function(e){},enumerable:!0,configurable:!0}),e.prototype.ngOnInit=function(){},e.prototype.ngOnChanges=function(e){},e.prototype.cascaderItem=function(e,t){switch(t){case 1:this.row1.current=e.value,this.row2.cascader=2,this.row2.showadd=!0,this.row2.data=e.children?e.children:[],this.row3.current="",this.row3.showadd=!1,this.row3.data=[],this.row4.current="",this.row4.showadd=!1,this.row4.data=[];break;case 2:this.row2.current=e.value,this.row3.cascader=3,this.row3.showadd=!0,this.row3.data=e.children?e.children:[],this.row4.current="",this.row4.showadd=!1,this.row4.data=[];break;case 3:this.row3.current=e.value,this.row4.cascader=4,this.row4.showadd=!0,this.row4.data=e.children?e.children:[];break;case 4:this.row4.current=e.value}},e.prototype.addOption=function(e){},e.prototype.delOption=function(r,e){if(r)switch(e){case 1:this.row1.data.forEach(function(e,t,n){r.value==e.value&&n.splice(t,1)}),this.row2=[],this.row3=[],this.row4=[];break;case 2:this.row2.data.forEach(function(e,t,n){r.value==e.value&&n.splice(t,1)}),this.row3=[],this.row4=[];break;case 3:this.row3.data.forEach(function(e,t,n){r.value==e.value&&n.splice(t,1)}),this.row4=[];break;case 4:this.row4.data.forEach(function(e,t,n){r.value==e.value&&n.splice(t,1)})}},e.decorators=[{type:h.Component,args:[{selector:"kresurvey-editcascader",template:'<div class="cascader_col">\r\n <kresurvey-editcascader-item title="一级选项" [(row)]="row1" (itemEvent)="cascaderItem($event,1)" (addOptionEvent)="addOption(1)" (delOptionEvent)="delOption($event,1)">\r\n </kresurvey-editcascader-item>\r\n</div>\r\n<div class="cascader_col">\r\n <kresurvey-editcascader-item title="二级选项" [(row)]="row2" (itemEvent)="cascaderItem($event,2)" (addOptionEvent)="addOption(2)" (delOptionEvent)="delOption($event,2)">\r\n </kresurvey-editcascader-item>\r\n</div>\r\n<div class="cascader_col">\r\n <kresurvey-editcascader-item title="三级选项" [(row)]="row3" (itemEvent)="cascaderItem($event,3)" (addOptionEvent)="addOption(3)" (delOptionEvent)="delOption($event,3)">\r\n </kresurvey-editcascader-item>\r\n</div>\r\n<div class="cascader_col">\r\n <kresurvey-editcascader-item title="四级选项" [(row)]="row4" (itemEvent)="cascaderItem($event,4)" (addOptionEvent)="addOption(4)" (delOptionEvent)="delOption($event,4)">\r\n </kresurvey-editcascader-item>\r\n</div>',styles:[":host ::ng-deep{width:100%;height:100%;display:flex;background-color:#fff;padding:20px 0 0 10px}:host ::ng-deep .cascader_col{flex:1;padding:0 0 0 20px;border-right:1px solid #dde5ed}:host ::ng-deep .cascader_col:nth-last-child(1){flex:1;border-right:0}:host ::ng-deep kresurvey-editcascader-item .wrap_active{border-color:#2672ff;background:#e7efff;box-shadow:0 2px 4px 0 rgba(38,114,255,.2)}:host ::ng-deep kresurvey-editcascader-item .wrap_active .cascader_col_wrap_delete{display:block}:host ::ng-deep kresurvey-editcascader-item .cascader_col_title{padding:0 0 12px;font-size:14px;line-height:1;color:#707070;text-align:left}:host ::ng-deep kresurvey-editcascader-item .cascader_col_item{padding:0 20px 0 0}:host ::ng-deep kresurvey-editcascader-item .cascader_col_wrap{display:flex;border:1px solid #dde5ed;position:relative;margin:0 0 10px;cursor:pointer;padding:0 0 0 10px}:host ::ng-deep kresurvey-editcascader-item .cascader_col_wrap_order{float:left;height:34px;line-height:34px;font-size:12px;color:#aaa;text-align:center}:host ::ng-deep kresurvey-editcascader-item .cascader_col_wrap_input{flex:1;float:left;padding:5px;text-align:left;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}:host ::ng-deep kresurvey-editcascader-item .cascader_col_wrap_input input{border:0;height:24px;line-height:24px;width:100%;font-size:12px;color:#aaa;outline:0;border:none;background:0 0}:host ::ng-deep kresurvey-editcascader-item .cascader_col_wrap_limit{float:left;top:0;right:0;height:34px;padding:0 6px 0 0;line-height:34px;font-size:12px;color:#2672ff;text-align:left}:host ::ng-deep kresurvey-editcascader-item .cascader_col_wrap_delete{position:absolute;right:-5px;top:-10px;display:none}:host ::ng-deep kresurvey-editcascader-item .cascader_col_wrap_delete span{background:red;border-radius:50%;display:inline-block;height:14px;width:14px;cursor:pointer}:host ::ng-deep kresurvey-editcascader-item .cascader_col_wrap_delete span i{color:#fff;font-size:2px;height:2px;width:6px;position:absolute;margin:3px 2px 0}:host ::ng-deep kresurvey-editcascader-item .cascader_col_add{font-size:12px;cursor:pointer}:host ::ng-deep .kresurvey-scrollbar{scrollbar-color:transparent;overflow-y:overlay}:host ::ng-deep .kresurvey-scrollbar::-webkit-scrollbar{width:6px;height:6px}:host ::ng-deep .kresurvey-scrollbar::-webkit-scrollbar-track{box-shadow:inset 0 0 6px transparent}:host ::ng-deep .kresurvey-scrollbar::-webkit-scrollbar-thumb{background-color:#999;outline:#333 solid 1px;border-radius:6px}"]}]}],e.ctorParameters=function(){return[]},e.propDecorators={fieldConfig:[{type:h.Input}],data:[{type:h.Input}]},e}(),M=function(o){function e(e,t,n){var r=o.call(this)||this;return r.modal=t,r.kreDialogService=n,r.guid=v.Guid.create().value,r.values=null,r.service=e,r}return k(e,o),e.prototype.addOption=function(){var r=this,e={fieldConfig:this.field};this.kreDialogService.CreateModelDialog({nzTitle:"选项编辑",size:"large",nzContent:F},e,function(e,t){var n=e.cascaderData;r.to.options=n,t.destroy()})},e.decorators=[{type:h.Component,args:[{selector:"kresurvey-cascader",template:' \n <ng-container *ngIf="formStatus !== 0"> \n <div class="question-wrap_title">\n <div class="required">\n <span *ngIf="to.required">*</span>\n </div>\n <inline-editor [(ngModel)]="to.label" [active]="active"></inline-editor> \n </div>\n <div class="question-wrap_content">\n <div class="option_wrap select_cascader">\n <nz-cascader [nzOptions]="to.options" [nzShowSearch]="true" [nzDisabled]="true">\n </nz-cascader>\n </div>\n </div> \n <div class="question-wrap_operate">\n <span (click)="addOption()">编辑选项</span> \n </div> \n </ng-container>\n\n\n <ng-container *ngIf="formStatus === 0">\n <nz-cascader nzChangeOnSelect [nzOptions]="to.options" nzPlaceHolder="请选择"\n [formControl]="formControl"\n [kreFormAttributes]="field">\n </nz-cascader>\n \n </ng-container>\n '}]}],e.ctorParameters=function(){return[{type:w},{type:l.NzModalService},{type:S}]},e}(v.FieldType),T=function(n){function e(e){var t=n.call(this)||this;return t.guid=v.Guid.create().value,t.service=e,t}return k(e,n),Object.defineProperty(e.prototype,"scalerData",{get:function(){var e=[];if(this.to!=undefined&&null!=this.to&&this.to.beginNumber!=undefined&&null!=this.to.beginNumber&&this.to.max!=undefined&&null!=this.to.max)for(var t=this.to.beginNumber,n=0;n<this.to.max;n++)e.push({value:t,label:t}),t+=1;return e},enumerable:!0,configurable:!0}),e.decorators=[{type:h.Component,args:[{selector:"kresurvey-scaler",template:""}]}],e.ctorParameters=function(){return[{type:w}]},e}(v.FieldType),D=function(n){function e(e){var t=n.call(this)||this;return t.guid=v.Guid.create().value,t.service=e,t}return k(e,n),e.prototype.addOption=function(){this.service.optionOperational("add","",this.field)},e.prototype.addOptions=function(){this.service.optionOperational("adds","",this.field)},e.decorators=[{type:h.Component,args:[{selector:"kresurvey-score",template:'\n \n <ng-container *ngIf="formStatus !== 0"> \n <div class="question-wrap_title">\n <div class="required">\n <span *ngIf="to.required">*</span>\n </div>\n <inline-editor [(ngModel)]="to.label" [active]="active"></inline-editor> \n </div>\n <div class="question-wrap_content">\n <div class="option_wrap basic_score">\n \n <nz-rate *ngIf="to.type==\'start\'" nzAllowHalf [nzCount]="to.setting.max"></nz-rate>\n <nz-rate *ngIf="to.type==\'heart\'" nzAllowHalf [nzCharacter]="characterIconHeart" [nzCount]="to.setting.max"></nz-rate>\n <nz-rate *ngIf="to.type==\'good\'" nzAllowHalf [nzCharacter]="characterIconGood" [nzCount]="to.setting.max"></nz-rate>\n <nz-rate *ngIf="to.type==\'other\'" nzAllowHalf [nzCharacter]="characterIconOther" [nzCount]="to.setting.max"></nz-rate> \n <ng-template #characterIconHeart> \n 心 \n </ng-template>\n <ng-template #characterIconGood>\n 赞 \n </ng-template>\n <ng-template #characterIconOther>\n {{to.setting.label}} \n </ng-template> \n </div>\n </div> \n </ng-container>\n\n <ng-container *ngIf="formStatus === 0">\n <nz-rate *ngIf="to.type==\'start\'" nzAllowHalf [nzCount]="to.setting.max"\n [formControl]="formControl"\n [kreFormAttributes]="field">\n </nz-rate>\n <nz-rate *ngIf="to.type==\'heart\'" nzAllowHalf [nzCharacter]="characterIconHeart" [nzCount]="to.setting.max"\n [formControl]="formControl"\n [kreFormAttributes]="field">\n </nz-rate>\n <nz-rate *ngIf="to.type==\'good\'" nzAllowHalf [nzCharacter]="characterIconGood" [nzCount]="to.setting.max"\n [formControl]="formControl"\n [kreFormAttributes]="field">\n </nz-rate>\n <nz-rate *ngIf="to.type==\'other\'" nzAllowHalf [nzCharacter]="characterIconOther" [nzCount]="to.setting.max"\n [formControl]="formControl"\n [kreFormAttributes]="field">\n </nz-rate> \n <ng-template #characterIconHeart> \n 心 \n </ng-template>\n <ng-template #characterIconGood>\n 赞 \n </ng-template>\n <ng-template #characterIconOther>\n {{to.setting.label}} \n </ng-template> \n </ng-container>\n '}]}],e.ctorParameters=function(){return[{type:w}]},e}(v.FieldType),E=function(n){function e(e){var t=n.call(this)||this;return t.guid=v.Guid.create().value,t.service=e,t}return k(e,n),e.decorators=[{type:h.Component,args:[{selector:"kresurvey-line",template:'\n <ng-container *ngIf="formStatus !== 0">\n <div class="question-wrap_content">\n <div class="option_wrap basic_line" >\n <div class="line"></div>\n </div>\n </div> \n </ng-container>\n\n <ng-container *ngIf="formStatus === 0">\n <div class="line"></div>\n </ng-container>\n '}]}],e.ctorParameters=function(){return[{type:w}]},e}(v.FieldType),P=function(n){function e(e){var t=n.call(this)||this;return t.guid=v.Guid.create().value,t.service=e,t}return k(e,n),e.decorators=[{type:h.Component,args:[{selector:"kresurvey-remark",template:'\n <ng-container *ngIf="formStatus !== 0">\n <div class="question-wrap_content">\n <div class="option_wrap basic_remark" > \n <inline-editor [(ngModel)]="to.label" [active]="active"></inline-editor> \n </div>\n </div> \n </ng-container>\n\n <ng-container *ngIf="formStatus === 0"> \n </ng-container>\n '}]}],e.ctorParameters=function(){return[{type:w}]},e}(v.FieldType),j=function(n){function e(e){var t=n.call(this)||this;return t.guid=v.Guid.create().value,t.service=e,t}return k(e,n),e.decorators=[{type:h.Component,args:[{selector:"kresurvey-input",template:' \n <ng-container *ngIf="formStatus !== 0">\n <div class="question-wrap_title">\n <div class="required">\n <span *ngIf="to.required">*</span>\n </div>\n <inline-editor [(ngModel)]="to.label" [active]="active"></inline-editor> \n </div>\n <div class="question-wrap_content">\n <div class="option_wrap basic_input" >\n <ng-container *ngIf="to.setting.size==\'small\'">\n <input nz-input placeholder="" [disabled]="true" />\n </ng-container>\n <ng-container *ngIf="to.setting.size==\'default\'">\n <textarea rows="2" nz-input [disabled]="true" ></textarea>\n </ng-container>\n <ng-container *ngIf="to.setting.size==\'large\'">\n <textarea rows="4" nz-input [disabled]="true" ></textarea>\n </ng-container>\n </div>\n </div> \n </ng-container>\n\n\n <ng-container *ngIf="formStatus === 0">\n <ng-container *ngIf="to.setting.size==\'small\'">\n <input nz-input \n [formControl]="formControl"\n [kreFormAttributes]="field"\n [class.is-invalid]="showError" />\n </ng-container>\n <ng-container *ngIf="to.setting.size==\'default\'">\n <textarea rows="2" nz-input \n [formControl]="formControl"\n [kreFormAttributes]="field"\n [class.is-invalid]="showError" ></textarea>\n </ng-container>\n <ng-container *ngIf="to.setting.size==\'large\'">\n <textarea rows="4" nz-input \n [formControl]="formControl"\n [kreFormAttributes]="field"\n [class.is-invalid]="showError"></textarea>\n </ng-container>\n </ng-container>\n '}]}],e.ctorParameters=function(){return[{type:w}]},e}(v.FieldType),G=function(n){function e(e){var t=n.call(this)||this;return t.guid=v.Guid.create().value,t.service=e,t}return k(e,n),Object.defineProperty(e.prototype,"format",{get:function(){var e="yyyy-MM-dd";return this.to.format!=undefined&&null!=this.to.format&&""!=this.to.format&&(e=this.to.format),e},enumerable:!0,configurable:!0}),e.decorators=[{type:h.Component,args:[{selector:"kresurvey-date",template:' \n <ng-container *ngIf="formStatus !== 0">\n <div class="question-wrap_title">\n <div class="required">\n <span *ngIf="to.required">*</span>\n </div>\n <inline-editor [(ngModel)]="to.label"></inline-editor> \n </div>\n <div class="question-wrap_content">\n <div class="option_wrap date" > \n <nz-date-picker nzDisabled></nz-date-picker>\n </div>\n </div> \n </ng-container>\n\n\n <ng-container *ngIf="formStatus === 0">\n <nz-date-picker \n nzShowTime\n [nzFormat]="format"\n [formControl]="formControl"\n [kreFormAttributes]="field"\n [class.is-invalid]="showError"\n ></nz-date-picker>\n </ng-container>\n '}]}],e.ctorParameters=function(){return[{type:w}]},e}(v.FieldType),L=function(n){function e(e){var t=n.call(this)||this;return t.guid=v.Guid.create().value,t.service=e,t}return k(e,n),e.decorators=[{type:h.Component,args:[{selector:"kresurvey-time",template:'\n \n \n <ng-container *ngIf="formStatus !== 0">\n <div class="question-wrap_title">\n <div class="required">\n <span *ngIf="to.required">*</span>\n </div>\n <inline-editor [(ngModel)]="to.label"></inline-editor> \n </div>\n <div class="question-wrap_content">\n <div class="option_wrap time" > \n <nz-time-picker nzFormat="HH:mm" [nzDisabled]="true"></nz-time-picker>\n </div>\n </div> \n </ng-container>\n\n <ng-container *ngIf="formStatus === 0"> \n <nz-time-picker nzFormat="HH:mm"\n [formControl]="formControl"\n [kreFormAttributes]="field"\n [class.is-invalid]="showError">\n </nz-time-picker> \n </ng-container>\n '}]}],e.ctorParameters=function(){return[{type:w}]},e}(v.FieldType),A=function(n){function e(e){var t=n.call(this)||this;return t.guid=v.Guid.create().value,t.service=e,t}return k(e,n),e.prototype.addOption=function(){this.service.optionOperational("add","",this.field)},e.prototype.addOptions=function(){this.service.optionOperational("adds","",this.field)},e.prototype.deleteOption=function(e){this.service.optionOperational("delete",e,this.field)},e.decorators=[{type:h.Component,args:[{selector:"kresurvey-nps",template:' \n <ng-container *ngIf="formStatus !== 0"> \n <div class="question-wrap_title">\n <div class="required">\n <span *ngIf="to.required">*</span>\n </div>\n <inline-editor [(ngModel)]="to.label" [active]="active"\n ></inline-editor>\n </div>\n <div class="question-wrap_content">\n <div class="option_wrap basic_nps">\n <div class="option" *ngFor="let item of to.options"> \n {{item.label}} \n </div> \n </div>\n \n <div class="option_wrap_text">\n <span class="fl">不可能</span>\n <span class="fr">极有可能</span>\n </div>\n </div> \n </ng-container>\n\n <ng-container *ngIf="formStatus === 0">\n <div class="option_wrap">\n <nz-radio-group\n [nzName]="\'radiogroup-\' + guid"\n [formControl]="formControl"\n [kreFormAttributes]="field"\n [class.is-invalid]="showError"\n >\n <ng-container *ngFor="let item of to.options"> \n <label nz-radio-button [nzValue]="item.value">{{ item.label }}</label>\n </ng-container>\n </nz-radio-group> \n </div> \n <div class="option_wrap_text">\n <span>不可能</span>\n <span>极有可能</span>\n </div>\n </ng-container>\n '}]}],e.ctorParameters=function(){return[{type:w}]},e}(v.FieldType),R=function(n){function e(e){var t=n.call(this)||this;return t.guid=v.Guid.create().value,t.marks={0:"0",20:"20",40:"40",60:"60",80:"80",100:"100"},t.service=e,t}return k(e,n),e.prototype.addOption=function(){this.service.optionOperational("add","",this.field)},e.prototype.addOptions=function(){this.service.optionOperational("adds","",this.field)},e.prototype.deleteOption=function(e){this.service.optionOperational("delete",e,this.field)},e.decorators=[{type:h.Component,args:[{selector:"kresurvey-proportion",template:' \n <ng-container *ngIf="formStatus !== 0"> \n <div class="question-wrap_title">\n <div class="required">\n <span *ngIf="to.required">*</span>\n </div>\n <inline-editor [(ngModel)]="to.label" [active]="active"\n ></inline-editor>\n </div>\n <div class="question-wrap_content">\n <div class="option_wrap basic_radio" *ngFor="let item of to.options">\n <div class="option">\n \n </div>\n <div class="operate" (click)="deleteOption(item)" *ngIf="active==true">\n <i class="icon-KT-Close"></i>\n </div>\n </div>\n </div> \n <div class="question-wrap_operate">\n <span (click)="addOption()">添加单个选项</span> \n <span (click)="addOptions()">批量添加选项</span>\n </div> \n </ng-container>\n\n <ng-container *ngIf="formStatus === 0">\n <ng-container *ngIf="editor === true">\n <nz-radio-group\n [nzName]="\'radiogroup-\' + guid"\n [formControl]="formControl"\n [kreFormAttributes]="field"\n [class.is-invalid]="showError"\n >\n <ng-container *ngFor="let item of to.options">\n <label nz-radio [nzValue]="item.value">{{ item.label }}</label>\n </ng-container>\n </nz-radio-group>\n <div class="tips">\n <i\n class="icon-bangzhu"\n [nzTooltipTitle]="tips"\n nzTooltipPlacement="top"\n nz-tooltip\n *ngIf="tips != \'\'"\n ></i>\n </div>\n </ng-container>\n\n <div class="fieldtext" *ngIf="editor === false">{{ textSingle }}</div>\n </ng-container>\n '}]}],e.ctorParameters=function(){return[{type:w}]},e}(v.FieldType),V=function(){function e(){this.start=1,this.optionSelectedIndex=0,this.currentSelected={},this.editevaluationData=[]}return Object.defineProperty(e.prototype,"fieldConfig",{set:function(e){e!=undefined&&null!=e&&e.templateOptions!=undefined&&null!=e.templateOptions&&e.templateOptions.options!=undefined&&null!=e.templateOptions.options&&Array.isArray(e.templateOptions.options)?(this.editevaluationData=g.cloneDeep(e.templateOptions.options),this.currentSelected=this.editevaluationData[0]):this.editevaluationData=[]},enumerable:!0,configurable:!0}),e.prototype.ngOnInit=function(){},e.prototype.ngOnChanges=function(e){},e.prototype.optionClick=function(e){this.start=e+1,this.currentSelected=this.editevaluationData[e]},e.prototype.getOptionTag=function(){return this.currentSelected.tag.split(/[\s\n]/)},e.decorators=[{type:h.Component,args:[{selector:"kresurvey-editevaluation",template:'<div class="edit_evaluation">\r\n <nz-rate [(ngModel)]="start" [nzCount]="5"></nz-rate>\r\n <div class="label">"{{currentSelected.label}}"</div>\r\n <div class="tag">\r\n <ng-container *ngFor="let item of getOptionTag()">\r\n <span *ngIf="item!=\'\'">{{item}}</span>\r\n </ng-container>\r\n </div>\r\n <nz-tabset [nzType]="\'card\'" [nzSelectedIndex]="optionSelectedIndex" (nzSelectedIndexChange)="optionClick($event)">\r\n\r\n <ng-container *ngFor="let option of editevaluationData;let index=index;">\r\n <nz-tab [nzTitle]="titleTemplate">\r\n <ng-template #titleTemplate>\r\n <div>\r\n {{ option.value }}分\r\n </div>\r\n </ng-template>\r\n <ng-template nz-tab>\r\n <div class="option-label">\r\n 分值说明(最多可输入10个字)\r\n </div>\r\n <div>\r\n <input nz-input [(ngModel)]="option.label" />\r\n </div>\r\n <div class="option-tag">\r\n 标签设置(每行对应1个标签,最多10个标签,每个标签最多10个字,可复制其他选项标签)\r\n </div>\r\n <div>\r\n <textarea rows="8" nz-input [(ngModel)]="option.tag"></textarea>\r\n </div>\r\n </ng-template>\r\n </nz-tab>\r\n </ng-container>\r\n </nz-tabset>\r\n\r\n</div>',styles:[":host ::ng-deep{width:100%;height:100%;display:flex;background-color:#fff;padding:20px 0 0 10px}:host ::ng-deep .edit_evaluation{text-align:center;padding:0 20px;width:100%}:host ::ng-deep .edit_evaluation .ant-rate-star{font-size:30px}:host ::ng-deep .edit_evaluation .label{margin:20px 0 0;text-align:center;color:#fadb14;font-size:12px}:host ::ng-deep .edit_evaluation .tag{margin:20px 0;text-align:center}:host ::ng-deep .edit_evaluation .tag span{display:inline-block;font-size:12px;color:#aaa;padding:3px 10px;background:#fff;border:1px solid #eaeaea;border-radius:2px;margin-right:5px}:host ::ng-deep .edit_evaluation nz-tabset{text-align:left}:host ::ng-deep .edit_evaluation nz-tabset .ant-tabs-bar{margin:0}:host ::ng-deep .edit_evaluation nz-tabset .ant-tabs-top-content{border-left:1px solid #eee;border-right:1px solid #eee;border-bottom:1px solid #eee;padding:20px;font-size:12px}:host ::ng-deep .edit_evaluation nz-tabset .ant-tabs-nav-container{height:30px!important}:host ::ng-deep .edit_evaluation nz-tabset .ant-tabs-tab{height:30px!important;line-height:30px!important;padding:0 20px!important;font-size:13px}:host ::ng-deep .edit_evaluation nz-tabset .ant-input{font-size:12px}:host ::ng-deep .edit_evaluation nz-tabset .option-label{margin:0 0 5px}:host ::ng-deep .edit_evaluation nz-tabset .option-tag{margin:15px 0 5px}"]}]}],e.ctorParameters=function(){return[]},e.propDecorators={fieldConfig:[{type:h.Input}]},e}(),N=function(r){function e(e,t){var n=r.call(this)||this;return n.kreDialogService=t,n.guid=v.Guid.create().value,n.start=0,n._startContent={label:"",tags:[]},n.service=e,n.start=1,n}return k(e,r),Object.defineProperty(e.prototype,"startContent",{get:function(){var t=this;return""==this._startContent.label&&this.to.options!=undefined&&this.to.options.forEach(function(e){e.value==t.start&&(t._startContent.label=e.label,t._startContent.tags=e.tag.split(/[\s\n]/))}),this._startContent},enumerable:!0,configurable:!0}),e.prototype.numberChange=function(){var t=this;this.to.options!=undefined&&this.to.options.forEach(function(e){e.value==t.start&&(t._startContent.label=e.label,t._startContent.tags=e.tag.split(/[\s\n]/))})},e.prototype.editStart=function(){var n=this,e={fieldConfig:this.field};this.kreDialogService.CreateModelDialog({nzTitle:"选项编辑",size:"large",nzContent:V},e,function(e,t){n.to.options=e.editevaluationData,n.numberChange(),t.destroy()})},e.decorators=[{type:h.Component,args:[{selector:"kresurvey-evaluation",template:' \n <ng-container *ngIf="formStatus !== 0"> \n <div class="question-wrap_title">\n <div class="required">\n <span *ngIf="to.required">*</span>\n </div>\n <inline-editor [(ngModel)]="to.label" [active]="active"\n ></inline-editor>\n </div>\n <div class="question-wrap_content">\n <div class="option_wrap basic_evaluation">\n <nz-rate [(ngModel)]="start" [nzCount]="5"\t(ngModelChange)="numberChange()"></nz-rate>\n <div class="label">"{{startContent.label}}"</div>\n <div class="tag">\n <ng-container *ngFor="let item of startContent.tags">\n <span>{{item}}</span>\n </ng-container>\n <label (click)="editStart()">\n 编辑\n </label>\n </div>\n </div>\n </div> \n </ng-container>\n\n <ng-container *ngIf="formStatus === 0">\n <nz-rate [nzCount]="5" [(ngModel)]="start" \t(ngModelChange)="numberChange()" \n [formControl]="formControl"\n [kreFormAttributes]="field">\n </nz-rate>\n <div class="label">"{{startContent.label}}"</div>\n <div class="tag">\n <ng-container *ngFor="let item of startContent.tags">\n <span>{{item}}</span>\n </ng-container> \n </div>\n </ng-container>\n '}]}],e.ctorParameters=function(){return[{type:w},{type:S}]},e}(v.FieldType),K=function(n){function e(e){var t=n.call(this)||this;return t.guid=v.Guid.create().value,t.service=e,t}return k(e,n),e.prototype.controlModelChange=function(e,t,n){var r=this.formControl.value||[];r!=undefined&&null!=r&&0<r.length&&r.some(function(e){return e.groupid==t.value})?r.forEach(function(e){e.groupid==t.value&&(e.options=[{optionid:n.value,optionvalue:!0}])}):r.push({groupid:t.value,options:[{optionid:n.value,optionvalue:!0}]}),this.formControl.patchValue(r),this.formControl.markAsTouched()},e.prototype.getControlChecked=function(t,e){var n="",r=this.formControl.value;return r!=undefined&&null!=r&&0<r.length&&r.forEach(function(e){e.groupid==t.value&&(n=e.options[0].optionid)}),n},e.prototype.addOption=function(){this.service.optionOperational("add","",this.field)},e.prototype.addSubTitle=function(){this.service.optionOperational("subtitle","",this.field)},e.prototype.addOptions=function(){this.service.optionOperational("adds","",this.field)},e.prototype.deleteOption=function(e){this.service.optionOperational("delete",e,this.field)},e.decorators=[{type:h.Component,args:[{selector:"kresurvey-matrix_radio",template:' \n <ng-container *ngIf="formStatus !== 0"> \n <div class="question-wrap_title">\n <div class="required">\n <span *ngIf="to.required">*</span>\n </div>\n <inline-editor [(ngModel)]="to.label" [active]="active"\n ></inline-editor>\n </div>\n <div class="question-wrap_content">\n <div class="option_wrap matrix_radio">\n <div class="option_table">\n <table>\n <tr>\n <td></td>\n <td *ngFor="let itemTD of to.options">{{itemTD.label}}</td>\n </tr>\n <tr *ngFor="let itemTR of to.subtitle">\n <td>{{itemTR.label}}</td>\n <td *ngFor="let itemTD of to.options">\n <label nz-radio nzDisabled="true"></label> \n </td>\n </tr>\n </table>\n </div>\n <div class="option_vertical">\n <span (click)="addOption()">添加单个选项</span>\n </div>\n </div>\n </div> \n <div class="question-wrap_operate">\n <span (click)="addSubTitle()">添加单矩阵行</span> \n </div> \n </ng-container>\n\n <ng-container *ngIf="formStatus === 0">\n <table class="option_wrap">\n <tr>\n <td></td>\n <td *ngFor="let itemTD of to.options">{{itemTD.label}}</td>\n </tr>\n <tr *ngFor="let itemTR of to.subtitle">\n <td>{{itemTR.label}}</td>\n <td *ngFor="let itemTD of to.options"> \n <input [id]="itemTR.value+\'-\'+itemTD.value" type="radio" [value]="itemTD.value" [name]="itemTR.value" [ngModel]="getControlChecked(itemTR,itemTD)" (ngModelChange)="controlModelChange($event,itemTR,itemTD)">\n </td>\n </tr>\n </table>\n </ng-container>\n '}]}],e.ctorParameters=function(){return[{type:w}]},e}(v.FieldType),H=function(n){function e(e){var t=n.call(this)||this;return t.guid=v.Guid.create().value,t.service=e,t}return k(e,n),e.prototype.getMatrixOption=function(e,t){return{groupid:e.value,optionid:t.value}},e.prototype.onChange=function(e){var n=[];e!=undefined&&null!=e&&0<e.length&&e.forEach(function(t){n.some(function(e){return e.groupid==t.groupid})?n.forEach(function(e){e.groupid==t.groupid&&e.options.push({optionid:t.optionid,optionvalue:!0})}):n.push({groupid:t.groupid,options:[{optionid:t.optionid,optionvalue:!0}]})}),this.formControl.patchValue(n),this.formControl.markAsTouched()},e.prototype.getControlChecked=function(t,n){var r=!1,e=this.formControl.value;return e!=undefined&&null!=e&&0<e.length&&e.forEach(function(e){e.groupid==t.value&&e.options.forEach(function(e){e.optionid==n.value&&(r=e.optionvalue)})}),r},e.prototype.addOption=function(){this.service.optionOperational("add","",this.field)},e.prototype.addSubTitle=function(){this.service.optionOperational("subtitle","",this.field)},e.prototype.addOptions=function(){this.service.optionOperational("adds","",this.field)},e.prototype.deleteOption=function(e){this.service.optionOperational("delete",e,this.field)},e.decorators=[{type:h.Component,args:[{selector:"kresurvey-matrix_checkbox",template:' \n <ng-container *ngIf="formStatus !== 0"> \n <div class="question-wrap_title">\n <div class="required">\n <span *ngIf="to.required">*</span>\n </div>\n <inline-editor [(ngModel)]="to.label" [active]="active"\n ></inline-editor>\n </div>\n <div class="question-wrap_content">\n <div class="option_wrap matrix_checkbox">\n <div class="option_table">\n <table>\n <tr>\n <td></td>\n <td *ngFor="let itemTD of to.options">{{itemTD.label}}</td>\n </tr>\n <tr *ngFor="let itemTR of to.subtitle">\n <td>{{itemTR.label}}</td>\n <td *ngFor="let itemTD of to.options">\n <label nz-checkbox nzDisabled="true"></label> \n </td>\n </tr>\n </table>\n </div>\n <div class="option_vertical">\n <span (click)="addOption()">添加单个选项</span>\n </div>\n </div>\n </div> \n <div class="question-wrap_operate">\n <span (click)="addSubTitle()">添加单矩阵行</span> \n </div> \n </ng-container>\n\n <ng-container *ngIf="formStatus === 0">\n <nz-checkbox-wrapper\n style="width: 100%;"\n (nzOnChange)="onChange($event)"\n [class.is-invalid]="showError">\n <table class="option_wrap">\n <tr>\n <td></td>\n <td *ngFor="let itemTD of to.options">{{itemTD.label}}</td>\n </tr>\n <tr *ngFor="let itemTR of to.subtitle">\n <td>{{itemTR.label}}</td>\n <td *ngFor="let itemTD of to.options">\n <label nz-checkbox\n [nzValue]="getMatrixOption(itemTR,itemTD)"\n [ngModel]="getControlChecked(itemTR,itemTD)">\n </label> \n </td>\n </tr> \n </table>\n </nz-checkbox-wrapper>\n </ng-container>\n '}]}],e.ctorParameters=function(){return[{type:w}]},e}(v.FieldType),Q=function(n){function e(e){var t=n.call(this)||this;return t.guid=v.Guid.create().value,t.service=e,t}return k(e,n),e.prototype.controlModelChange=function(t,n,r){var e=this.formControl.value||[];e!=undefined&&null!=e&&0<e.length&&e.some(function(e){return e.groupid==n.value})?e.forEach(function(e){e.groupid==n.value&&(e.options.some(function(e){return e.optionid==r.value})?e.options.forEach(function(e){e.optionid==r.value&&(e.optionvalue=t)}):e.options.push({optionid:r.value,optionvalue:t}))}):e.push({groupid:n.value,options:[{optionid:r.value,optionvalue:t}]}),this.formControl.patchValue(e),this.formControl.markAsTouched()},e.prototype.getControlChecked=function(t,n){var r=0,e=this.formControl.value;return e!=undefined&&null!=e&&0<e.length&&e.forEach(function(e){e.groupid==t.value&&e.options.forEach(function(e){e.optionid==n.value&&(r=e.optionvalue)})}),r},e.prototype.addOption=function(){this.service.optionOperational("add","",this.field)},e.prototype.addSubTitle=function(){this.service.optionOperational("subtitle","",this.field)},e.prototype.addOptions=function(){this.service.optionOperational("adds","",this.field)},e.prototype.deleteOption=function(e){this.service.optionOperational("delete",e,this.field)},e.decorators=[{type:h.Component,args:[{selector:"kresurvey-matrix_score",template:' \n <ng-container *ngIf="formStatus !== 0">