ngx-axis-appforge 1.0.12 → 1.0.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (32) hide show
  1. package/axis-components-covers/read-file.svg +26 -0
  2. package/fesm2022/ngx-axis-appforge-axis-components-checkbox.mjs +8 -3
  3. package/fesm2022/ngx-axis-appforge-axis-components-checkbox.mjs.map +1 -1
  4. package/fesm2022/ngx-axis-appforge-axis-components-design.mjs +12 -6
  5. package/fesm2022/ngx-axis-appforge-axis-components-design.mjs.map +1 -1
  6. package/fesm2022/ngx-axis-appforge-axis-components-edit-table.mjs +1 -1
  7. package/fesm2022/ngx-axis-appforge-axis-components-edit-table.mjs.map +1 -1
  8. package/fesm2022/ngx-axis-appforge-axis-components-flex.mjs +1 -1
  9. package/fesm2022/ngx-axis-appforge-axis-components-flex.mjs.map +1 -1
  10. package/fesm2022/ngx-axis-appforge-axis-components-form.mjs +2 -2
  11. package/fesm2022/ngx-axis-appforge-axis-components-form.mjs.map +1 -1
  12. package/fesm2022/ngx-axis-appforge-axis-components-loop-task.mjs +6 -6
  13. package/fesm2022/ngx-axis-appforge-axis-components-loop-task.mjs.map +1 -1
  14. package/fesm2022/ngx-axis-appforge-axis-components-read-file-design.mjs +116 -0
  15. package/fesm2022/ngx-axis-appforge-axis-components-read-file-design.mjs.map +1 -0
  16. package/fesm2022/ngx-axis-appforge-axis-components-read-file.mjs +114 -0
  17. package/fesm2022/ngx-axis-appforge-axis-components-read-file.mjs.map +1 -0
  18. package/fesm2022/ngx-axis-appforge-axis-components-scope.mjs +3 -3
  19. package/fesm2022/ngx-axis-appforge-axis-components-scope.mjs.map +1 -1
  20. package/fesm2022/ngx-axis-appforge-axis-components-table.mjs +1 -1
  21. package/fesm2022/ngx-axis-appforge-axis-components-table.mjs.map +1 -1
  22. package/fesm2022/ngx-axis-appforge-axis-components-transfer.mjs +1 -1
  23. package/fesm2022/ngx-axis-appforge-axis-components-transfer.mjs.map +1 -1
  24. package/fesm2022/ngx-axis-appforge-axis-components.mjs +17 -0
  25. package/fesm2022/ngx-axis-appforge-axis-components.mjs.map +1 -1
  26. package/fesm2022/ngx-axis-appforge-core.mjs +65 -5
  27. package/fesm2022/ngx-axis-appforge-core.mjs.map +1 -1
  28. package/package.json +9 -1
  29. package/types/ngx-axis-appforge-axis-components-checkbox.d.ts +1 -0
  30. package/types/ngx-axis-appforge-axis-components-read-file-design.d.ts +5 -0
  31. package/types/ngx-axis-appforge-axis-components-read-file.d.ts +37 -0
  32. package/types/ngx-axis-appforge-core.d.ts +3 -1
@@ -372,7 +372,7 @@ class EditTable extends ValueAccess {
372
372
  provide: AXIS_TABLE_SELECT_TOKEN,
373
373
  useExisting: SelectService,
374
374
  },
