ngx-tethys 19.0.13 → 19.1.0-next.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/CHANGELOG.md +29 -2
- package/action/action.component.d.ts +12 -20
- package/action/actions.component.d.ts +5 -7
- package/affix/affix.component.d.ts +7 -10
- package/alert/alert.component.d.ts +1 -1
- package/anchor/anchor-link.component.d.ts +8 -8
- package/anchor/anchor.component.d.ts +15 -21
- package/arrow-switcher/arrow-switcher.component.d.ts +15 -22
- package/autocomplete/autocomplete.component.d.ts +10 -17
- package/autocomplete/autocomplete.trigger.directive.d.ts +10 -18
- package/avatar/avatar-list/avatar-list.component.d.ts +8 -14
- package/avatar/avatar.component.d.ts +25 -39
- package/back-top/back-top.component.d.ts +9 -12
- package/badge/badge.component.d.ts +19 -59
- package/breadcrumb/breadcrumb.component.d.ts +15 -20
- package/button/button-icon.component.d.ts +3 -2
- package/button/button.component.d.ts +3 -2
- package/calendar/calendar-header.component.d.ts +9 -8
- package/calendar/calendar.component.d.ts +16 -16
- package/card/card.component.d.ts +5 -11
- package/card/content.component.d.ts +3 -8
- package/card/header.component.d.ts +7 -8
- package/carousel/carousel.component.d.ts +22 -27
- package/cascader/cascader-li.component.d.ts +13 -21
- package/cascader/cascader-search-option.component.d.ts +8 -16
- package/cascader/cascader.component.d.ts +58 -80
- package/checkbox/checkbox.component.d.ts +2 -5
- package/collapse/collapse-item.component.d.ts +12 -19
- package/collapse/collapse.component.d.ts +6 -12
- package/collapse/collapse.token.d.ts +3 -3
- package/color-picker/color-picker-custom-panel.component.d.ts +5 -5
- package/color-picker/color-picker-panel.component.d.ts +7 -11
- package/color-picker/color-picker.component.d.ts +19 -35
- package/color-picker/parts/alpha/alpha.component.d.ts +8 -8
- package/color-picker/parts/hue/hue.component.d.ts +6 -6
- package/color-picker/parts/indicator/indicator.component.d.ts +4 -3
- package/color-picker/parts/inputs/inputs.component.d.ts +9 -9
- package/color-picker/parts/saturation/saturation.component.d.ts +9 -9
- package/comment/comment.component.d.ts +4 -5
- package/copy/copy.directive.d.ts +8 -9
- package/date-picker/abstract-picker.component.d.ts +8 -7
- package/date-picker/lib/calendar/calendar-footer.component.d.ts +2 -1
- package/date-picker/lib/popups/inner-popup.component.d.ts +2 -1
- package/date-picker/picker.component.d.ts +2 -1
- package/date-range/date-range.component.d.ts +2 -2
- package/dialog/body/dialog-body.component.d.ts +2 -6
- package/dialog/confirm/confirm.component.d.ts +2 -2
- package/dialog/footer/dialog-footer.component.d.ts +6 -9
- package/dialog/header/dialog-header.component.d.ts +9 -11
- package/divider/divider.component.d.ts +12 -16
- package/dot/dot.component.d.ts +5 -13
- package/drag-drop/drag-handle.directive.d.ts +2 -1
- package/drag-drop/drag.directive.d.ts +2 -1
- package/drag-drop/drop-container.directive.d.ts +2 -1
- package/dropdown/dropdown-menu-item.directive.d.ts +3 -2
- package/dropdown/dropdown-menu.component.d.ts +2 -1
- package/dropdown/dropdown.directive.d.ts +2 -1
- package/empty/empty.component.d.ts +21 -27
- package/fesm2022/ngx-tethys-action.mjs +54 -91
- package/fesm2022/ngx-tethys-action.mjs.map +1 -1
- package/fesm2022/ngx-tethys-affix.mjs +29 -26
- package/fesm2022/ngx-tethys-affix.mjs.map +1 -1
- package/fesm2022/ngx-tethys-anchor.mjs +91 -118
- package/fesm2022/ngx-tethys-anchor.mjs.map +1 -1
- package/fesm2022/ngx-tethys-arrow-switcher.mjs +51 -77
- package/fesm2022/ngx-tethys-arrow-switcher.mjs.map +1 -1
- package/fesm2022/ngx-tethys-autocomplete.mjs +69 -103
- package/fesm2022/ngx-tethys-autocomplete.mjs.map +1 -1
- package/fesm2022/ngx-tethys-avatar.mjs +117 -162
- package/fesm2022/ngx-tethys-avatar.mjs.map +1 -1
- package/fesm2022/ngx-tethys-back-top.mjs +33 -46
- package/fesm2022/ngx-tethys-back-top.mjs.map +1 -1
- package/fesm2022/ngx-tethys-badge.mjs +104 -208
- package/fesm2022/ngx-tethys-badge.mjs.map +1 -1
- package/fesm2022/ngx-tethys-breadcrumb.mjs +66 -70
- package/fesm2022/ngx-tethys-breadcrumb.mjs.map +1 -1
- package/fesm2022/ngx-tethys-calendar.mjs +85 -87
- package/fesm2022/ngx-tethys-calendar.mjs.map +1 -1
- package/fesm2022/ngx-tethys-card.mjs +72 -77
- package/fesm2022/ngx-tethys-card.mjs.map +1 -1
- package/fesm2022/ngx-tethys-carousel.mjs +82 -99
- package/fesm2022/ngx-tethys-carousel.mjs.map +1 -1
- package/fesm2022/ngx-tethys-cascader.mjs +313 -468
- package/fesm2022/ngx-tethys-cascader.mjs.map +1 -1
- package/fesm2022/ngx-tethys-checkbox.mjs +10 -17
- package/fesm2022/ngx-tethys-checkbox.mjs.map +1 -1
- package/fesm2022/ngx-tethys-collapse.mjs +66 -71
- package/fesm2022/ngx-tethys-collapse.mjs.map +1 -1
- package/fesm2022/ngx-tethys-color-picker.mjs +187 -246
- package/fesm2022/ngx-tethys-color-picker.mjs.map +1 -1
- package/fesm2022/ngx-tethys-comment.mjs +16 -10
- package/fesm2022/ngx-tethys-comment.mjs.map +1 -1
- package/fesm2022/ngx-tethys-copy.mjs +25 -28
- package/fesm2022/ngx-tethys-copy.mjs.map +1 -1
- package/fesm2022/ngx-tethys-dialog.mjs +81 -82
- package/fesm2022/ngx-tethys-dialog.mjs.map +1 -1
- package/fesm2022/ngx-tethys-divider.mjs +49 -58
- package/fesm2022/ngx-tethys-divider.mjs.map +1 -1
- package/fesm2022/ngx-tethys-dot.mjs +45 -68
- package/fesm2022/ngx-tethys-dot.mjs.map +1 -1
- package/fesm2022/ngx-tethys-empty.mjs +107 -95
- package/fesm2022/ngx-tethys-empty.mjs.map +1 -1
- package/fesm2022/ngx-tethys-form.mjs +161 -200
- package/fesm2022/ngx-tethys-form.mjs.map +1 -1
- package/fesm2022/ngx-tethys-fullscreen.mjs +21 -23
- package/fesm2022/ngx-tethys-fullscreen.mjs.map +1 -1
- package/fesm2022/ngx-tethys-grid.mjs +160 -152
- package/fesm2022/ngx-tethys-grid.mjs.map +1 -1
- package/fesm2022/ngx-tethys-i18n.mjs +25 -25
- package/fesm2022/ngx-tethys-i18n.mjs.map +1 -1
- package/fesm2022/ngx-tethys-input-number.mjs +101 -114
- package/fesm2022/ngx-tethys-input-number.mjs.map +1 -1
- package/fesm2022/ngx-tethys-input.mjs +268 -271
- package/fesm2022/ngx-tethys-input.mjs.map +1 -1
- package/fesm2022/ngx-tethys-list.mjs +1 -1
- package/fesm2022/ngx-tethys-list.mjs.map +1 -1
- package/fesm2022/ngx-tethys-loading.mjs +17 -35
- package/fesm2022/ngx-tethys-loading.mjs.map +1 -1
- package/fesm2022/ngx-tethys-mention.mjs +52 -74
- package/fesm2022/ngx-tethys-mention.mjs.map +1 -1
- package/fesm2022/ngx-tethys-menu.mjs +106 -179
- package/fesm2022/ngx-tethys-menu.mjs.map +1 -1
- package/fesm2022/ngx-tethys-nav.mjs +169 -201
- package/fesm2022/ngx-tethys-nav.mjs.map +1 -1
- package/fesm2022/ngx-tethys-pagination.mjs +230 -294
- package/fesm2022/ngx-tethys-pagination.mjs.map +1 -1
- package/fesm2022/ngx-tethys-popover.mjs +67 -70
- package/fesm2022/ngx-tethys-popover.mjs.map +1 -1
- package/fesm2022/ngx-tethys-progress.mjs +196 -244
- package/fesm2022/ngx-tethys-progress.mjs.map +1 -1
- package/fesm2022/ngx-tethys-property.mjs +102 -105
- package/fesm2022/ngx-tethys-property.mjs.map +1 -1
- package/fesm2022/ngx-tethys-radio.mjs +34 -38
- package/fesm2022/ngx-tethys-radio.mjs.map +1 -1
- package/fesm2022/ngx-tethys-result.mjs +46 -28
- package/fesm2022/ngx-tethys-result.mjs.map +1 -1
- package/fesm2022/ngx-tethys-skeleton.mjs +339 -342
- package/fesm2022/ngx-tethys-skeleton.mjs.map +1 -1
- package/fesm2022/ngx-tethys-slider.mjs +75 -108
- package/fesm2022/ngx-tethys-slider.mjs.map +1 -1
- package/fesm2022/ngx-tethys-space.mjs +26 -46
- package/fesm2022/ngx-tethys-space.mjs.map +1 -1
- package/fesm2022/ngx-tethys-statistic.mjs +114 -151
- package/fesm2022/ngx-tethys-statistic.mjs.map +1 -1
- package/fesm2022/ngx-tethys-stepper.mjs +74 -107
- package/fesm2022/ngx-tethys-stepper.mjs.map +1 -1
- package/fesm2022/ngx-tethys-switch.mjs +80 -140
- package/fesm2022/ngx-tethys-switch.mjs.map +1 -1
- package/fesm2022/ngx-tethys-table.mjs +1 -1
- package/fesm2022/ngx-tethys-table.mjs.map +1 -1
- package/fesm2022/ngx-tethys-tabs.mjs +69 -87
- package/fesm2022/ngx-tethys-tabs.mjs.map +1 -1
- package/fesm2022/ngx-tethys-tag.mjs +42 -64
- package/fesm2022/ngx-tethys-tag.mjs.map +1 -1
- package/fesm2022/ngx-tethys-timeline.mjs +104 -129
- package/fesm2022/ngx-tethys-timeline.mjs.map +1 -1
- package/fesm2022/ngx-tethys-typography.mjs +36 -33
- package/fesm2022/ngx-tethys-typography.mjs.map +1 -1
- package/fesm2022/ngx-tethys-upload.mjs +91 -130
- package/fesm2022/ngx-tethys-upload.mjs.map +1 -1
- package/fesm2022/ngx-tethys-util.mjs.map +1 -1
- package/fesm2022/ngx-tethys-watermark.mjs +36 -40
- package/fesm2022/ngx-tethys-watermark.mjs.map +1 -1
- package/fesm2022/ngx-tethys.mjs +1 -1
- package/fesm2022/ngx-tethys.mjs.map +1 -1
- package/form/form-group-error/form-group-error.component.d.ts +2 -3
- package/form/form-group-label.directive.d.ts +2 -1
- package/form/form-group.component.d.ts +17 -24
- package/form/form-submit.directive.d.ts +2 -2
- package/form/form.directive.d.ts +6 -8
- package/form/from-group-footer/form-group-footer.component.d.ts +2 -2
- package/form/validator/confirm-validator.directive.d.ts +2 -2
- package/form/validator/unique-validator.directive.d.ts +2 -2
- package/fullscreen/fullscreen.component.d.ts +7 -7
- package/grid/flex.d.ts +14 -19
- package/grid/thy-col.directive.d.ts +6 -9
- package/grid/thy-grid-item.component.d.ts +3 -4
- package/grid/thy-grid.component.d.ts +11 -12
- package/grid/thy-row.directive.d.ts +12 -12
- package/icon/icon.component.d.ts +3 -2
- package/image/image.directive.d.ts +3 -2
- package/input/input-count.component.d.ts +4 -5
- package/input/input-group.component.d.ts +20 -20
- package/input/input-search.component.d.ts +15 -20
- package/input/input.component.d.ts +20 -21
- package/input/input.directive.d.ts +4 -6
- package/input-number/input-number.component.d.ts +21 -29
- package/layout/header.component.d.ts +4 -9
- package/layout/sidebar-header.component.d.ts +2 -1
- package/layout/sidebar.component.d.ts +8 -7
- package/list/list.component.d.ts +2 -1
- package/list/selection/selection-list.d.ts +4 -3
- package/loading/loading.component.d.ts +4 -10
- package/mention/mention.directive.d.ts +6 -7
- package/mention/suggestions/suggestions.component.d.ts +8 -9
- package/menu/group/menu-group.component.d.ts +16 -33
- package/menu/item/action/menu-item-action.component.d.ts +7 -8
- package/menu/item/icon/menu-item-icon.component.d.ts +2 -2
- package/menu/item/menu-item.component.d.ts +4 -4
- package/menu/item/name/menu-item-name.component.d.ts +2 -3
- package/menu/menu.component.d.ts +3 -7
- package/nav/icon-nav/icon-nav-link.directive.d.ts +3 -7
- package/nav/icon-nav/icon-nav.component.d.ts +3 -8
- package/nav/nav-ink-bar.directive.d.ts +4 -6
- package/nav/nav-item.directive.d.ts +7 -10
- package/nav/nav.component.d.ts +20 -48
- package/package.json +1 -1
- package/pagination/pagination.component.d.ts +48 -109
- package/popover/header/popover-header.component.d.ts +7 -6
- package/popover/popover.directive.d.ts +11 -18
- package/progress/progress-circle.component.d.ts +32 -21
- package/progress/progress-strip.component.d.ts +10 -14
- package/progress/progress.component.d.ts +15 -23
- package/property/examples/single/single.component.scss +6 -0
- package/property/properties.component.d.ts +6 -13
- package/property/property-item.component.d.ts +21 -26
- package/property/styles/properties.scss +124 -52
- package/property-operation/property-operation.component.d.ts +6 -5
- package/radio/button/radio-button.component.d.ts +2 -2
- package/radio/group/radio-group.component.d.ts +8 -7
- package/radio/radio.component.d.ts +2 -2
- package/radio/radio.token.d.ts +2 -2
- package/rate/rate-item.component.d.ts +2 -1
- package/rate/rate.component.d.ts +4 -3
- package/resizable/resizable.directive.d.ts +4 -9
- package/resizable/resize-handle.component.d.ts +2 -1
- package/resizable/resize-handles.component.d.ts +2 -1
- package/result/result.component.d.ts +9 -10
- package/schematics/version.d.ts +1 -1
- package/schematics/version.js +1 -1
- package/segment/segment-item.component.d.ts +2 -1
- package/segment/segment.component.d.ts +2 -1
- package/select/custom-select/custom-select.component.d.ts +11 -10
- package/select/native-select/native-select.component.d.ts +2 -1
- package/shared/base-form-check.component.d.ts +3 -2
- package/shared/directives/thy-autofocus.directive.d.ts +3 -2
- package/shared/directives/thy-scroll.directive.d.ts +2 -1
- package/shared/directives/thy-show.d.ts +2 -1
- package/shared/option/group/option-group.component.d.ts +2 -1
- package/shared/option/list-option/list-option.component.d.ts +2 -7
- package/shared/option/option.component.d.ts +2 -1
- package/shared/select/select-control/select-control.component.d.ts +7 -6
- package/skeleton/skeleton-circle.component.d.ts +16 -19
- package/skeleton/skeleton-rectangle.component.d.ts +20 -23
- package/skeleton/skeleton.component.d.ts +5 -6
- package/skeleton/stylized/bullet-list.component.d.ts +11 -13
- package/skeleton/stylized/list.component.d.ts +10 -12
- package/skeleton/stylized/paragraph.component.d.ts +12 -14
- package/slide/slide-body/slide-body-section.component.d.ts +2 -1
- package/slider/slider.component.d.ts +17 -24
- package/space/space.component.d.ts +8 -8
- package/statistic/statistic.component.d.ts +35 -40
- package/stepper/step-header.component.d.ts +6 -10
- package/stepper/step.component.d.ts +6 -6
- package/stepper/stepper.component.d.ts +15 -20
- package/switch/switch.component.d.ts +24 -35
- package/table/table-column.component.d.ts +6 -5
- package/table/table-skeleton.component.d.ts +3 -10
- package/table/table.component.d.ts +11 -10
- package/tabs/tab-content.component.d.ts +4 -4
- package/tabs/tab.component.d.ts +4 -5
- package/tabs/tabs.component.d.ts +13 -15
- package/tag/tag.component.d.ts +10 -16
- package/time-picker/time-picker-panel.component.d.ts +3 -2
- package/time-picker/time-picker.component.d.ts +6 -5
- package/timeline/timeline-item.component.d.ts +9 -13
- package/timeline/timeline.component.d.ts +13 -17
- package/tooltip/tooltip.directive.d.ts +3 -2
- package/tree/tree-node.component.d.ts +6 -15
- package/tree/tree.component.d.ts +8 -7
- package/tree-select/tree-select.component.d.ts +8 -7
- package/typography/bg-color.directive.d.ts +3 -3
- package/typography/text/text.component.d.ts +2 -2
- package/typography/text-color.directive.d.ts +3 -3
- package/upload/file-drop.directive.d.ts +9 -11
- package/upload/file-select-base.d.ts +6 -10
- package/upload/file-select.component.d.ts +10 -20
- package/util/helpers/helpers.d.ts +2 -1
- package/vote/vote.component.d.ts +4 -3
- package/watermark/watermark.directive.d.ts +7 -9
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ngx-tethys-skeleton.mjs","sources":["../../../src/skeleton/skeleton.component.ts","../../../src/skeleton/skeleton.config.ts","../../../src/skeleton/skeleton-rectangle.component.ts","../../../src/skeleton/skeleton-circle.component.ts","../../../src/skeleton/stylized/list.component.ts","../../../src/skeleton/stylized/paragraph.component.ts","../../../src/skeleton/stylized/bullet-list.component.ts","../../../src/skeleton/module.ts","../../../src/skeleton/ngx-tethys-skeleton.ts"],"sourcesContent":["import { Component, ChangeDetectionStrategy, ViewEncapsulation, Input } from '@angular/core';\nimport { coerceBooleanProperty } from 'ngx-tethys/util';\n\n/**\n * 骨架屏组件\n * @name thy-skeleton\n * @order 10\n */\n@Component({\n selector: 'thy-skeleton',\n template: ` <ng-content></ng-content> `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n})\nexport class ThySkeleton {\n /**\n * 是否开启动画\n * @default false\n */\n @Input({ transform: coerceBooleanProperty })\n thyAnimated: boolean;\n\n /**\n * 动画速度\n */\n @Input() thyAnimatedInterval: string | number;\n\n /**\n * 骨架主色调\n */\n @Input() thyPrimaryColor: string;\n\n /**\n * 骨架次色调\n */\n @Input() thySecondaryColor: string;\n}\n","import { InjectionToken } from '@angular/core';\nexport interface ThySkeletonConfigModel {\n thyAnimatedInterval?: string | number;\n thyPrimaryColor?: string;\n thySecondaryColor?: string;\n thyAnimated?: boolean;\n}\n\nexport const THY_SKELETON_CONFIG = new InjectionToken<ThySkeletonConfigModel>('THY_SKELETON_CONFIG', {\n providedIn: 'root',\n factory: () => {\n return {};\n }\n});\n","import { Component, ChangeDetectionStrategy, ViewEncapsulation, Input, OnInit, OnChanges, SimpleChanges, inject } from '@angular/core';\nimport { ThySkeleton } from './skeleton.component';\nimport { coerceBooleanProperty, helpers } from 'ngx-tethys/util';\nimport { InputCssPixel } from 'ngx-tethys/core';\nimport { THY_SKELETON_CONFIG, ThySkeletonConfigModel } from './skeleton.config';\nimport { isUndefinedOrNull } from 'ngx-tethys/util';\nimport { NgStyle } from '@angular/common';\n\ninterface Style {\n background?: string;\n animation?: string;\n}\n\n/**\n * 骨架屏矩形组件\n * @name thy-skeleton-rectangle\n * @order 20\n */\n@Component({\n selector: 'thy-skeleton-rectangle',\n host: {\n '[class.thy-skeleton]': 'true',\n '[class.thy-skeleton-rectangle]': 'true',\n '[style.background]': 'thyPrimaryColor',\n '[style.width]': 'thyRowWidth',\n '[style.height]': 'thyRowHeight',\n '[style.borderRadius]': 'thyBorderRadius'\n },\n template: ` <div class=\"thy-skeleton-after\" [ngStyle]=\"afterStyles\"></div> `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [NgStyle]\n})\nexport class ThySkeletonRectangle implements OnInit, OnChanges {\n private skeletonConfigModel = inject(THY_SKELETON_CONFIG, { optional: true })!;\n private _parent = inject(ThySkeleton, { optional: true })!;\n\n /**\n * 是否开启动画\n * @default false\n */\n @Input({ transform: coerceBooleanProperty })\n thyAnimated: boolean;\n\n /**\n * 动画速度\n * @default 1.5s\n */\n @Input() thyAnimatedInterval: number;\n\n /**\n * 骨架边框圆角\n * @default 4px\n */\n @Input()\n @InputCssPixel()\n thyBorderRadius: string | number;\n\n /**\n * 骨架宽度\n * @default 100%\n */\n @Input()\n @InputCssPixel()\n thyRowWidth: string | number;\n\n /**\n * 骨架高度\n * @default 20px\n */\n @Input()\n @InputCssPixel()\n thyRowHeight: string | number;\n\n /**\n * 骨架主色\n * @default #F7F7F7\n */\n @Input() thyPrimaryColor: string;\n\n /**\n * 骨架次色\n * @default #aaaaaa\n */\n @Input() thySecondaryColor: string;\n\n afterStyles: Style = {};\n\n ngOnInit() {\n const config = {\n ...this.skeletonConfigModel,\n ...(this._parent || {}),\n ...(!isUndefinedOrNull(this._parent?.thyAnimated) && { thyAnimated: this._parent.thyAnimated })\n };\n const { thyAnimatedInterval, thyPrimaryColor, thySecondaryColor, thyAnimated } = config;\n\n for (let key in { thyAnimatedInterval, thyPrimaryColor, thySecondaryColor, thyAnimated }) {\n this[key] = !isUndefinedOrNull(this[key]) ? this[key] : config[key];\n }\n this.crateAfterStyles();\n }\n\n crateAfterStyles() {\n this.afterStyles = {\n ...(this.thySecondaryColor && {\n background: `linear-gradient(90deg, ${helpers.hexToRgb(this.thySecondaryColor, 0)}, ${helpers.hexToRgb(\n this.thySecondaryColor,\n 0.15\n )}, ${helpers.hexToRgb(this.thySecondaryColor, 0)}`\n }),\n animation: ![false, 'false'].includes(this.thyAnimated)\n ? `thy-skeleton-animation ${this.thyAnimatedInterval}s infinite`\n : 'none'\n };\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n const { thySecondaryColor, thyAnimated, thyAnimatedInterval } = changes;\n if (\n (thySecondaryColor && !thySecondaryColor?.firstChange) ||\n (thyAnimated && !thyAnimated?.firstChange) ||\n (thyAnimatedInterval && !thyAnimatedInterval?.firstChange)\n ) {\n this.crateAfterStyles();\n }\n }\n}\n","import { Component, ChangeDetectionStrategy, ViewEncapsulation, Input, OnInit, OnChanges, SimpleChanges, inject } from '@angular/core';\nimport { ThySkeleton } from './skeleton.component';\nimport { coerceBooleanProperty, helpers } from 'ngx-tethys/util';\nimport { InputCssPixel } from 'ngx-tethys/core';\nimport { THY_SKELETON_CONFIG, ThySkeletonConfigModel } from './skeleton.config';\nimport { isUndefinedOrNull } from 'ngx-tethys/util';\nimport { NgStyle } from '@angular/common';\n\ninterface Style {\n background?: string;\n animation?: string;\n}\n\n/**\n * 骨架屏圆形组件\n * @name thy-skeleton-circle\n * @order 30\n */\n@Component({\n selector: 'thy-skeleton-circle',\n host: {\n '[class.thy-skeleton]': 'true',\n '[class.thy-skeleton-circle]': 'true',\n '[style.background]': 'thyPrimaryColor',\n '[style.width]': 'thySize',\n '[style.height]': 'thySize'\n },\n template: ` <div class=\"thy-skeleton-after\" [ngStyle]=\"afterStyles\"></div> `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [NgStyle]\n})\nexport class ThySkeletonCircle implements OnInit, OnChanges {\n private skeletonConfigModel = inject(THY_SKELETON_CONFIG, { optional: true })!;\n private _parent = inject(ThySkeleton, { optional: true })!;\n\n /**\n * 动画速度\n * @default 1.5s\n */\n @Input() thyAnimatedInterval: string | number;\n\n /**\n * 骨架尺寸\n * @default 20px\n */\n @Input()\n @InputCssPixel()\n thySize: string | number = 20;\n\n /**\n * 骨架主色\n * @default #F7F7F7\n */\n @Input() thyPrimaryColor: string;\n\n /**\n * 骨架次色\n * @default #aaaaaa\n */\n @Input() thySecondaryColor: string;\n\n /**\n * 是否展示动画\n * @default true\n */\n @Input({ transform: coerceBooleanProperty })\n thyAnimated: boolean;\n\n public afterStyles: Style = {};\n\n ngOnInit() {\n const config = {\n ...this.skeletonConfigModel,\n ...(this._parent || {}),\n ...(!isUndefinedOrNull(this._parent?.thyAnimated) && { thyAnimated: this._parent.thyAnimated }) // do it because @InputBoolean() lead to cannot get thyAnimated from _parent inject\n };\n const { thyAnimatedInterval, thyPrimaryColor, thySecondaryColor, thyAnimated } = config;\n for (let key in { thyAnimatedInterval, thyPrimaryColor, thySecondaryColor, thyAnimated }) {\n this[key] = !isUndefinedOrNull(this[key]) ? this[key] : config[key];\n }\n this.crateAfterStyles();\n }\n\n crateAfterStyles() {\n this.afterStyles = {\n ...(this.thySecondaryColor && {\n background: `linear-gradient(90deg, ${helpers.hexToRgb(this.thySecondaryColor, 0)}, ${helpers.hexToRgb(\n this.thySecondaryColor,\n 0.15\n )}, ${helpers.hexToRgb(this.thySecondaryColor, 0)}`\n }),\n animation: ![false, 'false'].includes(this.thyAnimated)\n ? `thy-skeleton-animation ${this.thyAnimatedInterval}s infinite`\n : 'none'\n };\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n const { thySecondaryColor, thyAnimated, thyAnimatedInterval } = changes;\n if (\n (thySecondaryColor && !thySecondaryColor?.firstChange) ||\n (thyAnimated && !thyAnimated?.firstChange) ||\n (thyAnimatedInterval && !thyAnimatedInterval?.firstChange)\n ) {\n this.crateAfterStyles();\n }\n }\n}\n","import { ChangeDetectionStrategy, Component, Input, ViewEncapsulation } from '@angular/core';\nimport { InputCssPixel } from 'ngx-tethys/core';\nimport { ThySkeletonRectangle } from '../skeleton-rectangle.component';\nimport { coerceBooleanProperty } from 'ngx-tethys/util';\n\n/**\n * 骨架屏列表组件\n * @name thy-skeleton-list\n * @order 40\n */\n@Component({\n selector: 'thy-skeleton-list',\n template: `\n @for (k of rowCount; track $index; let i = $index) {\n <thy-skeleton-rectangle\n class=\"vertical-gap\"\n [thyRowWidth]=\"thyRowWidth\"\n [thyRowHeight]=\"thyRowHeight\"\n [thyAnimated]=\"thyAnimated\"\n [thyPrimaryColor]=\"thyPrimaryColor\"\n [thySecondaryColor]=\"thySecondaryColor\"\n [thyBorderRadius]=\"thyBorderRadius\"\n [thyAnimatedInterval]=\"thyAnimatedInterval\"></thy-skeleton-rectangle>\n }\n `,\n host: {\n '[class.thy-skeleton-list]': 'true'\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [ThySkeletonRectangle]\n})\nexport class ThySkeletonList {\n /**\n * 骨架宽度\n */\n @Input()\n @InputCssPixel()\n thyRowWidth: string | number;\n\n /**\n * 骨架高度\n */\n @Input()\n @InputCssPixel()\n thyRowHeight: string | number;\n\n /**\n * 骨架边框圆角\n */\n @Input()\n @InputCssPixel()\n thyBorderRadius: string | number;\n\n /**\n * 是否开启动画\n * @default false\n */\n @Input({ transform: coerceBooleanProperty })\n thyAnimated: boolean;\n\n /**\n * 动画速度\n */\n @Input() thyAnimatedInterval: string;\n\n /**\n * 骨架主色\n */\n @Input() thyPrimaryColor: string;\n\n /**\n * 骨架次色\n */\n @Input() thySecondaryColor: string;\n\n rowCount: number[] = [];\n\n /**\n * 行数\n */\n @Input()\n set thyRowCount(value: number | string) {\n this.rowCount = Array.from({ length: +value });\n }\n get thyRowCount() {\n return this.rowCount.length;\n }\n}\n","import { ChangeDetectionStrategy, Component, Input, ViewEncapsulation } from '@angular/core';\nimport { InputCssPixel } from 'ngx-tethys/core';\nimport { ThySkeletonRectangle } from '../skeleton-rectangle.component';\nimport { coerceBooleanProperty } from 'ngx-tethys/util';\n\n/**\n * 骨架屏段落组件\n * @name thy-skeleton-paragraph\n * @order 60\n */\n@Component({\n selector: 'thy-skeleton-paragraph',\n template: `\n @for (k of rowCount; track $index; let i = $index) {\n <thy-skeleton-rectangle\n class=\"vertical-gap\"\n [thyRowWidth]=\"i === 0 ? thyFirstWidth : i === rowCount.length - 1 ? thyLastWidth : thyRowWidth\"\n [thyRowHeight]=\"thyRowHeight\"\n [thyAnimated]=\"thyAnimated\"\n [thyPrimaryColor]=\"thyPrimaryColor\"\n [thySecondaryColor]=\"thySecondaryColor\"\n [thyBorderRadius]=\"thyBorderRadius\"\n [thyAnimatedInterval]=\"thyAnimatedInterval\"></thy-skeleton-rectangle>\n }\n `,\n host: {\n '[class.thy-skeleton-paragraph]': 'true'\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [ThySkeletonRectangle]\n})\nexport class ThySkeletonParagraph {\n /**\n * 首行宽度\n */\n @Input()\n @InputCssPixel()\n thyFirstWidth: string | number;\n\n /**\n * 尾行宽度\n */\n @Input()\n @InputCssPixel()\n thyLastWidth: string | number;\n\n /**\n * 骨架宽度\n */\n @Input()\n @InputCssPixel()\n thyRowWidth: string | number;\n\n /**\n * 骨架高度\n */\n @Input()\n @InputCssPixel()\n thyRowHeight: string | number;\n\n /**\n * 骨架边框圆角\n */\n @Input()\n @InputCssPixel()\n thyBorderRadius: string | number;\n\n /**\n * 是否开启动画\n * @default false\n */\n @Input({ transform: coerceBooleanProperty })\n thyAnimated: boolean;\n\n /**\n * 动画速度\n */\n @Input() thyAnimatedInterval: string | number;\n\n /**\n * 骨架主色\n */\n @Input() thyPrimaryColor: string;\n\n /**\n * 骨架次色\n */\n @Input() thySecondaryColor: string;\n\n rowCount: number[] = [];\n\n /**\n * 行数\n */\n @Input()\n set thyRowCount(value: number | string) {\n this.rowCount = Array.from({ length: +value });\n }\n get thyRowCount() {\n return this.rowCount.length;\n }\n}\n","import { ChangeDetectionStrategy, Component, Input, ViewEncapsulation } from '@angular/core';\nimport { InputCssPixel } from 'ngx-tethys/core';\n\nimport { ThySkeletonCircle } from '../skeleton-circle.component';\nimport { ThySkeletonRectangle } from '../skeleton-rectangle.component';\nimport { coerceBooleanProperty } from 'ngx-tethys/util';\n\n/**\n * 骨架屏无序列表组件\n * @name thy-skeleton-bullet-list\n * @order 50\n */\n@Component({\n selector: 'thy-skeleton-bullet-list',\n template: `\n @for (item of rowCount; track $index; let i = $index) {\n <div class=\"d-flex vertical-gap\">\n <thy-skeleton-circle\n [thyAnimated]=\"thyAnimated\"\n [thyAnimatedInterval]=\"thyAnimatedInterval\"\n [thySize]=\"thySize\"\n [thyPrimaryColor]=\"thyPrimaryColor\"\n [thySecondaryColor]=\"thySecondaryColor\">\n </thy-skeleton-circle>\n <div class=\"horizontal-gap\"></div>\n <div style=\"flex: 1\">\n <thy-skeleton-rectangle\n [thyRowWidth]=\"thyRowWidth\"\n [thyRowHeight]=\"thyRowHeight\"\n [thyAnimated]=\"thyAnimated\"\n [thyPrimaryColor]=\"thyPrimaryColor\"\n [thySecondaryColor]=\"thySecondaryColor\"\n [thyBorderRadius]=\"thyBorderRadius\"\n [thyAnimatedInterval]=\"thyAnimatedInterval\"></thy-skeleton-rectangle>\n </div>\n </div>\n }\n `,\n host: {\n '[class.thy-skeleton-bullet-list]': 'true'\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [ThySkeletonCircle, ThySkeletonRectangle]\n})\nexport class ThySkeletonBulletList {\n /**\n * 骨架宽度\n * @default 100%\n */\n @Input()\n @InputCssPixel()\n thyRowWidth: string | number;\n\n /**\n * 骨架高度\n * @default 20px\n */\n @Input()\n @InputCssPixel()\n thyRowHeight: string | number;\n\n /**\n * 骨架边框圆角\n * @default 4px\n */\n @Input()\n @InputCssPixel()\n thyBorderRadius: string | number;\n\n /**\n * 是否开启动画\n * @default true\n */\n @Input({ transform: coerceBooleanProperty })\n thyAnimated: boolean;\n\n /**\n * 动画速度\n * @default 1.5s\n */\n @Input() thyAnimatedInterval: string | number;\n\n /**\n * 骨架主色\n * @default #f7f7f7\n */\n @Input() thyPrimaryColor: string;\n\n /**\n * 骨架次色\n * @default #aaaaaa\n */\n @Input() thySecondaryColor: string;\n\n /**\n * circle类型骨架尺寸\n */\n @Input()\n @InputCssPixel()\n thySize: string | number;\n\n rowCount: number[] = [];\n /**\n * 行数\n */\n @Input()\n set thyRowCount(value: number | string) {\n this.rowCount = Array.from({ length: +value });\n }\n get thyRowCount() {\n return this.rowCount.length;\n }\n\n constructor() {}\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { PortalModule } from '@angular/cdk/portal';\nimport { ThyGridModule } from 'ngx-tethys/grid';\nimport { ThyListModule } from 'ngx-tethys/list';\n\nimport { ThySkeleton } from './skeleton.component';\nimport { ThySkeletonRectangle } from './skeleton-rectangle.component';\nimport { ThySkeletonCircle } from './skeleton-circle.component';\nimport { ThySkeletonList } from './stylized/list.component';\nimport { ThySkeletonParagraph } from './stylized/paragraph.component';\nimport { ThySkeletonBulletList } from './stylized/bullet-list.component';\n\nconst components = [ThySkeleton, ThySkeletonRectangle, ThySkeletonCircle, ThySkeletonList, ThySkeletonParagraph, ThySkeletonBulletList];\n@NgModule({\n imports: [CommonModule, PortalModule, ThyGridModule, ThyListModule, ...components],\n exports: components,\n providers: []\n})\nexport class ThySkeletonModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ngx-tethys-skeleton.mjs","sources":["../../../src/skeleton/skeleton.component.ts","../../../src/skeleton/skeleton.config.ts","../../../src/skeleton/skeleton-rectangle.component.ts","../../../src/skeleton/skeleton-circle.component.ts","../../../src/skeleton/stylized/list.component.ts","../../../src/skeleton/stylized/paragraph.component.ts","../../../src/skeleton/stylized/bullet-list.component.ts","../../../src/skeleton/module.ts","../../../src/skeleton/ngx-tethys-skeleton.ts"],"sourcesContent":["import { Component, ChangeDetectionStrategy, ViewEncapsulation, Input, input } from '@angular/core';\nimport { coerceBooleanProperty, ThyBooleanInput } from 'ngx-tethys/util';\n\n/**\n * 骨架屏组件\n * @name thy-skeleton\n * @order 10\n */\n@Component({\n selector: 'thy-skeleton',\n template: ` <ng-content></ng-content> `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n})\nexport class ThySkeleton {\n /**\n * 是否开启动画\n * @default false\n */\n readonly thyAnimated = input<boolean, ThyBooleanInput>(undefined, { transform: coerceBooleanProperty });\n\n /**\n * 动画速度\n */\n readonly thyAnimatedInterval = input<string | number>();\n\n /**\n * 骨架主色调\n */\n readonly thyPrimaryColor = input<string>();\n\n /**\n * 骨架次色调\n */\n readonly thySecondaryColor = input<string>();\n}\n","import { InjectionToken } from '@angular/core';\nexport interface ThySkeletonConfigModel {\n thyAnimatedInterval?: string | number;\n thyPrimaryColor?: string;\n thySecondaryColor?: string;\n thyAnimated?: boolean;\n}\n\nexport const THY_SKELETON_CONFIG = new InjectionToken<ThySkeletonConfigModel>('THY_SKELETON_CONFIG', {\n providedIn: 'root',\n factory: () => {\n return {};\n }\n});\n","import { Component, ChangeDetectionStrategy, ViewEncapsulation, inject, input, computed } from '@angular/core';\nimport { ThySkeleton } from './skeleton.component';\nimport { coerceBooleanProperty, helpers, ThyBooleanInput } from 'ngx-tethys/util';\nimport { THY_SKELETON_CONFIG } from './skeleton.config';\nimport { isUndefinedOrNull } from 'ngx-tethys/util';\nimport { NgStyle } from '@angular/common';\nimport { coerceCssPixelValue } from '@angular/cdk/coercion';\n/**\n * 骨架屏矩形组件\n * @name thy-skeleton-rectangle\n * @order 20\n */\n@Component({\n selector: 'thy-skeleton-rectangle',\n host: {\n '[class.thy-skeleton]': 'true',\n '[class.thy-skeleton-rectangle]': 'true',\n '[style.background]': 'primaryColor()',\n '[style.width]': 'thyRowWidth()',\n '[style.height]': 'thyRowHeight()',\n '[style.borderRadius]': 'thyBorderRadius()'\n },\n template: ` <div class=\"thy-skeleton-after\" [ngStyle]=\"afterStyles()\"></div> `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [NgStyle]\n})\nexport class ThySkeletonRectangle {\n private skeletonConfigModel = inject(THY_SKELETON_CONFIG, { optional: true });\n\n private parent = inject(ThySkeleton, { optional: true })!;\n\n /**\n * 是否展示动画\n * @default true\n */\n readonly thyAnimated = input<boolean, ThyBooleanInput>(undefined, { transform: coerceBooleanProperty });\n\n /**\n * 动画速度\n * @default 1.5s\n */\n readonly thyAnimatedInterval = input<string | number>();\n\n /**\n * 骨架边框圆角\n * @default 4px\n */\n readonly thyBorderRadius = input<string, string | number>(undefined, { transform: coerceCssPixelValue });\n\n /**\n * 骨架宽度\n * @default 100%\n */\n readonly thyRowWidth = input<string, string | number>(undefined, { transform: coerceCssPixelValue });\n\n /**\n * 骨架高度\n * @default 20px\n */\n readonly thyRowHeight = input<string, string | number>(undefined, { transform: coerceCssPixelValue });\n\n /**\n * 骨架主色\n * @default #F7F7F7\n */\n readonly thyPrimaryColor = input<string>();\n\n /**\n * 骨架次色\n * @default #aaaaaa\n */\n readonly thySecondaryColor = input<string>();\n\n readonly animatedInterval = computed(() => {\n return this.thyAnimatedInterval() || this.parent?.thyAnimatedInterval() || this.skeletonConfigModel.thyAnimatedInterval;\n });\n\n readonly primaryColor = computed(() => {\n return this.thyPrimaryColor() || this.parent?.thyPrimaryColor() || this.skeletonConfigModel.thyPrimaryColor;\n });\n\n readonly secondaryColor = computed(() => {\n return this.thySecondaryColor() || this.parent?.thySecondaryColor() || this.skeletonConfigModel.thySecondaryColor;\n });\n\n readonly animated = computed(() => {\n if (!isUndefinedOrNull(this.thyAnimated())) {\n return this.thyAnimated();\n }\n if (!isUndefinedOrNull(this.parent?.thyAnimated())) {\n return this.parent.thyAnimated();\n }\n return this.skeletonConfigModel.thyAnimated;\n });\n\n readonly afterStyles = computed(() => {\n return {\n ...(this.secondaryColor() && {\n background: `linear-gradient(90deg, ${helpers.hexToRgb(this.secondaryColor(), 0)}, ${helpers.hexToRgb(\n this.secondaryColor(),\n 0.15\n )}, ${helpers.hexToRgb(this.secondaryColor(), 0)}`\n }),\n animation: ![false, 'false'].includes(this.animated()) ? `thy-skeleton-animation ${this.animatedInterval()}s infinite` : 'none'\n };\n });\n}\n","import { Component, ChangeDetectionStrategy, ViewEncapsulation, Input, inject, input, computed } from '@angular/core';\nimport { ThySkeleton } from './skeleton.component';\nimport { coerceBooleanProperty, helpers, ThyBooleanInput } from 'ngx-tethys/util';\nimport { THY_SKELETON_CONFIG } from './skeleton.config';\nimport { isUndefinedOrNull } from 'ngx-tethys/util';\nimport { NgStyle } from '@angular/common';\nimport { coerceCssPixelValue } from '@angular/cdk/coercion';\n\n/**\n * 骨架屏圆形组件\n * @name thy-skeleton-circle\n * @order 30\n */\n@Component({\n selector: 'thy-skeleton-circle',\n host: {\n '[class.thy-skeleton]': 'true',\n '[class.thy-skeleton-circle]': 'true',\n '[style.background]': 'primaryColor()',\n '[style.width]': 'thySize()',\n '[style.height]': 'thySize()'\n },\n template: ` <div class=\"thy-skeleton-after\" [ngStyle]=\"afterStyles()\"></div> `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [NgStyle]\n})\nexport class ThySkeletonCircle {\n private skeletonConfigModel = inject(THY_SKELETON_CONFIG, { optional: true })!;\n\n private parent = inject(ThySkeleton, { optional: true })!;\n\n /**\n * 动画速度\n * @default 1.5s\n */\n readonly thyAnimatedInterval = input<string | number>();\n\n /**\n * 骨架尺寸\n * @default 20px\n */\n readonly thySize = input<string, string | number>(`20px`, { transform: coerceCssPixelValue });\n\n /**\n * 骨架主色\n * @default #F7F7F7\n */\n readonly thyPrimaryColor = input<string>();\n\n /**\n * 骨架次色\n * @default #aaaaaa\n */\n readonly thySecondaryColor = input<string>();\n\n /**\n * 是否展示动画\n * @default true\n */\n readonly thyAnimated = input<boolean, ThyBooleanInput>(undefined, { transform: coerceBooleanProperty });\n\n readonly animatedInterval = computed(() => {\n return this.thyAnimatedInterval() || this.parent?.thyAnimatedInterval() || this.skeletonConfigModel.thyAnimatedInterval;\n });\n\n readonly primaryColor = computed(() => {\n return this.thyPrimaryColor() || this.parent?.thyPrimaryColor() || this.skeletonConfigModel.thyPrimaryColor;\n });\n\n readonly secondaryColor = computed(() => {\n return this.thySecondaryColor() || this.parent?.thySecondaryColor() || this.skeletonConfigModel.thySecondaryColor;\n });\n\n readonly animated = computed(() => {\n if (!isUndefinedOrNull(this.thyAnimated())) {\n return this.thyAnimated();\n }\n if (!isUndefinedOrNull(this.parent?.thyAnimated())) {\n return this.parent.thyAnimated();\n }\n return this.skeletonConfigModel.thyAnimated;\n });\n\n readonly afterStyles = computed(() => {\n return {\n ...(this.secondaryColor() && {\n background: `linear-gradient(90deg, ${helpers.hexToRgb(this.secondaryColor(), 0)}, ${helpers.hexToRgb(\n this.secondaryColor(),\n 0.15\n )}, ${helpers.hexToRgb(this.secondaryColor(), 0)}`\n }),\n animation: ![false, 'false'].includes(this.animated()) ? `thy-skeleton-animation ${this.animatedInterval()}s infinite` : 'none'\n };\n });\n}\n","import { ChangeDetectionStrategy, Component, input, ViewEncapsulation, computed } from '@angular/core';\nimport { ThySkeletonRectangle } from '../skeleton-rectangle.component';\nimport { coerceBooleanProperty, ThyBooleanInput } from 'ngx-tethys/util';\nimport { coerceCssPixelValue } from '@angular/cdk/coercion';\n\n/**\n * 骨架屏列表组件\n * @name thy-skeleton-list\n * @order 40\n */\n@Component({\n selector: 'thy-skeleton-list',\n template: `\n @for (k of rows(); track $index; let i = $index) {\n <thy-skeleton-rectangle\n class=\"vertical-gap\"\n [thyRowWidth]=\"thyRowWidth()\"\n [thyRowHeight]=\"thyRowHeight()\"\n [thyAnimated]=\"thyAnimated()\"\n [thyPrimaryColor]=\"thyPrimaryColor()\"\n [thySecondaryColor]=\"thySecondaryColor()\"\n [thyBorderRadius]=\"thyBorderRadius()\"\n [thyAnimatedInterval]=\"thyAnimatedInterval()\"></thy-skeleton-rectangle>\n }\n `,\n host: { '[class.thy-skeleton-list]': 'true' },\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [ThySkeletonRectangle]\n})\nexport class ThySkeletonList {\n /**\n * 骨架宽度\n */\n readonly thyRowWidth = input<string, string | number>(undefined, { transform: coerceCssPixelValue });\n\n /**\n * 骨架高度\n */\n readonly thyRowHeight = input<string, string | number>(undefined, { transform: coerceCssPixelValue });\n\n /**\n * 骨架边框圆角\n */\n readonly thyBorderRadius = input<string, string | number>(undefined, { transform: coerceCssPixelValue });\n\n /**\n * 是否开启动画\n * @default false\n */\n readonly thyAnimated = input<boolean, ThyBooleanInput>(undefined, { transform: coerceBooleanProperty });\n\n /**\n * 动画速度\n */\n readonly thyAnimatedInterval = input<string | number>();\n\n /**\n * 骨架主色\n */\n readonly thyPrimaryColor = input<string>();\n\n /**\n * 骨架次色\n */\n readonly thySecondaryColor = input<string>();\n\n /**\n * 行数\n */\n readonly thyRowCount = input<number | string>();\n\n readonly rows = computed(() => {\n return Array.from({ length: +this.thyRowCount() });\n });\n}\n","import { ChangeDetectionStrategy, Component, input, ViewEncapsulation, computed } from '@angular/core';\nimport { ThySkeletonRectangle } from '../skeleton-rectangle.component';\nimport { coerceBooleanProperty, ThyBooleanInput } from 'ngx-tethys/util';\nimport { coerceCssPixelValue } from '@angular/cdk/coercion';\n\n/**\n * 骨架屏段落组件\n * @name thy-skeleton-paragraph\n * @order 60\n */\n@Component({\n selector: 'thy-skeleton-paragraph',\n template: `\n @for (k of rows(); track $index; let i = $index) {\n <thy-skeleton-rectangle\n class=\"vertical-gap\"\n [thyRowWidth]=\"i === 0 ? thyFirstWidth() : i === rows().length - 1 ? thyLastWidth() : thyRowWidth()\"\n [thyRowHeight]=\"thyRowHeight()\"\n [thyAnimated]=\"thyAnimated()\"\n [thyPrimaryColor]=\"thyPrimaryColor()\"\n [thySecondaryColor]=\"thySecondaryColor()\"\n [thyBorderRadius]=\"thyBorderRadius()\"\n [thyAnimatedInterval]=\"thyAnimatedInterval()\"></thy-skeleton-rectangle>\n }\n `,\n host: { '[class.thy-skeleton-paragraph]': 'true' },\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [ThySkeletonRectangle]\n})\nexport class ThySkeletonParagraph {\n /**\n * 首行宽度\n */\n readonly thyFirstWidth = input<string, string | number>(undefined, { transform: coerceCssPixelValue });\n\n /**\n * 尾行宽度\n */\n readonly thyLastWidth = input<string, string | number>(undefined, { transform: coerceCssPixelValue });\n\n /**\n * 骨架宽度\n */\n readonly thyRowWidth = input<string, string | number>(undefined, { transform: coerceCssPixelValue });\n\n /**\n * 骨架高度\n */\n readonly thyRowHeight = input<string, string | number>(undefined, { transform: coerceCssPixelValue });\n\n /**\n * 骨架边框圆角\n */\n readonly thyBorderRadius = input<string, string | number>(undefined, { transform: coerceCssPixelValue });\n\n /**\n * 是否开启动画\n * @default false\n */\n readonly thyAnimated = input<boolean, ThyBooleanInput>(undefined, { transform: coerceBooleanProperty });\n\n /**\n * 动画速度\n */\n readonly thyAnimatedInterval = input<string | number>();\n\n /**\n * 骨架主色\n */\n readonly thyPrimaryColor = input<string>();\n\n /**\n * 骨架次色\n */\n readonly thySecondaryColor = input<string>();\n\n /**\n * 行数\n */\n readonly thyRowCount = input<number | string>();\n\n readonly rows = computed(() => {\n return Array.from({ length: +this.thyRowCount() });\n });\n}\n","import { ChangeDetectionStrategy, Component, input, ViewEncapsulation, computed } from '@angular/core';\nimport { ThySkeletonCircle } from '../skeleton-circle.component';\nimport { ThySkeletonRectangle } from '../skeleton-rectangle.component';\nimport { coerceBooleanProperty, ThyBooleanInput } from 'ngx-tethys/util';\nimport { coerceCssPixelValue } from '@angular/cdk/coercion';\n\n/**\n * 骨架屏无序列表组件\n * @name thy-skeleton-bullet-list\n * @order 50\n */\n@Component({\n selector: 'thy-skeleton-bullet-list',\n template: `\n @for (item of rows(); track $index; let i = $index) {\n <div class=\"d-flex vertical-gap\">\n <thy-skeleton-circle\n [thyAnimated]=\"thyAnimated()\"\n [thyAnimatedInterval]=\"thyAnimatedInterval()\"\n [thySize]=\"thySize()\"\n [thyPrimaryColor]=\"thyPrimaryColor()\"\n [thySecondaryColor]=\"thySecondaryColor()\">\n </thy-skeleton-circle>\n <div class=\"horizontal-gap\"></div>\n <div style=\"flex: 1\">\n <thy-skeleton-rectangle\n [thyRowWidth]=\"thyRowWidth()\"\n [thyRowHeight]=\"thyRowHeight()\"\n [thyAnimated]=\"thyAnimated()\"\n [thyPrimaryColor]=\"thyPrimaryColor()\"\n [thySecondaryColor]=\"thySecondaryColor()\"\n [thyBorderRadius]=\"thyBorderRadius()\"\n [thyAnimatedInterval]=\"thyAnimatedInterval()\"></thy-skeleton-rectangle>\n </div>\n </div>\n }\n `,\n host: { '[class.thy-skeleton-bullet-list]': 'true' },\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [ThySkeletonCircle, ThySkeletonRectangle]\n})\nexport class ThySkeletonBulletList {\n /**\n * 骨架宽度\n * @default 100%\n */\n readonly thyRowWidth = input<string, string | number>(undefined, { transform: coerceCssPixelValue });\n\n /**\n * 骨架高度\n * @default 20px\n */\n readonly thyRowHeight = input<string, string | number>(undefined, { transform: coerceCssPixelValue });\n\n /**\n * 骨架边框圆角\n * @default 4px\n */\n readonly thyBorderRadius = input<string, string | number>(undefined, { transform: coerceCssPixelValue });\n\n /**\n * 是否开启动画\n * @default true\n */\n readonly thyAnimated = input<boolean, ThyBooleanInput>(undefined, { transform: coerceBooleanProperty });\n\n /**\n * 动画速度\n * @default 1.5s\n */\n readonly thyAnimatedInterval = input<string | number>();\n\n /**\n * 骨架主色\n * @default #f7f7f7\n */\n readonly thyPrimaryColor = input<string>();\n\n /**\n * 骨架次色\n * @default #aaaaaa\n */\n readonly thySecondaryColor = input<string>();\n\n /**\n * circle类型骨架尺寸\n */\n readonly thySize = input<string, string | number>(undefined, { transform: coerceCssPixelValue });\n\n /**\n * 行数\n */\n readonly thyRowCount = input<number | string>();\n\n readonly rows = computed(() => {\n return Array.from({ length: +this.thyRowCount() });\n });\n\n constructor() {}\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { PortalModule } from '@angular/cdk/portal';\nimport { ThyGridModule } from 'ngx-tethys/grid';\nimport { ThyListModule } from 'ngx-tethys/list';\n\nimport { ThySkeleton } from './skeleton.component';\nimport { ThySkeletonRectangle } from './skeleton-rectangle.component';\nimport { ThySkeletonCircle } from './skeleton-circle.component';\nimport { ThySkeletonList } from './stylized/list.component';\nimport { ThySkeletonParagraph } from './stylized/paragraph.component';\nimport { ThySkeletonBulletList } from './stylized/bullet-list.component';\n\nconst components = [ThySkeleton, ThySkeletonRectangle, ThySkeletonCircle, ThySkeletonList, ThySkeletonParagraph, ThySkeletonBulletList];\n@NgModule({\n imports: [CommonModule, PortalModule, ThyGridModule, ThyListModule, ...components],\n exports: components,\n providers: []\n})\nexport class ThySkeletonModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
+
import { NgStyle, CommonModule } from '@angular/common';
|
|
1
2
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { inject, ChangeDetectorRef, NgZone, ElementRef,
|
|
3
|
+
import { inject, ChangeDetectorRef, NgZone, ElementRef, input, viewChild, signal, numberAttribute, output, effect, forwardRef, Input, Component, NgModule } from '@angular/core';
|
|
3
4
|
import { NG_VALUE_ACCESSOR, FormsModule } from '@angular/forms';
|
|
5
|
+
import { useHostRenderer } from '@tethys/cdk/dom';
|
|
6
|
+
import { TabIndexDisabledControlValueAccessorMixin } from 'ngx-tethys/core';
|
|
7
|
+
import { coerceBooleanProperty, clamp } from 'ngx-tethys/util';
|
|
4
8
|
import { fromEvent } from 'rxjs';
|
|
5
|
-
import { clamp, coerceBooleanProperty } from 'ngx-tethys/util';
|
|
6
9
|
import { pluck, map, tap, distinctUntilChanged, takeUntil } from 'rxjs/operators';
|
|
7
|
-
import { TabIndexDisabledControlValueAccessorMixin } from 'ngx-tethys/core';
|
|
8
|
-
import { useHostRenderer } from '@tethys/cdk/dom';
|
|
9
|
-
import { NgStyle, CommonModule } from '@angular/common';
|
|
10
10
|
|
|
11
11
|
/**
|
|
12
12
|
* 滑动输入条组件
|
|
@@ -24,34 +24,6 @@ class ThySlider extends TabIndexDisabledControlValueAccessorMixin {
|
|
|
24
24
|
get thyDisabled() {
|
|
25
25
|
return this.disabled;
|
|
26
26
|
}
|
|
27
|
-
/**
|
|
28
|
-
* 切换主题类型
|
|
29
|
-
* @type primary | success | info | warning | danger
|
|
30
|
-
* @default success
|
|
31
|
-
*/
|
|
32
|
-
set thyType(type) {
|
|
33
|
-
if (type) {
|
|
34
|
-
if (this.typeClassName) {
|
|
35
|
-
this.hostRenderer.removeClass(this.typeClassName);
|
|
36
|
-
}
|
|
37
|
-
this.hostRenderer.addClass(type ? `thy-slider-${type}` : '');
|
|
38
|
-
this.typeClassName = `thy-slider-${type}`;
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
/**
|
|
42
|
-
* 滑动输入条大小
|
|
43
|
-
* @type sm | md | lg
|
|
44
|
-
* @default sm
|
|
45
|
-
*/
|
|
46
|
-
set thySize(size) {
|
|
47
|
-
if (size) {
|
|
48
|
-
if (this.sizeClassName) {
|
|
49
|
-
this.hostRenderer.removeClass(this.sizeClassName);
|
|
50
|
-
}
|
|
51
|
-
this.hostRenderer.addClass(size ? `thy-slider-${size}` : '');
|
|
52
|
-
this.sizeClassName = `thy-slider-${size}`;
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
27
|
constructor() {
|
|
56
28
|
super();
|
|
57
29
|
this.cdr = inject(ChangeDetectorRef);
|
|
@@ -60,31 +32,62 @@ class ThySlider extends TabIndexDisabledControlValueAccessorMixin {
|
|
|
60
32
|
/**
|
|
61
33
|
* 是否切换为纵轴模式
|
|
62
34
|
*/
|
|
63
|
-
this.thyVertical = false;
|
|
35
|
+
this.thyVertical = input(false, { transform: coerceBooleanProperty });
|
|
64
36
|
this.disabled = false;
|
|
65
|
-
this.
|
|
66
|
-
this.
|
|
37
|
+
this.sliderRail = viewChild('sliderRail');
|
|
38
|
+
this.sliderTrack = viewChild('sliderTrack');
|
|
39
|
+
this.sliderPointer = viewChild('sliderPointer');
|
|
40
|
+
this.typeClassName = signal('');
|
|
41
|
+
this.sizeClassName = signal('');
|
|
67
42
|
/**
|
|
68
43
|
* 最大值
|
|
69
44
|
*/
|
|
70
|
-
this.thyMax = 100;
|
|
45
|
+
this.thyMax = input(100, { transform: numberAttribute });
|
|
71
46
|
/**
|
|
72
47
|
* 最小值
|
|
73
48
|
*/
|
|
74
|
-
this.thyMin = 0;
|
|
49
|
+
this.thyMin = input(0, { transform: numberAttribute });
|
|
75
50
|
/**
|
|
76
51
|
* 步长,需要被 thyMax - thyMin 的差值整除。
|
|
77
52
|
*/
|
|
78
|
-
this.thyStep = 1;
|
|
53
|
+
this.thyStep = input(1, { transform: numberAttribute });
|
|
54
|
+
/**
|
|
55
|
+
* 切换主题类型
|
|
56
|
+
* @type primary | success | info | warning | danger
|
|
57
|
+
*/
|
|
58
|
+
this.thyType = input('success');
|
|
59
|
+
/**
|
|
60
|
+
* 通过变量设置颜色
|
|
61
|
+
*/
|
|
62
|
+
this.thyColor = input();
|
|
63
|
+
/**
|
|
64
|
+
* 滑动输入条大小
|
|
65
|
+
* @type sm | md | lg
|
|
66
|
+
*/
|
|
67
|
+
this.thySize = input('sm');
|
|
79
68
|
/**
|
|
80
69
|
* 移动结束后的回调,参数为当前值
|
|
81
70
|
*/
|
|
82
|
-
this.thyAfterChange =
|
|
83
|
-
this.typeClassName = '';
|
|
84
|
-
this.sizeClassName = '';
|
|
71
|
+
this.thyAfterChange = output();
|
|
85
72
|
this.hostRenderer = useHostRenderer();
|
|
86
73
|
this.onChangeCallback = (v) => { };
|
|
87
74
|
this.onTouchedCallback = (v) => { };
|
|
75
|
+
effect(() => {
|
|
76
|
+
if (this.thyType()) {
|
|
77
|
+
const typeName = `thy-slider-${this.thyType() || 'success'}`;
|
|
78
|
+
this.typeClassName() && this.hostRenderer.removeClass(this.typeClassName());
|
|
79
|
+
this.hostRenderer.addClass(typeName);
|
|
80
|
+
this.typeClassName.set(typeName);
|
|
81
|
+
}
|
|
82
|
+
});
|
|
83
|
+
effect(() => {
|
|
84
|
+
if (this.thySize()) {
|
|
85
|
+
const sizeName = `thy-slider-${this.thySize() || 'sm'}`;
|
|
86
|
+
this.sizeClassName() && this.hostRenderer.removeClass(this.sizeClassName());
|
|
87
|
+
this.hostRenderer.addClass(sizeName);
|
|
88
|
+
this.sizeClassName.set(sizeName);
|
|
89
|
+
}
|
|
90
|
+
});
|
|
88
91
|
}
|
|
89
92
|
ngOnInit() {
|
|
90
93
|
if (typeof ngDevMode === 'undefined' || ngDevMode) {
|
|
@@ -137,9 +140,9 @@ class ThySlider extends TabIndexDisabledControlValueAccessorMixin {
|
|
|
137
140
|
}
|
|
138
141
|
ensureValueInRange(value) {
|
|
139
142
|
if (!this.valueMustBeValid(value)) {
|
|
140
|
-
return this.thyMin;
|
|
143
|
+
return this.thyMin();
|
|
141
144
|
}
|
|
142
|
-
return clamp(value, this.thyMin, this.thyMax);
|
|
145
|
+
return clamp(value, this.thyMin(), this.thyMax());
|
|
143
146
|
}
|
|
144
147
|
valueMustBeValid(value) {
|
|
145
148
|
return !isNaN(typeof value !== 'number' ? parseFloat(value) : value);
|
|
@@ -150,13 +153,13 @@ class ThySlider extends TabIndexDisabledControlValueAccessorMixin {
|
|
|
150
153
|
this.cdr.markForCheck();
|
|
151
154
|
}
|
|
152
155
|
valueToOffset(value) {
|
|
153
|
-
return ((value - this.thyMin) * 100) / (this.thyMax - this.thyMin);
|
|
156
|
+
return ((value - this.thyMin()) * 100) / (this.thyMax() - this.thyMin());
|
|
154
157
|
}
|
|
155
158
|
updateStyle(offsetPercentage) {
|
|
156
159
|
const percentage = Math.min(1, Math.max(0, offsetPercentage));
|
|
157
|
-
const orientFields = this.thyVertical ? ['height', 'bottom'] : ['width', 'left'];
|
|
158
|
-
this.sliderTrack.nativeElement.style[orientFields[0]] = `${percentage * 100}%`;
|
|
159
|
-
this.sliderPointer.nativeElement.style[orientFields[1]] = `${percentage * 100}%`;
|
|
160
|
+
const orientFields = this.thyVertical() ? ['height', 'bottom'] : ['width', 'left'];
|
|
161
|
+
this.sliderTrack().nativeElement.style[orientFields[0]] = `${percentage * 100}%`;
|
|
162
|
+
this.sliderPointer().nativeElement.style[orientFields[1]] = `${percentage * 100}%`;
|
|
160
163
|
}
|
|
161
164
|
unsubscribeMouseListeners(actions = ['start', 'move', 'end']) {
|
|
162
165
|
if (actions.includes('start') && this.dragStartHandler) {
|
|
@@ -205,7 +208,7 @@ class ThySlider extends TabIndexDisabledControlValueAccessorMixin {
|
|
|
205
208
|
}
|
|
206
209
|
}
|
|
207
210
|
registerMouseEventsListeners() {
|
|
208
|
-
const orientField = this.thyVertical ? 'pageY' : 'pageX';
|
|
211
|
+
const orientField = this.thyVertical() ? 'pageY' : 'pageX';
|
|
209
212
|
this.dragStartListener = this.ngZone.runOutsideAngular(() => {
|
|
210
213
|
return fromEvent(this.ref.nativeElement, 'mousedown').pipe(pluck(orientField), map((position, index) => this.mousePositionToAdaptiveValue(position)));
|
|
211
214
|
});
|
|
@@ -227,37 +230,37 @@ class ThySlider extends TabIndexDisabledControlValueAccessorMixin {
|
|
|
227
230
|
}
|
|
228
231
|
const ratio = this.convertPointerPositionToRatio(position, sliderStartPosition, sliderLength);
|
|
229
232
|
const value = this.ratioToValue(ratio);
|
|
230
|
-
return parseFloat(value.toFixed(this.getDecimals(this.thyStep)));
|
|
233
|
+
return parseFloat(value.toFixed(this.getDecimals(this.thyStep())));
|
|
231
234
|
}
|
|
232
235
|
getSliderPagePosition() {
|
|
233
236
|
const rect = this.ref.nativeElement.getBoundingClientRect();
|
|
234
237
|
const window = this.ref.nativeElement.ownerDocument.defaultView;
|
|
235
|
-
const orientFields = this.thyVertical ? ['bottom', 'pageYOffset'] : ['left', 'pageXOffset'];
|
|
238
|
+
const orientFields = this.thyVertical() ? ['bottom', 'pageYOffset'] : ['left', 'pageXOffset'];
|
|
236
239
|
return rect[orientFields[0]] + window[orientFields[1]];
|
|
237
240
|
}
|
|
238
241
|
getRailLength() {
|
|
239
|
-
const orientFiled = this.thyVertical ? 'clientHeight' : 'clientWidth';
|
|
240
|
-
return this.sliderRail.nativeElement[orientFiled];
|
|
242
|
+
const orientFiled = this.thyVertical() ? 'clientHeight' : 'clientWidth';
|
|
243
|
+
return this.sliderRail().nativeElement[orientFiled];
|
|
241
244
|
}
|
|
242
245
|
convertPointerPositionToRatio(pointerPosition, startPosition, totalLength) {
|
|
243
|
-
if (this.thyVertical) {
|
|
246
|
+
if (this.thyVertical()) {
|
|
244
247
|
return clamp((startPosition - pointerPosition) / totalLength, 0, 1);
|
|
245
248
|
}
|
|
246
249
|
return clamp((pointerPosition - startPosition) / totalLength, 0, 1);
|
|
247
250
|
}
|
|
248
251
|
ratioToValue(ratio) {
|
|
249
|
-
let value = (this.thyMax - this.thyMin) * ratio + this.thyMin;
|
|
250
|
-
const step = this.thyStep;
|
|
252
|
+
let value = (this.thyMax() - this.thyMin()) * ratio + this.thyMin();
|
|
253
|
+
const step = this.thyStep();
|
|
251
254
|
if (ratio === 0) {
|
|
252
|
-
value = this.thyMin;
|
|
255
|
+
value = this.thyMin();
|
|
253
256
|
}
|
|
254
257
|
else if (ratio === 1) {
|
|
255
|
-
value = this.thyMax;
|
|
258
|
+
value = this.thyMax();
|
|
256
259
|
}
|
|
257
260
|
else {
|
|
258
261
|
value = Math.round(value / step) * step;
|
|
259
262
|
}
|
|
260
|
-
return clamp(value, this.thyMin, this.thyMax);
|
|
263
|
+
return clamp(value, this.thyMin(), this.thyMax());
|
|
261
264
|
}
|
|
262
265
|
getDecimals(value) {
|
|
263
266
|
const valueString = value.toString();
|
|
@@ -265,13 +268,13 @@ class ThySlider extends TabIndexDisabledControlValueAccessorMixin {
|
|
|
265
268
|
return integerLength >= 0 ? valueString.length - integerLength : 0;
|
|
266
269
|
}
|
|
267
270
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: ThySlider, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
268
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
271
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "19.2.8", type: ThySlider, isStandalone: true, selector: "thy-slider", inputs: { thyVertical: { classPropertyName: "thyVertical", publicName: "thyVertical", isSignal: true, isRequired: false, transformFunction: null }, thyDisabled: { classPropertyName: "thyDisabled", publicName: "thyDisabled", isSignal: false, isRequired: false, transformFunction: coerceBooleanProperty }, thyMax: { classPropertyName: "thyMax", publicName: "thyMax", isSignal: true, isRequired: false, transformFunction: null }, thyMin: { classPropertyName: "thyMin", publicName: "thyMin", isSignal: true, isRequired: false, transformFunction: null }, thyStep: { classPropertyName: "thyStep", publicName: "thyStep", isSignal: true, isRequired: false, transformFunction: null }, thyType: { classPropertyName: "thyType", publicName: "thyType", isSignal: true, isRequired: false, transformFunction: null }, thyColor: { classPropertyName: "thyColor", publicName: "thyColor", isSignal: true, isRequired: false, transformFunction: null }, thySize: { classPropertyName: "thySize", publicName: "thySize", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { thyAfterChange: "thyAfterChange" }, host: { properties: { "attr.tabindex": "tabIndex", "class.slider-vertical": "thyVertical()", "class.slider-disabled": "!!disabled", "class.thy-slider": "true", "class.cursor-pointer": "true" } }, providers: [
|
|
269
272
|
{
|
|
270
273
|
provide: NG_VALUE_ACCESSOR,
|
|
271
274
|
useExisting: forwardRef(() => ThySlider),
|
|
272
275
|
multi: true
|
|
273
276
|
}
|
|
274
|
-
], viewQueries: [{ propertyName: "sliderRail", first: true, predicate: ["sliderRail"], descendants: true,
|
|
277
|
+
], viewQueries: [{ propertyName: "sliderRail", first: true, predicate: ["sliderRail"], descendants: true, isSignal: true }, { propertyName: "sliderTrack", first: true, predicate: ["sliderTrack"], descendants: true, isSignal: true }, { propertyName: "sliderPointer", first: true, predicate: ["sliderPointer"], descendants: true, isSignal: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div class=\"thy-slider-rail\" #sliderRail>\n <div class=\"thy-slider-track\" #sliderTrack [ngStyle]=\"{ 'background-color': thyColor() }\"></div>\n <div class=\"thy-slider-pointer\" #sliderPointer [ngStyle]=\"{ 'border-color': thyColor() }\"></div>\n</div>\n", dependencies: [{ kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] }); }
|
|
275
278
|
}
|
|
276
279
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: ThySlider, decorators: [{
|
|
277
280
|
type: Component,
|
|
@@ -282,65 +285,29 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.8", ngImpor
|
|
|
282
285
|
multi: true
|
|
283
286
|
}
|
|
284
287
|
], host: {
|
|
285
|
-
'[attr.tabindex]': `tabIndex
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
args: [{ transform: coerceBooleanProperty }]
|
|
293
|
-
}], thyDisabled: [{
|
|
294
|
-
type: HostBinding,
|
|
295
|
-
args: ['class.slider-disabled']
|
|
296
|
-
}, {
|
|
288
|
+
'[attr.tabindex]': `tabIndex`,
|
|
289
|
+
'[class.slider-vertical]': 'thyVertical()',
|
|
290
|
+
'[class.slider-disabled]': '!!disabled',
|
|
291
|
+
'[class.thy-slider]': 'true',
|
|
292
|
+
'[class.cursor-pointer]': 'true'
|
|
293
|
+
}, imports: [NgStyle], template: "<div class=\"thy-slider-rail\" #sliderRail>\n <div class=\"thy-slider-track\" #sliderTrack [ngStyle]=\"{ 'background-color': thyColor() }\"></div>\n <div class=\"thy-slider-pointer\" #sliderPointer [ngStyle]=\"{ 'border-color': thyColor() }\"></div>\n</div>\n" }]
|
|
294
|
+
}], ctorParameters: () => [], propDecorators: { thyDisabled: [{
|
|
297
295
|
type: Input,
|
|
298
296
|
args: [{ transform: coerceBooleanProperty }]
|
|
299
|
-
}], _thySlider: [{
|
|
300
|
-
type: HostBinding,
|
|
301
|
-
args: ['class.thy-slider']
|
|
302
|
-
}], _pointer: [{
|
|
303
|
-
type: HostBinding,
|
|
304
|
-
args: ['class.cursor-pointer']
|
|
305
|
-
}], sliderRail: [{
|
|
306
|
-
type: ViewChild,
|
|
307
|
-
args: ['sliderRail', { static: true }]
|
|
308
|
-
}], sliderTrack: [{
|
|
309
|
-
type: ViewChild,
|
|
310
|
-
args: ['sliderTrack', { static: true }]
|
|
311
|
-
}], sliderPointer: [{
|
|
312
|
-
type: ViewChild,
|
|
313
|
-
args: ['sliderPointer', { static: true }]
|
|
314
|
-
}], thyMax: [{
|
|
315
|
-
type: Input,
|
|
316
|
-
args: [{ transform: numberAttribute }]
|
|
317
|
-
}], thyMin: [{
|
|
318
|
-
type: Input,
|
|
319
|
-
args: [{ transform: numberAttribute }]
|
|
320
|
-
}], thyStep: [{
|
|
321
|
-
type: Input,
|
|
322
|
-
args: [{ transform: numberAttribute }]
|
|
323
|
-
}], thyType: [{
|
|
324
|
-
type: Input
|
|
325
|
-
}], thyColor: [{
|
|
326
|
-
type: Input
|
|
327
|
-
}], thySize: [{
|
|
328
|
-
type: Input
|
|
329
|
-
}], thyAfterChange: [{
|
|
330
|
-
type: Output
|
|
331
297
|
}] } });
|
|
332
298
|
// Note: keep `verifyMinAndMax` and `verifyStepValues` as separate functions (not as class properties)
|
|
333
299
|
// so they're tree-shakable in production mode.
|
|
334
300
|
function verifyMinAndMax(ctx) {
|
|
335
|
-
if (ctx.thyMin >= ctx.thyMax) {
|
|
301
|
+
if (ctx.thyMin() >= ctx.thyMax()) {
|
|
336
302
|
throw new Error('min value must less than max value.');
|
|
337
303
|
}
|
|
338
304
|
}
|
|
339
305
|
function verifyStepValues(ctx) {
|
|
340
|
-
|
|
306
|
+
const thyStep = ctx.thyStep();
|
|
307
|
+
if (ctx.thyStep() <= 0 || !thyStep) {
|
|
341
308
|
throw new Error('step value must be greater than 0.');
|
|
342
309
|
}
|
|
343
|
-
else if (Number.isInteger(
|
|
310
|
+
else if (Number.isInteger(thyStep) && (ctx.thyMax() - ctx.thyMin()) % thyStep) {
|
|
344
311
|
throw new Error('(max - min) must be divisible by step.');
|
|
345
312
|
}
|
|
346
313
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ngx-tethys-slider.mjs","sources":["../../../src/slider/slider.component.ts","../../../src/slider/slider.component.html","../../../src/slider/slider.module.ts","../../../src/slider/ngx-tethys-slider.ts"],"sourcesContent":["import {\n Component,\n OnInit,\n OnChanges,\n OnDestroy,\n AfterViewInit,\n SimpleChanges,\n forwardRef,\n Input,\n EventEmitter,\n ChangeDetectorRef,\n ViewChild,\n ElementRef,\n HostBinding,\n Output,\n NgZone,\n numberAttribute,\n inject\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { Observable, Subscription, fromEvent } from 'rxjs';\nimport { clamp, coerceBooleanProperty } from 'ngx-tethys/util';\nimport { tap, pluck, map, distinctUntilChanged, takeUntil } from 'rxjs/operators';\nimport { TabIndexDisabledControlValueAccessorMixin } from 'ngx-tethys/core';\nimport { useHostRenderer } from '@tethys/cdk/dom';\nimport { NgStyle } from '@angular/common';\n\nexport type ThySliderType = 'primary' | 'success' | 'info' | 'warning' | 'danger';\n\nexport type ThySliderSize = 'sm' | 'md' | 'lg';\n\n/**\n * 滑动输入条组件\n * @name thy-slider\n * @order 10\n */\n@Component({\n selector: 'thy-slider',\n templateUrl: './slider.component.html',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ThySlider),\n multi: true\n }\n ],\n host: {\n '[attr.tabindex]': `tabIndex`\n },\n imports: [NgStyle]\n})\nexport class ThySlider\n extends TabIndexDisabledControlValueAccessorMixin\n implements OnInit, AfterViewInit, OnDestroy, OnChanges, ControlValueAccessor\n{\n private cdr = inject(ChangeDetectorRef);\n private ngZone = inject(NgZone);\n private ref = inject(ElementRef);\n\n /**\n * 是否切换为纵轴模式\n */\n @HostBinding('class.slider-vertical')\n @Input({ transform: coerceBooleanProperty })\n thyVertical = false;\n\n /**\n * 是否禁用\n */\n @HostBinding('class.slider-disabled')\n @Input({ transform: coerceBooleanProperty })\n override set thyDisabled(value: boolean) {\n this.disabled = value;\n this.toggleDisabled();\n }\n override get thyDisabled(): boolean {\n return this.disabled;\n }\n\n disabled = false;\n\n @HostBinding('class.thy-slider') _thySlider = true;\n\n @HostBinding('class.cursor-pointer') _pointer = true;\n\n @ViewChild('sliderRail', { static: true }) sliderRail: ElementRef;\n\n @ViewChild('sliderTrack', { static: true }) sliderTrack: ElementRef;\n\n @ViewChild('sliderPointer', { static: true }) sliderPointer: ElementRef;\n\n /**\n * 最大值\n */\n @Input({ transform: numberAttribute }) thyMax = 100;\n\n /**\n * 最小值\n */\n @Input({ transform: numberAttribute }) thyMin = 0;\n\n /**\n * 步长,需要被 thyMax - thyMin 的差值整除。\n */\n @Input({ transform: numberAttribute }) thyStep = 1;\n\n /**\n * 切换主题类型\n * @type primary | success | info | warning | danger\n * @default success\n */\n @Input() set thyType(type: ThySliderType) {\n if (type) {\n if (this.typeClassName) {\n this.hostRenderer.removeClass(this.typeClassName);\n }\n this.hostRenderer.addClass(type ? `thy-slider-${type}` : '');\n this.typeClassName = `thy-slider-${type}`;\n }\n }\n\n /**\n * 通过变量设置颜色\n */\n @Input() thyColor: string;\n\n /**\n * 滑动输入条大小\n * @type sm | md | lg\n * @default sm\n */\n @Input() set thySize(size: ThySliderSize) {\n if (size) {\n if (this.sizeClassName) {\n this.hostRenderer.removeClass(this.sizeClassName);\n }\n this.hostRenderer.addClass(size ? `thy-slider-${size}` : '');\n this.sizeClassName = `thy-slider-${size}`;\n }\n }\n\n /**\n * 移动结束后的回调,参数为当前值\n */\n @Output() thyAfterChange = new EventEmitter<{ value: number }>();\n\n public value: number;\n\n private typeClassName = '';\n\n private sizeClassName = '';\n\n private dragStartListener: Observable<number>;\n\n private dragMoveListener: Observable<number>;\n\n private dragEndListener: Observable<Event>;\n\n private dragStartHandler: Subscription | null;\n\n private dragMoveHandler: Subscription | null;\n\n private dragEndHandler: Subscription | null;\n\n private hostRenderer = useHostRenderer();\n\n private onChangeCallback = (v: any) => {};\n\n private onTouchedCallback = (v: any) => {};\n\n constructor() {\n super();\n }\n\n ngOnInit() {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n verifyMinAndMax(this);\n verifyStepValues(this);\n }\n\n this.toggleDisabled();\n if (this.value === null || this.value === undefined) {\n this.setValue(this.ensureValueInRange(null));\n }\n }\n\n ngAfterViewInit() {\n this.registerMouseEventsListeners();\n this.toggleDisabled();\n }\n\n writeValue(newValue: number) {\n this.setValue(this.ensureValueInRange(newValue));\n }\n\n registerOnChange(fn: any) {\n this.onChangeCallback = fn;\n }\n\n registerOnTouched(fn: any) {\n this.onTouchedCallback = fn;\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n if (changes.hasOwnProperty('thyMin') || changes.hasOwnProperty('thyMax') || changes.hasOwnProperty('thyStep')) {\n verifyMinAndMax(this);\n verifyStepValues(this);\n }\n }\n }\n\n ngOnDestroy() {\n this.unsubscribeMouseListeners();\n }\n\n private toggleDisabled() {\n if (this.thyDisabled) {\n this.unsubscribeMouseListeners();\n } else {\n this.subscribeMouseListeners(['start']);\n }\n }\n\n private setValue(value: number) {\n if (this.value !== value) {\n this.value = value;\n this.updateTrackAndPointer();\n }\n this.onChangeCallback(this.value);\n }\n\n private ensureValueInRange(value: number): number {\n if (!this.valueMustBeValid(value)) {\n return this.thyMin;\n }\n return clamp(value, this.thyMin, this.thyMax);\n }\n\n private valueMustBeValid(value: number): boolean {\n return !isNaN(typeof value !== 'number' ? parseFloat(value) : value);\n }\n\n private updateTrackAndPointer() {\n const offset = this.valueToOffset(this.value);\n this.updateStyle(offset / 100);\n this.cdr.markForCheck();\n }\n\n private valueToOffset(value: number): number {\n return ((value - this.thyMin) * 100) / (this.thyMax - this.thyMin);\n }\n\n private updateStyle(offsetPercentage: number) {\n const percentage = Math.min(1, Math.max(0, offsetPercentage));\n const orientFields: string[] = this.thyVertical ? ['height', 'bottom'] : ['width', 'left'];\n this.sliderTrack.nativeElement.style[orientFields[0]] = `${percentage * 100}%`;\n this.sliderPointer.nativeElement.style[orientFields[1]] = `${percentage * 100}%`;\n }\n\n private unsubscribeMouseListeners(actions: string[] = ['start', 'move', 'end']) {\n if (actions.includes('start') && this.dragStartHandler) {\n this.dragStartHandler.unsubscribe();\n this.dragStartHandler = null;\n }\n if (actions.includes('move') && this.dragMoveHandler) {\n this.dragMoveHandler.unsubscribe();\n this.dragMoveHandler = null;\n }\n if (actions.includes('end') && this.dragEndHandler) {\n this.dragEndHandler.unsubscribe();\n this.dragEndHandler = null;\n }\n }\n\n private subscribeMouseListeners(actions: string[] = ['start', 'move', 'end']) {\n if (actions.includes('start') && this.dragStartListener && !this.dragStartHandler) {\n this.dragStartHandler = this.dragStartListener.subscribe(this.mouseStartMoving.bind(this));\n }\n\n if (actions.includes('move') && this.dragMoveListener && !this.dragMoveHandler) {\n this.dragMoveHandler = this.dragMoveListener.subscribe(this.mouseMoving.bind(this));\n }\n\n if (actions.includes('end') && this.dragEndListener && !this.dragEndHandler) {\n this.dragEndHandler = this.dragEndListener.subscribe(this.mouseStopMoving.bind(this));\n }\n }\n\n private mouseStartMoving(value: number) {\n this.pointerController(true);\n this.setValue(value);\n }\n\n private mouseMoving(value: number) {\n this.setValue(this.ensureValueInRange(value));\n this.cdr.markForCheck();\n }\n\n private mouseStopMoving(): void {\n this.pointerController(false);\n this.cdr.markForCheck();\n this.thyAfterChange.emit({ value: this.value });\n }\n\n private pointerController(movable: boolean) {\n if (movable) {\n this.subscribeMouseListeners(['move', 'end']);\n } else {\n this.unsubscribeMouseListeners(['move', 'end']);\n }\n }\n private registerMouseEventsListeners() {\n const orientField = this.thyVertical ? 'pageY' : 'pageX';\n\n this.dragStartListener = this.ngZone.runOutsideAngular(() => {\n return fromEvent(this.ref.nativeElement, 'mousedown').pipe(\n pluck(orientField),\n map((position: number, index) => this.mousePositionToAdaptiveValue(position))\n );\n });\n\n this.dragEndListener = this.ngZone.runOutsideAngular(() => {\n return fromEvent(document, 'mouseup');\n });\n\n this.dragMoveListener = this.ngZone.runOutsideAngular(() => {\n return fromEvent(document, 'mousemove').pipe(\n tap((e: Event) => {\n e.stopPropagation();\n e.preventDefault();\n }),\n pluck(orientField),\n distinctUntilChanged(),\n map((position: number) => this.mousePositionToAdaptiveValue(position)),\n distinctUntilChanged(),\n takeUntil(this.dragEndListener)\n );\n });\n }\n\n private mousePositionToAdaptiveValue(position: number): number {\n const sliderStartPosition = this.getSliderPagePosition();\n const sliderLength = this.getRailLength();\n if (!sliderLength) {\n return this.value;\n }\n const ratio = this.convertPointerPositionToRatio(position, sliderStartPosition, sliderLength);\n const value = this.ratioToValue(ratio);\n return parseFloat(value.toFixed(this.getDecimals(this.thyStep)));\n }\n\n private getSliderPagePosition(): number {\n const rect = this.ref.nativeElement.getBoundingClientRect();\n const window = this.ref.nativeElement.ownerDocument.defaultView;\n const orientFields: string[] = this.thyVertical ? ['bottom', 'pageYOffset'] : ['left', 'pageXOffset'];\n return rect[orientFields[0]] + window[orientFields[1]];\n }\n\n private getRailLength() {\n const orientFiled = this.thyVertical ? 'clientHeight' : 'clientWidth';\n\n return this.sliderRail.nativeElement[orientFiled];\n }\n\n private convertPointerPositionToRatio(pointerPosition: number, startPosition: number, totalLength: number) {\n if (this.thyVertical) {\n return clamp((startPosition - pointerPosition) / totalLength, 0, 1);\n }\n return clamp((pointerPosition - startPosition) / totalLength, 0, 1);\n }\n\n private ratioToValue(ratio: number) {\n let value = (this.thyMax - this.thyMin) * ratio + this.thyMin;\n const step = this.thyStep;\n if (ratio === 0) {\n value = this.thyMin;\n } else if (ratio === 1) {\n value = this.thyMax;\n } else {\n value = Math.round(value / step) * step;\n }\n return clamp(value, this.thyMin, this.thyMax);\n }\n\n private getDecimals(value: number): number {\n const valueString = value.toString();\n const integerLength = valueString.indexOf('.') + 1;\n return integerLength >= 0 ? valueString.length - integerLength : 0;\n }\n}\n\n// Note: keep `verifyMinAndMax` and `verifyStepValues` as separate functions (not as class properties)\n// so they're tree-shakable in production mode.\n\nfunction verifyMinAndMax(ctx: ThySlider): void | never {\n if (ctx.thyMin >= ctx.thyMax) {\n throw new Error('min value must less than max value.');\n }\n}\n\nfunction verifyStepValues(ctx: ThySlider): void | never {\n if (ctx.thyStep <= 0 || !ctx.thyStep) {\n throw new Error('step value must be greater than 0.');\n } else if (Number.isInteger(ctx.thyStep) && (ctx.thyMax - ctx.thyMin) % ctx.thyStep) {\n throw new Error('(max - min) must be divisible by step.');\n }\n}\n","<div class=\"thy-slider-rail\" #sliderRail>\n <div class=\"thy-slider-track\" #sliderTrack [ngStyle]=\"{ 'background-color': thyColor }\"></div>\n <div class=\"thy-slider-pointer\" #sliderPointer [ngStyle]=\"{ 'border-color': thyColor }\"></div>\n</div>\n","import { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { CommonModule } from '@angular/common';\nimport { ThySlider } from './slider.component';\n\n@NgModule({\n imports: [CommonModule, FormsModule, ThySlider],\n exports: [ThySlider],\n providers: []\n})\nexport class ThySliderModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ngx-tethys-slider.mjs","sources":["../../../src/slider/slider.component.ts","../../../src/slider/slider.component.html","../../../src/slider/slider.module.ts","../../../src/slider/ngx-tethys-slider.ts"],"sourcesContent":["import { NgStyle } from '@angular/common';\nimport {\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n ElementRef,\n Input,\n NgZone,\n OnChanges,\n OnDestroy,\n OnInit,\n SimpleChanges,\n WritableSignal,\n effect,\n forwardRef,\n inject,\n input,\n numberAttribute,\n output,\n signal,\n viewChild\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { useHostRenderer } from '@tethys/cdk/dom';\nimport { TabIndexDisabledControlValueAccessorMixin } from 'ngx-tethys/core';\nimport { clamp, coerceBooleanProperty } from 'ngx-tethys/util';\nimport { Observable, Subscription, fromEvent } from 'rxjs';\nimport { distinctUntilChanged, map, pluck, takeUntil, tap } from 'rxjs/operators';\n\nexport type ThySliderType = 'primary' | 'success' | 'info' | 'warning' | 'danger';\n\nexport type ThySliderSize = 'sm' | 'md' | 'lg';\n\n/**\n * 滑动输入条组件\n * @name thy-slider\n * @order 10\n */\n@Component({\n selector: 'thy-slider',\n templateUrl: './slider.component.html',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ThySlider),\n multi: true\n }\n ],\n host: {\n '[attr.tabindex]': `tabIndex`,\n '[class.slider-vertical]': 'thyVertical()',\n '[class.slider-disabled]': '!!disabled',\n '[class.thy-slider]': 'true',\n '[class.cursor-pointer]': 'true'\n },\n imports: [NgStyle]\n})\nexport class ThySlider\n extends TabIndexDisabledControlValueAccessorMixin\n implements OnInit, AfterViewInit, OnDestroy, OnChanges, ControlValueAccessor\n{\n private cdr = inject(ChangeDetectorRef);\n private ngZone = inject(NgZone);\n private ref = inject(ElementRef);\n\n /**\n * 是否切换为纵轴模式\n */\n readonly thyVertical = input(false, { transform: coerceBooleanProperty });\n\n /**\n * 是否禁用\n */\n @Input({ transform: coerceBooleanProperty })\n override set thyDisabled(value: boolean) {\n this.disabled = value;\n this.toggleDisabled();\n }\n override get thyDisabled(): boolean {\n return this.disabled;\n }\n\n disabled = false;\n\n readonly sliderRail = viewChild<ElementRef>('sliderRail');\n\n readonly sliderTrack = viewChild<ElementRef>('sliderTrack');\n\n readonly sliderPointer = viewChild<ElementRef>('sliderPointer');\n\n private typeClassName: WritableSignal<string> = signal('');\n\n private sizeClassName: WritableSignal<string> = signal('');\n\n /**\n * 最大值\n */\n readonly thyMax = input(100, { transform: numberAttribute });\n\n /**\n * 最小值\n */\n readonly thyMin = input(0, { transform: numberAttribute });\n\n /**\n * 步长,需要被 thyMax - thyMin 的差值整除。\n */\n readonly thyStep = input(1, { transform: numberAttribute });\n\n /**\n * 切换主题类型\n * @type primary | success | info | warning | danger\n */\n readonly thyType = input<ThySliderType>('success');\n\n /**\n * 通过变量设置颜色\n */\n readonly thyColor = input<string>();\n\n /**\n * 滑动输入条大小\n * @type sm | md | lg\n */\n readonly thySize = input<ThySliderSize>('sm');\n\n /**\n * 移动结束后的回调,参数为当前值\n */\n readonly thyAfterChange = output<{ value: number }>();\n\n public value: number;\n\n private dragStartListener: Observable<number>;\n\n private dragMoveListener: Observable<number>;\n\n private dragEndListener: Observable<Event>;\n\n private dragStartHandler: Subscription | null;\n\n private dragMoveHandler: Subscription | null;\n\n private dragEndHandler: Subscription | null;\n\n private hostRenderer = useHostRenderer();\n\n private onChangeCallback = (v: any) => {};\n\n private onTouchedCallback = (v: any) => {};\n\n constructor() {\n super();\n effect(() => {\n if (this.thyType()) {\n const typeName = `thy-slider-${this.thyType() || 'success'}`;\n this.typeClassName() && this.hostRenderer.removeClass(this.typeClassName());\n this.hostRenderer.addClass(typeName);\n this.typeClassName.set(typeName);\n }\n });\n\n effect(() => {\n if (this.thySize()) {\n const sizeName = `thy-slider-${this.thySize() || 'sm'}`;\n this.sizeClassName() && this.hostRenderer.removeClass(this.sizeClassName());\n this.hostRenderer.addClass(sizeName);\n this.sizeClassName.set(sizeName);\n }\n });\n }\n\n ngOnInit() {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n verifyMinAndMax(this);\n verifyStepValues(this);\n }\n\n this.toggleDisabled();\n if (this.value === null || this.value === undefined) {\n this.setValue(this.ensureValueInRange(null));\n }\n }\n\n ngAfterViewInit() {\n this.registerMouseEventsListeners();\n this.toggleDisabled();\n }\n\n writeValue(newValue: number) {\n this.setValue(this.ensureValueInRange(newValue));\n }\n\n registerOnChange(fn: any) {\n this.onChangeCallback = fn;\n }\n\n registerOnTouched(fn: any) {\n this.onTouchedCallback = fn;\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n if (changes.hasOwnProperty('thyMin') || changes.hasOwnProperty('thyMax') || changes.hasOwnProperty('thyStep')) {\n verifyMinAndMax(this);\n verifyStepValues(this);\n }\n }\n }\n\n ngOnDestroy() {\n this.unsubscribeMouseListeners();\n }\n\n private toggleDisabled() {\n if (this.thyDisabled) {\n this.unsubscribeMouseListeners();\n } else {\n this.subscribeMouseListeners(['start']);\n }\n }\n\n private setValue(value: number) {\n if (this.value !== value) {\n this.value = value;\n this.updateTrackAndPointer();\n }\n this.onChangeCallback(this.value);\n }\n\n private ensureValueInRange(value: number): number {\n if (!this.valueMustBeValid(value)) {\n return this.thyMin();\n }\n return clamp(value, this.thyMin(), this.thyMax());\n }\n\n private valueMustBeValid(value: number): boolean {\n return !isNaN(typeof value !== 'number' ? parseFloat(value) : value);\n }\n\n private updateTrackAndPointer() {\n const offset = this.valueToOffset(this.value);\n this.updateStyle(offset / 100);\n this.cdr.markForCheck();\n }\n\n private valueToOffset(value: number): number {\n return ((value - this.thyMin()) * 100) / (this.thyMax() - this.thyMin());\n }\n\n private updateStyle(offsetPercentage: number) {\n const percentage = Math.min(1, Math.max(0, offsetPercentage));\n const orientFields: string[] = this.thyVertical() ? ['height', 'bottom'] : ['width', 'left'];\n this.sliderTrack().nativeElement.style[orientFields[0]] = `${percentage * 100}%`;\n this.sliderPointer().nativeElement.style[orientFields[1]] = `${percentage * 100}%`;\n }\n\n private unsubscribeMouseListeners(actions: string[] = ['start', 'move', 'end']) {\n if (actions.includes('start') && this.dragStartHandler) {\n this.dragStartHandler.unsubscribe();\n this.dragStartHandler = null;\n }\n if (actions.includes('move') && this.dragMoveHandler) {\n this.dragMoveHandler.unsubscribe();\n this.dragMoveHandler = null;\n }\n if (actions.includes('end') && this.dragEndHandler) {\n this.dragEndHandler.unsubscribe();\n this.dragEndHandler = null;\n }\n }\n\n private subscribeMouseListeners(actions: string[] = ['start', 'move', 'end']) {\n if (actions.includes('start') && this.dragStartListener && !this.dragStartHandler) {\n this.dragStartHandler = this.dragStartListener.subscribe(this.mouseStartMoving.bind(this));\n }\n\n if (actions.includes('move') && this.dragMoveListener && !this.dragMoveHandler) {\n this.dragMoveHandler = this.dragMoveListener.subscribe(this.mouseMoving.bind(this));\n }\n\n if (actions.includes('end') && this.dragEndListener && !this.dragEndHandler) {\n this.dragEndHandler = this.dragEndListener.subscribe(this.mouseStopMoving.bind(this));\n }\n }\n\n private mouseStartMoving(value: number) {\n this.pointerController(true);\n this.setValue(value);\n }\n\n private mouseMoving(value: number) {\n this.setValue(this.ensureValueInRange(value));\n this.cdr.markForCheck();\n }\n\n private mouseStopMoving(): void {\n this.pointerController(false);\n this.cdr.markForCheck();\n this.thyAfterChange.emit({ value: this.value });\n }\n\n private pointerController(movable: boolean) {\n if (movable) {\n this.subscribeMouseListeners(['move', 'end']);\n } else {\n this.unsubscribeMouseListeners(['move', 'end']);\n }\n }\n private registerMouseEventsListeners() {\n const orientField = this.thyVertical() ? 'pageY' : 'pageX';\n\n this.dragStartListener = this.ngZone.runOutsideAngular(() => {\n return fromEvent(this.ref.nativeElement, 'mousedown').pipe(\n pluck(orientField),\n map((position: number, index) => this.mousePositionToAdaptiveValue(position))\n );\n });\n\n this.dragEndListener = this.ngZone.runOutsideAngular(() => {\n return fromEvent(document, 'mouseup');\n });\n\n this.dragMoveListener = this.ngZone.runOutsideAngular(() => {\n return fromEvent(document, 'mousemove').pipe(\n tap((e: Event) => {\n e.stopPropagation();\n e.preventDefault();\n }),\n pluck(orientField),\n distinctUntilChanged(),\n map((position: number) => this.mousePositionToAdaptiveValue(position)),\n distinctUntilChanged(),\n takeUntil(this.dragEndListener)\n );\n });\n }\n\n private mousePositionToAdaptiveValue(position: number): number {\n const sliderStartPosition = this.getSliderPagePosition();\n const sliderLength = this.getRailLength();\n if (!sliderLength) {\n return this.value;\n }\n const ratio = this.convertPointerPositionToRatio(position, sliderStartPosition, sliderLength);\n const value = this.ratioToValue(ratio);\n return parseFloat(value.toFixed(this.getDecimals(this.thyStep())));\n }\n\n private getSliderPagePosition(): number {\n const rect = this.ref.nativeElement.getBoundingClientRect();\n const window = this.ref.nativeElement.ownerDocument.defaultView;\n const orientFields: string[] = this.thyVertical() ? ['bottom', 'pageYOffset'] : ['left', 'pageXOffset'];\n return rect[orientFields[0]] + window[orientFields[1]];\n }\n\n private getRailLength() {\n const orientFiled = this.thyVertical() ? 'clientHeight' : 'clientWidth';\n\n return this.sliderRail().nativeElement[orientFiled];\n }\n\n private convertPointerPositionToRatio(pointerPosition: number, startPosition: number, totalLength: number) {\n if (this.thyVertical()) {\n return clamp((startPosition - pointerPosition) / totalLength, 0, 1);\n }\n return clamp((pointerPosition - startPosition) / totalLength, 0, 1);\n }\n\n private ratioToValue(ratio: number) {\n let value = (this.thyMax() - this.thyMin()) * ratio + this.thyMin();\n const step = this.thyStep();\n if (ratio === 0) {\n value = this.thyMin();\n } else if (ratio === 1) {\n value = this.thyMax();\n } else {\n value = Math.round(value / step) * step;\n }\n return clamp(value, this.thyMin(), this.thyMax());\n }\n\n private getDecimals(value: number): number {\n const valueString = value.toString();\n const integerLength = valueString.indexOf('.') + 1;\n return integerLength >= 0 ? valueString.length - integerLength : 0;\n }\n}\n\n// Note: keep `verifyMinAndMax` and `verifyStepValues` as separate functions (not as class properties)\n// so they're tree-shakable in production mode.\n\nfunction verifyMinAndMax(ctx: ThySlider): void | never {\n if (ctx.thyMin() >= ctx.thyMax()) {\n throw new Error('min value must less than max value.');\n }\n}\n\nfunction verifyStepValues(ctx: ThySlider): void | never {\n const thyStep = ctx.thyStep();\n if (ctx.thyStep() <= 0 || !thyStep) {\n throw new Error('step value must be greater than 0.');\n } else if (Number.isInteger(thyStep) && (ctx.thyMax() - ctx.thyMin()) % thyStep) {\n throw new Error('(max - min) must be divisible by step.');\n }\n}\n","<div class=\"thy-slider-rail\" #sliderRail>\n <div class=\"thy-slider-track\" #sliderTrack [ngStyle]=\"{ 'background-color': thyColor() }\"></div>\n <div class=\"thy-slider-pointer\" #sliderPointer [ngStyle]=\"{ 'border-color': thyColor() }\"></div>\n</div>\n","import { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { CommonModule } from '@angular/common';\nimport { ThySlider } from './slider.component';\n\n@NgModule({\n imports: [CommonModule, FormsModule, ThySlider],\n exports: [ThySlider],\n providers: []\n})\nexport class ThySliderModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|