ngx-axis-appforge 0.0.38 → 0.0.40

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.
@@ -171,6 +171,7 @@ declare class Table extends Base<TableOptions> {
171
171
  filterFn?: any;
172
172
  } | undefined;
173
173
  }>;
174
+ readonly filedsFilterItemsCache: Map<string, Map<any, any>>;
174
175
  readonly rowActions: _angular_core.Signal<any[]>;
175
176
  readonly leaderFieldWidth: _angular_core.Signal<number>;
176
177
  readonly actionsFieldWidth: _angular_core.Signal<number>;
@@ -188,7 +189,7 @@ declare class Table extends Base<TableOptions> {
188
189
  private refreshScoll;
189
190
  currentPageDataChange(): void;
190
191
  onPageChange(): void;
191
- filterChange(field: string, event: any): void;
192
+ filterChange(field: string, value: any): void;
192
193
  sortChange(field: string, event: any): void;
193
194
  rowspan(field: string, index: number): number;
194
195
  onSelectedChange(): void;
@@ -0,0 +1,5 @@
1
+ import { DesignConfig } from 'ngx-axis-appforge/core';
2
+
3
+ declare const Config: DesignConfig;
4
+
5
+ export { Config };
@@ -0,0 +1,22 @@
1
+ import * as _angular_core from '@angular/core';
2
+ import { OnInit, OnDestroy } from '@angular/core';
3
+ import { BaseOptions, Base } from 'ngx-axis-appforge/core';
4
+
5
+ declare class TimerOptions extends BaseOptions {
6
+ readonly delay: _angular_core.WritableSignal<number | null>;
7
+ readonly interval: _angular_core.WritableSignal<number | null>;
8
+ }
9
+
10
+ declare class Timer extends Base<TimerOptions> implements OnInit, OnDestroy {
11
+ options: TimerOptions;
12
+ timer: any;
13
+ index: number;
14
+ ngOnInit(): void;
15
+ startDelay(callback?: () => void): void;
16
+ startInterval(): void;
17
+ ngOnDestroy(): void;
18
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<Timer, never>;
19
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<Timer, "axis-timer", never, {}, {}, never, never, true, never>;
20
+ }
21
+
22
+ export { Timer };
@@ -0,0 +1 @@
1
+ <?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1758097349403" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="12982" xmlns:xlink="http://www.w3.org/1999/xlink" width="256" height="256"><path d="M512 160A416 416 0 1 0 928 576 416.512 416.512 0 0 0 512 160z m0 768A352 352 0 1 1 864 576 352.448 352.448 0 0 1 512 928z" p-id="12983"></path><path d="M617.344 489.344L512 594.752 406.592 489.344a32 32 0 0 0-45.184 45.248l128 128a32 32 0 0 0 45.248 0l128-128a32 32 0 0 0-45.248-45.184zM959.936 288a32.064 32.064 0 0 0 31.68-36.8 263.296 263.296 0 0 0-73.024-145.92A277.056 277.056 0 0 0 700.416 32.192a32 32 0 0 0 7.168 63.616 210.56 210.56 0 0 1 165.888 54.912 198.528 198.528 0 0 1 54.912 110.08 31.936 31.936 0 0 0 31.552 27.2zM59.2 287.616a31.872 31.872 0 0 0 36.48-26.88 198.4 198.4 0 0 1 54.848-110.08 210.432 210.432 0 0 1 165.888-54.848 32 32 0 1 0 7.168-63.616 276.992 276.992 0 0 0-218.176 73.152 263.168 263.168 0 0 0-73.024 145.92 31.936 31.936 0 0 0 26.816 36.352z" p-id="12984"></path></svg>
@@ -61,14 +61,21 @@ class Form extends ValueAccess {
61
61
  }
62
62
  this.fg.setControl(opt.name, opt.control, { emitEvent: false });
63
63
  }
64
- if (this.oriFormValue?.[opt.name] === undefined && opt.initValue !== undefined) {
65
- this.oriValue = Object.assign({}, this.oriValue, { [opt.name]: opt.initValue });
66
- this.registeValueAccess?.({
67
- initValue: this.oriValue
68
- });
64
+ if (this.fg.dirty) {
65
+ if (opt.initValue !== undefined) {
66
+ this.fg.patchValue({ [opt.name]: opt.initValue });
67
+ }
69
68
  }
70
- if (!this.fg.dirty) {
71
- this.resetSubject.next(false);
69
+ else {
70
+ if (this.oriFormValue?.[opt.name] === undefined && opt.initValue !== undefined) {
71
+ this.oriValue = Object.assign({}, this.oriValue, { [opt.name]: opt.initValue });
72
+ this.registeValueAccess?.({
73
+ initValue: this.oriValue
74
+ });
75
+ }
76
+ if (!this.fg.dirty) {
77
+ this.resetSubject.next(false);
78
+ }
72
79
  }
73
80
  }
74
81
  reset(emitEvent = 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, OnInit } from '@angular/core';\nimport { AXIS_FORM_REGISTE_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})\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.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 if (!this.fg.dirty) {\n this.resetSubject.next(false);\n }\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\">\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, OnInit } from '@angular/core';\nimport { AXIS_FORM_REGISTE_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})\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 if (!this.fg.dirty) {\n this.resetSubject.next(false);\n }\n }\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\">\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":";;;;;;;;AAGM,MAAO,WAAY,SAAQ,kBAAkB,CAAA;AAEtC,IAAA,aAAa,GAAG,MAAM,CAAC,IAAI,yDAAC;AAC5B,IAAA,KAAK,GAAG,MAAM,CAAM,SAAS,iDAAC;AAE1C;;ACeK,MAAO,IAAK,SAAQ,WAAwB,CAAA;AAEhD,IAAA,WAAA,GAAA;AACE,QAAA,KAAK,EAAE;AACP,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,IAAG;AACnD,YAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;AACjB,YAAA,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;SACnB,CAAC,CAAC;QACH,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,CAAC;AAC7I,aAAA,SAAS,CAAC,SAAS,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;AACjD,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,IAAG;YACpD,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,EAAE;AAChC,YAAA,IAAI,CAAC,YAAY,CAAC,kBAAkB,EAAE,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,SAAS,EAAE;SAChF,CAAC,CAAC;;AAGI,IAAA,OAAO,GAAgB,IAAI,WAAW,EAAE;AAChC,IAAA,EAAE,GAAG,MAAM,CAAC,WAAW,CAAC;AACxB,IAAA,KAAK,GAAG,MAAM,CAAC,cAAc,CAAC;IACtC,EAAE,GAAqB,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC;AACzC,IAAA,YAAY;AACZ,IAAA,QAAQ;AACR,IAAA,YAAY,GAAG,IAAI,OAAO,EAAW;AAEpC,IAAA,UAAU,CAAC,KAAU,EAAA;AAC5B,QAAA,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC;AACvB,QAAA,IAAI,CAAC,YAAY,GAAG,KAAK;AACzB,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,YAAY;AACjC,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC;;AAGtB,IAAA,YAAY,CAAC,KAAU,EAAA;AAC9B,QAAA,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC;QACzB,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,KAAK,SAAS,EAAE;YAC1C,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE;AAC5C,YAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,YAAY;AACjC,YAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC;;;IAIjC,QAAQ,GAAA;QACN,IAAI,CAAC,kBAAkB,GAAG;AACxB,YAAA,OAAO,EAAE,CAAC,OAAwB,KAAI;AACpC,gBAAA,OAAO,iBAAiB,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,WAAW,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC;;AAEpE,SAAA,CAAC;;AAGJ,IAAA,eAAe,CAAC,GAA8B,EAAA;AAC5C,QAAA,IAAI,GAAG,CAAC,OAAO,EAAE;AACf,YAAA,MAAM,UAAU,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC;AACxC,YAAA,IAAI,UAAU,EAAE,KAAK,IAAI,SAAS,EAAE;gBAClC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC;;AAExC,YAAA,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;;AAEjE,QAAA,IAAI,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE;AACjB,YAAA,IAAI,GAAG,CAAC,SAAS,KAAK,SAAS,EAAE;AAC/B,gBAAA,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,SAAS,EAAE,CAAC;;;aAE9C;AACL,YAAA,IAAI,IAAI,CAAC,YAAY,GAAG,GAAG,CAAC,IAAI,CAAC,KAAK,SAAS,IAAI,GAAG,CAAC,SAAS,KAAK,SAAS,EAAE;gBAC9E,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,SAAS,EAAE,CAAC;gBAC/E,IAAI,CAAC,kBAAkB,GAAG;oBACxB,SAAS,EAAE,IAAI,CAAC;AACjB,iBAAA,CAAC;;AAEJ,YAAA,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE;AAClB,gBAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC;;;;IAKnC,KAAK,CAAC,SAAS,GAAG,KAAK,EAAA;AACrB,QAAA,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;QACtE,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE;AAC9C,YAAA,IAAI,CAAC,YAAY,CAAC,aAAa,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC,SAAS,EAAE;;QAExE,IAAI,CAAC,SAAS,EAAE;YACd,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,EAAE;AAChC,YAAA,IAAI,CAAC,YAAY,CAAC,kBAAkB,EAAE,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,SAAS,EAAE;;;AAI1E,IAAA,QAAQ,CAAC,CAA2B,EAAA;QAC3C,MAAM,GAAG,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC7B,IAAI,GAAG,EAAE;YACP;;AAEF,QAAA,QAAQ,CAAC,CAAC,IAAI;AACZ,YAAA,KAAK,WAAW;AACd,gBAAA,IAAI,iBAAiB,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE;AAC9B,oBAAA,IAAI,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE;AAChC,wBAAA,MAAM,OAAO,GAAG,IAAI,OAAO,EAAW;AACtC,wBAAA,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;AACjB,4BAAA,OAAO,EAAE,QAAQ;4BACjB,MAAM,EAAE,MAAK;gCACX,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,YAAY,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC;6BAChG;4BACD,UAAU,EAAE,MAAK;AACf,gCAAA,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;gCACnB,OAAO,CAAC,QAAQ,EAAE;;AAErB,yBAAA,CAAC;AACF,wBAAA,OAAO,OAAO,CAAC,YAAY,EAAE;;yBACxB;wBACL,OAAO,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,YAAY,CAAC;;;AAGvF,gBAAA,OAAO,EAAE,CAAC,KAAK,CAAC;AAClB,YAAA,KAAK,WAAW;AACd,gBAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;AAChB,gBAAA,OAAO,EAAE,CAAC,IAAI,CAAC;;AAEnB,QAAA,OAAO,SAAS;;uGAlHP,IAAI,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAJ,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,IAAI,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,WAAA,EAAA,SAAA,EAVJ;AACT,YAAA;AACE,gBAAA,OAAO,EAAE,+BAA+B;AACxC,gBAAA,UAAU,EAAE,CAAC,IAAU,KAAI;oBACzB,OAAO,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC;iBACvC;gBACD,IAAI,EAAE,CAAC,IAAI;AACZ;AACF,SAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECrBH,yGAEO,EAAA,MAAA,EAAA,CAAA,wBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDOK,mBAAmB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,8CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,0FAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,gBAAgB,0KAAE,aAAa,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;2FAcnD,IAAI,EAAA,UAAA,EAAA,CAAA;kBAhBhB,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,WAAW,EAAA,OAAA,EACZ,CAAC,mBAAmB,EAAE,gBAAgB,EAAE,aAAa,CAAC,EAAA,eAAA,EAG9C,uBAAuB,CAAC,MAAM,EAAA,SAAA,EACpC;AACT,wBAAA;AACE,4BAAA,OAAO,EAAE,+BAA+B;AACxC,4BAAA,UAAU,EAAE,CAAC,IAAU,KAAI;gCACzB,OAAO,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC;6BACvC;AACD,4BAAA,IAAI,EAAE,CAAA,IAAA;AACP;AACF,qBAAA,EAAA,QAAA,EAAA,yGAAA,EAAA,MAAA,EAAA,CAAA,wBAAA,CAAA,EAAA;;;AErBH;;AAEG;;;;"}
