ngx-axis-appforge 0.0.89 → 0.0.91
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.
- package/axis-components/drawer/design/index.d.ts +5 -0
- package/axis-components/drawer/index.d.ts +32 -0
- package/axis-components/edit-table/index.d.ts +10 -7
- package/axis-components/input-component/index.d.ts +1 -0
- package/axis-components/input-list/design/index.d.ts +5 -0
- package/axis-components/input-list/index.d.ts +30 -0
- package/axis-components/table/index.d.ts +1 -0
- package/axis-components/time-line/design/index.d.ts +5 -0
- package/axis-components/time-line/index.d.ts +34 -0
- package/axis-components-covers/drawer.svg +24 -0
- package/axis-components-covers/image.png +0 -0
- package/axis-components-covers/input-list.png +0 -0
- package/axis-components-covers/time-line.svg +1 -0
- package/core/index.d.ts +2 -0
- package/fesm2022/ngx-axis-appforge-axis-components-date-picker.mjs +5 -2
- package/fesm2022/ngx-axis-appforge-axis-components-date-picker.mjs.map +1 -1
- package/fesm2022/ngx-axis-appforge-axis-components-design.mjs +25 -19
- package/fesm2022/ngx-axis-appforge-axis-components-design.mjs.map +1 -1
- package/fesm2022/ngx-axis-appforge-axis-components-drawer-design.mjs +195 -0
- package/fesm2022/ngx-axis-appforge-axis-components-drawer-design.mjs.map +1 -0
- package/fesm2022/ngx-axis-appforge-axis-components-drawer.mjs +63 -0
- package/fesm2022/ngx-axis-appforge-axis-components-drawer.mjs.map +1 -0
- package/fesm2022/ngx-axis-appforge-axis-components-edit-table-design.mjs +52 -4
- package/fesm2022/ngx-axis-appforge-axis-components-edit-table-design.mjs.map +1 -1
- package/fesm2022/ngx-axis-appforge-axis-components-edit-table.mjs +80 -21
- package/fesm2022/ngx-axis-appforge-axis-components-edit-table.mjs.map +1 -1
- package/fesm2022/ngx-axis-appforge-axis-components-form.mjs +3 -3
- package/fesm2022/ngx-axis-appforge-axis-components-form.mjs.map +1 -1
- package/fesm2022/ngx-axis-appforge-axis-components-input-component-design.mjs +6 -2
- package/fesm2022/ngx-axis-appforge-axis-components-input-component-design.mjs.map +1 -1
- package/fesm2022/ngx-axis-appforge-axis-components-input-component.mjs +5 -2
- package/fesm2022/ngx-axis-appforge-axis-components-input-component.mjs.map +1 -1
- package/fesm2022/ngx-axis-appforge-axis-components-input-json.mjs +1 -1
- package/fesm2022/ngx-axis-appforge-axis-components-input-json.mjs.map +1 -1
- package/fesm2022/ngx-axis-appforge-axis-components-input-list-design.mjs +89 -0
- package/fesm2022/ngx-axis-appforge-axis-components-input-list-design.mjs.map +1 -0
- package/fesm2022/ngx-axis-appforge-axis-components-input-list.mjs +94 -0
- package/fesm2022/ngx-axis-appforge-axis-components-input-list.mjs.map +1 -0
- package/fesm2022/ngx-axis-appforge-axis-components-select.mjs +6 -5
- package/fesm2022/ngx-axis-appforge-axis-components-select.mjs.map +1 -1
- package/fesm2022/ngx-axis-appforge-axis-components-table-design.mjs +7 -2
- package/fesm2022/ngx-axis-appforge-axis-components-table-design.mjs.map +1 -1
- package/fesm2022/ngx-axis-appforge-axis-components-table-helper.mjs +3 -1
- package/fesm2022/ngx-axis-appforge-axis-components-table-helper.mjs.map +1 -1
- package/fesm2022/ngx-axis-appforge-axis-components-table.mjs +7 -2
- package/fesm2022/ngx-axis-appforge-axis-components-table.mjs.map +1 -1
- package/fesm2022/ngx-axis-appforge-axis-components-tabs.mjs +2 -2
- package/fesm2022/ngx-axis-appforge-axis-components-tabs.mjs.map +1 -1
- package/fesm2022/ngx-axis-appforge-axis-components-time-line-design.mjs +201 -0
- package/fesm2022/ngx-axis-appforge-axis-components-time-line-design.mjs.map +1 -0
- package/fesm2022/ngx-axis-appforge-axis-components-time-line.mjs +106 -0
- package/fesm2022/ngx-axis-appforge-axis-components-time-line.mjs.map +1 -0
- package/fesm2022/ngx-axis-appforge-axis-components.mjs +75 -1
- package/fesm2022/ngx-axis-appforge-axis-components.mjs.map +1 -1
- package/fesm2022/ngx-axis-appforge-core.mjs +24 -6
- package/fesm2022/ngx-axis-appforge-core.mjs.map +1 -1
- package/package.json +25 -1
|
@@ -0,0 +1,201 @@
|
|
|
1
|
+
import { FunFieldValueBase, FormValidators, baseFbConfig, baseFunField, BaseDesignSetting, FunField, InputTrigger, AXIS_DESIGN_COMPONENT_REF_FOR_SETTING_TOKEN, DynamicDirective, BaseMenu, CommonMenu, OptionsNode, SimpleMenu, copy } from 'ngx-axis-appforge/core';
|
|
2
|
+
import * as i0 from '@angular/core';
|
|
3
|
+
import { ChangeDetectionStrategy, Component, inject, computed, signal, ViewChild } 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 i6 from 'ng-zorro-antd/input';
|
|
11
|
+
import { NzInputModule } from 'ng-zorro-antd/input';
|
|
12
|
+
import * as i5 from 'ng-zorro-antd/select';
|
|
13
|
+
import { NzSelectModule } from 'ng-zorro-antd/select';
|
|
14
|
+
import * as i7 from 'ng-zorro-antd/switch';
|
|
15
|
+
import { NzSwitchModule } from 'ng-zorro-antd/switch';
|
|
16
|
+
import * as i2 from 'ng-zorro-antd/grid';
|
|
17
|
+
import * as i7$1 from 'ng-zorro-antd/radio';
|
|
18
|
+
import { NzRadioModule } from 'ng-zorro-antd/radio';
|
|
19
|
+
import * as i3$1 from 'ng-zorro-antd/divider';
|
|
20
|
+
import { NzDividerModule } from 'ng-zorro-antd/divider';
|
|
21
|
+
import * as i2$1 from 'ng-zorro-antd/dropdown';
|
|
22
|
+
import { NzDropDownModule } from 'ng-zorro-antd/dropdown';
|
|
23
|
+
import * as i4$1 from 'ng-zorro-antd/icon';
|
|
24
|
+
import { NzIconModule } from 'ng-zorro-antd/icon';
|
|
25
|
+
import * as i1$1 from 'ng-zorro-antd/menu';
|
|
26
|
+
|
|
27
|
+
class TimeLineSetting extends FunFieldValueBase {
|
|
28
|
+
fg = this.fb.group({
|
|
29
|
+
...baseFbConfig,
|
|
30
|
+
mode: [undefined, FormValidators.requiredFun],
|
|
31
|
+
pending: [],
|
|
32
|
+
reverse: [undefined, FormValidators.requiredFun],
|
|
33
|
+
});
|
|
34
|
+
funFields = {
|
|
35
|
+
...baseFunField,
|
|
36
|
+
mode: {
|
|
37
|
+
defaultValue: "left",
|
|
38
|
+
},
|
|
39
|
+
pending: {
|
|
40
|
+
defaultValue: "",
|
|
41
|
+
},
|
|
42
|
+
reverse: {
|
|
43
|
+
defaultValue: false,
|
|
44
|
+
},
|
|
45
|
+
};
|
|
46
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: TimeLineSetting, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
47
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.15", type: TimeLineSetting, isStandalone: true, selector: "axis-design-time-line-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\" nzRequired>\n \u5C55\u793A\u65B9\u5F0F\n </nz-form-label>\n <nz-form-control nzSpan=\"16\">\n <axis-fun-field formControlName=\"mode\">\n <nz-select ngModel [ngModelOptions]=\"{standalone:true}\">\n <nz-option nzValue=\"left\" nzLabel=\"\u65F6\u95F4\u7EBF\u5728\u5DE6\u4FA7\"></nz-option>\n <nz-option nzValue=\"alternate\" nzLabel=\"\u4EA4\u66FF\u5C55\u73B0\"></nz-option>\n <nz-option nzValue=\"right\" nzLabel=\"\u65F6\u95F4\u7EBF\u5728\u53F3\u4FA7\"></nz-option>\n <nz-option nzValue=\"custom\" nzLabel=\"\u81EA\u5B9A\u4E49\"></nz-option>\n </nz-select>\n </axis-fun-field>\n </nz-form-control>\n </nz-form-item>\n <nz-form-item>\n <nz-form-label nzSpan=\"8\">\n \u8FDB\u884C\u4E2D\u6587\u672C\n </nz-form-label>\n <nz-form-control nzSpan=\"16\">\n <axis-fun-field formControlName=\"pending\">\n <input nz-input placeholder=\"\u4E3A\u7A7A\u65F6\u4E0D\u663E\u793A\" ngModel [ngModelOptions]=\"{standalone:true}\" />\n </axis-fun-field>\n </nz-form-control>\n </nz-form-item>\n <nz-form-item>\n <nz-form-label nzSpan=\"8\" nzRequired>\n \u53CD\u8F6C\u663E\u793A\n </nz-form-label>\n <nz-form-control nzSpan=\"16\">\n <axis-fun-field formControlName=\"reverse\">\n <nz-switch ngModel [ngModelOptions]=\"{standalone:true}\"></nz-switch>\n </axis-fun-field>\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\"></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.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { 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", "nzRequiredMark"], 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", "nzCollapsible"], outputs: ["nzActiveChange"], exportAs: ["nzCollapsePanel"] }, { kind: "component", type: i4.NzCollapseComponent, selector: "nz-collapse", inputs: ["nzAccordion", "nzBordered", "nzGhost", "nzExpandIconPosition", "nzSize"], exportAs: ["nzCollapse"] }, { kind: "component", type: BaseDesignSetting, selector: "axis-base-design-setting", inputs: ["scopeId", "exclude", "fg"] }, { kind: "ngmodule", type: NzSelectModule }, { kind: "component", type: i5.NzOptionComponent, selector: "nz-option", inputs: ["nzTitle", "nzLabel", "nzValue", "nzKey", "nzDisabled", "nzHide", "nzCustomContent"], exportAs: ["nzOption"] }, { kind: "component", type: i5.NzSelectComponent, selector: "nz-select", inputs: ["nzId", "nzSize", "nzStatus", "nzVariant", "nzOptionHeightPx", "nzOptionOverflowSize", "nzDropdownClassName", "nzDropdownMatchSelectWidth", "nzDropdownStyle", "nzNotFoundContent", "nzPlaceHolder", "nzPlacement", "nzMaxTagCount", "nzDropdownRender", "nzCustomTemplate", "nzPrefix", "nzSuffixIcon", "nzClearIcon", "nzRemoveIcon", "nzMenuItemSelectedIcon", "nzTokenSeparators", "nzMaxTagPlaceholder", "nzMaxMultipleCount", "nzMode", "nzFilterOption", "compareWith", "nzAllowClear", "nzBorderless", "nzShowSearch", "nzLoading", "nzAutoFocus", "nzAutoClearSearchValue", "nzServerSearch", "nzDisabled", "nzOpen", "nzSelectOnTab", "nzBackdrop", "nzOptions", "nzShowArrow"], outputs: ["nzOnSearch", "nzScrollToBottom", "nzOpenChange", "nzBlur", "nzFocus", "nzOnClear"], exportAs: ["nzSelect"] }, { kind: "ngmodule", type: NzInputModule }, { kind: "directive", type: i6.NzInputDirective, selector: "input[nz-input],textarea[nz-input]", inputs: ["nzBorderless", "nzVariant", "nzSize", "nzStepperless", "nzStatus", "disabled", "readonly"], exportAs: ["nzInput"] }, { kind: "component", type: FunField, selector: "axis-fun-field", inputs: ["scopes", "exclude", "scopeId", "onlyFun", "noListen", "disabled", "editTip", "value", "open", "showCreateListenModal", "createListenDataSourceName"], outputs: ["valueChange", "openChange", "showCreateListenModalChange", "createListenDataSourceNameChange"] }, { kind: "ngmodule", type: NzSwitchModule }, { kind: "component", type: i7.NzSwitchComponent, selector: "nz-switch", inputs: ["nzLoading", "nzDisabled", "nzControl", "nzCheckedChildren", "nzUnCheckedChildren", "nzSize", "nzId"], exportAs: ["nzSwitch"] }, { kind: "component", type: InputTrigger, selector: "axis-input-trigger", inputs: ["internalTriggers", "optionsNodeId", "value", "eventDesc", "isVisibleHandlerModal", "editEventHandler"], outputs: ["valueChange", "isVisibleHandlerModalChange", "editEventHandlerChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
48
|
+
}
|
|
49
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: TimeLineSetting, decorators: [{
|
|
50
|
+
type: Component,
|
|
51
|
+
args: [{ selector: 'axis-design-time-line-setting', imports: [FormsModule, NzFormModule, ReactiveFormsModule, NzCollapseModule, BaseDesignSetting, NzSelectModule, NzInputModule, FunField, NzSwitchModule, 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\" nzRequired>\n \u5C55\u793A\u65B9\u5F0F\n </nz-form-label>\n <nz-form-control nzSpan=\"16\">\n <axis-fun-field formControlName=\"mode\">\n <nz-select ngModel [ngModelOptions]=\"{standalone:true}\">\n <nz-option nzValue=\"left\" nzLabel=\"\u65F6\u95F4\u7EBF\u5728\u5DE6\u4FA7\"></nz-option>\n <nz-option nzValue=\"alternate\" nzLabel=\"\u4EA4\u66FF\u5C55\u73B0\"></nz-option>\n <nz-option nzValue=\"right\" nzLabel=\"\u65F6\u95F4\u7EBF\u5728\u53F3\u4FA7\"></nz-option>\n <nz-option nzValue=\"custom\" nzLabel=\"\u81EA\u5B9A\u4E49\"></nz-option>\n </nz-select>\n </axis-fun-field>\n </nz-form-control>\n </nz-form-item>\n <nz-form-item>\n <nz-form-label nzSpan=\"8\">\n \u8FDB\u884C\u4E2D\u6587\u672C\n </nz-form-label>\n <nz-form-control nzSpan=\"16\">\n <axis-fun-field formControlName=\"pending\">\n <input nz-input placeholder=\"\u4E3A\u7A7A\u65F6\u4E0D\u663E\u793A\" ngModel [ngModelOptions]=\"{standalone:true}\" />\n </axis-fun-field>\n </nz-form-control>\n </nz-form-item>\n <nz-form-item>\n <nz-form-label nzSpan=\"8\" nzRequired>\n \u53CD\u8F6C\u663E\u793A\n </nz-form-label>\n <nz-form-control nzSpan=\"16\">\n <axis-fun-field formControlName=\"reverse\">\n <nz-switch ngModel [ngModelOptions]=\"{standalone:true}\"></nz-switch>\n </axis-fun-field>\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\"></axis-input-trigger>\n </nz-collapse>\n</form>" }]
|
|
52
|
+
}] });
|
|
53
|
+
|
|
54
|
+
class TimeLineItemSetting extends FunFieldValueBase {
|
|
55
|
+
fg = this.fb.group({
|
|
56
|
+
loop: [false, [FormValidators.required]],
|
|
57
|
+
loopTarget: [],
|
|
58
|
+
inuse: [undefined, FormValidators.requiredFun],
|
|
59
|
+
content: [undefined, FormValidators.requiredFun],
|
|
60
|
+
label: [],
|
|
61
|
+
color: [undefined, FormValidators.requiredFun],
|
|
62
|
+
position: [undefined, FormValidators.requiredFun],
|
|
63
|
+
});
|
|
64
|
+
funFields = {
|
|
65
|
+
loopTarget: {
|
|
66
|
+
defaultValue: []
|
|
67
|
+
},
|
|
68
|
+
inuse: {
|
|
69
|
+
defaultValue: true,
|
|
70
|
+
},
|
|
71
|
+
content: {
|
|
72
|
+
defaultValue: "",
|
|
73
|
+
},
|
|
74
|
+
label: {
|
|
75
|
+
defaultValue: "",
|
|
76
|
+
},
|
|
77
|
+
color: {
|
|
78
|
+
defaultValue: "blue",
|
|
79
|
+
},
|
|
80
|
+
position: {
|
|
81
|
+
defaultValue: "right",
|
|
82
|
+
},
|
|
83
|
+
};
|
|
84
|
+
elementRef = inject(AXIS_DESIGN_COMPONENT_REF_FOR_SETTING_TOKEN);
|
|
85
|
+
mode = computed(() => this.elementRef.ref?.instance.options?.mode(), ...(ngDevMode ? [{ debugName: "mode" }] : []));
|
|
86
|
+
loopTargetResult = signal(undefined, ...(ngDevMode ? [{ debugName: "loopTargetResult" }] : []));
|
|
87
|
+
set loopTargetFunField(v) {
|
|
88
|
+
this.loopTargetResult.set(v?.computeResult);
|
|
89
|
+
}
|
|
90
|
+
loopRowScope = computed(() => {
|
|
91
|
+
if (!this.formValue()?.loop) {
|
|
92
|
+
return [];
|
|
93
|
+
}
|
|
94
|
+
const index = (this.elementRef.ref?.instance.options).items().indexOf(this.value());
|
|
95
|
+
return [{
|
|
96
|
+
scopeId: this.elementRef.options.id + '.' + index + ".loop",
|
|
97
|
+
scopeName: "时间点循环",
|
|
98
|
+
noListen: true,
|
|
99
|
+
ds: {
|
|
100
|
+
loopRow: this.loopTargetResult()?.()?.[0],
|
|
101
|
+
}
|
|
102
|
+
}];
|
|
103
|
+
}, ...(ngDevMode ? [{ debugName: "loopRowScope" }] : []));
|
|
104
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: TimeLineItemSetting, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
105
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.15", type: TimeLineItemSetting, isStandalone: true, selector: "axis-design-time-line-item-setting", viewQueries: [{ propertyName: "loopTargetFunField", first: true, predicate: ["loopTargetFunField"], descendants: true }], 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\" nzRequired>\n \u542F\u7528\u5FAA\u73AF\n </nz-form-label>\n <nz-form-control nzSpan=\"16\">\n <nz-switch formControlName=\"loop\"></nz-switch>\n </nz-form-control>\n </nz-form-item>\n @if (formValue().loop) {\n <nz-form-item>\n <nz-form-label nzSpan=\"8\">\n \u5FAA\u73AF\u76EE\u6807\n </nz-form-label>\n <nz-form-control nzSpan=\"16\">\n <axis-fun-field formControlName=\"loopTarget\" #loopTargetFunField>\n <ng-container [axisDynamic]=\"{component:'axis-components/input-json',inuse:true}\"\n [standalone]=\"true\" ngModel [ngModelOptions]=\"{standalone:true}\"></ng-container>\n </axis-fun-field>\n </nz-form-control>\n </nz-form-item>\n }\n <nz-form-item>\n <nz-form-label nzSpan=\"8\" nzRequired>\n \u662F\u5426\u53EF\u7528\n </nz-form-label>\n <nz-form-control nzSpan=\"16\">\n <axis-fun-field formControlName=\"inuse\" [scopes]=\"loopRowScope()\">\n <nz-switch ngModel [ngModelOptions]=\"{standalone:true}\"></nz-switch>\n </axis-fun-field>\n </nz-form-control>\n </nz-form-item>\n <nz-form-item>\n <nz-form-label nzSpan=\"8\" nzRequired>\n \u5185\u5BB9\n </nz-form-label>\n <nz-form-control nzSpan=\"16\">\n <axis-fun-field formControlName=\"content\" [scopes]=\"loopRowScope()\">\n <input nz-input ngModel [ngModelOptions]=\"{standalone:true}\" />\n </axis-fun-field>\n </nz-form-control>\n </nz-form-item>\n <nz-form-item>\n <nz-form-label nzSpan=\"8\">\n \u6807\u7B7E\n </nz-form-label>\n <nz-form-control nzSpan=\"16\">\n <axis-fun-field formControlName=\"label\" [scopes]=\"loopRowScope()\">\n <input nz-input ngModel [ngModelOptions]=\"{standalone:true}\" />\n </axis-fun-field>\n </nz-form-control>\n </nz-form-item>\n <nz-form-item>\n <nz-form-label nzSpan=\"8\" nzRequired>\n \u989C\u8272\n </nz-form-label>\n <nz-form-control nzSpan=\"16\">\n <axis-fun-field formControlName=\"color\" [scopes]=\"loopRowScope()\">\n <ng-container [axisDynamic]=\"{component:'axis-components/color-picker',inuse:true}\"\n [standalone]=\"true\" ngModel [ngModelOptions]=\"{standalone:true}\"></ng-container>\n </axis-fun-field>\n </nz-form-control>\n </nz-form-item>\n @if(mode() == \"custom\"){\n <nz-form-item>\n <nz-form-label nzSpan=\"8\" nzRequired>\n \u4F4D\u7F6E\n </nz-form-label>\n <nz-form-control nzSpan=\"16\">\n <axis-fun-field formControlName=\"position\" [scopes]=\"loopRowScope()\">\n <nz-radio-group ngModel [ngModelOptions]=\"{standalone:true}\">\n <label nz-radio-button nzValue=\"left\">\u5DE6\u4FA7</label>\n <label nz-radio-button nzValue=\"right\">\u53F3\u4FA7</label>\n </nz-radio-group>\n </axis-fun-field>\n </nz-form-control>\n </nz-form-item>\n }\n </nz-collapse-panel>\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.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { 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", "nzRequiredMark"], 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", "nzCollapsible"], outputs: ["nzActiveChange"], exportAs: ["nzCollapsePanel"] }, { kind: "component", type: i4.NzCollapseComponent, selector: "nz-collapse", inputs: ["nzAccordion", "nzBordered", "nzGhost", "nzExpandIconPosition", "nzSize"], exportAs: ["nzCollapse"] }, { kind: "ngmodule", type: NzSelectModule }, { kind: "ngmodule", type: NzInputModule }, { kind: "directive", type: i6.NzInputDirective, selector: "input[nz-input],textarea[nz-input]", inputs: ["nzBorderless", "nzVariant", "nzSize", "nzStepperless", "nzStatus", "disabled", "readonly"], exportAs: ["nzInput"] }, { kind: "component", type: FunField, selector: "axis-fun-field", inputs: ["scopes", "exclude", "scopeId", "onlyFun", "noListen", "disabled", "editTip", "value", "open", "showCreateListenModal", "createListenDataSourceName"], outputs: ["valueChange", "openChange", "showCreateListenModalChange", "createListenDataSourceNameChange"] }, { kind: "ngmodule", type: NzSwitchModule }, { kind: "component", type: i7.NzSwitchComponent, selector: "nz-switch", inputs: ["nzLoading", "nzDisabled", "nzControl", "nzCheckedChildren", "nzUnCheckedChildren", "nzSize", "nzId"], exportAs: ["nzSwitch"] }, { kind: "directive", type: DynamicDirective, selector: "[axisDynamic]", inputs: ["axisDynamic", "standalone", "isDesign", "forceRenderOnChange"], outputs: ["onRegisteValueAccess"], exportAs: ["axisDynamic"] }, { kind: "ngmodule", type: NzRadioModule }, { kind: "component", type: i7$1.NzRadioComponent, selector: "[nz-radio],[nz-radio-button]", inputs: ["nzValue", "nzDisabled", "nzAutoFocus", "nz-radio-button"], exportAs: ["nzRadio"] }, { kind: "component", type: i7$1.NzRadioGroupComponent, selector: "nz-radio-group", inputs: ["nzDisabled", "nzButtonStyle", "nzSize", "nzName"], exportAs: ["nzRadioGroup"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
106
|
+
}
|
|
107
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: TimeLineItemSetting, decorators: [{
|
|
108
|
+
type: Component,
|
|
109
|
+
args: [{ selector: 'axis-design-time-line-item-setting', imports: [FormsModule, NzFormModule, ReactiveFormsModule, NzCollapseModule, NzSelectModule, NzInputModule, FunField, NzSwitchModule, DynamicDirective, NzRadioModule], 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\" nzRequired>\n \u542F\u7528\u5FAA\u73AF\n </nz-form-label>\n <nz-form-control nzSpan=\"16\">\n <nz-switch formControlName=\"loop\"></nz-switch>\n </nz-form-control>\n </nz-form-item>\n @if (formValue().loop) {\n <nz-form-item>\n <nz-form-label nzSpan=\"8\">\n \u5FAA\u73AF\u76EE\u6807\n </nz-form-label>\n <nz-form-control nzSpan=\"16\">\n <axis-fun-field formControlName=\"loopTarget\" #loopTargetFunField>\n <ng-container [axisDynamic]=\"{component:'axis-components/input-json',inuse:true}\"\n [standalone]=\"true\" ngModel [ngModelOptions]=\"{standalone:true}\"></ng-container>\n </axis-fun-field>\n </nz-form-control>\n </nz-form-item>\n }\n <nz-form-item>\n <nz-form-label nzSpan=\"8\" nzRequired>\n \u662F\u5426\u53EF\u7528\n </nz-form-label>\n <nz-form-control nzSpan=\"16\">\n <axis-fun-field formControlName=\"inuse\" [scopes]=\"loopRowScope()\">\n <nz-switch ngModel [ngModelOptions]=\"{standalone:true}\"></nz-switch>\n </axis-fun-field>\n </nz-form-control>\n </nz-form-item>\n <nz-form-item>\n <nz-form-label nzSpan=\"8\" nzRequired>\n \u5185\u5BB9\n </nz-form-label>\n <nz-form-control nzSpan=\"16\">\n <axis-fun-field formControlName=\"content\" [scopes]=\"loopRowScope()\">\n <input nz-input ngModel [ngModelOptions]=\"{standalone:true}\" />\n </axis-fun-field>\n </nz-form-control>\n </nz-form-item>\n <nz-form-item>\n <nz-form-label nzSpan=\"8\">\n \u6807\u7B7E\n </nz-form-label>\n <nz-form-control nzSpan=\"16\">\n <axis-fun-field formControlName=\"label\" [scopes]=\"loopRowScope()\">\n <input nz-input ngModel [ngModelOptions]=\"{standalone:true}\" />\n </axis-fun-field>\n </nz-form-control>\n </nz-form-item>\n <nz-form-item>\n <nz-form-label nzSpan=\"8\" nzRequired>\n \u989C\u8272\n </nz-form-label>\n <nz-form-control nzSpan=\"16\">\n <axis-fun-field formControlName=\"color\" [scopes]=\"loopRowScope()\">\n <ng-container [axisDynamic]=\"{component:'axis-components/color-picker',inuse:true}\"\n [standalone]=\"true\" ngModel [ngModelOptions]=\"{standalone:true}\"></ng-container>\n </axis-fun-field>\n </nz-form-control>\n </nz-form-item>\n @if(mode() == \"custom\"){\n <nz-form-item>\n <nz-form-label nzSpan=\"8\" nzRequired>\n \u4F4D\u7F6E\n </nz-form-label>\n <nz-form-control nzSpan=\"16\">\n <axis-fun-field formControlName=\"position\" [scopes]=\"loopRowScope()\">\n <nz-radio-group ngModel [ngModelOptions]=\"{standalone:true}\">\n <label nz-radio-button nzValue=\"left\">\u5DE6\u4FA7</label>\n <label nz-radio-button nzValue=\"right\">\u53F3\u4FA7</label>\n </nz-radio-group>\n </axis-fun-field>\n </nz-form-control>\n </nz-form-item>\n }\n </nz-collapse-panel>\n </nz-collapse>\n</form>" }]
|
|
110
|
+
}], propDecorators: { loopTargetFunField: [{
|
|
111
|
+
type: ViewChild,
|
|
112
|
+
args: ["loopTargetFunField"]
|
|
113
|
+
}] } });
|
|
114
|
+
|
|
115
|
+
class TimeLineMenu extends BaseMenu {
|
|
116
|
+
addItem() {
|
|
117
|
+
this.optionsNodes.current.options.items.push({
|
|
118
|
+
content: "未命名",
|
|
119
|
+
inuse: true,
|
|
120
|
+
});
|
|
121
|
+
this.onChange?.({ nextNodeId: `${this.optionsNodes.current?.id}.${this.optionsNodes.current.options.items.length}`, historyDesc: "添加时间点" });
|
|
122
|
+
}
|
|
123
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: TimeLineMenu, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
124
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.15", type: TimeLineMenu, isStandalone: true, selector: "axis-design-time-line-menu", usesInheritance: true, ngImport: i0, template: "<nz-dropdown-menu #menu=\"nzDropdownMenu\">\n <ul nz-menu>\n <li nz-menu-item (click)=\"addItem()\">\n <i nz-icon nzType=\"plus\" nzTheme=\"outline\"></i>\n <nz-divider nzType=\"vertical\"></nz-divider>\n <span>\u6DFB\u52A0\u65F6\u95F4\u70B9</span>\n </li>\n <axis-common-menu [baseMenu]=\"this\"></axis-common-menu>\n </ul>\n</nz-dropdown-menu>", styles: [""], dependencies: [{ kind: "ngmodule", type: NzDropDownModule }, { kind: "directive", type: i1$1.NzMenuDirective, selector: "[nz-menu]", inputs: ["nzInlineIndent", "nzTheme", "nzMode", "nzInlineCollapsed", "nzSelectable"], outputs: ["nzClick"], exportAs: ["nzMenu"] }, { kind: "component", type: i1$1.NzMenuItemComponent, selector: "[nz-menu-item]", inputs: ["nzPaddingLeft", "nzDisabled", "nzSelected", "nzDanger", "nzMatchRouterExact", "nzMatchRouter"], exportAs: ["nzMenuItem"] }, { kind: "component", type: i2$1.NzDropdownMenuComponent, selector: "nz-dropdown-menu", exportAs: ["nzDropdownMenu"] }, { kind: "ngmodule", type: NzDividerModule }, { kind: "component", type: i3$1.NzDividerComponent, selector: "nz-divider", inputs: ["nzText", "nzType", "nzOrientation", "nzVariant", "nzSize", "nzDashed", "nzPlain"], exportAs: ["nzDivider"] }, { kind: "ngmodule", type: NzIconModule }, { kind: "directive", type: i4$1.NzIconDirective, selector: "nz-icon,[nz-icon]", inputs: ["nzSpin", "nzRotate", "nzType", "nzTheme", "nzTwotoneColor", "nzIconfont"], exportAs: ["nzIcon"] }, { kind: "component", type: CommonMenu, selector: "axis-common-menu", inputs: ["baseMenu"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
125
|
+
}
|
|
126
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: TimeLineMenu, decorators: [{
|
|
127
|
+
type: Component,
|
|
128
|
+
args: [{ selector: 'axis-design-time-line-menu', imports: [NzDropDownModule, NzDividerModule, NzIconModule, CommonMenu], changeDetection: ChangeDetectionStrategy.OnPush, template: "<nz-dropdown-menu #menu=\"nzDropdownMenu\">\n <ul nz-menu>\n <li nz-menu-item (click)=\"addItem()\">\n <i nz-icon nzType=\"plus\" nzTheme=\"outline\"></i>\n <nz-divider nzType=\"vertical\"></nz-divider>\n <span>\u6DFB\u52A0\u65F6\u95F4\u70B9</span>\n </li>\n <axis-common-menu [baseMenu]=\"this\"></axis-common-menu>\n </ul>\n</nz-dropdown-menu>" }]
|
|
129
|
+
}] });
|
|
130
|
+
|
|
131
|
+
const Config = {
|
|
132
|
+
componentName: "时间轴",
|
|
133
|
+
buildOptionsNodes(nextInfo) {
|
|
134
|
+
return {
|
|
135
|
+
treeNode: new OptionsNode({
|
|
136
|
+
parentId: nextInfo.parentId,
|
|
137
|
+
scopeId: nextInfo.scopeId,
|
|
138
|
+
name: "时间轴",
|
|
139
|
+
canSetting: true,
|
|
140
|
+
canDrag: true,
|
|
141
|
+
dragType: "component",
|
|
142
|
+
canDrop: true,
|
|
143
|
+
dropType: "axis-components/time-line/item",
|
|
144
|
+
dropObj: nextInfo.currentObject.items,
|
|
145
|
+
defaultDropIndex: nextInfo.currentObject.items?.length,
|
|
146
|
+
parentObj: nextInfo.parentObject,
|
|
147
|
+
indexOfParentObj: nextInfo.indexOfParent,
|
|
148
|
+
rootOptions: nextInfo.currentObject,
|
|
149
|
+
settingType: TimeLineSetting,
|
|
150
|
+
contextMenu: TimeLineMenu,
|
|
151
|
+
icon: "node-index",
|
|
152
|
+
childDirection: "vertical",
|
|
153
|
+
onPaste: (node) => {
|
|
154
|
+
if (node.options.color) {
|
|
155
|
+
nextInfo.currentObject.items ??= [];
|
|
156
|
+
nextInfo.currentObject.items.push(copy(node.options, true));
|
|
157
|
+
}
|
|
158
|
+
},
|
|
159
|
+
children: nextInfo.currentObject.items?.map((s, i) => new OptionsNode({
|
|
160
|
+
id: nextInfo.currentObject.id + "." + i,
|
|
161
|
+
parentId: nextInfo.currentObject.id,
|
|
162
|
+
scopeId: nextInfo.scopeId,
|
|
163
|
+
name: "时间点",
|
|
164
|
+
canSetting: true,
|
|
165
|
+
canDrag: true,
|
|
166
|
+
dragType: "axis-components/time-line/item",
|
|
167
|
+
settingType: TimeLineItemSetting,
|
|
168
|
+
contextMenu: SimpleMenu,
|
|
169
|
+
icon: "info-circle",
|
|
170
|
+
rootOptions: s,
|
|
171
|
+
parentObj: nextInfo.currentObject.items,
|
|
172
|
+
indexOfParentObj: i
|
|
173
|
+
})),
|
|
174
|
+
})
|
|
175
|
+
};
|
|
176
|
+
},
|
|
177
|
+
bindElementsOptionsNode(element, options) {
|
|
178
|
+
const dropElement = element.querySelector("ul.ant-timeline");
|
|
179
|
+
const res = {
|
|
180
|
+
[options.id]: { element, dropElement }
|
|
181
|
+
};
|
|
182
|
+
const items = element.querySelectorAll("li.ant-timeline-item span[data-index]");
|
|
183
|
+
for (const i of items) {
|
|
184
|
+
const item = i;
|
|
185
|
+
const index = item.dataset['index'];
|
|
186
|
+
const key = `${options.id}.${index}`;
|
|
187
|
+
if (!res[key]) {
|
|
188
|
+
res[key] = { elements: [] };
|
|
189
|
+
}
|
|
190
|
+
res[key].elements.push(item.parentElement.parentElement);
|
|
191
|
+
}
|
|
192
|
+
return res;
|
|
193
|
+
},
|
|
194
|
+
};
|
|
195
|
+
|
|
196
|
+
/**
|
|
197
|
+
* Generated bundle index. Do not edit.
|
|
198
|
+
*/
|
|
199
|
+
|
|
200
|
+
export { Config };
|
|
201
|
+
//# sourceMappingURL=ngx-axis-appforge-axis-components-time-line-design.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ngx-axis-appforge-axis-components-time-line-design.mjs","sources":["../../../axis-components/time-line/design/time-line-setting/time-line-setting.ts","../../../axis-components/time-line/design/time-line-setting/time-line-setting.html","../../../axis-components/time-line/design/time-line-item-setting/time-line-item-setting.ts","../../../axis-components/time-line/design/time-line-item-setting/time-line-item-setting.html","../../../axis-components/time-line/design/time-line-menu/time-line-menu.ts","../../../axis-components/time-line/design/time-line-menu/time-line-menu.html","../../../axis-components/time-line/design/config.ts","../../../axis-components/time-line/design/ngx-axis-appforge-axis-components-time-line-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 { NzInputModule } from 'ng-zorro-antd/input';\nimport { NzSelectModule } from 'ng-zorro-antd/select';\nimport { BaseDesignSetting, baseFbConfig, baseFunField, FormValidators, FunField, FunFieldOptions, FunFieldValueBase, InputTrigger } from 'ngx-axis-appforge/core';\nimport { NzSwitchModule } from \"ng-zorro-antd/switch\";\n\n@Component({\n selector: 'axis-design-time-line-setting',\n imports: [FormsModule, NzFormModule, ReactiveFormsModule, NzCollapseModule, BaseDesignSetting, NzSelectModule, NzInputModule, FunField, NzSwitchModule, InputTrigger],\n templateUrl: './time-line-setting.html',\n styleUrl: './time-line-setting.css',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TimeLineSetting extends FunFieldValueBase {\n\n override fg: UntypedFormGroup = this.fb.group({\n ...baseFbConfig,\n mode: [undefined, FormValidators.requiredFun],\n pending: [],\n reverse: [undefined, FormValidators.requiredFun],\n });\n\n protected override funFields: FunFieldOptions = {\n ...baseFunField,\n mode: {\n defaultValue: \"left\",\n },\n pending: {\n defaultValue: \"\",\n },\n reverse: {\n defaultValue: false,\n },\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\" nzRequired>\n 展示方式\n </nz-form-label>\n <nz-form-control nzSpan=\"16\">\n <axis-fun-field formControlName=\"mode\">\n <nz-select ngModel [ngModelOptions]=\"{standalone:true}\">\n <nz-option nzValue=\"left\" nzLabel=\"时间线在左侧\"></nz-option>\n <nz-option nzValue=\"alternate\" nzLabel=\"交替展现\"></nz-option>\n <nz-option nzValue=\"right\" nzLabel=\"时间线在右侧\"></nz-option>\n <nz-option nzValue=\"custom\" nzLabel=\"自定义\"></nz-option>\n </nz-select>\n </axis-fun-field>\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 <axis-fun-field formControlName=\"pending\">\n <input nz-input placeholder=\"为空时不显示\" ngModel [ngModelOptions]=\"{standalone:true}\" />\n </axis-fun-field>\n </nz-form-control>\n </nz-form-item>\n <nz-form-item>\n <nz-form-label nzSpan=\"8\" nzRequired>\n 反转显示\n </nz-form-label>\n <nz-form-control nzSpan=\"16\">\n <axis-fun-field formControlName=\"reverse\">\n <nz-switch ngModel [ngModelOptions]=\"{standalone:true}\"></nz-switch>\n </axis-fun-field>\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\"></axis-input-trigger>\n </nz-collapse>\n</form>","import { ChangeDetectionStrategy, Component, computed, inject, Signal, signal, ViewChild } 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 { NzInputModule } from 'ng-zorro-antd/input';\nimport { NzSelectModule } from 'ng-zorro-antd/select';\nimport { AXIS_DESIGN_COMPONENT_REF_FOR_SETTING_TOKEN, DynamicDirective, FormValidators, FunField, FunFieldOptions, FunFieldValueBase, ScopeInfo } from 'ngx-axis-appforge/core';\nimport { NzSwitchModule } from \"ng-zorro-antd/switch\";\nimport { NzRadioModule } from \"ng-zorro-antd/radio\";\n\n@Component({\n selector: 'axis-design-time-line-item-setting',\n imports: [FormsModule, NzFormModule, ReactiveFormsModule, NzCollapseModule, NzSelectModule, NzInputModule, FunField, NzSwitchModule, DynamicDirective, NzRadioModule],\n templateUrl: './time-line-item-setting.html',\n styleUrl: './time-line-item-setting.css',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TimeLineItemSetting extends FunFieldValueBase {\n\n override fg: UntypedFormGroup = this.fb.group({\n loop: [false, [FormValidators.required]],\n loopTarget: [],\n inuse: [undefined, FormValidators.requiredFun],\n content: [undefined, FormValidators.requiredFun],\n label: [],\n color: [undefined, FormValidators.requiredFun],\n position: [undefined, FormValidators.requiredFun],\n });\n\n protected override funFields: FunFieldOptions = {\n loopTarget: {\n defaultValue: []\n },\n inuse: {\n defaultValue: true,\n },\n content: {\n defaultValue: \"\",\n },\n label: {\n defaultValue: \"\",\n },\n color: {\n defaultValue: \"blue\",\n },\n position: {\n defaultValue: \"right\",\n },\n };\n\n readonly elementRef = inject(AXIS_DESIGN_COMPONENT_REF_FOR_SETTING_TOKEN);\n\n readonly mode = computed(() => (this.elementRef.ref?.instance.options as any)?.mode())\n\n loopTargetResult = signal<Signal<any> | undefined>(undefined);\n\n @ViewChild(\"loopTargetFunField\")\n set loopTargetFunField(v: FunField | undefined) {\n this.loopTargetResult.set(v?.computeResult);\n }\n readonly loopRowScope = computed<ScopeInfo[]>(() => {\n if (!this.formValue()?.loop) {\n return [];\n }\n const index = (this.elementRef.ref?.instance.options as any).items().indexOf(this.value());\n return [{\n scopeId: this.elementRef.options.id + '.' + index + \".loop\",\n scopeName: \"时间点循环\",\n noListen: true,\n ds: {\n loopRow: this.loopTargetResult()?.()?.[0],\n }\n }];\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\" nzRequired>\n 启用循环\n </nz-form-label>\n <nz-form-control nzSpan=\"16\">\n <nz-switch formControlName=\"loop\"></nz-switch>\n </nz-form-control>\n </nz-form-item>\n @if (formValue().loop) {\n <nz-form-item>\n <nz-form-label nzSpan=\"8\">\n 循环目标\n </nz-form-label>\n <nz-form-control nzSpan=\"16\">\n <axis-fun-field formControlName=\"loopTarget\" #loopTargetFunField>\n <ng-container [axisDynamic]=\"{component:'axis-components/input-json',inuse:true}\"\n [standalone]=\"true\" ngModel [ngModelOptions]=\"{standalone:true}\"></ng-container>\n </axis-fun-field>\n </nz-form-control>\n </nz-form-item>\n }\n <nz-form-item>\n <nz-form-label nzSpan=\"8\" nzRequired>\n 是否可用\n </nz-form-label>\n <nz-form-control nzSpan=\"16\">\n <axis-fun-field formControlName=\"inuse\" [scopes]=\"loopRowScope()\">\n <nz-switch ngModel [ngModelOptions]=\"{standalone:true}\"></nz-switch>\n </axis-fun-field>\n </nz-form-control>\n </nz-form-item>\n <nz-form-item>\n <nz-form-label nzSpan=\"8\" nzRequired>\n 内容\n </nz-form-label>\n <nz-form-control nzSpan=\"16\">\n <axis-fun-field formControlName=\"content\" [scopes]=\"loopRowScope()\">\n <input nz-input ngModel [ngModelOptions]=\"{standalone:true}\" />\n </axis-fun-field>\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 <axis-fun-field formControlName=\"label\" [scopes]=\"loopRowScope()\">\n <input nz-input ngModel [ngModelOptions]=\"{standalone:true}\" />\n </axis-fun-field>\n </nz-form-control>\n </nz-form-item>\n <nz-form-item>\n <nz-form-label nzSpan=\"8\" nzRequired>\n 颜色\n </nz-form-label>\n <nz-form-control nzSpan=\"16\">\n <axis-fun-field formControlName=\"color\" [scopes]=\"loopRowScope()\">\n <ng-container [axisDynamic]=\"{component:'axis-components/color-picker',inuse:true}\"\n [standalone]=\"true\" ngModel [ngModelOptions]=\"{standalone:true}\"></ng-container>\n </axis-fun-field>\n </nz-form-control>\n </nz-form-item>\n @if(mode() == \"custom\"){\n <nz-form-item>\n <nz-form-label nzSpan=\"8\" nzRequired>\n 位置\n </nz-form-label>\n <nz-form-control nzSpan=\"16\">\n <axis-fun-field formControlName=\"position\" [scopes]=\"loopRowScope()\">\n <nz-radio-group ngModel [ngModelOptions]=\"{standalone:true}\">\n <label nz-radio-button nzValue=\"left\">左侧</label>\n <label nz-radio-button nzValue=\"right\">右侧</label>\n </nz-radio-group>\n </axis-fun-field>\n </nz-form-control>\n </nz-form-item>\n }\n </nz-collapse-panel>\n </nz-collapse>\n</form>","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { NzDividerModule } from 'ng-zorro-antd/divider';\nimport { NzDropDownModule } from 'ng-zorro-antd/dropdown';\nimport { NzIconModule } from 'ng-zorro-antd/icon';\nimport { BaseMenu, CommonMenu } from 'ngx-axis-appforge/core';\n\n@Component({\n selector: 'axis-design-time-line-menu',\n imports: [NzDropDownModule, NzDividerModule, NzIconModule, CommonMenu],\n templateUrl: './time-line-menu.html',\n styleUrl: './time-line-menu.css',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TimeLineMenu extends BaseMenu {\n\n addItem() {\n this.optionsNodes.current.options.items.push({\n content: \"未命名\",\n inuse: true,\n });\n this.onChange?.({ nextNodeId: `${this.optionsNodes.current?.id}.${this.optionsNodes.current.options.items.length}`, historyDesc: \"添加时间点\" });\n }\n}\n","<nz-dropdown-menu #menu=\"nzDropdownMenu\">\n <ul nz-menu>\n <li nz-menu-item (click)=\"addItem()\">\n <i nz-icon nzType=\"plus\" nzTheme=\"outline\"></i>\n <nz-divider nzType=\"vertical\"></nz-divider>\n <span>添加时间点</span>\n </li>\n <axis-common-menu [baseMenu]=\"this\"></axis-common-menu>\n </ul>\n</nz-dropdown-menu>","import { NextInfo, DesignBuildResult, DesignBindElementsResult, DesignConfig, OptionsNode, nameCode, SimpleMenu, copy } from \"ngx-axis-appforge/core\";\nimport { TimeLineSetting } from \"./time-line-setting/time-line-setting\";\nimport { TimeLineItemSetting } from \"./time-line-item-setting/time-line-item-setting\";\nimport { TimeLineMenu } from \"./time-line-menu/time-line-menu\";\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: \"axis-components/time-line/item\",\n dropObj: nextInfo.currentObject.items,\n defaultDropIndex: nextInfo.currentObject.items?.length,\n parentObj: nextInfo.parentObject,\n indexOfParentObj: nextInfo.indexOfParent,\n rootOptions: nextInfo.currentObject,\n settingType: TimeLineSetting,\n contextMenu: TimeLineMenu,\n icon: \"node-index\",\n childDirection: \"vertical\",\n onPaste: (node) => {\n if (node.options.color) {\n nextInfo.currentObject.items ??= [];\n nextInfo.currentObject.items.push(copy(node.options, true))\n }\n },\n children: nextInfo.currentObject.items?.map((s: any, i: number) => new OptionsNode({\n id: nextInfo.currentObject.id + \".\" + i,\n parentId: nextInfo.currentObject.id,\n scopeId: nextInfo.scopeId,\n name: \"时间点\",\n canSetting: true,\n canDrag: true,\n dragType: \"axis-components/time-line/item\",\n settingType: TimeLineItemSetting,\n contextMenu: SimpleMenu,\n icon: \"info-circle\",\n rootOptions: s,\n parentObj: nextInfo.currentObject.items,\n indexOfParentObj: i\n })),\n })\n };\n },\n bindElementsOptionsNode(element: HTMLElement, options: any): DesignBindElementsResult {\n const dropElement = element.querySelector(\"ul.ant-timeline\") as HTMLElement;\n const res: DesignBindElementsResult = {\n [options.id]: { element, dropElement }\n };\n const items = element.querySelectorAll(\"li.ant-timeline-item span[data-index]\");\n for (const i of items) {\n const item = i as HTMLElement;\n const index = item.dataset['index'];\n const key = `${options.id}.${index}`;\n if (!res[key]) {\n res[key] = { elements: [] };\n }\n res[key].elements!.push(item.parentElement!.parentElement!);\n }\n return res\n },\n};\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './config';\n"],"names":["i5","i6","i7","i3","i4"],"mappings":"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"}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { signal, effect, computed, ChangeDetectionStrategy, Component } from '@angular/core';
|
|
3
|
+
import { BaseOptions, Base } from 'ngx-axis-appforge/core';
|
|
4
|
+
import * as i1 from 'ng-zorro-antd/timeline';
|
|
5
|
+
import { NzTimelineModule } from 'ng-zorro-antd/timeline';
|
|
6
|
+
import { filter } from 'rxjs';
|
|
7
|
+
|
|
8
|
+
class TimeLineOptions extends BaseOptions {
|
|
9
|
+
mode = signal("left", ...(ngDevMode ? [{ debugName: "mode" }] : []));
|
|
10
|
+
pending = signal("", ...(ngDevMode ? [{ debugName: "pending" }] : []));
|
|
11
|
+
reverse = signal(false, ...(ngDevMode ? [{ debugName: "reverse" }] : []));
|
|
12
|
+
items = signal([], ...(ngDevMode ? [{ debugName: "items" }] : []));
|
|
13
|
+
}
|
|
14
|
+
class TimeLineItemOptions {
|
|
15
|
+
loop = false;
|
|
16
|
+
loopTarget = undefined;
|
|
17
|
+
inuse = signal(true, ...(ngDevMode ? [{ debugName: "inuse" }] : []));
|
|
18
|
+
content = signal("", ...(ngDevMode ? [{ debugName: "content" }] : []));
|
|
19
|
+
label = signal("", ...(ngDevMode ? [{ debugName: "label" }] : []));
|
|
20
|
+
color = signal("blue", ...(ngDevMode ? [{ debugName: "color" }] : []));
|
|
21
|
+
position = signal("right", ...(ngDevMode ? [{ debugName: "position" }] : []));
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
class TimeLine extends Base {
|
|
25
|
+
constructor() {
|
|
26
|
+
super();
|
|
27
|
+
effect(() => {
|
|
28
|
+
let i = 0;
|
|
29
|
+
const loopItemDataMap = new Map();
|
|
30
|
+
const loopItemIndexMap = new Map();
|
|
31
|
+
this.options.items().forEach((f, oi) => {
|
|
32
|
+
if (f.loop) {
|
|
33
|
+
for (const item of this.loopItemMap().get(oi)()) {
|
|
34
|
+
loopItemDataMap.set(this.items()[i], item);
|
|
35
|
+
loopItemIndexMap.set(this.items()[i], oi);
|
|
36
|
+
this.bindWithConfig(f, { options: this.items()[i], tag: `bindItem.${i}`, tempDataSource: { loopRow: item } });
|
|
37
|
+
i++;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
else {
|
|
41
|
+
loopItemIndexMap.set(this.items()[i], oi);
|
|
42
|
+
this.bindWithConfig(f, { options: this.items()[i], tag: `bindItem.${i}` });
|
|
43
|
+
i++;
|
|
44
|
+
}
|
|
45
|
+
});
|
|
46
|
+
this.loopItemDataMap.set(loopItemDataMap);
|
|
47
|
+
this.loopItemIndexMap.set(loopItemIndexMap);
|
|
48
|
+
});
|
|
49
|
+
effect(() => {
|
|
50
|
+
this.options.items().forEach((item, oi) => {
|
|
51
|
+
if (item.loop) {
|
|
52
|
+
const s = this.loopItemMap().get(oi);
|
|
53
|
+
const io = this.getScope()?.dynamicField(item, "loopTarget", false);
|
|
54
|
+
if (io?.init !== undefined) {
|
|
55
|
+
s.set(io.init);
|
|
56
|
+
}
|
|
57
|
+
if (io?.obs) {
|
|
58
|
+
this.addSubscribe(io.obs.pipe(filter(v => v !== undefined))
|
|
59
|
+
.subscribe(s.set), `bindItemLoop.${oi}`);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
});
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
options = new TimeLineOptions();
|
|
66
|
+
items = computed(() => this.buildItems(), ...(ngDevMode ? [{ debugName: "items" }] : []));
|
|
67
|
+
displayTimeLine = computed(() => this.items().filter(s => s.inuse()), ...(ngDevMode ? [{ debugName: "displayTimeLine" }] : []));
|
|
68
|
+
loopItemMap = computed(() => {
|
|
69
|
+
const loopItemMap = new Map();
|
|
70
|
+
this.options.items().forEach((item, i) => {
|
|
71
|
+
if (item.loop) {
|
|
72
|
+
loopItemMap.set(i, signal([]));
|
|
73
|
+
}
|
|
74
|
+
});
|
|
75
|
+
return loopItemMap;
|
|
76
|
+
}, ...(ngDevMode ? [{ debugName: "loopItemMap" }] : []));
|
|
77
|
+
loopItemDataMap = signal(new Map(), ...(ngDevMode ? [{ debugName: "loopItemDataMap" }] : []));
|
|
78
|
+
loopItemIndexMap = signal(new Map(), ...(ngDevMode ? [{ debugName: "loopItemIndexMap" }] : []));
|
|
79
|
+
buildItems() {
|
|
80
|
+
const items = [];
|
|
81
|
+
this.options.items().forEach((item, oi) => {
|
|
82
|
+
if (item.loop) {
|
|
83
|
+
for (const _ of this.loopItemMap().get(oi)()) {
|
|
84
|
+
items.push(new TimeLineItemOptions());
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
else {
|
|
88
|
+
items.push(new TimeLineItemOptions());
|
|
89
|
+
}
|
|
90
|
+
});
|
|
91
|
+
return items;
|
|
92
|
+
}
|
|
93
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: TimeLine, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
94
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.15", type: TimeLine, isStandalone: true, selector: "axis-time-line", usesInheritance: true, ngImport: i0, template: "<nz-timeline [nzMode]=\"options.mode()\" [nzPending]=\"options.pending() || false\" [nzReverse]=\"options.reverse()\">\n @for (item of items(); track $index;) {\n <nz-timeline-item [nzColor]=\"item.color()\" [nzPosition]=\"options.mode()=='custom'?item.position():undefined\"\n [nzLabel]=\"item.label() || undefined\">\n <span [attr.data-index]=\"loopItemIndexMap().get(item)\" style=\"white-space: pre;\">{{item.content()}}</span>\n </nz-timeline-item>\n }\n</nz-timeline>", styles: [":host{display:block}\n"], dependencies: [{ kind: "ngmodule", type: NzTimelineModule }, { kind: "component", type: i1.NzTimelineItemComponent, selector: "nz-timeline-item, [nz-timeline-item]", inputs: ["nzPosition", "nzColor", "nzDot", "nzLabel"], exportAs: ["nzTimelineItem"] }, { kind: "component", type: i1.NzTimelineComponent, selector: "nz-timeline", inputs: ["nzMode", "nzPending", "nzPendingDot", "nzReverse"], exportAs: ["nzTimeline"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
95
|
+
}
|
|
96
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: TimeLine, decorators: [{
|
|
97
|
+
type: Component,
|
|
98
|
+
args: [{ selector: 'axis-time-line', imports: [NzTimelineModule], changeDetection: ChangeDetectionStrategy.OnPush, template: "<nz-timeline [nzMode]=\"options.mode()\" [nzPending]=\"options.pending() || false\" [nzReverse]=\"options.reverse()\">\n @for (item of items(); track $index;) {\n <nz-timeline-item [nzColor]=\"item.color()\" [nzPosition]=\"options.mode()=='custom'?item.position():undefined\"\n [nzLabel]=\"item.label() || undefined\">\n <span [attr.data-index]=\"loopItemIndexMap().get(item)\" style=\"white-space: pre;\">{{item.content()}}</span>\n </nz-timeline-item>\n }\n</nz-timeline>", styles: [":host{display:block}\n"] }]
|
|
99
|
+
}], ctorParameters: () => [] });
|
|
100
|
+
|
|
101
|
+
/**
|
|
102
|
+
* Generated bundle index. Do not edit.
|
|
103
|
+
*/
|
|
104
|
+
|
|
105
|
+
export { TimeLine };
|
|
106
|
+
//# sourceMappingURL=ngx-axis-appforge-axis-components-time-line.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ngx-axis-appforge-axis-components-time-line.mjs","sources":["../../../axis-components/time-line/time-line.options.ts","../../../axis-components/time-line/time-line.ts","../../../axis-components/time-line/time-line.html","../../../axis-components/time-line/ngx-axis-appforge-axis-components-time-line.ts"],"sourcesContent":["import { signal } from \"@angular/core\";\nimport { BaseOptions } from \"ngx-axis-appforge/core\";\n\nexport class TimeLineOptions extends BaseOptions {\n readonly mode = signal<'left' | 'alternate' | 'right' | 'custom'>(\"left\");\n readonly pending = signal(\"\");\n readonly reverse = signal(false);\n readonly items = signal<any[]>([]);\n}\n\nexport class TimeLineItemOptions {\n loop = false\n loopTarget: any[] | undefined = undefined;\n readonly inuse = signal(true);\n readonly content = signal(\"\");\n readonly label = signal(\"\");\n readonly color = signal(\"blue\");\n readonly position = signal<'left' | 'right'>(\"right\");\n}","import { ChangeDetectionStrategy, Component, computed, effect, signal, WritableSignal } from '@angular/core';\nimport { TimeLineItemOptions, TimeLineOptions } from './time-line.options';\nimport { Base } from 'ngx-axis-appforge/core';\nimport { NzTimelineModule } from 'ng-zorro-antd/timeline';\nimport { filter } from 'rxjs';\n\n@Component({\n selector: 'axis-time-line',\n imports: [NzTimelineModule],\n templateUrl: './time-line.html',\n styleUrl: './time-line.css',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TimeLine extends Base<TimeLineOptions> {\n\n constructor() {\n super();\n effect(() => {\n let i = 0;\n const loopItemDataMap = new Map<TimeLineItemOptions, any>();\n const loopItemIndexMap = new Map<TimeLineItemOptions, number>();\n this.options.items().forEach((f, oi) => {\n if (f.loop) {\n for (const item of this.loopItemMap().get(oi)!()) {\n loopItemDataMap.set(this.items()[i], item);\n loopItemIndexMap.set(this.items()[i], oi);\n this.bindWithConfig(f, { options: this.items()[i], tag: `bindItem.${i}`, tempDataSource: { loopRow: item } });\n i++;\n }\n } else {\n loopItemIndexMap.set(this.items()[i], oi);\n this.bindWithConfig(f, { options: this.items()[i], tag: `bindItem.${i}` });\n i++;\n }\n });\n this.loopItemDataMap.set(loopItemDataMap);\n this.loopItemIndexMap.set(loopItemIndexMap);\n });\n effect(() => {\n this.options.items().forEach((item, oi) => {\n if (item.loop) {\n const s = this.loopItemMap().get(oi)!;\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), `bindItemLoop.${oi}`);\n }\n }\n });\n });\n }\n override options: TimeLineOptions = new TimeLineOptions();\n readonly items = computed(() => this.buildItems());\n readonly displayTimeLine = computed(() => this.items().filter(s => s.inuse()));\n\n readonly loopItemMap = computed(() => {\n const loopItemMap = new Map<number, WritableSignal<any[]>>();\n this.options.items().forEach((item, i) => {\n if (item.loop) {\n loopItemMap.set(i, signal([]));\n }\n });\n return loopItemMap;\n });\n readonly loopItemDataMap = signal<Map<TimeLineItemOptions, any>>(new Map());\n readonly loopItemIndexMap = signal<Map<TimeLineItemOptions, number>>(new Map());\n\n private buildItems(): TimeLineItemOptions[] {\n const items: TimeLineItemOptions[] = [];\n this.options.items().forEach((item, oi) => {\n if (item.loop) {\n for (const _ of this.loopItemMap().get(oi)!()) {\n items.push(new TimeLineItemOptions());\n }\n } else {\n items.push(new TimeLineItemOptions());\n }\n });\n return items;\n }\n\n}\n","<nz-timeline [nzMode]=\"options.mode()\" [nzPending]=\"options.pending() || false\" [nzReverse]=\"options.reverse()\">\n @for (item of items(); track $index;) {\n <nz-timeline-item [nzColor]=\"item.color()\" [nzPosition]=\"options.mode()=='custom'?item.position():undefined\"\n [nzLabel]=\"item.label() || undefined\">\n <span [attr.data-index]=\"loopItemIndexMap().get(item)\" style=\"white-space: pre;\">{{item.content()}}</span>\n </nz-timeline-item>\n }\n</nz-timeline>","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './time-line';\n"],"names":[],"mappings":"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"}
|
|
@@ -87,6 +87,12 @@ const cmpMap = {
|
|
|
87
87
|
"axis-components/echarts/design": () => import('ngx-axis-appforge/axis-components/echarts/design'),
|
|
88
88
|
"axis-components/video": () => import('ngx-axis-appforge/axis-components/video'),
|
|
89
89
|
"axis-components/video/design": () => import('ngx-axis-appforge/axis-components/video/design'),
|
|
90
|
+
"axis-components/drawer": () => import('ngx-axis-appforge/axis-components/drawer'),
|
|
91
|
+
"axis-components/drawer/design": () => import('ngx-axis-appforge/axis-components/drawer/design'),
|
|
92
|
+
"axis-components/time-line": () => import('ngx-axis-appforge/axis-components/time-line'),
|
|
93
|
+
"axis-components/time-line/design": () => import('ngx-axis-appforge/axis-components/time-line/design'),
|
|
94
|
+
"axis-components/input-list": () => import('ngx-axis-appforge/axis-components/input-list'),
|
|
95
|
+
"axis-components/input-list/design": () => import('ngx-axis-appforge/axis-components/input-list/design'),
|
|
90
96
|
};
|
|
91
97
|
|
|
92
98
|
const buttonExampleDesc = {
|
|
@@ -1567,7 +1573,7 @@ const richTextEditorExampleDesc = {
|
|
|
1567
1573
|
const echartsExampleDesc = {
|
|
1568
1574
|
component: "图表",
|
|
1569
1575
|
coverImg: "assets/axis-components-covers/echarts.png",
|
|
1570
|
-
span:
|
|
1576
|
+
span: 12,
|
|
1571
1577
|
height: 80,
|
|
1572
1578
|
example: {
|
|
1573
1579
|
options: {
|
|
@@ -1657,6 +1663,71 @@ const videoExampleDesc = {
|
|
|
1657
1663
|
}
|
|
1658
1664
|
};
|
|
1659
1665
|
|
|
1666
|
+
const drawerExampleDesc = {
|
|
1667
|
+
component: "抽屉",
|
|
1668
|
+
coverImg: "assets/axis-components-covers/drawer.svg",
|
|
1669
|
+
span: 12,
|
|
1670
|
+
height: 70,
|
|
1671
|
+
example: {
|
|
1672
|
+
options: {
|
|
1673
|
+
component: "axis-components/drawer",
|
|
1674
|
+
id: "axis-components/drawer#1",
|
|
1675
|
+
inuse: true,
|
|
1676
|
+
},
|
|
1677
|
+
}
|
|
1678
|
+
};
|
|
1679
|
+
|
|
1680
|
+
const timeLineExampleDesc = {
|
|
1681
|
+
component: "时间轴",
|
|
1682
|
+
coverImg: "assets/axis-components-covers/time-line.svg",
|
|
1683
|
+
span: 24,
|
|
1684
|
+
height: 70,
|
|
1685
|
+
example: {
|
|
1686
|
+
options: {
|
|
1687
|
+
component: "axis-components/time-line",
|
|
1688
|
+
id: "axis-components/time-line#1",
|
|
1689
|
+
inuse: true,
|
|
1690
|
+
pending: "等待复审",
|
|
1691
|
+
items: [
|
|
1692
|
+
{
|
|
1693
|
+
inuse: true,
|
|
1694
|
+
content: "提交合同申请",
|
|
1695
|
+
color: "#1890ff",
|
|
1696
|
+
}, {
|
|
1697
|
+
inuse: true,
|
|
1698
|
+
content: "合同初审通过",
|
|
1699
|
+
color: "#1890ff",
|
|
1700
|
+
}
|
|
1701
|
+
]
|
|
1702
|
+
},
|
|
1703
|
+
},
|
|
1704
|
+
moreExamples: [
|
|
1705
|
+
{
|
|
1706
|
+
name: "空时间轴",
|
|
1707
|
+
options: {
|
|
1708
|
+
component: "axis-components/time-line",
|
|
1709
|
+
id: "axis-components/time-line#1",
|
|
1710
|
+
inuse: true,
|
|
1711
|
+
items: []
|
|
1712
|
+
},
|
|
1713
|
+
},
|
|
1714
|
+
]
|
|
1715
|
+
};
|
|
1716
|
+
|
|
1717
|
+
const inputListExampleDesc = {
|
|
1718
|
+
component: "列表输入",
|
|
1719
|
+
coverImg: "assets/axis-components-covers/input-list.png",
|
|
1720
|
+
span: 24,
|
|
1721
|
+
height: 60,
|
|
1722
|
+
example: {
|
|
1723
|
+
options: {
|
|
1724
|
+
component: "axis-components/input-list",
|
|
1725
|
+
id: "axis-components/input-list#1",
|
|
1726
|
+
inuse: true
|
|
1727
|
+
},
|
|
1728
|
+
},
|
|
1729
|
+
};
|
|
1730
|
+
|
|
1660
1731
|
const examples = [
|
|
1661
1732
|
{
|
|
1662
1733
|
groupName: "通用",
|
|
@@ -1669,6 +1740,7 @@ const examples = [
|
|
|
1669
1740
|
timerExampleDesc,
|
|
1670
1741
|
dropdownExampleDesc,
|
|
1671
1742
|
menuExampleDesc,
|
|
1743
|
+
drawerExampleDesc,
|
|
1672
1744
|
]
|
|
1673
1745
|
}, {
|
|
1674
1746
|
groupName: "布局",
|
|
@@ -1702,6 +1774,7 @@ const examples = [
|
|
|
1702
1774
|
editTableExampleDesc,
|
|
1703
1775
|
rateExampleDesc,
|
|
1704
1776
|
richTextEditorExampleDesc,
|
|
1777
|
+
inputListExampleDesc,
|
|
1705
1778
|
]
|
|
1706
1779
|
}, {
|
|
1707
1780
|
groupName: "数据",
|
|
@@ -1714,6 +1787,7 @@ const examples = [
|
|
|
1714
1787
|
videoExampleDesc,
|
|
1715
1788
|
cytoscapeExampleDesc,
|
|
1716
1789
|
echartsExampleDesc,
|
|
1790
|
+
timeLineExampleDesc,
|
|
1717
1791
|
]
|
|
1718
1792
|
}, {
|
|
1719
1793
|
groupName: "其他",
|