{"__symbolic":"module","version":4,"metadata":{"BixiEditableTableModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":42,"character":1},"arguments":[{"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":43,"character":12},{"__symbolic":"reference","module":"@angular/forms","name":"ReactiveFormsModule","line":43,"character":26},{"__symbolic":"reference","module":"@angular/forms","name":"FormsModule","line":43,"character":47},{"__symbolic":"reference","module":"@angular/cdk/drag-drop","name":"DragDropModule","line":43,"character":60},{"__symbolic":"reference","module":"ng-zorro-antd/dropdown","name":"NzDropDownModule","line":26,"character":2},{"__symbolic":"reference","module":"ng-zorro-antd/icon","name":"NzIconModule","line":27,"character":2},{"__symbolic":"reference","module":"ng-zorro-antd/input","name":"NzInputModule","line":28,"character":2},{"__symbolic":"reference","module":"ng-zorro-antd/divider","name":"NzDividerModule","line":29,"character":2},{"__symbolic":"reference","module":"ng-zorro-antd/table","name":"NzTableModule","line":30,"character":2},{"__symbolic":"reference","module":"ng-zorro-antd/tooltip","name":"NzToolTipModule","line":31,"character":2},{"__symbolic":"reference","module":"ng-zorro-antd/form","name":"NzFormModule","line":32,"character":2},{"__symbolic":"reference","module":"ng-zorro-antd/select","name":"NzSelectModule","line":33,"character":2},{"__symbolic":"reference","module":"ng-zorro-antd/popconfirm","name":"NzPopconfirmModule","line":34,"character":2},{"__symbolic":"reference","module":"ng-zorro-antd/input-number","name":"NzInputNumberModule","line":35,"character":2},{"__symbolic":"reference","module":"ng-zorro-antd/core/outlet","name":"NzOutletModule","line":36,"character":2}],"declarations":[{"__symbolic":"reference","name":"BixiEditableTableComponent"},{"__symbolic":"reference","name":"ɵb"},{"__symbolic":"reference","name":"ɵc"}],"providers":[{"__symbolic":"reference","name":"ɵa"}],"exports":[{"__symbolic":"reference","name":"BixiEditableTableComponent"},{"__symbolic":"reference","name":"ɵc"}]}]}],"members":{}},"IOnTouchedType":{"__symbolic":"interface"},"IOnChangeType":{"__symbolic":"interface"},"BixiEditableTableComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":35,"character":1},"arguments":[{"selector":"bixi-editable-table","exportAs":"bixiEditableTable","host":{"[class.bixi-editable-table]":"true","$quoted$":["[class.bixi-editable-table]"]},"providers":[{"__symbolic":"reference","name":"ɵa"},{"provide":{"__symbolic":"reference","module":"@angular/forms","name":"NG_VALUE_ACCESSOR","line":42,"character":15},"useExisting":{"__symbolic":"reference","name":"BixiEditableTableComponent"},"multi":true}],"encapsulation":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewEncapsulation","line":46,"character":17},"member":"None"},"changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":47,"character":19},"member":"OnPush"},"template":"<form nz-form [formGroup]=\"form\">\n  <nz-table #editRowTable [nzData]=\"rows\" [nzFrontPagination]=\"false\" [nzShowPagination]=\"false\"\n    nzSize=\"small\" [nzScroll]=\"{ y: scroll.y }\" nzTableLayout=\"fixed\" nzEllipsis>\n\n    <!-- 表头设置 -->\n    <thead>\n      <tr>\n        <th *ngFor=\"let col of cols\">\n          {{col.name}}\n          <i *ngIf=\"col.titleTipContent\" nz-icon\n            [nzType]=\"col.titleTipIcon ? col.titleTipIcon : 'question-circle'\" nzTheme=\"outline\"\n            nz-tooltip [nzTooltipTitle]=\"col.titleTipContent\"></i>\n        </th>\n        <th *ngIf=\"rowEditable\" nzWidth=\"150px\">{{editTransitions.options}}</th>\n      </tr>\n    </thead>\n    <tbody cdkDropList (cdkDropListDropped)=\"drop($event)\" [cdkDropListData]=\"rows\">\n      <ng-container *ngFor=\"let row of editRowTable.data; index as index\">\n        <tr class=\"bixi-editable-row\" cdkDrag [cdkDragDisabled]=\"!rowDraggable || isEditing\"\n          [cdkDragPreviewClass]=\"['bixi-editable-row-preview']\">\n          <ng-container *ngFor=\"let col of cols\">\n            <td *ngIf=\"(col.editable !== false); else normalCol\">\n              <div class=\"bixi-editable-cell\" *ngIf=\"editRowIndex !== index; else editTD\">\n                <ng-container *ngIf=\"col.type !== 'select'; else selectTextTpl\">\n                  <span class=\"bixi-ellipsis\" nz-tooltip\n                    [nzTooltipTitle]=\"getColValue(col, row[col.key])\">\n                    {{getColValue(col, row[col.key])}}\n                  </span>\n                </ng-container>\n                <ng-template #selectTextTpl>\n                  <ng-container *ngIf=\"$any(col).options | async as options\">\n                    <span class=\"bixi-ellipsis\" nz-tooltip\n                      [nzTooltipTitle]=\"getSelectOptionName(options, row[col.key], col)\">\n                      {{getSelectOptionName(options, row[col.key], col)}}\n                    </span>\n                  </ng-container>\n                </ng-template>\n              </div>\n              <!-- 编辑状态下的行, 内置四种可编辑方式 -->\n              <ng-template #editTD>\n                <div class=\"bixi-editable-active\">\n                  <nz-form-item>\n                    <nz-form-control [ngSwitch]=\"col.type\">\n                      <!-- type select -->\n                      <ng-container *ngSwitchCase=\"'select'\">\n                        <nz-select #editContent [formControlName]=\"col.key\"\n                          [nzPlaceHolder]=\"editTransitions.input\"\n                          (ngModelChange)=\"onControlChange($event, col.key)\">\n                          <nz-option *ngFor=\"let option of $any(col).options | async\"\n                            [nzValue]=\"option.value\" [nzLabel]=\"option.name\">\n                          </nz-option>\n                        </nz-select>\n                      </ng-container>\n\n                      <!-- type template -->\n                      <ng-container *ngSwitchCase=\"'template'\">\n                        <input type=\"text\" nz-input class=\"template-agent-input\"\n                          [value]=\"row[col.key]\" [formControlName]=\"col.key\">\n                        <editable-col-template [row]=\"editRow\" [col]=\"col\" [formGroup]=\"form\">\n                        </editable-col-template>\n                      </ng-container>\n\n                      <!-- type input -->\n                      <ng-container *ngSwitchDefault>\n                        <nz-input-group>\n                          <nz-input-group [nzSuffix]=\"suffixIconClear\">\n                            <input [type]=\"col.inputType || 'text'\" nz-input\n                              [(ngModel)]=\"row[col.key]\" #editContent [formControlName]=\"col.key\"\n                              (ngModelChange)=\"onControlChange($event, col.key)\">\n                          </nz-input-group>\n                          <ng-template #suffixIconClear>\n                            <span (click)=\"onClear(editContent, col.key)\" class=\"bixi-input-btn\">\n                              <i nz-icon nzType=\"close-circle\" nzTheme=\"fill\"></i>\n                            </span>\n                          </ng-template>\n                        </nz-input-group>\n                      </ng-container>\n                    </nz-form-control>\n                  </nz-form-item>\n                </div>\n              </ng-template>\n            </td>\n            <ng-template #normalCol>\n              <td>\n                <div class=\"bixi-normal-cell\">\n                  <span class=\"bixi-ellipsis\" nz-tooltip [nzTooltipTitle]=\"row[col.key]\">\n                    {{ row[col.key] }}\n                  </span>\n                </div>\n              </td>\n            </ng-template>\n          </ng-container>\n\n          <!-- editable actions -->\n          <td *ngIf=\"rowEditable\" class=\"bixi-table-actions\">\n            <ng-container *ngIf=\"editRowIndex === index\">\n              <span class=\"bixi-action-btn\" [class.bixi-editable-disable]=\"!editDirty\"\n                (click)=\"onConfirm()\">{{editTransitions.save}}</span>\n              <span class=\"bixi-action-btn\" (click)=\"cancel()\">{{editTransitions.cancel}}</span>\n            </ng-container>\n            <ng-container *ngIf=\"editRowIndex !== index\">\n              <span class=\"bixi-action-btn\" [hidden]=\"editRowIndex === index\"\n                [class.bixi-editable-disable]=\"isEditing\"\n                (click)=\"onStartEdit(row, index)\">{{editTransitions.edit}}</span>\n              <span class=\"bixi-action-btn\" [hidden]=\"editRowIndex === index\" nz-popconfirm\n                [class.bixi-editable-disable]=\"isEditing\"\n                [nzPopconfirmTitle]=\"editTransitions.deleteConfirm\" nzPopconfirmPlacement=\"bottom\"\n                (nzOnConfirm)=\"onDelete(index)\">{{editTransitions.delete}}</span>\n            </ng-container>\n          </td>\n        </tr>\n      </ng-container>\n    </tbody>\n  </nz-table>\n</form>\n\n\n<!-- editable footer -->\n<div class=\"bixi-editable-footer\" *ngIf=\"((footer !== null) && rowEditable)\" (click)=\"onAddRow()\"\n  [class.bixi-editable-disable]=\"isEditing\">\n  <ng-container *ngIf=\"footer; else defaultFooter\">\n    <ng-template *nzStringTemplateOutlet=\"footer\"></ng-template>\n  </ng-container>\n  <ng-template #defaultFooter>\n    <div class=\"bixi-editable-add-btn\" [class.bixi-editable-disable]=\"isEditing\">\n      <i nz-icon nzType=\"plus\" nzTheme=\"outline\"></i>\n      {{addText}}\n    </div>\n  </ng-template>\n</div>\n"}]}],"members":{"cols":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":62,"character":3}}]}],"scroll":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":82,"character":3}}]}],"draggable":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":83,"character":3}}]}],"dragable":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":85,"character":3}}]}],"footer":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":86,"character":3}}]}],"editable":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":87,"character":3}}]}],"validate":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":88,"character":3}}]}],"deleteRow":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":90,"character":3}}]}],"addRow":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":91,"character":3}}]}],"dirtyRowsChange":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":92,"character":3}}]}],"editChange":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":93,"character":3}}]}],"firstEditingEle":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":95,"character":3},"arguments":["editContent"]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/forms","name":"FormBuilder","line":101,"character":16},{"__symbolic":"reference","module":"@bixi/core/i18n","name":"BixiI18nService","line":102,"character":18},{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":103,"character":17}]}],"getSelectOptionName":[{"__symbolic":"method"}],"getColValue":[{"__symbolic":"method"}],"ngOnInit":[{"__symbolic":"method"}],"setTranslation":[{"__symbolic":"method"}],"collectFormGroup":[{"__symbolic":"method"}],"checkValidity":[{"__symbolic":"method"}],"onStartEdit":[{"__symbolic":"method"}],"reset":[{"__symbolic":"method"}],"stopEdit":[{"__symbolic":"method"}],"onConfirm":[{"__symbolic":"method"}],"cancel":[{"__symbolic":"method"}],"onClear":[{"__symbolic":"method"}],"onControlChange":[{"__symbolic":"method"}],"isRowEqual":[{"__symbolic":"method"}],"onDelete":[{"__symbolic":"method"}],"collectRowChange":[{"__symbolic":"method"}],"submitChange":[{"__symbolic":"method"}],"drop":[{"__symbolic":"method"}],"onAddRow":[{"__symbolic":"method"}],"writeValue":[{"__symbolic":"method"}],"registerOnChange":[{"__symbolic":"method"}],"registerOnTouched":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"isEmpty":[{"__symbolic":"method"}]}},"IEditStatus":{"__symbolic":"interface"},"IEditableRow":{"__symbolic":"interface"},"IEditableBaseCol":{"__symbolic":"interface"},"IEditableTextCol":{"__symbolic":"interface"},"IEditableSelectCol":{"__symbolic":"interface"},"IEditableTemplateCol":{"__symbolic":"interface"},"IEditableCol":{"__symbolic":"interface"},"IEditableSelectOptions":{"__symbolic":"interface"},"IEditableSelectOption":{"__symbolic":"interface"},"IFormControls":{"__symbolic":"interface"},"IValidatorError":{"__symbolic":"interface"},"ɵa":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":7,"character":1}}],"members":{"add":[{"__symbolic":"method"}],"getTemplateRef":[{"__symbolic":"method"}]}},"ɵb":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":6,"character":1},"arguments":[{"selector":"editable-col-template","host":{"[class.editable-col-template]":"true","$quoted$":["[class.editable-col-template]"]},"template":"\n    <ng-template [ngTemplateOutlet]=\"outletRef\" [ngTemplateOutletContext]=\"{$implicit: row, formGroup: formGroup}\"></ng-template>\n  ","changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":12,"character":19},"member":"OnPush"}}]}],"members":{"row":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":15,"character":3}}]}],"col":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":16,"character":3}}]}],"formGroup":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":17,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ɵa"}]}],"ngOnInit":[{"__symbolic":"method"}]}},"ɵc":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":4,"character":1},"arguments":[{"selector":"[bixi-editable-col]"}]}],"members":{"tplName":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":8,"character":3},"arguments":["bixi-editable-col"]}]}],"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Host","line":10,"character":52}}]],"parameters":[{"__symbolic":"reference","name":"TemplateRef","module":"@angular/core","arguments":[{"__symbolic":"reference","module":"ng-zorro-antd/core/types/any","name":"NzSafeAny","line":10,"character":39}]},{"__symbolic":"reference","name":"ɵa"}]}],"ngOnInit":[{"__symbolic":"method"}]}}},"origins":{"BixiEditableTableModule":"./src/editable-table.module","IOnTouchedType":"./src/editable-table.component","IOnChangeType":"./src/editable-table.component","BixiEditableTableComponent":"./src/editable-table.component","IEditStatus":"./src/editable-table.type","IEditableRow":"./src/editable-table.type","IEditableBaseCol":"./src/editable-table.type","IEditableTextCol":"./src/editable-table.type","IEditableSelectCol":"./src/editable-table.type","IEditableTemplateCol":"./src/editable-table.type","IEditableCol":"./src/editable-table.type","IEditableSelectOptions":"./src/editable-table.type","IEditableSelectOption":"./src/editable-table.type","IFormControls":"./src/editable-table.type","IValidatorError":"./src/editable-table.type","ɵa":"./src/editable-template.service","ɵb":"./src/editable-template.component","ɵc":"./src/editable-template.directive"},"importAs":"@bixi/core/editable-table"}