ngx-tethys 19.1.13 → 20.0.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 +18 -0
- package/action/index.d.ts +107 -3
- package/affix/index.d.ts +65 -2
- package/alert/index.d.ts +74 -3
- package/anchor/index.d.ts +118 -3
- package/arrow-switcher/index.d.ts +79 -2
- package/autocomplete/index.d.ts +280 -7
- package/avatar/index.d.ts +195 -5
- package/back-top/index.d.ts +68 -2
- package/badge/index.d.ts +87 -2
- package/breadcrumb/index.d.ts +71 -3
- package/button/index.d.ts +156 -4
- package/calendar/index.d.ts +161 -4
- package/card/index.d.ts +100 -4
- package/carousel/index.d.ts +210 -4
- package/cascader/index.d.ts +471 -5
- package/checkbox/index.d.ts +27 -2
- package/collapse/index.d.ts +108 -3
- package/color-picker/index.d.ts +494 -13
- package/comment/index.d.ts +53 -4
- package/copy/index.d.ts +59 -2
- package/core/index.d.ts +680 -15
- package/date-picker/index.d.ts +1148 -36
- package/date-range/index.d.ts +158 -4
- package/dialog/index.d.ts +393 -11
- package/divider/index.d.ts +60 -2
- package/dot/index.d.ts +56 -2
- package/drag-drop/index.d.ts +281 -9
- package/dropdown/index.d.ts +282 -6
- package/empty/index.d.ts +116 -3
- package/fesm2022/ngx-tethys-action.mjs +26 -26
- package/fesm2022/ngx-tethys-action.mjs.map +1 -1
- package/fesm2022/ngx-tethys-affix.mjs +14 -14
- package/fesm2022/ngx-tethys-affix.mjs.map +1 -1
- package/fesm2022/ngx-tethys-alert.mjs +19 -19
- package/fesm2022/ngx-tethys-alert.mjs.map +1 -1
- package/fesm2022/ngx-tethys-anchor.mjs +25 -25
- package/fesm2022/ngx-tethys-anchor.mjs.map +1 -1
- package/fesm2022/ngx-tethys-arrow-switcher.mjs +20 -20
- package/fesm2022/ngx-tethys-arrow-switcher.mjs.map +1 -1
- package/fesm2022/ngx-tethys-autocomplete.mjs +41 -36
- package/fesm2022/ngx-tethys-autocomplete.mjs.map +1 -1
- package/fesm2022/ngx-tethys-avatar.mjs +45 -45
- package/fesm2022/ngx-tethys-avatar.mjs.map +1 -1
- package/fesm2022/ngx-tethys-back-top.mjs +15 -15
- package/fesm2022/ngx-tethys-back-top.mjs.map +1 -1
- package/fesm2022/ngx-tethys-badge.mjs +27 -27
- package/fesm2022/ngx-tethys-badge.mjs.map +1 -1
- package/fesm2022/ngx-tethys-breadcrumb.mjs +20 -20
- package/fesm2022/ngx-tethys-breadcrumb.mjs.map +1 -1
- package/fesm2022/ngx-tethys-button.mjs +57 -51
- package/fesm2022/ngx-tethys-button.mjs.map +1 -1
- package/fesm2022/ngx-tethys-calendar.mjs +29 -29
- package/fesm2022/ngx-tethys-calendar.mjs.map +1 -1
- package/fesm2022/ngx-tethys-card.mjs +28 -28
- package/fesm2022/ngx-tethys-card.mjs.map +1 -1
- package/fesm2022/ngx-tethys-carousel.mjs +29 -29
- package/fesm2022/ngx-tethys-carousel.mjs.map +1 -1
- package/fesm2022/ngx-tethys-cascader.mjs +93 -87
- package/fesm2022/ngx-tethys-cascader.mjs.map +1 -1
- package/fesm2022/ngx-tethys-checkbox.mjs +9 -9
- package/fesm2022/ngx-tethys-checkbox.mjs.map +1 -1
- package/fesm2022/ngx-tethys-collapse.mjs +24 -24
- package/fesm2022/ngx-tethys-collapse.mjs.map +1 -1
- package/fesm2022/ngx-tethys-color-picker.mjs +75 -73
- package/fesm2022/ngx-tethys-color-picker.mjs.map +1 -1
- package/fesm2022/ngx-tethys-comment.mjs +17 -17
- package/fesm2022/ngx-tethys-comment.mjs.map +1 -1
- package/fesm2022/ngx-tethys-copy.mjs +15 -15
- package/fesm2022/ngx-tethys-copy.mjs.map +1 -1
- package/fesm2022/ngx-tethys-core.mjs +38 -38
- package/fesm2022/ngx-tethys-core.mjs.map +1 -1
- package/fesm2022/ngx-tethys-date-picker.mjs +323 -305
- package/fesm2022/ngx-tethys-date-picker.mjs.map +1 -1
- package/fesm2022/ngx-tethys-date-range.mjs +23 -23
- package/fesm2022/ngx-tethys-date-range.mjs.map +1 -1
- package/fesm2022/ngx-tethys-dialog.mjs +56 -54
- package/fesm2022/ngx-tethys-dialog.mjs.map +1 -1
- package/fesm2022/ngx-tethys-divider.mjs +16 -16
- package/fesm2022/ngx-tethys-divider.mjs.map +1 -1
- package/fesm2022/ngx-tethys-dot.mjs +20 -20
- package/fesm2022/ngx-tethys-dot.mjs.map +1 -1
- package/fesm2022/ngx-tethys-drag-drop.mjs +20 -21
- package/fesm2022/ngx-tethys-drag-drop.mjs.map +1 -1
- package/fesm2022/ngx-tethys-dropdown.mjs +85 -83
- package/fesm2022/ngx-tethys-dropdown.mjs.map +1 -1
- package/fesm2022/ngx-tethys-empty.mjs +28 -28
- package/fesm2022/ngx-tethys-empty.mjs.map +1 -1
- package/fesm2022/ngx-tethys-flexible-text.mjs +13 -13
- package/fesm2022/ngx-tethys-flexible-text.mjs.map +1 -1
- package/fesm2022/ngx-tethys-form.mjs +99 -95
- package/fesm2022/ngx-tethys-form.mjs.map +1 -1
- package/fesm2022/ngx-tethys-fullscreen.mjs +22 -21
- package/fesm2022/ngx-tethys-fullscreen.mjs.map +1 -1
- package/fesm2022/ngx-tethys-grid.mjs +60 -60
- package/fesm2022/ngx-tethys-grid.mjs.map +1 -1
- package/fesm2022/ngx-tethys-guider.mjs +20 -20
- package/fesm2022/ngx-tethys-guider.mjs.map +1 -1
- package/fesm2022/ngx-tethys-i18n.mjs +4 -4
- package/fesm2022/ngx-tethys-i18n.mjs.map +1 -1
- package/fesm2022/ngx-tethys-icon.mjs +20 -20
- package/fesm2022/ngx-tethys-icon.mjs.map +1 -1
- package/fesm2022/ngx-tethys-image.mjs +26 -26
- package/fesm2022/ngx-tethys-image.mjs.map +1 -1
- package/fesm2022/ngx-tethys-input-number.mjs +28 -24
- package/fesm2022/ngx-tethys-input-number.mjs.map +1 -1
- package/fesm2022/ngx-tethys-input.mjs +72 -71
- package/fesm2022/ngx-tethys-input.mjs.map +1 -1
- package/fesm2022/ngx-tethys-layout.mjs +128 -118
- package/fesm2022/ngx-tethys-layout.mjs.map +1 -1
- package/fesm2022/ngx-tethys-list.mjs +37 -37
- package/fesm2022/ngx-tethys-list.mjs.map +1 -1
- package/fesm2022/ngx-tethys-loading.mjs +11 -11
- package/fesm2022/ngx-tethys-loading.mjs.map +1 -1
- package/fesm2022/ngx-tethys-mention.mjs +18 -18
- package/fesm2022/ngx-tethys-mention.mjs.map +1 -1
- package/fesm2022/ngx-tethys-menu.mjs +57 -57
- package/fesm2022/ngx-tethys-menu.mjs.map +1 -1
- package/fesm2022/ngx-tethys-message.mjs +43 -40
- package/fesm2022/ngx-tethys-message.mjs.map +1 -1
- package/fesm2022/ngx-tethys-nav.mjs +58 -58
- package/fesm2022/ngx-tethys-nav.mjs.map +1 -1
- package/fesm2022/ngx-tethys-notify.mjs +35 -32
- package/fesm2022/ngx-tethys-notify.mjs.map +1 -1
- package/fesm2022/ngx-tethys-pagination.mjs +38 -38
- package/fesm2022/ngx-tethys-pagination.mjs.map +1 -1
- package/fesm2022/ngx-tethys-popover.mjs +46 -38
- package/fesm2022/ngx-tethys-popover.mjs.map +1 -1
- package/fesm2022/ngx-tethys-progress.mjs +64 -57
- package/fesm2022/ngx-tethys-progress.mjs.map +1 -1
- package/fesm2022/ngx-tethys-property-operation.mjs +11 -11
- package/fesm2022/ngx-tethys-property-operation.mjs.map +1 -1
- package/fesm2022/ngx-tethys-property.mjs +29 -29
- package/fesm2022/ngx-tethys-property.mjs.map +1 -1
- package/fesm2022/ngx-tethys-radio.mjs +23 -23
- package/fesm2022/ngx-tethys-radio.mjs.map +1 -1
- package/fesm2022/ngx-tethys-rate.mjs +28 -28
- package/fesm2022/ngx-tethys-rate.mjs.map +1 -1
- package/fesm2022/ngx-tethys-resizable.mjs +38 -38
- package/fesm2022/ngx-tethys-resizable.mjs.map +1 -1
- package/fesm2022/ngx-tethys-result.mjs +16 -16
- package/fesm2022/ngx-tethys-result.mjs.map +1 -1
- package/fesm2022/ngx-tethys-segment.mjs +23 -23
- package/fesm2022/ngx-tethys-segment.mjs.map +1 -1
- package/fesm2022/ngx-tethys-select.mjs +76 -64
- package/fesm2022/ngx-tethys-select.mjs.map +1 -1
- package/fesm2022/ngx-tethys-shared.mjs +163 -155
- package/fesm2022/ngx-tethys-shared.mjs.map +1 -1
- package/fesm2022/ngx-tethys-skeleton.mjs +84 -84
- package/fesm2022/ngx-tethys-skeleton.mjs.map +1 -1
- package/fesm2022/ngx-tethys-slide.mjs +50 -46
- package/fesm2022/ngx-tethys-slide.mjs.map +1 -1
- package/fesm2022/ngx-tethys-slider.mjs +21 -21
- package/fesm2022/ngx-tethys-slider.mjs.map +1 -1
- package/fesm2022/ngx-tethys-space.mjs +16 -16
- package/fesm2022/ngx-tethys-space.mjs.map +1 -1
- package/fesm2022/ngx-tethys-statistic.mjs +29 -29
- package/fesm2022/ngx-tethys-statistic.mjs.map +1 -1
- package/fesm2022/ngx-tethys-stepper.mjs +37 -37
- package/fesm2022/ngx-tethys-stepper.mjs.map +1 -1
- package/fesm2022/ngx-tethys-strength.mjs +22 -22
- package/fesm2022/ngx-tethys-strength.mjs.map +1 -1
- package/fesm2022/ngx-tethys-switch.mjs +19 -19
- package/fesm2022/ngx-tethys-switch.mjs.map +1 -1
- package/fesm2022/ngx-tethys-table.mjs +22 -22
- package/fesm2022/ngx-tethys-table.mjs.map +1 -1
- package/fesm2022/ngx-tethys-tabs.mjs +31 -31
- package/fesm2022/ngx-tethys-tabs.mjs.map +1 -1
- package/fesm2022/ngx-tethys-tag.mjs +18 -18
- package/fesm2022/ngx-tethys-tag.mjs.map +1 -1
- package/fesm2022/ngx-tethys-testing.mjs.map +1 -1
- package/fesm2022/ngx-tethys-time-picker.mjs +75 -74
- package/fesm2022/ngx-tethys-time-picker.mjs.map +1 -1
- package/fesm2022/ngx-tethys-timeline.mjs +28 -28
- package/fesm2022/ngx-tethys-timeline.mjs.map +1 -1
- package/fesm2022/ngx-tethys-tooltip.mjs +28 -28
- package/fesm2022/ngx-tethys-tooltip.mjs.map +1 -1
- package/fesm2022/ngx-tethys-transfer.mjs +36 -36
- package/fesm2022/ngx-tethys-transfer.mjs.map +1 -1
- package/fesm2022/ngx-tethys-tree-select.mjs +58 -58
- package/fesm2022/ngx-tethys-tree-select.mjs.map +1 -1
- package/fesm2022/ngx-tethys-tree.mjs +77 -72
- package/fesm2022/ngx-tethys-tree.mjs.map +1 -1
- package/fesm2022/ngx-tethys-typography.mjs +19 -19
- package/fesm2022/ngx-tethys-typography.mjs.map +1 -1
- package/fesm2022/ngx-tethys-upload.mjs +68 -68
- package/fesm2022/ngx-tethys-upload.mjs.map +1 -1
- package/fesm2022/ngx-tethys-util.mjs.map +1 -1
- package/fesm2022/ngx-tethys-vote.mjs +25 -25
- package/fesm2022/ngx-tethys-vote.mjs.map +1 -1
- package/fesm2022/ngx-tethys-watermark.mjs +12 -12
- 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/flexible-text/index.d.ts +64 -2
- package/form/index.d.ts +405 -11
- package/fullscreen/index.d.ts +117 -6
- package/grid/index.d.ts +262 -7
- package/guider/index.d.ts +304 -8
- package/i18n/index.d.ts +1053 -6
- package/icon/index.d.ts +145 -4
- package/image/index.d.ts +263 -8
- package/index.d.ts +5 -5
- package/input/index.d.ts +281 -6
- package/input-number/index.d.ts +133 -2
- package/layout/index.d.ts +362 -10
- package/list/index.d.ts +182 -6
- package/loading/index.d.ts +34 -2
- package/mention/index.d.ts +147 -4
- package/menu/index.d.ts +191 -8
- package/message/index.d.ts +203 -8
- package/nav/index.d.ts +269 -6
- package/notify/index.d.ts +158 -7
- package/package.json +13 -13
- package/pagination/index.d.ts +248 -5
- package/popover/index.d.ts +339 -9
- package/progress/index.d.ts +154 -5
- package/property/index.d.ts +118 -3
- package/property-operation/index.d.ts +114 -3
- package/radio/index.d.ts +102 -4
- package/rate/index.d.ts +99 -3
- package/resizable/index.d.ts +197 -7
- package/result/index.d.ts +63 -2
- package/schematics/ng-update/migration-collection.json +4 -4
- package/schematics/ng-update/{update-19 → update-20}/index.js +1 -1
- package/schematics/ng-update/{update-19 → update-20}/index.spec.js +5 -5
- package/schematics/version.d.ts +1 -1
- package/schematics/version.js +1 -1
- package/segment/index.d.ts +119 -4
- package/select/index.d.ts +332 -4
- package/shared/index.d.ts +516 -16
- package/skeleton/index.d.ts +301 -8
- package/slide/index.d.ts +270 -12
- package/slider/index.d.ts +117 -2
- package/space/index.d.ts +48 -2
- package/statistic/index.d.ts +124 -2
- package/stepper/index.d.ts +112 -5
- package/strength/index.d.ts +77 -2
- package/switch/index.d.ts +69 -2
- package/table/index.d.ts +670 -9
- package/tabs/index.d.ts +114 -4
- package/tag/index.d.ts +71 -3
- package/testing/index.d.ts +178 -7
- package/time-picker/index.d.ts +468 -7
- package/timeline/index.d.ts +109 -5
- package/tooltip/index.d.ts +198 -8
- package/transfer/index.d.ts +212 -4
- package/tree/index.d.ts +469 -5
- package/tree-select/index.d.ts +231 -3
- package/types/index.d.ts +22 -3
- package/typography/index.d.ts +69 -4
- package/upload/index.d.ts +253 -6
- package/util/index.d.ts +595 -14
- package/vote/index.d.ts +66 -2
- package/watermark/index.d.ts +75 -2
- package/action/action.component.d.ts +0 -76
- package/action/action.module.d.ts +0 -10
- package/action/actions.component.d.ts +0 -21
- package/affix/affix.component.d.ts +0 -54
- package/affix/affix.module.d.ts +0 -9
- package/affix/respond-events.d.ts +0 -9
- package/alert/alert.component.d.ts +0 -51
- package/alert/alert.directive.d.ts +0 -12
- package/alert/alert.module.d.ts +0 -10
- package/anchor/anchor-link.component.d.ts +0 -34
- package/anchor/anchor.component.d.ts +0 -68
- package/anchor/anchor.module.d.ts +0 -11
- package/anchor/anchor.token.d.ts +0 -9
- package/arrow-switcher/arrow-switcher.component.d.ts +0 -64
- package/arrow-switcher/module.d.ts +0 -12
- package/autocomplete/autocomplete.component.d.ts +0 -79
- package/autocomplete/autocomplete.trigger.directive.d.ts +0 -77
- package/autocomplete/module.d.ts +0 -18
- package/autocomplete/overlay/autocomplete-animations.d.ts +0 -8
- package/autocomplete/overlay/autocomplete-container.component.d.ts +0 -33
- package/autocomplete/overlay/autocomplete-ref.d.ts +0 -14
- package/autocomplete/overlay/autocomplete.config.d.ts +0 -36
- package/autocomplete/overlay/autocomplete.options.d.ts +0 -2
- package/autocomplete/overlay/autocomplete.service.d.ts +0 -32
- package/avatar/avatar-list/avatar-list.component.d.ts +0 -41
- package/avatar/avatar.component.d.ts +0 -95
- package/avatar/avatar.module.d.ts +0 -11
- package/avatar/avatar.pipe.d.ts +0 -30
- package/avatar/avatar.service.d.ts +0 -21
- package/back-top/back-top.component.d.ts +0 -57
- package/back-top/back-top.module.d.ts +0 -9
- package/badge/badge.component.d.ts +0 -75
- package/badge/badge.module.d.ts +0 -9
- package/breadcrumb/breadcrumb-item.component.d.ts +0 -15
- package/breadcrumb/breadcrumb.component.d.ts +0 -44
- package/breadcrumb/module.d.ts +0 -12
- package/button/button-group.component.d.ts +0 -32
- package/button/button-icon.component.d.ts +0 -51
- package/button/button.component.d.ts +0 -61
- package/button/button.module.d.ts +0 -11
- package/calendar/calendar-cells.d.ts +0 -17
- package/calendar/calendar-header.component.d.ts +0 -51
- package/calendar/calendar.component.d.ts +0 -78
- package/calendar/module.d.ts +0 -18
- package/card/card.component.d.ts +0 -28
- package/card/card.module.d.ts +0 -10
- package/card/content.component.d.ts +0 -21
- package/card/header.component.d.ts +0 -42
- package/carousel/carousel-item.directive.d.ts +0 -14
- package/carousel/carousel.component.d.ts +0 -112
- package/carousel/carousel.service.d.ts +0 -19
- package/carousel/carousel.token.d.ts +0 -7
- package/carousel/engine/carousel-base.d.ts +0 -27
- package/carousel/engine/carousel-fade.d.ts +0 -15
- package/carousel/engine/carousel-noop.d.ts +0 -14
- package/carousel/engine/carousel-slide.d.ts +0 -16
- package/carousel/engine/index.d.ts +0 -4
- package/carousel/module.d.ts +0 -11
- package/carousel/typings.d.ts +0 -20
- package/cascader/cascader-li.component.d.ts +0 -24
- package/cascader/cascader-search-option.component.d.ts +0 -21
- package/cascader/cascader.component.d.ts +0 -284
- package/cascader/cascader.pipe.d.ts +0 -11
- package/cascader/cascader.service.d.ts +0 -97
- package/cascader/module.d.ts +0 -19
- package/cascader/types.d.ts +0 -23
- package/checkbox/checkbox.component.d.ts +0 -16
- package/checkbox/module.d.ts +0 -9
- package/collapse/collapse-item.component.d.ts +0 -52
- package/collapse/collapse.component.d.ts +0 -29
- package/collapse/collapse.token.d.ts +0 -15
- package/collapse/module.d.ts +0 -13
- package/color-picker/color-picker-custom-panel.component.d.ts +0 -17
- package/color-picker/color-picker-panel.component.d.ts +0 -28
- package/color-picker/color-picker.component.d.ts +0 -100
- package/color-picker/constant.d.ts +0 -1
- package/color-picker/coordinates.directive.d.ts +0 -28
- package/color-picker/helpers/color.class.d.ts +0 -32
- package/color-picker/helpers/colors-table.class.d.ts +0 -154
- package/color-picker/helpers/rgba.class.d.ts +0 -20
- package/color-picker/module.d.ts +0 -22
- package/color-picker/parts/alpha/alpha.component.d.ts +0 -28
- package/color-picker/parts/hue/hue.component.d.ts +0 -26
- package/color-picker/parts/indicator/indicator.component.d.ts +0 -13
- package/color-picker/parts/inputs/inputs.component.d.ts +0 -18
- package/color-picker/parts/saturation/saturation.component.d.ts +0 -28
- package/comment/comment-actions.directive.d.ts +0 -8
- package/comment/comment-content.directive.d.ts +0 -8
- package/comment/comment.component.d.ts +0 -24
- package/comment/comment.module.d.ts +0 -13
- package/copy/copy.directive.d.ts +0 -47
- package/copy/module.d.ts +0 -9
- package/core/animation/animation-consts.d.ts +0 -22
- package/core/animation/collapse.d.ts +0 -2
- package/core/animation/fade.d.ts +0 -2
- package/core/animation/index.d.ts +0 -1
- package/core/animation/public-api.d.ts +0 -5
- package/core/animation/thumb.d.ts +0 -6
- package/core/animation/zoom.d.ts +0 -4
- package/core/behaviors/constructor.d.ts +0 -5
- package/core/behaviors/control-value-accessor.d.ts +0 -7
- package/core/behaviors/decorators.d.ts +0 -9
- package/core/behaviors/disabled.d.ts +0 -7
- package/core/behaviors/focus-control.d.ts +0 -14
- package/core/behaviors/index.d.ts +0 -10
- package/core/behaviors/initialized.d.ts +0 -6
- package/core/behaviors/loading-done.d.ts +0 -5
- package/core/behaviors/mixin.d.ts +0 -5
- package/core/behaviors/tabindex.d.ts +0 -11
- package/core/behaviors/unsubscribe.d.ts +0 -11
- package/core/click-positioner.d.ts +0 -15
- package/core/color/color.d.ts +0 -9
- package/core/color/index.d.ts +0 -1
- package/core/debounce-time.d.ts +0 -8
- package/core/event-dispatchers/index.d.ts +0 -1
- package/core/overlay/abstract-overlay-container.d.ts +0 -43
- package/core/overlay/abstract-overlay-ref.d.ts +0 -101
- package/core/overlay/abstract-overlay.config.d.ts +0 -131
- package/core/overlay/abstract-overlay.service.d.ts +0 -56
- package/core/overlay/index.d.ts +0 -9
- package/core/overlay/interface.d.ts +0 -5
- package/core/overlay/overlay-position-map.d.ts +0 -5
- package/core/overlay/overlay.directive.d.ts +0 -51
- package/core/overlay/portal-directives.d.ts +0 -14
- package/core/overlay/utils.d.ts +0 -14
- package/core/request-animation.d.ts +0 -2
- package/core/scroll-to.service.d.ts +0 -4
- package/core/scroll.d.ts +0 -22
- package/core/spacing/index.d.ts +0 -1
- package/core/spacing/spacing.d.ts +0 -2
- package/core/store/action-state.d.ts +0 -5
- package/core/store/action.d.ts +0 -4
- package/core/store/actions-stream.d.ts +0 -14
- package/core/store/index.d.ts +0 -3
- package/core/store/store.d.ts +0 -43
- package/core/store/types.d.ts +0 -12
- package/core/store/utils.d.ts +0 -2
- package/core/theme/enum.d.ts +0 -5
- package/core/theme/index.d.ts +0 -3
- package/core/theme/store.d.ts +0 -12
- package/core/theme/theme.d.ts +0 -2
- package/core/translate.d.ts +0 -8
- package/core/update-host-class.service.d.ts +0 -15
- package/date-picker/abstract-picker.component.d.ts +0 -174
- package/date-picker/abstract-picker.directive.d.ts +0 -57
- package/date-picker/base-picker.component.d.ts +0 -49
- package/date-picker/date-helper.service.d.ts +0 -20
- package/date-picker/date-picker.component.d.ts +0 -15
- package/date-picker/date-picker.config.d.ts +0 -27
- package/date-picker/date-picker.directive.d.ts +0 -13
- package/date-picker/date-picker.module.d.ts +0 -24
- package/date-picker/date-picker.service.d.ts +0 -14
- package/date-picker/inner-types.d.ts +0 -19
- package/date-picker/lib/calendar/calendar-footer.component.d.ts +0 -37
- package/date-picker/lib/calendar/calendar-header.component.d.ts +0 -44
- package/date-picker/lib/calendar/calendar-table.component.d.ts +0 -41
- package/date-picker/lib/date/date-header.component.d.ts +0 -10
- package/date-picker/lib/date/date-table-cell.component.d.ts +0 -18
- package/date-picker/lib/date/date-table.component.d.ts +0 -23
- package/date-picker/lib/date/types.d.ts +0 -41
- package/date-picker/lib/date-carousel/date-carousel.component.d.ts +0 -65
- package/date-picker/lib/decade/decade-header.component.d.ts +0 -14
- package/date-picker/lib/decade/decade-table.component.d.ts +0 -21
- package/date-picker/lib/lib-packer.module.d.ts +0 -28
- package/date-picker/lib/month/month-header.component.d.ts +0 -10
- package/date-picker/lib/month/month-table.component.d.ts +0 -22
- package/date-picker/lib/popups/date-popup.component.d.ts +0 -99
- package/date-picker/lib/popups/inner-popup.component.d.ts +0 -43
- package/date-picker/lib/quarter/quarter-table.component.d.ts +0 -21
- package/date-picker/lib/year/year-header.component.d.ts +0 -14
- package/date-picker/lib/year/year-table.component.d.ts +0 -21
- package/date-picker/month-picker.component.d.ts +0 -19
- package/date-picker/picker.component.d.ts +0 -76
- package/date-picker/picker.pipes.d.ts +0 -40
- package/date-picker/picker.util.d.ts +0 -30
- package/date-picker/picker.validators.d.ts +0 -22
- package/date-picker/quarter-picker.component.d.ts +0 -22
- package/date-picker/range-picker.component.d.ts +0 -16
- package/date-picker/range-picker.directive.d.ts +0 -14
- package/date-picker/standard-types.d.ts +0 -45
- package/date-picker/week-picker.component.d.ts +0 -15
- package/date-picker/year-picker.component.d.ts +0 -22
- package/date-range/date-range.class.d.ts +0 -29
- package/date-range/date-range.component.d.ts +0 -89
- package/date-range/module.d.ts +0 -15
- package/date-range/optional-dates/optional-dates.component.d.ts +0 -25
- package/dialog/body/dialog-body.component.d.ts +0 -18
- package/dialog/confirm/confirm.component.d.ts +0 -29
- package/dialog/confirm/token.d.ts +0 -8
- package/dialog/confirm.config.d.ts +0 -71
- package/dialog/dialog-animations.d.ts +0 -8
- package/dialog/dialog-container.component.d.ts +0 -46
- package/dialog/dialog-ref.d.ts +0 -32
- package/dialog/dialog.config.d.ts +0 -79
- package/dialog/dialog.module.d.ts +0 -20
- package/dialog/dialog.options.d.ts +0 -2
- package/dialog/dialog.service.d.ts +0 -52
- package/dialog/footer/dialog-footer.component.d.ts +0 -33
- package/dialog/header/dialog-header.component.d.ts +0 -47
- package/divider/divider.component.d.ts +0 -47
- package/divider/divider.module.d.ts +0 -10
- package/dot/dot.component.d.ts +0 -45
- package/dot/dot.module.d.ts +0 -8
- package/drag-drop/drag-content.directive.d.ts +0 -15
- package/drag-drop/drag-drop.class.d.ts +0 -36
- package/drag-drop/drag-drop.service.d.ts +0 -27
- package/drag-drop/drag-drop.token.d.ts +0 -24
- package/drag-drop/drag-handle.directive.d.ts +0 -24
- package/drag-drop/drag-ref.d.ts +0 -47
- package/drag-drop/drag.directive.d.ts +0 -39
- package/drag-drop/drop-container.directive.d.ts +0 -70
- package/drag-drop/module.d.ts +0 -14
- package/dropdown/dropdown-active.directive.d.ts +0 -27
- package/dropdown/dropdown-menu-item.directive.d.ts +0 -95
- package/dropdown/dropdown-menu.component.d.ts +0 -54
- package/dropdown/dropdown-submenu.component.d.ts +0 -23
- package/dropdown/dropdown.directive.d.ts +0 -77
- package/dropdown/module.d.ts +0 -13
- package/empty/empty.component.d.ts +0 -92
- package/empty/empty.config.d.ts +0 -10
- package/empty/empty.module.d.ts +0 -10
- package/empty/svgs.d.ts +0 -4
- package/flexible-text/flexible-text.component.d.ts +0 -53
- package/flexible-text/flexible-text.module.d.ts +0 -10
- package/form/form-group-error/form-group-error.component.d.ts +0 -21
- package/form/form-group-label.directive.d.ts +0 -18
- package/form/form-group.component.d.ts +0 -68
- package/form/form-submit.directive.d.ts +0 -18
- package/form/form-validator-loader.d.ts +0 -28
- package/form/form-validator.service.d.ts +0 -54
- package/form/form.class.d.ts +0 -54
- package/form/form.directive.d.ts +0 -56
- package/form/from-group-footer/form-group-footer.component.d.ts +0 -27
- package/form/module.d.ts +0 -25
- package/form/validator/confirm-validator.directive.d.ts +0 -17
- package/form/validator/index.d.ts +0 -4
- package/form/validator/max-validator.directive.d.ts +0 -15
- package/form/validator/min-validator.directive.d.ts +0 -15
- package/form/validator/unique-validator.directive.d.ts +0 -16
- package/fullscreen/fullscreen-launch.directive.d.ts +0 -9
- package/fullscreen/fullscreen-ref.d.ts +0 -25
- package/fullscreen/fullscreen.component.d.ts +0 -34
- package/fullscreen/fullscreen.config.d.ts +0 -23
- package/fullscreen/fullscreen.module.d.ts +0 -8
- package/fullscreen/fullscreen.service.d.ts +0 -20
- package/grid/flex.d.ts +0 -85
- package/grid/grid.token.d.ts +0 -7
- package/grid/grid.type.d.ts +0 -5
- package/grid/module.d.ts +0 -11
- package/grid/thy-col.directive.d.ts +0 -33
- package/grid/thy-grid-item.component.d.ts +0 -28
- package/grid/thy-grid.component.d.ts +0 -71
- package/grid/thy-row.directive.d.ts +0 -30
- package/guider/guider-hint/guider-hint.component.d.ts +0 -28
- package/guider/guider-manager.d.ts +0 -23
- package/guider/guider-ref.d.ts +0 -42
- package/guider/guider-step-ref.d.ts +0 -44
- package/guider/guider.class.d.ts +0 -95
- package/guider/guider.directive.d.ts +0 -21
- package/guider/guider.interface.d.ts +0 -26
- package/guider/guider.module.d.ts +0 -13
- package/guider/guider.service.d.ts +0 -25
- package/guider/utils.d.ts +0 -4
- package/i18n/i18n.d.ts +0 -191
- package/i18n/i18n.service.d.ts +0 -19
- package/i18n/i18n.token.d.ts +0 -8
- package/i18n/locale.d.ts +0 -4
- package/i18n/locales/de-de.d.ts +0 -162
- package/i18n/locales/en-us.d.ts +0 -183
- package/i18n/locales/index.d.ts +0 -5
- package/i18n/locales/ja-jp.d.ts +0 -162
- package/i18n/locales/zh-hans.d.ts +0 -162
- package/i18n/locales/zh-hant.d.ts +0 -162
- package/i18n/util.d.ts +0 -3
- package/icon/config.d.ts +0 -2
- package/icon/icon-registry.d.ts +0 -84
- package/icon/icon.component.d.ts +0 -47
- package/icon/icon.module.d.ts +0 -9
- package/image/image-group.component.d.ts +0 -16
- package/image/image.class.d.ts +0 -38
- package/image/image.config.d.ts +0 -21
- package/image/image.directive.d.ts +0 -50
- package/image/image.service.d.ts +0 -30
- package/image/image.token.d.ts +0 -17
- package/image/module.d.ts +0 -19
- package/image/preview/image-preview-ref.d.ts +0 -14
- package/image/preview/image-preview.component.d.ts +0 -73
- package/image/utils.d.ts +0 -1
- package/input/input-count.component.d.ts +0 -27
- package/input/input-group.component.d.ts +0 -71
- package/input/input-search.component.d.ts +0 -70
- package/input/input.component.d.ts +0 -82
- package/input/input.directive.d.ts +0 -26
- package/input/module.d.ts +0 -16
- package/input-number/input-number.component.d.ts +0 -115
- package/input-number/module.d.ts +0 -13
- package/layout/content-main.component.d.ts +0 -19
- package/layout/content-section.component.d.ts +0 -19
- package/layout/content.component.d.ts +0 -19
- package/layout/header.component.d.ts +0 -69
- package/layout/layout.component.d.ts +0 -22
- package/layout/layout.module.d.ts +0 -21
- package/layout/sidebar-content.component.d.ts +0 -19
- package/layout/sidebar-footer.component.d.ts +0 -19
- package/layout/sidebar-header.component.d.ts +0 -40
- package/layout/sidebar.component.d.ts +0 -123
- package/list/list-item-meta.component.d.ts +0 -25
- package/list/list-item.component.d.ts +0 -9
- package/list/list.component.d.ts +0 -14
- package/list/list.module.d.ts +0 -13
- package/list/selection/selection-list.d.ts +0 -116
- package/list/selection/selection.interface.d.ts +0 -8
- package/loading/loading.component.d.ts +0 -24
- package/loading/loading.module.d.ts +0 -8
- package/mention/adapter/adapter.d.ts +0 -19
- package/mention/adapter/editable.adapter.d.ts +0 -9
- package/mention/adapter/index.d.ts +0 -7
- package/mention/adapter/textarea.adapter.d.ts +0 -11
- package/mention/caret-positioner.d.ts +0 -19
- package/mention/interfaces.d.ts +0 -61
- package/mention/mention.directive.d.ts +0 -43
- package/mention/mention.module.d.ts +0 -13
- package/mention/suggestions/suggestions.component.d.ts +0 -28
- package/menu/divider/menu-divider.component.d.ts +0 -12
- package/menu/group/menu-group.component.d.ts +0 -61
- package/menu/item/action/menu-item-action.component.d.ts +0 -34
- package/menu/item/icon/menu-item-icon.component.d.ts +0 -18
- package/menu/item/menu-item.component.d.ts +0 -20
- package/menu/item/name/menu-item-name.component.d.ts +0 -17
- package/menu/menu.component.d.ts +0 -23
- package/menu/menu.module.d.ts +0 -16
- package/message/abstract/abstract-message-container.component.d.ts +0 -13
- package/message/abstract/abstract-message-queue.service.d.ts +0 -13
- package/message/abstract/abstract-message-ref.d.ts +0 -18
- package/message/abstract/abstract-message.component.d.ts +0 -35
- package/message/abstract/abstract-message.service.d.ts +0 -17
- package/message/abstract/index.d.ts +0 -5
- package/message/message-container.component.d.ts +0 -12
- package/message/message-queue.service.d.ts +0 -11
- package/message/message-ref.d.ts +0 -4
- package/message/message.component.d.ts +0 -13
- package/message/message.config.d.ts +0 -29
- package/message/message.service.d.ts +0 -36
- package/message/module.d.ts +0 -13
- package/nav/icon-nav/icon-nav-link.directive.d.ts +0 -10
- package/nav/icon-nav/icon-nav.component.d.ts +0 -15
- package/nav/nav-ink-bar.directive.d.ts +0 -22
- package/nav/nav-item.directive.d.ts +0 -60
- package/nav/nav.component.d.ts +0 -142
- package/nav/nav.module.d.ts +0 -17
- package/nav/nav.pipe.d.ts +0 -11
- package/notify/module.d.ts +0 -13
- package/notify/notify-container.component.d.ts +0 -12
- package/notify/notify-queue.service.d.ts +0 -15
- package/notify/notify-ref.d.ts +0 -4
- package/notify/notify.component.d.ts +0 -19
- package/notify/notify.config.d.ts +0 -55
- package/notify/notify.service.d.ts +0 -42
- package/pagination/pagination.class.d.ts +0 -79
- package/pagination/pagination.component.d.ts +0 -132
- package/pagination/pagination.config.d.ts +0 -8
- package/pagination/pagination.module.d.ts +0 -13
- package/pagination/pagination.pipe.d.ts +0 -17
- package/popover/body/popover-body.component.d.ts +0 -10
- package/popover/header/popover-header.component.d.ts +0 -35
- package/popover/module.d.ts +0 -14
- package/popover/popover-animations.d.ts +0 -8
- package/popover/popover-container.component.d.ts +0 -38
- package/popover/popover-ref.d.ts +0 -14
- package/popover/popover.config.d.ts +0 -110
- package/popover/popover.directive.d.ts +0 -67
- package/popover/popover.options.d.ts +0 -2
- package/popover/popover.service.d.ts +0 -58
- package/progress/interfaces.d.ts +0 -23
- package/progress/progress-circle.component.d.ts +0 -43
- package/progress/progress-strip.component.d.ts +0 -23
- package/progress/progress.component.d.ts +0 -59
- package/progress/progress.module.d.ts +0 -11
- package/property/module.d.ts +0 -11
- package/property/properties.component.d.ts +0 -25
- package/property/property-item.component.d.ts +0 -80
- package/property-operation/group/property-operation-group.component.d.ts +0 -10
- package/property-operation/module.d.ts +0 -12
- package/property-operation/property-operation.component.d.ts +0 -92
- package/public-api.d.ts +0 -1
- package/radio/button/radio-button.component.d.ts +0 -18
- package/radio/group/radio-group.component.d.ts +0 -46
- package/radio/module.d.ts +0 -11
- package/radio/radio.component.d.ts +0 -22
- package/radio/radio.token.d.ts +0 -12
- package/rate/module.d.ts +0 -13
- package/rate/rate-item.component.d.ts +0 -17
- package/rate/rate.component.d.ts +0 -69
- package/resizable/interface.d.ts +0 -12
- package/resizable/module.d.ts +0 -10
- package/resizable/resizable.directive.d.ts +0 -91
- package/resizable/resizable.service.d.ts +0 -32
- package/resizable/resize-handle.component.d.ts +0 -31
- package/resizable/resize-handles.component.d.ts +0 -21
- package/resizable/utils.d.ts +0 -3
- package/result/result.component.d.ts +0 -54
- package/result/result.module.d.ts +0 -8
- package/segment/segment-item.component.d.ts +0 -34
- package/segment/segment.component.d.ts +0 -55
- package/segment/segment.module.d.ts +0 -11
- package/segment/segment.token.d.ts +0 -16
- package/segment/types.d.ts +0 -5
- package/select/custom-select/custom-select.component.d.ts +0 -271
- package/select/module.d.ts +0 -16
- package/select/native-select/native-select.component.d.ts +0 -30
- package/select/select.config.d.ts +0 -34
- package/shared/base-form-check.component.d.ts +0 -51
- package/shared/directives/string-or-template-outlet.directive.d.ts +0 -17
- package/shared/directives/thy-autofocus.directive.d.ts +0 -23
- package/shared/directives/thy-contextmenu.directive.d.ts +0 -17
- package/shared/directives/thy-ctrl-enter.directive.d.ts +0 -17
- package/shared/directives/thy-drag-drop.directive.d.ts +0 -15
- package/shared/directives/thy-enter.directive.d.ts +0 -18
- package/shared/directives/thy-scroll.directive.d.ts +0 -39
- package/shared/directives/thy-show.d.ts +0 -19
- package/shared/directives/thy-stop-propagation.directive.d.ts +0 -17
- package/shared/directives/view-outlet.directive.d.ts +0 -27
- package/shared/ng-transclude.directive.d.ts +0 -14
- package/shared/option/group/option-group.component.d.ts +0 -22
- package/shared/option/index.d.ts +0 -8
- package/shared/option/list-option/list-option.component.d.ts +0 -32
- package/shared/option/module.d.ts +0 -13
- package/shared/option/option-group.component.d.ts +0 -12
- package/shared/option/option.component.d.ts +0 -51
- package/shared/option/option.token.d.ts +0 -30
- package/shared/option/options-container.component.d.ts +0 -9
- package/shared/option/select-option-base.d.ts +0 -5
- package/shared/select/index.d.ts +0 -2
- package/shared/select/module.d.ts +0 -11
- package/shared/select/select-control/select-control.component.d.ts +0 -73
- package/shared/shared.module.d.ts +0 -17
- package/shared/shared.type.d.ts +0 -1
- package/skeleton/module.d.ts +0 -16
- package/skeleton/skeleton-circle.component.d.ts +0 -45
- package/skeleton/skeleton-rectangle.component.d.ts +0 -55
- package/skeleton/skeleton.component.d.ts +0 -27
- package/skeleton/skeleton.config.d.ts +0 -8
- package/skeleton/stylized/bullet-list.component.d.ts +0 -55
- package/skeleton/stylized/list.component.d.ts +0 -44
- package/skeleton/stylized/paragraph.component.d.ts +0 -52
- package/slide/drawer/drawer-container.directive.d.ts +0 -11
- package/slide/slide-animations.d.ts +0 -4
- package/slide/slide-body/slide-body-section.component.d.ts +0 -16
- package/slide/slide-body/slide-body.component.d.ts +0 -10
- package/slide/slide-container.component.d.ts +0 -49
- package/slide/slide-footer/slide-footer.component.d.ts +0 -12
- package/slide/slide-header/slide-header.component.d.ts +0 -33
- package/slide/slide-layout/slide-layout.component.d.ts +0 -13
- package/slide/slide-ref.service.d.ts +0 -20
- package/slide/slide.config.d.ts +0 -73
- package/slide/slide.module.d.ts +0 -19
- package/slide/slide.service.d.ts +0 -28
- package/slider/slider.component.d.ts +0 -105
- package/slider/slider.module.d.ts +0 -9
- package/space/space.component.d.ts +0 -38
- package/space/space.module.d.ts +0 -8
- package/statistic/statistic.component.d.ts +0 -111
- package/statistic/statistic.module.d.ts +0 -10
- package/stepper/step-header.component.d.ts +0 -15
- package/stepper/step.component.d.ts +0 -28
- package/stepper/stepper-button.directive.d.ts +0 -25
- package/stepper/stepper.component.d.ts +0 -34
- package/stepper/stepper.module.d.ts +0 -11
- package/strength/strength.component.d.ts +0 -69
- package/strength/strength.module.d.ts +0 -7
- package/switch/switch.component.d.ts +0 -59
- package/switch/switch.module.d.ts +0 -8
- package/table/enums/column-skeleton-type.d.ts +0 -6
- package/table/enums/index.d.ts +0 -1
- package/table/pipes/drag.pipe.d.ts +0 -11
- package/table/pipes/table.pipe.d.ts +0 -10
- package/table/table-column.component.d.ts +0 -131
- package/table/table-skeleton.component.d.ts +0 -93
- package/table/table.component.d.ts +0 -333
- package/table/table.interface.d.ts +0 -87
- package/table/table.module.d.ts +0 -22
- package/table/table.type.d.ts +0 -3
- package/tabs/tab-content.component.d.ts +0 -12
- package/tabs/tab.component.d.ts +0 -31
- package/tabs/tabs.component.d.ts +0 -59
- package/tabs/tabs.module.d.ts +0 -12
- package/tabs/types.d.ts +0 -2
- package/tag/tag.component.d.ts +0 -48
- package/tag/tag.module.d.ts +0 -10
- package/tag/tags.component.d.ts +0 -11
- package/testing/data-transfer.d.ts +0 -22
- package/testing/dispatcher-events.d.ts +0 -32
- package/testing/element-focus.d.ts +0 -13
- package/testing/events.d.ts +0 -33
- package/testing/thy-icon.d.ts +0 -5
- package/testing/type-in-element.d.ts +0 -14
- package/testing/xhr-mock.d.ts +0 -51
- package/time-picker/inner/inner-time-picker.class.d.ts +0 -37
- package/time-picker/inner/inner-time-picker.component.d.ts +0 -91
- package/time-picker/inner/inner-time-picker.config.d.ts +0 -42
- package/time-picker/inner/inner-time-picker.store.d.ts +0 -23
- package/time-picker/time-picker-controls.util.d.ts +0 -7
- package/time-picker/time-picker-panel.component.d.ts +0 -113
- package/time-picker/time-picker.component.d.ts +0 -136
- package/time-picker/time-picker.module.d.ts +0 -17
- package/time-picker/time-picker.utils.d.ts +0 -16
- package/timeline/timeline-item.component.d.ts +0 -43
- package/timeline/timeline.component.d.ts +0 -47
- package/timeline/timeline.module.d.ts +0 -11
- package/timeline/timeline.service.d.ts +0 -8
- package/timeline/timeline.type.d.ts +0 -1
- package/tooltip/interface.d.ts +0 -5
- package/tooltip/tooltip-animations.d.ts +0 -4
- package/tooltip/tooltip-ref.d.ts +0 -31
- package/tooltip/tooltip.component.d.ts +0 -36
- package/tooltip/tooltip.config.d.ts +0 -22
- package/tooltip/tooltip.directive.d.ts +0 -81
- package/tooltip/tooltip.module.d.ts +0 -11
- package/tooltip/tooltip.service.d.ts +0 -16
- package/transfer/transfer-list.component.d.ts +0 -41
- package/transfer/transfer.component.d.ts +0 -90
- package/transfer/transfer.interface.d.ts +0 -66
- package/transfer/transfer.module.d.ts +0 -15
- package/tree/tree-abstract.d.ts +0 -19
- package/tree/tree-node.component.d.ts +0 -95
- package/tree/tree.class.d.ts +0 -106
- package/tree/tree.component.d.ts +0 -199
- package/tree/tree.module.d.ts +0 -20
- package/tree/tree.pipe.d.ts +0 -12
- package/tree/tree.service.d.ts +0 -34
- package/tree-select/module.d.ts +0 -14
- package/tree-select/tree-select.class.d.ts +0 -12
- package/tree-select/tree-select.component.d.ts +0 -203
- package/types/common.d.ts +0 -2
- package/types/dictionary.d.ts +0 -10
- package/types/pagination.d.ts +0 -6
- package/typography/bg-color.directive.d.ts +0 -20
- package/typography/module.d.ts +0 -11
- package/typography/text/text.component.d.ts +0 -17
- package/typography/text-color.directive.d.ts +0 -22
- package/upload/constant.d.ts +0 -73
- package/upload/file-drop.directive.d.ts +0 -32
- package/upload/file-select-base.d.ts +0 -22
- package/upload/file-select.component.d.ts +0 -34
- package/upload/module.d.ts +0 -9
- package/upload/types.d.ts +0 -11
- package/upload/upload.config.d.ts +0 -17
- package/upload/upload.service.d.ts +0 -140
- package/upload/util.d.ts +0 -1
- package/util/date/functions.d.ts +0 -85
- package/util/date/tiny-date.d.ts +0 -124
- package/util/dom.d.ts +0 -101
- package/util/helpers/helpers.d.ts +0 -55
- package/util/helpers/index.d.ts +0 -1
- package/util/immutable.d.ts +0 -70
- package/util/keycodes.d.ts +0 -2
- package/util/logger/index.d.ts +0 -1
- package/util/logger/logger.d.ts +0 -6
- package/util/ng.d.ts +0 -2
- package/util/references.d.ts +0 -58
- package/version.d.ts +0 -2
- package/vote/vote.component.d.ts +0 -53
- package/vote/vote.module.d.ts +0 -10
- package/watermark/config.d.ts +0 -19
- package/watermark/watermark.directive.d.ts +0 -63
- package/watermark/watermark.module.d.ts +0 -9
- /package/schematics/ng-update/{update-19 → update-20}/class-name-migration.d.ts +0 -0
- /package/schematics/ng-update/{update-19 → update-20}/class-name-migration.js +0 -0
- /package/schematics/ng-update/{update-19 → update-20}/index.d.ts +0 -0
- /package/schematics/ng-update/{update-19 → update-20}/index.spec.d.ts +0 -0
- /package/schematics/ng-update/{update-19 → update-20}/update-data.d.ts +0 -0
- /package/schematics/ng-update/{update-19 → update-20}/update-data.js +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ngx-tethys-typography.mjs","sources":["../../../src/typography/text/text.component.ts","../../../src/typography/text/text.component.html","../../../src/typography/text-color.directive.ts","../../../src/typography/bg-color.directive.ts","../../../src/typography/module.ts","../../../src/typography/ngx-tethys-typography.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, OnInit, input } from '@angular/core';\nimport { ThyIcon } from 'ngx-tethys/icon';\n\n/**\n * 文本组件\n * @name thy-text,[thyText]\n * @order 10\n */\n@Component({\n selector: 'thy-text, [thyText]:not(thy-divider)',\n templateUrl: './text.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'thy-text'\n },\n imports: [ThyIcon]\n})\nexport class ThyText implements OnInit {\n /**\n * 前置图标\n */\n readonly thyIcon = input<string>(undefined);\n\n constructor() {}\n\n ngOnInit(): void {}\n}\n","@if (thyIcon()) {\n <thy-icon [thyIconName]=\"thyIcon()\"></thy-icon>\n}\n<ng-content></ng-content>\n","import { Directive, ElementRef, OnInit, effect, inject, input } from '@angular/core';\nimport { isTextColor, isThemeColor, ThyTextColor, ThyThemeColor } from 'ngx-tethys/core';\nimport { useHostRenderer } from '@tethys/cdk/dom';\n\n/**\n * @name thyTextColor\n * @order 20\n */\n@Directive({\n selector: '[thyTextColor]',\n exportAs: 'thyTextColor'\n})\nexport class ThyTextColorDirective implements OnInit {\n private elementRef = inject(ElementRef);\n\n private color: ThyThemeColor | ThyTextColor | string = '';\n\n private hostRenderer = useHostRenderer();\n\n /**\n * @type ThyThemeColor | ThyTextColor | string\n * @description 文本颜色,支持设置主题色和自定义颜色值,主题色为 `default`、`primary`、`success`、`info`、`warning`、`danger`、`light`、`secondary`、`muted`、`desc`、`placeholder`\n */\n readonly thyTextColor = input<ThyThemeColor | ThyTextColor | string>(undefined);\n\n constructor() {\n effect(() => {\n const color = this.thyTextColor();\n this.clearColor();\n this.color = color;\n this.setColor();\n });\n }\n\n ngOnInit(): void {}\n\n private setColor() {\n if (isThemeColor(this.color) || isTextColor(this.color)) {\n this.hostRenderer.addClass(`text-${this.color}`);\n } else {\n this.hostRenderer.setStyle('color', this.color);\n }\n }\n\n private clearColor() {\n this.hostRenderer.setStyle('color', '');\n if (isThemeColor(this.color) || isTextColor(this.color)) {\n this.hostRenderer.removeClass(`text-${this.color}`);\n }\n }\n}\n","import { Directive, ElementRef, effect, inject, input } from '@angular/core';\nimport { isBgColor, isThemeColor, ThyBgColor, ThyThemeColor } from 'ngx-tethys/core';\nimport { useHostRenderer } from '@tethys/cdk/dom';\n\n/**\n * @name thyBgColor\n * @order 30\n */\n@Directive({\n selector: '[thyBgColor]',\n exportAs: 'thyBgColor'\n})\nexport class ThyBackgroundColorDirective {\n private elementRef = inject(ElementRef);\n\n private bgColor: ThyThemeColor | ThyBgColor | string = '';\n\n private hostRenderer = useHostRenderer();\n\n /**\n * @type ThyThemeColor | ThyBgColor | string\n * @description 背景颜色,支持设置主题色和自定义颜色值,主题色为 `primary`、`success`、`info`、`danger`、`warning`、`dark`、`secondary`、`light`、`lighter`、`bright`、`content`、`white`、`transparent`\n */\n readonly thyBgColor = input<ThyThemeColor | ThyBgColor | string>(undefined);\n\n constructor() {\n effect(() => {\n const bgColor = this.thyBgColor();\n this.clearBgColor();\n this.bgColor = bgColor;\n this.setBgColor();\n });\n }\n\n private setBgColor() {\n if (isThemeColor(this.bgColor) || isBgColor(this.bgColor)) {\n this.hostRenderer.addClass(`bg-${this.bgColor}`);\n } else {\n this.hostRenderer.setStyle('background-color', this.bgColor);\n }\n }\n\n private clearBgColor() {\n this.hostRenderer.setStyle('background-color', '');\n if (isThemeColor(this.bgColor) || isBgColor(this.bgColor)) {\n this.hostRenderer.removeClass(`bg-${this.bgColor}`);\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ThyIconModule } from 'ngx-tethys/icon';\nimport { ThyText } from './text/text.component';\nimport { ThyTextColorDirective } from './text-color.directive';\nimport { ThyBackgroundColorDirective } from './bg-color.directive';\n\n@NgModule({\n imports: [CommonModule, ThyIconModule, ThyText, ThyTextColorDirective, ThyBackgroundColorDirective],\n exports: [ThyText, ThyTextColorDirective, ThyBackgroundColorDirective],\n providers: []\n})\nexport class ThyTypographyModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;AAGA;;;;AAIG;MAUU,OAAO,CAAA;AAMhB,IAAA,WAAA,GAAA;AALA;;AAEG;AACM,QAAA,IAAA,CAAA,OAAO,GAAG,KAAK,CAAS,SAAS,
|
|
1
|
+
{"version":3,"file":"ngx-tethys-typography.mjs","sources":["../../../src/typography/text/text.component.ts","../../../src/typography/text/text.component.html","../../../src/typography/text-color.directive.ts","../../../src/typography/bg-color.directive.ts","../../../src/typography/module.ts","../../../src/typography/ngx-tethys-typography.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, OnInit, input } from '@angular/core';\nimport { ThyIcon } from 'ngx-tethys/icon';\n\n/**\n * 文本组件\n * @name thy-text,[thyText]\n * @order 10\n */\n@Component({\n selector: 'thy-text, [thyText]:not(thy-divider)',\n templateUrl: './text.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'thy-text'\n },\n imports: [ThyIcon]\n})\nexport class ThyText implements OnInit {\n /**\n * 前置图标\n */\n readonly thyIcon = input<string>(undefined);\n\n constructor() {}\n\n ngOnInit(): void {}\n}\n","@if (thyIcon()) {\n <thy-icon [thyIconName]=\"thyIcon()\"></thy-icon>\n}\n<ng-content></ng-content>\n","import { Directive, ElementRef, OnInit, effect, inject, input } from '@angular/core';\nimport { isTextColor, isThemeColor, ThyTextColor, ThyThemeColor } from 'ngx-tethys/core';\nimport { useHostRenderer } from '@tethys/cdk/dom';\n\n/**\n * @name thyTextColor\n * @order 20\n */\n@Directive({\n selector: '[thyTextColor]',\n exportAs: 'thyTextColor'\n})\nexport class ThyTextColorDirective implements OnInit {\n private elementRef = inject(ElementRef);\n\n private color: ThyThemeColor | ThyTextColor | string = '';\n\n private hostRenderer = useHostRenderer();\n\n /**\n * @type ThyThemeColor | ThyTextColor | string\n * @description 文本颜色,支持设置主题色和自定义颜色值,主题色为 `default`、`primary`、`success`、`info`、`warning`、`danger`、`light`、`secondary`、`muted`、`desc`、`placeholder`\n */\n readonly thyTextColor = input<ThyThemeColor | ThyTextColor | string>(undefined);\n\n constructor() {\n effect(() => {\n const color = this.thyTextColor();\n this.clearColor();\n this.color = color;\n this.setColor();\n });\n }\n\n ngOnInit(): void {}\n\n private setColor() {\n if (isThemeColor(this.color) || isTextColor(this.color)) {\n this.hostRenderer.addClass(`text-${this.color}`);\n } else {\n this.hostRenderer.setStyle('color', this.color);\n }\n }\n\n private clearColor() {\n this.hostRenderer.setStyle('color', '');\n if (isThemeColor(this.color) || isTextColor(this.color)) {\n this.hostRenderer.removeClass(`text-${this.color}`);\n }\n }\n}\n","import { Directive, ElementRef, effect, inject, input } from '@angular/core';\nimport { isBgColor, isThemeColor, ThyBgColor, ThyThemeColor } from 'ngx-tethys/core';\nimport { useHostRenderer } from '@tethys/cdk/dom';\n\n/**\n * @name thyBgColor\n * @order 30\n */\n@Directive({\n selector: '[thyBgColor]',\n exportAs: 'thyBgColor'\n})\nexport class ThyBackgroundColorDirective {\n private elementRef = inject(ElementRef);\n\n private bgColor: ThyThemeColor | ThyBgColor | string = '';\n\n private hostRenderer = useHostRenderer();\n\n /**\n * @type ThyThemeColor | ThyBgColor | string\n * @description 背景颜色,支持设置主题色和自定义颜色值,主题色为 `primary`、`success`、`info`、`danger`、`warning`、`dark`、`secondary`、`light`、`lighter`、`bright`、`content`、`white`、`transparent`\n */\n readonly thyBgColor = input<ThyThemeColor | ThyBgColor | string>(undefined);\n\n constructor() {\n effect(() => {\n const bgColor = this.thyBgColor();\n this.clearBgColor();\n this.bgColor = bgColor;\n this.setBgColor();\n });\n }\n\n private setBgColor() {\n if (isThemeColor(this.bgColor) || isBgColor(this.bgColor)) {\n this.hostRenderer.addClass(`bg-${this.bgColor}`);\n } else {\n this.hostRenderer.setStyle('background-color', this.bgColor);\n }\n }\n\n private clearBgColor() {\n this.hostRenderer.setStyle('background-color', '');\n if (isThemeColor(this.bgColor) || isBgColor(this.bgColor)) {\n this.hostRenderer.removeClass(`bg-${this.bgColor}`);\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ThyIconModule } from 'ngx-tethys/icon';\nimport { ThyText } from './text/text.component';\nimport { ThyTextColorDirective } from './text-color.directive';\nimport { ThyBackgroundColorDirective } from './bg-color.directive';\n\n@NgModule({\n imports: [CommonModule, ThyIconModule, ThyText, ThyTextColorDirective, ThyBackgroundColorDirective],\n exports: [ThyText, ThyTextColorDirective, ThyBackgroundColorDirective],\n providers: []\n})\nexport class ThyTypographyModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { XhrFactory, CommonModule } from '@angular/common';
|
|
2
2
|
import * as i0 from '@angular/core';
|
|
3
|
-
import { InjectionToken, input, numberAttribute,
|
|
3
|
+
import { InjectionToken, inject, ElementRef, input, numberAttribute, Directive, signal, output, DestroyRef, Renderer2, NgZone, viewChild, effect, Component, Injectable, NgModule } from '@angular/core';
|
|
4
4
|
import { isArray, isString, isNumber, isEmpty, coerceBooleanProperty, TinyDate, coerceArray, humanizeBytes } from 'ngx-tethys/util';
|
|
5
5
|
import { fromEvent, Observable, from } from 'rxjs';
|
|
6
6
|
import { tap, filter, mergeMap, map } from 'rxjs/operators';
|
|
@@ -130,34 +130,47 @@ function mimeTypeConvert(value) {
|
|
|
130
130
|
* @private
|
|
131
131
|
*/
|
|
132
132
|
class FileSelectBaseDirective {
|
|
133
|
-
constructor(
|
|
134
|
-
this.elementRef =
|
|
135
|
-
this.defaultConfig =
|
|
136
|
-
this.thySizeThreshold = input(this.defaultConfig.sizeThreshold, {
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
133
|
+
constructor() {
|
|
134
|
+
this.elementRef = inject(ElementRef);
|
|
135
|
+
this.defaultConfig = inject(THY_UPLOAD_DEFAULT_OPTIONS, { optional: true });
|
|
136
|
+
this.thySizeThreshold = input(this.defaultConfig.sizeThreshold, ...(ngDevMode ? [{ debugName: "thySizeThreshold", transform: (inputValue) => {
|
|
137
|
+
const sizeThreshold = numberAttribute(inputValue);
|
|
138
|
+
if (isNumber(sizeThreshold)) {
|
|
139
|
+
return sizeThreshold;
|
|
140
|
+
}
|
|
141
|
+
return this.defaultConfig.sizeThreshold;
|
|
142
|
+
} }] : [{
|
|
143
|
+
transform: (inputValue) => {
|
|
144
|
+
const sizeThreshold = numberAttribute(inputValue);
|
|
145
|
+
if (isNumber(sizeThreshold)) {
|
|
146
|
+
return sizeThreshold;
|
|
147
|
+
}
|
|
148
|
+
return this.defaultConfig.sizeThreshold;
|
|
141
149
|
}
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
150
|
+
}]));
|
|
151
|
+
this.thySizeExceedsHandler = input(this.defaultConfig.sizeExceedsHandler, ...(ngDevMode ? [{ debugName: "thySizeExceedsHandler", transform: (inputValue) => {
|
|
152
|
+
if (inputValue) {
|
|
153
|
+
return inputValue;
|
|
154
|
+
}
|
|
155
|
+
return this.defaultConfig.sizeExceedsHandler;
|
|
156
|
+
} }] : [{
|
|
157
|
+
transform: (inputValue) => {
|
|
158
|
+
if (inputValue) {
|
|
159
|
+
return inputValue;
|
|
160
|
+
}
|
|
161
|
+
return this.defaultConfig.sizeExceedsHandler;
|
|
149
162
|
}
|
|
150
|
-
|
|
151
|
-
}
|
|
152
|
-
});
|
|
163
|
+
}]));
|
|
153
164
|
/**
|
|
154
165
|
* 指定文件后缀类型(MIME_Map),例如".xls,xlsx","[".doc",".docx"]"
|
|
155
166
|
*/
|
|
156
|
-
this.thyAcceptType = input(mimeTypeConvert(this.defaultConfig.acceptType), {
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
167
|
+
this.thyAcceptType = input(mimeTypeConvert(this.defaultConfig.acceptType), ...(ngDevMode ? [{ debugName: "thyAcceptType", transform: (inputValue) => {
|
|
168
|
+
return mimeTypeConvert(inputValue);
|
|
169
|
+
} }] : [{
|
|
170
|
+
transform: (inputValue) => {
|
|
171
|
+
return mimeTypeConvert(inputValue);
|
|
172
|
+
}
|
|
173
|
+
}]));
|
|
161
174
|
}
|
|
162
175
|
handleSizeExceeds(event, files) {
|
|
163
176
|
let sizeExceedsFiles = files.filter(item => item.size / 1024 > this.thySizeThreshold());
|
|
@@ -184,28 +197,21 @@ class FileSelectBaseDirective {
|
|
|
184
197
|
});
|
|
185
198
|
}
|
|
186
199
|
}
|
|
187
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
188
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "
|
|
200
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.10", ngImport: i0, type: FileSelectBaseDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
201
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.3.10", type: FileSelectBaseDirective, isStandalone: true, inputs: { thySizeThreshold: { classPropertyName: "thySizeThreshold", publicName: "thySizeThreshold", isSignal: true, isRequired: false, transformFunction: null }, thySizeExceedsHandler: { classPropertyName: "thySizeExceedsHandler", publicName: "thySizeExceedsHandler", isSignal: true, isRequired: false, transformFunction: null }, thyAcceptType: { classPropertyName: "thyAcceptType", publicName: "thyAcceptType", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0 }); }
|
|
189
202
|
}
|
|
190
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
203
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.10", ngImport: i0, type: FileSelectBaseDirective, decorators: [{
|
|
191
204
|
type: Directive
|
|
192
|
-
}], ctorParameters: () => [{ type: i0.
|
|
193
|
-
type: Inject,
|
|
194
|
-
args: [THY_UPLOAD_DEFAULT_OPTIONS]
|
|
195
|
-
}] }] });
|
|
205
|
+
}], ctorParameters: () => [], propDecorators: { thySizeThreshold: [{ type: i0.Input, args: [{ isSignal: true, alias: "thySizeThreshold", required: false }] }], thySizeExceedsHandler: [{ type: i0.Input, args: [{ isSignal: true, alias: "thySizeExceedsHandler", required: false }] }], thyAcceptType: [{ type: i0.Input, args: [{ isSignal: true, alias: "thyAcceptType", required: false }] }] } });
|
|
196
206
|
|
|
197
207
|
/**
|
|
198
208
|
* @name thyFileDrop
|
|
199
209
|
*/
|
|
200
210
|
class ThyFileDropDirective extends FileSelectBaseDirective {
|
|
201
|
-
constructor(
|
|
202
|
-
super(
|
|
203
|
-
this.
|
|
204
|
-
this.
|
|
205
|
-
this.ngZone = ngZone;
|
|
206
|
-
this.defaultConfig = defaultConfig;
|
|
207
|
-
this.isDragOver = signal(false);
|
|
208
|
-
this.thyFileDropClassName = input();
|
|
211
|
+
constructor() {
|
|
212
|
+
super();
|
|
213
|
+
this.isDragOver = signal(false, ...(ngDevMode ? [{ debugName: "isDragOver" }] : []));
|
|
214
|
+
this.thyFileDropClassName = input(...(ngDevMode ? [undefined, { debugName: "thyFileDropClassName" }] : []));
|
|
209
215
|
this.thyOnDrop = output();
|
|
210
216
|
/**
|
|
211
217
|
* 当拖拽的文件中有不符合 thyAcceptType 中定义的类型时触发
|
|
@@ -213,6 +219,8 @@ class ThyFileDropDirective extends FileSelectBaseDirective {
|
|
|
213
219
|
*/
|
|
214
220
|
this.thyFilesReject = output();
|
|
215
221
|
this.destroyRef = inject(DestroyRef);
|
|
222
|
+
this.renderer = inject(Renderer2);
|
|
223
|
+
this.ngZone = inject(NgZone);
|
|
216
224
|
}
|
|
217
225
|
ngOnInit() {
|
|
218
226
|
this.ngZone.runOutsideAngular(() => {
|
|
@@ -320,10 +328,10 @@ class ThyFileDropDirective extends FileSelectBaseDirective {
|
|
|
320
328
|
resetDragOver() {
|
|
321
329
|
this.isDragOver.set(false);
|
|
322
330
|
}
|
|
323
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
324
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "
|
|
331
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.10", ngImport: i0, type: ThyFileDropDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
332
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.3.10", type: ThyFileDropDirective, isStandalone: true, selector: "[thyFileDrop]", inputs: { thyFileDropClassName: { classPropertyName: "thyFileDropClassName", publicName: "thyFileDropClassName", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { thyOnDrop: "thyOnDrop", thyFilesReject: "thyFilesReject" }, host: { properties: { "class.thy-drop-over": "isDragOver()", "class.drop-over": "isDragOver()" } }, usesInheritance: true, ngImport: i0 }); }
|
|
325
333
|
}
|
|
326
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
334
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.10", ngImport: i0, type: ThyFileDropDirective, decorators: [{
|
|
327
335
|
type: Directive,
|
|
328
336
|
args: [{
|
|
329
337
|
selector: '[thyFileDrop]',
|
|
@@ -332,10 +340,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.8", ngImpor
|
|
|
332
340
|
'[class.drop-over]': 'isDragOver()'
|
|
333
341
|
}
|
|
334
342
|
}]
|
|
335
|
-
}], ctorParameters: () => [{ type: i0.
|
|
336
|
-
type: Inject,
|
|
337
|
-
args: [THY_UPLOAD_DEFAULT_OPTIONS]
|
|
338
|
-
}] }] });
|
|
343
|
+
}], ctorParameters: () => [], propDecorators: { thyFileDropClassName: [{ type: i0.Input, args: [{ isSignal: true, alias: "thyFileDropClassName", required: false }] }], thyOnDrop: [{ type: i0.Output, args: ["thyOnDrop"] }], thyFilesReject: [{ type: i0.Output, args: ["thyFilesReject"] }] } });
|
|
339
344
|
|
|
340
345
|
/**
|
|
341
346
|
* 文件上传组件
|
|
@@ -343,26 +348,24 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.8", ngImpor
|
|
|
343
348
|
* @order 10
|
|
344
349
|
*/
|
|
345
350
|
class ThyFileSelect extends FileSelectBaseDirective {
|
|
346
|
-
constructor(
|
|
347
|
-
super(
|
|
348
|
-
this.elementRef = elementRef;
|
|
349
|
-
this.defaultConfig = defaultConfig;
|
|
350
|
-
this.ngZone = ngZone;
|
|
351
|
+
constructor() {
|
|
352
|
+
super();
|
|
351
353
|
/**
|
|
352
354
|
* 文件选择事件
|
|
353
355
|
*/
|
|
354
356
|
this.thyOnFileSelect = output();
|
|
355
|
-
this.fileInput = viewChild('fileInput');
|
|
357
|
+
this.fileInput = viewChild('fileInput', ...(ngDevMode ? [{ debugName: "fileInput" }] : []));
|
|
356
358
|
/**
|
|
357
359
|
* 文件是否多选
|
|
358
360
|
* @default false
|
|
359
361
|
*/
|
|
360
|
-
this.thyMultiple = input(false, { transform: coerceBooleanProperty });
|
|
362
|
+
this.thyMultiple = input(false, ...(ngDevMode ? [{ debugName: "thyMultiple", transform: coerceBooleanProperty }] : [{ transform: coerceBooleanProperty }]));
|
|
361
363
|
/**
|
|
362
364
|
* 是否接受文件夹
|
|
363
365
|
*/
|
|
364
|
-
this.thyAcceptFolder = input(false, { transform: coerceBooleanProperty });
|
|
366
|
+
this.thyAcceptFolder = input(false, ...(ngDevMode ? [{ debugName: "thyAcceptFolder", transform: coerceBooleanProperty }] : [{ transform: coerceBooleanProperty }]));
|
|
365
367
|
this.destroyRef = inject(DestroyRef);
|
|
368
|
+
this.ngZone = inject(NgZone);
|
|
366
369
|
this.ngZone.runOutsideAngular(() => fromEvent(this.elementRef.nativeElement, 'click')
|
|
367
370
|
.pipe(takeUntilDestroyed(this.destroyRef))
|
|
368
371
|
.subscribe(() => {
|
|
@@ -393,16 +396,13 @@ class ThyFileSelect extends FileSelectBaseDirective {
|
|
|
393
396
|
this.fileInput().nativeElement.value = '';
|
|
394
397
|
}
|
|
395
398
|
}
|
|
396
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
397
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "
|
|
399
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.10", ngImport: i0, type: ThyFileSelect, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
400
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "20.3.10", type: ThyFileSelect, isStandalone: true, selector: "[thyFileSelect],thy-file-select", inputs: { thyMultiple: { classPropertyName: "thyMultiple", publicName: "thyMultiple", isSignal: true, isRequired: false, transformFunction: null }, thyAcceptFolder: { classPropertyName: "thyAcceptFolder", publicName: "thyAcceptFolder", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { thyOnFileSelect: "thyOnFileSelect" }, viewQueries: [{ propertyName: "fileInput", first: true, predicate: ["fileInput"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<ng-content></ng-content>\n<input\n style=\"width: 0; height: 0\"\n thyStopPropagation=\"true\"\n [hidden]=\"'true'\"\n #fileInput\n type=\"file\"\n (change)=\"selectFile($event)\"\n [attr.accept]=\"thyAcceptType()\"\n/>\n" }); }
|
|
398
401
|
}
|
|
399
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
402
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.10", ngImport: i0, type: ThyFileSelect, decorators: [{
|
|
400
403
|
type: Component,
|
|
401
404
|
args: [{ selector: '[thyFileSelect],thy-file-select', template: "<ng-content></ng-content>\n<input\n style=\"width: 0; height: 0\"\n thyStopPropagation=\"true\"\n [hidden]=\"'true'\"\n #fileInput\n type=\"file\"\n (change)=\"selectFile($event)\"\n [attr.accept]=\"thyAcceptType()\"\n/>\n" }]
|
|
402
|
-
}], ctorParameters: () => [{ type: i0.
|
|
403
|
-
type: Inject,
|
|
404
|
-
args: [THY_UPLOAD_DEFAULT_OPTIONS]
|
|
405
|
-
}] }, { type: i0.NgZone }] });
|
|
405
|
+
}], ctorParameters: () => [], propDecorators: { thyOnFileSelect: [{ type: i0.Output, args: ["thyOnFileSelect"] }], fileInput: [{ type: i0.ViewChild, args: ['fileInput', { isSignal: true }] }], thyMultiple: [{ type: i0.Input, args: [{ isSignal: true, alias: "thyMultiple", required: false }] }], thyAcceptFolder: [{ type: i0.Input, args: [{ isSignal: true, alias: "thyAcceptFolder", required: false }] }] } });
|
|
406
406
|
|
|
407
407
|
var ThyUploadStatus;
|
|
408
408
|
(function (ThyUploadStatus) {
|
|
@@ -560,20 +560,20 @@ class ThyUploadService {
|
|
|
560
560
|
}));
|
|
561
561
|
return result;
|
|
562
562
|
}
|
|
563
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
564
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
563
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.10", ngImport: i0, type: ThyUploadService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
564
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.10", ngImport: i0, type: ThyUploadService }); }
|
|
565
565
|
}
|
|
566
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
566
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.10", ngImport: i0, type: ThyUploadService, decorators: [{
|
|
567
567
|
type: Injectable
|
|
568
568
|
}] });
|
|
569
569
|
|
|
570
570
|
// import { ThyDirectiveModule } from 'ngx-tethys/directive';
|
|
571
571
|
class ThyUploadModule {
|
|
572
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
573
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
|
574
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
572
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.10", ngImport: i0, type: ThyUploadModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
573
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.10", ngImport: i0, type: ThyUploadModule, imports: [CommonModule, ThyFileSelect, ThyFileDropDirective], exports: [ThyFileSelect, ThyFileDropDirective] }); }
|
|
574
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.10", ngImport: i0, type: ThyUploadModule, providers: [ThyUploadService, THY_UPLOAD_DEFAULT_OPTIONS_PROVIDER], imports: [CommonModule] }); }
|
|
575
575
|
}
|
|
576
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
576
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.10", ngImport: i0, type: ThyUploadModule, decorators: [{
|
|
577
577
|
type: NgModule,
|
|
578
578
|
args: [{
|
|
579
579
|
exports: [ThyFileSelect, ThyFileDropDirective],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ngx-tethys-upload.mjs","sources":["../../../src/upload/upload.config.ts","../../../src/upload/constant.ts","../../../src/upload/util.ts","../../../src/upload/file-select-base.ts","../../../src/upload/file-drop.directive.ts","../../../src/upload/file-select.component.ts","../../../src/upload/file-select.component.html","../../../src/upload/upload.service.ts","../../../src/upload/module.ts","../../../src/upload/ngx-tethys-upload.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\n\nimport { ThyFileSizeExceedsContext, ThySizeExceedsHandler } from './types';\n\nexport interface ThyUploadConfig {\n sizeThreshold?: number;\n sizeExceedsHandler?: ThySizeExceedsHandler;\n acceptType?: string;\n}\n\nexport const THY_UPLOAD_DEFAULT_OPTIONS = new InjectionToken<ThyUploadConfig>('thy-uploader-default-options');\n\nexport const THY_UPLOAD_DEFAULT_OPTIONS_PROVIDER = {\n provide: THY_UPLOAD_DEFAULT_OPTIONS,\n useValue: {\n acceptType: '',\n sizeThreshold: 0,\n sizeExceedsHandler: sizeExceedsHandler\n }\n};\n\nexport function sizeExceedsHandler(event: ThyFileSizeExceedsContext): void {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n const exceedsFilesMessage = event.exceedsFiles\n .map(item => {\n return `file: ${item.name}, size: ${item.size}`;\n })\n .join(',');\n console.error(`some files(${exceedsFilesMessage}) size exceeds threshold ${event.sizeThreshold}`);\n }\n}\n","// Multipurpose Internet Mail Extensions\nexport const MIME_Map = {\n '.3gp': 'video/3gpp',\n '.apk': 'application/vnd.android.package-archive',\n '.asf': 'video/x-ms-asf',\n '.avi': 'video/x-msvideo',\n '.bin': 'application/octet-stream',\n '.bmp': 'image/bmp',\n '.c': 'text/plain',\n '.class': 'application/octet-stream',\n '.conf': 'text/plain',\n '.cpp': 'text/plain',\n '.doc': 'application/msword,application/vnd.openxmlformats-officedocument.wordprocessingml.document',\n '.docx': 'application/vnd.openxmlformats-officedocument.wordprocessingml.document,application/msword',\n '.xls': 'application/vnd.ms-excel,.xls,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet,.xlsx',\n '.xlsx': 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet,.xlsx,application/vnd.ms-excel,.xls',\n '.xlsb': 'application/vnd.ms-excel.sheet.binary.macroenabled.12',\n '.xlsm': 'application/vnd.ms-excel.sheet.macroenabled.12',\n '.xltx': 'application/vnd.openxmlformats-officedocument.spreadsheetml.template',\n '.exe': 'application/octet-stream',\n '.gif': 'image/gif',\n '.gtar': 'application/x-gtar',\n '.gz': 'application/x-gzip',\n '.h': 'text/plain',\n '.htm': 'text/html',\n '.html': 'text/html',\n '.jar': 'application/java-archive',\n '.jpeg': 'image/jpeg',\n '.jpg': 'image/jpeg',\n '.js': 'application/x-javascript',\n '.json': 'application/json',\n '.log': 'text/plain',\n '.m3u': 'audio/x-mpegurl',\n '.m4a': 'audio/mp4a-latm',\n '.m4b': 'audio/mp4a-latm',\n '.m4p': 'audio/mp4a-latm',\n '.m4u': 'video/vnd.mpegurl',\n '.m4v': 'video/x-m4v',\n '.mov': 'video/quicktime',\n '.mp2': 'audio/x-mpeg',\n '.mp3': 'audio/x-mpeg',\n '.mp4': 'video/mp4',\n '.mpc': 'application/vnd.mpohun.certificate',\n '.mpe': 'video/mpeg',\n '.mpeg': 'video/mpeg',\n '.mpg': 'video/mpeg',\n '.mpg4': 'video/mp4',\n '.mpga': 'audio/mpeg',\n '.msg': 'application/vnd.ms-outlook',\n '.ogg': 'audio/ogg',\n '.pdf': 'application/pdf',\n '.png': 'image/png',\n '.pps': 'application/vnd.ms-powerpoint',\n '.ppt': 'application/vnd.ms-powerpoint,application/vnd.openxmlformats-officedocument.presentationml.presentation',\n '.pptx': 'application/vnd.openxmlformats-officedocument.presentationml.presentation,application/vnd.ms-powerpoint',\n '.prop': 'text/plain',\n '.rc': 'text/plain',\n '.rmvb': 'audio/x-pn-realaudio',\n '.rtf': 'application/rtf',\n '.sh': 'text/plain',\n '.tar': 'application/x-tar',\n '.tgz': 'application/x-compressed',\n '.txt': 'text/plain',\n '.wav': 'audio/x-wav',\n '.wma': 'audio/x-ms-wma',\n '.wmv': 'audio/x-ms-wmv',\n '.wps': 'application/vnd.ms-works',\n '.z': 'application/x-compress',\n '.zip': 'application/x-zip-compressed',\n '.ico': 'image/vnd.microsoft.icon',\n '.md': 'text/markdown,.md',\n '.markdown': 'text/markdown,.markdown',\n '': '*/*'\n};\n","import { isString, isArray } from 'ngx-tethys/util';\nimport { MIME_Map } from './constant';\n\nexport function mimeTypeConvert(value: Array<string> | string): string {\n let inputTypes: Array<string>;\n const acceptTypes: Array<string> = [];\n if (isArray(value)) {\n inputTypes = value as Array<string>;\n } else if (isString(value)) {\n inputTypes = value.split(',');\n } else {\n inputTypes = [];\n }\n\n if (inputTypes.length > 0) {\n inputTypes.forEach(n => {\n if (MIME_Map[n]) {\n acceptTypes.push(MIME_Map[n]);\n } else {\n acceptTypes.push(n);\n }\n });\n }\n return acceptTypes.join(',');\n}\n","import { isNumber } from 'ngx-tethys/util';\nimport { Directive, ElementRef, Input, NgZone, numberAttribute, inject, Inject, input, OutputEmitterRef } from '@angular/core';\nimport { ThyFileSelectEvent, ThySizeExceedsHandler } from './types';\nimport { THY_UPLOAD_DEFAULT_OPTIONS, ThyUploadConfig } from './upload.config';\nimport { mimeTypeConvert } from './util';\n\n/**\n * @private\n */\n@Directive()\nexport class FileSelectBaseDirective {\n readonly thySizeThreshold = input(this.defaultConfig.sizeThreshold, {\n transform: (inputValue: string | number) => {\n const sizeThreshold = numberAttribute(inputValue);\n if (isNumber(sizeThreshold)) {\n return sizeThreshold;\n }\n return this.defaultConfig.sizeThreshold;\n }\n });\n\n readonly thySizeExceedsHandler = input(this.defaultConfig.sizeExceedsHandler, {\n transform: (inputValue: ThySizeExceedsHandler) => {\n if (inputValue) {\n return inputValue;\n }\n return this.defaultConfig.sizeExceedsHandler;\n }\n });\n\n /**\n * 指定文件后缀类型(MIME_Map),例如\".xls,xlsx\",\"[\".doc\",\".docx\"]\"\n */\n thyAcceptType = input(mimeTypeConvert(this.defaultConfig.acceptType), {\n transform: (inputValue: Array<string> | string) => {\n return mimeTypeConvert(inputValue);\n }\n });\n\n constructor(\n public elementRef: ElementRef,\n @Inject(THY_UPLOAD_DEFAULT_OPTIONS) public defaultConfig: ThyUploadConfig\n ) {}\n\n handleSizeExceeds(event: Event, files: File[]) {\n let sizeExceedsFiles = files.filter(item => item.size / 1024 > this.thySizeThreshold());\n if (sizeExceedsFiles.length > 0) {\n const sizeExceedContext = {\n files: files,\n exceedsFiles: sizeExceedsFiles,\n nativeEvent: event,\n sizeThreshold: this.thySizeThreshold()\n };\n return this.thySizeExceedsHandler()(sizeExceedContext);\n }\n return files;\n }\n\n selectFiles(event: Event, files: File[], eventEmitter: OutputEmitterRef<ThyFileSelectEvent>) {\n let successFiles: File[] | void = files;\n if (this.thySizeThreshold() && this.thySizeThreshold() > 0) {\n successFiles = this.handleSizeExceeds(event, files);\n }\n if (successFiles) {\n eventEmitter.emit({\n files: successFiles,\n nativeEvent: event\n });\n }\n }\n}\n","import { isEmpty, isString } from 'ngx-tethys/util';\nimport { fromEvent, Subject } from 'rxjs';\nimport { filter, takeUntil, tap } from 'rxjs/operators';\n\nimport {\n DestroyRef,\n Directive,\n ElementRef,\n EventEmitter,\n HostBinding,\n Inject,\n Input,\n NgZone,\n OnInit,\n Output,\n Renderer2,\n inject,\n input,\n output,\n signal\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\nimport { FileSelectBaseDirective } from './file-select-base';\nimport { THY_UPLOAD_DEFAULT_OPTIONS, ThyUploadConfig } from './upload.config';\nimport { ThyFileSelectEvent } from './types';\n\n/**\n * @name thyFileDrop\n */\n@Directive({\n selector: '[thyFileDrop]',\n host: {\n '[class.thy-drop-over]': 'isDragOver()',\n '[class.drop-over]': 'isDragOver()'\n }\n})\nexport class ThyFileDropDirective extends FileSelectBaseDirective implements OnInit {\n protected isDragOver = signal(false);\n\n readonly thyFileDropClassName = input<string>();\n\n readonly thyOnDrop = output<ThyFileSelectEvent>();\n\n /**\n * 当拖拽的文件中有不符合 thyAcceptType 中定义的类型时触发\n * @description.en-us It is triggered when there are files in the dragged files that do not conform to the types defined in thyAcceptType.\n */\n thyFilesReject = output<File[]>();\n\n private destroyRef = inject(DestroyRef);\n\n constructor(\n public elementRef: ElementRef,\n public renderer: Renderer2,\n public ngZone: NgZone,\n @Inject(THY_UPLOAD_DEFAULT_OPTIONS) public defaultConfig: ThyUploadConfig\n ) {\n super(elementRef, defaultConfig);\n }\n\n public ngOnInit(): void {\n this.ngZone.runOutsideAngular(() => {\n fromEvent(this.elementRef.nativeElement, 'dragenter')\n .pipe(\n takeUntilDestroyed(this.destroyRef),\n tap((event: DragEvent) => {\n event.preventDefault();\n }),\n filter(event => event.dataTransfer.items && event.dataTransfer.items.length > 0)\n )\n .subscribe((event: DragEvent) => {\n if (this.checkRejectFolderAndHtmlElement(event)) {\n const files = this.filterFilesOrItems(Array.from(event.dataTransfer.items));\n if (!isEmpty(files)) {\n this.ngZone.run(() => {\n this.isDragOver.set(true);\n this.toggleDropOverClassName();\n });\n }\n }\n });\n\n fromEvent(this.elementRef.nativeElement, 'dragover')\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((event: any) => {\n event.preventDefault();\n });\n\n fromEvent(this.elementRef.nativeElement, 'dragleave')\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((event: any) => {\n this.ngZone.run(() => {\n if (!this.elementRef.nativeElement.contains(event.fromElement)) {\n this.resetDragOver();\n this.toggleDropOverClassName();\n }\n });\n });\n\n fromEvent(this.elementRef.nativeElement, 'drop')\n .pipe(\n takeUntilDestroyed(this.destroyRef),\n tap((event: DragEvent) => {\n event.preventDefault();\n })\n )\n .subscribe((event: DragEvent) => {\n this.ngZone.run(() => {\n if (this.checkRejectFolderAndHtmlElement(event)) {\n const originFiles = event.dataTransfer ? Array.from(event.dataTransfer.files) : [];\n const files = this.filterFilesOrItems(originFiles) as File[];\n\n if (files.length !== originFiles.length) {\n const differentFiles = originFiles.filter(item => !files.includes(item));\n this.thyFilesReject.emit(differentFiles);\n }\n if (!isEmpty(files)) {\n this.selectFiles(event, files, this.thyOnDrop);\n }\n }\n this.resetDragOver();\n this.toggleDropOverClassName();\n });\n });\n });\n }\n\n private checkRejectFolderAndHtmlElement(event: DragEvent) {\n // 排除文件夹和HTML元素拖拽\n const items: DataTransferItemList | DataTransferItem[] = event.dataTransfer ? event.dataTransfer.items : [];\n let res = true;\n for (let index = 0; index < items.length; index++) {\n const item = items[index];\n const entry = this.getAsEntry(item);\n if (item.kind !== 'file' || (entry && !entry.isFile)) {\n res = false;\n // console.error(`file extensions not support drag upload, kind: ${item.kind}, type: ${item.type}`);\n }\n }\n return res;\n }\n\n private getAsEntry(item: DataTransferItem): FileSystemEntry {\n let entry: FileSystemEntry;\n if ((item as unknown as { getAsEntry: () => FileSystemEntry })['getAsEntry']) {\n // https://wiki.whatwg.org/wiki/DragAndDropEntries\n entry = (item as unknown as { getAsEntry: () => FileSystemEntry })['getAsEntry']();\n } else if (item.webkitGetAsEntry) {\n entry = item.webkitGetAsEntry();\n }\n return entry;\n }\n\n private filterFilesOrItems(items: Array<DataTransferItem | File>): Array<DataTransferItem | File> {\n const acceptType = this.thyAcceptType();\n if (acceptType && acceptType != '*/*') {\n return items.filter(item => {\n const isValidType = isString(item.type) && item.type.length > 0;\n return isValidType && acceptType.includes(item.type);\n });\n } else {\n return Array.from(items);\n }\n }\n\n private toggleDropOverClassName() {\n const dragOverCustomClass = this.thyFileDropClassName();\n if (dragOverCustomClass) {\n if (this.isDragOver()) {\n this.renderer.addClass(this.elementRef.nativeElement, dragOverCustomClass);\n } else {\n this.renderer.removeClass(this.elementRef.nativeElement, dragOverCustomClass);\n }\n }\n }\n private resetDragOver() {\n this.isDragOver.set(false);\n }\n}\n","import { fromEvent } from 'rxjs';\nimport { Component, ElementRef, NgZone, inject, Inject, viewChild, output, input, DestroyRef, effect } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { FileSelectBaseDirective } from './file-select-base';\nimport { THY_UPLOAD_DEFAULT_OPTIONS, ThyUploadConfig } from './upload.config';\nimport { coerceBooleanProperty } from 'ngx-tethys/util';\nimport { ThyFileSelectEvent } from './types';\n\n/**\n * 文件上传组件\n * @name thy-file-select,[thyFileSelect]\n * @order 10\n */\n@Component({\n selector: '[thyFileSelect],thy-file-select',\n templateUrl: './file-select.component.html'\n})\nexport class ThyFileSelect extends FileSelectBaseDirective {\n /**\n * 文件选择事件\n */\n readonly thyOnFileSelect = output<ThyFileSelectEvent>();\n\n protected readonly fileInput = viewChild<ElementRef<HTMLInputElement>>('fileInput');\n\n /**\n * 文件是否多选\n * @default false\n */\n readonly thyMultiple = input(false, { transform: coerceBooleanProperty });\n\n /**\n * 是否接受文件夹\n */\n readonly thyAcceptFolder = input(false, { transform: coerceBooleanProperty });\n\n private destroyRef = inject(DestroyRef);\n\n constructor(\n public elementRef: ElementRef,\n @Inject(THY_UPLOAD_DEFAULT_OPTIONS) public defaultConfig: ThyUploadConfig,\n private ngZone: NgZone\n ) {\n super(elementRef, defaultConfig);\n\n this.ngZone.runOutsideAngular(() =>\n fromEvent(this.elementRef.nativeElement, 'click')\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n this.fileInput().nativeElement.click();\n })\n );\n\n effect(() => {\n const multiple = this.thyMultiple();\n const acceptFolder = this.thyAcceptFolder();\n const inputElement = this.fileInput().nativeElement;\n if (multiple) {\n inputElement.setAttribute('multiple', '');\n } else {\n inputElement.removeAttribute('multiple');\n }\n if (acceptFolder) {\n inputElement.setAttribute('webkitdirectory', '');\n } else {\n inputElement.removeAttribute('webkitdirectory');\n }\n });\n }\n\n selectFile($event: Event) {\n const files = this.fileInput().nativeElement.files;\n if (files && files.length > 0) {\n this.selectFiles($event, Array.from(files), this.thyOnFileSelect);\n this.fileInput().nativeElement.value = '';\n }\n }\n}\n","<ng-content></ng-content>\n<input\n style=\"width: 0; height: 0\"\n thyStopPropagation=\"true\"\n [hidden]=\"'true'\"\n #fileInput\n type=\"file\"\n (change)=\"selectFile($event)\"\n [attr.accept]=\"thyAcceptType()\"\n/>\n","import { coerceArray, humanizeBytes, TinyDate } from 'ngx-tethys/util';\nimport { from, Observable, Subscriber } from 'rxjs';\nimport { map, mergeMap, tap } from 'rxjs/operators';\n\nimport { XhrFactory } from '@angular/common';\nimport { inject, Injectable } from '@angular/core';\n\nexport enum ThyUploadStatus {\n pending = 'pending',\n started = 'started',\n uploading = 'uploading',\n done = 'done'\n}\n\nexport interface ThyUploadResponse {\n status: ThyUploadStatus;\n uploadFile?: ThyUploadFile;\n}\n\n/**\n * 文件上传进度\n * @public\n * @order 40\n */\nexport interface ThyUploadFileProgress {\n /**\n * 上传状态\n * @default pending\n */\n status: ThyUploadStatus;\n\n /**\n * 进度百分比\n */\n percentage: number;\n\n /**\n * 上传速度\n */\n speed?: number;\n\n /**\n * 人类可读的上传速度,比如: 120 kb/s\n */\n speedHuman?: string;\n\n /**\n * 开始上传时间\n */\n startTime: number | null;\n\n /**\n * 结束上传时间\n */\n endTime?: number | null;\n\n /**\n * 上传时间\n */\n estimatedTime?: number | null;\n\n /**\n * 人类可读的上传时间,比如: 00:12:23\n */\n estimatedTimeHuman?: string | null;\n}\n\n/**\n * 文件上传对象\n * @public\n * @order 30\n */\nexport interface ThyUploadFile {\n /**\n * 文件唯一标识\n */\n identifier?: string;\n\n /**\n * 上传方法\n */\n method: string;\n\n /**\n * 远程上传地址\n */\n url: string;\n\n /**\n * 是否携带认证信息\n */\n withCredentials?: boolean;\n\n /**\n * 原始文件\n */\n nativeFile: File;\n\n /**\n * 文件字段\n */\n fileField?: string;\n\n /**\n * 文件名\n */\n fileName?: string;\n\n /**\n * 请求头\n */\n headers?: Record<string, string>;\n\n /**\n * 请求数据\n */\n data?: Record<string, string>;\n\n /**\n * 响应状态\n */\n responseStatus?: any;\n\n /**\n * 上传响应结果\n */\n response?: any;\n\n /**\n * 响应头\n */\n responseHeaders?: any;\n\n /**\n * 上传进度\n */\n progress?: ThyUploadFileProgress;\n}\n\nexport interface ThyUploadFilesOptions {\n onStarted?: (item: ThyUploadFile) => void;\n onDone?: (item: ThyUploadFile) => void;\n}\n\n/**\n * 文件远程上传服务\n * @order 20\n */\n@Injectable()\nexport class ThyUploadService {\n private xhrFactory = inject(XhrFactory);\n\n private secondsToHuman(sec: number): string {\n return new TinyDate(sec * 1000).nativeDate.toISOString().slice(11, 19);\n }\n\n private normalizeUploadFiles(uploadFiles: ThyUploadFile | ThyUploadFile[]) {\n coerceArray(uploadFiles).forEach(uploadFile => {\n if (!uploadFile.progress) {\n uploadFile.progress = {\n status: ThyUploadStatus.pending,\n percentage: 0,\n startTime: 0\n };\n }\n });\n }\n\n private uploadByXhr(observer: Subscriber<ThyUploadResponse>, uploadFile: ThyUploadFile) {\n const xhr = this.xhrFactory.build();\n const time: number = new TinyDate().getTime();\n let speed = 0;\n let estimatedTime: number | null = null;\n\n uploadFile.progress = {\n status: ThyUploadStatus.started,\n percentage: 0,\n startTime: time\n };\n\n const onProgress = (event: ProgressEvent): void => {\n if (event.lengthComputable) {\n let percentage = Math.round((event.loaded * 100) / event.total);\n if (percentage === 100) {\n percentage = 99;\n }\n const diff = new TinyDate().getTime() - time;\n speed = Math.round((event.loaded / diff) * 1000);\n const progressStartTime = (uploadFile.progress && uploadFile.progress.startTime) || new TinyDate().getTime();\n estimatedTime = Math.ceil((event.total - event.loaded) / speed);\n\n uploadFile.progress.status = ThyUploadStatus.uploading;\n uploadFile.progress.percentage = percentage;\n uploadFile.progress.speed = speed;\n uploadFile.progress.speedHuman = `${humanizeBytes(speed, false, 2)}/s`;\n uploadFile.progress.startTime = progressStartTime;\n uploadFile.progress.estimatedTime = estimatedTime;\n uploadFile.progress.estimatedTimeHuman = this.secondsToHuman(estimatedTime);\n\n observer.next({ status: ThyUploadStatus.uploading, uploadFile: uploadFile });\n }\n };\n\n const onError = (error: ErrorEvent) => observer.error(error);\n\n const onReadyStateChange = () => {\n if (xhr.readyState === XMLHttpRequest.DONE) {\n const speedTime = (new TinyDate().getTime() - uploadFile.progress.startTime) * 1000;\n const speedAverage = Math.round(uploadFile.nativeFile.size / speedTime);\n\n uploadFile.progress.status = ThyUploadStatus.done;\n uploadFile.progress.percentage = 100;\n uploadFile.progress.speed = speedAverage;\n uploadFile.progress.speedHuman = `${humanizeBytes(speed, false, 2)}/s`;\n uploadFile.progress.estimatedTime = estimatedTime;\n uploadFile.progress.estimatedTimeHuman = this.secondsToHuman(estimatedTime || 0);\n\n uploadFile.responseStatus = xhr.status;\n\n try {\n uploadFile.response = JSON.parse(xhr.response);\n } catch (e) {\n uploadFile.response = xhr.response;\n }\n\n // file.responseHeaders = this.parseResponseHeaders(xhr.getAllResponseHeaders());\n\n observer.next({ status: ThyUploadStatus.done, uploadFile: uploadFile });\n\n observer.complete();\n }\n };\n\n xhr.upload.addEventListener('progress', onProgress, false);\n xhr.upload.addEventListener('error', onError);\n // When using the [timeout attribute](https://xhr.spec.whatwg.org/#the-timeout-attribute) and an XHR\n // request times out, browsers trigger the `timeout` event (and executes the XHR's `ontimeout`\n // callback). Additionally, Safari 9 handles timed-out requests in the same way, even if no `timeout`\n // has been explicitly set on the XHR.\n xhr.upload.addEventListener('timeout', onError);\n xhr.addEventListener('timeout', onError);\n xhr.addEventListener('readystatechange', onReadyStateChange);\n\n xhr.open(uploadFile.method, uploadFile.url, true);\n xhr.withCredentials = uploadFile.withCredentials ? true : false;\n\n try {\n const formData = new FormData();\n\n Object.keys(uploadFile.data || {}).forEach(key => formData.append(key, uploadFile.data[key]));\n Object.keys(uploadFile.headers || {}).forEach(key => xhr.setRequestHeader(key, uploadFile.headers[key]));\n\n formData.append(uploadFile.fileField || 'file', uploadFile.nativeFile, uploadFile.fileName);\n\n observer.next({ status: ThyUploadStatus.started, uploadFile: uploadFile });\n xhr.send(formData);\n } catch (error) {\n observer.error(error);\n }\n\n return {\n xhr,\n cleanup: () => {\n xhr.upload.removeEventListener('progress', onProgress);\n xhr.upload.removeEventListener('error', onError);\n xhr.upload.removeEventListener('timeout', onError);\n xhr.removeEventListener('timeout', onError);\n xhr.removeEventListener('readystatechange', onReadyStateChange);\n }\n };\n }\n\n private ensureFileName(uploadFile: ThyUploadFile) {\n uploadFile.fileName = uploadFile.fileName || uploadFile.nativeFile.name;\n }\n\n /**\n * 上传单个文件\n * @param uploadFile 上传文件对象\n */\n upload(uploadFile: ThyUploadFile): Observable<ThyUploadResponse> {\n this.ensureFileName(uploadFile);\n\n return new Observable(observer => {\n const { xhr, cleanup } = this.uploadByXhr(observer, uploadFile);\n return () => {\n cleanup();\n\n if (xhr.readyState !== xhr.DONE) {\n xhr.abort();\n }\n };\n });\n }\n\n /**\n * 并发上传多个文件\n * @param uploadFiles 上传文件列表\n * @param concurrent 并发上传数, 默认 5\n * @param options onStared, onDone 回调\n */\n uploadBulk(uploadFiles: ThyUploadFile[], concurrent = 5, options?: ThyUploadFilesOptions): Observable<ThyUploadResponse> {\n this.normalizeUploadFiles(uploadFiles);\n const result = from(uploadFiles).pipe(\n mergeMap(uploadFile => {\n return this.upload(uploadFile).pipe(\n tap(uploadResponse => {\n if (options && options.onStarted && uploadResponse.status === ThyUploadStatus.started) {\n options.onStarted(uploadResponse.uploadFile);\n }\n if (options && options.onDone && uploadResponse.status === ThyUploadStatus.done) {\n options.onDone(uploadResponse.uploadFile);\n }\n })\n );\n }, concurrent),\n map(response => {\n return response;\n })\n );\n\n return result;\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { ThyFileDropDirective } from './file-drop.directive';\nimport { ThyFileSelect } from './file-select.component';\nimport { THY_UPLOAD_DEFAULT_OPTIONS_PROVIDER } from './upload.config';\nimport { ThyUploadService } from './upload.service';\n\n// import { ThyDirectiveModule } from 'ngx-tethys/directive';\n\n@NgModule({\n exports: [ThyFileSelect, ThyFileDropDirective],\n imports: [CommonModule, ThyFileSelect, ThyFileDropDirective],\n providers: [ThyUploadService, THY_UPLOAD_DEFAULT_OPTIONS_PROVIDER]\n})\nexport class ThyUploadModule {}\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-upload.mjs","sources":["../../../src/upload/upload.config.ts","../../../src/upload/constant.ts","../../../src/upload/util.ts","../../../src/upload/file-select-base.ts","../../../src/upload/file-drop.directive.ts","../../../src/upload/file-select.component.ts","../../../src/upload/file-select.component.html","../../../src/upload/upload.service.ts","../../../src/upload/module.ts","../../../src/upload/ngx-tethys-upload.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\n\nimport { ThyFileSizeExceedsContext, ThySizeExceedsHandler } from './types';\n\nexport interface ThyUploadConfig {\n sizeThreshold?: number;\n sizeExceedsHandler?: ThySizeExceedsHandler;\n acceptType?: string;\n}\n\nexport const THY_UPLOAD_DEFAULT_OPTIONS = new InjectionToken<ThyUploadConfig>('thy-uploader-default-options');\n\nexport const THY_UPLOAD_DEFAULT_OPTIONS_PROVIDER = {\n provide: THY_UPLOAD_DEFAULT_OPTIONS,\n useValue: {\n acceptType: '',\n sizeThreshold: 0,\n sizeExceedsHandler: sizeExceedsHandler\n }\n};\n\nexport function sizeExceedsHandler(event: ThyFileSizeExceedsContext): void {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n const exceedsFilesMessage = event.exceedsFiles\n .map(item => {\n return `file: ${item.name}, size: ${item.size}`;\n })\n .join(',');\n console.error(`some files(${exceedsFilesMessage}) size exceeds threshold ${event.sizeThreshold}`);\n }\n}\n","// Multipurpose Internet Mail Extensions\nexport const MIME_Map = {\n '.3gp': 'video/3gpp',\n '.apk': 'application/vnd.android.package-archive',\n '.asf': 'video/x-ms-asf',\n '.avi': 'video/x-msvideo',\n '.bin': 'application/octet-stream',\n '.bmp': 'image/bmp',\n '.c': 'text/plain',\n '.class': 'application/octet-stream',\n '.conf': 'text/plain',\n '.cpp': 'text/plain',\n '.doc': 'application/msword,application/vnd.openxmlformats-officedocument.wordprocessingml.document',\n '.docx': 'application/vnd.openxmlformats-officedocument.wordprocessingml.document,application/msword',\n '.xls': 'application/vnd.ms-excel,.xls,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet,.xlsx',\n '.xlsx': 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet,.xlsx,application/vnd.ms-excel,.xls',\n '.xlsb': 'application/vnd.ms-excel.sheet.binary.macroenabled.12',\n '.xlsm': 'application/vnd.ms-excel.sheet.macroenabled.12',\n '.xltx': 'application/vnd.openxmlformats-officedocument.spreadsheetml.template',\n '.exe': 'application/octet-stream',\n '.gif': 'image/gif',\n '.gtar': 'application/x-gtar',\n '.gz': 'application/x-gzip',\n '.h': 'text/plain',\n '.htm': 'text/html',\n '.html': 'text/html',\n '.jar': 'application/java-archive',\n '.jpeg': 'image/jpeg',\n '.jpg': 'image/jpeg',\n '.js': 'application/x-javascript',\n '.json': 'application/json',\n '.log': 'text/plain',\n '.m3u': 'audio/x-mpegurl',\n '.m4a': 'audio/mp4a-latm',\n '.m4b': 'audio/mp4a-latm',\n '.m4p': 'audio/mp4a-latm',\n '.m4u': 'video/vnd.mpegurl',\n '.m4v': 'video/x-m4v',\n '.mov': 'video/quicktime',\n '.mp2': 'audio/x-mpeg',\n '.mp3': 'audio/x-mpeg',\n '.mp4': 'video/mp4',\n '.mpc': 'application/vnd.mpohun.certificate',\n '.mpe': 'video/mpeg',\n '.mpeg': 'video/mpeg',\n '.mpg': 'video/mpeg',\n '.mpg4': 'video/mp4',\n '.mpga': 'audio/mpeg',\n '.msg': 'application/vnd.ms-outlook',\n '.ogg': 'audio/ogg',\n '.pdf': 'application/pdf',\n '.png': 'image/png',\n '.pps': 'application/vnd.ms-powerpoint',\n '.ppt': 'application/vnd.ms-powerpoint,application/vnd.openxmlformats-officedocument.presentationml.presentation',\n '.pptx': 'application/vnd.openxmlformats-officedocument.presentationml.presentation,application/vnd.ms-powerpoint',\n '.prop': 'text/plain',\n '.rc': 'text/plain',\n '.rmvb': 'audio/x-pn-realaudio',\n '.rtf': 'application/rtf',\n '.sh': 'text/plain',\n '.tar': 'application/x-tar',\n '.tgz': 'application/x-compressed',\n '.txt': 'text/plain',\n '.wav': 'audio/x-wav',\n '.wma': 'audio/x-ms-wma',\n '.wmv': 'audio/x-ms-wmv',\n '.wps': 'application/vnd.ms-works',\n '.z': 'application/x-compress',\n '.zip': 'application/x-zip-compressed',\n '.ico': 'image/vnd.microsoft.icon',\n '.md': 'text/markdown,.md',\n '.markdown': 'text/markdown,.markdown',\n '': '*/*'\n};\n","import { isString, isArray } from 'ngx-tethys/util';\nimport { MIME_Map } from './constant';\n\nexport function mimeTypeConvert(value: Array<string> | string): string {\n let inputTypes: Array<string>;\n const acceptTypes: Array<string> = [];\n if (isArray(value)) {\n inputTypes = value as Array<string>;\n } else if (isString(value)) {\n inputTypes = value.split(',');\n } else {\n inputTypes = [];\n }\n\n if (inputTypes.length > 0) {\n inputTypes.forEach(n => {\n if (MIME_Map[n]) {\n acceptTypes.push(MIME_Map[n]);\n } else {\n acceptTypes.push(n);\n }\n });\n }\n return acceptTypes.join(',');\n}\n","import { isNumber } from 'ngx-tethys/util';\nimport { Directive, ElementRef, numberAttribute, input, OutputEmitterRef, inject } from '@angular/core';\nimport { ThyFileSelectEvent, ThySizeExceedsHandler } from './types';\nimport { THY_UPLOAD_DEFAULT_OPTIONS, ThyUploadConfig } from './upload.config';\nimport { mimeTypeConvert } from './util';\n\n/**\n * @private\n */\n@Directive()\nexport class FileSelectBaseDirective {\n public elementRef: ElementRef = inject(ElementRef);\n\n public defaultConfig: ThyUploadConfig = inject(THY_UPLOAD_DEFAULT_OPTIONS, { optional: true });\n\n readonly thySizeThreshold = input(this.defaultConfig.sizeThreshold, {\n transform: (inputValue: string | number) => {\n const sizeThreshold = numberAttribute(inputValue);\n if (isNumber(sizeThreshold)) {\n return sizeThreshold;\n }\n return this.defaultConfig.sizeThreshold;\n }\n });\n\n readonly thySizeExceedsHandler = input(this.defaultConfig.sizeExceedsHandler, {\n transform: (inputValue: ThySizeExceedsHandler) => {\n if (inputValue) {\n return inputValue;\n }\n return this.defaultConfig.sizeExceedsHandler;\n }\n });\n\n /**\n * 指定文件后缀类型(MIME_Map),例如\".xls,xlsx\",\"[\".doc\",\".docx\"]\"\n */\n thyAcceptType = input(mimeTypeConvert(this.defaultConfig.acceptType), {\n transform: (inputValue: Array<string> | string) => {\n return mimeTypeConvert(inputValue);\n }\n });\n\n constructor() {}\n\n handleSizeExceeds(event: Event, files: File[]) {\n let sizeExceedsFiles = files.filter(item => item.size / 1024 > this.thySizeThreshold());\n if (sizeExceedsFiles.length > 0) {\n const sizeExceedContext = {\n files: files,\n exceedsFiles: sizeExceedsFiles,\n nativeEvent: event,\n sizeThreshold: this.thySizeThreshold()\n };\n return this.thySizeExceedsHandler()(sizeExceedContext);\n }\n return files;\n }\n\n selectFiles(event: Event, files: File[], eventEmitter: OutputEmitterRef<ThyFileSelectEvent>) {\n let successFiles: File[] | void = files;\n if (this.thySizeThreshold() && this.thySizeThreshold() > 0) {\n successFiles = this.handleSizeExceeds(event, files);\n }\n if (successFiles) {\n eventEmitter.emit({\n files: successFiles,\n nativeEvent: event\n });\n }\n }\n}\n","import { isEmpty, isString } from 'ngx-tethys/util';\nimport { fromEvent } from 'rxjs';\nimport { filter, tap } from 'rxjs/operators';\nimport { DestroyRef, Directive, NgZone, OnInit, Renderer2, inject, input, output, signal } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { FileSelectBaseDirective } from './file-select-base';\nimport { ThyFileSelectEvent } from './types';\n\n/**\n * @name thyFileDrop\n */\n@Directive({\n selector: '[thyFileDrop]',\n host: {\n '[class.thy-drop-over]': 'isDragOver()',\n '[class.drop-over]': 'isDragOver()'\n }\n})\nexport class ThyFileDropDirective extends FileSelectBaseDirective implements OnInit {\n protected isDragOver = signal(false);\n\n readonly thyFileDropClassName = input<string>();\n\n readonly thyOnDrop = output<ThyFileSelectEvent>();\n\n /**\n * 当拖拽的文件中有不符合 thyAcceptType 中定义的类型时触发\n * @description.en-us It is triggered when there are files in the dragged files that do not conform to the types defined in thyAcceptType.\n */\n thyFilesReject = output<File[]>();\n\n private destroyRef = inject(DestroyRef);\n\n private renderer: Renderer2 = inject(Renderer2);\n\n private ngZone: NgZone = inject(NgZone);\n\n constructor() {\n super();\n }\n\n public ngOnInit(): void {\n this.ngZone.runOutsideAngular(() => {\n fromEvent(this.elementRef.nativeElement, 'dragenter')\n .pipe(\n takeUntilDestroyed(this.destroyRef),\n tap((event: DragEvent) => {\n event.preventDefault();\n }),\n filter(event => event.dataTransfer.items && event.dataTransfer.items.length > 0)\n )\n .subscribe((event: DragEvent) => {\n if (this.checkRejectFolderAndHtmlElement(event)) {\n const files = this.filterFilesOrItems(Array.from(event.dataTransfer.items));\n if (!isEmpty(files)) {\n this.ngZone.run(() => {\n this.isDragOver.set(true);\n this.toggleDropOverClassName();\n });\n }\n }\n });\n\n fromEvent(this.elementRef.nativeElement, 'dragover')\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((event: any) => {\n event.preventDefault();\n });\n\n fromEvent(this.elementRef.nativeElement, 'dragleave')\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((event: any) => {\n this.ngZone.run(() => {\n if (!this.elementRef.nativeElement.contains(event.fromElement)) {\n this.resetDragOver();\n this.toggleDropOverClassName();\n }\n });\n });\n\n fromEvent(this.elementRef.nativeElement, 'drop')\n .pipe(\n takeUntilDestroyed(this.destroyRef),\n tap((event: DragEvent) => {\n event.preventDefault();\n })\n )\n .subscribe((event: DragEvent) => {\n this.ngZone.run(() => {\n if (this.checkRejectFolderAndHtmlElement(event)) {\n const originFiles = event.dataTransfer ? Array.from(event.dataTransfer.files) : [];\n const files = this.filterFilesOrItems(originFiles) as File[];\n\n if (files.length !== originFiles.length) {\n const differentFiles = originFiles.filter(item => !files.includes(item));\n this.thyFilesReject.emit(differentFiles);\n }\n if (!isEmpty(files)) {\n this.selectFiles(event, files, this.thyOnDrop);\n }\n }\n this.resetDragOver();\n this.toggleDropOverClassName();\n });\n });\n });\n }\n\n private checkRejectFolderAndHtmlElement(event: DragEvent) {\n // 排除文件夹和HTML元素拖拽\n const items: DataTransferItemList | DataTransferItem[] = event.dataTransfer ? event.dataTransfer.items : [];\n let res = true;\n for (let index = 0; index < items.length; index++) {\n const item = items[index];\n const entry = this.getAsEntry(item);\n if (item.kind !== 'file' || (entry && !entry.isFile)) {\n res = false;\n // console.error(`file extensions not support drag upload, kind: ${item.kind}, type: ${item.type}`);\n }\n }\n return res;\n }\n\n private getAsEntry(item: DataTransferItem): FileSystemEntry {\n let entry: FileSystemEntry;\n if ((item as unknown as { getAsEntry: () => FileSystemEntry })['getAsEntry']) {\n // https://wiki.whatwg.org/wiki/DragAndDropEntries\n entry = (item as unknown as { getAsEntry: () => FileSystemEntry })['getAsEntry']();\n } else if (item.webkitGetAsEntry) {\n entry = item.webkitGetAsEntry();\n }\n return entry;\n }\n\n private filterFilesOrItems(items: Array<DataTransferItem | File>): Array<DataTransferItem | File> {\n const acceptType = this.thyAcceptType();\n if (acceptType && acceptType != '*/*') {\n return items.filter(item => {\n const isValidType = isString(item.type) && item.type.length > 0;\n return isValidType && acceptType.includes(item.type);\n });\n } else {\n return Array.from(items);\n }\n }\n\n private toggleDropOverClassName() {\n const dragOverCustomClass = this.thyFileDropClassName();\n if (dragOverCustomClass) {\n if (this.isDragOver()) {\n this.renderer.addClass(this.elementRef.nativeElement, dragOverCustomClass);\n } else {\n this.renderer.removeClass(this.elementRef.nativeElement, dragOverCustomClass);\n }\n }\n }\n private resetDragOver() {\n this.isDragOver.set(false);\n }\n}\n","import { fromEvent } from 'rxjs';\nimport { Component, ElementRef, NgZone, inject, viewChild, output, input, DestroyRef, effect } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { FileSelectBaseDirective } from './file-select-base';\nimport { coerceBooleanProperty } from 'ngx-tethys/util';\nimport { ThyFileSelectEvent } from './types';\n\n/**\n * 文件上传组件\n * @name thy-file-select,[thyFileSelect]\n * @order 10\n */\n@Component({\n selector: '[thyFileSelect],thy-file-select',\n templateUrl: './file-select.component.html'\n})\nexport class ThyFileSelect extends FileSelectBaseDirective {\n /**\n * 文件选择事件\n */\n readonly thyOnFileSelect = output<ThyFileSelectEvent>();\n\n protected readonly fileInput = viewChild<ElementRef<HTMLInputElement>>('fileInput');\n\n /**\n * 文件是否多选\n * @default false\n */\n readonly thyMultiple = input(false, { transform: coerceBooleanProperty });\n\n /**\n * 是否接受文件夹\n */\n readonly thyAcceptFolder = input(false, { transform: coerceBooleanProperty });\n\n private destroyRef = inject(DestroyRef);\n\n private ngZone: NgZone = inject(NgZone);\n\n constructor() {\n super();\n\n this.ngZone.runOutsideAngular(() =>\n fromEvent(this.elementRef.nativeElement, 'click')\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n this.fileInput().nativeElement.click();\n })\n );\n\n effect(() => {\n const multiple = this.thyMultiple();\n const acceptFolder = this.thyAcceptFolder();\n const inputElement = this.fileInput().nativeElement;\n if (multiple) {\n inputElement.setAttribute('multiple', '');\n } else {\n inputElement.removeAttribute('multiple');\n }\n if (acceptFolder) {\n inputElement.setAttribute('webkitdirectory', '');\n } else {\n inputElement.removeAttribute('webkitdirectory');\n }\n });\n }\n\n selectFile($event: Event) {\n const files = this.fileInput().nativeElement.files;\n if (files && files.length > 0) {\n this.selectFiles($event, Array.from(files), this.thyOnFileSelect);\n this.fileInput().nativeElement.value = '';\n }\n }\n}\n","<ng-content></ng-content>\n<input\n style=\"width: 0; height: 0\"\n thyStopPropagation=\"true\"\n [hidden]=\"'true'\"\n #fileInput\n type=\"file\"\n (change)=\"selectFile($event)\"\n [attr.accept]=\"thyAcceptType()\"\n/>\n","import { coerceArray, humanizeBytes, TinyDate } from 'ngx-tethys/util';\nimport { from, Observable, Subscriber } from 'rxjs';\nimport { map, mergeMap, tap } from 'rxjs/operators';\n\nimport { XhrFactory } from '@angular/common';\nimport { inject, Injectable } from '@angular/core';\n\nexport enum ThyUploadStatus {\n pending = 'pending',\n started = 'started',\n uploading = 'uploading',\n done = 'done'\n}\n\nexport interface ThyUploadResponse {\n status: ThyUploadStatus;\n uploadFile?: ThyUploadFile;\n}\n\n/**\n * 文件上传进度\n * @public\n * @order 40\n */\nexport interface ThyUploadFileProgress {\n /**\n * 上传状态\n * @default pending\n */\n status: ThyUploadStatus;\n\n /**\n * 进度百分比\n */\n percentage: number;\n\n /**\n * 上传速度\n */\n speed?: number;\n\n /**\n * 人类可读的上传速度,比如: 120 kb/s\n */\n speedHuman?: string;\n\n /**\n * 开始上传时间\n */\n startTime: number | null;\n\n /**\n * 结束上传时间\n */\n endTime?: number | null;\n\n /**\n * 上传时间\n */\n estimatedTime?: number | null;\n\n /**\n * 人类可读的上传时间,比如: 00:12:23\n */\n estimatedTimeHuman?: string | null;\n}\n\n/**\n * 文件上传对象\n * @public\n * @order 30\n */\nexport interface ThyUploadFile {\n /**\n * 文件唯一标识\n */\n identifier?: string;\n\n /**\n * 上传方法\n */\n method: string;\n\n /**\n * 远程上传地址\n */\n url: string;\n\n /**\n * 是否携带认证信息\n */\n withCredentials?: boolean;\n\n /**\n * 原始文件\n */\n nativeFile: File;\n\n /**\n * 文件字段\n */\n fileField?: string;\n\n /**\n * 文件名\n */\n fileName?: string;\n\n /**\n * 请求头\n */\n headers?: Record<string, string>;\n\n /**\n * 请求数据\n */\n data?: Record<string, string>;\n\n /**\n * 响应状态\n */\n responseStatus?: any;\n\n /**\n * 上传响应结果\n */\n response?: any;\n\n /**\n * 响应头\n */\n responseHeaders?: any;\n\n /**\n * 上传进度\n */\n progress?: ThyUploadFileProgress;\n}\n\nexport interface ThyUploadFilesOptions {\n onStarted?: (item: ThyUploadFile) => void;\n onDone?: (item: ThyUploadFile) => void;\n}\n\n/**\n * 文件远程上传服务\n * @order 20\n */\n@Injectable()\nexport class ThyUploadService {\n private xhrFactory = inject(XhrFactory);\n\n private secondsToHuman(sec: number): string {\n return new TinyDate(sec * 1000).nativeDate.toISOString().slice(11, 19);\n }\n\n private normalizeUploadFiles(uploadFiles: ThyUploadFile | ThyUploadFile[]) {\n coerceArray(uploadFiles).forEach(uploadFile => {\n if (!uploadFile.progress) {\n uploadFile.progress = {\n status: ThyUploadStatus.pending,\n percentage: 0,\n startTime: 0\n };\n }\n });\n }\n\n private uploadByXhr(observer: Subscriber<ThyUploadResponse>, uploadFile: ThyUploadFile) {\n const xhr = this.xhrFactory.build();\n const time: number = new TinyDate().getTime();\n let speed = 0;\n let estimatedTime: number | null = null;\n\n uploadFile.progress = {\n status: ThyUploadStatus.started,\n percentage: 0,\n startTime: time\n };\n\n const onProgress = (event: ProgressEvent): void => {\n if (event.lengthComputable) {\n let percentage = Math.round((event.loaded * 100) / event.total);\n if (percentage === 100) {\n percentage = 99;\n }\n const diff = new TinyDate().getTime() - time;\n speed = Math.round((event.loaded / diff) * 1000);\n const progressStartTime = (uploadFile.progress && uploadFile.progress.startTime) || new TinyDate().getTime();\n estimatedTime = Math.ceil((event.total - event.loaded) / speed);\n\n uploadFile.progress.status = ThyUploadStatus.uploading;\n uploadFile.progress.percentage = percentage;\n uploadFile.progress.speed = speed;\n uploadFile.progress.speedHuman = `${humanizeBytes(speed, false, 2)}/s`;\n uploadFile.progress.startTime = progressStartTime;\n uploadFile.progress.estimatedTime = estimatedTime;\n uploadFile.progress.estimatedTimeHuman = this.secondsToHuman(estimatedTime);\n\n observer.next({ status: ThyUploadStatus.uploading, uploadFile: uploadFile });\n }\n };\n\n const onError = (error: ErrorEvent) => observer.error(error);\n\n const onReadyStateChange = () => {\n if (xhr.readyState === XMLHttpRequest.DONE) {\n const speedTime = (new TinyDate().getTime() - uploadFile.progress.startTime) * 1000;\n const speedAverage = Math.round(uploadFile.nativeFile.size / speedTime);\n\n uploadFile.progress.status = ThyUploadStatus.done;\n uploadFile.progress.percentage = 100;\n uploadFile.progress.speed = speedAverage;\n uploadFile.progress.speedHuman = `${humanizeBytes(speed, false, 2)}/s`;\n uploadFile.progress.estimatedTime = estimatedTime;\n uploadFile.progress.estimatedTimeHuman = this.secondsToHuman(estimatedTime || 0);\n\n uploadFile.responseStatus = xhr.status;\n\n try {\n uploadFile.response = JSON.parse(xhr.response);\n } catch (e) {\n uploadFile.response = xhr.response;\n }\n\n // file.responseHeaders = this.parseResponseHeaders(xhr.getAllResponseHeaders());\n\n observer.next({ status: ThyUploadStatus.done, uploadFile: uploadFile });\n\n observer.complete();\n }\n };\n\n xhr.upload.addEventListener('progress', onProgress, false);\n xhr.upload.addEventListener('error', onError);\n // When using the [timeout attribute](https://xhr.spec.whatwg.org/#the-timeout-attribute) and an XHR\n // request times out, browsers trigger the `timeout` event (and executes the XHR's `ontimeout`\n // callback). Additionally, Safari 9 handles timed-out requests in the same way, even if no `timeout`\n // has been explicitly set on the XHR.\n xhr.upload.addEventListener('timeout', onError);\n xhr.addEventListener('timeout', onError);\n xhr.addEventListener('readystatechange', onReadyStateChange);\n\n xhr.open(uploadFile.method, uploadFile.url, true);\n xhr.withCredentials = uploadFile.withCredentials ? true : false;\n\n try {\n const formData = new FormData();\n\n Object.keys(uploadFile.data || {}).forEach(key => formData.append(key, uploadFile.data[key]));\n Object.keys(uploadFile.headers || {}).forEach(key => xhr.setRequestHeader(key, uploadFile.headers[key]));\n\n formData.append(uploadFile.fileField || 'file', uploadFile.nativeFile, uploadFile.fileName);\n\n observer.next({ status: ThyUploadStatus.started, uploadFile: uploadFile });\n xhr.send(formData);\n } catch (error) {\n observer.error(error);\n }\n\n return {\n xhr,\n cleanup: () => {\n xhr.upload.removeEventListener('progress', onProgress);\n xhr.upload.removeEventListener('error', onError);\n xhr.upload.removeEventListener('timeout', onError);\n xhr.removeEventListener('timeout', onError);\n xhr.removeEventListener('readystatechange', onReadyStateChange);\n }\n };\n }\n\n private ensureFileName(uploadFile: ThyUploadFile) {\n uploadFile.fileName = uploadFile.fileName || uploadFile.nativeFile.name;\n }\n\n /**\n * 上传单个文件\n * @param uploadFile 上传文件对象\n */\n upload(uploadFile: ThyUploadFile): Observable<ThyUploadResponse> {\n this.ensureFileName(uploadFile);\n\n return new Observable(observer => {\n const { xhr, cleanup } = this.uploadByXhr(observer, uploadFile);\n return () => {\n cleanup();\n\n if (xhr.readyState !== xhr.DONE) {\n xhr.abort();\n }\n };\n });\n }\n\n /**\n * 并发上传多个文件\n * @param uploadFiles 上传文件列表\n * @param concurrent 并发上传数, 默认 5\n * @param options onStared, onDone 回调\n */\n uploadBulk(uploadFiles: ThyUploadFile[], concurrent = 5, options?: ThyUploadFilesOptions): Observable<ThyUploadResponse> {\n this.normalizeUploadFiles(uploadFiles);\n const result = from(uploadFiles).pipe(\n mergeMap(uploadFile => {\n return this.upload(uploadFile).pipe(\n tap(uploadResponse => {\n if (options && options.onStarted && uploadResponse.status === ThyUploadStatus.started) {\n options.onStarted(uploadResponse.uploadFile);\n }\n if (options && options.onDone && uploadResponse.status === ThyUploadStatus.done) {\n options.onDone(uploadResponse.uploadFile);\n }\n })\n );\n }, concurrent),\n map(response => {\n return response;\n })\n );\n\n return result;\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { ThyFileDropDirective } from './file-drop.directive';\nimport { ThyFileSelect } from './file-select.component';\nimport { THY_UPLOAD_DEFAULT_OPTIONS_PROVIDER } from './upload.config';\nimport { ThyUploadService } from './upload.service';\n\n// import { ThyDirectiveModule } from 'ngx-tethys/directive';\n\n@NgModule({\n exports: [ThyFileSelect, ThyFileDropDirective],\n imports: [CommonModule, ThyFileSelect, ThyFileDropDirective],\n providers: [ThyUploadService, THY_UPLOAD_DEFAULT_OPTIONS_PROVIDER]\n})\nexport class ThyUploadModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|