375
- ], usesInheritance: true, ngImport: i0, template: "<form #form nz-form [formGroup]=\"fg\">\n <nz-table #table [nzSize]=\"options.size()\" [nzData]=\"rowData()\" [nzBordered]=\"options.bordered()\"\n [nzOuterBordered]=\"options.outerBordered()\" [nzShowPagination]=\"options.showPagination()\"\n [nzFrontPagination]=\"options.showPagination()\" [nzPageSize]=\"options.pageSize()\"\n [nzShowSizeChanger]=\"options.showSizeChanger()\" [nzPageSizeOptions]=\"tableSvc.pageSizeOptions()\"\n [nzShowTotal]=\"options.showDataSize()?totalRange:null\" [nzScroll]=\"scroll()\"\n [nzFooter]=\"!options.showPagination() && !disabledAppend() && rowData().length?footer:null\"\n [nzNoResult]=\"noResult\" [(nzPageIndex)]=\"pageIndex\">\n <thead>\n <tr>\n @if (options.showCheckbox()) {\n @if (!options.checkboxLinkageForExpand() && !options.singleCheck()) {\n <th nzLeft [nzChecked]=\"select.headerChecked()!='none'\"\n [nzIndeterminate]=\"select.headerChecked()=='indeterminate'\"\n (nzCheckedChange)=\"select.onAllChecked($event)\" nzAlign=\"center\"\n [nzWidth]=\"tableSvc.leaderFieldWidth()-10+'px'\">\n </th>\n }@else {\n <th nzLeft [nzWidth]=\"tableSvc.leaderFieldWidth()-10+'px'\"></th>\n }\n }\n @if (options.showExpand()) {\n <th nzLeft nzAlign=\"center\" [nzWidth]=\"tableSvc.leaderFieldWidth()-15+'px'\"></th>\n }\n <th nzWidth=\"0 !important\" nzLeft></th>\n @if (options.showOrder()) {\n <th nzAlign=\"center\" [nzWidth]=\"tableSvc.leaderFieldWidth()+'px'\">\u5E8F\u53F7</th>\n }\n @for (f of fields(); track f.field();let i=$index) {\n @if (f.inuse()) {\n <th [attr.data-index]=\"i\" nz-resizable nzBounds=\"window\" [nzDisabled]=\"!f.width()\"\n [nzWidth]=\"f.width() == null ?null:f.width()+'px'\" (nzResize)=\"f.width.set($event.width??null)\"\n [nzShowSort]=\"f.sortAble()\" [nzSortFn]=\"tableSvc.fieldsControlsMap()[f.field()]?.sortFn\"\n [nzSortOrder]=\"f.sortOrder()\" [nzSortPriority]=\"f.sortPriority()??false\"\n [nzShowFilter]=\"f.filterAble()\"\n [nzFilters]=\"tableSvc.fieldsControlsMap()[f.field()]?.filterItems ?? []\"\n [nzFilterFn]=\"tableSvc.fieldsControlsMap()[f.field()]?.filterFn\"\n (nzFilterChange)=\"tableSvc.filterChange(f.field(),$event)\" [nzFilterMultiple]=\"f.filterMultiple()\"\n [nzAlign]=\"f.align()\" [nzLeft]=\"f.freezeMode()=='left'\" [nzRight]=\"f.freezeMode()=='right'\">\n <nz-form-label [nzNoColon]=\"true\" [nzRequired]=\"idRequired(f)\">\n {{f.title()}}\n </nz-form-label>\n </th>\n }\n }\n @if(!options.disabledRemove()){\n <th nzRight nzAlign=\"center\" nzWidth=\"80px\" data-rowactions>\u64CD\u4F5C</th>\n }\n </tr>\n </thead>\n <tbody formArrayName=\"values\">\n @for (data of table.data; track data.key;let i=$index) {\n <ng-container [formGroupName]=\"(table.nzPageIndex-1) * table.nzPageSize + i\" [axisScope]=\"options.id+'.row'\"\n scopeName=\"\u53EF\u7F16\u8F91\u8868\u683C\u884C\"\n [dataSources]=\"[{name:'row',type:'local',data:data.control.value},{name:'rowkey',type:'local',data:data.key}]\">\n <tr (click)=\"rowClick($event, data)\">\n @if (options.showCheckbox()) {\n <td nzLeft [nzChecked]=\"select.setOfCheckedId().has(data.key)\"\n [nzIndeterminate]=\"select.setOfIndeterminateId().has(data.key)\"\n [nzDisabled]=\"select.setOfDisabledId().has(data.key)\"\n (nzCheckedChange)=\"select.onItemChecked(data, $event)\" nzAlign=\"center\"></td>\n }\n @if (options.showExpand()) {\n @if(options.expandMode() == \"tree\" &&\n !expand.nodeMap().get(data.key)?.children?.length){\n <td nzLeft></td>\n }@else{\n <td nzLeft [nzExpand]=\"expand.expandedSet.has(data.key)\"\n (nzExpandChange)=\"expand.onExpandChange(data.key,$event)\"></td>\n }\n }\n <td class=\"row-status\" nzLeft [class]=\"data.status()\"></td>\n @if (options.showOrder()) {\n <td nzAlign=\"center\">{{(table.nzPageIndex-1) * table.nzPageSize + i+1}}</td>\n }\n @for (f of fields(); track f;let fi=$index) {\n @if (f.inuse()) {\n <td [nzLeft]=\"f.freezeMode()=='left'\" [attr.data-index]=\"fi\" [nzRight]=\"f.freezeMode()=='right'\"\n [nzAlign]=\"f.align()\">\n @if(f.field()){\n <nz-form-item style=\"margin-bottom: 0;\">\n <nz-form-control>\n <ng-container [axisDynamic]=\"f.child()\" [formControlName]=\"f.field()\"\n (onRegisteValueAccess)=\"childRegisteValueAccess($event,i,f)\"></ng-container>\n </nz-form-control>\n </nz-form-item>\n }@else {\n <ng-container [axisDynamic]=\"f.child()\"></ng-container>\n }\n </td>\n }\n }\n @if(!options.disabledRemove()){\n <td nzRight>\n <button nz-button nzDanger nzType=\"link\" nz-popconfirm nzPopconfirmTitle=\"\u786E\u8BA4\u5220\u9664\uFF1F\"\n [nzCondition]=\"data.status()=='ignore'\" [disabled]=\"data.disabledRemove()\"\n (nzOnConfirm)=\"removeRow((table.nzPageIndex-1) * table.nzPageSize + i)\">\u5220\u9664</button>\n </td>\n }\n </tr>\n @if (options.showExpand() && options.expandMode() == \"custom\") {\n <tr [nzExpand]=\"expand.expandedSet.has(data.key)\" data-expandrow>\n @if (options.expandFormName()) {\n <ng-container [axisDynamic]=\"options.expandRow()\"\n [formControlName]=\"options.expandFormName()!\"></ng-container>\n }@else{\n <ng-container [axisDynamic]=\"options.expandRow()\"></ng-container>\n }\n </tr>\n }\n </ng-container>\n }\n </tbody>\n <ng-template #noResult>\n <nz-empty [nzNotFoundContent]=\"addbtn\"></nz-empty>\n <ng-template #addbtn>\n \u6682\u65E0\u6570\u636E@if (!disabledAppend()) {\uFF0C<a (click)=\"addRow()\">\u6DFB\u52A0</a>}\n </ng-template>\n </ng-template>\n <ng-template #totalRange let-range=\"range\" let-total>\n @if (!disabledAppend()) {\n <a style=\"position:absolute;left:24px\" (click)=\"addRow()\"><span nz-icon nzType=\"plus\"\n nzTheme=\"outline\"></span>\u6DFB\u52A0</a>\n }\n \u5171{{ total }}\u6761\u6570\u636E\uFF0C\u7B2C{{ range[0] }}-{{ range[1] }}\u6761\n </ng-template>\n <ng-template #footer>\n <a (click)=\"addRow()\"><span nz-icon nzType=\"plus\" nzTheme=\"outline\"></span>\u6DFB\u52A0</a>\n </ng-template>\n </nz-table>\n</form>", styles: [":host{display:block}.row-status{width:0;position:relative}.row-status:before{content:\"\";display:block;width:5px;height:17px;border-radius:5px;position:absolute;z-index:1;left:50%;top:50%;transform:translate(4px,-50%)}.invalid:before{background-color:#ff4d4f}.success:before{background-color:#7ed321}.ignore:before{background-color:#9b9b9b}:host ::ng-deep .ant-table-placeholder .ant-table-expanded-row-fixed{margin:-8px -10px}th nz-form-label ::ng-deep label{height:unset}\n"], dependencies: [{ kind: "ngmodule", type: NzTableModule }, { kind: "component", type: i2.NzTableComponent, selector: "nz-table", inputs: ["nzTableLayout", "nzShowTotal", "nzItemRender", "nzTitle", "nzFooter", "nzNoResult", "nzPageSizeOptions", "nzVirtualItemSize", "nzVirtualMaxBufferPx", "nzVirtualMinBufferPx", "nzVirtualForTrackBy", "nzLoadingDelay", "nzPageIndex", "nzPageSize", "nzTotal", "nzWidthConfig", "nzData", "nzCustomColumn", "nzPaginationPosition", "nzScroll", "noDataVirtualHeight", "nzPaginationType", "nzFrontPagination", "nzTemplateMode", "nzShowPagination", "nzLoading", "nzOuterBordered", "nzLoadingIndicator", "nzBordered", "nzSize", "nzShowSizeChanger", "nzHideOnSinglePage", "nzShowQuickJumper", "nzSimple"], outputs: ["nzPageSizeChange", "nzPageIndexChange", "nzQueryParams", "nzCurrentPageDataChange", "nzCustomColumnChange"], exportAs: ["nzTable"] }, { kind: "component", type: i2.NzThAddOnComponent, selector: "th[nzColumnKey], th[nzSortFn], th[nzSortOrder], th[nzFilters], th[nzShowSort], th[nzShowFilter], th[nzCustomFilter]", inputs: ["nzColumnKey", "nzFilterMultiple", "nzSortOrder", "nzSortPriority", "nzSortDirections", "nzFilters", "nzSortFn", "nzFilterFn", "nzShowSort", "nzShowFilter", "nzCustomFilter"], outputs: ["nzCheckedChange", "nzSortOrderChange", "nzFilterChange"] }, { kind: "directive", type: i2.NzTableCellDirective, selector: "th:not(.nz-disable-th), td:not(.nz-disable-td)" }, { kind: "directive", type: i2.NzThMeasureDirective, selector: "th", inputs: ["nzWidth", "colspan", "colSpan", "rowspan", "rowSpan"] }, { kind: "component", type: i2.NzTdAddOnComponent, selector: "td[nzChecked], td[nzDisabled], td[nzIndeterminate], td[nzIndentSize], td[nzExpand], td[nzShowExpand], td[nzShowCheckbox]", inputs: ["nzChecked", "nzDisabled", "nzIndeterminate", "nzLabel", "nzIndentSize", "nzShowExpand", "nzShowCheckbox", "nzExpand", "nzExpandIcon"], outputs: ["nzCheckedChange", "nzExpandChange"] }, { kind: "component", type: i2.NzTheadComponent, selector: "thead:not(.ant-table-thead)", outputs: ["nzSortOrderChange"] }, { kind: "component", type: i2.NzTbodyComponent, selector: "tbody" }, { kind: "directive", type: i2.NzTrDirective, selector: "tr:not([nz-table-measure-row]):not([nzExpand]):not([nz-table-fixed-row])" }, { kind: "directive", type: i2.NzCellFixedDirective, selector: "td[nzRight],th[nzRight],td[nzLeft],th[nzLeft]", inputs: ["nzRight", "nzLeft", "colspan", "colSpan"] }, { kind: "directive", type: i2.NzTrExpandDirective, selector: "tr[nzExpand]", inputs: ["nzExpand"] }, { kind: "directive", type: i2.NzCellAlignDirective, selector: "th[nzAlign],td[nzAlign]", inputs: ["nzAlign"] }, { kind: "component", type: i2.NzTableFixedRowComponent, selector: "tr[nz-table-fixed-row], tr[nzExpand]" }, { kind: "component", type: i2.NzThSelectionComponent, selector: "th[nzSelections],th[nzChecked],th[nzShowCheckbox],th[nzShowRowSelection]", inputs: ["nzSelections", "nzChecked", "nzDisabled", "nzIndeterminate", "nzLabel", "nzShowCheckbox", "nzShowRowSelection"], outputs: ["nzCheckedChange"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],[formArray],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i3.FormGroupName, selector: "[formGroupName]", inputs: ["formGroupName"] }, { kind: "directive", type: i3.FormArrayName, selector: "[formArrayName]", inputs: ["formArrayName"] }, { kind: "ngmodule", type: NzFormModule }, { kind: "directive", type: i4.NzColDirective, selector: "[nz-col],nz-col,nz-form-control,nz-form-label", inputs: ["nzFlex", "nzSpan", "nzOrder", "nzOffset", "nzPush", "nzPull", "nzXs", "nzSm", "nzMd", "nzLg", "nzXl", "nzXXl"], exportAs: ["nzCol"] }, { kind: "directive", type: i4.NzRowDirective, selector: "[nz-row],nz-row,nz-form-item", inputs: ["nzAlign", "nzJustify", "nzGutter"], exportAs: ["nzRow"] }, { kind: "directive", type: i5.NzFormDirective, selector: "[nz-form]", inputs: ["nzLayout", "nzNoColon", "nzAutoTips", "nzDisableAutoTips", "nzTooltipIcon", "nzLabelAlign", "nzLabelWrap", "nzSize", "nzVariant", "nzRequiredMark"], exportAs: ["nzForm"] }, { kind: "component", type: i5.NzFormItemComponent, selector: "nz-form-item", exportAs: ["nzFormItem"] }, { kind: "component", type: i5.NzFormLabelComponent, selector: "nz-form-label", inputs: ["nzFor", "nzRequired", "nzNoColon", "nzTooltipTitle", "nzTooltipIcon", "nzLabelAlign", "nzLabelWrap"], exportAs: ["nzFormLabel"] }, { kind: "component", type: i5.NzFormControlComponent, selector: "nz-form-control", inputs: ["nzSuccessTip", "nzWarningTip", "nzErrorTip", "nzValidatingTip", "nzExtra", "nzAutoTips", "nzDisableAutoTips", "nzHasFeedback", "nzValidateStatus"], exportAs: ["nzFormControl"] }, { kind: "ngmodule", type: NzResizableModule }, { kind: "directive", type: i6.NzResizableDirective, selector: "[nz-resizable]", inputs: ["nzBounds", "nzMaxHeight", "nzMaxWidth", "nzMinHeight", "nzMinWidth", "nzGridColumnCount", "nzMaxColumn", "nzMinColumn", "nzLockAspectRatio", "nzPreview", "nzDisabled"], outputs: ["nzResize", "nzResizeEnd", "nzResizeStart"], exportAs: ["nzResizable"] }, { kind: "directive", type: ScopeDirective, selector: "[axisScope]", inputs: ["axisScope", "scopeName", "isRoot", "dataSources"] }, { kind: "directive", type: DynamicDirective, selector: "[axisDynamic]", inputs: ["axisDynamic", "standalone", "isDesign", "forceRenderOnChange"], outputs: ["onRegisteValueAccess"], exportAs: ["axisDynamic"] }, { kind: "ngmodule", type: NzButtonModule }, { kind: "component", type: i7.NzButtonComponent, selector: "button[nz-button], a[nz-button]", inputs: ["nzBlock", "nzGhost", "nzSearch", "nzLoading", "nzDanger", "disabled", "tabIndex", "nzType", "nzShape", "nzSize"], exportAs: ["nzButton"] }, { kind: "directive", type: i8.ɵNzTransitionPatchDirective, selector: "[nz-button], [nz-icon], nz-icon, [nz-menu-item], [nz-submenu], nz-select-top-control, nz-select-placeholder, nz-input-group", inputs: ["hidden"] }, { kind: "ngmodule", type: NzPopconfirmModule }, { kind: "directive", type: i9.NzPopconfirmDirective, selector: "[nz-popconfirm]", inputs: ["nzPopconfirmArrowPointAtCenter", "nzPopconfirmTitle", "nzPopconfirmTitleContext", "nz-popconfirm", "nzPopconfirmTrigger", "nzPopconfirmPlacement", "nzPopconfirmOrigin", "nzPopconfirmMouseEnterDelay", "nzPopconfirmMouseLeaveDelay", "nzPopconfirmOverlayClassName", "nzPopconfirmOverlayStyle", "nzPopconfirmVisible", "nzBeforeConfirm", "nzIcon", "nzCondition", "nzPopconfirmShowArrow", "nzPopconfirmBackdrop", "nzAutofocus", "nzOkText", "nzOkType", "nzCancelText", "nzOkButtonProps", "nzCancelButtonProps", "nzOkDisabled", "nzOkDanger"], outputs: ["nzPopconfirmVisibleChange", "nzOnCancel", "nzOnConfirm"], exportAs: ["nzPopconfirm"] }, { kind: "ngmodule", type: NzIconModule }, { kind: "directive", type: i10.NzIconDirective, selector: "nz-icon,[nz-icon]", inputs: ["nzSpin", "nzRotate", "nzType", "nzTheme", "nzTwotoneColor", "nzIconfont"], exportAs: ["nzIcon"] }, { kind: "ngmodule", type: NzEmptyModule }, { kind: "component", type: i11.NzEmptyComponent, selector: "nz-empty", inputs: ["nzNotFoundImage", "nzNotFoundContent", "nzNotFoundFooter"], exportAs: ["nzEmpty"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
375
+ ], usesInheritance: true, ngImport: i0, template: "<form #form nz-form [formGroup]=\"fg\">\n <nz-table #table [nzSize]=\"options.size()\" [nzData]=\"rowData()\" [nzBordered]=\"options.bordered()\"\n [nzOuterBordered]=\"options.outerBordered()\" [nzShowPagination]=\"options.showPagination()\"\n [nzFrontPagination]=\"options.showPagination()\" [nzPageSize]=\"options.pageSize()\"\n [nzShowSizeChanger]=\"options.showSizeChanger()\" [nzPageSizeOptions]=\"tableSvc.pageSizeOptions()\"\n [nzShowTotal]=\"options.showDataSize()?totalRange:null\" [nzScroll]=\"scroll()\"\n [nzFooter]=\"!options.showPagination() && !disabledAppend() && rowData().length?footer:null\"\n [nzNoResult]=\"noResult\" [(nzPageIndex)]=\"pageIndex\">\n <thead>\n <tr>\n @if (options.showCheckbox()) {\n @if (!options.checkboxLinkageForExpand() && !options.singleCheck()) {\n <th nzLeft [nzChecked]=\"select.headerChecked()!='none'\"\n [nzIndeterminate]=\"select.headerChecked()=='indeterminate'\"\n (nzCheckedChange)=\"select.onAllChecked($event)\" nzAlign=\"center\"\n [nzWidth]=\"tableSvc.leaderFieldWidth()-10+'px'\">\n </th>\n }@else {\n <th nzLeft [nzWidth]=\"tableSvc.leaderFieldWidth()-10+'px'\"></th>\n }\n }\n @if (options.showExpand()) {\n <th nzLeft nzAlign=\"center\" [nzWidth]=\"tableSvc.leaderFieldWidth()-15+'px'\"></th>\n }\n <th nzWidth=\"0 !important\" nzLeft></th>\n @if (options.showOrder()) {\n <th nzAlign=\"center\" [nzWidth]=\"tableSvc.leaderFieldWidth()+'px'\">\u5E8F\u53F7</th>\n }\n @for (f of fields(); track f.field();let i=$index) {\n @if (f.inuse()) {\n <th [attr.data-index]=\"i\" nz-resizable nzBounds=\"window\" [nzDisabled]=\"!f.width()\"\n [nzWidth]=\"f.width() == null ?null:f.width()+'px'\" (nzResize)=\"f.width.set($event.width??null)\"\n [nzShowSort]=\"f.sortAble()\" [nzSortFn]=\"tableSvc.fieldsControlsMap()[f.field()]?.sortFn\"\n [nzSortOrder]=\"f.sortOrder()\" [nzSortPriority]=\"f.sortPriority()??false\"\n [nzShowFilter]=\"f.filterAble()\"\n [nzFilters]=\"tableSvc.fieldsControlsMap()[f.field()]?.filterItems ?? []\"\n [nzFilterFn]=\"tableSvc.fieldsControlsMap()[f.field()]?.filterFn\"\n (nzFilterChange)=\"tableSvc.filterChange(f.field(),$event)\" [nzFilterMultiple]=\"f.filterMultiple()\"\n [nzAlign]=\"f.align()\" [nzLeft]=\"f.freezeMode()=='left'\" [nzRight]=\"f.freezeMode()=='right'\">\n <nz-form-label [nzNoColon]=\"true\" [nzRequired]=\"idRequired(f)\">\n {{f.title()}}\n </nz-form-label>\n </th>\n }\n }\n @if(!options.disabledRemove()){\n <th nzRight nzAlign=\"center\" nzWidth=\"80px\" data-rowactions>\u64CD\u4F5C</th>\n }\n </tr>\n </thead>\n <tbody formArrayName=\"values\">\n @for (data of table.data; track data.key;let i=$index) {\n <ng-container [formGroupName]=\"(table.nzPageIndex-1) * table.nzPageSize + i\" [axisScope]=\"options.id+'.row'\"\n scopeName=\"\u53EF\u7F16\u8F91\u8868\u683C\u884C\"\n [dataSources]=\"[{name:'row',type:'local',data:data.control.value},{name:'rowkey',type:'local',data:data.key}]\">\n <tr (click)=\"rowClick($event, data)\">\n @if (options.showCheckbox()) {\n <td nzLeft [nzChecked]=\"select.setOfCheckedId().has(data.key)\"\n [nzIndeterminate]=\"select.setOfIndeterminateId().has(data.key)\"\n [nzDisabled]=\"select.setOfDisabledId().has(data.key)\"\n (nzCheckedChange)=\"select.onItemChecked(data, $event)\" nzAlign=\"center\"></td>\n }\n @if (options.showExpand()) {\n @if(options.expandMode() == \"tree\" &&\n !expand.nodeMap().get(data.key)?.children?.length){\n <td nzLeft></td>\n }@else{\n <td nzLeft [nzExpand]=\"expand.expandedSet.has(data.key)\"\n (nzExpandChange)=\"expand.onExpandChange(data.key,$event)\"></td>\n }\n }\n <td class=\"row-status\" nzLeft [class]=\"data.status()\"></td>\n @if (options.showOrder()) {\n <td nzAlign=\"center\">{{(table.nzPageIndex-1) * table.nzPageSize + i+1}}</td>\n }\n @for (f of fields(); track f;let fi=$index) {\n @if (f.inuse()) {\n <td [nzLeft]=\"f.freezeMode()=='left'\" [attr.data-index]=\"fi\" [nzRight]=\"f.freezeMode()=='right'\"\n [nzAlign]=\"f.align()\">\n @if(f.field()){\n <nz-form-item style=\"margin-bottom: 0;\">\n <nz-form-control>\n <ng-container [axisDynamic]=\"f.child()\" [formControlName]=\"f.field()\"\n (onRegisteValueAccess)=\"childRegisteValueAccess($event,i,f)\"></ng-container>\n </nz-form-control>\n </nz-form-item>\n }@else {\n <ng-container [axisDynamic]=\"f.child()\"></ng-container>\n }\n </td>\n }\n }\n @if(!options.disabledRemove()){\n <td nzRight>\n <button nz-button nzDanger nzType=\"link\" nz-popconfirm nzPopconfirmTitle=\"\u786E\u8BA4\u5220\u9664\uFF1F\"\n [nzCondition]=\"data.status()=='ignore'\" [disabled]=\"data.disabledRemove()\"\n (nzOnConfirm)=\"removeRow((table.nzPageIndex-1) * table.nzPageSize + i)\">\u5220\u9664</button>\n </td>\n }\n </tr>\n @if (options.showExpand() && options.expandMode() == \"custom\") {\n <tr [nzExpand]=\"expand.expandedSet.has(data.key)\" data-expandrow>\n @if (options.expandFormName()) {\n <ng-container [axisDynamic]=\"options.expandRow()\"\n [formControlName]=\"options.expandFormName()!\"></ng-container>\n }@else{\n <ng-container [axisDynamic]=\"options.expandRow()\"></ng-container>\n }\n </tr>\n }\n </ng-container>\n }\n </tbody>\n <ng-template #noResult>\n <nz-empty [nzNotFoundContent]=\"addbtn\"></nz-empty>\n <ng-template #addbtn>\n \u6682\u65E0\u6570\u636E@if (!disabledAppend()) {\uFF0C<a (click)=\"addRow()\">\u6DFB\u52A0</a>}\n </ng-template>\n </ng-template>\n <ng-template #totalRange let-range=\"range\" let-total>\n @if (!disabledAppend()) {\n <a style=\"position:absolute;left:24px\" (click)=\"addRow()\"><span nz-icon nzType=\"plus\"\n nzTheme=\"outline\"></span>\u6DFB\u52A0</a>\n }\n \u5171{{ total }}\u6761\u6570\u636E\uFF0C\u7B2C{{ range[0] }}-{{ range[1] }}\u6761\n </ng-template>\n <ng-template #footer>\n <a (click)=\"addRow()\"><span nz-icon nzType=\"plus\" nzTheme=\"outline\"></span>\u6DFB\u52A0</a>\n </ng-template>\n </nz-table>\n</form>", styles: [":host{display:block}.row-status{width:0;position:relative}.row-status:before{content:\"\";display:block;width:5px;height:17px;border-radius:5px;position:absolute;z-index:1;left:50%;top:50%;transform:translate(4px,-50%)}.invalid:before{background-color:#ff4d4f}.success:before{background-color:#7ed321}.ignore:before{background-color:#9b9b9b}:host ::ng-deep .ant-table-placeholder .ant-table-expanded-row-fixed{margin:-8px -10px}th nz-form-label ::ng-deep label{height:unset}\n"], dependencies: [{ kind: "ngmodule", type: NzTableModule }, { kind: "component", type: i2.NzTableComponent, selector: "nz-table", inputs: ["nzTableLayout", "nzShowTotal", "nzItemRender", "nzTitle", "nzFooter", "nzNoResult", "nzPageSizeOptions", "nzVirtualItemSize", "nzVirtualMaxBufferPx", "nzVirtualMinBufferPx", "nzVirtualForTrackBy", "nzLoadingDelay", "nzPageIndex", "nzPageSize", "nzTotal", "nzWidthConfig", "nzData", "nzCustomColumn", "nzPaginationPosition", "nzScroll", "noDataVirtualHeight", "nzPaginationType", "nzFrontPagination", "nzTemplateMode", "nzShowPagination", "nzLoading", "nzOuterBordered", "nzLoadingIndicator", "nzBordered", "nzSize", "nzShowSizeChanger", "nzHideOnSinglePage", "nzShowQuickJumper", "nzSimple"], outputs: ["nzPageSizeChange", "nzPageIndexChange", "nzQueryParams", "nzCurrentPageDataChange", "nzCustomColumnChange"], exportAs: ["nzTable"] }, { kind: "component", type: i2.NzThAddOnComponent, selector: "th[nzColumnKey], th[nzSortFn], th[nzSortOrder], th[nzFilters], th[nzShowSort], th[nzShowFilter], th[nzCustomFilter]", inputs: ["nzColumnKey", "nzFilterMultiple", "nzSortOrder", "nzSortPriority", "nzSortDirections", "nzFilters", "nzSortFn", "nzFilterFn", "nzShowSort", "nzShowFilter", "nzCustomFilter"], outputs: ["nzCheckedChange", "nzSortOrderChange", "nzFilterChange"] }, { kind: "directive", type: i2.NzTableCellDirective, selector: "th:not(.nz-disable-th), td:not(.nz-disable-td)" }, { kind: "directive", type: i2.NzThMeasureDirective, selector: "th", inputs: ["nzWidth", "colspan", "colSpan", "rowspan", "rowSpan"] }, { kind: "component", type: i2.NzTdAddOnComponent, selector: "td[nzChecked], td[nzDisabled], td[nzIndeterminate], td[nzIndentSize], td[nzExpand], td[nzShowExpand], td[nzShowCheckbox]", inputs: ["nzChecked", "nzDisabled", "nzIndeterminate", "nzLabel", "nzIndentSize", "nzShowExpand", "nzShowCheckbox", "nzExpand", "nzExpandIcon"], outputs: ["nzCheckedChange", "nzExpandChange"] }, { kind: "component", type: i2.NzTheadComponent, selector: "thead:not(.ant-table-thead)", outputs: ["nzSortOrderChange"] }, { kind: "component", type: i2.NzTbodyComponent, selector: "tbody" }, { kind: "directive", type: i2.NzTrDirective, selector: "tr:not([nz-table-measure-row]):not([nzExpand]):not([nz-table-fixed-row])" }, { kind: "directive", type: i2.NzCellFixedDirective, selector: "td[nzRight],th[nzRight],td[nzLeft],th[nzLeft]", inputs: ["nzRight", "nzLeft", "colspan", "colSpan"] }, { kind: "directive", type: i2.NzTrExpandDirective, selector: "tr[nzExpand]", inputs: ["nzExpand"] }, { kind: "directive", type: i2.NzCellAlignDirective, selector: "th[nzAlign],td[nzAlign]", inputs: ["nzAlign"] }, { kind: "component", type: i2.NzTableFixedRowComponent, selector: "tr[nz-table-fixed-row], tr[nzExpand]" }, { kind: "component", type: i2.NzThSelectionComponent, selector: "th[nzSelections],th[nzChecked],th[nzShowCheckbox],th[nzShowRowSelection]", inputs: ["nzSelections", "nzChecked", "nzDisabled", "nzIndeterminate", "nzLabel", "nzShowCheckbox", "nzShowRowSelection"], outputs: ["nzCheckedChange"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],[formArray],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i3.FormGroupName, selector: "[formGroupName]", inputs: ["formGroupName"] }, { kind: "directive", type: i3.FormArrayName, selector: "[formArrayName]", inputs: ["formArrayName"] }, { kind: "ngmodule", type: NzFormModule }, { kind: "directive", type: i4.NzColDirective, selector: "[nz-col],nz-col,nz-form-control,nz-form-label", inputs: ["nzFlex", "nzSpan", "nzOrder", "nzOffset", "nzPush", "nzPull", "nzXs", "nzSm", "nzMd", "nzLg", "nzXl", "nzXXl"], exportAs: ["nzCol"] }, { kind: "directive", type: i4.NzRowDirective, selector: "[nz-row],nz-row,nz-form-item", inputs: ["nzAlign", "nzJustify", "nzGutter"], exportAs: ["nzRow"] }, { kind: "directive", type: i5.NzFormDirective, selector: "[nz-form]", inputs: ["nzLayout", "nzNoColon", "nzAutoTips", "nzDisableAutoTips", "nzTooltipIcon", "nzLabelAlign", "nzLabelWrap", "nzSize", "nzVariant", "nzRequiredMark"], exportAs: ["nzForm"] }, { kind: "component", type: i5.NzFormItemComponent, selector: "nz-form-item", exportAs: ["nzFormItem"] }, { kind: "component", type: i5.NzFormLabelComponent, selector: "nz-form-label", inputs: ["nzFor", "nzRequired", "nzNoColon", "nzTooltipTitle", "nzTooltipIcon", "nzLabelAlign", "nzLabelWrap"], exportAs: ["nzFormLabel"] }, { kind: "component", type: i5.NzFormControlComponent, selector: "nz-form-control", inputs: ["nzSuccessTip", "nzWarningTip", "nzErrorTip", "nzValidatingTip", "nzExtra", "nzAutoTips", "nzDisableAutoTips", "nzHasFeedback", "nzValidateStatus"], exportAs: ["nzFormControl"] }, { kind: "ngmodule", type: NzResizableModule }, { kind: "directive", type: i6.NzResizableDirective, selector: "[nz-resizable]", inputs: ["nzBounds", "nzMaxHeight", "nzMaxWidth", "nzMinHeight", "nzMinWidth", "nzGridColumnCount", "nzMaxColumn", "nzMinColumn", "nzLockAspectRatio", "nzPreview", "nzDisabled"], outputs: ["nzResize", "nzResizeEnd", "nzResizeStart"], exportAs: ["nzResizable"] }, { kind: "directive", type: ScopeDirective, selector: "[axisScope]", inputs: ["axisScope", "scopeName", "isRoot", "passComponents", "dataSources"] }, { kind: "directive", type: DynamicDirective, selector: "[axisDynamic]", inputs: ["axisDynamic", "standalone", "isDesign", "forceRenderOnChange"], outputs: ["onRegisteValueAccess"], exportAs: ["axisDynamic"] }, { kind: "ngmodule", type: NzButtonModule }, { kind: "component", type: i7.NzButtonComponent, selector: "button[nz-button], a[nz-button]", inputs: ["nzBlock", "nzGhost", "nzSearch", "nzLoading", "nzDanger", "disabled", "tabIndex", "nzType", "nzShape", "nzSize"], exportAs: ["nzButton"] }, { kind: "directive", type: i8.ɵNzTransitionPatchDirective, selector: "[nz-button], [nz-icon], nz-icon, [nz-menu-item], [nz-submenu], nz-select-top-control, nz-select-placeholder, nz-input-group", inputs: ["hidden"] }, { kind: "ngmodule", type: NzPopconfirmModule }, { kind: "directive", type: i9.NzPopconfirmDirective, selector: "[nz-popconfirm]", inputs: ["nzPopconfirmArrowPointAtCenter", "nzPopconfirmTitle", "nzPopconfirmTitleContext", "nz-popconfirm", "nzPopconfirmTrigger", "nzPopconfirmPlacement", "nzPopconfirmOrigin", "nzPopconfirmMouseEnterDelay", "nzPopconfirmMouseLeaveDelay", "nzPopconfirmOverlayClassName", "nzPopconfirmOverlayStyle", "nzPopconfirmVisible", "nzBeforeConfirm", "nzIcon", "nzCondition", "nzPopconfirmShowArrow", "nzPopconfirmBackdrop", "nzAutofocus", "nzOkText", "nzOkType", "nzCancelText", "nzOkButtonProps", "nzCancelButtonProps", "nzOkDisabled", "nzOkDanger"], outputs: ["nzPopconfirmVisibleChange", "nzOnCancel", "nzOnConfirm"], exportAs: ["nzPopconfirm"] }, { kind: "ngmodule", type: NzIconModule }, { kind: "directive", type: i10.NzIconDirective, selector: "nz-icon,[nz-icon]", inputs: ["nzSpin", "nzRotate", "nzType", "nzTheme", "nzTwotoneColor", "nzIconfont"], exportAs: ["nzIcon"] }, { kind: "ngmodule", type: NzEmptyModule }, { kind: "component", type: i11.NzEmptyComponent, selector: "nz-empty", inputs: ["nzNotFoundImage", "nzNotFoundContent", "nzNotFoundFooter"], exportAs: ["nzEmpty"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
376
376
  }
377
377
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.12", ngImport: i0, type: EditTable, decorators: [{
378
378
  type: Component,
@@ -1 +1 @@
1
- {"version":3,"file":"ngx-axis-appforge-axis-components-edit-table.mjs","sources":["../../../axis-components/edit-table/edit-table.options.ts","../../../axis-components/edit-table/edit-table.ts","../../../axis-components/edit-table/edit-table.html","../../../axis-components/edit-table/ngx-axis-appforge-axis-components-edit-table.ts"],"sourcesContent":["import { signal } from \"@angular/core\";\nimport { ValueAccessOptions } from \"ngx-axis-appforge/core\";\nimport { BaseTableFieldOptions, BaseTableOptions, ExpandableTableOptions, SelectableTableOptions } from 'ngx-axis-appforge/axis-components/table-helper'\n\nexport class EditTableOptions extends ValueAccessOptions implements BaseTableOptions, SelectableTableOptions, ExpandableTableOptions {\n readonly disabledAppend = signal(false);\n readonly disabledRemove = signal(false);\n readonly disabledRemoveFn = signal(\"\");\n readonly maxLength = signal<number | null>(null);\n readonly addInitData = signal<any>(undefined);\n readonly showExpand = signal(false);\n readonly expandMode = signal<\"custom\" | \"tree\">(\"custom\");\n readonly treeChildrenFun = signal(\"\");\n readonly expandFormName = signal<string | undefined>(undefined);\n readonly size = signal<'middle' | 'small' | 'default'>(\"middle\");\n readonly showOrder = signal(true);\n readonly heightExpanded = signal(false);\n readonly showDataSize = signal(true);\n readonly bordered = signal(false);\n readonly outerBordered = signal(false);\n readonly width = signal<number | undefined>(undefined);\n readonly showCheckbox = signal(false);\n readonly checkedFormName = signal<string>(\"checked\");\n readonly checkeOnRowClick = signal(false);\n readonly singleCheck = signal(false);\n readonly disableCheckboxFn = signal<string | undefined>(undefined);\n readonly defaultSelectFirstRow = signal(false);\n readonly checkboxLinkageForExpand = signal(false);\n readonly checkedKeys = signal(undefined);\n readonly showPagination = signal(true);\n readonly pageSize = signal(10);\n readonly showSizeChanger = signal(true);\n readonly pageSizeOptions = signal(\"10,20,50,100\");\n readonly useBackEndPaging = signal(false);\n readonly fields = signal<any[]>([]);\n readonly expandRow = signal<any>(undefined);\n}\n\nexport class EditTableFieldOptions implements BaseTableFieldOptions {\n readonly inuse = signal(true);\n readonly field = signal(\"\");\n readonly title = signal(\"未命名\");\n readonly sortAble = signal(false);\n readonly sortOrder = signal<\"descend\" | \"ascend\" | null>(null);\n readonly sortPriority = signal<number | null>(null);\n readonly filterAble = signal(false);\n readonly filterMultiple = signal(false);\n readonly width = signal<number | null>(null);\n readonly align = signal<'left' | 'right' | 'center'>(\"left\");\n readonly freezeMode = signal<'none' | 'left' | 'right'>(\"none\");\n readonly groupAble = signal(false);\n readonly groupLevel = signal<number | null>(null);\n readonly validators = signal<any[]>([]);\n readonly child = signal<any>(undefined);\n}","import { ChangeDetectionStrategy, Component, computed, effect, Inject, inject, model, OnDestroy, OnInit, Optional, signal, SkipSelf, untracked, WritableSignal } from '@angular/core';\nimport { buildValidators, DynamicDirective, EventHandlerOptions, RegisteValueAccessOptions, ScopeDirective, updateAndValidAll, ValueAccess } from 'ngx-axis-appforge/core';\nimport { AXIS_TABLE_SELECT_TOKEN, ExpandService, SelectService, TableFieldDisplayService, TableService } from 'ngx-axis-appforge/axis-components/table-helper'\nimport { EditTableFieldOptions, EditTableOptions } from './edit-table.options';\nimport { NzTableModule } from 'ng-zorro-antd/table';\nimport { AbstractControl, FormArray, FormBuilder, ReactiveFormsModule, UntypedFormGroup } from '@angular/forms';\nimport { NzFormModule } from 'ng-zorro-antd/form';\nimport { NzResizableModule } from 'ng-zorro-antd/resizable';\nimport { NzButtonModule } from 'ng-zorro-antd/button';\nimport { NzPopconfirmModule } from 'ng-zorro-antd/popconfirm';\nimport { debounceTime, map, merge, Observable, of, Subscription } from 'rxjs';\nimport { NzIconModule } from 'ng-zorro-antd/icon';\nimport { NzEmptyModule } from 'ng-zorro-antd/empty';\nimport { DatePipe, DecimalPipe, PercentPipe } from '@angular/common';\n\n@Component({\n selector: 'axis-edit-table',\n templateUrl: './edit-table.html',\n imports: [NzTableModule, ReactiveFormsModule, NzFormModule, NzResizableModule, ScopeDirective, DynamicDirective, NzButtonModule, NzPopconfirmModule, NzIconModule, NzEmptyModule],\n styleUrl: './edit-table.css',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [DatePipe, DecimalPipe, PercentPipe, TableFieldDisplayService, TableService, SelectService, ExpandService,\n {\n provide: AXIS_TABLE_SELECT_TOKEN,\n useExisting: SelectService,\n },\n ]\n})\nexport class EditTable extends ValueAccess<EditTableOptions> implements OnInit, OnDestroy {\n\n constructor(public tableSvc: TableService<EditTableOptions, EditTableFieldOptions>, public select: SelectService, public expand: ExpandService, @SkipSelf() @Optional() @Inject(AXIS_TABLE_SELECT_TOKEN) parentSelect?: SelectService) {\n super();\n effect(() => {\n this.fields().forEach((f, i) => {\n this.bindWithConfig(this.options.fields()[i], { options: f, tag: `bindField.${i}` });\n });\n });\n effect(() => {\n const fields = this.fields().filter(f => f.inuse() && f.field()).map(f => f.field());\n if (this.fa.length > 0 && fields.some(f => !this.fa.at(0).value.hasOwnProperty(f))) {\n this.valueToFormValue();\n }\n });\n effect(() => {\n this.tableSvc.init({ data: this.rowData, options: this.options, fields: this.fields, getRow: (row) => row.control.value, cacheFilterItem: false });\n this.expand.init({ options: this.options, keyField: \"key\", data: this.rowData });\n });\n effect(() => {\n this.select.init({ options: this.options, keyField: \"key\", data: this.rowData, onSelectedChange: (ids) => this.onSelectedChange(ids), parent: parentSelect, scope: this.getScope(), subSelectKeyFun: scope => scope.snapshot(\"rowkey\"), getRow: (row) => row.control.value });\n })\n effect(() => {\n if (this.options.showCheckbox() && this.select.ready()) {\n untracked(() => this.formValueToSelect());\n }\n })\n effect(() => {\n this.addSubscribe(merge(...this.rowData().map(r => merge(...this.tableSvc.displayFields().filter(f => f.filterAble()).map(f => r.control.get(f.field())!.valueChanges.pipe(map(() => f.field()), debounceTime(100))))))\n .subscribe((f) => this.tableSvc.refreshFieldControls(f)));\n });\n effect(() => {\n clearInterval(this.timer);\n this.refreshScoll();\n if (this.options.heightExpanded()) {\n this.timer = setInterval(() => {\n this.refreshScoll();\n }, 500);\n }\n });\n this.addSubscribe(this.fa.valueChanges.pipe(debounceTime(300)).subscribe(v => {\n this.formValueToValue();\n this.onChange?.(this.value());\n if (this.options.showCheckbox()) {\n this.select.refreshDisabledId();\n }\n }));\n }\n\n override options: EditTableOptions = new EditTableOptions();\n private readonly fb = inject(FormBuilder);\n readonly fg: UntypedFormGroup = this.fb.group({\n values: this.fb.array([])\n });\n get fa(): FormArray<AbstractControl> {\n return this.fg.get(\"values\") as FormArray<AbstractControl>;\n }\n readonly rowData = signal<EditTableRowData[]>([]);\n readonly fields = computed(() => this.buildFields());\n readonly setOfDisabledRemoveId = signal(new Set<string>());\n readonly disabledAppend = computed(() => this.options.readonly() || this.options.disabled() || this.options.disabledAppend() || (this.options.maxLength() != null && this.rowData().length >= this.options.maxLength()!));\n readonly disabledRemove = computed(() => this.options.readonly() || this.options.disabled() || this.options.disabledRemove());\n readonly pageIndex = model<number>(1);\n timer?: number;\n readonly scroll = signal<{ x: string, y: string }>({ x: \"\", y: \"\" });\n\n ngOnInit(): void {\n this.registeValueAccess?.({\n validFn: (control: AbstractControl) => {\n return updateAndValidAll(this.fg, { markAsDirty: control.dirty })\n }\n });\n }\n\n override onEvents(e: EventHandlerOptions<any>): Observable<boolean> | undefined {\n const obs = super.onEvents?.(e);\n if (obs) {\n return;\n }\n switch (e.name) {\n case \"setEditTableRowValue\":\n this.rowData().find(row => row.key == e.data.rowkey)?.control.setValue(e.data.value);\n return of(true);\n }\n return undefined;\n }\n\n idRequired(field: EditTableFieldOptions): boolean {\n return field.validators()?.filter(v => !v.disabled).some(v => v.type == \"required\");\n }\n\n private buildFields(): EditTableFieldOptions[] {\n return this.options.fields().map(f => new EditTableFieldOptions());\n }\n\n override writeValue(value: any): void {\n super.writeValue(value);\n this.valueToFormValue();\n }\n\n override setInitValue(value: any): void {\n super.setInitValue(value);\n this.valueToFormValue();\n }\n\n childRegisteValueAccess(opt: RegisteValueAccessOptions, index: number, field: EditTableFieldOptions) {\n const control = this.fa.at(index)?.get(field.field());\n if (control) {\n if (opt.initValue !== undefined) {\n control.setValue(opt.initValue);\n }\n if (opt.validFn) {\n const validators = buildValidators(field.validators());\n validators.push((c) => opt.validFn!(c) ? null : { error: true });\n control.setValidators(validators);\n }\n }\n }\n\n valueToFormValue() {\n this.fa.clear({ emitEvent: false });\n const rowData: EditTableRowData[] = [];\n if (Array.isArray(this.value())) {\n for (const v of this.value()) {\n const row = this.buildRow();\n rowData.push(row);\n this.fa.push(row.control, { emitEvent: false });\n }\n this.fa.patchValue(this.value(), { emitEvent: false });\n for (const row of rowData) {\n this.refreshStatus(row);\n }\n }\n this.rowData.set(rowData);\n if (this.options.showCheckbox() && this.select.ready()) {\n this.formValueToSelect();\n }\n }\n\n formValueToSelect() {\n this.select.onSetItemsChecked(this.rowData().filter(row => {\n return row.control.get(this.options.checkedFormName())?.value;\n }));\n }\n\n formValueToValue() {\n this.value.set(this.rowData().filter(row => row.status() != \"ignore\").map((row) => row.control.value));\n }\n\n buildRow(): EditTableRowData {\n const group: any = {};\n if (this.options.showCheckbox() && this.options.checkedFormName()) {\n group[this.options.checkedFormName()] = [false];\n }\n if (this.options.showExpand() && this.options.expandFormName()) {\n group[this.options.expandFormName()!] = [];\n }\n this.fields().filter(r => r.field()).forEach(f => {\n group[f.field()] = [undefined];\n if (f.validators()) {\n const validators = buildValidators(f.validators());\n group[f.field()][1] = validators;\n }\n });\n const status = signal<'ignore' | 'invalid' | 'success'>(\"ignore\");\n const disabledRemove = signal(false);\n const control = this.fb.group(group);\n const rowData = {\n key: Math.random().toString().replace(/^\\d\\./, \"\"),\n status,\n control,\n subs: [\n control.valueChanges.pipe(debounceTime(300)).subscribe(v => {\n this.refreshStatus(rowData);\n })\n ],\n disabledRemove\n };\n return rowData;\n }\n\n addRow() {\n const row = this.buildRow();\n this.fa.push(row.control, { emitEvent: false });\n this.rowData().push(row);\n this.rowData.set([...this.rowData()]);\n if (this.options.addInitData()) {\n row.control.patchValue(this.options.addInitData());\n this.refreshStatus(row);\n }\n if (this.options.showPagination()) {\n this.pageIndex.set(Math.ceil(this.rowData().length / (this.options.pageSize() || 10)));\n }\n if (this.options.showCheckbox()) {\n this.formValueToSelect();\n }\n }\n\n removeRow(index: number) {\n this.fa.removeAt(index);\n this.rowData().splice(index, 1);\n this.rowData.set([...this.rowData()]);\n if (this.options.showCheckbox()) {\n this.formValueToSelect();\n }\n }\n\n refreshStatus(row: EditTableRowData) {\n const ignore = Object.entries(row.control.value).filter(en => !this.options.showCheckbox() || en[0] != this.options.checkedFormName() || en[1]).every(en => {\n if (en[1] == null) {\n return true;\n }\n if (en[1] instanceof Array) {\n return !en[1].length;\n }\n if (typeof (en[1]) == \"number\") {\n return false;\n }\n return !en[1];\n });\n if (!ignore) {\n row.status.set(row.control.invalid ? 'invalid' : 'success');\n row.disabledRemove.set(this.runFn(this.options.disabledRemoveFn(), { row: row.control.value }));\n } else {\n row.status.set('ignore');\n row.disabledRemove.set(false);\n }\n }\n\n override ngOnDestroy(): void {\n super.ngOnDestroy();\n this.rowData().forEach(row => {\n row.subs.forEach(s => s.unsubscribe());\n });\n }\n\n onSelectedChange(checkedIds: Set<any>) {\n this.rowData().forEach(row => {\n const v = checkedIds.has(row.key);\n if (!!row.control.value[this.options.checkedFormName()] != v) {\n row.control.patchValue({ [this.options.checkedFormName()]: v });\n }\n });\n }\n\n rowClick(e: MouseEvent, row: EditTableRowData) {\n const isInput = (e.target as HTMLElement).matches(\n 'input:not([disabled]), textarea:not([disabled]), [contenteditable=\"true\"]'\n );\n if (!isInput && this.options.checkeOnRowClick()) {\n this.select.toggleChecked(row);\n }\n }\n\n private refreshScoll() {\n let x = this.options.width() ?? 0;\n if (this.options.width() == undefined) {\n if (this.options.showCheckbox()) {\n x += this.tableSvc.leaderFieldWidth();\n }\n if (this.options.showExpand()) {\n x += this.tableSvc.leaderFieldWidth();\n }\n if (this.options.showOrder()) {\n x += this.tableSvc.leaderFieldWidth();\n }\n this.tableSvc.displayFields().forEach(f => {\n if (f.width()) {\n x += f.width()!;\n } else {\n x += 120;\n }\n });\n if (this.options.disabledRemove()) {\n x += 61;\n }\n }\n let y = \"\";\n if (this.options.heightExpanded()) {\n const element = this.elementRef.nativeElement as HTMLElement;\n const table = element.querySelector(\"nz-table\");\n const head = element.querySelector(\"table[nz-table-content]>thead.ant-table-thead\");\n const headRect = head?.getBoundingClientRect();\n const innerTableRect = head?.parentElement?.parentElement?.parentElement?.getBoundingClientRect();\n const outterTableRect = table?.getBoundingClientRect();\n let tableBody;\n if (head?.parentElement?.parentElement?.nextElementSibling?.classList.contains(\"ant-table-body\")) {\n tableBody = head?.parentElement?.parentElement?.nextElementSibling?.firstElementChild;\n } else if (head?.nextElementSibling?.classList.contains(\"ant-table-tbody\")) {\n tableBody = head?.nextElementSibling;\n } else if (head?.nextElementSibling?.nextElementSibling?.classList.contains(\"ant-table-tbody\")) {\n tableBody = head?.nextElementSibling?.nextElementSibling;\n }\n if (headRect && tableBody) {\n // scroolY = 视口高度(window.innerHeight) - 表头底部位置(headRect.bottom) - 表尾部高度(outterTableRect.bottom - innerTableRect.bottom)\n let scroolY = window.innerHeight - (headRect?.bottom ?? 0) - (outterTableRect?.bottom ?? 0) + (innerTableRect?.bottom ?? 0);\n if (scroolY < tableBody.clientHeight) {\n y = `${scroolY}px`;\n }\n }\n }\n this.scroll.set({ x: x + \"px\", y: y });\n }\n\n}\n\n\nexport interface EditTableRowData {\n key: string;\n status: WritableSignal<'ignore' | 'invalid' | 'success'>;\n control: AbstractControl;\n subs: Subscription[];\n disabledRemove: WritableSignal<boolean>\n}","<form #form nz-form [formGroup]=\"fg\">\n <nz-table #table [nzSize]=\"options.size()\" [nzData]=\"rowData()\" [nzBordered]=\"options.bordered()\"\n [nzOuterBordered]=\"options.outerBordered()\" [nzShowPagination]=\"options.showPagination()\"\n [nzFrontPagination]=\"options.showPagination()\" [nzPageSize]=\"options.pageSize()\"\n [nzShowSizeChanger]=\"options.showSizeChanger()\" [nzPageSizeOptions]=\"tableSvc.pageSizeOptions()\"\n [nzShowTotal]=\"options.showDataSize()?totalRange:null\" [nzScroll]=\"scroll()\"\n [nzFooter]=\"!options.showPagination() && !disabledAppend() && rowData().length?footer:null\"\n [nzNoResult]=\"noResult\" [(nzPageIndex)]=\"pageIndex\">\n <thead>\n <tr>\n @if (options.showCheckbox()) {\n @if (!options.checkboxLinkageForExpand() && !options.singleCheck()) {\n <th nzLeft [nzChecked]=\"select.headerChecked()!='none'\"\n [nzIndeterminate]=\"select.headerChecked()=='indeterminate'\"\n (nzCheckedChange)=\"select.onAllChecked($event)\" nzAlign=\"center\"\n [nzWidth]=\"tableSvc.leaderFieldWidth()-10+'px'\">\n </th>\n }@else {\n <th nzLeft [nzWidth]=\"tableSvc.leaderFieldWidth()-10+'px'\"></th>\n }\n }\n @if (options.showExpand()) {\n <th nzLeft nzAlign=\"center\" [nzWidth]=\"tableSvc.leaderFieldWidth()-15+'px'\"></th>\n }\n <th nzWidth=\"0 !important\" nzLeft></th>\n @if (options.showOrder()) {\n <th nzAlign=\"center\" [nzWidth]=\"tableSvc.leaderFieldWidth()+'px'\">序号</th>\n }\n @for (f of fields(); track f.field();let i=$index) {\n @if (f.inuse()) {\n <th [attr.data-index]=\"i\" nz-resizable nzBounds=\"window\" [nzDisabled]=\"!f.width()\"\n [nzWidth]=\"f.width() == null ?null:f.width()+'px'\" (nzResize)=\"f.width.set($event.width??null)\"\n [nzShowSort]=\"f.sortAble()\" [nzSortFn]=\"tableSvc.fieldsControlsMap()[f.field()]?.sortFn\"\n [nzSortOrder]=\"f.sortOrder()\" [nzSortPriority]=\"f.sortPriority()??false\"\n [nzShowFilter]=\"f.filterAble()\"\n [nzFilters]=\"tableSvc.fieldsControlsMap()[f.field()]?.filterItems ?? []\"\n [nzFilterFn]=\"tableSvc.fieldsControlsMap()[f.field()]?.filterFn\"\n (nzFilterChange)=\"tableSvc.filterChange(f.field(),$event)\" [nzFilterMultiple]=\"f.filterMultiple()\"\n [nzAlign]=\"f.align()\" [nzLeft]=\"f.freezeMode()=='left'\" [nzRight]=\"f.freezeMode()=='right'\">\n <nz-form-label [nzNoColon]=\"true\" [nzRequired]=\"idRequired(f)\">\n {{f.title()}}\n </nz-form-label>\n </th>\n }\n }\n @if(!options.disabledRemove()){\n <th nzRight nzAlign=\"center\" nzWidth=\"80px\" data-rowactions>操作</th>\n }\n </tr>\n </thead>\n <tbody formArrayName=\"values\">\n @for (data of table.data; track data.key;let i=$index) {\n <ng-container [formGroupName]=\"(table.nzPageIndex-1) * table.nzPageSize + i\" [axisScope]=\"options.id+'.row'\"\n scopeName=\"可编辑表格行\"\n [dataSources]=\"[{name:'row',type:'local',data:data.control.value},{name:'rowkey',type:'local',data:data.key}]\">\n <tr (click)=\"rowClick($event, data)\">\n @if (options.showCheckbox()) {\n <td nzLeft [nzChecked]=\"select.setOfCheckedId().has(data.key)\"\n [nzIndeterminate]=\"select.setOfIndeterminateId().has(data.key)\"\n [nzDisabled]=\"select.setOfDisabledId().has(data.key)\"\n (nzCheckedChange)=\"select.onItemChecked(data, $event)\" nzAlign=\"center\"></td>\n }\n @if (options.showExpand()) {\n @if(options.expandMode() == \"tree\" &&\n !expand.nodeMap().get(data.key)?.children?.length){\n <td nzLeft></td>\n }@else{\n <td nzLeft [nzExpand]=\"expand.expandedSet.has(data.key)\"\n (nzExpandChange)=\"expand.onExpandChange(data.key,$event)\"></td>\n }\n }\n <td class=\"row-status\" nzLeft [class]=\"data.status()\"></td>\n @if (options.showOrder()) {\n <td nzAlign=\"center\">{{(table.nzPageIndex-1) * table.nzPageSize + i+1}}</td>\n }\n @for (f of fields(); track f;let fi=$index) {\n @if (f.inuse()) {\n <td [nzLeft]=\"f.freezeMode()=='left'\" [attr.data-index]=\"fi\" [nzRight]=\"f.freezeMode()=='right'\"\n [nzAlign]=\"f.align()\">\n @if(f.field()){\n <nz-form-item style=\"margin-bottom: 0;\">\n <nz-form-control>\n <ng-container [axisDynamic]=\"f.child()\" [formControlName]=\"f.field()\"\n (onRegisteValueAccess)=\"childRegisteValueAccess($event,i,f)\"></ng-container>\n </nz-form-control>\n </nz-form-item>\n }@else {\n <ng-container [axisDynamic]=\"f.child()\"></ng-container>\n }\n </td>\n }\n }\n @if(!options.disabledRemove()){\n <td nzRight>\n <button nz-button nzDanger nzType=\"link\" nz-popconfirm nzPopconfirmTitle=\"确认删除?\"\n [nzCondition]=\"data.status()=='ignore'\" [disabled]=\"data.disabledRemove()\"\n (nzOnConfirm)=\"removeRow((table.nzPageIndex-1) * table.nzPageSize + i)\">删除</button>\n </td>\n }\n </tr>\n @if (options.showExpand() && options.expandMode() == \"custom\") {\n <tr [nzExpand]=\"expand.expandedSet.has(data.key)\" data-expandrow>\n @if (options.expandFormName()) {\n <ng-container [axisDynamic]=\"options.expandRow()\"\n [formControlName]=\"options.expandFormName()!\"></ng-container>\n }@else{\n <ng-container [axisDynamic]=\"options.expandRow()\"></ng-container>\n }\n </tr>\n }\n </ng-container>\n }\n </tbody>\n <ng-template #noResult>\n <nz-empty [nzNotFoundContent]=\"addbtn\"></nz-empty>\n <ng-template #addbtn>\n 暂无数据@if (!disabledAppend()) {,<a (click)=\"addRow()\">添加</a>}\n </ng-template>\n </ng-template>\n <ng-template #totalRange let-range=\"range\" let-total>\n @if (!disabledAppend()) {\n <a style=\"position:absolute;left:24px\" (click)=\"addRow()\"><span nz-icon nzType=\"plus\"\n nzTheme=\"outline\"></span>添加</a>\n }\n 共{{ total }}条数据,第{{ range[0] }}-{{ range[1] }}条\n </ng-template>\n <ng-template #footer>\n <a (click)=\"addRow()\"><span nz-icon nzType=\"plus\" nzTheme=\"outline\"></span>添加</a>\n </ng-template>\n </nz-table>\n</form>","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './edit-table';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ngx-axis-appforge-axis-components-edit-table.mjs","sources":["../../../axis-components/edit-table/edit-table.options.ts","../../../axis-components/edit-table/edit-table.ts","../../../axis-components/edit-table/edit-table.html","../../../axis-components/edit-table/ngx-axis-appforge-axis-components-edit-table.ts"],"sourcesContent":["import { signal } from \"@angular/core\";\nimport { ValueAccessOptions } from \"ngx-axis-appforge/core\";\nimport { BaseTableFieldOptions, BaseTableOptions, ExpandableTableOptions, SelectableTableOptions } from 'ngx-axis-appforge/axis-components/table-helper'\n\nexport class EditTableOptions extends ValueAccessOptions implements BaseTableOptions, SelectableTableOptions, ExpandableTableOptions {\n readonly disabledAppend = signal(false);\n readonly disabledRemove = signal(false);\n readonly disabledRemoveFn = signal(\"\");\n readonly maxLength = signal<number | null>(null);\n readonly addInitData = signal<any>(undefined);\n readonly showExpand = signal(false);\n readonly expandMode = signal<\"custom\" | \"tree\">(\"custom\");\n readonly treeChildrenFun = signal(\"\");\n readonly expandFormName = signal<string | undefined>(undefined);\n readonly size = signal<'middle' | 'small' | 'default'>(\"middle\");\n readonly showOrder = signal(true);\n readonly heightExpanded = signal(false);\n readonly showDataSize = signal(true);\n readonly bordered = signal(false);\n readonly outerBordered = signal(false);\n readonly width = signal<number | undefined>(undefined);\n readonly showCheckbox = signal(false);\n readonly checkedFormName = signal<string>(\"checked\");\n readonly checkeOnRowClick = signal(false);\n readonly singleCheck = signal(false);\n readonly disableCheckboxFn = signal<string | undefined>(undefined);\n readonly defaultSelectFirstRow = signal(false);\n readonly checkboxLinkageForExpand = signal(false);\n readonly checkedKeys = signal(undefined);\n readonly showPagination = signal(true);\n readonly pageSize = signal(10);\n readonly showSizeChanger = signal(true);\n readonly pageSizeOptions = signal(\"10,20,50,100\");\n readonly useBackEndPaging = signal(false);\n readonly fields = signal<any[]>([]);\n readonly expandRow = signal<any>(undefined);\n}\n\nexport class EditTableFieldOptions implements BaseTableFieldOptions {\n readonly inuse = signal(true);\n readonly field = signal(\"\");\n readonly title = signal(\"未命名\");\n readonly sortAble = signal(false);\n readonly sortOrder = signal<\"descend\" | \"ascend\" | null>(null);\n readonly sortPriority = signal<number | null>(null);\n readonly filterAble = signal(false);\n readonly filterMultiple = signal(false);\n readonly width = signal<number | null>(null);\n readonly align = signal<'left' | 'right' | 'center'>(\"left\");\n readonly freezeMode = signal<'none' | 'left' | 'right'>(\"none\");\n readonly groupAble = signal(false);\n readonly groupLevel = signal<number | null>(null);\n readonly validators = signal<any[]>([]);\n readonly child = signal<any>(undefined);\n}","import { ChangeDetectionStrategy, Component, computed, effect, Inject, inject, model, OnDestroy, OnInit, Optional, signal, SkipSelf, untracked, WritableSignal } from '@angular/core';\nimport { buildValidators, DynamicDirective, EventHandlerOptions, RegisteValueAccessOptions, ScopeDirective, updateAndValidAll, ValueAccess } from 'ngx-axis-appforge/core';\nimport { AXIS_TABLE_SELECT_TOKEN, ExpandService, SelectService, TableFieldDisplayService, TableService } from 'ngx-axis-appforge/axis-components/table-helper'\nimport { EditTableFieldOptions, EditTableOptions } from './edit-table.options';\nimport { NzTableModule } from 'ng-zorro-antd/table';\nimport { AbstractControl, FormArray, FormBuilder, ReactiveFormsModule, UntypedFormGroup } from '@angular/forms';\nimport { NzFormModule } from 'ng-zorro-antd/form';\nimport { NzResizableModule } from 'ng-zorro-antd/resizable';\nimport { NzButtonModule } from 'ng-zorro-antd/button';\nimport { NzPopconfirmModule } from 'ng-zorro-antd/popconfirm';\nimport { debounceTime, map, merge, Observable, of, Subscription } from 'rxjs';\nimport { NzIconModule } from 'ng-zorro-antd/icon';\nimport { NzEmptyModule } from 'ng-zorro-antd/empty';\nimport { DatePipe, DecimalPipe, PercentPipe } from '@angular/common';\n\n@Component({\n selector: 'axis-edit-table',\n templateUrl: './edit-table.html',\n imports: [NzTableModule, ReactiveFormsModule, NzFormModule, NzResizableModule, ScopeDirective, DynamicDirective, NzButtonModule, NzPopconfirmModule, NzIconModule, NzEmptyModule],\n styleUrl: './edit-table.css',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [DatePipe, DecimalPipe, PercentPipe, TableFieldDisplayService, TableService, SelectService, ExpandService,\n {\n provide: AXIS_TABLE_SELECT_TOKEN,\n useExisting: SelectService,\n },\n ]\n})\nexport class EditTable extends ValueAccess<EditTableOptions> implements OnInit, OnDestroy {\n\n constructor(public tableSvc: TableService<EditTableOptions, EditTableFieldOptions>, public select: SelectService, public expand: ExpandService, @SkipSelf() @Optional() @Inject(AXIS_TABLE_SELECT_TOKEN) parentSelect?: SelectService) {\n super();\n effect(() => {\n this.fields().forEach((f, i) => {\n this.bindWithConfig(this.options.fields()[i], { options: f, tag: `bindField.${i}` });\n });\n });\n effect(() => {\n const fields = this.fields().filter(f => f.inuse() && f.field()).map(f => f.field());\n if (this.fa.length > 0 && fields.some(f => !this.fa.at(0).value.hasOwnProperty(f))) {\n this.valueToFormValue();\n }\n });\n effect(() => {\n this.tableSvc.init({ data: this.rowData, options: this.options, fields: this.fields, getRow: (row) => row.control.value, cacheFilterItem: false });\n this.expand.init({ options: this.options, keyField: \"key\", data: this.rowData });\n });\n effect(() => {\n this.select.init({ options: this.options, keyField: \"key\", data: this.rowData, onSelectedChange: (ids) => this.onSelectedChange(ids), parent: parentSelect, scope: this.getScope(), subSelectKeyFun: scope => scope.snapshot(\"rowkey\"), getRow: (row) => row.control.value });\n })\n effect(() => {\n if (this.options.showCheckbox() && this.select.ready()) {\n untracked(() => this.formValueToSelect());\n }\n })\n effect(() => {\n this.addSubscribe(merge(...this.rowData().map(r => merge(...this.tableSvc.displayFields().filter(f => f.filterAble()).map(f => r.control.get(f.field())!.valueChanges.pipe(map(() => f.field()), debounceTime(100))))))\n .subscribe((f) => this.tableSvc.refreshFieldControls(f)));\n });\n effect(() => {\n clearInterval(this.timer);\n this.refreshScoll();\n if (this.options.heightExpanded()) {\n this.timer = setInterval(() => {\n this.refreshScoll();\n }, 500);\n }\n });\n this.addSubscribe(this.fa.valueChanges.pipe(debounceTime(300)).subscribe(v => {\n this.formValueToValue();\n this.onChange?.(this.value());\n if (this.options.showCheckbox()) {\n this.select.refreshDisabledId();\n }\n }));\n }\n\n override options: EditTableOptions = new EditTableOptions();\n private readonly fb = inject(FormBuilder);\n readonly fg: UntypedFormGroup = this.fb.group({\n values: this.fb.array([])\n });\n get fa(): FormArray<AbstractControl> {\n return this.fg.get(\"values\") as FormArray<AbstractControl>;\n }\n readonly rowData = signal<EditTableRowData[]>([]);\n readonly fields = computed(() => this.buildFields());\n readonly setOfDisabledRemoveId = signal(new Set<string>());\n readonly disabledAppend = computed(() => this.options.readonly() || this.options.disabled() || this.options.disabledAppend() || (this.options.maxLength() != null && this.rowData().length >= this.options.maxLength()!));\n readonly disabledRemove = computed(() => this.options.readonly() || this.options.disabled() || this.options.disabledRemove());\n readonly pageIndex = model<number>(1);\n timer?: number;\n readonly scroll = signal<{ x: string, y: string }>({ x: \"\", y: \"\" });\n\n ngOnInit(): void {\n this.registeValueAccess?.({\n validFn: (control: AbstractControl) => {\n return updateAndValidAll(this.fg, { markAsDirty: control.dirty })\n }\n });\n }\n\n override onEvents(e: EventHandlerOptions<any>): Observable<boolean> | undefined {\n const obs = super.onEvents?.(e);\n if (obs) {\n return;\n }\n switch (e.name) {\n case \"setEditTableRowValue\":\n this.rowData().find(row => row.key == e.data.rowkey)?.control.setValue(e.data.value);\n return of(true);\n }\n return undefined;\n }\n\n idRequired(field: EditTableFieldOptions): boolean {\n return field.validators()?.filter(v => !v.disabled).some(v => v.type == \"required\");\n }\n\n private buildFields(): EditTableFieldOptions[] {\n return this.options.fields().map(f => new EditTableFieldOptions());\n }\n\n override writeValue(value: any): void {\n super.writeValue(value);\n this.valueToFormValue();\n }\n\n override setInitValue(value: any): void {\n super.setInitValue(value);\n this.valueToFormValue();\n }\n\n childRegisteValueAccess(opt: RegisteValueAccessOptions, index: number, field: EditTableFieldOptions) {\n const control = this.fa.at(index)?.get(field.field());\n if (control) {\n if (opt.initValue !== undefined) {\n control.setValue(opt.initValue);\n }\n if (opt.validFn) {\n const validators = buildValidators(field.validators());\n validators.push((c) => opt.validFn!(c) ? null : { error: true });\n control.setValidators(validators);\n }\n }\n }\n\n valueToFormValue() {\n this.fa.clear({ emitEvent: false });\n const rowData: EditTableRowData[] = [];\n if (Array.isArray(this.value())) {\n for (const v of this.value()) {\n const row = this.buildRow();\n rowData.push(row);\n this.fa.push(row.control, { emitEvent: false });\n }\n this.fa.patchValue(this.value(), { emitEvent: false });\n for (const row of rowData) {\n this.refreshStatus(row);\n }\n }\n this.rowData.set(rowData);\n if (this.options.showCheckbox() && this.select.ready()) {\n this.formValueToSelect();\n }\n }\n\n formValueToSelect() {\n this.select.onSetItemsChecked(this.rowData().filter(row => {\n return row.control.get(this.options.checkedFormName())?.value;\n }));\n }\n\n formValueToValue() {\n this.value.set(this.rowData().filter(row => row.status() != \"ignore\").map((row) => row.control.value));\n }\n\n buildRow(): EditTableRowData {\n const group: any = {};\n if (this.options.showCheckbox() && this.options.checkedFormName()) {\n group[this.options.checkedFormName()] = [false];\n }\n if (this.options.showExpand() && this.options.expandFormName()) {\n group[this.options.expandFormName()!] = [];\n }\n this.fields().filter(r => r.field()).forEach(f => {\n group[f.field()] = [undefined];\n if (f.validators()) {\n const validators = buildValidators(f.validators());\n group[f.field()][1] = validators;\n }\n });\n const status = signal<'ignore' | 'invalid' | 'success'>(\"ignore\");\n const disabledRemove = signal(false);\n const control = this.fb.group(group);\n const rowData = {\n key: Math.random().toString().replace(/^\\d\\./, \"\"),\n status,\n control,\n subs: [\n control.valueChanges.pipe(debounceTime(300)).subscribe(v => {\n this.refreshStatus(rowData);\n })\n ],\n disabledRemove\n };\n return rowData;\n }\n\n addRow() {\n const row = this.buildRow();\n this.fa.push(row.control, { emitEvent: false });\n this.rowData().push(row);\n this.rowData.set([...this.rowData()]);\n if (this.options.addInitData()) {\n row.control.patchValue(this.options.addInitData());\n this.refreshStatus(row);\n }\n if (this.options.showPagination()) {\n this.pageIndex.set(Math.ceil(this.rowData().length / (this.options.pageSize() || 10)));\n }\n if (this.options.showCheckbox()) {\n this.formValueToSelect();\n }\n }\n\n removeRow(index: number) {\n this.fa.removeAt(index);\n this.rowData().splice(index, 1);\n this.rowData.set([...this.rowData()]);\n if (this.options.showCheckbox()) {\n this.formValueToSelect();\n }\n }\n\n refreshStatus(row: EditTableRowData) {\n const ignore = Object.entries(row.control.value).filter(en => !this.options.showCheckbox() || en[0] != this.options.checkedFormName() || en[1]).every(en => {\n if (en[1] == null) {\n return true;\n }\n if (en[1] instanceof Array) {\n return !en[1].length;\n }\n if (typeof (en[1]) == \"number\") {\n return false;\n }\n return !en[1];\n });\n if (!ignore) {\n row.status.set(row.control.invalid ? 'invalid' : 'success');\n row.disabledRemove.set(this.runFn(this.options.disabledRemoveFn(), { row: row.control.value }));\n } else {\n row.status.set('ignore');\n row.disabledRemove.set(false);\n }\n }\n\n override ngOnDestroy(): void {\n super.ngOnDestroy();\n this.rowData().forEach(row => {\n row.subs.forEach(s => s.unsubscribe());\n });\n }\n\n onSelectedChange(checkedIds: Set<any>) {\n this.rowData().forEach(row => {\n const v = checkedIds.has(row.key);\n if (!!row.control.value[this.options.checkedFormName()] != v) {\n row.control.patchValue({ [this.options.checkedFormName()]: v });\n }\n });\n }\n\n rowClick(e: MouseEvent, row: EditTableRowData) {\n const isInput = (e.target as HTMLElement).matches(\n 'input:not([disabled]), textarea:not([disabled]), [contenteditable=\"true\"]'\n );\n if (!isInput && this.options.checkeOnRowClick()) {\n this.select.toggleChecked(row);\n }\n }\n\n private refreshScoll() {\n let x = this.options.width() ?? 0;\n if (this.options.width() == undefined) {\n if (this.options.showCheckbox()) {\n x += this.tableSvc.leaderFieldWidth();\n }\n if (this.options.showExpand()) {\n x += this.tableSvc.leaderFieldWidth();\n }\n if (this.options.showOrder()) {\n x += this.tableSvc.leaderFieldWidth();\n }\n this.tableSvc.displayFields().forEach(f => {\n if (f.width()) {\n x += f.width()!;\n } else {\n x += 120;\n }\n });\n if (this.options.disabledRemove()) {\n x += 61;\n }\n }\n let y = \"\";\n if (this.options.heightExpanded()) {\n const element = this.elementRef.nativeElement as HTMLElement;\n const table = element.querySelector(\"nz-table\");\n const head = element.querySelector(\"table[nz-table-content]>thead.ant-table-thead\");\n const headRect = head?.getBoundingClientRect();\n const innerTableRect = head?.parentElement?.parentElement?.parentElement?.getBoundingClientRect();\n const outterTableRect = table?.getBoundingClientRect();\n let tableBody;\n if (head?.parentElement?.parentElement?.nextElementSibling?.classList.contains(\"ant-table-body\")) {\n tableBody = head?.parentElement?.parentElement?.nextElementSibling?.firstElementChild;\n } else if (head?.nextElementSibling?.classList.contains(\"ant-table-tbody\")) {\n tableBody = head?.nextElementSibling;\n } else if (head?.nextElementSibling?.nextElementSibling?.classList.contains(\"ant-table-tbody\")) {\n tableBody = head?.nextElementSibling?.nextElementSibling;\n }\n if (headRect && tableBody) {\n // scroolY = 视口高度(window.innerHeight) - 表头底部位置(headRect.bottom) - 表尾部高度(outterTableRect.bottom - innerTableRect.bottom)\n let scroolY = window.innerHeight - (headRect?.bottom ?? 0) - (outterTableRect?.bottom ?? 0) + (innerTableRect?.bottom ?? 0);\n if (scroolY < tableBody.clientHeight) {\n y = `${scroolY}px`;\n }\n }\n }\n this.scroll.set({ x: x + \"px\", y: y });\n }\n\n}\n\n\nexport interface EditTableRowData {\n key: string;\n status: WritableSignal<'ignore' | 'invalid' | 'success'>;\n control: AbstractControl;\n subs: Subscription[];\n disabledRemove: WritableSignal<boolean>\n}","<form #form nz-form [formGroup]=\"fg\">\n <nz-table #table [nzSize]=\"options.size()\" [nzData]=\"rowData()\" [nzBordered]=\"options.bordered()\"\n [nzOuterBordered]=\"options.outerBordered()\" [nzShowPagination]=\"options.showPagination()\"\n [nzFrontPagination]=\"options.showPagination()\" [nzPageSize]=\"options.pageSize()\"\n [nzShowSizeChanger]=\"options.showSizeChanger()\" [nzPageSizeOptions]=\"tableSvc.pageSizeOptions()\"\n [nzShowTotal]=\"options.showDataSize()?totalRange:null\" [nzScroll]=\"scroll()\"\n [nzFooter]=\"!options.showPagination() && !disabledAppend() && rowData().length?footer:null\"\n [nzNoResult]=\"noResult\" [(nzPageIndex)]=\"pageIndex\">\n <thead>\n <tr>\n @if (options.showCheckbox()) {\n @if (!options.checkboxLinkageForExpand() && !options.singleCheck()) {\n <th nzLeft [nzChecked]=\"select.headerChecked()!='none'\"\n [nzIndeterminate]=\"select.headerChecked()=='indeterminate'\"\n (nzCheckedChange)=\"select.onAllChecked($event)\" nzAlign=\"center\"\n [nzWidth]=\"tableSvc.leaderFieldWidth()-10+'px'\">\n </th>\n }@else {\n <th nzLeft [nzWidth]=\"tableSvc.leaderFieldWidth()-10+'px'\"></th>\n }\n }\n @if (options.showExpand()) {\n <th nzLeft nzAlign=\"center\" [nzWidth]=\"tableSvc.leaderFieldWidth()-15+'px'\"></th>\n }\n <th nzWidth=\"0 !important\" nzLeft></th>\n @if (options.showOrder()) {\n <th nzAlign=\"center\" [nzWidth]=\"tableSvc.leaderFieldWidth()+'px'\">序号</th>\n }\n @for (f of fields(); track f.field();let i=$index) {\n @if (f.inuse()) {\n <th [attr.data-index]=\"i\" nz-resizable nzBounds=\"window\" [nzDisabled]=\"!f.width()\"\n [nzWidth]=\"f.width() == null ?null:f.width()+'px'\" (nzResize)=\"f.width.set($event.width??null)\"\n [nzShowSort]=\"f.sortAble()\" [nzSortFn]=\"tableSvc.fieldsControlsMap()[f.field()]?.sortFn\"\n [nzSortOrder]=\"f.sortOrder()\" [nzSortPriority]=\"f.sortPriority()??false\"\n [nzShowFilter]=\"f.filterAble()\"\n [nzFilters]=\"tableSvc.fieldsControlsMap()[f.field()]?.filterItems ?? []\"\n [nzFilterFn]=\"tableSvc.fieldsControlsMap()[f.field()]?.filterFn\"\n (nzFilterChange)=\"tableSvc.filterChange(f.field(),$event)\" [nzFilterMultiple]=\"f.filterMultiple()\"\n [nzAlign]=\"f.align()\" [nzLeft]=\"f.freezeMode()=='left'\" [nzRight]=\"f.freezeMode()=='right'\">\n <nz-form-label [nzNoColon]=\"true\" [nzRequired]=\"idRequired(f)\">\n {{f.title()}}\n </nz-form-label>\n </th>\n }\n }\n @if(!options.disabledRemove()){\n <th nzRight nzAlign=\"center\" nzWidth=\"80px\" data-rowactions>操作</th>\n }\n </tr>\n </thead>\n <tbody formArrayName=\"values\">\n @for (data of table.data; track data.key;let i=$index) {\n <ng-container [formGroupName]=\"(table.nzPageIndex-1) * table.nzPageSize + i\" [axisScope]=\"options.id+'.row'\"\n scopeName=\"可编辑表格行\"\n [dataSources]=\"[{name:'row',type:'local',data:data.control.value},{name:'rowkey',type:'local',data:data.key}]\">\n <tr (click)=\"rowClick($event, data)\">\n @if (options.showCheckbox()) {\n <td nzLeft [nzChecked]=\"select.setOfCheckedId().has(data.key)\"\n [nzIndeterminate]=\"select.setOfIndeterminateId().has(data.key)\"\n [nzDisabled]=\"select.setOfDisabledId().has(data.key)\"\n (nzCheckedChange)=\"select.onItemChecked(data, $event)\" nzAlign=\"center\"></td>\n }\n @if (options.showExpand()) {\n @if(options.expandMode() == \"tree\" &&\n !expand.nodeMap().get(data.key)?.children?.length){\n <td nzLeft></td>\n }@else{\n <td nzLeft [nzExpand]=\"expand.expandedSet.has(data.key)\"\n (nzExpandChange)=\"expand.onExpandChange(data.key,$event)\"></td>\n }\n }\n <td class=\"row-status\" nzLeft [class]=\"data.status()\"></td>\n @if (options.showOrder()) {\n <td nzAlign=\"center\">{{(table.nzPageIndex-1) * table.nzPageSize + i+1}}</td>\n }\n @for (f of fields(); track f;let fi=$index) {\n @if (f.inuse()) {\n <td [nzLeft]=\"f.freezeMode()=='left'\" [attr.data-index]=\"fi\" [nzRight]=\"f.freezeMode()=='right'\"\n [nzAlign]=\"f.align()\">\n @if(f.field()){\n <nz-form-item style=\"margin-bottom: 0;\">\n <nz-form-control>\n <ng-container [axisDynamic]=\"f.child()\" [formControlName]=\"f.field()\"\n (onRegisteValueAccess)=\"childRegisteValueAccess($event,i,f)\"></ng-container>\n </nz-form-control>\n </nz-form-item>\n }@else {\n <ng-container [axisDynamic]=\"f.child()\"></ng-container>\n }\n </td>\n }\n }\n @if(!options.disabledRemove()){\n <td nzRight>\n <button nz-button nzDanger nzType=\"link\" nz-popconfirm nzPopconfirmTitle=\"确认删除?\"\n [nzCondition]=\"data.status()=='ignore'\" [disabled]=\"data.disabledRemove()\"\n (nzOnConfirm)=\"removeRow((table.nzPageIndex-1) * table.nzPageSize + i)\">删除</button>\n </td>\n }\n </tr>\n @if (options.showExpand() && options.expandMode() == \"custom\") {\n <tr [nzExpand]=\"expand.expandedSet.has(data.key)\" data-expandrow>\n @if (options.expandFormName()) {\n <ng-container [axisDynamic]=\"options.expandRow()\"\n [formControlName]=\"options.expandFormName()!\"></ng-container>\n }@else{\n <ng-container [axisDynamic]=\"options.expandRow()\"></ng-container>\n }\n </tr>\n }\n </ng-container>\n }\n </tbody>\n <ng-template #noResult>\n <nz-empty [nzNotFoundContent]=\"addbtn\"></nz-empty>\n <ng-template #addbtn>\n 暂无数据@if (!disabledAppend()) {,<a (click)=\"addRow()\">添加</a>}\n </ng-template>\n </ng-template>\n <ng-template #totalRange let-range=\"range\" let-total>\n @if (!disabledAppend()) {\n <a style=\"position:absolute;left:24px\" (click)=\"addRow()\"><span nz-icon nzType=\"plus\"\n nzTheme=\"outline\"></span>添加</a>\n }\n 共{{ total }}条数据,第{{ range[0] }}-{{ range[1] }}条\n </ng-template>\n <ng-template #footer>\n <a (click)=\"addRow()\"><span nz-icon nzType=\"plus\" nzTheme=\"outline\"></span>添加</a>\n </ng-template>\n </nz-table>\n</form>","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './edit-table';\n"],"names":[],"mappings":"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"}
@@ -42,7 +42,7 @@ class Flex extends Base {
42
42
  });
43
43
  }
44
44
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.12", ngImport: i0, type: Flex, deps: [], target: i0.ɵɵFactoryTarget.Component });
45
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.12", type: Flex, isStandalone: true, selector: "axis-flex", usesInheritance: true, ngImport: i0, template: "<div style=\"width: 100%;height:100%\" nz-flex [nzVertical]=\"options.direction()=='vertical'\"\n [nzJustify]=\"options.justify()\" [nzAlign]=\"options.align()\" [nzGap]=\"options.gap()\" [nzWrap]=\"options.wrap()\">\n @for (item of options.children(); track item.id;let i = $index) {\n @if(item.loop){\n @for (row of loopMap().get(item.id)!(); track row) {\n <ng-container [axisScope]=\"item.id+'.loop'\" scopeName=\"\u5FAA\u73AF\" [dataSources]=\"[{name:'loopRow',type:'local',data:row}]\">\n <ng-container [axisDynamic]=\"item\"></ng-container>\n </ng-container>\n }\n }@else{\n <ng-container [axisDynamic]=\"item\"></ng-container>\n }\n }\n</div>", styles: [":host{display:block;width:100%;position:relative}\n"], dependencies: [{ kind: "directive", type: DynamicDirective, selector: "[axisDynamic]", inputs: ["axisDynamic", "standalone", "isDesign", "forceRenderOnChange"], outputs: ["onRegisteValueAccess"], exportAs: ["axisDynamic"] }, { kind: "ngmodule", type: NzFlexModule }, { kind: "directive", type: i1.NzFlexDirective, selector: "[nz-flex],nz-flex", inputs: ["nzVertical", "nzJustify", "nzAlign", "nzGap", "nzWrap", "nzFlex"], exportAs: ["nzFlex"] }, { kind: "directive", type: ScopeDirective, selector: "[axisScope]", inputs: ["axisScope", "scopeName", "isRoot", "dataSources"] }] });
45
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.12", type: Flex, isStandalone: true, selector: "axis-flex", usesInheritance: true, ngImport: i0, template: "<div style=\"width: 100%;height:100%\" nz-flex [nzVertical]=\"options.direction()=='vertical'\"\n [nzJustify]=\"options.justify()\" [nzAlign]=\"options.align()\" [nzGap]=\"options.gap()\" [nzWrap]=\"options.wrap()\">\n @for (item of options.children(); track item.id;let i = $index) {\n @if(item.loop){\n @for (row of loopMap().get(item.id)!(); track row) {\n <ng-container [axisScope]=\"item.id+'.loop'\" scopeName=\"\u5FAA\u73AF\" [dataSources]=\"[{name:'loopRow',type:'local',data:row}]\">\n <ng-container [axisDynamic]=\"item\"></ng-container>\n </ng-container>\n }\n }@else{\n <ng-container [axisDynamic]=\"item\"></ng-container>\n }\n }\n</div>", styles: [":host{display:block;width:100%;position:relative}\n"], dependencies: [{ kind: "directive", type: DynamicDirective, selector: "[axisDynamic]", inputs: ["axisDynamic", "standalone", "isDesign", "forceRenderOnChange"], outputs: ["onRegisteValueAccess"], exportAs: ["axisDynamic"] }, { kind: "ngmodule", type: NzFlexModule }, { kind: "directive", type: i1.NzFlexDirective, selector: "[nz-flex],nz-flex", inputs: ["nzVertical", "nzJustify", "nzAlign", "nzGap", "nzWrap", "nzFlex"], exportAs: ["nzFlex"] }, { kind: "directive", type: ScopeDirective, selector: "[axisScope]", inputs: ["axisScope", "scopeName", "isRoot", "passComponents", "dataSources"] }] });
46
46
  }
