@ng-nest/ui 20.0.7 → 20.1.0
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/auto-complete/index.d.ts +33 -8
- package/base-form/index.d.ts +3 -3
- package/calendar/index.d.ts +1 -2
- package/cascade/index.d.ts +33 -8
- package/checkbox/index.d.ts +3 -3
- package/color-picker/index.d.ts +34 -8
- package/core/index.d.ts +40 -8
- package/date-picker/index.d.ts +57 -12
- package/dropdown/index.d.ts +4 -4
- 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 +35 -35
- package/fesm2022/ng-nest-ui-alert.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-anchor.mjs +31 -31
- package/fesm2022/ng-nest-ui-anchor.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-api.mjs +7 -7
- package/fesm2022/ng-nest-ui-api.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-auto-complete.mjs +82 -72
- package/fesm2022/ng-nest-ui-auto-complete.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-avatar.mjs +31 -31
- package/fesm2022/ng-nest-ui-avatar.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-back-top.mjs +18 -18
- package/fesm2022/ng-nest-ui-back-top.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-badge.mjs +23 -23
- package/fesm2022/ng-nest-ui-badge.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-base-form.mjs +45 -45
- package/fesm2022/ng-nest-ui-base-form.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-button.mjs +42 -42
- package/fesm2022/ng-nest-ui-button.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-calendar.mjs +20 -20
- package/fesm2022/ng-nest-ui-calendar.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-card.mjs +15 -15
- package/fesm2022/ng-nest-ui-card.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-carousel.mjs +46 -46
- package/fesm2022/ng-nest-ui-carousel.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-cascade.mjs +86 -76
- package/fesm2022/ng-nest-ui-cascade.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-checkbox.mjs +39 -39
- package/fesm2022/ng-nest-ui-checkbox.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-collapse.mjs +31 -31
- package/fesm2022/ng-nest-ui-collapse.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-color-picker.mjs +91 -72
- package/fesm2022/ng-nest-ui-color-picker.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-color.mjs +16 -16
- package/fesm2022/ng-nest-ui-color.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-comment.mjs +21 -21
- package/fesm2022/ng-nest-ui-comment.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-container.mjs +37 -37
- package/fesm2022/ng-nest-ui-container.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-core.mjs +38 -22
- package/fesm2022/ng-nest-ui-core.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-crumb.mjs +13 -13
- package/fesm2022/ng-nest-ui-crumb.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-date-picker.mjs +273 -253
- package/fesm2022/ng-nest-ui-date-picker.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-description.mjs +31 -31
- package/fesm2022/ng-nest-ui-description.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-dialog.mjs +81 -81
- package/fesm2022/ng-nest-ui-dialog.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-doc.mjs +7 -7
- package/fesm2022/ng-nest-ui-doc.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-drag.mjs +10 -10
- package/fesm2022/ng-nest-ui-drag.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-drawer.mjs +42 -42
- package/fesm2022/ng-nest-ui-drawer.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-dropdown.mjs +49 -49
- package/fesm2022/ng-nest-ui-dropdown.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-empty.mjs +12 -12
- package/fesm2022/ng-nest-ui-empty.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-examples.mjs +7 -7
- package/fesm2022/ng-nest-ui-examples.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-find.mjs +79 -77
- package/fesm2022/ng-nest-ui-find.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-form.mjs +33 -33
- package/fesm2022/ng-nest-ui-form.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-highlight.mjs +20 -20
- package/fesm2022/ng-nest-ui-highlight.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-i18n.mjs +15 -15
- package/fesm2022/ng-nest-ui-i18n.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-icon.mjs +21 -21
- package/fesm2022/ng-nest-ui-icon.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-image.mjs +39 -39
- 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 +42 -42
- package/fesm2022/ng-nest-ui-input-number.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-input.mjs +102 -81
- package/fesm2022/ng-nest-ui-input.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-keyword.mjs +15 -15
- package/fesm2022/ng-nest-ui-keyword.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-layout.mjs +31 -31
- package/fesm2022/ng-nest-ui-layout.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-link.mjs +18 -18
- package/fesm2022/ng-nest-ui-link.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-list.mjs +80 -80
- package/fesm2022/ng-nest-ui-list.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-loading.mjs +22 -22
- package/fesm2022/ng-nest-ui-loading.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-menu.mjs +45 -45
- 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-box.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-message.mjs +10 -10
- package/fesm2022/ng-nest-ui-message.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-notification.mjs +10 -10
- package/fesm2022/ng-nest-ui-notification.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-outlet.mjs +9 -9
- package/fesm2022/ng-nest-ui-outlet.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-page-header.mjs +15 -15
- package/fesm2022/ng-nest-ui-page-header.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-pagination.mjs +53 -53
- package/fesm2022/ng-nest-ui-pagination.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-pattern.mjs +7 -7
- package/fesm2022/ng-nest-ui-pattern.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-popconfirm.mjs +27 -27
- package/fesm2022/ng-nest-ui-popconfirm.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-popover.mjs +38 -38
- package/fesm2022/ng-nest-ui-popover.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-portal.mjs +7 -7
- package/fesm2022/ng-nest-ui-portal.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-progress.mjs +38 -38
- package/fesm2022/ng-nest-ui-progress.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-radio.mjs +36 -36
- package/fesm2022/ng-nest-ui-radio.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-rate.mjs +30 -30
- package/fesm2022/ng-nest-ui-rate.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-resizable.mjs +16 -16
- package/fesm2022/ng-nest-ui-resizable.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-result.mjs +16 -16
- package/fesm2022/ng-nest-ui-result.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-ripple.mjs +13 -13
- package/fesm2022/ng-nest-ui-ripple.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-scrollable.mjs +102 -19
- package/fesm2022/ng-nest-ui-scrollable.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-select.mjs +121 -111
- package/fesm2022/ng-nest-ui-select.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-skeleton.mjs +15 -15
- package/fesm2022/ng-nest-ui-skeleton.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-slider-select.mjs +54 -54
- package/fesm2022/ng-nest-ui-slider-select.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-slider.mjs +39 -39
- package/fesm2022/ng-nest-ui-slider.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-statistic.mjs +30 -30
- package/fesm2022/ng-nest-ui-statistic.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-steps.mjs +19 -19
- package/fesm2022/ng-nest-ui-steps.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-switch.mjs +26 -26
- package/fesm2022/ng-nest-ui-switch.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-table-view.mjs +490 -242
- package/fesm2022/ng-nest-ui-table-view.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-table.mjs +221 -221
- package/fesm2022/ng-nest-ui-table.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-tabs.mjs +58 -58
- package/fesm2022/ng-nest-ui-tabs.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-tag.mjs +22 -22
- package/fesm2022/ng-nest-ui-tag.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-text-retract.mjs +15 -15
- package/fesm2022/ng-nest-ui-text-retract.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-textarea.mjs +41 -41
- package/fesm2022/ng-nest-ui-textarea.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-theme.mjs +23 -23
- package/fesm2022/ng-nest-ui-theme.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-time-ago.mjs +7 -7
- package/fesm2022/ng-nest-ui-time-ago.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-time-picker.mjs +104 -94
- 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-time-range.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-timeline.mjs +15 -15
- package/fesm2022/ng-nest-ui-timeline.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-tooltip.mjs +38 -38
- package/fesm2022/ng-nest-ui-tooltip.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-transfer.mjs +40 -40
- package/fesm2022/ng-nest-ui-transfer.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-tree-file.mjs +28 -28
- package/fesm2022/ng-nest-ui-tree-file.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-tree-select.mjs +126 -116
- package/fesm2022/ng-nest-ui-tree-select.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-tree.mjs +107 -107
- package/fesm2022/ng-nest-ui-tree.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-typography.mjs +13 -13
- package/fesm2022/ng-nest-ui-typography.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-upload.mjs +37 -37
- package/fesm2022/ng-nest-ui-upload.mjs.map +1 -1
- package/find/index.d.ts +5 -5
- package/form/index.d.ts +1 -1
- package/input/index.d.ts +32 -5
- package/input-number/index.d.ts +5 -5
- package/list/index.d.ts +2 -2
- package/message-box/index.d.ts +4 -5
- package/package.json +20 -20
- package/radio/index.d.ts +3 -3
- package/rate/index.d.ts +5 -5
- package/scrollable/index.d.ts +15 -7
- package/select/index.d.ts +38 -8
- package/slider-select/index.d.ts +3 -3
- package/steps/index.d.ts +1 -2
- package/switch/index.d.ts +3 -3
- package/table-view/index.d.ts +121 -79
- package/textarea/index.d.ts +3 -3
- package/theme/index.d.ts +1 -1
- package/time-picker/index.d.ts +33 -8
- package/transfer/index.d.ts +1 -1
- package/tree-select/index.d.ts +33 -8
- package/upload/index.d.ts +2 -2
|
@@ -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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"}
|
|
@@ -23,32 +23,32 @@ class XStatisticProperty extends XPropertyFunction(X_STATISTIC_CONFIG_NAME) {
|
|
|
23
23
|
* @zh_CN 显示值
|
|
24
24
|
* @en_US Display value
|
|
25
25
|
*/
|
|
26
|
-
this.value = input();
|
|
26
|
+
this.value = input(...(ngDevMode ? [undefined, { debugName: "value" }] : []));
|
|
27
27
|
/**
|
|
28
28
|
* @zh_CN 标题
|
|
29
29
|
* @en_US Title
|
|
30
30
|
*/
|
|
31
|
-
this.label = input();
|
|
31
|
+
this.label = input(...(ngDevMode ? [undefined, { debugName: "label" }] : []));
|
|
32
32
|
/**
|
|
33
33
|
* @zh_CN 前缀
|
|
34
34
|
* @en_US Prefix
|
|
35
35
|
*/
|
|
36
|
-
this.prefix = input();
|
|
36
|
+
this.prefix = input(...(ngDevMode ? [undefined, { debugName: "prefix" }] : []));
|
|
37
37
|
/**
|
|
38
38
|
* @zh_CN 后缀
|
|
39
39
|
* @en_US Suffix
|
|
40
40
|
*/
|
|
41
|
-
this.suffix = input();
|
|
41
|
+
this.suffix = input(...(ngDevMode ? [undefined, { debugName: "suffix" }] : []));
|
|
42
42
|
/**
|
|
43
43
|
* @zh_CN 显示值样式
|
|
44
44
|
* @en_US Display value style
|
|
45
45
|
*/
|
|
46
|
-
this.valueStyle = input({});
|
|
46
|
+
this.valueStyle = input({}, ...(ngDevMode ? [{ debugName: "valueStyle" }] : []));
|
|
47
47
|
}
|
|
48
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
49
|
-
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.
|
|
48
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: XStatisticProperty, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
49
|
+
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.2.4", 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: "20.
|
|
51
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: XStatisticProperty, decorators: [{
|
|
52
52
|
type: Component,
|
|
53
53
|
args: [{ selector: `${XStatisticPrefix}-property`, template: '' }]
|
|
54
54
|
}] });
|
|
@@ -69,42 +69,42 @@ class XCountdownProperty extends XPropertyFunction(X_COUNTDOWN_CONFIG_NAME) {
|
|
|
69
69
|
* @zh_CN 显示值
|
|
70
70
|
* @en_US Display value
|
|
71
71
|
*/
|
|
72
|
-
this.value = input();
|
|
72
|
+
this.value = input(...(ngDevMode ? [undefined, { debugName: "value" }] : []));
|
|
73
73
|
/**
|
|
74
74
|
* @zh_CN 标题
|
|
75
75
|
* @en_US Title
|
|
76
76
|
*/
|
|
77
|
-
this.label = input();
|
|
77
|
+
this.label = input(...(ngDevMode ? [undefined, { debugName: "label" }] : []));
|
|
78
78
|
/**
|
|
79
79
|
* @zh_CN 前缀
|
|
80
80
|
* @en_US Prefix
|
|
81
81
|
*/
|
|
82
|
-
this.prefix = input();
|
|
82
|
+
this.prefix = input(...(ngDevMode ? [undefined, { debugName: "prefix" }] : []));
|
|
83
83
|
/**
|
|
84
84
|
* @zh_CN 后缀
|
|
85
85
|
* @en_US Suffix
|
|
86
86
|
*/
|
|
87
|
-
this.suffix = input();
|
|
87
|
+
this.suffix = input(...(ngDevMode ? [undefined, { debugName: "suffix" }] : []));
|
|
88
88
|
/**
|
|
89
89
|
* @zh_CN 显示值样式
|
|
90
90
|
* @en_US Display value style
|
|
91
91
|
*/
|
|
92
|
-
this.valueStyle = input({});
|
|
92
|
+
this.valueStyle = input({}, ...(ngDevMode ? [{ debugName: "valueStyle" }] : []));
|
|
93
93
|
/**
|
|
94
94
|
* @zh_CN 格式化
|
|
95
95
|
* @en_US Format
|
|
96
96
|
*/
|
|
97
|
-
this.format = input(this.config?.format ?? 'HH:mm:ss');
|
|
97
|
+
this.format = input(this.config?.format ?? 'HH:mm:ss', ...(ngDevMode ? [{ debugName: "format" }] : []));
|
|
98
98
|
/**
|
|
99
99
|
* @zh_CN 倒计时结束的事件
|
|
100
100
|
* @en_US Event at the end of the countdown
|
|
101
101
|
*/
|
|
102
102
|
this.finish = output();
|
|
103
103
|
}
|
|
104
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
105
|
-
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.
|
|
104
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: XCountdownProperty, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
105
|
+
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.2.4", 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: "20.
|
|
107
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: XCountdownProperty, decorators: [{
|
|
108
108
|
type: Component,
|
|
109
109
|
args: [{ selector: `${XCountdownPrefix}-property`, template: '' }]
|
|
110
110
|
}] });
|
|
@@ -119,7 +119,7 @@ class XStatisticComponent extends XStatisticProperty {
|
|
|
119
119
|
const decimalSeparator = '.';
|
|
120
120
|
const [int, decimal] = value.split(decimalSeparator);
|
|
121
121
|
return decimal ? `${int}${decimalSeparator}` : int;
|
|
122
|
-
});
|
|
122
|
+
}, ...(ngDevMode ? [{ debugName: "displayInt" }] : []));
|
|
123
123
|
this.displayDecimal = computed(() => {
|
|
124
124
|
const value = this.value();
|
|
125
125
|
if (!XIsString(value))
|
|
@@ -127,12 +127,12 @@ class XStatisticComponent extends XStatisticProperty {
|
|
|
127
127
|
const decimalSeparator = '.';
|
|
128
128
|
const [_int, decimal] = value.split(decimalSeparator);
|
|
129
129
|
return decimal;
|
|
130
|
-
});
|
|
130
|
+
}, ...(ngDevMode ? [{ debugName: "displayDecimal" }] : []));
|
|
131
131
|
}
|
|
132
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
133
|
-
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.
|
|
132
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: XStatisticComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
133
|
+
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.2.4", 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: "20.
|
|
135
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.4", 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
|
}] });
|
|
@@ -140,7 +140,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0", ngImpor
|
|
|
140
140
|
class XCountdownComponent extends XCountdownProperty {
|
|
141
141
|
constructor() {
|
|
142
142
|
super(...arguments);
|
|
143
|
-
this.diff = signal('');
|
|
143
|
+
this.diff = signal('', ...(ngDevMode ? [{ debugName: "diff" }] : []));
|
|
144
144
|
this.period = 1000 / 30;
|
|
145
145
|
this.platformId = inject(PLATFORM_ID);
|
|
146
146
|
this.isBrowser = isPlatformBrowser(this.platformId);
|
|
@@ -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: "20.
|
|
196
|
-
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.
|
|
195
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: XCountdownComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
196
|
+
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.2.4", 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: "20.
|
|
198
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.4", 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: "20.
|
|
205
|
-
/** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.
|
|
206
|
-
/** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.
|
|
204
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: XStatisticModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
205
|
+
/** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.2.4", ngImport: i0, type: XStatisticModule, imports: [XStatisticComponent, XCountdownComponent], exports: [XStatisticComponent, XCountdownComponent] }); }
|
|
206
|
+
/** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: XStatisticModule }); }
|
|
207
207
|
}
|
|
208
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
208
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: XStatisticModule, decorators: [{
|
|
209
209
|
type: NgModule,
|
|
210
210
|
args: [{
|
|
211
211
|
exports: [XStatisticComponent, XCountdownComponent],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ng-nest-ui-statistic.mjs","sources":["../../../../lib/ng-nest/ui/statistic/statistic.property.ts","../../../../lib/ng-nest/ui/statistic/statistic.component.ts","../../../../lib/ng-nest/ui/statistic/statistic.component.html","../../../../lib/ng-nest/ui/statistic/countdown.component.ts","../../../../lib/ng-nest/ui/statistic/countdown.component.html","../../../../lib/ng-nest/ui/statistic/statistic.module.ts","../../../../lib/ng-nest/ui/statistic/ng-nest-ui-statistic.ts"],"sourcesContent":["import { XPropertyFunction } from '@ng-nest/ui/core';\r\nimport { Component, input, output } from '@angular/core';\r\nimport type { XTemplate, XStyle } from '@ng-nest/ui/core';\r\n\r\n/**\r\n * Statistic\r\n * @selector x-statistic\r\n * @decorator component\r\n */\r\nexport const XStatisticPrefix = 'x-statistic';\r\nconst X_STATISTIC_CONFIG_NAME = 'statistic';\r\n\r\n/**\r\n * Statistic Property\r\n */\r\n@Component({ selector: `${XStatisticPrefix}-property`, template: '' })\r\nexport class XStatisticProperty extends XPropertyFunction(X_STATISTIC_CONFIG_NAME) {\r\n /**\r\n * @zh_CN 显示值\r\n * @en_US Display value\r\n */\r\n readonly value = input<XTemplate>();\r\n /**\r\n * @zh_CN 标题\r\n * @en_US Title\r\n */\r\n readonly label = input<XTemplate>();\r\n /**\r\n * @zh_CN 前缀\r\n * @en_US Prefix\r\n */\r\n readonly prefix = input<XTemplate>();\r\n /**\r\n * @zh_CN 后缀\r\n * @en_US Suffix\r\n */\r\n readonly suffix = input<XTemplate>();\r\n /**\r\n * @zh_CN 显示值样式\r\n * @en_US Display value style\r\n */\r\n readonly valueStyle = input<XStyle>({});\r\n}\r\n\r\n/**\r\n * Countdown\r\n * @selector x-countdown\r\n * @decorator component\r\n */\r\nexport const XCountdownPrefix = 'x-countdown';\r\nconst X_COUNTDOWN_CONFIG_NAME = 'countdown';\r\n\r\n/**\r\n * Countdown Property\r\n */\r\n@Component({ selector: `${XCountdownPrefix}-property`, template: '' })\r\nexport class XCountdownProperty extends XPropertyFunction(X_COUNTDOWN_CONFIG_NAME) {\r\n /**\r\n * @zh_CN 显示值\r\n * @en_US Display value\r\n */\r\n readonly value = input<XTemplate>();\r\n /**\r\n * @zh_CN 标题\r\n * @en_US Title\r\n */\r\n readonly label = input<XTemplate>();\r\n /**\r\n * @zh_CN 前缀\r\n * @en_US Prefix\r\n */\r\n readonly prefix = input<XTemplate>();\r\n /**\r\n * @zh_CN 后缀\r\n * @en_US Suffix\r\n */\r\n readonly suffix = input<XTemplate>();\r\n /**\r\n * @zh_CN 显示值样式\r\n * @en_US Display value style\r\n */\r\n readonly valueStyle = input<XStyle>({});\r\n /**\r\n * @zh_CN 格式化\r\n * @en_US Format\r\n */\r\n readonly format = input<string>(this.config?.format ?? 'HH:mm:ss');\r\n /**\r\n * @zh_CN 倒计时结束的事件\r\n * @en_US Event at the end of the countdown\r\n */\r\n readonly finish = output<void>();\r\n}\r\n","import { Component, ViewEncapsulation, ChangeDetectionStrategy, computed } from '@angular/core';\r\nimport { XStatisticPrefix, XStatisticProperty } from './statistic.property';\r\nimport { XIsString } from '@ng-nest/ui/core';\r\nimport { XOutletDirective } from '@ng-nest/ui/outlet';\r\nimport { NgStyle } from '@angular/common';\r\n\r\n@Component({\r\n selector: `${XStatisticPrefix}`,\r\n imports: [NgStyle, XOutletDirective],\r\n templateUrl: './statistic.component.html',\r\n styleUrls: ['./statistic.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class XStatisticComponent extends XStatisticProperty {\r\n displayInt = computed(() => {\r\n const value = this.value();\r\n if (!XIsString(value)) return '';\r\n const decimalSeparator: string = '.';\r\n const [int, decimal] = value.split(decimalSeparator);\r\n return decimal ? `${int}${decimalSeparator}` : int;\r\n });\r\n displayDecimal = computed(() => {\r\n const value = this.value();\r\n if (!XIsString(value)) return '';\r\n const decimalSeparator: string = '.';\r\n const [_int, decimal] = value.split(decimalSeparator);\r\n return decimal;\r\n });\r\n}\r\n","<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","import {\r\n Component,\r\n OnInit,\r\n ViewEncapsulation,\r\n ChangeDetectionStrategy,\r\n SimpleChanges,\r\n OnChanges,\r\n NgZone,\r\n inject,\r\n PLATFORM_ID,\r\n OnDestroy,\r\n signal\r\n} from '@angular/core';\r\nimport { XCountdownPrefix, XCountdownProperty } from './statistic.property';\r\nimport { interval, Subscription } from 'rxjs';\r\nimport { isPlatformBrowser } from '@angular/common';\r\nimport { XTimeRangePipe } from '@ng-nest/ui/time-range';\r\nimport { XStatisticComponent } from './statistic.component';\r\n\r\n@Component({\r\n selector: `${XCountdownPrefix}`,\r\n imports: [XStatisticComponent, XTimeRangePipe],\r\n templateUrl: './countdown.component.html',\r\n styleUrls: ['./countdown.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class XCountdownComponent extends XCountdownProperty implements OnInit, OnChanges, OnDestroy {\r\n diff = signal<number | string>('');\r\n period = 1000 / 30;\r\n private _target!: number;\r\n private updater!: Subscription | null;\r\n platformId = inject(PLATFORM_ID);\r\n isBrowser = isPlatformBrowser(this.platformId);\r\n private ngZone = inject(NgZone);\r\n\r\n ngOnInit(): void {\r\n this.syncTimer();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n const { value } = changes;\r\n if (value) {\r\n this._target = Number(value.currentValue);\r\n if (!value.isFirstChange()) {\r\n this.syncTimer();\r\n }\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.stopTimer();\r\n }\r\n\r\n syncTimer(): void {\r\n if (this._target >= Date.now()) {\r\n this.startTimer();\r\n } else {\r\n this.stopTimer();\r\n }\r\n }\r\n\r\n startTimer(): void {\r\n if (!this.isBrowser) return;\r\n this.ngZone.runOutsideAngular(() => {\r\n this.stopTimer();\r\n this.updater = interval(this.period).subscribe(() => {\r\n this.updateValue();\r\n });\r\n });\r\n }\r\n\r\n stopTimer(): void {\r\n if (this.updater) {\r\n this.updater.unsubscribe();\r\n this.updater = null;\r\n }\r\n }\r\n\r\n updateValue(): void {\r\n this.diff.set(Math.max(this._target - Date.now(), 0));\r\n if (this.diff() === 0) {\r\n this.stopTimer();\r\n this.finish.emit();\r\n }\r\n }\r\n}\r\n","<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","import { NgModule } from '@angular/core';\r\nimport { XStatisticComponent } from './statistic.component';\r\nimport { XCountdownComponent } from './countdown.component';\r\n\r\n@NgModule({\r\n exports: [XStatisticComponent, XCountdownComponent],\r\n imports: [XStatisticComponent, XCountdownComponent]\r\n})\r\nexport class XStatisticModule {}\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-statistic.mjs","sources":["../../../../lib/ng-nest/ui/statistic/statistic.property.ts","../../../../lib/ng-nest/ui/statistic/statistic.component.ts","../../../../lib/ng-nest/ui/statistic/statistic.component.html","../../../../lib/ng-nest/ui/statistic/countdown.component.ts","../../../../lib/ng-nest/ui/statistic/countdown.component.html","../../../../lib/ng-nest/ui/statistic/statistic.module.ts","../../../../lib/ng-nest/ui/statistic/ng-nest-ui-statistic.ts"],"sourcesContent":["import { XPropertyFunction } from '@ng-nest/ui/core';\r\nimport { Component, input, output } from '@angular/core';\r\nimport type { XTemplate, XStyle } from '@ng-nest/ui/core';\r\n\r\n/**\r\n * Statistic\r\n * @selector x-statistic\r\n * @decorator component\r\n */\r\nexport const XStatisticPrefix = 'x-statistic';\r\nconst X_STATISTIC_CONFIG_NAME = 'statistic';\r\n\r\n/**\r\n * Statistic Property\r\n */\r\n@Component({ selector: `${XStatisticPrefix}-property`, template: '' })\r\nexport class XStatisticProperty extends XPropertyFunction(X_STATISTIC_CONFIG_NAME) {\r\n /**\r\n * @zh_CN 显示值\r\n * @en_US Display value\r\n */\r\n readonly value = input<XTemplate>();\r\n /**\r\n * @zh_CN 标题\r\n * @en_US Title\r\n */\r\n readonly label = input<XTemplate>();\r\n /**\r\n * @zh_CN 前缀\r\n * @en_US Prefix\r\n */\r\n readonly prefix = input<XTemplate>();\r\n /**\r\n * @zh_CN 后缀\r\n * @en_US Suffix\r\n */\r\n readonly suffix = input<XTemplate>();\r\n /**\r\n * @zh_CN 显示值样式\r\n * @en_US Display value style\r\n */\r\n readonly valueStyle = input<XStyle>({});\r\n}\r\n\r\n/**\r\n * Countdown\r\n * @selector x-countdown\r\n * @decorator component\r\n */\r\nexport const XCountdownPrefix = 'x-countdown';\r\nconst X_COUNTDOWN_CONFIG_NAME = 'countdown';\r\n\r\n/**\r\n * Countdown Property\r\n */\r\n@Component({ selector: `${XCountdownPrefix}-property`, template: '' })\r\nexport class XCountdownProperty extends XPropertyFunction(X_COUNTDOWN_CONFIG_NAME) {\r\n /**\r\n * @zh_CN 显示值\r\n * @en_US Display value\r\n */\r\n readonly value = input<XTemplate>();\r\n /**\r\n * @zh_CN 标题\r\n * @en_US Title\r\n */\r\n readonly label = input<XTemplate>();\r\n /**\r\n * @zh_CN 前缀\r\n * @en_US Prefix\r\n */\r\n readonly prefix = input<XTemplate>();\r\n /**\r\n * @zh_CN 后缀\r\n * @en_US Suffix\r\n */\r\n readonly suffix = input<XTemplate>();\r\n /**\r\n * @zh_CN 显示值样式\r\n * @en_US Display value style\r\n */\r\n readonly valueStyle = input<XStyle>({});\r\n /**\r\n * @zh_CN 格式化\r\n * @en_US Format\r\n */\r\n readonly format = input<string>(this.config?.format ?? 'HH:mm:ss');\r\n /**\r\n * @zh_CN 倒计时结束的事件\r\n * @en_US Event at the end of the countdown\r\n */\r\n readonly finish = output<void>();\r\n}\r\n","import { Component, ViewEncapsulation, ChangeDetectionStrategy, computed } from '@angular/core';\r\nimport { XStatisticPrefix, XStatisticProperty } from './statistic.property';\r\nimport { XIsString } from '@ng-nest/ui/core';\r\nimport { XOutletDirective } from '@ng-nest/ui/outlet';\r\nimport { NgStyle } from '@angular/common';\r\n\r\n@Component({\r\n selector: `${XStatisticPrefix}`,\r\n imports: [NgStyle, XOutletDirective],\r\n templateUrl: './statistic.component.html',\r\n styleUrls: ['./statistic.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class XStatisticComponent extends XStatisticProperty {\r\n displayInt = computed(() => {\r\n const value = this.value();\r\n if (!XIsString(value)) return '';\r\n const decimalSeparator: string = '.';\r\n const [int, decimal] = value.split(decimalSeparator);\r\n return decimal ? `${int}${decimalSeparator}` : int;\r\n });\r\n displayDecimal = computed(() => {\r\n const value = this.value();\r\n if (!XIsString(value)) return '';\r\n const decimalSeparator: string = '.';\r\n const [_int, decimal] = value.split(decimalSeparator);\r\n return decimal;\r\n });\r\n}\r\n","<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","import {\r\n Component,\r\n OnInit,\r\n ViewEncapsulation,\r\n ChangeDetectionStrategy,\r\n SimpleChanges,\r\n OnChanges,\r\n NgZone,\r\n inject,\r\n PLATFORM_ID,\r\n OnDestroy,\r\n signal\r\n} from '@angular/core';\r\nimport { XCountdownPrefix, XCountdownProperty } from './statistic.property';\r\nimport { interval, Subscription } from 'rxjs';\r\nimport { isPlatformBrowser } from '@angular/common';\r\nimport { XTimeRangePipe } from '@ng-nest/ui/time-range';\r\nimport { XStatisticComponent } from './statistic.component';\r\n\r\n@Component({\r\n selector: `${XCountdownPrefix}`,\r\n imports: [XStatisticComponent, XTimeRangePipe],\r\n templateUrl: './countdown.component.html',\r\n styleUrls: ['./countdown.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class XCountdownComponent extends XCountdownProperty implements OnInit, OnChanges, OnDestroy {\r\n diff = signal<number | string>('');\r\n period = 1000 / 30;\r\n private _target!: number;\r\n private updater!: Subscription | null;\r\n platformId = inject(PLATFORM_ID);\r\n isBrowser = isPlatformBrowser(this.platformId);\r\n private ngZone = inject(NgZone);\r\n\r\n ngOnInit(): void {\r\n this.syncTimer();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n const { value } = changes;\r\n if (value) {\r\n this._target = Number(value.currentValue);\r\n if (!value.isFirstChange()) {\r\n this.syncTimer();\r\n }\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.stopTimer();\r\n }\r\n\r\n syncTimer(): void {\r\n if (this._target >= Date.now()) {\r\n this.startTimer();\r\n } else {\r\n this.stopTimer();\r\n }\r\n }\r\n\r\n startTimer(): void {\r\n if (!this.isBrowser) return;\r\n this.ngZone.runOutsideAngular(() => {\r\n this.stopTimer();\r\n this.updater = interval(this.period).subscribe(() => {\r\n this.updateValue();\r\n });\r\n });\r\n }\r\n\r\n stopTimer(): void {\r\n if (this.updater) {\r\n this.updater.unsubscribe();\r\n this.updater = null;\r\n }\r\n }\r\n\r\n updateValue(): void {\r\n this.diff.set(Math.max(this._target - Date.now(), 0));\r\n if (this.diff() === 0) {\r\n this.stopTimer();\r\n this.finish.emit();\r\n }\r\n }\r\n}\r\n","<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","import { NgModule } from '@angular/core';\r\nimport { XStatisticComponent } from './statistic.component';\r\nimport { XCountdownComponent } from './countdown.component';\r\n\r\n@NgModule({\r\n exports: [XStatisticComponent, XCountdownComponent],\r\n imports: [XStatisticComponent, XCountdownComponent]\r\n})\r\nexport class XStatisticModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
@@ -22,42 +22,42 @@ class XStepsProperty extends XPropertyFunction(X_STEPS_CONFIG_NAME) {
|
|
|
22
22
|
* @zh_CN 节点数据
|
|
23
23
|
* @en_US Node data
|
|
24
24
|
*/
|
|
25
|
-
this.data = input([], { transform: XToDataArray });
|
|
25
|
+
this.data = input([], ...(ngDevMode ? [{ debugName: "data", transform: XToDataArray }] : [{ transform: XToDataArray }]));
|
|
26
26
|
/**
|
|
27
27
|
* @zh_CN 布局方式
|
|
28
28
|
* @en_US Layout
|
|
29
29
|
*/
|
|
30
|
-
this.layout = input('row');
|
|
30
|
+
this.layout = input('row', ...(ngDevMode ? [{ debugName: "layout" }] : []));
|
|
31
31
|
/**
|
|
32
32
|
* @zh_CN 当前激活节点
|
|
33
33
|
* @en_US Currently active node
|
|
34
34
|
*/
|
|
35
|
-
this.activatedIndex = input(0, { transform: XToNumber });
|
|
35
|
+
this.activatedIndex = input(0, ...(ngDevMode ? [{ debugName: "activatedIndex", transform: XToNumber }] : [{ transform: XToNumber }]));
|
|
36
36
|
/**
|
|
37
37
|
* @zh_CN 步骤开始序号
|
|
38
38
|
* @en_US Step start number
|
|
39
39
|
*/
|
|
40
|
-
this.startIndex = input(0, { transform: XToNumber });
|
|
40
|
+
this.startIndex = input(0, ...(ngDevMode ? [{ debugName: "startIndex", transform: XToNumber }] : [{ transform: XToNumber }]));
|
|
41
41
|
/**
|
|
42
42
|
* @zh_CN 当前激活节点状态
|
|
43
43
|
* @en_US Current active node status
|
|
44
44
|
*/
|
|
45
|
-
this.status = input();
|
|
45
|
+
this.status = input(...(ngDevMode ? [undefined, { debugName: "status" }] : []));
|
|
46
46
|
/**
|
|
47
47
|
* @zh_CN 自定义节点
|
|
48
48
|
* @en_US Custom node
|
|
49
49
|
*/
|
|
50
|
-
this.customTpl = input();
|
|
50
|
+
this.customTpl = input(...(ngDevMode ? [undefined, { debugName: "customTpl" }] : []));
|
|
51
51
|
/**
|
|
52
52
|
* @zh_CN 节点设置的状态优先,将不会自动计算当前节点,`activatedIndex` 和 `status` 将失效
|
|
53
53
|
* @en_US the status set by the node takes precedence, and the current node will not be calculated, `activatedIndex` and `status` will be invalidated
|
|
54
54
|
*/
|
|
55
|
-
this.nodeStatus = input(false, { transform: XToBoolean });
|
|
55
|
+
this.nodeStatus = input(false, ...(ngDevMode ? [{ debugName: "nodeStatus", transform: XToBoolean }] : [{ transform: XToBoolean }]));
|
|
56
56
|
}
|
|
57
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
58
|
-
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.
|
|
57
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: XStepsProperty, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
58
|
+
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.2.4", 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 }, nodeStatus: { classPropertyName: "nodeStatus", publicName: "nodeStatus", isSignal: true, isRequired: false, transformFunction: null } }, usesInheritance: true, ngImport: i0, template: '', isInline: true }); }
|
|
59
59
|
}
|
|
60
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
60
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: XStepsProperty, decorators: [{
|
|
61
61
|
type: Component,
|
|
62
62
|
args: [{ selector: `${XStepsPrefix}-property`, template: '' }]
|
|
63
63
|
}] });
|
|
@@ -88,28 +88,28 @@ class XStepsComponent extends XStepsProperty {
|
|
|
88
88
|
}
|
|
89
89
|
return x;
|
|
90
90
|
});
|
|
91
|
-
});
|
|
91
|
+
}, ...(ngDevMode ? [{ debugName: "nodes" }] : []));
|
|
92
92
|
this.classMap = computed(() => ({
|
|
93
93
|
[`${XStepsPrefix}-${this.layout()}`]: !XIsEmpty(this.layout())
|
|
94
|
-
}));
|
|
94
|
+
}), ...(ngDevMode ? [{ debugName: "classMap" }] : []));
|
|
95
95
|
}
|
|
96
96
|
getIndex(index) {
|
|
97
97
|
return this.startIndex() + index + 1;
|
|
98
98
|
}
|
|
99
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
100
|
-
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.
|
|
99
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: XStepsComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
100
|
+
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.2.4", 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(); 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\">{{ node.label }}</span>\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\">{{ node.description }}</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 }); }
|
|
101
101
|
}
|
|
102
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
102
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: XStepsComponent, decorators: [{
|
|
103
103
|
type: Component,
|
|
104
104
|
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(); 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\">{{ node.label }}</span>\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\">{{ node.description }}</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"] }]
|
|
105
105
|
}] });
|
|
106
106
|
|
|
107
107
|
class XStepsModule {
|
|
108
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.
|
|
109
|
-
/** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.
|
|
110
|
-
/** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.
|
|
108
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: XStepsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
109
|
+
/** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.2.4", ngImport: i0, type: XStepsModule, imports: [XStepsComponent], exports: [XStepsComponent] }); }
|
|
110
|
+
/** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: XStepsModule, imports: [XStepsComponent] }); }
|
|
111
111
|
}
|
|
112
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.
|
|
112
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: XStepsModule, decorators: [{
|
|
113
113
|
type: NgModule,
|
|
114
114
|
args: [{
|
|
115
115
|
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 自定义节点\r\n * @en_US Custom node\r\n */\r\n readonly customTpl = 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(); 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\">{{ node.label }}</span>\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\">{{ node.description }}</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 自定义节点\r\n * @en_US Custom node\r\n */\r\n readonly customTpl = 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(); 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\">{{ node.label }}</span>\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\">{{ node.description }}</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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"}
|