@ng-nest/ui 21.0.3 → 21.0.4
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/fesm2022/ng-nest-ui-affix.mjs +12 -12
- package/fesm2022/ng-nest-ui-affix.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-alert.mjs +22 -24
- package/fesm2022/ng-nest-ui-alert.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-anchor.mjs +19 -19
- package/fesm2022/ng-nest-ui-anchor.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-api.mjs +7 -7
- package/fesm2022/ng-nest-ui-attachments.mjs +22 -22
- package/fesm2022/ng-nest-ui-attachments.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-auto-complete.mjs +26 -30
- package/fesm2022/ng-nest-ui-auto-complete.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-avatar.mjs +17 -17
- package/fesm2022/ng-nest-ui-avatar.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-back-top.mjs +13 -13
- package/fesm2022/ng-nest-ui-back-top.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-badge.mjs +16 -16
- package/fesm2022/ng-nest-ui-badge.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-base-form.mjs +13 -13
- package/fesm2022/ng-nest-ui-base-form.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-bubble.mjs +20 -20
- package/fesm2022/ng-nest-ui-bubble.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-button.mjs +31 -31
- package/fesm2022/ng-nest-ui-button.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-calendar.mjs +10 -10
- package/fesm2022/ng-nest-ui-card.mjs +11 -11
- package/fesm2022/ng-nest-ui-card.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-carousel.mjs +24 -24
- package/fesm2022/ng-nest-ui-carousel.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-cascade.mjs +25 -29
- package/fesm2022/ng-nest-ui-cascade.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-checkbox.mjs +22 -22
- package/fesm2022/ng-nest-ui-checkbox.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-collapse.mjs +22 -22
- package/fesm2022/ng-nest-ui-collapse.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-color-picker.mjs +25 -25
- package/fesm2022/ng-nest-ui-color-picker.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-color.mjs +10 -10
- package/fesm2022/ng-nest-ui-comment.mjs +19 -19
- package/fesm2022/ng-nest-ui-comment.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-container.mjs +34 -34
- package/fesm2022/ng-nest-ui-container.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-core.mjs +18 -18
- package/fesm2022/ng-nest-ui-coversations.mjs +11 -11
- package/fesm2022/ng-nest-ui-coversations.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-crumb.mjs +11 -11
- package/fesm2022/ng-nest-ui-crumb.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-date-picker.mjs +87 -87
- package/fesm2022/ng-nest-ui-date-picker.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-description.mjs +20 -20
- package/fesm2022/ng-nest-ui-description.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-dialog.mjs +58 -58
- package/fesm2022/ng-nest-ui-dialog.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-doc.mjs +7 -7
- package/fesm2022/ng-nest-ui-drag.mjs +10 -10
- package/fesm2022/ng-nest-ui-drawer.mjs +34 -34
- package/fesm2022/ng-nest-ui-drawer.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-dropdown.mjs +21 -21
- package/fesm2022/ng-nest-ui-dropdown.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-empty.mjs +10 -10
- package/fesm2022/ng-nest-ui-examples.mjs +7 -7
- package/fesm2022/ng-nest-ui-find.mjs +31 -35
- package/fesm2022/ng-nest-ui-find.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-form.mjs +21 -21
- package/fesm2022/ng-nest-ui-form.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-highlight.mjs +14 -14
- package/fesm2022/ng-nest-ui-highlight.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-i18n.mjs +32 -31
- package/fesm2022/ng-nest-ui-i18n.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-icon.mjs +14 -14
- package/fesm2022/ng-nest-ui-icon.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-image.mjs +21 -21
- package/fesm2022/ng-nest-ui-image.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-inner.mjs +11 -11
- package/fesm2022/ng-nest-ui-inner.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-input-number.mjs +21 -21
- package/fesm2022/ng-nest-ui-input-number.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-input.mjs +36 -40
- package/fesm2022/ng-nest-ui-input.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-keyword.mjs +11 -11
- package/fesm2022/ng-nest-ui-keyword.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-layout.mjs +25 -25
- package/fesm2022/ng-nest-ui-layout.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-link.mjs +13 -13
- package/fesm2022/ng-nest-ui-link.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-list.mjs +41 -41
- package/fesm2022/ng-nest-ui-list.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-loading.mjs +14 -14
- package/fesm2022/ng-nest-ui-loading.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-menu.mjs +22 -22
- package/fesm2022/ng-nest-ui-menu.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-message-box.mjs +10 -10
- package/fesm2022/ng-nest-ui-message.mjs +10 -10
- package/fesm2022/ng-nest-ui-notification.mjs +10 -10
- package/fesm2022/ng-nest-ui-outlet.mjs +7 -7
- package/fesm2022/ng-nest-ui-page-header.mjs +10 -10
- package/fesm2022/ng-nest-ui-pagination.mjs +27 -31
- package/fesm2022/ng-nest-ui-pagination.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-pattern.mjs +7 -7
- package/fesm2022/ng-nest-ui-popconfirm.mjs +14 -14
- package/fesm2022/ng-nest-ui-popconfirm.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-popover.mjs +19 -19
- package/fesm2022/ng-nest-ui-popover.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-portal.mjs +7 -7
- package/fesm2022/ng-nest-ui-progress.mjs +22 -22
- package/fesm2022/ng-nest-ui-progress.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-prompts.mjs +12 -12
- package/fesm2022/ng-nest-ui-prompts.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-radio.mjs +20 -20
- package/fesm2022/ng-nest-ui-radio.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-rate.mjs +15 -15
- package/fesm2022/ng-nest-ui-rate.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-resizable.mjs +14 -14
- package/fesm2022/ng-nest-ui-resizable.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-result.mjs +10 -10
- package/fesm2022/ng-nest-ui-ripple.mjs +12 -12
- package/fesm2022/ng-nest-ui-ripple.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-scrollable.mjs +19 -7
- package/fesm2022/ng-nest-ui-scrollable.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-select.mjs +35 -39
- package/fesm2022/ng-nest-ui-select.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-sender.mjs +19 -19
- package/fesm2022/ng-nest-ui-sender.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-skeleton.mjs +13 -13
- package/fesm2022/ng-nest-ui-skeleton.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-slider-select.mjs +21 -21
- package/fesm2022/ng-nest-ui-slider-select.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-slider.mjs +16 -18
- package/fesm2022/ng-nest-ui-slider.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-statistic.mjs +16 -16
- package/fesm2022/ng-nest-ui-steps.mjs +14 -14
- package/fesm2022/ng-nest-ui-steps.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-suggestion.mjs +17 -17
- package/fesm2022/ng-nest-ui-suggestion.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-switch.mjs +15 -15
- package/fesm2022/ng-nest-ui-switch.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-table-view.mjs +58 -58
- package/fesm2022/ng-nest-ui-table.mjs +90 -112
- package/fesm2022/ng-nest-ui-table.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-tabs.mjs +38 -40
- package/fesm2022/ng-nest-ui-tabs.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-tag.mjs +16 -16
- package/fesm2022/ng-nest-ui-tag.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-text-retract.mjs +11 -11
- package/fesm2022/ng-nest-ui-text-retract.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-textarea.mjs +19 -19
- package/fesm2022/ng-nest-ui-textarea.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-theme.mjs +12 -12
- package/fesm2022/ng-nest-ui-theme.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-thought-chain.mjs +12 -12
- package/fesm2022/ng-nest-ui-thought-chain.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-time-ago.mjs +7 -7
- package/fesm2022/ng-nest-ui-time-picker.mjs +28 -28
- package/fesm2022/ng-nest-ui-time-picker.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-time-range.mjs +7 -7
- package/fesm2022/ng-nest-ui-timeline.mjs +12 -12
- package/fesm2022/ng-nest-ui-timeline.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-tooltip.mjs +17 -17
- package/fesm2022/ng-nest-ui-tooltip.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-transfer.mjs +14 -14
- package/fesm2022/ng-nest-ui-transfer.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-tree-file.mjs +17 -17
- package/fesm2022/ng-nest-ui-tree-file.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-tree-select.mjs +36 -42
- package/fesm2022/ng-nest-ui-tree-select.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-tree.mjs +44 -46
- package/fesm2022/ng-nest-ui-tree.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-typography.mjs +10 -10
- package/fesm2022/ng-nest-ui-upload.mjs +24 -24
- package/fesm2022/ng-nest-ui-upload.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-welcome.mjs +10 -10
- package/package.json +1 -1
- package/types/ng-nest-ui-i18n.d.ts +13 -11
- package/types/ng-nest-ui-scrollable.d.ts +6 -0
|
@@ -26,12 +26,12 @@ class XSliderProperty extends XPropertyFunction(X_SLIDER_CONFIG_NAME) {
|
|
|
26
26
|
* @zh_CN 节点数据
|
|
27
27
|
* @en_US Node data
|
|
28
28
|
*/
|
|
29
|
-
this.data = input([], ...(ngDevMode ?
|
|
29
|
+
this.data = input([], { ...(ngDevMode ? { debugName: "data" } : {}), transform: XToDataArray });
|
|
30
30
|
/**
|
|
31
31
|
* @zh_CN 滑动动画
|
|
32
32
|
* @en_US Sliding animation
|
|
33
33
|
*/
|
|
34
|
-
this.animated = input(this.config?.animated ?? true, ...(ngDevMode ?
|
|
34
|
+
this.animated = input(this.config?.animated ?? true, { ...(ngDevMode ? { debugName: "animated" } : {}), transform: XToBoolean });
|
|
35
35
|
/**
|
|
36
36
|
* @zh_CN 当前激活的索引
|
|
37
37
|
* @en_US Currently active index
|
|
@@ -71,24 +71,22 @@ class XSliderProperty extends XPropertyFunction(X_SLIDER_CONFIG_NAME) {
|
|
|
71
71
|
* @zh_CN 节点显示不下的时候显示展开所有的按钮,排列方式为 row 的时候生效
|
|
72
72
|
* @en_US When the node is not displayed, display all the buttons, and the arrangement is effective when the arrangement is row
|
|
73
73
|
*/
|
|
74
|
-
this.showExpand = input(this.config?.showExpand ?? false, ...(ngDevMode ?
|
|
74
|
+
this.showExpand = input(this.config?.showExpand ?? false, { ...(ngDevMode ? { debugName: "showExpand" } : {}), transform: XToBoolean });
|
|
75
75
|
/**
|
|
76
76
|
* @zh_CN 节点显示不下的时候显示左右/上下的箭头
|
|
77
77
|
* @en_US Nodes can't show the show about/of the up and down arrow
|
|
78
78
|
*/
|
|
79
|
-
this.autoShowArrow = input(this.config?.autoShowArrow ?? true, ...(ngDevMode ?
|
|
79
|
+
this.autoShowArrow = input(this.config?.autoShowArrow ?? true, { ...(ngDevMode ? { debugName: "autoShowArrow" } : {}), transform: XToBoolean });
|
|
80
80
|
/**
|
|
81
81
|
* @zh_CN 展开所有弹框的最大高度
|
|
82
82
|
* @en_US Expand the maximum height of all bomb frames
|
|
83
83
|
*/
|
|
84
|
-
this.expandMaxHeight = input(this.config?.expandMaxHeight ?? '15rem', ...(ngDevMode ?
|
|
85
|
-
transform: XToCssPixelValue
|
|
86
|
-
}]));
|
|
84
|
+
this.expandMaxHeight = input(this.config?.expandMaxHeight ?? '15rem', { ...(ngDevMode ? { debugName: "expandMaxHeight" } : {}), transform: XToCssPixelValue });
|
|
87
85
|
/**
|
|
88
86
|
* @zh_CN 显示描点
|
|
89
87
|
* @en_US Show anchor
|
|
90
88
|
*/
|
|
91
|
-
this.showAnchor = input(false, ...(ngDevMode ?
|
|
89
|
+
this.showAnchor = input(false, { ...(ngDevMode ? { debugName: "showAnchor" } : {}), transform: XToBoolean });
|
|
92
90
|
/**
|
|
93
91
|
* @zh_CN 激活节点改变事件
|
|
94
92
|
* @en_US Activate node change event
|
|
@@ -100,10 +98,10 @@ class XSliderProperty extends XPropertyFunction(X_SLIDER_CONFIG_NAME) {
|
|
|
100
98
|
*/
|
|
101
99
|
this.nodeChange = output();
|
|
102
100
|
}
|
|
103
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.
|
|
104
|
-
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.0.
|
|
101
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: XSliderProperty, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
102
|
+
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.0.6", type: XSliderProperty, isStandalone: true, selector: "x-slider-property", inputs: { data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: false, transformFunction: null }, animated: { classPropertyName: "animated", publicName: "animated", isSignal: true, isRequired: false, transformFunction: null }, activatedIndex: { classPropertyName: "activatedIndex", publicName: "activatedIndex", isSignal: true, isRequired: false, transformFunction: null }, trigger: { classPropertyName: "trigger", publicName: "trigger", isSignal: true, isRequired: false, transformFunction: null }, layout: { classPropertyName: "layout", publicName: "layout", isSignal: true, isRequired: false, transformFunction: null }, justify: { classPropertyName: "justify", publicName: "justify", isSignal: true, isRequired: false, transformFunction: null }, nodeJustify: { classPropertyName: "nodeJustify", publicName: "nodeJustify", isSignal: true, isRequired: false, transformFunction: null }, nodeTpl: { classPropertyName: "nodeTpl", publicName: "nodeTpl", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, showExpand: { classPropertyName: "showExpand", publicName: "showExpand", isSignal: true, isRequired: false, transformFunction: null }, autoShowArrow: { classPropertyName: "autoShowArrow", publicName: "autoShowArrow", isSignal: true, isRequired: false, transformFunction: null }, expandMaxHeight: { classPropertyName: "expandMaxHeight", publicName: "expandMaxHeight", isSignal: true, isRequired: false, transformFunction: null }, showAnchor: { classPropertyName: "showAnchor", publicName: "showAnchor", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { activatedIndex: "activatedIndexChange", indexChange: "indexChange", nodeChange: "nodeChange" }, usesInheritance: true, ngImport: i0, template: '', isInline: true }); }
|
|
105
103
|
}
|
|
106
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.
|
|
104
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: XSliderProperty, decorators: [{
|
|
107
105
|
type: Component,
|
|
108
106
|
args: [{ selector: `${XSliderPrefix}-property`, template: '' }]
|
|
109
107
|
}], propDecorators: { data: [{ type: i0.Input, args: [{ isSignal: true, alias: "data", required: false }] }], animated: [{ type: i0.Input, args: [{ isSignal: true, alias: "animated", required: false }] }], activatedIndex: [{ type: i0.Input, args: [{ isSignal: true, alias: "activatedIndex", required: false }] }, { type: i0.Output, args: ["activatedIndexChange"] }], trigger: [{ type: i0.Input, args: [{ isSignal: true, alias: "trigger", required: false }] }], layout: [{ type: i0.Input, args: [{ isSignal: true, alias: "layout", required: false }] }], justify: [{ type: i0.Input, args: [{ isSignal: true, alias: "justify", required: false }] }], nodeJustify: [{ type: i0.Input, args: [{ isSignal: true, alias: "nodeJustify", required: false }] }], nodeTpl: [{ type: i0.Input, args: [{ isSignal: true, alias: "nodeTpl", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], showExpand: [{ type: i0.Input, args: [{ isSignal: true, alias: "showExpand", required: false }] }], autoShowArrow: [{ type: i0.Input, args: [{ isSignal: true, alias: "autoShowArrow", required: false }] }], expandMaxHeight: [{ type: i0.Input, args: [{ isSignal: true, alias: "expandMaxHeight", required: false }] }], showAnchor: [{ type: i0.Input, args: [{ isSignal: true, alias: "showAnchor", required: false }] }], indexChange: [{ type: i0.Output, args: ["indexChange"] }], nodeChange: [{ type: i0.Output, args: ["nodeChange"] }] } });
|
|
@@ -311,20 +309,20 @@ class XSliderComponent extends XSliderProperty {
|
|
|
311
309
|
getActivated(index) {
|
|
312
310
|
return this.activatedIndex() === index;
|
|
313
311
|
}
|
|
314
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.
|
|
315
|
-
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.
|
|
312
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: XSliderComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
313
|
+
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.6", type: XSliderComponent, isStandalone: true, selector: "x-slider", viewQueries: [{ propertyName: "sliderScroll", first: true, predicate: ["sliderScroll"], descendants: true, read: ElementRef, isSignal: true }, { propertyName: "sliderNodes", first: true, predicate: ["sliderNodes"], descendants: true, read: ElementRef, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<div #slider class=\"x-slider\" [ngClass]=\"classMap()\">\r\n @if (autoShowArrow() && showArrow()) {\r\n <x-link\r\n [disabled]=\"offset() === 0\"\r\n class=\"x-slider-arrow-left\"\r\n icon=\"fto-chevron-left\"\r\n (click)=\"scrollPrev()\"\r\n ></x-link>\r\n }\r\n <div class=\"x-slider-scroll\" #sliderScroll [ngClass]=\"scrollClassMap()\">\r\n <ul #sliderNodes [style.transform]=\"transform()\">\r\n @for (node of data(); track node.id; let i = $index) {\r\n <li [class.x-slider-activated]=\"getActivated(i)\" [class.x-slider-disabled]=\"node.disabled\" [title]=\"node.label\">\r\n <x-link\r\n (click)=\"nodeClick($event, node, i)\"\r\n (mouseenter)=\"onEnter($event, node, i)\"\r\n (mouseleave)=\"onLeave(node)\"\r\n [ngClass]=\"nodeClassMap()\"\r\n [href]=\"showAnchor() ? '#' + node.id : ''\"\r\n >\r\n <ng-container *ngTemplateOutlet=\"nodeTpl()!; context: { $node: node }\"></ng-container>\r\n @if (!nodeTpl()) {\r\n <ng-container *xOutlet=\"node.label\">{{ node.label }}</ng-container>\r\n }\r\n </x-link>\r\n </li>\r\n }\r\n <li class=\"x-slider-highlight\" [class.x-slider-highlight-animated]=\"animated()\" [ngStyle]=\"highlightBox()\"></li>\r\n </ul>\r\n </div>\r\n @if (autoShowArrow() && showArrow()) {\r\n <x-link\r\n [disabled]=\"offset() === maxOffset()\"\r\n class=\"x-slider-arrow-right\"\r\n icon=\"fto-chevron-right\"\r\n (click)=\"scrollNext()\"\r\n ></x-link>\r\n }\r\n @if (showExpand() && showArrow() && layout() === 'row') {\r\n <x-dropdown\r\n class=\"x-slider-all\"\r\n [data]=\"data()\"\r\n trigger=\"click\"\r\n [(activatedId)]=\"activatedId\"\r\n (nodeClick)=\"dropdownClick($event)\"\r\n [portalMaxHeight]=\"expandMaxHeight()\"\r\n >\r\n <x-button icon=\"fto-list\" onlyIcon flat plain [size]=\"size()\"> </x-button>\r\n </x-dropdown>\r\n }\r\n</div>\r\n", styles: [".x-slider{margin:0;padding:0}.x-slider{position:relative;display:flex;align-items:center;height:100%}.x-slider-scroll{overflow:hidden;flex:1;display:inline-flex}.x-slider-scroll.x-justify-start{justify-content:flex-start}.x-slider-scroll.x-justify-center{justify-content:center}.x-slider-scroll.x-justify-end{justify-content:flex-end}.x-slider-scroll.x-justify-space-between{justify-content:space-between}.x-slider-scroll.x-justify-space-around{justify-content:space-around}.x-slider-scroll ul,.x-slider-scroll li{margin:0;padding:0;list-style:none}.x-slider-scroll>ul{display:inline-flex;align-items:center;position:relative;transition:transform var(--x-animation-duration-base)}.x-slider-scroll>ul>li{display:inline-flex;align-items:center;cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap;z-index:2}.x-slider-scroll>ul>li x-link{flex:1}.x-slider-scroll>ul>li x-link.x-justify-start{justify-content:flex-start}.x-slider-scroll>ul>li x-link.x-justify-center{justify-content:center}.x-slider-scroll>ul>li x-link.x-justify-end{justify-content:flex-end}.x-slider-scroll>ul>li x-link.x-justify-space-between{justify-content:space-between}.x-slider-scroll>ul>li x-link.x-justify-space-around{justify-content:space-around}.x-slider-scroll>ul>li x-link.x-size-big{height:var(--x-height-big);line-height:var(--x-height-big);padding:0 var(--x-padding-big)}.x-slider-scroll>ul>li x-link.x-size-large{height:var(--x-height-large);line-height:var(--x-height-large);padding:0 var(--x-padding-large)}.x-slider-scroll>ul>li x-link.x-size-medium{height:var(--x-height-medium);line-height:var(--x-height-medium);padding:0 var(--x-padding-medium)}.x-slider-scroll>ul>li x-link.x-size-small{height:var(--x-height-small);line-height:var(--x-height-small);padding:0 var(--x-padding-small)}.x-slider-scroll>ul>li x-link.x-size-mini{height:var(--x-height-mini);line-height:var(--x-height-mini);padding:0 var(--x-padding-mini)}.x-slider-scroll>ul>li.x-slider-highlight{position:absolute;left:0;top:0;z-index:1;width:0;height:0;border-radius:var(--x-border-small-radius);background-color:var(--x-background);box-shadow:0 .0625rem .1875rem .0625rem #0000000d}.x-slider-scroll>ul>li.x-slider-highlight-animated{transition:width var(--x-animation-duration-base),left var(--x-animation-duration-base),height var(--x-animation-duration-base),top var(--x-animation-duration-base)}.x-slider:not(.x-slider-show-arrow)>.x-slider-scroll>ul{background-color:var(--x-background-a200);border-radius:var(--x-border-radius);padding:.25rem}.x-slider-activated{color:var(--x-primary)}.x-slider-disabled{color:var(--x-text-400)!important;cursor:not-allowed!important}.x-slider-disabled .x-link{cursor:not-allowed!important}.x-slider-disabled .x-link:hover{color:var(--x-text-400)!important}.x-slider-arrow-left,.x-slider-arrow-right{height:1.675rem;line-height:1.675rem}.x-slider-arrow-left>x-icon,.x-slider-arrow-right>x-icon{margin-right:0}.x-slider-arrow-left .x-link,.x-slider-arrow-right .x-link{padding:.5rem}.x-slider-show-arrow{background-color:var(--x-background-a200);border-radius:var(--x-border-radius);padding:0 .25rem}.x-slider-show-arrow>.x-slider-scroll{justify-content:start!important;padding:.25rem 0}.x-slider-row>.x-slider-scroll>ul{flex-direction:row}.x-slider-column{display:inline-flex;flex-direction:column}.x-slider-column>.x-slider-scroll{display:inline-block}.x-slider-column>.x-slider-scroll>ul{flex-direction:column}.x-slider-column>.x-slider-scroll>ul>li{display:flex;width:100%}.x-slider-column>.x-slider-arrow-left,.x-slider-column>.x-slider-arrow-right{transform:rotate(90deg)}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: XLinkComponent, selector: "x-link" }, { kind: "component", type: XButtonComponent, selector: "x-button" }, { kind: "directive", type: XOutletDirective, selector: "[xOutlet]", inputs: ["xOutletContext", "xOutlet"] }, { kind: "component", type: XDropdownComponent, selector: "x-dropdown" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
316
314
|
}
|
|
317
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.
|
|
315
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: XSliderComponent, decorators: [{
|
|
318
316
|
type: Component,
|
|
319
317
|
args: [{ selector: `${XSliderPrefix}`, imports: [NgClass, NgStyle, NgTemplateOutlet, XLinkComponent, XButtonComponent, XOutletDirective, XDropdownComponent], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div #slider class=\"x-slider\" [ngClass]=\"classMap()\">\r\n @if (autoShowArrow() && showArrow()) {\r\n <x-link\r\n [disabled]=\"offset() === 0\"\r\n class=\"x-slider-arrow-left\"\r\n icon=\"fto-chevron-left\"\r\n (click)=\"scrollPrev()\"\r\n ></x-link>\r\n }\r\n <div class=\"x-slider-scroll\" #sliderScroll [ngClass]=\"scrollClassMap()\">\r\n <ul #sliderNodes [style.transform]=\"transform()\">\r\n @for (node of data(); track node.id; let i = $index) {\r\n <li [class.x-slider-activated]=\"getActivated(i)\" [class.x-slider-disabled]=\"node.disabled\" [title]=\"node.label\">\r\n <x-link\r\n (click)=\"nodeClick($event, node, i)\"\r\n (mouseenter)=\"onEnter($event, node, i)\"\r\n (mouseleave)=\"onLeave(node)\"\r\n [ngClass]=\"nodeClassMap()\"\r\n [href]=\"showAnchor() ? '#' + node.id : ''\"\r\n >\r\n <ng-container *ngTemplateOutlet=\"nodeTpl()!; context: { $node: node }\"></ng-container>\r\n @if (!nodeTpl()) {\r\n <ng-container *xOutlet=\"node.label\">{{ node.label }}</ng-container>\r\n }\r\n </x-link>\r\n </li>\r\n }\r\n <li class=\"x-slider-highlight\" [class.x-slider-highlight-animated]=\"animated()\" [ngStyle]=\"highlightBox()\"></li>\r\n </ul>\r\n </div>\r\n @if (autoShowArrow() && showArrow()) {\r\n <x-link\r\n [disabled]=\"offset() === maxOffset()\"\r\n class=\"x-slider-arrow-right\"\r\n icon=\"fto-chevron-right\"\r\n (click)=\"scrollNext()\"\r\n ></x-link>\r\n }\r\n @if (showExpand() && showArrow() && layout() === 'row') {\r\n <x-dropdown\r\n class=\"x-slider-all\"\r\n [data]=\"data()\"\r\n trigger=\"click\"\r\n [(activatedId)]=\"activatedId\"\r\n (nodeClick)=\"dropdownClick($event)\"\r\n [portalMaxHeight]=\"expandMaxHeight()\"\r\n >\r\n <x-button icon=\"fto-list\" onlyIcon flat plain [size]=\"size()\"> </x-button>\r\n </x-dropdown>\r\n }\r\n</div>\r\n", styles: [".x-slider{margin:0;padding:0}.x-slider{position:relative;display:flex;align-items:center;height:100%}.x-slider-scroll{overflow:hidden;flex:1;display:inline-flex}.x-slider-scroll.x-justify-start{justify-content:flex-start}.x-slider-scroll.x-justify-center{justify-content:center}.x-slider-scroll.x-justify-end{justify-content:flex-end}.x-slider-scroll.x-justify-space-between{justify-content:space-between}.x-slider-scroll.x-justify-space-around{justify-content:space-around}.x-slider-scroll ul,.x-slider-scroll li{margin:0;padding:0;list-style:none}.x-slider-scroll>ul{display:inline-flex;align-items:center;position:relative;transition:transform var(--x-animation-duration-base)}.x-slider-scroll>ul>li{display:inline-flex;align-items:center;cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap;z-index:2}.x-slider-scroll>ul>li x-link{flex:1}.x-slider-scroll>ul>li x-link.x-justify-start{justify-content:flex-start}.x-slider-scroll>ul>li x-link.x-justify-center{justify-content:center}.x-slider-scroll>ul>li x-link.x-justify-end{justify-content:flex-end}.x-slider-scroll>ul>li x-link.x-justify-space-between{justify-content:space-between}.x-slider-scroll>ul>li x-link.x-justify-space-around{justify-content:space-around}.x-slider-scroll>ul>li x-link.x-size-big{height:var(--x-height-big);line-height:var(--x-height-big);padding:0 var(--x-padding-big)}.x-slider-scroll>ul>li x-link.x-size-large{height:var(--x-height-large);line-height:var(--x-height-large);padding:0 var(--x-padding-large)}.x-slider-scroll>ul>li x-link.x-size-medium{height:var(--x-height-medium);line-height:var(--x-height-medium);padding:0 var(--x-padding-medium)}.x-slider-scroll>ul>li x-link.x-size-small{height:var(--x-height-small);line-height:var(--x-height-small);padding:0 var(--x-padding-small)}.x-slider-scroll>ul>li x-link.x-size-mini{height:var(--x-height-mini);line-height:var(--x-height-mini);padding:0 var(--x-padding-mini)}.x-slider-scroll>ul>li.x-slider-highlight{position:absolute;left:0;top:0;z-index:1;width:0;height:0;border-radius:var(--x-border-small-radius);background-color:var(--x-background);box-shadow:0 .0625rem .1875rem .0625rem #0000000d}.x-slider-scroll>ul>li.x-slider-highlight-animated{transition:width var(--x-animation-duration-base),left var(--x-animation-duration-base),height var(--x-animation-duration-base),top var(--x-animation-duration-base)}.x-slider:not(.x-slider-show-arrow)>.x-slider-scroll>ul{background-color:var(--x-background-a200);border-radius:var(--x-border-radius);padding:.25rem}.x-slider-activated{color:var(--x-primary)}.x-slider-disabled{color:var(--x-text-400)!important;cursor:not-allowed!important}.x-slider-disabled .x-link{cursor:not-allowed!important}.x-slider-disabled .x-link:hover{color:var(--x-text-400)!important}.x-slider-arrow-left,.x-slider-arrow-right{height:1.675rem;line-height:1.675rem}.x-slider-arrow-left>x-icon,.x-slider-arrow-right>x-icon{margin-right:0}.x-slider-arrow-left .x-link,.x-slider-arrow-right .x-link{padding:.5rem}.x-slider-show-arrow{background-color:var(--x-background-a200);border-radius:var(--x-border-radius);padding:0 .25rem}.x-slider-show-arrow>.x-slider-scroll{justify-content:start!important;padding:.25rem 0}.x-slider-row>.x-slider-scroll>ul{flex-direction:row}.x-slider-column{display:inline-flex;flex-direction:column}.x-slider-column>.x-slider-scroll{display:inline-block}.x-slider-column>.x-slider-scroll>ul{flex-direction:column}.x-slider-column>.x-slider-scroll>ul>li{display:flex;width:100%}.x-slider-column>.x-slider-arrow-left,.x-slider-column>.x-slider-arrow-right{transform:rotate(90deg)}\n"] }]
|
|
320
318
|
}], propDecorators: { sliderScroll: [{ type: i0.ViewChild, args: ['sliderScroll', { ...{ read: (ElementRef) }, isSignal: true }] }], sliderNodes: [{ type: i0.ViewChild, args: ['sliderNodes', { ...{ read: (ElementRef) }, isSignal: true }] }] } });
|
|
321
319
|
|
|
322
320
|
class XSliderModule {
|
|
323
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.
|
|
324
|
-
/** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.0.
|
|
325
|
-
/** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.0.
|
|
321
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: XSliderModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
322
|
+
/** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.0.6", ngImport: i0, type: XSliderModule, imports: [XSliderComponent], exports: [XSliderComponent] }); }
|
|
323
|
+
/** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: XSliderModule, imports: [XSliderComponent] }); }
|
|
326
324
|
}
|
|
327
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.
|
|
325
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: XSliderModule, decorators: [{
|
|
328
326
|
type: NgModule,
|
|
329
327
|
args: [{
|
|
330
328
|
declarations: [],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ng-nest-ui-slider.mjs","sources":["../../../../lib/ng-nest/ui/slider/slider.property.ts","../../../../lib/ng-nest/ui/slider/slider.component.ts","../../../../lib/ng-nest/ui/slider/slider.component.html","../../../../lib/ng-nest/ui/slider/slider.module.ts","../../../../lib/ng-nest/ui/slider/ng-nest-ui-slider.ts"],"sourcesContent":["import { XPropertyFunction, XToDataArray, XToBoolean, XToCssPixelValue } from '@ng-nest/ui/core';\r\nimport { TemplateRef, Component, input, model, output } from '@angular/core';\r\nimport type {\r\n XTemplate,\r\n XIdentityProperty,\r\n XJustify,\r\n XSize,\r\n XNumber,\r\n XBoolean,\r\n XTrigger,\r\n XDataArray\r\n} from '@ng-nest/ui/core';\r\n\r\n/**\r\n * Slider\r\n * @selector x-slider\r\n * @decorator component\r\n */\r\nexport const XSliderPrefix = 'x-slider';\r\nconst X_SLIDER_CONFIG_NAME = 'slider';\r\n\r\n/**\r\n * Slider Property\r\n */\r\n@Component({ selector: `${XSliderPrefix}-property`, template: '' })\r\nexport class XSliderProperty extends XPropertyFunction(X_SLIDER_CONFIG_NAME) {\r\n /**\r\n * @zh_CN 节点数据\r\n * @en_US Node data\r\n */\r\n readonly data = input<XSliderNode[], XDataArray<XSliderNode>>([], { transform: XToDataArray });\r\n /**\r\n * @zh_CN 滑动动画\r\n * @en_US Sliding animation\r\n */\r\n readonly animated = input<boolean, XBoolean>(this.config?.animated ?? true, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 当前激活的索引\r\n * @en_US Currently active index\r\n */\r\n readonly activatedIndex = model<number>(0);\r\n /**\r\n * @zh_CN 触发方式\r\n * @en_US Trigger mode\r\n */\r\n readonly trigger = input<XSliderTrigger>(this.config?.trigger ?? 'click');\r\n /**\r\n * @zh_CN 排列方式\r\n * @en_US Arrangement\r\n */\r\n readonly layout = input<XSliderLayout>('row');\r\n /**\r\n * @zh_CN 对齐方式\r\n * @en_US Alignment\r\n */\r\n readonly justify = input<XJustify>('start');\r\n /**\r\n * @zh_CN 节点文字对齐方式\r\n * @en_US Node text alignment\r\n */\r\n readonly nodeJustify = input<XJustify>('center');\r\n /**\r\n * @zh_CN 节点自定义模板\r\n * @en_US Node custom template\r\n */\r\n readonly nodeTpl = input<TemplateRef<any>>();\r\n /**\r\n * @zh_CN 尺寸\r\n * @en_US Size\r\n */\r\n readonly size = input<XSize>(this.config?.size ?? 'medium');\r\n /**\r\n * @zh_CN 节点显示不下的时候显示展开所有的按钮,排列方式为 row 的时候生效\r\n * @en_US When the node is not displayed, display all the buttons, and the arrangement is effective when the arrangement is row\r\n */\r\n readonly showExpand = input<boolean, XBoolean>(this.config?.showExpand ?? false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 节点显示不下的时候显示左右/上下的箭头\r\n * @en_US Nodes can't show the show about/of the up and down arrow\r\n */\r\n readonly autoShowArrow = input<boolean, XBoolean>(this.config?.autoShowArrow ?? true, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 展开所有弹框的最大高度\r\n * @en_US Expand the maximum height of all bomb frames\r\n */\r\n readonly expandMaxHeight = input<string, XNumber>(this.config?.expandMaxHeight ?? '15rem', {\r\n transform: XToCssPixelValue\r\n });\r\n /**\r\n * @zh_CN 显示描点\r\n * @en_US Show anchor\r\n */\r\n readonly showAnchor = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 激活节点改变事件\r\n * @en_US Activate node change event\r\n */\r\n readonly indexChange = output<number>();\r\n /**\r\n * @zh_CN 激活节点改变事件\r\n * @en_US Activate node change event\r\n */\r\n readonly nodeChange = output<XSliderNode>();\r\n}\r\n\r\n/**\r\n * @zh_CN Slider 数据对象\r\n * @en_US Slider data object\r\n */\r\nexport interface XSliderNode extends XIdentityProperty {\r\n /**\r\n * @zh_CN 标题,支持模板\r\n * @en_US Title, support template\r\n */\r\n label?: XTemplate;\r\n /**\r\n * @zh_CN 禁用节点\r\n * @en_US Node disabled\r\n */\r\n disabled?: boolean;\r\n}\r\n\r\n/**\r\n * @zh_CN 触发方式\r\n * @en_US Trigger method\r\n */\r\nexport type XSliderTrigger = XTrigger;\r\n\r\n/**\r\n * @zh_CN 布局方式\r\n * @en_US Layout\r\n */\r\nexport type XSliderLayout = 'row' | 'column';\r\n","import {\r\n Component,\r\n ViewEncapsulation,\r\n ElementRef,\r\n ChangeDetectionStrategy,\r\n AfterViewInit,\r\n OnDestroy,\r\n inject,\r\n computed,\r\n signal,\r\n viewChild\r\n} from '@angular/core';\r\nimport { XSliderPrefix, XSliderNode, XSliderProperty } from './slider.property';\r\nimport { XResize, XPosition, XIsUndefined, XIsEmpty, XResizeObserver } from '@ng-nest/ui/core';\r\nimport { Subject, of } from 'rxjs';\r\nimport { takeUntil, debounceTime, delay } from 'rxjs/operators';\r\nimport { NgClass, NgStyle, NgTemplateOutlet } from '@angular/common';\r\nimport { XLinkComponent } from '@ng-nest/ui/link';\r\nimport { XButtonComponent } from '@ng-nest/ui/button';\r\nimport { XOutletDirective } from '@ng-nest/ui/outlet';\r\nimport { XDropdownComponent } from '@ng-nest/ui/dropdown';\r\n\r\n@Component({\r\n selector: `${XSliderPrefix}`,\r\n imports: [NgClass, NgStyle, NgTemplateOutlet, XLinkComponent, XButtonComponent, XOutletDirective, XDropdownComponent],\r\n templateUrl: './slider.component.html',\r\n styleUrls: ['./slider.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class XSliderComponent extends XSliderProperty implements OnDestroy, AfterViewInit {\r\n sliderScroll = viewChild.required('sliderScroll', { read: ElementRef<HTMLElement> });\r\n sliderNodes = viewChild.required('sliderNodes', { read: ElementRef<HTMLElement> });\r\n activated = signal<XSliderNode | null>(null);\r\n showArrow = signal(false);\r\n activatedId = signal('');\r\n timeoutHide: any;\r\n hoverDelay = 200;\r\n hoverDelayUnsub = new Subject<void>();\r\n offset = signal(0);\r\n transform = computed(() => `translate${this.dir()}(-${this.offset()}px)`);\r\n\r\n direction = signal<XPosition>('right');\r\n maxOffset = signal(0);\r\n dir = computed(() => (this.layout() === 'row' ? 'X' : 'Y'));\r\n sizeName = computed(() => (this.layout() === 'row' ? 'Width' : 'Height'));\r\n highlightBox = computed(() => {\r\n this.resizeChanged();\r\n if (!this.activated()) return {};\r\n const activeEle: HTMLElement = this.sliderNodes().nativeElement.querySelector(\r\n `li:nth-child(${this.activatedIndex() + 1})`\r\n )!;\r\n if (!activeEle) return {};\r\n return {\r\n width: `${activeEle.offsetWidth}px`,\r\n height: `${activeEle.offsetHeight}px`,\r\n left: `${activeEle.offsetLeft}px`,\r\n top: `${activeEle.offsetTop}px`\r\n };\r\n });\r\n resizeChanged = signal<DOMRectReadOnly | null>(null);\r\n private unSubject = new Subject<void>();\r\n private resizeObserver!: XResizeObserver;\r\n elementRef = inject(ElementRef);\r\n\r\n classMap = computed(() => ({\r\n [`${XSliderPrefix}-${this.layout()}`]: !XIsEmpty(this.layout()),\r\n [`${XSliderPrefix}-show-arrow`]: this.showArrow()\r\n }));\r\n scrollClassMap = computed(() => ({\r\n [`x-justify-${this.justify()}`]: !XIsEmpty(this.justify())\r\n }));\r\n nodeClassMap = computed(() => ({\r\n [`x-justify-${this.nodeJustify()}`]: !XIsEmpty(this.nodeJustify()),\r\n [`x-size-${this.size()}`]: !XIsEmpty(this.size())\r\n }));\r\n\r\n ngOnDestroy(): void {\r\n this.unSubject.next();\r\n this.unSubject.complete();\r\n this.resizeObserver?.disconnect();\r\n this.hoverDelayUnsub.next();\r\n this.hoverDelayUnsub.complete();\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this.setSubscribe();\r\n this.setActivated();\r\n }\r\n\r\n setSubscribe() {\r\n XResize(this.sliderScroll().nativeElement, this.sliderNodes().nativeElement)\r\n .pipe(debounceTime(30), takeUntil(this.unSubject))\r\n .subscribe((x) => {\r\n this.resizeObserver = x.resizeObserver;\r\n this.sizeChecked();\r\n this.setActivated();\r\n this.resizeChanged.set(x.entry?.contentRect || null);\r\n });\r\n }\r\n\r\n onEnter(event: Event | null, node: XSliderNode, index: number) {\r\n if (node.disabled || this.trigger() === 'click') return;\r\n of(true)\r\n .pipe(delay(this.hoverDelay), takeUntil(this.hoverDelayUnsub))\r\n .subscribe(() => {\r\n if (this.timeoutHide) {\r\n clearTimeout(this.timeoutHide);\r\n this.timeoutHide = null;\r\n }\r\n this.nodeClick(event, node, index);\r\n });\r\n }\r\n\r\n onLeave(node: XSliderNode) {\r\n if (node.disabled || this.trigger() === 'click') return;\r\n this.hoverDelayUnsub.next();\r\n }\r\n\r\n nodeClick(event: Event | null, node: XSliderNode, index: number) {\r\n if (event) {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n }\r\n if (node.disabled) return;\r\n this.setDirection(index, this.activatedIndex());\r\n this.activatedIndex.set(index);\r\n this.activated.set(node);\r\n this.activatedId.set(node.id);\r\n this.setTranslate();\r\n this.indexChange.emit(index);\r\n this.nodeChange.emit(node);\r\n }\r\n\r\n dropdownClick(node: XSliderNode) {\r\n const index = this.data().indexOf(node);\r\n this.nodeClick(null, node, index);\r\n }\r\n\r\n scrollPrev() {\r\n if (this.offset() === 0) return;\r\n const scrollSize = this.sliderScroll().nativeElement[`offset${this.sizeName()}`];\r\n const currentOffset = this.offset();\r\n if (!currentOffset) return;\r\n const offset = currentOffset > scrollSize ? currentOffset - scrollSize : 0;\r\n this.offset.set(Math.floor(offset));\r\n }\r\n\r\n scrollNext() {\r\n if (this.offset() === this.maxOffset()) return;\r\n const sliderSize = this.sliderNodes().nativeElement[`offset${this.sizeName()}`];\r\n const scrollSize = this.sliderScroll().nativeElement[`offset${this.sizeName()}`];\r\n const currentOffset = this.offset();\r\n if (sliderSize - currentOffset <= scrollSize) return;\r\n const offset = sliderSize - currentOffset > scrollSize * 2 ? currentOffset + scrollSize : sliderSize - scrollSize;\r\n this.offset.set(Math.floor(offset));\r\n }\r\n\r\n setDirection(index: number, before: number) {\r\n const increase = index > before;\r\n this.direction.set(this.layout() === 'row' ? (increase ? 'right' : 'left') : increase ? 'bottom' : 'top');\r\n return this.direction();\r\n }\r\n\r\n setTranslate() {\r\n if (\r\n XIsUndefined(this.sliderScroll()) ||\r\n XIsUndefined(this.sliderNodes()) ||\r\n typeof this.sliderScroll().nativeElement.getBoundingClientRect !== 'function'\r\n )\r\n return;\r\n const sliderRect = this.sliderScroll().nativeElement?.getBoundingClientRect();\r\n const sliderNodesRect = this.sliderNodes().nativeElement?.getBoundingClientRect();\r\n let moveIndex =\r\n ['bottom', 'right'].indexOf(this.direction()) !== -1 ? this.activatedIndex() + 2 : this.activatedIndex();\r\n moveIndex = moveIndex > this.data().length ? this.data().length : moveIndex === 0 ? 1 : moveIndex;\r\n let moveEle = this.sliderNodes().nativeElement?.querySelector(`li:nth-child(${moveIndex})`);\r\n let maxOffset = 0;\r\n if (XIsEmpty(moveEle)) return;\r\n const moveRect = moveEle!.getBoundingClientRect();\r\n const currentOffset = this.offset();\r\n let offset = currentOffset;\r\n if (this.layout() === 'row') {\r\n maxOffset = sliderNodesRect.width - sliderRect.width;\r\n if (moveRect.left < sliderRect.left) {\r\n offset = currentOffset - (sliderRect.left - moveRect.left);\r\n }\r\n if (moveRect.right > sliderRect.right) {\r\n offset = currentOffset + moveRect.right - sliderRect.right;\r\n }\r\n } else {\r\n maxOffset = sliderNodesRect.height - sliderRect.height;\r\n if (moveRect.top < sliderRect.top) {\r\n offset = currentOffset - (sliderRect.top - moveRect.top);\r\n }\r\n if (moveRect.bottom > sliderRect.bottom) {\r\n offset = currentOffset + (moveRect.bottom - sliderRect.bottom);\r\n }\r\n }\r\n this.maxOffset.set(Math.ceil(maxOffset));\r\n offset = Math.max(Math.ceil(offset), 0);\r\n if (!this.showArrow()) {\r\n this.offset.set(0);\r\n } else {\r\n if ([this.maxOffset() + 1, this.maxOffset() - 1].includes(offset)) {\r\n this.offset.set(this.maxOffset());\r\n } else {\r\n this.offset.set(Math.min(offset, this.maxOffset()));\r\n }\r\n }\r\n }\r\n\r\n sizeChecked() {\r\n const size = this.sliderNodes().nativeElement[`offset${this.sizeName()}`];\r\n const scrollSize = this.sliderScroll().nativeElement[`offset${this.sizeName()}`];\r\n const showArrow = this.data().length > 1 && size > scrollSize;\r\n if (this.showArrow() !== showArrow) {\r\n this.showArrow.set(showArrow);\r\n if (!this.showArrow()) {\r\n this.offset.set(0);\r\n }\r\n }\r\n }\r\n\r\n setActivated() {\r\n if (this.data().length > 0) {\r\n this.activated.set(this.data()[this.activatedIndex()]);\r\n if (this.activated()) {\r\n this.activatedId.set(this.activated()?.id);\r\n }\r\n } else {\r\n this.activated.set(null);\r\n }\r\n this.setTranslate();\r\n }\r\n\r\n getActivated(index: number) {\r\n return this.activatedIndex() === index;\r\n }\r\n}\r\n","<div #slider class=\"x-slider\" [ngClass]=\"classMap()\">\r\n @if (autoShowArrow() && showArrow()) {\r\n <x-link\r\n [disabled]=\"offset() === 0\"\r\n class=\"x-slider-arrow-left\"\r\n icon=\"fto-chevron-left\"\r\n (click)=\"scrollPrev()\"\r\n ></x-link>\r\n }\r\n <div class=\"x-slider-scroll\" #sliderScroll [ngClass]=\"scrollClassMap()\">\r\n <ul #sliderNodes [style.transform]=\"transform()\">\r\n @for (node of data(); track node.id; let i = $index) {\r\n <li [class.x-slider-activated]=\"getActivated(i)\" [class.x-slider-disabled]=\"node.disabled\" [title]=\"node.label\">\r\n <x-link\r\n (click)=\"nodeClick($event, node, i)\"\r\n (mouseenter)=\"onEnter($event, node, i)\"\r\n (mouseleave)=\"onLeave(node)\"\r\n [ngClass]=\"nodeClassMap()\"\r\n [href]=\"showAnchor() ? '#' + node.id : ''\"\r\n >\r\n <ng-container *ngTemplateOutlet=\"nodeTpl()!; context: { $node: node }\"></ng-container>\r\n @if (!nodeTpl()) {\r\n <ng-container *xOutlet=\"node.label\">{{ node.label }}</ng-container>\r\n }\r\n </x-link>\r\n </li>\r\n }\r\n <li class=\"x-slider-highlight\" [class.x-slider-highlight-animated]=\"animated()\" [ngStyle]=\"highlightBox()\"></li>\r\n </ul>\r\n </div>\r\n @if (autoShowArrow() && showArrow()) {\r\n <x-link\r\n [disabled]=\"offset() === maxOffset()\"\r\n class=\"x-slider-arrow-right\"\r\n icon=\"fto-chevron-right\"\r\n (click)=\"scrollNext()\"\r\n ></x-link>\r\n }\r\n @if (showExpand() && showArrow() && layout() === 'row') {\r\n <x-dropdown\r\n class=\"x-slider-all\"\r\n [data]=\"data()\"\r\n trigger=\"click\"\r\n [(activatedId)]=\"activatedId\"\r\n (nodeClick)=\"dropdownClick($event)\"\r\n [portalMaxHeight]=\"expandMaxHeight()\"\r\n >\r\n <x-button icon=\"fto-list\" onlyIcon flat plain [size]=\"size()\"> </x-button>\r\n </x-dropdown>\r\n }\r\n</div>\r\n","import { NgModule } from '@angular/core';\r\nimport { XSliderComponent } from './slider.component';\r\n\r\n@NgModule({\r\n declarations: [],\r\n exports: [XSliderComponent],\r\n imports: [XSliderComponent]\r\n})\r\nexport class XSliderModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ng-nest-ui-slider.mjs","sources":["../../../../lib/ng-nest/ui/slider/slider.property.ts","../../../../lib/ng-nest/ui/slider/slider.component.ts","../../../../lib/ng-nest/ui/slider/slider.component.html","../../../../lib/ng-nest/ui/slider/slider.module.ts","../../../../lib/ng-nest/ui/slider/ng-nest-ui-slider.ts"],"sourcesContent":["import { XPropertyFunction, XToDataArray, XToBoolean, XToCssPixelValue } from '@ng-nest/ui/core';\r\nimport { TemplateRef, Component, input, model, output } from '@angular/core';\r\nimport type {\r\n XTemplate,\r\n XIdentityProperty,\r\n XJustify,\r\n XSize,\r\n XNumber,\r\n XBoolean,\r\n XTrigger,\r\n XDataArray\r\n} from '@ng-nest/ui/core';\r\n\r\n/**\r\n * Slider\r\n * @selector x-slider\r\n * @decorator component\r\n */\r\nexport const XSliderPrefix = 'x-slider';\r\nconst X_SLIDER_CONFIG_NAME = 'slider';\r\n\r\n/**\r\n * Slider Property\r\n */\r\n@Component({ selector: `${XSliderPrefix}-property`, template: '' })\r\nexport class XSliderProperty extends XPropertyFunction(X_SLIDER_CONFIG_NAME) {\r\n /**\r\n * @zh_CN 节点数据\r\n * @en_US Node data\r\n */\r\n readonly data = input<XSliderNode[], XDataArray<XSliderNode>>([], { transform: XToDataArray });\r\n /**\r\n * @zh_CN 滑动动画\r\n * @en_US Sliding animation\r\n */\r\n readonly animated = input<boolean, XBoolean>(this.config?.animated ?? true, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 当前激活的索引\r\n * @en_US Currently active index\r\n */\r\n readonly activatedIndex = model<number>(0);\r\n /**\r\n * @zh_CN 触发方式\r\n * @en_US Trigger mode\r\n */\r\n readonly trigger = input<XSliderTrigger>(this.config?.trigger ?? 'click');\r\n /**\r\n * @zh_CN 排列方式\r\n * @en_US Arrangement\r\n */\r\n readonly layout = input<XSliderLayout>('row');\r\n /**\r\n * @zh_CN 对齐方式\r\n * @en_US Alignment\r\n */\r\n readonly justify = input<XJustify>('start');\r\n /**\r\n * @zh_CN 节点文字对齐方式\r\n * @en_US Node text alignment\r\n */\r\n readonly nodeJustify = input<XJustify>('center');\r\n /**\r\n * @zh_CN 节点自定义模板\r\n * @en_US Node custom template\r\n */\r\n readonly nodeTpl = input<TemplateRef<any>>();\r\n /**\r\n * @zh_CN 尺寸\r\n * @en_US Size\r\n */\r\n readonly size = input<XSize>(this.config?.size ?? 'medium');\r\n /**\r\n * @zh_CN 节点显示不下的时候显示展开所有的按钮,排列方式为 row 的时候生效\r\n * @en_US When the node is not displayed, display all the buttons, and the arrangement is effective when the arrangement is row\r\n */\r\n readonly showExpand = input<boolean, XBoolean>(this.config?.showExpand ?? false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 节点显示不下的时候显示左右/上下的箭头\r\n * @en_US Nodes can't show the show about/of the up and down arrow\r\n */\r\n readonly autoShowArrow = input<boolean, XBoolean>(this.config?.autoShowArrow ?? true, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 展开所有弹框的最大高度\r\n * @en_US Expand the maximum height of all bomb frames\r\n */\r\n readonly expandMaxHeight = input<string, XNumber>(this.config?.expandMaxHeight ?? '15rem', {\r\n transform: XToCssPixelValue\r\n });\r\n /**\r\n * @zh_CN 显示描点\r\n * @en_US Show anchor\r\n */\r\n readonly showAnchor = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 激活节点改变事件\r\n * @en_US Activate node change event\r\n */\r\n readonly indexChange = output<number>();\r\n /**\r\n * @zh_CN 激活节点改变事件\r\n * @en_US Activate node change event\r\n */\r\n readonly nodeChange = output<XSliderNode>();\r\n}\r\n\r\n/**\r\n * @zh_CN Slider 数据对象\r\n * @en_US Slider data object\r\n */\r\nexport interface XSliderNode extends XIdentityProperty {\r\n /**\r\n * @zh_CN 标题,支持模板\r\n * @en_US Title, support template\r\n */\r\n label?: XTemplate;\r\n /**\r\n * @zh_CN 禁用节点\r\n * @en_US Node disabled\r\n */\r\n disabled?: boolean;\r\n}\r\n\r\n/**\r\n * @zh_CN 触发方式\r\n * @en_US Trigger method\r\n */\r\nexport type XSliderTrigger = XTrigger;\r\n\r\n/**\r\n * @zh_CN 布局方式\r\n * @en_US Layout\r\n */\r\nexport type XSliderLayout = 'row' | 'column';\r\n","import {\r\n Component,\r\n ViewEncapsulation,\r\n ElementRef,\r\n ChangeDetectionStrategy,\r\n AfterViewInit,\r\n OnDestroy,\r\n inject,\r\n computed,\r\n signal,\r\n viewChild\r\n} from '@angular/core';\r\nimport { XSliderPrefix, XSliderNode, XSliderProperty } from './slider.property';\r\nimport { XResize, XPosition, XIsUndefined, XIsEmpty, XResizeObserver } from '@ng-nest/ui/core';\r\nimport { Subject, of } from 'rxjs';\r\nimport { takeUntil, debounceTime, delay } from 'rxjs/operators';\r\nimport { NgClass, NgStyle, NgTemplateOutlet } from '@angular/common';\r\nimport { XLinkComponent } from '@ng-nest/ui/link';\r\nimport { XButtonComponent } from '@ng-nest/ui/button';\r\nimport { XOutletDirective } from '@ng-nest/ui/outlet';\r\nimport { XDropdownComponent } from '@ng-nest/ui/dropdown';\r\n\r\n@Component({\r\n selector: `${XSliderPrefix}`,\r\n imports: [NgClass, NgStyle, NgTemplateOutlet, XLinkComponent, XButtonComponent, XOutletDirective, XDropdownComponent],\r\n templateUrl: './slider.component.html',\r\n styleUrls: ['./slider.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class XSliderComponent extends XSliderProperty implements OnDestroy, AfterViewInit {\r\n sliderScroll = viewChild.required('sliderScroll', { read: ElementRef<HTMLElement> });\r\n sliderNodes = viewChild.required('sliderNodes', { read: ElementRef<HTMLElement> });\r\n activated = signal<XSliderNode | null>(null);\r\n showArrow = signal(false);\r\n activatedId = signal('');\r\n timeoutHide: any;\r\n hoverDelay = 200;\r\n hoverDelayUnsub = new Subject<void>();\r\n offset = signal(0);\r\n transform = computed(() => `translate${this.dir()}(-${this.offset()}px)`);\r\n\r\n direction = signal<XPosition>('right');\r\n maxOffset = signal(0);\r\n dir = computed(() => (this.layout() === 'row' ? 'X' : 'Y'));\r\n sizeName = computed(() => (this.layout() === 'row' ? 'Width' : 'Height'));\r\n highlightBox = computed(() => {\r\n this.resizeChanged();\r\n if (!this.activated()) return {};\r\n const activeEle: HTMLElement = this.sliderNodes().nativeElement.querySelector(\r\n `li:nth-child(${this.activatedIndex() + 1})`\r\n )!;\r\n if (!activeEle) return {};\r\n return {\r\n width: `${activeEle.offsetWidth}px`,\r\n height: `${activeEle.offsetHeight}px`,\r\n left: `${activeEle.offsetLeft}px`,\r\n top: `${activeEle.offsetTop}px`\r\n };\r\n });\r\n resizeChanged = signal<DOMRectReadOnly | null>(null);\r\n private unSubject = new Subject<void>();\r\n private resizeObserver!: XResizeObserver;\r\n elementRef = inject(ElementRef);\r\n\r\n classMap = computed(() => ({\r\n [`${XSliderPrefix}-${this.layout()}`]: !XIsEmpty(this.layout()),\r\n [`${XSliderPrefix}-show-arrow`]: this.showArrow()\r\n }));\r\n scrollClassMap = computed(() => ({\r\n [`x-justify-${this.justify()}`]: !XIsEmpty(this.justify())\r\n }));\r\n nodeClassMap = computed(() => ({\r\n [`x-justify-${this.nodeJustify()}`]: !XIsEmpty(this.nodeJustify()),\r\n [`x-size-${this.size()}`]: !XIsEmpty(this.size())\r\n }));\r\n\r\n ngOnDestroy(): void {\r\n this.unSubject.next();\r\n this.unSubject.complete();\r\n this.resizeObserver?.disconnect();\r\n this.hoverDelayUnsub.next();\r\n this.hoverDelayUnsub.complete();\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this.setSubscribe();\r\n this.setActivated();\r\n }\r\n\r\n setSubscribe() {\r\n XResize(this.sliderScroll().nativeElement, this.sliderNodes().nativeElement)\r\n .pipe(debounceTime(30), takeUntil(this.unSubject))\r\n .subscribe((x) => {\r\n this.resizeObserver = x.resizeObserver;\r\n this.sizeChecked();\r\n this.setActivated();\r\n this.resizeChanged.set(x.entry?.contentRect || null);\r\n });\r\n }\r\n\r\n onEnter(event: Event | null, node: XSliderNode, index: number) {\r\n if (node.disabled || this.trigger() === 'click') return;\r\n of(true)\r\n .pipe(delay(this.hoverDelay), takeUntil(this.hoverDelayUnsub))\r\n .subscribe(() => {\r\n if (this.timeoutHide) {\r\n clearTimeout(this.timeoutHide);\r\n this.timeoutHide = null;\r\n }\r\n this.nodeClick(event, node, index);\r\n });\r\n }\r\n\r\n onLeave(node: XSliderNode) {\r\n if (node.disabled || this.trigger() === 'click') return;\r\n this.hoverDelayUnsub.next();\r\n }\r\n\r\n nodeClick(event: Event | null, node: XSliderNode, index: number) {\r\n if (event) {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n }\r\n if (node.disabled) return;\r\n this.setDirection(index, this.activatedIndex());\r\n this.activatedIndex.set(index);\r\n this.activated.set(node);\r\n this.activatedId.set(node.id);\r\n this.setTranslate();\r\n this.indexChange.emit(index);\r\n this.nodeChange.emit(node);\r\n }\r\n\r\n dropdownClick(node: XSliderNode) {\r\n const index = this.data().indexOf(node);\r\n this.nodeClick(null, node, index);\r\n }\r\n\r\n scrollPrev() {\r\n if (this.offset() === 0) return;\r\n const scrollSize = this.sliderScroll().nativeElement[`offset${this.sizeName()}`];\r\n const currentOffset = this.offset();\r\n if (!currentOffset) return;\r\n const offset = currentOffset > scrollSize ? currentOffset - scrollSize : 0;\r\n this.offset.set(Math.floor(offset));\r\n }\r\n\r\n scrollNext() {\r\n if (this.offset() === this.maxOffset()) return;\r\n const sliderSize = this.sliderNodes().nativeElement[`offset${this.sizeName()}`];\r\n const scrollSize = this.sliderScroll().nativeElement[`offset${this.sizeName()}`];\r\n const currentOffset = this.offset();\r\n if (sliderSize - currentOffset <= scrollSize) return;\r\n const offset = sliderSize - currentOffset > scrollSize * 2 ? currentOffset + scrollSize : sliderSize - scrollSize;\r\n this.offset.set(Math.floor(offset));\r\n }\r\n\r\n setDirection(index: number, before: number) {\r\n const increase = index > before;\r\n this.direction.set(this.layout() === 'row' ? (increase ? 'right' : 'left') : increase ? 'bottom' : 'top');\r\n return this.direction();\r\n }\r\n\r\n setTranslate() {\r\n if (\r\n XIsUndefined(this.sliderScroll()) ||\r\n XIsUndefined(this.sliderNodes()) ||\r\n typeof this.sliderScroll().nativeElement.getBoundingClientRect !== 'function'\r\n )\r\n return;\r\n const sliderRect = this.sliderScroll().nativeElement?.getBoundingClientRect();\r\n const sliderNodesRect = this.sliderNodes().nativeElement?.getBoundingClientRect();\r\n let moveIndex =\r\n ['bottom', 'right'].indexOf(this.direction()) !== -1 ? this.activatedIndex() + 2 : this.activatedIndex();\r\n moveIndex = moveIndex > this.data().length ? this.data().length : moveIndex === 0 ? 1 : moveIndex;\r\n let moveEle = this.sliderNodes().nativeElement?.querySelector(`li:nth-child(${moveIndex})`);\r\n let maxOffset = 0;\r\n if (XIsEmpty(moveEle)) return;\r\n const moveRect = moveEle!.getBoundingClientRect();\r\n const currentOffset = this.offset();\r\n let offset = currentOffset;\r\n if (this.layout() === 'row') {\r\n maxOffset = sliderNodesRect.width - sliderRect.width;\r\n if (moveRect.left < sliderRect.left) {\r\n offset = currentOffset - (sliderRect.left - moveRect.left);\r\n }\r\n if (moveRect.right > sliderRect.right) {\r\n offset = currentOffset + moveRect.right - sliderRect.right;\r\n }\r\n } else {\r\n maxOffset = sliderNodesRect.height - sliderRect.height;\r\n if (moveRect.top < sliderRect.top) {\r\n offset = currentOffset - (sliderRect.top - moveRect.top);\r\n }\r\n if (moveRect.bottom > sliderRect.bottom) {\r\n offset = currentOffset + (moveRect.bottom - sliderRect.bottom);\r\n }\r\n }\r\n this.maxOffset.set(Math.ceil(maxOffset));\r\n offset = Math.max(Math.ceil(offset), 0);\r\n if (!this.showArrow()) {\r\n this.offset.set(0);\r\n } else {\r\n if ([this.maxOffset() + 1, this.maxOffset() - 1].includes(offset)) {\r\n this.offset.set(this.maxOffset());\r\n } else {\r\n this.offset.set(Math.min(offset, this.maxOffset()));\r\n }\r\n }\r\n }\r\n\r\n sizeChecked() {\r\n const size = this.sliderNodes().nativeElement[`offset${this.sizeName()}`];\r\n const scrollSize = this.sliderScroll().nativeElement[`offset${this.sizeName()}`];\r\n const showArrow = this.data().length > 1 && size > scrollSize;\r\n if (this.showArrow() !== showArrow) {\r\n this.showArrow.set(showArrow);\r\n if (!this.showArrow()) {\r\n this.offset.set(0);\r\n }\r\n }\r\n }\r\n\r\n setActivated() {\r\n if (this.data().length > 0) {\r\n this.activated.set(this.data()[this.activatedIndex()]);\r\n if (this.activated()) {\r\n this.activatedId.set(this.activated()?.id);\r\n }\r\n } else {\r\n this.activated.set(null);\r\n }\r\n this.setTranslate();\r\n }\r\n\r\n getActivated(index: number) {\r\n return this.activatedIndex() === index;\r\n }\r\n}\r\n","<div #slider class=\"x-slider\" [ngClass]=\"classMap()\">\r\n @if (autoShowArrow() && showArrow()) {\r\n <x-link\r\n [disabled]=\"offset() === 0\"\r\n class=\"x-slider-arrow-left\"\r\n icon=\"fto-chevron-left\"\r\n (click)=\"scrollPrev()\"\r\n ></x-link>\r\n }\r\n <div class=\"x-slider-scroll\" #sliderScroll [ngClass]=\"scrollClassMap()\">\r\n <ul #sliderNodes [style.transform]=\"transform()\">\r\n @for (node of data(); track node.id; let i = $index) {\r\n <li [class.x-slider-activated]=\"getActivated(i)\" [class.x-slider-disabled]=\"node.disabled\" [title]=\"node.label\">\r\n <x-link\r\n (click)=\"nodeClick($event, node, i)\"\r\n (mouseenter)=\"onEnter($event, node, i)\"\r\n (mouseleave)=\"onLeave(node)\"\r\n [ngClass]=\"nodeClassMap()\"\r\n [href]=\"showAnchor() ? '#' + node.id : ''\"\r\n >\r\n <ng-container *ngTemplateOutlet=\"nodeTpl()!; context: { $node: node }\"></ng-container>\r\n @if (!nodeTpl()) {\r\n <ng-container *xOutlet=\"node.label\">{{ node.label }}</ng-container>\r\n }\r\n </x-link>\r\n </li>\r\n }\r\n <li class=\"x-slider-highlight\" [class.x-slider-highlight-animated]=\"animated()\" [ngStyle]=\"highlightBox()\"></li>\r\n </ul>\r\n </div>\r\n @if (autoShowArrow() && showArrow()) {\r\n <x-link\r\n [disabled]=\"offset() === maxOffset()\"\r\n class=\"x-slider-arrow-right\"\r\n icon=\"fto-chevron-right\"\r\n (click)=\"scrollNext()\"\r\n ></x-link>\r\n }\r\n @if (showExpand() && showArrow() && layout() === 'row') {\r\n <x-dropdown\r\n class=\"x-slider-all\"\r\n [data]=\"data()\"\r\n trigger=\"click\"\r\n [(activatedId)]=\"activatedId\"\r\n (nodeClick)=\"dropdownClick($event)\"\r\n [portalMaxHeight]=\"expandMaxHeight()\"\r\n >\r\n <x-button icon=\"fto-list\" onlyIcon flat plain [size]=\"size()\"> </x-button>\r\n </x-dropdown>\r\n }\r\n</div>\r\n","import { NgModule } from '@angular/core';\r\nimport { XSliderComponent } from './slider.component';\r\n\r\n@NgModule({\r\n declarations: [],\r\n exports: [XSliderComponent],\r\n imports: [XSliderComponent]\r\n})\r\nexport class XSliderModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
@@ -45,10 +45,10 @@ class XStatisticProperty extends XPropertyFunction(X_STATISTIC_CONFIG_NAME) {
|
|
|
45
45
|
*/
|
|
46
46
|
this.valueStyle = input({}, ...(ngDevMode ? [{ debugName: "valueStyle" }] : []));
|
|
47
47
|
}
|
|
48
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.
|
|
49
|
-
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.0.
|
|
48
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: XStatisticProperty, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
49
|
+
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.0.6", type: XStatisticProperty, isStandalone: true, selector: "x-statistic-property", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, prefix: { classPropertyName: "prefix", publicName: "prefix", isSignal: true, isRequired: false, transformFunction: null }, suffix: { classPropertyName: "suffix", publicName: "suffix", isSignal: true, isRequired: false, transformFunction: null }, valueStyle: { classPropertyName: "valueStyle", publicName: "valueStyle", isSignal: true, isRequired: false, transformFunction: null } }, usesInheritance: true, ngImport: i0, template: '', isInline: true }); }
|
|
50
50
|
}
|
|
51
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.
|
|
51
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: XStatisticProperty, decorators: [{
|
|
52
52
|
type: Component,
|
|
53
53
|
args: [{ selector: `${XStatisticPrefix}-property`, template: '' }]
|
|
54
54
|
}], propDecorators: { value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }], label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: false }] }], prefix: [{ type: i0.Input, args: [{ isSignal: true, alias: "prefix", required: false }] }], suffix: [{ type: i0.Input, args: [{ isSignal: true, alias: "suffix", required: false }] }], valueStyle: [{ type: i0.Input, args: [{ isSignal: true, alias: "valueStyle", required: false }] }] } });
|
|
@@ -101,10 +101,10 @@ class XCountdownProperty extends XPropertyFunction(X_COUNTDOWN_CONFIG_NAME) {
|
|
|
101
101
|
*/
|
|
102
102
|
this.finish = output();
|
|
103
103
|
}
|
|
104
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.
|
|
105
|
-
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.0.
|
|
104
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: XCountdownProperty, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
105
|
+
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.0.6", type: XCountdownProperty, isStandalone: true, selector: "x-countdown-property", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, prefix: { classPropertyName: "prefix", publicName: "prefix", isSignal: true, isRequired: false, transformFunction: null }, suffix: { classPropertyName: "suffix", publicName: "suffix", isSignal: true, isRequired: false, transformFunction: null }, valueStyle: { classPropertyName: "valueStyle", publicName: "valueStyle", isSignal: true, isRequired: false, transformFunction: null }, format: { classPropertyName: "format", publicName: "format", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { finish: "finish" }, usesInheritance: true, ngImport: i0, template: '', isInline: true }); }
|
|
106
106
|
}
|
|
107
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.
|
|
107
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: XCountdownProperty, decorators: [{
|
|
108
108
|
type: Component,
|
|
109
109
|
args: [{ selector: `${XCountdownPrefix}-property`, template: '' }]
|
|
110
110
|
}], propDecorators: { value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }], label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: false }] }], prefix: [{ type: i0.Input, args: [{ isSignal: true, alias: "prefix", required: false }] }], suffix: [{ type: i0.Input, args: [{ isSignal: true, alias: "suffix", required: false }] }], valueStyle: [{ type: i0.Input, args: [{ isSignal: true, alias: "valueStyle", required: false }] }], format: [{ type: i0.Input, args: [{ isSignal: true, alias: "format", required: false }] }], finish: [{ type: i0.Output, args: ["finish"] }] } });
|
|
@@ -129,10 +129,10 @@ class XStatisticComponent extends XStatisticProperty {
|
|
|
129
129
|
return decimal;
|
|
130
130
|
}, ...(ngDevMode ? [{ debugName: "displayDecimal" }] : []));
|
|
131
131
|
}
|
|
132
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.
|
|
133
|
-
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.
|
|
132
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: XStatisticComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
133
|
+
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.6", type: XStatisticComponent, isStandalone: true, selector: "x-statistic", usesInheritance: true, ngImport: i0, template: "<div #statistic class=\"x-statistic\">\r\n @if (label()) {\r\n <div class=\"x-statistic-label\">\r\n <ng-container *xOutlet=\"label()\">{{ label() }}</ng-container>\r\n </div>\r\n }\r\n @if (value()) {\r\n <div class=\"x-statistic-value\" [ngStyle]=\"valueStyle()\">\r\n <ng-container *xOutlet=\"value()\">\r\n @if (prefix()) {\r\n <span class=\"x-statistic-value-prefix\">\r\n <ng-container *xOutlet=\"prefix()\">{{ prefix() }}</ng-container>\r\n </span>\r\n }\r\n @if (displayInt()) {\r\n <span class=\"x-statistic-value-int\">{{ displayInt() }}</span>\r\n }\r\n @if (displayDecimal()) {\r\n <span class=\"x-statistic-value-decimal\">{{ displayDecimal() }}</span>\r\n }\r\n @if (suffix()) {\r\n <span class=\"x-statistic-value-suffix\">\r\n <ng-container *xOutlet=\"suffix()\">{{ suffix() }}</ng-container>\r\n </span>\r\n }\r\n </ng-container>\r\n </div>\r\n }\r\n</div>\r\n", styles: [".x-statistic{margin:0;padding:0}.x-statistic-label{margin-bottom:.25rem;color:var(--x-text-400)}.x-statistic-value{font-size:1.5rem}.x-statistic-value-decimal,.x-statistic-value-suffix{font-size:1rem}.x-statistic-value-suffix{margin-left:.25rem}.x-statistic-value-prefix{margin-right:.25rem}\n"], dependencies: [{ kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: XOutletDirective, selector: "[xOutlet]", inputs: ["xOutletContext", "xOutlet"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
134
134
|
}
|
|
135
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.
|
|
135
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: XStatisticComponent, decorators: [{
|
|
136
136
|
type: Component,
|
|
137
137
|
args: [{ selector: `${XStatisticPrefix}`, imports: [NgStyle, XOutletDirective], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div #statistic class=\"x-statistic\">\r\n @if (label()) {\r\n <div class=\"x-statistic-label\">\r\n <ng-container *xOutlet=\"label()\">{{ label() }}</ng-container>\r\n </div>\r\n }\r\n @if (value()) {\r\n <div class=\"x-statistic-value\" [ngStyle]=\"valueStyle()\">\r\n <ng-container *xOutlet=\"value()\">\r\n @if (prefix()) {\r\n <span class=\"x-statistic-value-prefix\">\r\n <ng-container *xOutlet=\"prefix()\">{{ prefix() }}</ng-container>\r\n </span>\r\n }\r\n @if (displayInt()) {\r\n <span class=\"x-statistic-value-int\">{{ displayInt() }}</span>\r\n }\r\n @if (displayDecimal()) {\r\n <span class=\"x-statistic-value-decimal\">{{ displayDecimal() }}</span>\r\n }\r\n @if (suffix()) {\r\n <span class=\"x-statistic-value-suffix\">\r\n <ng-container *xOutlet=\"suffix()\">{{ suffix() }}</ng-container>\r\n </span>\r\n }\r\n </ng-container>\r\n </div>\r\n }\r\n</div>\r\n", styles: [".x-statistic{margin:0;padding:0}.x-statistic-label{margin-bottom:.25rem;color:var(--x-text-400)}.x-statistic-value{font-size:1.5rem}.x-statistic-value-decimal,.x-statistic-value-suffix{font-size:1rem}.x-statistic-value-suffix{margin-left:.25rem}.x-statistic-value-prefix{margin-right:.25rem}\n"] }]
|
|
138
138
|
}] });
|
|
@@ -192,20 +192,20 @@ class XCountdownComponent extends XCountdownProperty {
|
|
|
192
192
|
this.finish.emit();
|
|
193
193
|
}
|
|
194
194
|
}
|
|
195
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.
|
|
196
|
-
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.0.
|
|
195
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: XCountdownComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
196
|
+
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.0.6", type: XCountdownComponent, isStandalone: true, selector: "x-countdown", usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div class=\"x-countdown\">\r\n <x-statistic\r\n [value]=\"diff() | xTimeRange: format()\"\r\n [valueStyle]=\"valueStyle()\"\r\n [prefix]=\"prefix()\"\r\n [suffix]=\"suffix()\"\r\n [label]=\"label()\"\r\n ></x-statistic>\r\n</div>\r\n", styles: ["x-countdown{display:inline-block}\n"], dependencies: [{ kind: "component", type: XStatisticComponent, selector: "x-statistic" }, { kind: "pipe", type: XTimeRangePipe, name: "xTimeRange" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
197
197
|
}
|
|
198
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.
|
|
198
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: XCountdownComponent, decorators: [{
|
|
199
199
|
type: Component,
|
|
200
200
|
args: [{ selector: `${XCountdownPrefix}`, imports: [XStatisticComponent, XTimeRangePipe], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"x-countdown\">\r\n <x-statistic\r\n [value]=\"diff() | xTimeRange: format()\"\r\n [valueStyle]=\"valueStyle()\"\r\n [prefix]=\"prefix()\"\r\n [suffix]=\"suffix()\"\r\n [label]=\"label()\"\r\n ></x-statistic>\r\n</div>\r\n", styles: ["x-countdown{display:inline-block}\n"] }]
|
|
201
201
|
}] });
|
|
202
202
|
|
|
203
203
|
class XStatisticModule {
|
|
204
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.
|
|
205
|
-
/** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.0.
|
|
206
|
-
/** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.0.
|
|
204
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: XStatisticModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
205
|
+
/** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.0.6", ngImport: i0, type: XStatisticModule, imports: [XStatisticComponent, XCountdownComponent], exports: [XStatisticComponent, XCountdownComponent] }); }
|
|
206
|
+
/** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: XStatisticModule }); }
|
|
207
207
|
}
|
|
208
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.
|
|
208
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: XStatisticModule, decorators: [{
|
|
209
209
|
type: NgModule,
|
|
210
210
|
args: [{
|
|
211
211
|
exports: [XStatisticComponent, XCountdownComponent],
|
|
@@ -22,7 +22,7 @@ class XStepsProperty extends XPropertyFunction(X_STEPS_CONFIG_NAME) {
|
|
|
22
22
|
* @zh_CN 节点数据
|
|
23
23
|
* @en_US Node data
|
|
24
24
|
*/
|
|
25
|
-
this.data = input([], ...(ngDevMode ?
|
|
25
|
+
this.data = input([], { ...(ngDevMode ? { debugName: "data" } : {}), transform: XToDataArray });
|
|
26
26
|
/**
|
|
27
27
|
* @zh_CN 布局方式
|
|
28
28
|
* @en_US Layout
|
|
@@ -32,12 +32,12 @@ class XStepsProperty extends XPropertyFunction(X_STEPS_CONFIG_NAME) {
|
|
|
32
32
|
* @zh_CN 当前激活节点
|
|
33
33
|
* @en_US Currently active node
|
|
34
34
|
*/
|
|
35
|
-
this.activatedIndex = input(0, ...(ngDevMode ?
|
|
35
|
+
this.activatedIndex = input(0, { ...(ngDevMode ? { debugName: "activatedIndex" } : {}), transform: XToNumber });
|
|
36
36
|
/**
|
|
37
37
|
* @zh_CN 步骤开始序号
|
|
38
38
|
* @en_US Step start number
|
|
39
39
|
*/
|
|
40
|
-
this.startIndex = input(0, ...(ngDevMode ?
|
|
40
|
+
this.startIndex = input(0, { ...(ngDevMode ? { debugName: "startIndex" } : {}), transform: XToNumber });
|
|
41
41
|
/**
|
|
42
42
|
* @zh_CN 当前激活节点状态
|
|
43
43
|
* @en_US Current active node status
|
|
@@ -67,12 +67,12 @@ class XStepsProperty extends XPropertyFunction(X_STEPS_CONFIG_NAME) {
|
|
|
67
67
|
* @zh_CN 节点设置的状态优先,将不会自动计算当前节点,`activatedIndex` 和 `status` 将失效
|
|
68
68
|
* @en_US the status set by the node takes precedence, and the current node will not be calculated, `activatedIndex` and `status` will be invalidated
|
|
69
69
|
*/
|
|
70
|
-
this.nodeStatus = input(false, ...(ngDevMode ?
|
|
70
|
+
this.nodeStatus = input(false, { ...(ngDevMode ? { debugName: "nodeStatus" } : {}), transform: XToBoolean });
|
|
71
71
|
}
|
|
72
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.
|
|
73
|
-
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.0.
|
|
72
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: XStepsProperty, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
73
|
+
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.0.6", type: XStepsProperty, isStandalone: true, selector: "x-steps-property", inputs: { data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: false, transformFunction: null }, layout: { classPropertyName: "layout", publicName: "layout", isSignal: true, isRequired: false, transformFunction: null }, activatedIndex: { classPropertyName: "activatedIndex", publicName: "activatedIndex", isSignal: true, isRequired: false, transformFunction: null }, startIndex: { classPropertyName: "startIndex", publicName: "startIndex", isSignal: true, isRequired: false, transformFunction: null }, status: { classPropertyName: "status", publicName: "status", isSignal: true, isRequired: false, transformFunction: null }, customTpl: { classPropertyName: "customTpl", publicName: "customTpl", isSignal: true, isRequired: false, transformFunction: null }, customIconTpl: { classPropertyName: "customIconTpl", publicName: "customIconTpl", isSignal: true, isRequired: false, transformFunction: null }, customLabelTpl: { classPropertyName: "customLabelTpl", publicName: "customLabelTpl", isSignal: true, isRequired: false, transformFunction: null }, customDescriptionTpl: { classPropertyName: "customDescriptionTpl", publicName: "customDescriptionTpl", isSignal: true, isRequired: false, transformFunction: null }, nodeStatus: { classPropertyName: "nodeStatus", publicName: "nodeStatus", isSignal: true, isRequired: false, transformFunction: null } }, usesInheritance: true, ngImport: i0, template: '', isInline: true }); }
|
|
74
74
|
}
|
|
75
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.
|
|
75
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: XStepsProperty, decorators: [{
|
|
76
76
|
type: Component,
|
|
77
77
|
args: [{ selector: `${XStepsPrefix}-property`, template: '' }]
|
|
78
78
|
}], propDecorators: { data: [{ type: i0.Input, args: [{ isSignal: true, alias: "data", required: false }] }], layout: [{ type: i0.Input, args: [{ isSignal: true, alias: "layout", required: false }] }], activatedIndex: [{ type: i0.Input, args: [{ isSignal: true, alias: "activatedIndex", required: false }] }], startIndex: [{ type: i0.Input, args: [{ isSignal: true, alias: "startIndex", required: false }] }], status: [{ type: i0.Input, args: [{ isSignal: true, alias: "status", required: false }] }], customTpl: [{ type: i0.Input, args: [{ isSignal: true, alias: "customTpl", required: false }] }], customIconTpl: [{ type: i0.Input, args: [{ isSignal: true, alias: "customIconTpl", required: false }] }], customLabelTpl: [{ type: i0.Input, args: [{ isSignal: true, alias: "customLabelTpl", required: false }] }], customDescriptionTpl: [{ type: i0.Input, args: [{ isSignal: true, alias: "customDescriptionTpl", required: false }] }], nodeStatus: [{ type: i0.Input, args: [{ isSignal: true, alias: "nodeStatus", required: false }] }] } });
|
|
@@ -111,20 +111,20 @@ class XStepsComponent extends XStepsProperty {
|
|
|
111
111
|
getIndex(index) {
|
|
112
112
|
return this.startIndex() + index + 1;
|
|
113
113
|
}
|
|
114
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.
|
|
115
|
-
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.
|
|
114
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: XStepsComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
115
|
+
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.6", type: XStepsComponent, isStandalone: true, selector: "x-steps", usesInheritance: true, ngImport: i0, template: "<div #steps class=\"x-steps\" [ngClass]=\"classMap()\">\r\n @for (node of nodes(); track node.id; let i = $index) {\r\n <div class=\"x-steps-node x-steps-{{ node.status }}\">\r\n <div class=\"x-steps-header\">\r\n <ng-container *xOutlet=\"customTpl() ?? customIconTpl(); context: { $node: node, $index: i }\">\r\n <div class=\"x-steps-icon\" [class.x-steps-only-icon]=\"node.icon\">\r\n @if (node.icon) {\r\n <x-icon [type]=\"node.icon\"></x-icon>\r\n } @else {\r\n @switch (node.status) {\r\n @case ('finish') {\r\n <x-icon type=\"fto-check\"></x-icon>\r\n }\r\n @case ('error') {\r\n <x-icon type=\"fto-x\"></x-icon>\r\n }\r\n @default {\r\n <span>{{ getIndex(i) }}</span>\r\n }\r\n }\r\n }\r\n </div>\r\n </ng-container>\r\n @if (layout() === 'column') {\r\n <span class=\"x-steps-line\"></span>\r\n }\r\n </div>\r\n <div class=\"x-steps-content\">\r\n <div class=\"x-steps-title\">\r\n <span class=\"x-steps-label\">\r\n <ng-container *xOutlet=\"customLabelTpl(); context: { $node: node, $index: i }\">{{\r\n node.label\r\n }}</ng-container>\r\n </span>\r\n\r\n @if (layout() === 'row') {\r\n <span class=\"x-steps-line\"></span>\r\n }\r\n </div>\r\n <div class=\"x-steps-description\">\r\n <ng-container *xOutlet=\"customDescriptionTpl(); context: { $node: node, $index: i }\">{{\r\n node.description\r\n }}</ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n }\r\n</div>\r\n", styles: [".x-steps{margin:0;padding:0}.x-steps{display:flex}.x-steps-node{position:relative;flex:1;display:flex}.x-steps-node:last-child{flex:inherit}.x-steps-node:last-child .x-steps-line{display:none}.x-steps-content{padding:0 .5rem;position:relative;flex:1;display:flex;flex-direction:column}.x-steps-header{display:flex;flex-direction:column;align-items:center}.x-steps-title{display:flex;align-items:center;line-height:2rem;transition:var(--x-animation-duration-base)}.x-steps-label{padding-right:.5rem;white-space:nowrap;transition:var(--x-animation-duration-base)}.x-steps-line{flex:1;border-bottom:var(--x-border-width) var(--x-border-style) var(--x-border);transition:var(--x-animation-duration-base)}.x-steps-icon{height:2rem;width:2rem;border:var(--x-border-width) var(--x-border-style) var(--x-border);background-color:var(--x-background);border-radius:50%;display:flex;align-items:center;justify-content:center;transition:var(--x-animation-duration-base)}.x-steps-icon>.x-icon{font-size:1rem}.x-steps-icon.x-steps-only-icon{border:none}.x-steps-icon.x-steps-only-icon .x-icon{font-size:1.5rem}.x-steps-description{font-size:var(--x-font-size-small);color:var(--x-text-400);max-width:8rem}.x-steps-row{flex-direction:row}.x-steps-column{flex-direction:column}.x-steps-column .x-steps-header{min-height:5rem}.x-steps-column .x-steps-line{border-bottom:none;border-right:var(--x-border-width) var(--x-border-style) var(--x-border);margin:.5rem 0}.x-steps-column .x-steps-content{padding:0 0 .5rem .5rem}.x-steps-column .x-steps-description{max-width:inherit}.x-steps-wait .x-steps-label{color:var(--x-text-400);font-weight:\"\"}.x-steps-wait .x-steps-icon{color:var(--x-text-400);background-color:\"\";border-color:\"\"}.x-steps-wait .x-steps-line{border-color:\"\"}.x-steps-process .x-steps-label{color:var(--x-text-300);font-weight:700}.x-steps-process .x-steps-icon{color:var(--x-white);background-color:var(--x-primary);border-color:var(--x-primary)}.x-steps-process .x-steps-icon.x-steps-only-icon{color:var(--x-primary);background-color:inherit}.x-steps-process .x-steps-line{border-color:\"\"}.x-steps-finish .x-steps-label{color:var(--x-text-400);font-weight:\"\"}.x-steps-finish .x-steps-icon{color:var(--x-primary);background-color:\"\";border-color:\"\"}.x-steps-finish .x-steps-line{border-color:var(--x-primary)}.x-steps-error .x-steps-label{color:var(--x-danger);font-weight:\"\"}.x-steps-error .x-steps-icon{color:var(--x-danger);background-color:\"\";border-color:var(--x-danger)}.x-steps-error .x-steps-line{border-color:\"\"}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: XIconComponent, selector: "x-icon" }, { kind: "directive", type: XOutletDirective, selector: "[xOutlet]", inputs: ["xOutletContext", "xOutlet"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
116
116
|
}
|
|
117
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.
|
|
117
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: XStepsComponent, decorators: [{
|
|
118
118
|
type: Component,
|
|
119
119
|
args: [{ selector: `${XStepsPrefix}`, imports: [NgClass, XIconComponent, XOutletDirective], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div #steps class=\"x-steps\" [ngClass]=\"classMap()\">\r\n @for (node of nodes(); track node.id; let i = $index) {\r\n <div class=\"x-steps-node x-steps-{{ node.status }}\">\r\n <div class=\"x-steps-header\">\r\n <ng-container *xOutlet=\"customTpl() ?? customIconTpl(); context: { $node: node, $index: i }\">\r\n <div class=\"x-steps-icon\" [class.x-steps-only-icon]=\"node.icon\">\r\n @if (node.icon) {\r\n <x-icon [type]=\"node.icon\"></x-icon>\r\n } @else {\r\n @switch (node.status) {\r\n @case ('finish') {\r\n <x-icon type=\"fto-check\"></x-icon>\r\n }\r\n @case ('error') {\r\n <x-icon type=\"fto-x\"></x-icon>\r\n }\r\n @default {\r\n <span>{{ getIndex(i) }}</span>\r\n }\r\n }\r\n }\r\n </div>\r\n </ng-container>\r\n @if (layout() === 'column') {\r\n <span class=\"x-steps-line\"></span>\r\n }\r\n </div>\r\n <div class=\"x-steps-content\">\r\n <div class=\"x-steps-title\">\r\n <span class=\"x-steps-label\">\r\n <ng-container *xOutlet=\"customLabelTpl(); context: { $node: node, $index: i }\">{{\r\n node.label\r\n }}</ng-container>\r\n </span>\r\n\r\n @if (layout() === 'row') {\r\n <span class=\"x-steps-line\"></span>\r\n }\r\n </div>\r\n <div class=\"x-steps-description\">\r\n <ng-container *xOutlet=\"customDescriptionTpl(); context: { $node: node, $index: i }\">{{\r\n node.description\r\n }}</ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n }\r\n</div>\r\n", styles: [".x-steps{margin:0;padding:0}.x-steps{display:flex}.x-steps-node{position:relative;flex:1;display:flex}.x-steps-node:last-child{flex:inherit}.x-steps-node:last-child .x-steps-line{display:none}.x-steps-content{padding:0 .5rem;position:relative;flex:1;display:flex;flex-direction:column}.x-steps-header{display:flex;flex-direction:column;align-items:center}.x-steps-title{display:flex;align-items:center;line-height:2rem;transition:var(--x-animation-duration-base)}.x-steps-label{padding-right:.5rem;white-space:nowrap;transition:var(--x-animation-duration-base)}.x-steps-line{flex:1;border-bottom:var(--x-border-width) var(--x-border-style) var(--x-border);transition:var(--x-animation-duration-base)}.x-steps-icon{height:2rem;width:2rem;border:var(--x-border-width) var(--x-border-style) var(--x-border);background-color:var(--x-background);border-radius:50%;display:flex;align-items:center;justify-content:center;transition:var(--x-animation-duration-base)}.x-steps-icon>.x-icon{font-size:1rem}.x-steps-icon.x-steps-only-icon{border:none}.x-steps-icon.x-steps-only-icon .x-icon{font-size:1.5rem}.x-steps-description{font-size:var(--x-font-size-small);color:var(--x-text-400);max-width:8rem}.x-steps-row{flex-direction:row}.x-steps-column{flex-direction:column}.x-steps-column .x-steps-header{min-height:5rem}.x-steps-column .x-steps-line{border-bottom:none;border-right:var(--x-border-width) var(--x-border-style) var(--x-border);margin:.5rem 0}.x-steps-column .x-steps-content{padding:0 0 .5rem .5rem}.x-steps-column .x-steps-description{max-width:inherit}.x-steps-wait .x-steps-label{color:var(--x-text-400);font-weight:\"\"}.x-steps-wait .x-steps-icon{color:var(--x-text-400);background-color:\"\";border-color:\"\"}.x-steps-wait .x-steps-line{border-color:\"\"}.x-steps-process .x-steps-label{color:var(--x-text-300);font-weight:700}.x-steps-process .x-steps-icon{color:var(--x-white);background-color:var(--x-primary);border-color:var(--x-primary)}.x-steps-process .x-steps-icon.x-steps-only-icon{color:var(--x-primary);background-color:inherit}.x-steps-process .x-steps-line{border-color:\"\"}.x-steps-finish .x-steps-label{color:var(--x-text-400);font-weight:\"\"}.x-steps-finish .x-steps-icon{color:var(--x-primary);background-color:\"\";border-color:\"\"}.x-steps-finish .x-steps-line{border-color:var(--x-primary)}.x-steps-error .x-steps-label{color:var(--x-danger);font-weight:\"\"}.x-steps-error .x-steps-icon{color:var(--x-danger);background-color:\"\";border-color:var(--x-danger)}.x-steps-error .x-steps-line{border-color:\"\"}\n"] }]
|
|
120
120
|
}] });
|
|
121
121
|
|
|
122
122
|
class XStepsModule {
|
|
123
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.
|
|
124
|
-
/** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.0.
|
|
125
|
-
/** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.0.
|
|
123
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: XStepsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
124
|
+
/** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.0.6", ngImport: i0, type: XStepsModule, imports: [XStepsComponent], exports: [XStepsComponent] }); }
|
|
125
|
+
/** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: XStepsModule, imports: [XStepsComponent] }); }
|
|
126
126
|
}
|
|
127
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.
|
|
127
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: XStepsModule, decorators: [{
|
|
128
128
|
type: NgModule,
|
|
129
129
|
args: [{
|
|
130
130
|
exports: [XStepsComponent],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ng-nest-ui-steps.mjs","sources":["../../../../lib/ng-nest/ui/steps/steps.property.ts","../../../../lib/ng-nest/ui/steps/steps.component.ts","../../../../lib/ng-nest/ui/steps/steps.component.html","../../../../lib/ng-nest/ui/steps/steps.module.ts","../../../../lib/ng-nest/ui/steps/ng-nest-ui-steps.ts"],"sourcesContent":["import { XToDataArray, XToNumber, XToBoolean, XPropertyFunction } from '@ng-nest/ui/core';\r\nimport { Component, input, TemplateRef } from '@angular/core';\r\nimport type { XParentIdentityProperty, XNumber, XBoolean, XDataArray } from '@ng-nest/ui/core';\r\n\r\n/**\r\n * Steps\r\n * @selector x-steps\r\n * @decorator component\r\n */\r\nexport const XStepsPrefix = 'x-steps';\r\nconst X_STEPS_CONFIG_NAME = 'steps';\r\n\r\n/**\r\n * Steps Property\r\n */\r\n@Component({ selector: `${XStepsPrefix}-property`, template: '' })\r\nexport class XStepsProperty extends XPropertyFunction(X_STEPS_CONFIG_NAME) {\r\n /**\r\n * @zh_CN 节点数据\r\n * @en_US Node data\r\n */\r\n readonly data = input<XStepsNode[], XDataArray<XStepsNode>>([], { transform: XToDataArray });\r\n /**\r\n * @zh_CN 布局方式\r\n * @en_US Layout\r\n */\r\n readonly layout = input<XStepsLayout>('row');\r\n /**\r\n * @zh_CN 当前激活节点\r\n * @en_US Currently active node\r\n */\r\n readonly activatedIndex = input<number, XNumber>(0, { transform: XToNumber });\r\n /**\r\n * @zh_CN 步骤开始序号\r\n * @en_US Step start number\r\n */\r\n readonly startIndex = input<number, XNumber>(0, { transform: XToNumber });\r\n /**\r\n * @zh_CN 当前激活节点状态\r\n * @en_US Current active node status\r\n */\r\n readonly status = input<XStepsStatus>();\r\n /**\r\n * @zh_CN 自定义节点(22 版本将废弃)\r\n * @en_US Custom node (will be deprecated in version 22)\r\n */\r\n readonly customTpl = input<TemplateRef<any>>();\r\n /**\r\n * @zh_CN 自定义节点图标\r\n * @en_US Custom node icon\r\n */\r\n readonly customIconTpl = input<TemplateRef<any>>();\r\n /**\r\n * @zh_CN 自定义节点标题\r\n * @en_US Custom node label\r\n */\r\n readonly customLabelTpl = input<TemplateRef<any>>();\r\n /**\r\n * @zh_CN 自定义节点描述\r\n * @en_US Custom node description\r\n */\r\n readonly customDescriptionTpl = input<TemplateRef<any>>();\r\n /**\r\n * @zh_CN 节点设置的状态优先,将不会自动计算当前节点,`activatedIndex` 和 `status` 将失效\r\n * @en_US the status set by the node takes precedence, and the current node will not be calculated, `activatedIndex` and `status` will be invalidated\r\n */\r\n readonly nodeStatus = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n}\r\n\r\nexport interface XStepsNode extends XParentIdentityProperty<XStepsNode> {\r\n /**\r\n * @zh_CN 状态\r\n * @en_US Status\r\n */\r\n status?: XStepsStatus;\r\n /**\r\n * @zh_CN 描述\r\n * @en_US Description\r\n */\r\n description?: string;\r\n /**\r\n * @zh_CN 图标\r\n * @en_US Icon\r\n */\r\n icon?: string;\r\n}\r\n\r\n/**\r\n * @zh_CN 布局方式\r\n * @en_US Layout\r\n */\r\nexport type XStepsLayout = 'row' | 'column';\r\n\r\n/**\r\n * @zh_CN 节点状态\r\n * @en_US Node status\r\n */\r\nexport type XStepsStatus = 'wait' | 'process' | 'finish' | 'error';\r\n","import { Component, ViewEncapsulation, ChangeDetectionStrategy, computed } from '@angular/core';\r\nimport { XStepsPrefix, XStepsProperty } from './steps.property';\r\nimport { XIsUndefined, XIsNumber, XIsEmpty } from '@ng-nest/ui/core';\r\nimport { NgClass } from '@angular/common';\r\nimport { XIconComponent } from '@ng-nest/ui/icon';\r\nimport { XOutletDirective } from '@ng-nest/ui/outlet';\r\n\r\n@Component({\r\n selector: `${XStepsPrefix}`,\r\n imports: [NgClass, XIconComponent, XOutletDirective],\r\n templateUrl: './steps.component.html',\r\n styleUrls: ['./steps.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class XStepsComponent extends XStepsProperty {\r\n nodes = computed(() => {\r\n const data = this.data();\r\n const activatedIndex = this.activatedIndex();\r\n const status = this.status();\r\n const nodeStatus = this.nodeStatus();\r\n return data.map((x, index) => {\r\n if (nodeStatus) {\r\n if (XIsUndefined(x.status)) {\r\n x.status = 'wait';\r\n }\r\n } else {\r\n if (XIsUndefined(activatedIndex)) {\r\n x.status = 'wait';\r\n } else if (XIsNumber(activatedIndex)) {\r\n x.status = index < activatedIndex ? 'finish' : index === activatedIndex ? 'process' : 'wait';\r\n }\r\n if (status && index === activatedIndex) x.status = status;\r\n }\r\n\r\n return x;\r\n });\r\n });\r\n\r\n classMap = computed(() => ({\r\n [`${XStepsPrefix}-${this.layout()}`]: !XIsEmpty(this.layout())\r\n }));\r\n\r\n getIndex(index: number) {\r\n return this.startIndex() + index + 1;\r\n }\r\n}\r\n","<div #steps class=\"x-steps\" [ngClass]=\"classMap()\">\r\n @for (node of nodes(); track node.id; let i = $index) {\r\n <div class=\"x-steps-node x-steps-{{ node.status }}\">\r\n <div class=\"x-steps-header\">\r\n <ng-container *xOutlet=\"customTpl() ?? customIconTpl(); context: { $node: node, $index: i }\">\r\n <div class=\"x-steps-icon\" [class.x-steps-only-icon]=\"node.icon\">\r\n @if (node.icon) {\r\n <x-icon [type]=\"node.icon\"></x-icon>\r\n } @else {\r\n @switch (node.status) {\r\n @case ('finish') {\r\n <x-icon type=\"fto-check\"></x-icon>\r\n }\r\n @case ('error') {\r\n <x-icon type=\"fto-x\"></x-icon>\r\n }\r\n @default {\r\n <span>{{ getIndex(i) }}</span>\r\n }\r\n }\r\n }\r\n </div>\r\n </ng-container>\r\n @if (layout() === 'column') {\r\n <span class=\"x-steps-line\"></span>\r\n }\r\n </div>\r\n <div class=\"x-steps-content\">\r\n <div class=\"x-steps-title\">\r\n <span class=\"x-steps-label\">\r\n <ng-container *xOutlet=\"customLabelTpl(); context: { $node: node, $index: i }\">{{\r\n node.label\r\n }}</ng-container>\r\n </span>\r\n\r\n @if (layout() === 'row') {\r\n <span class=\"x-steps-line\"></span>\r\n }\r\n </div>\r\n <div class=\"x-steps-description\">\r\n <ng-container *xOutlet=\"customDescriptionTpl(); context: { $node: node, $index: i }\">{{\r\n node.description\r\n }}</ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n }\r\n</div>\r\n","import { NgModule } from '@angular/core';\r\nimport { XStepsComponent } from './steps.component';\r\n\r\n@NgModule({\r\n exports: [XStepsComponent],\r\n imports: [XStepsComponent]\r\n})\r\nexport class XStepsModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ng-nest-ui-steps.mjs","sources":["../../../../lib/ng-nest/ui/steps/steps.property.ts","../../../../lib/ng-nest/ui/steps/steps.component.ts","../../../../lib/ng-nest/ui/steps/steps.component.html","../../../../lib/ng-nest/ui/steps/steps.module.ts","../../../../lib/ng-nest/ui/steps/ng-nest-ui-steps.ts"],"sourcesContent":["import { XToDataArray, XToNumber, XToBoolean, XPropertyFunction } from '@ng-nest/ui/core';\r\nimport { Component, input, TemplateRef } from '@angular/core';\r\nimport type { XParentIdentityProperty, XNumber, XBoolean, XDataArray } from '@ng-nest/ui/core';\r\n\r\n/**\r\n * Steps\r\n * @selector x-steps\r\n * @decorator component\r\n */\r\nexport const XStepsPrefix = 'x-steps';\r\nconst X_STEPS_CONFIG_NAME = 'steps';\r\n\r\n/**\r\n * Steps Property\r\n */\r\n@Component({ selector: `${XStepsPrefix}-property`, template: '' })\r\nexport class XStepsProperty extends XPropertyFunction(X_STEPS_CONFIG_NAME) {\r\n /**\r\n * @zh_CN 节点数据\r\n * @en_US Node data\r\n */\r\n readonly data = input<XStepsNode[], XDataArray<XStepsNode>>([], { transform: XToDataArray });\r\n /**\r\n * @zh_CN 布局方式\r\n * @en_US Layout\r\n */\r\n readonly layout = input<XStepsLayout>('row');\r\n /**\r\n * @zh_CN 当前激活节点\r\n * @en_US Currently active node\r\n */\r\n readonly activatedIndex = input<number, XNumber>(0, { transform: XToNumber });\r\n /**\r\n * @zh_CN 步骤开始序号\r\n * @en_US Step start number\r\n */\r\n readonly startIndex = input<number, XNumber>(0, { transform: XToNumber });\r\n /**\r\n * @zh_CN 当前激活节点状态\r\n * @en_US Current active node status\r\n */\r\n readonly status = input<XStepsStatus>();\r\n /**\r\n * @zh_CN 自定义节点(22 版本将废弃)\r\n * @en_US Custom node (will be deprecated in version 22)\r\n */\r\n readonly customTpl = input<TemplateRef<any>>();\r\n /**\r\n * @zh_CN 自定义节点图标\r\n * @en_US Custom node icon\r\n */\r\n readonly customIconTpl = input<TemplateRef<any>>();\r\n /**\r\n * @zh_CN 自定义节点标题\r\n * @en_US Custom node label\r\n */\r\n readonly customLabelTpl = input<TemplateRef<any>>();\r\n /**\r\n * @zh_CN 自定义节点描述\r\n * @en_US Custom node description\r\n */\r\n readonly customDescriptionTpl = input<TemplateRef<any>>();\r\n /**\r\n * @zh_CN 节点设置的状态优先,将不会自动计算当前节点,`activatedIndex` 和 `status` 将失效\r\n * @en_US the status set by the node takes precedence, and the current node will not be calculated, `activatedIndex` and `status` will be invalidated\r\n */\r\n readonly nodeStatus = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n}\r\n\r\nexport interface XStepsNode extends XParentIdentityProperty<XStepsNode> {\r\n /**\r\n * @zh_CN 状态\r\n * @en_US Status\r\n */\r\n status?: XStepsStatus;\r\n /**\r\n * @zh_CN 描述\r\n * @en_US Description\r\n */\r\n description?: string;\r\n /**\r\n * @zh_CN 图标\r\n * @en_US Icon\r\n */\r\n icon?: string;\r\n}\r\n\r\n/**\r\n * @zh_CN 布局方式\r\n * @en_US Layout\r\n */\r\nexport type XStepsLayout = 'row' | 'column';\r\n\r\n/**\r\n * @zh_CN 节点状态\r\n * @en_US Node status\r\n */\r\nexport type XStepsStatus = 'wait' | 'process' | 'finish' | 'error';\r\n","import { Component, ViewEncapsulation, ChangeDetectionStrategy, computed } from '@angular/core';\r\nimport { XStepsPrefix, XStepsProperty } from './steps.property';\r\nimport { XIsUndefined, XIsNumber, XIsEmpty } from '@ng-nest/ui/core';\r\nimport { NgClass } from '@angular/common';\r\nimport { XIconComponent } from '@ng-nest/ui/icon';\r\nimport { XOutletDirective } from '@ng-nest/ui/outlet';\r\n\r\n@Component({\r\n selector: `${XStepsPrefix}`,\r\n imports: [NgClass, XIconComponent, XOutletDirective],\r\n templateUrl: './steps.component.html',\r\n styleUrls: ['./steps.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class XStepsComponent extends XStepsProperty {\r\n nodes = computed(() => {\r\n const data = this.data();\r\n const activatedIndex = this.activatedIndex();\r\n const status = this.status();\r\n const nodeStatus = this.nodeStatus();\r\n return data.map((x, index) => {\r\n if (nodeStatus) {\r\n if (XIsUndefined(x.status)) {\r\n x.status = 'wait';\r\n }\r\n } else {\r\n if (XIsUndefined(activatedIndex)) {\r\n x.status = 'wait';\r\n } else if (XIsNumber(activatedIndex)) {\r\n x.status = index < activatedIndex ? 'finish' : index === activatedIndex ? 'process' : 'wait';\r\n }\r\n if (status && index === activatedIndex) x.status = status;\r\n }\r\n\r\n return x;\r\n });\r\n });\r\n\r\n classMap = computed(() => ({\r\n [`${XStepsPrefix}-${this.layout()}`]: !XIsEmpty(this.layout())\r\n }));\r\n\r\n getIndex(index: number) {\r\n return this.startIndex() + index + 1;\r\n }\r\n}\r\n","<div #steps class=\"x-steps\" [ngClass]=\"classMap()\">\r\n @for (node of nodes(); track node.id; let i = $index) {\r\n <div class=\"x-steps-node x-steps-{{ node.status }}\">\r\n <div class=\"x-steps-header\">\r\n <ng-container *xOutlet=\"customTpl() ?? customIconTpl(); context: { $node: node, $index: i }\">\r\n <div class=\"x-steps-icon\" [class.x-steps-only-icon]=\"node.icon\">\r\n @if (node.icon) {\r\n <x-icon [type]=\"node.icon\"></x-icon>\r\n } @else {\r\n @switch (node.status) {\r\n @case ('finish') {\r\n <x-icon type=\"fto-check\"></x-icon>\r\n }\r\n @case ('error') {\r\n <x-icon type=\"fto-x\"></x-icon>\r\n }\r\n @default {\r\n <span>{{ getIndex(i) }}</span>\r\n }\r\n }\r\n }\r\n </div>\r\n </ng-container>\r\n @if (layout() === 'column') {\r\n <span class=\"x-steps-line\"></span>\r\n }\r\n </div>\r\n <div class=\"x-steps-content\">\r\n <div class=\"x-steps-title\">\r\n <span class=\"x-steps-label\">\r\n <ng-container *xOutlet=\"customLabelTpl(); context: { $node: node, $index: i }\">{{\r\n node.label\r\n }}</ng-container>\r\n </span>\r\n\r\n @if (layout() === 'row') {\r\n <span class=\"x-steps-line\"></span>\r\n }\r\n </div>\r\n <div class=\"x-steps-description\">\r\n <ng-container *xOutlet=\"customDescriptionTpl(); context: { $node: node, $index: i }\">{{\r\n node.description\r\n }}</ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n }\r\n</div>\r\n","import { NgModule } from '@angular/core';\r\nimport { XStepsComponent } from './steps.component';\r\n\r\n@NgModule({\r\n exports: [XStepsComponent],\r\n imports: [XStepsComponent]\r\n})\r\nexport class XStepsModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|