47
47
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.12", ngImport: i0, type: Flex, decorators: [{
48
48
  type: Component,
@@ -1 +1 @@
1
- {"version":3,"file":"ngx-axis-appforge-axis-components-flex.mjs","sources":["../../../axis-components/flex/flex.options.ts","../../../axis-components/flex/flex.ts","../../../axis-components/flex/flex.html","../../../axis-components/flex/ngx-axis-appforge-axis-components-flex.ts"],"sourcesContent":["import { signal } from \"@angular/core\";\nimport { NzAlign, NzJustify, NzWrap } from \"ng-zorro-antd/flex\";\nimport { BaseOptions } from \"ngx-axis-appforge/core\";\n\nexport class FlexOptions extends BaseOptions {\n readonly direction = signal<\"horizontal\" | \"vertical\">(\"horizontal\");\n readonly justify = signal<NzJustify>(\"start\");\n readonly align = signal<NzAlign>(\"normal\");\n readonly gap = signal<string>(\"0\");\n readonly wrap = signal<NzWrap>(\"nowrap\");\n readonly children = signal<any[]>([]);\n}","import { Component, computed, effect, signal, WritableSignal } from '@angular/core';\nimport { FlexOptions } from './flex.options';\nimport { DynamicDirective, Base, ScopeDirective } from 'ngx-axis-appforge/core';\nimport { NzFlexModule } from 'ng-zorro-antd/flex';\nimport { filter } from 'rxjs';\n\n@Component({\n selector: 'axis-flex',\n imports: [DynamicDirective, NzFlexModule, ScopeDirective],\n templateUrl: './flex.html',\n styleUrl: './flex.css'\n})\nexport class Flex extends Base<FlexOptions> {\n\n override options: FlexOptions = new FlexOptions();\n\n readonly loopMap = computed(() => {\n const loopMap = new Map<string, WritableSignal<any[]>>();\n this.options.children().filter(item => item.loop)\n .forEach(item => {\n loopMap.set(item.id, signal([]));\n });\n return loopMap;\n });\n\n constructor() {\n super();\n effect(() => {\n this.options.children().filter(item => item.loop)\n .forEach(item => {\n const s = this.loopMap().get(item.id)!;\n const io = this.getScope()?.dynamicField(item, \"loopTarget\", false);\n if (io?.init !== undefined) {\n s.set(io.init);\n }\n if (io?.obs) {\n this.addSubscribe(io.obs.pipe(filter(v => v !== undefined))\n .subscribe(s.set), `bindLoop.${item.id}`);\n }\n });\n });\n }\n}\n","<div style=\"width: 100%;height:100%\" nz-flex [nzVertical]=\"options.direction()=='vertical'\"\n [nzJustify]=\"options.justify()\" [nzAlign]=\"options.align()\" [nzGap]=\"options.gap()\" [nzWrap]=\"options.wrap()\">\n @for (item of options.children(); track item.id;let i = $index) {\n @if(item.loop){\n @for (row of loopMap().get(item.id)!(); track row) {\n <ng-container [axisScope]=\"item.id+'.loop'\" scopeName=\"循环\" [dataSources]=\"[{name:'loopRow',type:'local',data:row}]\">\n <ng-container [axisDynamic]=\"item\"></ng-container>\n </ng-container>\n }\n }@else{\n <ng-container [axisDynamic]=\"item\"></ng-container>\n }\n }\n</div>","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './flex';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ngx-axis-appforge-axis-components-flex.mjs","sources":["../../../axis-components/flex/flex.options.ts","../../../axis-components/flex/flex.ts","../../../axis-components/flex/flex.html","../../../axis-components/flex/ngx-axis-appforge-axis-components-flex.ts"],"sourcesContent":["import { signal } from \"@angular/core\";\nimport { NzAlign, NzJustify, NzWrap } from \"ng-zorro-antd/flex\";\nimport { BaseOptions } from \"ngx-axis-appforge/core\";\n\nexport class FlexOptions extends BaseOptions {\n readonly direction = signal<\"horizontal\" | \"vertical\">(\"horizontal\");\n readonly justify = signal<NzJustify>(\"start\");\n readonly align = signal<NzAlign>(\"normal\");\n readonly gap = signal<string>(\"0\");\n readonly wrap = signal<NzWrap>(\"nowrap\");\n readonly children = signal<any[]>([]);\n}","import { Component, computed, effect, signal, WritableSignal } from '@angular/core';\nimport { FlexOptions } from './flex.options';\nimport { DynamicDirective, Base, ScopeDirective } from 'ngx-axis-appforge/core';\nimport { NzFlexModule } from 'ng-zorro-antd/flex';\nimport { filter } from 'rxjs';\n\n@Component({\n selector: 'axis-flex',\n imports: [DynamicDirective, NzFlexModule, ScopeDirective],\n templateUrl: './flex.html',\n styleUrl: './flex.css'\n})\nexport class Flex extends Base<FlexOptions> {\n\n override options: FlexOptions = new FlexOptions();\n\n readonly loopMap = computed(() => {\n const loopMap = new Map<string, WritableSignal<any[]>>();\n this.options.children().filter(item => item.loop)\n .forEach(item => {\n loopMap.set(item.id, signal([]));\n });\n return loopMap;\n });\n\n constructor() {\n super();\n effect(() => {\n this.options.children().filter(item => item.loop)\n .forEach(item => {\n const s = this.loopMap().get(item.id)!;\n const io = this.getScope()?.dynamicField(item, \"loopTarget\", false);\n if (io?.init !== undefined) {\n s.set(io.init);\n }\n if (io?.obs) {\n this.addSubscribe(io.obs.pipe(filter(v => v !== undefined))\n .subscribe(s.set), `bindLoop.${item.id}`);\n }\n });\n });\n }\n}\n","<div style=\"width: 100%;height:100%\" nz-flex [nzVertical]=\"options.direction()=='vertical'\"\n [nzJustify]=\"options.justify()\" [nzAlign]=\"options.align()\" [nzGap]=\"options.gap()\" [nzWrap]=\"options.wrap()\">\n @for (item of options.children(); track item.id;let i = $index) {\n @if(item.loop){\n @for (row of loopMap().get(item.id)!(); track row) {\n <ng-container [axisScope]=\"item.id+'.loop'\" scopeName=\"循环\" [dataSources]=\"[{name:'loopRow',type:'local',data:row}]\">\n <ng-container [axisDynamic]=\"item\"></ng-container>\n </ng-container>\n }\n }@else{\n <ng-container [axisDynamic]=\"item\"></ng-container>\n }\n }\n</div>","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './flex';\n"],"names":[],"mappings":"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"}
@@ -102,7 +102,7 @@ class Form extends ValueAccess {
102
102
  this.modal.confirm({
103
103
  nzTitle: "确定提交吗?",
104
104
  nzOnOk: () => {
105
- this.triggeEvents("formValid", { formValue: this.fg.value }, e.triggeEvents).subscribe(subject);
105
+ this.triggeEvents("formValid", { ...e.tempDataSource, formValue: this.fg.value }, e.triggeEvents).subscribe(subject);
106
106
  },
107
107
  nzOnCancel: () => {
108
108
  subject.next(false);
@@ -112,7 +112,7 @@ class Form extends ValueAccess {
112
112
  return subject.asObservable();
113
113
  }
114
114
  else {
115
- return this.triggeEvents("formValid", { formValue: this.fg.value }, e.triggeEvents);
115
+ return this.triggeEvents("formValid", { ...e.tempDataSource, formValue: this.fg.value }, e.triggeEvents);
116
116
  }
117
117
  }
118
118
  return of(false);
@@ -1 +1 @@
1
- {"version":3,"file":"ngx-axis-appforge-axis-components-form.mjs","sources":["../../../axis-components/form/form.options.ts","../../../axis-components/form/form.ts","../../../axis-components/form/form.html","../../../axis-components/form/ngx-axis-appforge-axis-components-form.ts"],"sourcesContent":["import { signal } from \"@angular/core\";\nimport { ValueAccessOptions } from \"ngx-axis-appforge/core\";\n\nexport class FormOptions extends ValueAccessOptions {\n\n readonly submitConfirm = signal(true);\n readonly child = signal<any>(undefined);\n\n}","import { ChangeDetectionStrategy, Component, inject, OnDestroy, OnInit } from '@angular/core';\nimport { AXIS_FORM_REGISTE_CONTROL_TOKEN, AXIS_FORM_UNREGISTE_CONTROL_TOKEN, DynamicDirective, EventHandlerOptions, RegisteFormControlOptions, updateAndValidAll, ValueAccess } from 'ngx-axis-appforge/core';\nimport { FormOptions } from './form.options';\nimport { AbstractControl, FormBuilder, ReactiveFormsModule, UntypedFormGroup } from '@angular/forms';\nimport { bufferWhen, debounceTime, map, Observable, of, Subject } from 'rxjs';\nimport { NzModalModule, NzModalService } from 'ng-zorro-antd/modal';\n\n@Component({\n selector: 'axis-form',\n imports: [ReactiveFormsModule, DynamicDirective, NzModalModule],\n templateUrl: './form.html',\n styleUrl: './form.css',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: AXIS_FORM_REGISTE_CONTROL_TOKEN,\n useFactory: (form: Form) => {\n return form.registerControl.bind(form);\n },\n deps: [Form]\n },\n {\n provide: AXIS_FORM_UNREGISTE_CONTROL_TOKEN,\n useFactory: (form: Form) => {\n return form.unregisterControl.bind(form);\n },\n deps: [Form]\n }\n ]\n})\nexport class Form extends ValueAccess<FormOptions> implements OnInit {\n\n constructor() {\n super();\n this.addSubscribe(this.fg.valueChanges.subscribe(v => {\n this.value.set(v);\n this.onChange?.(v);\n }));\n this.addSubscribe(this.resetSubject.pipe(bufferWhen(() => this.resetSubject.pipe(debounceTime(50))), map(v => v.reduce((a, b) => a || b, false)))\n .subscribe(emitEvent => this.reset(emitEvent)));\n this.addSubscribe(this.fg.statusChanges.subscribe(_ => {\n const { valid, dirty } = this.fg\n this.triggeEvents(\"formStatusChange\", { status: { valid, dirty } }).subscribe();\n }))\n }\n\n override options: FormOptions = new FormOptions();\n private readonly fb = inject(FormBuilder);\n private readonly modal = inject(NzModalService);\n readonly fg: UntypedFormGroup = this.fb.group({});\n private oriFormValue: any;\n private oriValue: any;\n private resetSubject = new Subject<boolean>();\n\n override writeValue(value: any): void {\n super.writeValue(value);\n this.oriFormValue = value;\n this.oriValue = this.oriFormValue;\n this.resetSubject.next(false);\n }\n\n override setInitValue(value: any): void {\n super.setInitValue(value);\n if (this.options.initValue() !== undefined) {\n this.oriFormValue = this.options.initValue();\n this.oriValue = this.oriFormValue;\n this.resetSubject.next(false);\n }\n }\n\n ngOnInit(): void {\n this.registeValueAccess?.({\n validFn: (control: AbstractControl) => {\n return updateAndValidAll(this.fg, { markAsDirty: control.dirty })\n }\n })\n }\n\n registerControl(opt: RegisteFormControlOptions) {\n if (opt.control) {\n const oldControl = this.fg.get(opt.name);\n if (oldControl?.value != undefined) {\n opt.control.setValue(oldControl.value);\n }\n this.fg.setControl(opt.name, opt.control, { emitEvent: false });\n }\n if (this.fg.dirty) {\n if (opt.initValue !== undefined) {\n this.fg.patchValue({ [opt.name]: opt.initValue });\n }\n } else {\n if (this.oriFormValue?.[opt.name] === undefined && opt.initValue !== undefined) {\n this.oriValue = Object.assign({}, this.oriValue, { [opt.name]: opt.initValue });\n this.registeValueAccess?.({\n initValue: this.oriValue\n });\n }\n this.resetSubject.next(false);\n }\n }\n\n unregisterControl(name: string) {\n this.fg.removeControl(name, { emitEvent: false });\n }\n\n reset(emitEvent = false) {\n this.fg.reset(this.oriValue, { emitEvent: emitEvent, onlySelf: true });\n if (!emitEvent && this.options.emitInitEvent()) {\n this.triggeEvents(\"valueChange\", { value: this.fg.value }).subscribe();\n }\n if (!emitEvent) {\n const { valid, dirty } = this.fg\n this.triggeEvents(\"formStatusChange\", { status: { valid, dirty } }).subscribe();\n }\n }\n\n override onEvents(e: EventHandlerOptions<any>): Observable<boolean> | undefined {\n const obs = super.onEvents(e);\n if (obs) {\n return;\n }\n switch (e.name) {\n case \"validForm\":\n if (updateAndValidAll(this.fg)) {\n if (this.options.submitConfirm()) {\n const subject = new Subject<boolean>();\n this.modal.confirm({\n nzTitle: \"确定提交吗?\",\n nzOnOk: () => {\n this.triggeEvents(\"formValid\", { formValue: this.fg.value }, e.triggeEvents).subscribe(subject);\n },\n nzOnCancel: () => {\n subject.next(false);\n subject.complete();\n }\n });\n return subject.asObservable();\n } else {\n return this.triggeEvents(\"formValid\", { formValue: this.fg.value }, e.triggeEvents);\n }\n }\n return of(false);\n case \"resetForm\":\n this.reset(true);\n return of(true);\n }\n return undefined;\n }\n\n}\n","<form [formGroup]=\"fg\" style=\"height: 100%;\" (keydown.enter)=\"$event.preventDefault()\">\n <ng-container [axisDynamic]=\"options.child()\"></ng-container>\n</form>","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './form';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ngx-axis-appforge-axis-components-form.mjs","sources":["../../../axis-components/form/form.options.ts","../../../axis-components/form/form.ts","../../../axis-components/form/form.html","../../../axis-components/form/ngx-axis-appforge-axis-components-form.ts"],"sourcesContent":["import { signal } from \"@angular/core\";\nimport { ValueAccessOptions } from \"ngx-axis-appforge/core\";\n\nexport class FormOptions extends ValueAccessOptions {\n\n readonly submitConfirm = signal(true);\n readonly child = signal<any>(undefined);\n\n}","import { ChangeDetectionStrategy, Component, inject, OnDestroy, OnInit } from '@angular/core';\nimport { AXIS_FORM_REGISTE_CONTROL_TOKEN, AXIS_FORM_UNREGISTE_CONTROL_TOKEN, DynamicDirective, EventHandlerOptions, RegisteFormControlOptions, updateAndValidAll, ValueAccess } from 'ngx-axis-appforge/core';\nimport { FormOptions } from './form.options';\nimport { AbstractControl, FormBuilder, ReactiveFormsModule, UntypedFormGroup } from '@angular/forms';\nimport { bufferWhen, debounceTime, map, Observable, of, Subject } from 'rxjs';\nimport { NzModalModule, NzModalService } from 'ng-zorro-antd/modal';\n\n@Component({\n selector: 'axis-form',\n imports: [ReactiveFormsModule, DynamicDirective, NzModalModule],\n templateUrl: './form.html',\n styleUrl: './form.css',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: AXIS_FORM_REGISTE_CONTROL_TOKEN,\n useFactory: (form: Form) => {\n return form.registerControl.bind(form);\n },\n deps: [Form]\n },\n {\n provide: AXIS_FORM_UNREGISTE_CONTROL_TOKEN,\n useFactory: (form: Form) => {\n return form.unregisterControl.bind(form);\n },\n deps: [Form]\n }\n ]\n})\nexport class Form extends ValueAccess<FormOptions> implements OnInit {\n\n constructor() {\n super();\n this.addSubscribe(this.fg.valueChanges.subscribe(v => {\n this.value.set(v);\n this.onChange?.(v);\n }));\n this.addSubscribe(this.resetSubject.pipe(bufferWhen(() => this.resetSubject.pipe(debounceTime(50))), map(v => v.reduce((a, b) => a || b, false)))\n .subscribe(emitEvent => this.reset(emitEvent)));\n this.addSubscribe(this.fg.statusChanges.subscribe(_ => {\n const { valid, dirty } = this.fg\n this.triggeEvents(\"formStatusChange\", { status: { valid, dirty } }).subscribe();\n }))\n }\n\n override options: FormOptions = new FormOptions();\n private readonly fb = inject(FormBuilder);\n private readonly modal = inject(NzModalService);\n readonly fg: UntypedFormGroup = this.fb.group({});\n private oriFormValue: any;\n private oriValue: any;\n private resetSubject = new Subject<boolean>();\n\n override writeValue(value: any): void {\n super.writeValue(value);\n this.oriFormValue = value;\n this.oriValue = this.oriFormValue;\n this.resetSubject.next(false);\n }\n\n override setInitValue(value: any): void {\n super.setInitValue(value);\n if (this.options.initValue() !== undefined) {\n this.oriFormValue = this.options.initValue();\n this.oriValue = this.oriFormValue;\n this.resetSubject.next(false);\n }\n }\n\n ngOnInit(): void {\n this.registeValueAccess?.({\n validFn: (control: AbstractControl) => {\n return updateAndValidAll(this.fg, { markAsDirty: control.dirty })\n }\n })\n }\n\n registerControl(opt: RegisteFormControlOptions) {\n if (opt.control) {\n const oldControl = this.fg.get(opt.name);\n if (oldControl?.value != undefined) {\n opt.control.setValue(oldControl.value);\n }\n this.fg.setControl(opt.name, opt.control, { emitEvent: false });\n }\n if (this.fg.dirty) {\n if (opt.initValue !== undefined) {\n this.fg.patchValue({ [opt.name]: opt.initValue });\n }\n } else {\n if (this.oriFormValue?.[opt.name] === undefined && opt.initValue !== undefined) {\n this.oriValue = Object.assign({}, this.oriValue, { [opt.name]: opt.initValue });\n this.registeValueAccess?.({\n initValue: this.oriValue\n });\n }\n this.resetSubject.next(false);\n }\n }\n\n unregisterControl(name: string) {\n this.fg.removeControl(name, { emitEvent: false });\n }\n\n reset(emitEvent = false) {\n this.fg.reset(this.oriValue, { emitEvent: emitEvent, onlySelf: true });\n if (!emitEvent && this.options.emitInitEvent()) {\n this.triggeEvents(\"valueChange\", { value: this.fg.value }).subscribe();\n }\n if (!emitEvent) {\n const { valid, dirty } = this.fg\n this.triggeEvents(\"formStatusChange\", { status: { valid, dirty } }).subscribe();\n }\n }\n\n override onEvents(e: EventHandlerOptions<any>): Observable<boolean> | undefined {\n const obs = super.onEvents(e);\n if (obs) {\n return;\n }\n switch (e.name) {\n case \"validForm\":\n if (updateAndValidAll(this.fg)) {\n if (this.options.submitConfirm()) {\n const subject = new Subject<boolean>();\n this.modal.confirm({\n nzTitle: \"确定提交吗?\",\n nzOnOk: () => {\n this.triggeEvents(\"formValid\", { ...e.tempDataSource, formValue: this.fg.value }, e.triggeEvents).subscribe(subject);\n },\n nzOnCancel: () => {\n subject.next(false);\n subject.complete();\n }\n });\n return subject.asObservable();\n } else {\n return this.triggeEvents(\"formValid\", { ...e.tempDataSource, formValue: this.fg.value }, e.triggeEvents);\n }\n }\n return of(false);\n case \"resetForm\":\n this.reset(true);\n return of(true);\n }\n return undefined;\n }\n\n}\n","<form [formGroup]=\"fg\" style=\"height: 100%;\" (keydown.enter)=\"$event.preventDefault()\">\n <ng-container [axisDynamic]=\"options.child()\"></ng-container>\n</form>","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './form';\n"],"names":[],"mappings":"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"}
@@ -43,7 +43,7 @@ class LoopTask extends Base {
43
43
  if (!Array.isArray(e.data?.loopTarget)) {
44
44
  return of(false);
45
45
  }
46
- this.startLoopTask(e.data?.loopTarget);
46
+ this.startLoopTask(e);
47
47
  return of(true);
48
48
  case "breakLoopTask":
49
49
  this.breakLoop();
@@ -51,17 +51,17 @@ class LoopTask extends Base {
51
51
  }
52
52
  return undefined;
53
53
  }
54
- startLoopTask(target) {
54
+ startLoopTask(e) {
55
55
  this.inProgress.set(true);
56
- this.target.set(target);
56
+ this.target.set(e.data?.loopTarget || []);
57
57
  this.completed.set(0);
58
- this.addSubscribe(of(...target).pipe(concatMap((item, index) => {
59
- return this.triggeEvents("taskLoop", { loopIndex: index, loopItem: item }).pipe(tap(() => {
58
+ this.addSubscribe(of(...this.target()).pipe(concatMap((item, index) => {
59
+ return this.triggeEvents("taskLoop", { ...e.tempDataSource, loopIndex: index, loopItem: item }).pipe(tap(() => {
60
60
  this.completed.set(index + 1);
61
61
  }));
62
62
  }), finalize(() => {
63
63
  this.inProgress.set(false);
64
- this.triggeEvents("loopTaskEnd", { completedCount: this.completed(), totalCount: this.target().length }).subscribe();
64
+ this.triggeEvents("loopTaskEnd", { ...e.tempDataSource, completedCount: this.completed(), totalCount: this.target().length }).subscribe();
65
65
  })).subscribe(), "task_loop");
66
66
  }
67
67
  breakLoop() {
@@ -1 +1 @@
1
- {"version":3,"file":"ngx-axis-appforge-axis-components-loop-task.mjs","sources":["../../../axis-components/loop-task/loop-task.options.ts","../../../axis-components/loop-task/loop-task.ts","../../../axis-components/loop-task/loop-task.html","../../../axis-components/loop-task/ngx-axis-appforge-axis-components-loop-task.ts"],"sourcesContent":["import { signal } from \"@angular/core\";\nimport { DataOptions } from \"ngx-axis-appforge/core\";\n\nexport class LoopTaskOptions extends DataOptions {\n readonly showProgress = signal(true);\n readonly progressTip = signal(\"执行中\");\n readonly userBreak = signal(true);\n}","import { ChangeDetectionStrategy, Component, computed, inject, signal } from '@angular/core';\nimport { Base, EventHandlerOptions } from 'ngx-axis-appforge/core';\nimport { LoopTaskOptions } from './loop-task.options';\nimport { NzProgressModule } from 'ng-zorro-antd/progress';\nimport { NzIconModule } from 'ng-zorro-antd/icon';\nimport { NzButtonModule } from 'ng-zorro-antd/button';\nimport { concatMap, finalize, Observable, of, tap } from 'rxjs';\nimport { NzMessageService } from 'ng-zorro-antd/message';\n\n@Component({\n selector: 'axis-loop-task-component',\n imports: [NzProgressModule, NzButtonModule, NzIconModule],\n templateUrl: './loop-task.html',\n styleUrl: './loop-task.css',\n host: {\n '[style.display]': 'options.showProgress()&&inProgress()?\"flex\":\"none\"'\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class LoopTask extends Base<LoopTaskOptions> {\n\n override options: LoopTaskOptions = new LoopTaskOptions();\n\n readonly inProgress = signal(false);\n readonly msg = inject(NzMessageService);\n private readonly completed = signal(0);\n private readonly target = signal<any[]>([]);\n readonly progress = computed(() => {\n if (this.target().length === 0) {\n return 0;\n }\n return Math.ceil((this.completed() * 100 / this.target().length))\n });\n\n override onEvents(e: EventHandlerOptions<any>): Observable<boolean> | undefined {\n const obs = super.onEvents?.(e);\n if (obs) {\n return;\n }\n switch (e.name) {\n case \"startLoopTask\":\n if (this.inProgress()) {\n this.msg.error(\"请勿重复操作\");\n return of(false);\n }\n if (!Array.isArray(e.data?.loopTarget)) {\n return of(false);\n }\n this.startLoopTask(e.data?.loopTarget);\n return of(true);\n case \"breakLoopTask\":\n this.breakLoop();\n return of(true);\n }\n return undefined;\n }\n\n private startLoopTask(target: any[]) {\n this.inProgress.set(true);\n this.target.set(target);\n this.completed.set(0);\n this.addSubscribe(of(...target).pipe(concatMap((item, index) => {\n return this.triggeEvents(\"taskLoop\", { loopIndex: index, loopItem: item }).pipe(tap(() => {\n this.completed.set(index + 1)\n }));\n }), finalize(() => {\n this.inProgress.set(false);\n this.triggeEvents(\"loopTaskEnd\", { completedCount: this.completed(), totalCount: this.target().length }).subscribe();\n })).subscribe(), \"task_loop\");\n }\n\n breakLoop() {\n this.unsubscribe([\"task_loop\"]);\n }\n\n}\n","@if(options.showProgress()){\n<div class=\"progress-box\">\n @if(options.userBreak()){\n <button style=\"position: absolute;right: 0;top: 0;\" nz-button nzSize=\"small\" nzType=\"text\" nzShape=\"circle\"\n (click)=\"breakLoop()\">\n <nz-icon nzType=\"close\"></nz-icon></button>\n }\n <nz-progress [nzPercent]=\"progress()\" [nzWidth]=\"60\" nzType=\"circle\"></nz-progress>\n @if (options.progressTip()) {\n <div>{{options.progressTip()}}</div>\n }\n</div>\n}","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './loop-task';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ngx-axis-appforge-axis-components-loop-task.mjs","sources":["../../../axis-components/loop-task/loop-task.options.ts","../../../axis-components/loop-task/loop-task.ts","../../../axis-components/loop-task/loop-task.html","../../../axis-components/loop-task/ngx-axis-appforge-axis-components-loop-task.ts"],"sourcesContent":["import { signal } from \"@angular/core\";\nimport { DataOptions } from \"ngx-axis-appforge/core\";\n\nexport class LoopTaskOptions extends DataOptions {\n readonly showProgress = signal(true);\n readonly progressTip = signal(\"执行中\");\n readonly userBreak = signal(true);\n}","import { ChangeDetectionStrategy, Component, computed, inject, signal } from '@angular/core';\nimport { Base, EventHandlerOptions } from 'ngx-axis-appforge/core';\nimport { LoopTaskOptions } from './loop-task.options';\nimport { NzProgressModule } from 'ng-zorro-antd/progress';\nimport { NzIconModule } from 'ng-zorro-antd/icon';\nimport { NzButtonModule } from 'ng-zorro-antd/button';\nimport { concatMap, finalize, Observable, of, tap } from 'rxjs';\nimport { NzMessageService } from 'ng-zorro-antd/message';\n\n@Component({\n selector: 'axis-loop-task-component',\n imports: [NzProgressModule, NzButtonModule, NzIconModule],\n templateUrl: './loop-task.html',\n styleUrl: './loop-task.css',\n host: {\n '[style.display]': 'options.showProgress()&&inProgress()?\"flex\":\"none\"'\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class LoopTask extends Base<LoopTaskOptions> {\n\n override options: LoopTaskOptions = new LoopTaskOptions();\n\n readonly inProgress = signal(false);\n readonly msg = inject(NzMessageService);\n private readonly completed = signal(0);\n private readonly target = signal<any[]>([]);\n readonly progress = computed(() => {\n if (this.target().length === 0) {\n return 0;\n }\n return Math.ceil((this.completed() * 100 / this.target().length))\n });\n\n override onEvents(e: EventHandlerOptions<any>): Observable<boolean> | undefined {\n const obs = super.onEvents?.(e);\n if (obs) {\n return;\n }\n switch (e.name) {\n case \"startLoopTask\":\n if (this.inProgress()) {\n this.msg.error(\"请勿重复操作\");\n return of(false);\n }\n if (!Array.isArray(e.data?.loopTarget)) {\n return of(false);\n }\n this.startLoopTask(e);\n return of(true);\n case \"breakLoopTask\":\n this.breakLoop();\n return of(true);\n }\n return undefined;\n }\n\n private startLoopTask(e: EventHandlerOptions<any>) {\n this.inProgress.set(true);\n this.target.set(e.data?.loopTarget || []);\n this.completed.set(0);\n this.addSubscribe(of(...this.target()).pipe(concatMap((item, index) => {\n return this.triggeEvents(\"taskLoop\", { ...e.tempDataSource, loopIndex: index, loopItem: item }).pipe(tap(() => {\n this.completed.set(index + 1)\n }));\n }), finalize(() => {\n this.inProgress.set(false);\n this.triggeEvents(\"loopTaskEnd\", { ...e.tempDataSource, completedCount: this.completed(), totalCount: this.target().length }).subscribe();\n })).subscribe(), \"task_loop\");\n }\n\n breakLoop() {\n this.unsubscribe([\"task_loop\"]);\n }\n\n}\n","@if(options.showProgress()){\n<div class=\"progress-box\">\n @if(options.userBreak()){\n <button style=\"position: absolute;right: 0;top: 0;\" nz-button nzSize=\"small\" nzType=\"text\" nzShape=\"circle\"\n (click)=\"breakLoop()\">\n <nz-icon nzType=\"close\"></nz-icon></button>\n }\n <nz-progress [nzPercent]=\"progress()\" [nzWidth]=\"60\" nzType=\"circle\"></nz-progress>\n @if (options.progressTip()) {\n <div>{{options.progressTip()}}</div>\n }\n</div>\n}","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './loop-task';\n"],"names":[],"mappings":"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"}