@@ -347,6 +347,7 @@ class Table extends Base {
347
347
  rowtotal = signal(0, ...(ngDevMode ? [{ debugName: "rowtotal" }] : []));
348
348
  pageIndex = model(1, ...(ngDevMode ? [{ debugName: "pageIndex" }] : []));
349
349
  fieldsControlsMap = computed(() => this.buildFieldControls(), ...(ngDevMode ? [{ debugName: "fieldsControlsMap" }] : []));
350
+ filedsFilterItemsCache = new Map();
350
351
  rowActions = computed(() => this.actionsFieldWidth() > 0 ? this.options.rowActions() : [], ...(ngDevMode ? [{ debugName: "rowActions" }] : []));
351
352
  leaderFieldWidth = computed(() => this.buildLeaderFieldWidth(), ...(ngDevMode ? [{ debugName: "leaderFieldWidth" }] : []));
352
353
  actionsFieldWidth = computed(() => this.buildActionsFieldWidth(), ...(ngDevMode ? [{ debugName: "actionsFieldWidth" }] : []));
@@ -382,17 +383,21 @@ class Table extends Base {
382
383
  for (const field of this.displayFields()) {
383
384
  res[field.field()] = {};
384
385
  if (field.filterAble()) {
385
- const valueMap = new Map();
386
- for (const row of this.displayData() ?? []) {
387
- valueMap.set(row[field.field()], row);
386
+ if (!this.filedsFilterItemsCache.has(field.field())) {
387
+ this.filedsFilterItemsCache.set(field.field(), new Map());
388
388
  }
389
- res[field.field()].filterItems = Array.from(valueMap.entries()).map(en => {
390
- let text = en[0];
391
- if (field.filterDisplayFn()) {
392
- text = this.getScope()?.runFnWithSnapshot(field.filterDisplayFn(), { value: en[0], row: en[1] });
389
+ const filterItemsCache = this.filedsFilterItemsCache.get(field.field());
390
+ for (const row of this.displayData() ?? []) {
391
+ const value = row[field.field()];
392
+ if (!filterItemsCache.has(value)) {
393
+ let text = value + "";
394
+ if (field.filterDisplayFn()) {
395
+ text = this.getScope()?.runFnWithSnapshot(field.filterDisplayFn(), { value: value, row: row });
396
+ }
397
+ filterItemsCache.set(value, { value, text });
393
398
  }
394
- return { text, value: en[0] };
395
- });
399
+ }
400
+ res[field.field()].filterItems = Array.from(filterItemsCache.values());
396
401
  res[field.field()].filterFn = (fd, row) => {
397
402
  if (fd instanceof Array) {
398
403
  return fd.includes(row[field.field()]);
@@ -471,7 +476,10 @@ class Table extends Base {
471
476
  currentPageDataChange() { }
472
477
  onPageChange() {
473
478
  }
474
- filterChange(field, event) {
479
+ filterChange(field, value) {
480
+ for (const item of this.filedsFilterItemsCache.get(field).values()) {
481
+ item.byDefault = value != null && (Array.isArray(value) ? value.includes(item.value) : item.value == value);
482
+ }
475
483
  }
476
484
  sortChange(field, event) {
477
485
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ngx-axis-appforge-axis-components-table.mjs","sources":["../../../axis-components/table/table.options.ts","../../../axis-components/table/select.ts","../../../axis-components/table/expand.ts","../../../axis-components/table/table-setter/table-setter.ts","../../../axis-components/table/table-setter/table-setter.html","../../../axis-components/table/table.ts","../../../axis-components/table/table.html","../../../axis-components/table/ngx-axis-appforge-axis-components-table.ts"],"sourcesContent":["import { signal } from \"@angular/core\";\nimport { DataOptions } from \"ngx-axis-appforge/core\";\n\nexport class TableOptions extends DataOptions {\n readonly keyField = signal(\"\");\n readonly showExpand = signal(false);\n readonly expandMode = signal<\"custom\" | \"tree\">(\"custom\");\n readonly treeChildrenFun = signal(\"\");\n readonly showTableTitleSet = signal(false);\n readonly tableSetCacheKey = signal(\"\");\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 actionsFieldWidth = signal<number | null>(null);\n readonly showCheckbox = signal(false);\n readonly singleCheck = signal(false);\n readonly checkboxLinkageForExpand = signal(false);\n readonly disableCheckboxFn = signal<string | undefined>(undefined);\n readonly enableRowClick = signal(false);\n readonly defaultSelectFirstRow = signal(false);\n readonly showTotal = signal(false);\n readonly totalTitle = signal(\"合计\");\n readonly showSubTotal = signal(false);\n readonly subTotalTitle = signal(\"小计\");\n readonly subTotalGroupLevel = signal(1);\n readonly showPagination = signal(true);\n readonly virtualScroll = signal(false);\n readonly virtualItemSize = signal(32);\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 pageParamsDataSourceName = signal(\"pageParams\");\n readonly exportParamsDataSourceName = signal(\"exportParams\");\n readonly exportFileName = signal(\"数据导出\");\n readonly exportBookType = signal(\"xlsx\");\n readonly importLimitLength = signal<number | null>(null);\n readonly importStartLine = signal(2);\n readonly importTemplateFileName = signal(\"数据导入模版\");\n readonly importExampleData = signal<any>([]);\n readonly fields = signal<any[]>([]);\n readonly rowActions = signal<any[]>([]);\n readonly expandRow = signal<any>(undefined);\n}\n\nexport class TableFieldOptions {\n readonly inuse = signal(true);\n readonly field = signal(\"unknown\");\n readonly title = signal(\"未命名\");\n readonly export = signal(false);\n readonly exportFlowChild = signal(true);\n readonly exportFn = signal<string | undefined>(undefined);\n readonly import = signal(false);\n readonly importRequired = signal(false);\n readonly importCellType = signal<\"text\" | \"number\">(\"text\");\n readonly importHelp = signal<string | undefined>(undefined);\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 filterDisplayFn = signal(\"\");\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 groupLevel = signal<number | null>(null);\n readonly totalAble = signal(false);\n readonly totalFn = signal<string | undefined>(undefined);\n readonly titleGroup = signal<string | undefined>(undefined);\n readonly child = signal<any>(undefined);\n}","import { computed, Signal, signal } from \"@angular/core\";\nimport { TableOptions } from \"./table.options\";\nimport { fn, ScopeDirective } from 'ngx-axis-appforge/core';\n\nexport class Select {\n\n constructor(private options: TableOptions, private displayData: Signal<any[] | null>, private scope: ScopeDirective | null, private onSelectedChange: () => void) { }\n\n readonly headerChecked = signal<\"checked\" | \"indeterminate\" | \"none\">(\"none\");\n setOfCheckedId = new Set();\n setOfIndeterminateId = new Set();\n setOfDisabledId = computed(() => this.buildDisabledId());\n\n private buildDisabledId(): Set<any> {\n if (this.options.disableCheckboxFn()) {\n const args = this.scope?.snapshotAll() ?? {};\n return new Set(this.displayData()?.filter(row => this.scope?.runFnWithSnapshot(this.options.disableCheckboxFn()!, Object.assign({}, args, { row })))\n .map(row => row[this.options.keyField()]));\n }\n return new Set<any>();\n }\n\n onAllChecked(checked: boolean) {\n this.displayData()?.filter(row => !this.setOfDisabledId().has(row[this.options.keyField()]))?.forEach(row => this.updateCheckedSet(row, checked));\n this.refreshCheckedStatus();\n }\n\n toggleChecked(row: any) {\n if (this.options.showCheckbox() && !this.setOfDisabledId().has(row[this.options.keyField()])) {\n this.onItemChecked(row, !this.setOfCheckedId.has(row[this.options.keyField()]));\n }\n }\n\n onItemChecked(row: any, checked: boolean): void {\n this.updateCheckedSet(row, checked);\n this.refreshCheckedStatus();\n }\n\n updateCheckedSet(row: any, checked: boolean): void {\n const key = row[this.options.keyField()];\n if (checked && !this.setOfCheckedId.has(key)) {\n if (this.options.singleCheck()) {\n this.setOfCheckedId.clear();\n }\n this.setOfCheckedId.add(key);\n } else if (!checked && this.setOfCheckedId.has(key)) {\n this.setOfCheckedId.delete(key);\n }\n }\n\n refreshCheckedStatus(): void {\n const listOfEnabledData = this.displayData()?.filter(row => !this.setOfDisabledId().has(row[this.options.keyField()])) ?? [];\n const checked = listOfEnabledData.length > 0 && listOfEnabledData.every(row => this.setOfCheckedId.has(row[this.options.keyField()]) && !this.setOfIndeterminateId.has(row[this.options.keyField()]));\n if (checked) {\n this.headerChecked.set(\"checked\");\n } else {\n const indeterminate = listOfEnabledData.some(row => this.setOfCheckedId.has(row[this.options.keyField()]) || this.setOfIndeterminateId.has(row[this.options.keyField()])) && !checked;\n this.headerChecked.set(indeterminate ? \"indeterminate\" : \"none\");\n }\n this.onSelectedChange?.();\n }\n\n getSelectedData(): any[] | undefined {\n return this.displayData()?.filter(row => this.setOfCheckedId.has(row[this.options.keyField()]));\n }\n}","import { fn, ScopeDirective } from \"ngx-axis-appforge/core\";\nimport { TableOptions } from \"./table.options\";\nimport { computed } from \"@angular/core\";\n\nexport class Expand {\n\n constructor(private options: TableOptions, private scope: ScopeDirective | null) {\n }\n\n readonly expandedSet = new Set();\n readonly nodeMap = computed(() => this.buildNodeMap());\n\n buildNodeMap(): Map<string, { level: number, node: any, children?: any[] }> {\n const nodeMap = new Map<string, any>();\n if (this.options.showExpand() && this.options.expandMode() == \"tree\") {\n this.options.data()?.forEach((row: any) => {\n this.buildNodeMapForRow(row, nodeMap);\n });\n }\n return nodeMap;\n }\n\n onExpandChange(key: any, checked: boolean): void {\n if (checked) {\n this.expandedSet.add(key);\n } else {\n this.expandedSet.delete(key);\n }\n }\n\n buildNodeMapForRow(row: any, nodeMap: Map<string, any>, parentLevel = 0) {\n const node: any = {\n level: parentLevel + 1,\n node: row,\n children: []\n };\n nodeMap.set(row[this.options.keyField()], node)\n if (this.options.showExpand() && this.options.expandMode() == \"tree\") {\n let children: any[];\n if (this.options.treeChildrenFun()) {\n children = this.scope?.runFnWithSnapshot(this.options.treeChildrenFun(), { row })\n } else {\n children = row.children;\n }\n if (children?.length) {\n node.children = children;\n children.forEach(child => {\n this.buildNodeMapForRow(child, nodeMap, node.level);\n });\n }\n }\n }\n\n getListForExpanded(row: any): any[] {\n const key = row[this.options.keyField()];\n let res = [row];\n if (this.options.showExpand() && this.options.expandMode() == \"tree\" && this.nodeMap().get(key)?.children?.length && this.expandedSet.has(key)) {\n res = res.concat(this.nodeMap().get(key)!.children)\n }\n return res;\n }\n}","import { ChangeDetectionStrategy, Component, effect, input, model, OnDestroy, output, signal } from '@angular/core';\nimport { NzButtonModule } from 'ng-zorro-antd/button';\nimport { NzGridModule } from 'ng-zorro-antd/grid';\nimport { NzIconModule } from 'ng-zorro-antd/icon';\nimport { NzModalModule } from 'ng-zorro-antd/modal';\nimport { CdkDrag, CdkDragDrop, CdkDropList, moveItemInArray, transferArrayItem } from '@angular/cdk/drag-drop';\nimport { TableFieldOptions } from '../table.options';\nimport { NzResizeEvent } from 'ng-zorro-antd/resizable';\nimport { debounceTime, Subject, Subscription } from 'rxjs';\n\n\n@Component({\n selector: 'axis-table-setter',\n imports: [NzIconModule, NzButtonModule, NzModalModule, NzGridModule, CdkDrag, CdkDropList],\n templateUrl: './table-setter.html',\n styleUrl: './table-setter.css',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class TableSetter implements OnDestroy {\n\n constructor() {\n effect(() => this.buildFixAndNotFixColumn());\n effect(() => this.onChange.emit(this.fix()));\n this.sub = this.saveCacheSubject.pipe(debounceTime(200)).subscribe(v => this.saveCache());\n }\n\n readonly fields = input.required<TableFieldOptions[]>();\n readonly cacheKey = input<string>();\n readonly onChange = output<TableFieldOptions[]>();\n\n readonly modalVisible = model(false);\n readonly fix = signal<TableFieldOptions[]>([]);\n readonly notFix = signal<TableFieldOptions[]>([]);\n\n saveCacheSubject = new Subject<void>();\n cache: { fix: string[], notFix: string[], widths: { [field: string]: number } } = { fix: [], notFix: [], widths: {} };\n sub?: Subscription;\n\n private buildFixAndNotFixColumn(): void {\n this.loadCache();\n if (this.cache) {\n const fieldMap = new Map<string, TableFieldOptions>();\n for (const f of this.fields()) {\n fieldMap.set(f.field(), f);\n if (this.cache.widths.hasOwnProperty(f.field())) {\n f.width.set(this.cache.widths[f.field()]);\n }\n }\n this.fix.set(this.cache.fix.filter(f => fieldMap.has(f)).map(f => fieldMap.get(f)!)\n .concat(this.fields().filter(f => !this.cache!.fix.includes(f.field()) && !this.cache!.notFix.includes(f.field()))));\n this.notFix.set(this.cache.notFix.filter(f => fieldMap.has(f)).map(f => fieldMap.get(f)!));\n } else {\n this.fix.set(this.fields());\n }\n }\n\n private loadCache() {\n if (this.cacheKey()) {\n const cacheStr = localStorage.getItem(this.cacheKey()!);\n if (cacheStr) {\n try {\n this.cache = JSON.parse(cacheStr);\n } catch (_) { }\n }\n }\n }\n\n private saveCache() {\n if (this.cacheKey()) {\n localStorage.setItem(this.cacheKey()!, JSON.stringify(this.cache));\n }\n }\n\n private updateFix(): void {\n this.fix.set([...this.fix()]);\n this.notFix.set([...this.notFix()]);\n if (this.cacheKey()) {\n this.cache.fix = this.fix().map(f => f.field());\n this.cache.notFix = this.notFix().map(f => f.field());\n this.saveCache();\n }\n }\n\n drop(event: CdkDragDrop<TableFieldOptions[], any, any>): void {\n if (event.previousContainer === event.container) {\n moveItemInArray(event.container.data, event.previousIndex, event.currentIndex);\n } else {\n transferArrayItem(event.previousContainer.data, event.container.data, event.previousIndex, event.currentIndex);\n }\n this.updateFix();\n }\n\n deleteCustom(index: number): void {\n transferArrayItem(this.fix(), this.notFix(), index, this.notFix().length);\n this.updateFix();\n }\n\n addCustom(index: number): void {\n transferArrayItem(this.notFix(), this.fix(), index, this.fix().length);\n this.updateFix();\n }\n\n onResize(field: TableFieldOptions, event: NzResizeEvent) {\n field.width.set(event.width ?? null);\n this.cache.widths[field.field()] = event.width!;\n this.saveCacheSubject.next();\n }\n\n resetDefault() {\n this.fix.set(this.fields());\n this.notFix.set([]);\n if (this.cacheKey()) {\n localStorage.removeItem(this.cacheKey()!);\n }\n }\n\n ngOnDestroy(): void {\n this.sub?.unsubscribe();\n this.saveCacheSubject.unsubscribe();\n }\n}","<a nz-button nzType=\"link\" nzSize=\"small\" (click)=\"modalVisible.set(true)\" style=\"margin: 2px;\">\n <nz-icon nzType=\"setting\" nzTheme=\"outline\" />\n</a>\n<nz-modal [(nzVisible)]=\"modalVisible\" nzTitle=\"表头设置\" nzDraggable [nzOkText]=\"null\" nzCancelText=\"关闭\"\n (nzOnCancel)=\"modalVisible.set(false)\">\n <ng-container *nzModalContent>\n <div nz-row [nzGutter]=\"24\">\n <div nz-col class=\"gutter-row\" [nzSpan]=\"12\">\n <div class=\"container\">\n <p>展示字段<a nz-button nzType=\"link\" (click)=\"resetDefault()\">恢复默认</a></p>\n <div cdkDropList #todoList=\"cdkDropList\" [cdkDropListData]=\"fix()\"\n [cdkDropListConnectedTo]=\"[doneList]\" class=\"list\" (cdkDropListDropped)=\"drop($event)\">\n @for (item of fix(); track item; let i = $index) {\n <div class=\"box\" cdkDrag>\n {{ item.title() }}\n <nz-icon nzType=\"minus-circle\" nzTheme=\"outline\" (click)=\"deleteCustom(i)\" />\n </div>\n }\n </div>\n </div>\n </div>\n <div nz-col class=\"gutter-row\" [nzSpan]=\"12\">\n <div class=\"container\">\n <p>隐藏字段</p>\n <div cdkDropList #doneList=\"cdkDropList\" [cdkDropListData]=\"notFix()\"\n [cdkDropListConnectedTo]=\"[todoList]\" class=\"list\" (cdkDropListDropped)=\"drop($event)\">\n @for (item of notFix(); track item; let i = $index) {\n <div class=\"box\" cdkDrag>\n {{ item.title() }}\n <nz-icon nzType=\"plus-circle\" nzTheme=\"outline\" (click)=\"addCustom(i)\" />\n </div>\n }\n </div>\n </div>\n </div>\n </div>\n </ng-container>\n</nz-modal>","import { ChangeDetectionStrategy, Component, computed, effect, ElementRef, model, signal, ViewChild } from '@angular/core';\nimport { TableFieldOptions, TableOptions } from './table.options';\nimport { Base, DynamicDirective, ScopeDirective } from 'ngx-axis-appforge/core';\nimport { NzTableFilterList, NzTableModule } from 'ng-zorro-antd/table';\nimport { FormsModule } from '@angular/forms';\nimport { CommonModule } from '@angular/common';\nimport { Select } from './select';\nimport { Expand } from './expand';\nimport { TableSetter } from './table-setter/table-setter';\nimport { NzResizableModule } from 'ng-zorro-antd/resizable';\nimport { NzFlexModule } from 'ng-zorro-antd/flex';\n\n\n@Component({\n selector: 'axis-table',\n imports: [NzTableModule, ScopeDirective, DynamicDirective, FormsModule, CommonModule, TableSetter, NzResizableModule, NzFlexModule],\n templateUrl: './table.html',\n styleUrl: './table.css',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class Table extends Base<TableOptions> {\n\n constructor(private elementRef: ElementRef) {\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 clearInterval(this.timer);\n this.refreshScoll();\n if (this.options.heightExpanded()) {\n this.timer = setInterval(() => {\n this.refreshScoll();\n }, 500);\n }\n });\n }\n\n override options: TableOptions = new TableOptions();\n\n readonly displayData = computed(() => this.buildDisplayData());\n select = new Select(this.options, this.displayData, this.getScope(), () => this.onSelectedChange());\n expand = new Expand(this.options, this.getScope());\n readonly pageSizeOptions = computed(() => this.options.pageSizeOptions().split(\",\").map(size => +size));\n readonly scroll = signal<{ x: string, y: string }>({ x: \"\", y: \"\" });\n readonly fields = computed(() => this.buildFields());\n readonly displayFields = computed(() => this.buildDisplayFields());\n readonly rowtotal = signal<number>(0);\n readonly pageIndex = model<number>(1);\n readonly fieldsControlsMap = computed(() => this.buildFieldControls());\n readonly rowActions = computed(() => this.actionsFieldWidth() > 0 ? this.options.rowActions() : []);\n readonly leaderFieldWidth = computed(() => this.buildLeaderFieldWidth());\n readonly actionsFieldWidth = computed(() => this.buildActionsFieldWidth());\n readonly fixFields = signal<TableFieldOptions[]>([]);\n timer?: number;\n\n resizeHandleOffsetX(field: TableFieldOptions): number {\n if (field.sortAble() && field.filterAble()) {\n return 42;\n } else if (field.sortAble()) {\n return 22;\n } else if (field.filterAble()) {\n return 28;\n }\n return 0;\n }\n\n @ViewChild(TableSetter)\n tableSetter?: TableSetter;\n\n trackByKeyField = (i: number, data: any): any => {\n return data[this.options.keyField()];\n }\n\n private buildDisplayData(): any[] | null {\n return this.options.data();\n }\n\n private buildFields(): TableFieldOptions[] {\n return this.options.fields().map(opt => new TableFieldOptions());\n }\n\n private buildDisplayFields(): TableFieldOptions[] {\n return (this.options.showTableTitleSet() ? this.fixFields() : this.fields()).filter(f => f.inuse());\n }\n\n private buildFieldControls(): { [field: string]: { sortFn?: any, filterItems?: NzTableFilterList, filterFn?: any } | undefined } {\n const res: { [field: string]: { sortFn?: any, filterItems?: NzTableFilterList, filterFn?: any } } = {};\n for (const field of this.displayFields()) {\n res[field.field()] = {};\n if (field.filterAble()) {\n const valueMap = new Map<any, any>();\n for (const row of this.displayData() ?? []) {\n valueMap.set(row[field.field()], row);\n }\n res[field.field()].filterItems = Array.from(valueMap.entries()).map(en => {\n let text = en[0];\n if (field.filterDisplayFn()) {\n text = this.getScope()?.runFnWithSnapshot(field.filterDisplayFn(), { value: en[0], row: en[1] });\n }\n return { text, value: en[0] };\n });\n res[field.field()].filterFn = (fd: any[] | any, row: any) => {\n if (fd instanceof Array) {\n return fd.includes(row[field.field()]);\n } else {\n return fd == row[field.field()];\n }\n };\n }\n if (field.sortAble()) {\n if (this.options.data()?.some((r: any) => r[field.field()] != undefined && typeof (r[field.field()]) == \"number\")) {\n res[field.field()].sortFn = (a: any, b: any) => a[field.field()] - b[field.field()];\n } else {\n res[field.field()].sortFn = (a: any, b: any) => {\n return ((a[field.field()] || \"\") + \"\").localeCompare(b[field.field()])\n };\n }\n }\n }\n return res;\n }\n\n private buildLeaderFieldWidth(): number {\n switch (this.options.size()) {\n case \"small\":\n return 45;\n case \"middle\":\n return 50;\n default:\n return 65;\n }\n }\n\n private buildActionsFieldWidth(): number {\n if (this.options.actionsFieldWidth() == 0 || this.options.rowActions().length == 0) {\n return 0;\n }\n return this.options.actionsFieldWidth() ?? this.options.rowActions().length * 45 + 16;\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.leaderFieldWidth();\n }\n if (this.options.showExpand()) {\n x += this.leaderFieldWidth();\n }\n if (this.options.showOrder()) {\n x += this.leaderFieldWidth();\n }\n this.displayFields().forEach(f => {\n if (f.width()) {\n x += f.width()!;\n } else {\n x += 120;\n }\n });\n x += this.actionsFieldWidth();\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 if (headRect) {\n // y = 视口高度(window.innerHeight) - 表头底部位置(headRect.bottom) - 表尾部高度(outterTableRect.bottom - innerTableRect.bottom)\n y = `${window.innerHeight - (headRect?.bottom ?? 0) - (outterTableRect?.bottom ?? 0) + (innerTableRect?.bottom ?? 0)}px`;\n }\n }\n this.scroll.set({ x: x + \"px\", y: y });\n }\n\n currentPageDataChange() { }\n\n onPageChange() {\n }\n\n filterChange(field: string, event: any) {\n\n }\n sortChange(field: string, event: any) {\n\n }\n\n rowspan(field: string, index: number): number {\n return 1;\n }\n\n onSelectedChange() {\n if (this.hasEventHandler(\"onSelectedChange\")) {\n this.triggeEvents(\"onSelectedChange\", { selectedRows: this.select.getSelectedData() }).subscribe();\n }\n }\n\n override ngOnDestroy(): void {\n super.ngOnDestroy();\n clearInterval(this.timer);\n }\n}\n","@if (options.showTableTitleSet()) {\n<axis-table-setter [fields]=\"fields()\" [cacheKey]=\"options.tableSetCacheKey()\"\n (onChange)=\"fixFields.set($event)\"></axis-table-setter>\n}\n<nz-table #table [nzSize]=\"options.size()\" [nzData]=\"displayData()??[]\" [nzLoading]=\"!displayData()\"\n [nzBordered]=\"options.bordered()\" [nzOuterBordered]=\"options.outerBordered()\"\n [nzShowPagination]=\"options.showPagination()\"\n [nzFrontPagination]=\"options.showPagination() && !options.useBackEndPaging()\" [nzTotal]=\"rowtotal()\"\n [nzPageSize]=\"options.pageSize()\" [nzShowSizeChanger]=\"options.showSizeChanger()\"\n [nzPageSizeOptions]=\"pageSizeOptions()\" [nzShowTotal]=\"options.showDataSize()?totalRange:null\" [nzScroll]=\"scroll()\"\n (nzCurrentPageDataChange)=\"currentPageDataChange()\" (nzPageIndexChange)=\"onPageChange()\"\n (nzPageSizeChange)=\"onPageChange()\" [(nzPageIndex)]=\"pageIndex\" [nzVirtualItemSize]=\"options.virtualItemSize()\"\n [nzVirtualForTrackBy]=\"trackByKeyField\">\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\" [nzWidth]=\"leaderFieldWidth()-10+'px'\">\n </th>\n }@else {\n <th nzLeft [nzWidth]=\"leaderFieldWidth()-10+'px'\"></th>\n }\n }\n @if (options.showExpand()) {\n <th nzLeft nzAlign=\"center\" [nzWidth]=\"leaderFieldWidth()-15+'px'\"></th>\n }\n @if (options.showOrder()) {\n <th nzAlign=\"center\" [nzWidth]=\"leaderFieldWidth()+'px'\">序号</th>\n }\n @for (f of displayFields(); track f.field()) {\n <th [attr.data-field]=\"f.field()\" nz-resizable nzBounds=\"window\"\n [nzDisabled]=\"!options.showTableTitleSet() || !f.width()\"\n [nzWidth]=\"f.width() == null ?null:f.width()+'px'\" (nzResize)=\"tableSetter?.onResize(f,$event)\"\n [nzShowSort]=\"f.sortAble()\" [nzSortFn]=\"fieldsControlsMap()[f.field()]?.sortFn\"\n [nzSortOrder]=\"f.sortOrder()\" [nzSortPriority]=\"f.sortPriority()??false\"\n [nzShowFilter]=\"f.filterAble() && !options.useBackEndPaging()\"\n [nzFilters]=\"fieldsControlsMap()[f.field()]?.filterItems ?? []\"\n [nzFilterFn]=\"fieldsControlsMap()[f.field()]?.filterFn\"\n (nzFilterChange)=\"filterChange(f.field(),$event)\" [nzFilterMultiple]=\"f.filterMultiple()\"\n [nzAlign]=\"f.align()\" [nzLeft]=\"f.freezeMode()=='left'\" [nzRight]=\"f.freezeMode()=='right'\"\n (nzSortOrderChange)=\"sortChange(f.field(),$event)\">\n <span>\n {{f.title()}}\n @if(options.showTableTitleSet()){\n <nz-resize-handle [style.transform]=\"`translateX(${resizeHandleOffsetX(f)}px)`\" nzDirection=\"right\"\n (click)=\"$event.stopPropagation()\">\n <div class=\"resize-trigger\"></div>\n </nz-resize-handle>\n }\n </span>\n </th>\n }\n @if (rowActions().length)\n {\n <th nzRight nzAlign=\"center\" [nzWidth]=\"actionsFieldWidth()+'px'\" data-rowactions>操作</th>\n }\n </tr>\n </thead>\n <tbody>\n @if (!options.showPagination() && options.virtualScroll()) {\n <ng-template nz-virtual-scroll let-data let-i=\"index\">\n </ng-template>\n }@else {\n @for (trow of table.data; track $index;let i=$index) {\n @for (data of expand.getListForExpanded(trow); track $index) {\n <tr [axisScope]=\"options.id+'.row'\" scopeName=\"表格行\" [dataSources]=\"[{name:'row',type:'local',data:data}]\">\n @if (options.showCheckbox()) {\n <td nzLeft [nzChecked]=\"select.setOfCheckedId.has(data[options.keyField()])\"\n [nzIndeterminate]=\"select.setOfIndeterminateId.has(data[options.keyField()])\"\n [nzDisabled]=\"select.setOfDisabledId().has(data[options.keyField()])\"\n (nzCheckedChange)=\"select.onItemChecked(data, $event)\" nzAlign=\"center\"></td>\n }\n @if (options.showExpand()) {\n @if(options.expandMode() == \"tree\" && !expand.nodeMap().get(data[options.keyField()])?.children?.length){\n <td nzLeft></td>\n }@else{\n <td nzLeft [nzExpand]=\"expand.expandedSet.has(data[options.keyField()])\"\n (nzExpandChange)=\"expand.onExpandChange(data[options.keyField()],$event)\"></td>\n }\n }\n @if (options.showOrder()) {\n <td nzAlign=\"center\">{{(table.nzPageIndex-1) * table.nzPageSize + i+1}}</td>\n }\n @for (f of displayFields(); track f.field()) {\n @if (rowspan(f.field(),i)) {\n <td [attr.rowspan]=\"rowspan(f.field(),i)\" [nzLeft]=\"f.freezeMode()=='left'\" [attr.data-field]=\"f.field()\"\n [nzRight]=\"f.freezeMode()=='right'\" [nzAlign]=\"f.align()\">\n @if (f.child()) {\n <ng-container [axisDynamic]=\"f.child()\"></ng-container>\n }@else {\n {{data[f.field()]}}\n }\n </td>\n }\n }\n @if (rowActions().length) {\n <td nzRight>\n <div nz-flex nzJustify=\"space-evenly\" data-rowactions>\n @for (a of rowActions(); track a.id) {\n <ng-container [axisDynamic]=\"a\"></ng-container>\n }\n </div>\n </td>\n }\n </tr>\n }\n @if (options.showExpand() && options.expandMode() == \"custom\") {\n <tr [axisScope]=\"options.id+'.row'\" scopeName=\"表格行\" [dataSources]=\"[{name:'row',type:'local',data:trow}]\"\n [nzExpand]=\"expand.expandedSet.has(trow[options.keyField()])\" data-expandrow>\n <ng-container [axisDynamic]=\"options.expandRow()\"></ng-container>\n </tr>\n }\n <!-- @if (showSubTotal() && subTotalGroupField() && subTotalMap[i]) {\n <tr>\n @if (options.showCheckbox()) {\n <td nzLeft></td>\n }\n @if (options.showExpand()) {\n <td nzLeft></td>\n }\n @if (options.showOrder()) {\n <td></td>\n }\n @for (f of displayFields(); track f.field()) {\n @if (f.groupLevel && f.groupLevel! == subTotalGroupField.groupLevel!) {\n <td nzAlign=\"right\" [nzLeft]=\"f.freezeMode=='left'\" [nzRight]=\"f.freezeMode=='right'\">\n <b>{{options.subTotalTitle() || \"小计\"}}</b>\n </td>\n }\n @if(!f.groupLevel || f.groupLevel! > subTotalGroupField.groupLevel!) {\n <td [nzLeft]=\"f.freezeMode=='left'\" [nzRight]=\"f.freezeMode=='right'\">\n @if (f.totalAble) {\n <div [class]=\"'td-box-'+(f.align || 'center')\">\n <b>\n @if (f.child()) {\n @if (f.injectBy() == \"data\") {\n <ng-container [axisDynamic]=\"f.child()\"></ng-container>\n }@else{\n <ng-container [axisDynamic]=\"f.child()\" [ngModel]=\"subTotalMap[i][f.field]\"></ng-container>\n }\n }@else {\n {{subTotalMap[i][f.field]}}\n }\n </b>\n </div>\n }\n </td>\n }\n }\n <td *ngIf=\"rowActions?.length\" nzRight></td>\n </tr>\n } -->\n }\n }\n <!-- @if (showTotal && displayData?.length) {\n <tr class=\"total-row\">\n @if (options.showCheckbox()) {\n <td nzLeft></td>\n }\n @if (options.showExpand()) {\n <td nzLeft></td>\n }\n <td nzAlign=\"right\" [nzLeft]=\"!options.showOrder() && displayFields[0].freezeMode=='left'\"\n [nzRight]=\"!options.showOrder() && displayFields[0].freezeMode=='right'\"><b>{{options.totalTitle() ||\n \"合计\"}}</b></td>\n @for (f of displayFields()|slice:(options.showOrder()?0:1); track f.field()) {\n <td [nzLeft]=\"f.freezeMode=='left'\" [nzRight]=\"f.freezeMode=='right'\">\n @if (f.totalAble()) {\n <div [class]=\"'td-box-'+(f.align || 'center')\">\n <b>\n @if (f.child()) {\n @if (f.injectBy() == \"data\") {\n <ng-container [axisDynamic]=\"f.child()\"></ng-container>\n }@else{\n <ng-container [axisDynamic]=\"f.child()\" [ngModel]=\"totalMap[f.field]\"></ng-container>\n }\n }@else {\n {{totalMap[f.field]}}\n }\n </b>\n </div>\n }\n </td>\n }\n @if (rowActions()?.length) {\n <td nzRight></td>\n }\n </tr>\n } -->\n </tbody>\n <ng-template #totalRange let-range=\"range\" let-total>\n 共{{ total }}条数据,第{{ range[0] }}-{{ range[1] }}条\n </ng-template>\n</nz-table>","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './table';\n"],"names":["i3"],"mappings":"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"}
1
+ {"version":3,"file":"ngx-axis-appforge-axis-components-table.mjs","sources":["../../../axis-components/table/table.options.ts","../../../axis-components/table/select.ts","../../../axis-components/table/expand.ts","../../../axis-components/table/table-setter/table-setter.ts","../../../axis-components/table/table-setter/table-setter.html","../../../axis-components/table/table.ts","../../../axis-components/table/table.html","../../../axis-components/table/ngx-axis-appforge-axis-components-table.ts"],"sourcesContent":["import { signal } from \"@angular/core\";\nimport { DataOptions } from \"ngx-axis-appforge/core\";\n\nexport class TableOptions extends DataOptions {\n readonly keyField = signal(\"\");\n readonly showExpand = signal(false);\n readonly expandMode = signal<\"custom\" | \"tree\">(\"custom\");\n readonly treeChildrenFun = signal(\"\");\n readonly showTableTitleSet = signal(false);\n readonly tableSetCacheKey = signal(\"\");\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 actionsFieldWidth = signal<number | null>(null);\n readonly showCheckbox = signal(false);\n readonly singleCheck = signal(false);\n readonly checkboxLinkageForExpand = signal(false);\n readonly disableCheckboxFn = signal<string | undefined>(undefined);\n readonly enableRowClick = signal(false);\n readonly defaultSelectFirstRow = signal(false);\n readonly showTotal = signal(false);\n readonly totalTitle = signal(\"合计\");\n readonly showSubTotal = signal(false);\n readonly subTotalTitle = signal(\"小计\");\n readonly subTotalGroupLevel = signal(1);\n readonly showPagination = signal(true);\n readonly virtualScroll = signal(false);\n readonly virtualItemSize = signal(32);\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 pageParamsDataSourceName = signal(\"pageParams\");\n readonly exportParamsDataSourceName = signal(\"exportParams\");\n readonly exportFileName = signal(\"数据导出\");\n readonly exportBookType = signal(\"xlsx\");\n readonly importLimitLength = signal<number | null>(null);\n readonly importStartLine = signal(2);\n readonly importTemplateFileName = signal(\"数据导入模版\");\n readonly importExampleData = signal<any>([]);\n readonly fields = signal<any[]>([]);\n readonly rowActions = signal<any[]>([]);\n readonly expandRow = signal<any>(undefined);\n}\n\nexport class TableFieldOptions {\n readonly inuse = signal(true);\n readonly field = signal(\"unknown\");\n readonly title = signal(\"未命名\");\n readonly export = signal(false);\n readonly exportFlowChild = signal(true);\n readonly exportFn = signal<string | undefined>(undefined);\n readonly import = signal(false);\n readonly importRequired = signal(false);\n readonly importCellType = signal<\"text\" | \"number\">(\"text\");\n readonly importHelp = signal<string | undefined>(undefined);\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 filterDisplayFn = signal(\"\");\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 groupLevel = signal<number | null>(null);\n readonly totalAble = signal(false);\n readonly totalFn = signal<string | undefined>(undefined);\n readonly titleGroup = signal<string | undefined>(undefined);\n readonly child = signal<any>(undefined);\n}","import { computed, Signal, signal } from \"@angular/core\";\nimport { TableOptions } from \"./table.options\";\nimport { fn, ScopeDirective } from 'ngx-axis-appforge/core';\n\nexport class Select {\n\n constructor(private options: TableOptions, private displayData: Signal<any[] | null>, private scope: ScopeDirective | null, private onSelectedChange: () => void) { }\n\n readonly headerChecked = signal<\"checked\" | \"indeterminate\" | \"none\">(\"none\");\n setOfCheckedId = new Set();\n setOfIndeterminateId = new Set();\n setOfDisabledId = computed(() => this.buildDisabledId());\n\n private buildDisabledId(): Set<any> {\n if (this.options.disableCheckboxFn()) {\n const args = this.scope?.snapshotAll() ?? {};\n return new Set(this.displayData()?.filter(row => this.scope?.runFnWithSnapshot(this.options.disableCheckboxFn()!, Object.assign({}, args, { row })))\n .map(row => row[this.options.keyField()]));\n }\n return new Set<any>();\n }\n\n onAllChecked(checked: boolean) {\n this.displayData()?.filter(row => !this.setOfDisabledId().has(row[this.options.keyField()]))?.forEach(row => this.updateCheckedSet(row, checked));\n this.refreshCheckedStatus();\n }\n\n toggleChecked(row: any) {\n if (this.options.showCheckbox() && !this.setOfDisabledId().has(row[this.options.keyField()])) {\n this.onItemChecked(row, !this.setOfCheckedId.has(row[this.options.keyField()]));\n }\n }\n\n onItemChecked(row: any, checked: boolean): void {\n this.updateCheckedSet(row, checked);\n this.refreshCheckedStatus();\n }\n\n updateCheckedSet(row: any, checked: boolean): void {\n const key = row[this.options.keyField()];\n if (checked && !this.setOfCheckedId.has(key)) {\n if (this.options.singleCheck()) {\n this.setOfCheckedId.clear();\n }\n this.setOfCheckedId.add(key);\n } else if (!checked && this.setOfCheckedId.has(key)) {\n this.setOfCheckedId.delete(key);\n }\n }\n\n refreshCheckedStatus(): void {\n const listOfEnabledData = this.displayData()?.filter(row => !this.setOfDisabledId().has(row[this.options.keyField()])) ?? [];\n const checked = listOfEnabledData.length > 0 && listOfEnabledData.every(row => this.setOfCheckedId.has(row[this.options.keyField()]) && !this.setOfIndeterminateId.has(row[this.options.keyField()]));\n if (checked) {\n this.headerChecked.set(\"checked\");\n } else {\n const indeterminate = listOfEnabledData.some(row => this.setOfCheckedId.has(row[this.options.keyField()]) || this.setOfIndeterminateId.has(row[this.options.keyField()])) && !checked;\n this.headerChecked.set(indeterminate ? \"indeterminate\" : \"none\");\n }\n this.onSelectedChange?.();\n }\n\n getSelectedData(): any[] | undefined {\n return this.displayData()?.filter(row => this.setOfCheckedId.has(row[this.options.keyField()]));\n }\n}","import { fn, ScopeDirective } from \"ngx-axis-appforge/core\";\nimport { TableOptions } from \"./table.options\";\nimport { computed } from \"@angular/core\";\n\nexport class Expand {\n\n constructor(private options: TableOptions, private scope: ScopeDirective | null) {\n }\n\n readonly expandedSet = new Set();\n readonly nodeMap = computed(() => this.buildNodeMap());\n\n buildNodeMap(): Map<string, { level: number, node: any, children?: any[] }> {\n const nodeMap = new Map<string, any>();\n if (this.options.showExpand() && this.options.expandMode() == \"tree\") {\n this.options.data()?.forEach((row: any) => {\n this.buildNodeMapForRow(row, nodeMap);\n });\n }\n return nodeMap;\n }\n\n onExpandChange(key: any, checked: boolean): void {\n if (checked) {\n this.expandedSet.add(key);\n } else {\n this.expandedSet.delete(key);\n }\n }\n\n buildNodeMapForRow(row: any, nodeMap: Map<string, any>, parentLevel = 0) {\n const node: any = {\n level: parentLevel + 1,\n node: row,\n children: []\n };\n nodeMap.set(row[this.options.keyField()], node)\n if (this.options.showExpand() && this.options.expandMode() == \"tree\") {\n let children: any[];\n if (this.options.treeChildrenFun()) {\n children = this.scope?.runFnWithSnapshot(this.options.treeChildrenFun(), { row })\n } else {\n children = row.children;\n }\n if (children?.length) {\n node.children = children;\n children.forEach(child => {\n this.buildNodeMapForRow(child, nodeMap, node.level);\n });\n }\n }\n }\n\n getListForExpanded(row: any): any[] {\n const key = row[this.options.keyField()];\n let res = [row];\n if (this.options.showExpand() && this.options.expandMode() == \"tree\" && this.nodeMap().get(key)?.children?.length && this.expandedSet.has(key)) {\n res = res.concat(this.nodeMap().get(key)!.children)\n }\n return res;\n }\n}","import { ChangeDetectionStrategy, Component, effect, input, model, OnDestroy, output, signal } from '@angular/core';\nimport { NzButtonModule } from 'ng-zorro-antd/button';\nimport { NzGridModule } from 'ng-zorro-antd/grid';\nimport { NzIconModule } from 'ng-zorro-antd/icon';\nimport { NzModalModule } from 'ng-zorro-antd/modal';\nimport { CdkDrag, CdkDragDrop, CdkDropList, moveItemInArray, transferArrayItem } from '@angular/cdk/drag-drop';\nimport { TableFieldOptions } from '../table.options';\nimport { NzResizeEvent } from 'ng-zorro-antd/resizable';\nimport { debounceTime, Subject, Subscription } from 'rxjs';\n\n\n@Component({\n selector: 'axis-table-setter',\n imports: [NzIconModule, NzButtonModule, NzModalModule, NzGridModule, CdkDrag, CdkDropList],\n templateUrl: './table-setter.html',\n styleUrl: './table-setter.css',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class TableSetter implements OnDestroy {\n\n constructor() {\n effect(() => this.buildFixAndNotFixColumn());\n effect(() => this.onChange.emit(this.fix()));\n this.sub = this.saveCacheSubject.pipe(debounceTime(200)).subscribe(v => this.saveCache());\n }\n\n readonly fields = input.required<TableFieldOptions[]>();\n readonly cacheKey = input<string>();\n readonly onChange = output<TableFieldOptions[]>();\n\n readonly modalVisible = model(false);\n readonly fix = signal<TableFieldOptions[]>([]);\n readonly notFix = signal<TableFieldOptions[]>([]);\n\n saveCacheSubject = new Subject<void>();\n cache: { fix: string[], notFix: string[], widths: { [field: string]: number } } = { fix: [], notFix: [], widths: {} };\n sub?: Subscription;\n\n private buildFixAndNotFixColumn(): void {\n this.loadCache();\n if (this.cache) {\n const fieldMap = new Map<string, TableFieldOptions>();\n for (const f of this.fields()) {\n fieldMap.set(f.field(), f);\n if (this.cache.widths.hasOwnProperty(f.field())) {\n f.width.set(this.cache.widths[f.field()]);\n }\n }\n this.fix.set(this.cache.fix.filter(f => fieldMap.has(f)).map(f => fieldMap.get(f)!)\n .concat(this.fields().filter(f => !this.cache!.fix.includes(f.field()) && !this.cache!.notFix.includes(f.field()))));\n this.notFix.set(this.cache.notFix.filter(f => fieldMap.has(f)).map(f => fieldMap.get(f)!));\n } else {\n this.fix.set(this.fields());\n }\n }\n\n private loadCache() {\n if (this.cacheKey()) {\n const cacheStr = localStorage.getItem(this.cacheKey()!);\n if (cacheStr) {\n try {\n this.cache = JSON.parse(cacheStr);\n } catch (_) { }\n }\n }\n }\n\n private saveCache() {\n if (this.cacheKey()) {\n localStorage.setItem(this.cacheKey()!, JSON.stringify(this.cache));\n }\n }\n\n private updateFix(): void {\n this.fix.set([...this.fix()]);\n this.notFix.set([...this.notFix()]);\n if (this.cacheKey()) {\n this.cache.fix = this.fix().map(f => f.field());\n this.cache.notFix = this.notFix().map(f => f.field());\n this.saveCache();\n }\n }\n\n drop(event: CdkDragDrop<TableFieldOptions[], any, any>): void {\n if (event.previousContainer === event.container) {\n moveItemInArray(event.container.data, event.previousIndex, event.currentIndex);\n } else {\n transferArrayItem(event.previousContainer.data, event.container.data, event.previousIndex, event.currentIndex);\n }\n this.updateFix();\n }\n\n deleteCustom(index: number): void {\n transferArrayItem(this.fix(), this.notFix(), index, this.notFix().length);\n this.updateFix();\n }\n\n addCustom(index: number): void {\n transferArrayItem(this.notFix(), this.fix(), index, this.fix().length);\n this.updateFix();\n }\n\n onResize(field: TableFieldOptions, event: NzResizeEvent) {\n field.width.set(event.width ?? null);\n this.cache.widths[field.field()] = event.width!;\n this.saveCacheSubject.next();\n }\n\n resetDefault() {\n this.fix.set(this.fields());\n this.notFix.set([]);\n if (this.cacheKey()) {\n localStorage.removeItem(this.cacheKey()!);\n }\n }\n\n ngOnDestroy(): void {\n this.sub?.unsubscribe();\n this.saveCacheSubject.unsubscribe();\n }\n}","<a nz-button nzType=\"link\" nzSize=\"small\" (click)=\"modalVisible.set(true)\" style=\"margin: 2px;\">\n <nz-icon nzType=\"setting\" nzTheme=\"outline\" />\n</a>\n<nz-modal [(nzVisible)]=\"modalVisible\" nzTitle=\"表头设置\" nzDraggable [nzOkText]=\"null\" nzCancelText=\"关闭\"\n (nzOnCancel)=\"modalVisible.set(false)\">\n <ng-container *nzModalContent>\n <div nz-row [nzGutter]=\"24\">\n <div nz-col class=\"gutter-row\" [nzSpan]=\"12\">\n <div class=\"container\">\n <p>展示字段<a nz-button nzType=\"link\" (click)=\"resetDefault()\">恢复默认</a></p>\n <div cdkDropList #todoList=\"cdkDropList\" [cdkDropListData]=\"fix()\"\n [cdkDropListConnectedTo]=\"[doneList]\" class=\"list\" (cdkDropListDropped)=\"drop($event)\">\n @for (item of fix(); track item; let i = $index) {\n <div class=\"box\" cdkDrag>\n {{ item.title() }}\n <nz-icon nzType=\"minus-circle\" nzTheme=\"outline\" (click)=\"deleteCustom(i)\" />\n </div>\n }\n </div>\n </div>\n </div>\n <div nz-col class=\"gutter-row\" [nzSpan]=\"12\">\n <div class=\"container\">\n <p>隐藏字段</p>\n <div cdkDropList #doneList=\"cdkDropList\" [cdkDropListData]=\"notFix()\"\n [cdkDropListConnectedTo]=\"[todoList]\" class=\"list\" (cdkDropListDropped)=\"drop($event)\">\n @for (item of notFix(); track item; let i = $index) {\n <div class=\"box\" cdkDrag>\n {{ item.title() }}\n <nz-icon nzType=\"plus-circle\" nzTheme=\"outline\" (click)=\"addCustom(i)\" />\n </div>\n }\n </div>\n </div>\n </div>\n </div>\n </ng-container>\n</nz-modal>","import { ChangeDetectionStrategy, Component, computed, effect, ElementRef, model, signal, ViewChild } from '@angular/core';\nimport { TableFieldOptions, TableOptions } from './table.options';\nimport { Base, DynamicDirective, ScopeDirective } from 'ngx-axis-appforge/core';\nimport { NzTableFilterList, NzTableModule } from 'ng-zorro-antd/table';\nimport { FormsModule } from '@angular/forms';\nimport { CommonModule } from '@angular/common';\nimport { Select } from './select';\nimport { Expand } from './expand';\nimport { TableSetter } from './table-setter/table-setter';\nimport { NzResizableModule } from 'ng-zorro-antd/resizable';\nimport { NzFlexModule } from 'ng-zorro-antd/flex';\n\n\n@Component({\n selector: 'axis-table',\n imports: [NzTableModule, ScopeDirective, DynamicDirective, FormsModule, CommonModule, TableSetter, NzResizableModule, NzFlexModule],\n templateUrl: './table.html',\n styleUrl: './table.css',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class Table extends Base<TableOptions> {\n\n constructor(private elementRef: ElementRef) {\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 clearInterval(this.timer);\n this.refreshScoll();\n if (this.options.heightExpanded()) {\n this.timer = setInterval(() => {\n this.refreshScoll();\n }, 500);\n }\n });\n }\n\n override options: TableOptions = new TableOptions();\n\n readonly displayData = computed(() => this.buildDisplayData());\n select = new Select(this.options, this.displayData, this.getScope(), () => this.onSelectedChange());\n expand = new Expand(this.options, this.getScope());\n readonly pageSizeOptions = computed(() => this.options.pageSizeOptions().split(\",\").map(size => +size));\n readonly scroll = signal<{ x: string, y: string }>({ x: \"\", y: \"\" });\n readonly fields = computed(() => this.buildFields());\n readonly displayFields = computed(() => this.buildDisplayFields());\n readonly rowtotal = signal<number>(0);\n readonly pageIndex = model<number>(1);\n readonly fieldsControlsMap = computed(() => this.buildFieldControls());\n readonly filedsFilterItemsCache = new Map<string, Map<any, any>>();\n readonly rowActions = computed(() => this.actionsFieldWidth() > 0 ? this.options.rowActions() : []);\n readonly leaderFieldWidth = computed(() => this.buildLeaderFieldWidth());\n readonly actionsFieldWidth = computed(() => this.buildActionsFieldWidth());\n readonly fixFields = signal<TableFieldOptions[]>([]);\n timer?: number;\n\n resizeHandleOffsetX(field: TableFieldOptions): number {\n if (field.sortAble() && field.filterAble()) {\n return 42;\n } else if (field.sortAble()) {\n return 22;\n } else if (field.filterAble()) {\n return 28;\n }\n return 0;\n }\n\n @ViewChild(TableSetter)\n tableSetter?: TableSetter;\n\n trackByKeyField = (i: number, data: any): any => {\n return data[this.options.keyField()];\n }\n\n private buildDisplayData(): any[] | null {\n return this.options.data();\n }\n\n private buildFields(): TableFieldOptions[] {\n return this.options.fields().map(opt => new TableFieldOptions());\n }\n\n private buildDisplayFields(): TableFieldOptions[] {\n return (this.options.showTableTitleSet() ? this.fixFields() : this.fields()).filter(f => f.inuse());\n }\n\n private buildFieldControls(): { [field: string]: { sortFn?: any, filterItems?: NzTableFilterList, filterFn?: any } | undefined } {\n const res: { [field: string]: { sortFn?: any, filterItems?: NzTableFilterList, filterFn?: any } } = {};\n for (const field of this.displayFields()) {\n res[field.field()] = {};\n if (field.filterAble()) {\n if (!this.filedsFilterItemsCache.has(field.field())) {\n this.filedsFilterItemsCache.set(field.field(), new Map<any, any>());\n }\n const filterItemsCache = this.filedsFilterItemsCache.get(field.field())!;\n for (const row of this.displayData() ?? []) {\n const value = row[field.field()];\n if (!filterItemsCache.has(value)) {\n let text = value + \"\";\n if (field.filterDisplayFn()) {\n text = this.getScope()?.runFnWithSnapshot(field.filterDisplayFn(), { value: value, row: row });\n }\n filterItemsCache.set(value, { value, text })\n }\n }\n res[field.field()].filterItems = Array.from(filterItemsCache.values());\n res[field.field()].filterFn = (fd: any[] | any, row: any) => {\n if (fd instanceof Array) {\n return fd.includes(row[field.field()]);\n } else {\n return fd == row[field.field()];\n }\n };\n }\n if (field.sortAble()) {\n if (this.options.data()?.some((r: any) => r[field.field()] != undefined && typeof (r[field.field()]) == \"number\")) {\n res[field.field()].sortFn = (a: any, b: any) => a[field.field()] - b[field.field()];\n } else {\n res[field.field()].sortFn = (a: any, b: any) => {\n return ((a[field.field()] || \"\") + \"\").localeCompare(b[field.field()])\n };\n }\n }\n }\n return res;\n }\n\n private buildLeaderFieldWidth(): number {\n switch (this.options.size()) {\n case \"small\":\n return 45;\n case \"middle\":\n return 50;\n default:\n return 65;\n }\n }\n\n private buildActionsFieldWidth(): number {\n if (this.options.actionsFieldWidth() == 0 || this.options.rowActions().length == 0) {\n return 0;\n }\n return this.options.actionsFieldWidth() ?? this.options.rowActions().length * 45 + 16;\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.leaderFieldWidth();\n }\n if (this.options.showExpand()) {\n x += this.leaderFieldWidth();\n }\n if (this.options.showOrder()) {\n x += this.leaderFieldWidth();\n }\n this.displayFields().forEach(f => {\n if (f.width()) {\n x += f.width()!;\n } else {\n x += 120;\n }\n });\n x += this.actionsFieldWidth();\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 if (headRect) {\n // y = 视口高度(window.innerHeight) - 表头底部位置(headRect.bottom) - 表尾部高度(outterTableRect.bottom - innerTableRect.bottom)\n y = `${window.innerHeight - (headRect?.bottom ?? 0) - (outterTableRect?.bottom ?? 0) + (innerTableRect?.bottom ?? 0)}px`;\n }\n }\n this.scroll.set({ x: x + \"px\", y: y });\n }\n\n currentPageDataChange() { }\n\n onPageChange() {\n }\n\n filterChange(field: string, value: any) {\n for (const item of this.filedsFilterItemsCache.get(field)!.values()) {\n item.byDefault = value != null && (Array.isArray(value) ? value.includes(item.value) : item.value == value);\n }\n }\n sortChange(field: string, event: any) {\n\n }\n\n rowspan(field: string, index: number): number {\n return 1;\n }\n\n onSelectedChange() {\n if (this.hasEventHandler(\"onSelectedChange\")) {\n this.triggeEvents(\"onSelectedChange\", { selectedRows: this.select.getSelectedData() }).subscribe();\n }\n }\n\n override ngOnDestroy(): void {\n super.ngOnDestroy();\n clearInterval(this.timer);\n }\n}\n","@if (options.showTableTitleSet()) {\n<axis-table-setter [fields]=\"fields()\" [cacheKey]=\"options.tableSetCacheKey()\"\n (onChange)=\"fixFields.set($event)\"></axis-table-setter>\n}\n<nz-table #table [nzSize]=\"options.size()\" [nzData]=\"displayData()??[]\" [nzLoading]=\"!displayData()\"\n [nzBordered]=\"options.bordered()\" [nzOuterBordered]=\"options.outerBordered()\"\n [nzShowPagination]=\"options.showPagination()\"\n [nzFrontPagination]=\"options.showPagination() && !options.useBackEndPaging()\" [nzTotal]=\"rowtotal()\"\n [nzPageSize]=\"options.pageSize()\" [nzShowSizeChanger]=\"options.showSizeChanger()\"\n [nzPageSizeOptions]=\"pageSizeOptions()\" [nzShowTotal]=\"options.showDataSize()?totalRange:null\" [nzScroll]=\"scroll()\"\n (nzCurrentPageDataChange)=\"currentPageDataChange()\" (nzPageIndexChange)=\"onPageChange()\"\n (nzPageSizeChange)=\"onPageChange()\" [(nzPageIndex)]=\"pageIndex\" [nzVirtualItemSize]=\"options.virtualItemSize()\"\n [nzVirtualForTrackBy]=\"trackByKeyField\">\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\" [nzWidth]=\"leaderFieldWidth()-10+'px'\">\n </th>\n }@else {\n <th nzLeft [nzWidth]=\"leaderFieldWidth()-10+'px'\"></th>\n }\n }\n @if (options.showExpand()) {\n <th nzLeft nzAlign=\"center\" [nzWidth]=\"leaderFieldWidth()-15+'px'\"></th>\n }\n @if (options.showOrder()) {\n <th nzAlign=\"center\" [nzWidth]=\"leaderFieldWidth()+'px'\">序号</th>\n }\n @for (f of displayFields(); track f.field()) {\n <th [attr.data-field]=\"f.field()\" nz-resizable nzBounds=\"window\"\n [nzDisabled]=\"!options.showTableTitleSet() || !f.width()\"\n [nzWidth]=\"f.width() == null ?null:f.width()+'px'\" (nzResize)=\"tableSetter?.onResize(f,$event)\"\n [nzShowSort]=\"f.sortAble()\" [nzSortFn]=\"fieldsControlsMap()[f.field()]?.sortFn\"\n [nzSortOrder]=\"f.sortOrder()\" [nzSortPriority]=\"f.sortPriority()??false\"\n [nzShowFilter]=\"f.filterAble() && !options.useBackEndPaging()\"\n [nzFilters]=\"fieldsControlsMap()[f.field()]?.filterItems ?? []\"\n [nzFilterFn]=\"fieldsControlsMap()[f.field()]?.filterFn\"\n (nzFilterChange)=\"filterChange(f.field(),$event)\" [nzFilterMultiple]=\"f.filterMultiple()\"\n [nzAlign]=\"f.align()\" [nzLeft]=\"f.freezeMode()=='left'\" [nzRight]=\"f.freezeMode()=='right'\"\n (nzSortOrderChange)=\"sortChange(f.field(),$event)\">\n <span>\n {{f.title()}}\n @if(options.showTableTitleSet()){\n <nz-resize-handle [style.transform]=\"`translateX(${resizeHandleOffsetX(f)}px)`\" nzDirection=\"right\"\n (click)=\"$event.stopPropagation()\">\n <div class=\"resize-trigger\"></div>\n </nz-resize-handle>\n }\n </span>\n </th>\n }\n @if (rowActions().length)\n {\n <th nzRight nzAlign=\"center\" [nzWidth]=\"actionsFieldWidth()+'px'\" data-rowactions>操作</th>\n }\n </tr>\n </thead>\n <tbody>\n @if (!options.showPagination() && options.virtualScroll()) {\n <ng-template nz-virtual-scroll let-data let-i=\"index\">\n </ng-template>\n }@else {\n @for (trow of table.data; track $index;let i=$index) {\n @for (data of expand.getListForExpanded(trow); track $index) {\n <tr [axisScope]=\"options.id+'.row'\" scopeName=\"表格行\" [dataSources]=\"[{name:'row',type:'local',data:data}]\">\n @if (options.showCheckbox()) {\n <td nzLeft [nzChecked]=\"select.setOfCheckedId.has(data[options.keyField()])\"\n [nzIndeterminate]=\"select.setOfIndeterminateId.has(data[options.keyField()])\"\n [nzDisabled]=\"select.setOfDisabledId().has(data[options.keyField()])\"\n (nzCheckedChange)=\"select.onItemChecked(data, $event)\" nzAlign=\"center\"></td>\n }\n @if (options.showExpand()) {\n @if(options.expandMode() == \"tree\" && !expand.nodeMap().get(data[options.keyField()])?.children?.length){\n <td nzLeft></td>\n }@else{\n <td nzLeft [nzExpand]=\"expand.expandedSet.has(data[options.keyField()])\"\n (nzExpandChange)=\"expand.onExpandChange(data[options.keyField()],$event)\"></td>\n }\n }\n @if (options.showOrder()) {\n <td nzAlign=\"center\">{{(table.nzPageIndex-1) * table.nzPageSize + i+1}}</td>\n }\n @for (f of displayFields(); track f.field()) {\n @if (rowspan(f.field(),i)) {\n <td [attr.rowspan]=\"rowspan(f.field(),i)\" [nzLeft]=\"f.freezeMode()=='left'\" [attr.data-field]=\"f.field()\"\n [nzRight]=\"f.freezeMode()=='right'\" [nzAlign]=\"f.align()\">\n @if (f.child()) {\n <ng-container [axisDynamic]=\"f.child()\"></ng-container>\n }@else {\n {{data[f.field()]}}\n }\n </td>\n }\n }\n @if (rowActions().length) {\n <td nzRight>\n <div nz-flex nzJustify=\"space-evenly\" data-rowactions>\n @for (a of rowActions(); track a.id) {\n <ng-container [axisDynamic]=\"a\"></ng-container>\n }\n </div>\n </td>\n }\n </tr>\n }\n @if (options.showExpand() && options.expandMode() == \"custom\") {\n <tr [axisScope]=\"options.id+'.row'\" scopeName=\"表格行\" [dataSources]=\"[{name:'row',type:'local',data:trow}]\"\n [nzExpand]=\"expand.expandedSet.has(trow[options.keyField()])\" data-expandrow>\n <ng-container [axisDynamic]=\"options.expandRow()\"></ng-container>\n </tr>\n }\n <!-- @if (showSubTotal() && subTotalGroupField() && subTotalMap[i]) {\n <tr>\n @if (options.showCheckbox()) {\n <td nzLeft></td>\n }\n @if (options.showExpand()) {\n <td nzLeft></td>\n }\n @if (options.showOrder()) {\n <td></td>\n }\n @for (f of displayFields(); track f.field()) {\n @if (f.groupLevel && f.groupLevel! == subTotalGroupField.groupLevel!) {\n <td nzAlign=\"right\" [nzLeft]=\"f.freezeMode=='left'\" [nzRight]=\"f.freezeMode=='right'\">\n <b>{{options.subTotalTitle() || \"小计\"}}</b>\n </td>\n }\n @if(!f.groupLevel || f.groupLevel! > subTotalGroupField.groupLevel!) {\n <td [nzLeft]=\"f.freezeMode=='left'\" [nzRight]=\"f.freezeMode=='right'\">\n @if (f.totalAble) {\n <div [class]=\"'td-box-'+(f.align || 'center')\">\n <b>\n @if (f.child()) {\n @if (f.injectBy() == \"data\") {\n <ng-container [axisDynamic]=\"f.child()\"></ng-container>\n }@else{\n <ng-container [axisDynamic]=\"f.child()\" [ngModel]=\"subTotalMap[i][f.field]\"></ng-container>\n }\n }@else {\n {{subTotalMap[i][f.field]}}\n }\n </b>\n </div>\n }\n </td>\n }\n }\n <td *ngIf=\"rowActions?.length\" nzRight></td>\n </tr>\n } -->\n }\n }\n <!-- @if (showTotal && displayData?.length) {\n <tr class=\"total-row\">\n @if (options.showCheckbox()) {\n <td nzLeft></td>\n }\n @if (options.showExpand()) {\n <td nzLeft></td>\n }\n <td nzAlign=\"right\" [nzLeft]=\"!options.showOrder() && displayFields[0].freezeMode=='left'\"\n [nzRight]=\"!options.showOrder() && displayFields[0].freezeMode=='right'\"><b>{{options.totalTitle() ||\n \"合计\"}}</b></td>\n @for (f of displayFields()|slice:(options.showOrder()?0:1); track f.field()) {\n <td [nzLeft]=\"f.freezeMode=='left'\" [nzRight]=\"f.freezeMode=='right'\">\n @if (f.totalAble()) {\n <div [class]=\"'td-box-'+(f.align || 'center')\">\n <b>\n @if (f.child()) {\n @if (f.injectBy() == \"data\") {\n <ng-container [axisDynamic]=\"f.child()\"></ng-container>\n }@else{\n <ng-container [axisDynamic]=\"f.child()\" [ngModel]=\"totalMap[f.field]\"></ng-container>\n }\n }@else {\n {{totalMap[f.field]}}\n }\n </b>\n </div>\n }\n </td>\n }\n @if (rowActions()?.length) {\n <td nzRight></td>\n }\n </tr>\n } -->\n </tbody>\n <ng-template #totalRange let-range=\"range\" let-total>\n 共{{ total }}条数据,第{{ range[0] }}-{{ range[1] }}条\n </ng-template>\n</nz-table>","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './table';\n"],"names":["i3"],"mappings":"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"}
@@ -0,0 +1,69 @@
1
+ import { FunFieldValueBase, baseFbConfig, baseFunField, BaseDesignSetting, InputTrigger, OptionsNode, SimpleMenu } from 'ngx-axis-appforge/core';
2
+ import * as i0 from '@angular/core';
3
+ import { ChangeDetectionStrategy, Component } from '@angular/core';
4
+ import * as i1 from '@angular/forms';
5
+ import { FormsModule, ReactiveFormsModule } from '@angular/forms';
6
+ import * as i4 from 'ng-zorro-antd/collapse';
7
+ import { NzCollapseModule } from 'ng-zorro-antd/collapse';
8
+ import * as i3 from 'ng-zorro-antd/form';
9
+ import { NzFormModule } from 'ng-zorro-antd/form';
10
+ import * as i5 from 'ng-zorro-antd/input-number';
11
+ import { NzInputNumberModule } from 'ng-zorro-antd/input-number';
12
+ import * as i2 from 'ng-zorro-antd/grid';
13
+ import * as i6 from 'ng-zorro-antd/input';
14
+
15
+ class Setting extends FunFieldValueBase {
16
+ fg = this.fb.group({
17
+ ...baseFbConfig,
18
+ delay: [],
19
+ interval: [],
20
+ });
21
+ funFields = {
22
+ ...baseFunField,
23
+ };
24
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: Setting, deps: null, target: i0.ɵɵFactoryTarget.Component });
25
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.1.6", type: Setting, isStandalone: true, selector: "axis-design-text-setting", usesInheritance: true, ngImport: i0, template: "<form [formGroup]=\"fg\" nz-form>\n <nz-collapse [nzBordered]=\"false\">\n <nz-collapse-panel nzHeader=\"\u57FA\u672C\u8BBE\u7F6E\" nzActive>\n <nz-form-item>\n <nz-form-label nzSpan=\"8\">\n \u5EF6\u8FDF\n </nz-form-label>\n <nz-form-control nzSpan=\"16\">\n <nz-input-number style=\"width: 100%;\" [nzMin]=\"50\" formControlName=\"delay\">\n <span nzInputAddonAfter>ms</span>\n </nz-input-number>\n </nz-form-control>\n </nz-form-item>\n <nz-form-item>\n <nz-form-label nzSpan=\"8\">\n \u95F4\u9694\n </nz-form-label>\n <nz-form-control nzSpan=\"16\">\n <nz-input-number style=\"width: 100%;\" [nzMin]=\"50\" formControlName=\"interval\">\n <span nzInputAddonAfter>ms</span>\n </nz-input-number>\n </nz-form-control>\n </nz-form-item>\n </nz-collapse-panel>\n <axis-base-design-setting [fg]=\"fg\"></axis-base-design-setting>\n <axis-input-trigger formControlName=\"triggeEvents\"\n [eventDesc]=\"[{name:'timerClock',title:'\u5B9A\u65F6\u65F6\u95F4\u5230',ds:{index:0}}]\"></axis-input-trigger>\n </nz-collapse>\n</form>", styles: [""], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "ngmodule", type: NzFormModule }, { kind: "directive", type: i2.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: i2.NzRowDirective, selector: "[nz-row],nz-row,nz-form-item", inputs: ["nzAlign", "nzJustify", "nzGutter"], exportAs: ["nzRow"] }, { kind: "directive", type: i3.NzFormDirective, selector: "[nz-form]", inputs: ["nzLayout", "nzNoColon", "nzAutoTips", "nzDisableAutoTips", "nzTooltipIcon", "nzLabelAlign", "nzLabelWrap"], exportAs: ["nzForm"] }, { kind: "component", type: i3.NzFormItemComponent, selector: "nz-form-item", exportAs: ["nzFormItem"] }, { kind: "component", type: i3.NzFormLabelComponent, selector: "nz-form-label", inputs: ["nzFor", "nzRequired", "nzNoColon", "nzTooltipTitle", "nzTooltipIcon", "nzLabelAlign", "nzLabelWrap"], exportAs: ["nzFormLabel"] }, { kind: "component", type: i3.NzFormControlComponent, selector: "nz-form-control", inputs: ["nzSuccessTip", "nzWarningTip", "nzErrorTip", "nzValidatingTip", "nzExtra", "nzAutoTips", "nzDisableAutoTips", "nzHasFeedback", "nzValidateStatus"], exportAs: ["nzFormControl"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: NzCollapseModule }, { kind: "component", type: i4.NzCollapsePanelComponent, selector: "nz-collapse-panel", inputs: ["nzActive", "nzDisabled", "nzShowArrow", "nzExtra", "nzHeader", "nzExpandedIcon"], outputs: ["nzActiveChange"], exportAs: ["nzCollapsePanel"] }, { kind: "component", type: i4.NzCollapseComponent, selector: "nz-collapse", inputs: ["nzAccordion", "nzBordered", "nzGhost", "nzExpandIconPosition"], exportAs: ["nzCollapse"] }, { kind: "component", type: BaseDesignSetting, selector: "axis-base-design-setting", inputs: ["scopeId", "exclude", "fg"] }, { kind: "ngmodule", type: NzInputNumberModule }, { kind: "component", type: i5.NzInputNumberComponent, selector: "nz-input-number", inputs: ["nzId", "nzSize", "nzPlaceHolder", "nzStatus", "nzVariant", "nzStep", "nzMin", "nzMax", "nzPrecision", "nzParser", "nzFormatter", "nzDisabled", "nzReadOnly", "nzAutoFocus", "nzBordered", "nzKeyboard", "nzControls"], outputs: ["nzBlur", "nzFocus", "nzOnStep"], exportAs: ["nzInputNumber"] }, { kind: "directive", type: i6.NzInputAddonAfterDirective, selector: "[nzInputAddonAfter]" }, { kind: "component", type: InputTrigger, selector: "axis-input-trigger", inputs: ["internalTriggers", "optionsNodeId", "value", "eventDesc", "isVisibleHandlerModal", "editEventHandler"], outputs: ["valueChange", "isVisibleHandlerModalChange", "editEventHandlerChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
26
+ }
27
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: Setting, decorators: [{
28
+ type: Component,
29
+ args: [{ selector: 'axis-design-text-setting', imports: [FormsModule, NzFormModule, ReactiveFormsModule, NzCollapseModule, BaseDesignSetting, NzInputNumberModule, InputTrigger], changeDetection: ChangeDetectionStrategy.OnPush, template: "<form [formGroup]=\"fg\" nz-form>\n <nz-collapse [nzBordered]=\"false\">\n <nz-collapse-panel nzHeader=\"\u57FA\u672C\u8BBE\u7F6E\" nzActive>\n <nz-form-item>\n <nz-form-label nzSpan=\"8\">\n \u5EF6\u8FDF\n </nz-form-label>\n <nz-form-control nzSpan=\"16\">\n <nz-input-number style=\"width: 100%;\" [nzMin]=\"50\" formControlName=\"delay\">\n <span nzInputAddonAfter>ms</span>\n </nz-input-number>\n </nz-form-control>\n </nz-form-item>\n <nz-form-item>\n <nz-form-label nzSpan=\"8\">\n \u95F4\u9694\n </nz-form-label>\n <nz-form-control nzSpan=\"16\">\n <nz-input-number style=\"width: 100%;\" [nzMin]=\"50\" formControlName=\"interval\">\n <span nzInputAddonAfter>ms</span>\n </nz-input-number>\n </nz-form-control>\n </nz-form-item>\n </nz-collapse-panel>\n <axis-base-design-setting [fg]=\"fg\"></axis-base-design-setting>\n <axis-input-trigger formControlName=\"triggeEvents\"\n [eventDesc]=\"[{name:'timerClock',title:'\u5B9A\u65F6\u65F6\u95F4\u5230',ds:{index:0}}]\"></axis-input-trigger>\n </nz-collapse>\n</form>" }]
30
+ }] });
31
+
32
+ const Config = {
33
+ componentName: "定时器",
34
+ buildOptionsNodes(nextInfo) {
35
+ return {
36
+ treeNode: new OptionsNode({
37
+ parentId: nextInfo.parentId,
38
+ scopeId: nextInfo.scopeId,
39
+ name: "定时器",
40
+ canSetting: true,
41
+ canDrag: true,
42
+ dragType: "component",
43
+ canDrop: true,
44
+ dropType: "component",
45
+ dropObj: nextInfo.currentObject,
46
+ defaultDropIndex: "child",
47
+ parentObj: nextInfo.parentObject,
48
+ indexOfParentObj: nextInfo.indexOfParent,
49
+ rootOptions: nextInfo.currentObject,
50
+ settingType: Setting,
51
+ contextMenu: SimpleMenu,
52
+ icon: "history",
53
+ children: []
54
+ })
55
+ };
56
+ },
57
+ bindElementsOptionsNode(element, options) {
58
+ return {
59
+ [options.id]: { element }
60
+ };
61
+ },
62
+ };
63
+
64
+ /**
65
+ * Generated bundle index. Do not edit.
66
+ */
67
+
68
+ export { Config };
69
+ //# sourceMappingURL=ngx-axis-appforge-axis-components-timer-design.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ngx-axis-appforge-axis-components-timer-design.mjs","sources":["../../../axis-components/timer/design/setting/setting.ts","../../../axis-components/timer/design/setting/setting.html","../../../axis-components/timer/design/config.ts","../../../axis-components/timer/design/ngx-axis-appforge-axis-components-timer-design.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule, UntypedFormGroup } from '@angular/forms';\nimport { NzCollapseModule } from 'ng-zorro-antd/collapse';\nimport { NzFormModule } from 'ng-zorro-antd/form';\nimport { NzInputNumberModule } from 'ng-zorro-antd/input-number';\nimport { BaseDesignSetting, baseFbConfig, baseFunField, FunFieldOptions, FunFieldValueBase, InputTrigger } from 'ngx-axis-appforge/core';\n\n@Component({\n selector: 'axis-design-text-setting',\n imports: [FormsModule, NzFormModule, ReactiveFormsModule, NzCollapseModule, BaseDesignSetting, NzInputNumberModule, InputTrigger],\n templateUrl: './setting.html',\n styleUrl: './setting.css',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class Setting extends FunFieldValueBase {\n\n override fg: UntypedFormGroup = this.fb.group({\n ...baseFbConfig,\n delay: [],\n interval: [],\n });\n\n protected override funFields: FunFieldOptions = {\n ...baseFunField,\n };\n\n}\n","<form [formGroup]=\"fg\" nz-form>\n <nz-collapse [nzBordered]=\"false\">\n <nz-collapse-panel nzHeader=\"基本设置\" nzActive>\n <nz-form-item>\n <nz-form-label nzSpan=\"8\">\n 延迟\n </nz-form-label>\n <nz-form-control nzSpan=\"16\">\n <nz-input-number style=\"width: 100%;\" [nzMin]=\"50\" formControlName=\"delay\">\n <span nzInputAddonAfter>ms</span>\n </nz-input-number>\n </nz-form-control>\n </nz-form-item>\n <nz-form-item>\n <nz-form-label nzSpan=\"8\">\n 间隔\n </nz-form-label>\n <nz-form-control nzSpan=\"16\">\n <nz-input-number style=\"width: 100%;\" [nzMin]=\"50\" formControlName=\"interval\">\n <span nzInputAddonAfter>ms</span>\n </nz-input-number>\n </nz-form-control>\n </nz-form-item>\n </nz-collapse-panel>\n <axis-base-design-setting [fg]=\"fg\"></axis-base-design-setting>\n <axis-input-trigger formControlName=\"triggeEvents\"\n [eventDesc]=\"[{name:'timerClock',title:'定时时间到',ds:{index:0}}]\"></axis-input-trigger>\n </nz-collapse>\n</form>","import { NextInfo, DesignBuildResult, DesignBindElementsResult, DesignConfig, OptionsNode, SimpleMenu } from \"ngx-axis-appforge/core\";\nimport { Setting } from \"./setting/setting\";\n\nexport const Config: DesignConfig = {\n\n componentName: \"定时器\",\n buildOptionsNodes(nextInfo: NextInfo): DesignBuildResult {\n return {\n treeNode: new OptionsNode({\n parentId: nextInfo.parentId,\n scopeId: nextInfo.scopeId,\n name: \"定时器\",\n canSetting: true,\n canDrag: true,\n dragType: \"component\",\n canDrop: true,\n dropType: \"component\",\n dropObj: nextInfo.currentObject,\n defaultDropIndex: \"child\",\n parentObj: nextInfo.parentObject,\n indexOfParentObj: nextInfo.indexOfParent,\n rootOptions: nextInfo.currentObject,\n settingType: Setting,\n contextMenu: SimpleMenu,\n icon: \"history\",\n children: []\n })\n };\n },\n bindElementsOptionsNode(element: HTMLElement, options: any): DesignBindElementsResult {\n return {\n [options.id]: { element }\n }\n },\n};\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './config';\n"],"names":[],"mappings":"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"}