ngx-tethys 18.0.7 → 18.1.0-next.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +18 -0
- package/alert/alert.component.d.ts +11 -19
- package/anchor/anchor.component.d.ts +1 -3
- package/badge/badge.component.d.ts +12 -3
- package/date-picker/lib/date/date-table-cell.component.d.ts +1 -1
- package/date-picker/lib/popups/date-popup.component.d.ts +0 -1
- package/date-picker/lib/popups/inner-popup.component.d.ts +2 -1
- package/date-range/date-range.component.d.ts +2 -8
- package/divider/divider.component.d.ts +8 -2
- package/esm2022/action/action.component.mjs +3 -4
- package/esm2022/alert/alert.component.mjs +55 -81
- package/esm2022/anchor/anchor-link.component.mjs +15 -7
- package/esm2022/anchor/anchor.component.mjs +17 -9
- package/esm2022/arrow-switcher/arrow-switcher.component.mjs +4 -5
- package/esm2022/autocomplete/autocomplete.component.mjs +5 -5
- package/esm2022/avatar/avatar-list/avatar-list.component.mjs +4 -4
- package/esm2022/avatar/avatar.component.mjs +4 -4
- package/esm2022/back-top/back-top.component.mjs +4 -4
- package/esm2022/badge/badge.component.mjs +3 -4
- package/esm2022/breadcrumb/breadcrumb.component.mjs +4 -6
- package/esm2022/button/button-icon.component.mjs +4 -4
- package/esm2022/button/button.component.mjs +4 -4
- package/esm2022/calendar/calendar-header.component.mjs +4 -4
- package/esm2022/calendar/calendar.component.mjs +3 -4
- package/esm2022/card/header.component.mjs +4 -4
- package/esm2022/carousel/carousel.component.mjs +4 -4
- package/esm2022/cascader/cascader-li.component.mjs +4 -4
- package/esm2022/cascader/cascader-search-option.component.mjs +4 -4
- package/esm2022/cascader/cascader.component.mjs +5 -7
- package/esm2022/checkbox/checkbox.component.mjs +5 -5
- package/esm2022/collapse/collapse-item.component.mjs +4 -4
- package/esm2022/color-picker/color-picker-panel.component.mjs +4 -4
- package/esm2022/comment/comment.component.mjs +4 -4
- package/esm2022/date-picker/date-picker.component.mjs +5 -6
- package/esm2022/date-picker/lib/calendar/calendar-footer.component.mjs +3 -4
- package/esm2022/date-picker/lib/date/date-header.component.mjs +4 -4
- package/esm2022/date-picker/lib/date/date-table-cell.component.mjs +4 -4
- package/esm2022/date-picker/lib/date/date-table.component.mjs +4 -4
- package/esm2022/date-picker/lib/date-carousel/date-carousel.component.mjs +5 -5
- package/esm2022/date-picker/lib/decade/decade-header.component.mjs +4 -4
- package/esm2022/date-picker/lib/decade/decade-table.component.mjs +4 -4
- package/esm2022/date-picker/lib/month/month-header.component.mjs +4 -4
- package/esm2022/date-picker/lib/month/month-table.component.mjs +4 -4
- package/esm2022/date-picker/lib/popups/date-popup.component.mjs +4 -18
- package/esm2022/date-picker/lib/popups/inner-popup.component.mjs +3 -8
- package/esm2022/date-picker/lib/quarter/quarter-table.component.mjs +4 -4
- package/esm2022/date-picker/lib/year/year-header.component.mjs +4 -4
- package/esm2022/date-picker/lib/year/year-table.component.mjs +4 -4
- package/esm2022/date-picker/month-picker.component.mjs +4 -5
- package/esm2022/date-picker/picker.component.mjs +4 -14
- package/esm2022/date-picker/quarter-picker.component.mjs +4 -5
- package/esm2022/date-picker/range-picker.component.mjs +4 -5
- package/esm2022/date-picker/week-picker.component.mjs +4 -5
- package/esm2022/date-picker/year-picker.component.mjs +4 -5
- package/esm2022/date-range/date-range.component.mjs +4 -4
- package/esm2022/date-range/optional-dates/optional-dates.component.mjs +3 -6
- package/esm2022/dialog/footer/dialog-footer.component.mjs +4 -4
- package/esm2022/dialog/header/dialog-header.component.mjs +4 -4
- package/esm2022/divider/divider.component.mjs +21 -13
- package/esm2022/dropdown/dropdown-menu.component.mjs +11 -7
- package/esm2022/empty/empty.component.mjs +4 -4
- package/esm2022/form/form-group-error/form-group-error.component.mjs +4 -4
- package/esm2022/form/form-group.component.mjs +4 -4
- package/esm2022/form/from-group-footer/form-group-footer.component.mjs +4 -4
- package/esm2022/guider/guider-hint/guider-hint.component.mjs +4 -4
- package/esm2022/image/preview/image-preview.component.mjs +3 -4
- package/esm2022/input/input-group.component.mjs +4 -4
- package/esm2022/input/input-search.component.mjs +3 -4
- package/esm2022/input/input.component.mjs +4 -4
- package/esm2022/layout/header.component.mjs +4 -4
- package/esm2022/layout/sidebar-header.component.mjs +4 -4
- package/esm2022/layout/sidebar.component.mjs +81 -71
- package/esm2022/list/list-item-meta.component.mjs +4 -4
- package/esm2022/loading/loading.component.mjs +3 -4
- package/esm2022/mention/suggestions/suggestions.component.mjs +4 -4
- package/esm2022/menu/group/menu-group.component.mjs +4 -4
- package/esm2022/menu/item/menu-item.component.mjs +3 -4
- package/esm2022/message/message-container.component.mjs +13 -5
- package/esm2022/message/message.component.mjs +3 -4
- package/esm2022/nav/icon-nav/icon-nav-link.directive.mjs +4 -5
- package/esm2022/nav/nav.component.mjs +4 -6
- package/esm2022/notify/notify-container.component.mjs +4 -4
- package/esm2022/notify/notify.component.mjs +4 -4
- package/esm2022/pagination/pagination.component.mjs +4 -4
- package/esm2022/popover/header/popover-header.component.mjs +4 -4
- package/esm2022/progress/progress-circle.component.mjs +4 -7
- package/esm2022/progress/progress.component.mjs +5 -8
- package/esm2022/property/property-item.component.mjs +4 -4
- package/esm2022/property-operation/property-operation.component.mjs +4 -4
- package/esm2022/radio/radio.component.mjs +5 -5
- package/esm2022/rate/rate.component.mjs +5 -5
- package/esm2022/resizable/resize-handle.component.mjs +10 -7
- package/esm2022/resizable/resize-handles.component.mjs +12 -5
- package/esm2022/result/result.component.mjs +4 -4
- package/esm2022/segment/segment-item.component.mjs +4 -4
- package/esm2022/segment/segment.component.mjs +4 -5
- package/esm2022/select/custom-select/custom-select.component.mjs +6 -8
- package/esm2022/select/native-select/native-select.component.mjs +5 -6
- package/esm2022/shared/option/list-option/list-option.component.mjs +3 -4
- package/esm2022/shared/option/option.component.mjs +3 -4
- package/esm2022/shared/select/select-control/select-control.component.mjs +5 -5
- package/esm2022/skeleton/stylized/bullet-list.component.mjs +8 -9
- package/esm2022/skeleton/stylized/list.component.mjs +8 -9
- package/esm2022/skeleton/stylized/paragraph.component.mjs +8 -9
- package/esm2022/slide/slide-header/slide-header.component.mjs +4 -4
- package/esm2022/space/space.component.mjs +4 -4
- package/esm2022/statistic/statistic.component.mjs +4 -4
- package/esm2022/stepper/stepper.component.mjs +5 -5
- package/esm2022/switch/switch.component.mjs +6 -6
- package/esm2022/table/table-skeleton.component.mjs +4 -7
- package/esm2022/table/table.component.mjs +5 -7
- package/esm2022/tabs/tab-content.component.mjs +9 -9
- package/esm2022/tabs/tabs.component.mjs +4 -7
- package/esm2022/time-picker/inner/inner-time-picker.component.mjs +3 -4
- package/esm2022/time-picker/time-picker-panel.component.mjs +5 -8
- package/esm2022/time-picker/time-picker.component.mjs +5 -15
- package/esm2022/timeline/timeline-item.component.mjs +4 -4
- package/esm2022/timeline/timeline.component.mjs +9 -9
- package/esm2022/tooltip/tooltip.component.mjs +4 -4
- package/esm2022/transfer/transfer-list.component.mjs +4 -4
- package/esm2022/transfer/transfer.component.mjs +4 -4
- package/esm2022/tree/tree-node.component.mjs +4 -4
- package/esm2022/tree/tree.component.mjs +5 -7
- package/esm2022/tree-select/tree-select.component.mjs +7 -10
- package/esm2022/typography/text/text.component.mjs +3 -4
- package/esm2022/version.mjs +2 -2
- package/esm2022/vote/vote.component.mjs +4 -4
- package/fesm2022/ngx-tethys-action.mjs +3 -3
- package/fesm2022/ngx-tethys-action.mjs.map +1 -1
- package/fesm2022/ngx-tethys-alert.mjs +54 -80
- package/fesm2022/ngx-tethys-alert.mjs.map +1 -1
- package/fesm2022/ngx-tethys-anchor.mjs +29 -13
- package/fesm2022/ngx-tethys-anchor.mjs.map +1 -1
- package/fesm2022/ngx-tethys-arrow-switcher.mjs +4 -4
- package/fesm2022/ngx-tethys-arrow-switcher.mjs.map +1 -1
- package/fesm2022/ngx-tethys-autocomplete.mjs +4 -4
- package/fesm2022/ngx-tethys-autocomplete.mjs.map +1 -1
- package/fesm2022/ngx-tethys-avatar.mjs +5 -5
- package/fesm2022/ngx-tethys-avatar.mjs.map +1 -1
- package/fesm2022/ngx-tethys-back-top.mjs +3 -3
- package/fesm2022/ngx-tethys-back-top.mjs.map +1 -1
- package/fesm2022/ngx-tethys-badge.mjs +3 -3
- package/fesm2022/ngx-tethys-badge.mjs.map +1 -1
- package/fesm2022/ngx-tethys-breadcrumb.mjs +3 -5
- package/fesm2022/ngx-tethys-breadcrumb.mjs.map +1 -1
- package/fesm2022/ngx-tethys-button.mjs +5 -5
- package/fesm2022/ngx-tethys-button.mjs.map +1 -1
- package/fesm2022/ngx-tethys-calendar.mjs +5 -5
- package/fesm2022/ngx-tethys-calendar.mjs.map +1 -1
- package/fesm2022/ngx-tethys-card.mjs +3 -3
- package/fesm2022/ngx-tethys-card.mjs.map +1 -1
- package/fesm2022/ngx-tethys-carousel.mjs +3 -3
- package/fesm2022/ngx-tethys-carousel.mjs.map +1 -1
- package/fesm2022/ngx-tethys-cascader.mjs +8 -10
- package/fesm2022/ngx-tethys-cascader.mjs.map +1 -1
- package/fesm2022/ngx-tethys-checkbox.mjs +4 -4
- package/fesm2022/ngx-tethys-checkbox.mjs.map +1 -1
- package/fesm2022/ngx-tethys-collapse.mjs +3 -3
- package/fesm2022/ngx-tethys-collapse.mjs.map +1 -1
- package/fesm2022/ngx-tethys-color-picker.mjs +3 -3
- package/fesm2022/ngx-tethys-color-picker.mjs.map +1 -1
- package/fesm2022/ngx-tethys-comment.mjs +3 -3
- package/fesm2022/ngx-tethys-comment.mjs.map +1 -1
- package/fesm2022/ngx-tethys-date-picker.mjs +51 -79
- package/fesm2022/ngx-tethys-date-picker.mjs.map +1 -1
- package/fesm2022/ngx-tethys-date-range.mjs +5 -7
- package/fesm2022/ngx-tethys-date-range.mjs.map +1 -1
- package/fesm2022/ngx-tethys-dialog.mjs +5 -5
- package/fesm2022/ngx-tethys-dialog.mjs.map +1 -1
- package/fesm2022/ngx-tethys-divider.mjs +20 -12
- package/fesm2022/ngx-tethys-divider.mjs.map +1 -1
- package/fesm2022/ngx-tethys-dropdown.mjs +10 -6
- package/fesm2022/ngx-tethys-dropdown.mjs.map +1 -1
- package/fesm2022/ngx-tethys-empty.mjs +3 -3
- package/fesm2022/ngx-tethys-empty.mjs.map +1 -1
- package/fesm2022/ngx-tethys-form.mjs +7 -7
- package/fesm2022/ngx-tethys-form.mjs.map +1 -1
- package/fesm2022/ngx-tethys-guider.mjs +3 -3
- package/fesm2022/ngx-tethys-guider.mjs.map +1 -1
- package/fesm2022/ngx-tethys-image.mjs +3 -3
- package/fesm2022/ngx-tethys-image.mjs.map +1 -1
- package/fesm2022/ngx-tethys-input.mjs +7 -7
- package/fesm2022/ngx-tethys-input.mjs.map +1 -1
- package/fesm2022/ngx-tethys-layout.mjs +84 -74
- package/fesm2022/ngx-tethys-layout.mjs.map +1 -1
- package/fesm2022/ngx-tethys-list.mjs +3 -3
- package/fesm2022/ngx-tethys-list.mjs.map +1 -1
- package/fesm2022/ngx-tethys-loading.mjs +3 -3
- package/fesm2022/ngx-tethys-loading.mjs.map +1 -1
- package/fesm2022/ngx-tethys-mention.mjs +3 -3
- package/fesm2022/ngx-tethys-mention.mjs.map +1 -1
- package/fesm2022/ngx-tethys-menu.mjs +5 -5
- package/fesm2022/ngx-tethys-menu.mjs.map +1 -1
- package/fesm2022/ngx-tethys-message.mjs +14 -6
- package/fesm2022/ngx-tethys-message.mjs.map +1 -1
- package/fesm2022/ngx-tethys-nav.mjs +6 -8
- package/fesm2022/ngx-tethys-nav.mjs.map +1 -1
- package/fesm2022/ngx-tethys-notify.mjs +5 -5
- package/fesm2022/ngx-tethys-notify.mjs.map +1 -1
- package/fesm2022/ngx-tethys-pagination.mjs +3 -3
- package/fesm2022/ngx-tethys-pagination.mjs.map +1 -1
- package/fesm2022/ngx-tethys-popover.mjs +3 -3
- package/fesm2022/ngx-tethys-popover.mjs.map +1 -1
- package/fesm2022/ngx-tethys-progress.mjs +6 -12
- package/fesm2022/ngx-tethys-progress.mjs.map +1 -1
- package/fesm2022/ngx-tethys-property-operation.mjs +3 -3
- package/fesm2022/ngx-tethys-property-operation.mjs.map +1 -1
- package/fesm2022/ngx-tethys-property.mjs +3 -3
- package/fesm2022/ngx-tethys-property.mjs.map +1 -1
- package/fesm2022/ngx-tethys-radio.mjs +4 -4
- package/fesm2022/ngx-tethys-radio.mjs.map +1 -1
- package/fesm2022/ngx-tethys-rate.mjs +4 -4
- package/fesm2022/ngx-tethys-rate.mjs.map +1 -1
- package/fesm2022/ngx-tethys-resizable.mjs +21 -9
- package/fesm2022/ngx-tethys-resizable.mjs.map +1 -1
- package/fesm2022/ngx-tethys-result.mjs +3 -3
- package/fesm2022/ngx-tethys-result.mjs.map +1 -1
- package/fesm2022/ngx-tethys-segment.mjs +6 -6
- package/fesm2022/ngx-tethys-segment.mjs.map +1 -1
- package/fesm2022/ngx-tethys-select.mjs +9 -11
- package/fesm2022/ngx-tethys-select.mjs.map +1 -1
- package/fesm2022/ngx-tethys-shared.mjs +8 -8
- package/fesm2022/ngx-tethys-shared.mjs.map +1 -1
- package/fesm2022/ngx-tethys-skeleton.mjs +22 -22
- package/fesm2022/ngx-tethys-skeleton.mjs.map +1 -1
- package/fesm2022/ngx-tethys-slide.mjs +3 -3
- package/fesm2022/ngx-tethys-slide.mjs.map +1 -1
- package/fesm2022/ngx-tethys-space.mjs +3 -3
- package/fesm2022/ngx-tethys-space.mjs.map +1 -1
- package/fesm2022/ngx-tethys-statistic.mjs +3 -3
- package/fesm2022/ngx-tethys-statistic.mjs.map +1 -1
- package/fesm2022/ngx-tethys-stepper.mjs +4 -4
- package/fesm2022/ngx-tethys-stepper.mjs.map +1 -1
- package/fesm2022/ngx-tethys-switch.mjs +5 -5
- package/fesm2022/ngx-tethys-switch.mjs.map +1 -1
- package/fesm2022/ngx-tethys-table.mjs +6 -11
- package/fesm2022/ngx-tethys-table.mjs.map +1 -1
- package/fesm2022/ngx-tethys-tabs.mjs +10 -13
- package/fesm2022/ngx-tethys-tabs.mjs.map +1 -1
- package/fesm2022/ngx-tethys-time-picker.mjs +9 -22
- package/fesm2022/ngx-tethys-time-picker.mjs.map +1 -1
- package/fesm2022/ngx-tethys-timeline.mjs +10 -10
- package/fesm2022/ngx-tethys-timeline.mjs.map +1 -1
- package/fesm2022/ngx-tethys-tooltip.mjs +3 -3
- package/fesm2022/ngx-tethys-tooltip.mjs.map +1 -1
- package/fesm2022/ngx-tethys-transfer.mjs +5 -5
- package/fesm2022/ngx-tethys-transfer.mjs.map +1 -1
- package/fesm2022/ngx-tethys-tree-select.mjs +6 -9
- package/fesm2022/ngx-tethys-tree-select.mjs.map +1 -1
- package/fesm2022/ngx-tethys-tree.mjs +6 -8
- package/fesm2022/ngx-tethys-tree.mjs.map +1 -1
- package/fesm2022/ngx-tethys-typography.mjs +3 -3
- package/fesm2022/ngx-tethys-typography.mjs.map +1 -1
- package/fesm2022/ngx-tethys-vote.mjs +3 -3
- package/fesm2022/ngx-tethys-vote.mjs.map +1 -1
- package/fesm2022/ngx-tethys.mjs +1 -1
- package/fesm2022/ngx-tethys.mjs.map +1 -1
- package/menu/group/menu-group.component.d.ts +42 -6
- package/package.json +1 -1
- package/pagination/pagination.component.d.ts +15 -5
- package/progress/progress-circle.component.d.ts +0 -1
- package/progress/progress.component.d.ts +0 -1
- package/property/property-item.component.d.ts +1 -4
- package/resizable/resize-handle.component.d.ts +1 -4
- package/schematics/version.d.ts +1 -1
- package/schematics/version.js +1 -1
- package/segment/segment.component.d.ts +1 -5
- package/shared/option/list-option/list-option.component.d.ts +5 -1
- package/skeleton/stylized/bullet-list.component.d.ts +9 -1
- package/table/table-skeleton.component.d.ts +10 -3
- package/tabs/tabs.component.d.ts +0 -1
- package/time-picker/time-picker-panel.component.d.ts +0 -1
- package/tree/tree-node.component.d.ts +10 -10
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ngx-tethys-avatar.mjs","sources":["../../../src/avatar/avatar.service.ts","../../../src/avatar/avatar.pipe.ts","../../../src/avatar/avatar.component.ts","../../../src/avatar/avatar.component.html","../../../src/avatar/avatar-list/avatar-list.component.ts","../../../src/avatar/avatar-list/avatar-list.component.html","../../../src/avatar/avatar.module.ts","../../../src/avatar/ngx-tethys-avatar.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { SafeHtml } from '@angular/platform-browser';\n\nexport abstract class ThyAvatarService {\n ignoreAvatarSrcPaths = [`default.png`];\n\n /**\n * @deprecated the avatarSrcTransform method will be deprecated, please use srcTransform.\n */\n abstract avatarSrcTransform(src: string, size: number): string;\n\n abstract srcTransform(src: string, size: number): string;\n\n abstract nameTransform(name: string): string | SafeHtml;\n}\n\n@Injectable()\nexport class ThyDefaultAvatarService extends ThyAvatarService {\n /**\n * @deprecated the avatarSrcTransform method will be deprecated, please use srcTransform.\n */\n avatarSrcTransform(src: string, size: number): string {\n return src;\n }\n\n srcTransform(src: string, size: number): string {\n return src;\n }\n\n nameTransform(name: string): string | SafeHtml {\n return name;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { ThyAvatarService } from './avatar.service';\n\n/**\n * `\\u4e00`: https://www.compart.com/en/unicode/U+4E00\n * `\\u9fa5`: https://www.compart.com/en/unicode/U+9FA5\n */\nconst UNIFIED_IDEOGRAPHS_REGEX = /^[\\u4e00-\\u9fa5]+$/;\n\nconst SET_OF_LETTERS_REGEX = /^[a-zA-Z\\/ ]+$/;\n\n/**\n * @private\n */\n@Pipe({\n name: 'avatarShortName',\n standalone: true\n})\nexport class AvatarShortNamePipe implements PipeTransform {\n transform(name: string | null | undefined): string {\n if (!name) {\n return '';\n }\n\n name = name.trim();\n\n if (UNIFIED_IDEOGRAPHS_REGEX.test(name) && name.length > 2) {\n return name.slice(name.length - 2);\n }\n\n if (SET_OF_LETTERS_REGEX.test(name) && name.indexOf(' ') > 0) {\n const words: string[] = name.split(' ');\n return (words[0].slice(0, 1) + words[1].slice(0, 1)).toUpperCase();\n }\n\n return name.length > 2 ? name.slice(0, 2).toUpperCase() : name.toUpperCase();\n }\n}\n\n/**\n * @private\n */\n@Pipe({\n name: 'avatarBgColor',\n standalone: true\n})\nexport class AvatarBgColorPipe implements PipeTransform {\n transform(name: string) {\n if (!name) {\n return;\n }\n const colors = ['#56abfb', '#5dcfff', '#84e17e', '#73d897', '#ff9f73', '#fa8888', '#fb7fb7', '#9a7ef4', '#868af6'];\n const nameArray: string[] = name.split('');\n const code: number =\n name && name.length > 0\n ? nameArray.reduce(\n function (result, item) {\n result.value += item.charCodeAt(0);\n return result;\n },\n { value: 0 }\n ).value\n : 0;\n return {\n 'background-color': colors[code % 9]\n };\n }\n}\n\n/**\n * @private\n */\n@Pipe({\n name: 'thyAvatarSrc',\n standalone: true\n})\nexport class AvatarSrcPipe implements PipeTransform {\n constructor(private thyAvatarService: ThyAvatarService) {}\n transform(src: string, size: number) {\n return this.thyAvatarService.srcTransform\n ? this.thyAvatarService.srcTransform(src, size)\n : this.thyAvatarService.avatarSrcTransform(src, size);\n }\n}\n\nexport const AvatarPipes = [AvatarShortNamePipe, AvatarBgColorPipe, AvatarSrcPipe];\n","import { ChangeDetectionStrategy, Component, ElementRef, EventEmitter, HostBinding, Input, OnInit, Output } from '@angular/core';\nimport { SafeHtml } from '@angular/platform-browser';\nimport { isString, coerceBooleanProperty } from 'ngx-tethys/util';\nimport { useHostRenderer } from '@tethys/cdk/dom';\nimport { ThyAvatarService } from './avatar.service';\nimport { AvatarShortNamePipe, AvatarBgColorPipe, AvatarSrcPipe } from './avatar.pipe';\nimport { ThyIcon } from 'ngx-tethys/icon';\nimport { NgIf, NgClass, NgStyle } from '@angular/common';\n\nconst sizeArray = [16, 22, 24, 28, 32, 36, 44, 48, 68, 110, 160];\n\nexport const DEFAULT_SIZE = 36;\n\nexport const thyAvatarSizeMap = {\n xxs: 22,\n xs: 24,\n sm: 32,\n md: 36,\n lg: 48\n};\n\n/** https://html.spec.whatwg.org/multipage/embedded-content.html#attr-img-loading */\nexport type ThyAvatarLoading = 'eager' | 'lazy';\n\n/** https://wicg.github.io/priority-hints/#idl-index */\nexport type ThyAvatarFetchPriority = 'high' | 'low' | 'auto';\n\n/**\n * 头像组件\n * @name thy-avatar\n * @order 10\n */\n@Component({\n selector: 'thy-avatar',\n templateUrl: './avatar.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [NgIf, NgClass, NgStyle, ThyIcon, AvatarShortNamePipe, AvatarBgColorPipe, AvatarSrcPipe]\n})\nexport class ThyAvatar implements OnInit {\n _src: string;\n _name: string;\n _size: number;\n _showRemove = false;\n\n public avatarSrc: string;\n public avatarName?: string;\n public avatarNameSafeHtml?: SafeHtml;\n\n @HostBinding('class.thy-avatar') _isAvatar = true;\n\n /**\n * * 已废弃,请使用 thyRemove\n * @deprecated\n */\n @Output() thyOnRemove = new EventEmitter();\n\n /**\n * 移除按钮的事件, 当 thyRemovable 为 true 时起作用\n */\n @Output() thyRemove = new EventEmitter();\n\n /**\n * 头像 img 加载 error 时触发\n */\n @Output() thyError: EventEmitter<Event> = new EventEmitter<Event>();\n\n /**\n * 是否展示人员名称\n * @default false\n */\n @Input({ transform: coerceBooleanProperty }) thyShowName: boolean;\n\n /**\n * 头像路径地址, 默认为全路径,如果不是全路径,可以通过自定义服务 ThyAvatarService,重写 srcTransform 方法实现转换\n *\n */\n @Input()\n set thySrc(value: string) {\n this._setAvatarSrc(value);\n }\n\n /**\n * 人员名称(可设置自定义名称,需通过自定义服务 ThyAvatarService,重写 nameTransform 方法去实现转换)\n */\n @Input()\n set thyName(value: string) {\n // this._name = value;\n this._setAvatarName(value);\n }\n\n /**\n * 头像大小\n * @type 16 | 22 | 24 | 28 | 32 | 36 | 44 | 48 | 68 | 110 | 160 | xxs(22px) | xs(24px) | sm(32px) | md(36px) | lg(48px)\n * @default md\n */\n @Input()\n set thySize(value: number | string) {\n if (thyAvatarSizeMap[value]) {\n this._setAvatarSize(thyAvatarSizeMap[value]);\n } else {\n this._setAvatarSize((value as number) * 1);\n }\n }\n\n /**\n * 已废弃,请使用 thyRemovable\n * @deprecated\n * @default false\n */\n @Input({ transform: coerceBooleanProperty })\n set thyShowRemove(value: boolean) {\n this._showRemove = value;\n }\n\n /**\n * 是否展示移除按钮\n * @default false\n */\n @Input({ transform: coerceBooleanProperty })\n set thyRemovable(value: boolean) {\n this._showRemove = value;\n }\n\n /**\n * 图片自定义类\n */\n @Input() thyImgClass: string;\n\n /**\n * 是否禁用\n * @default false\n */\n @Input({ transform: coerceBooleanProperty }) thyDisabled: boolean;\n\n /**\n * 图片加载策略\n * @type eager(立即加载) | lazy(延迟加载)\n */\n @Input() thyLoading?: ThyAvatarLoading;\n\n /**\n * 图片加载优先级\n * @type auto(默认) | high(高) | low(低)\n */\n @Input() thyFetchPriority?: ThyAvatarFetchPriority;\n\n private _setAvatarSize(size: number) {\n if (sizeArray.indexOf(size) > -1) {\n this._size = size;\n } else {\n this._size = this.findClosestSize(sizeArray, size);\n }\n this.hostRenderer.updateClass([`thy-avatar-${this._size}`]);\n }\n\n private findClosestSize(sizeArray: number[], currentSize: number): number {\n let closestValue = sizeArray[0];\n let closestDifference = Math.abs(closestValue - currentSize);\n\n for (let i = 1; i < sizeArray.length; i++) {\n const currentDifference = Math.abs(sizeArray[i] - currentSize);\n if (currentDifference <= closestDifference) {\n closestValue = sizeArray[i];\n closestDifference = currentDifference;\n }\n }\n\n return closestValue;\n }\n\n private _setAvatarSrc(src: string) {\n if (src && this.thyAvatarService.ignoreAvatarSrcPaths.indexOf(src) < 0) {\n this._src = src;\n } else {\n this._src = null;\n }\n }\n\n private _setAvatarName(value: string) {\n const name = this.thyAvatarService.nameTransform(value);\n if (isString(name)) {\n this.avatarName = name as string;\n } else {\n this.avatarName = value;\n this.avatarNameSafeHtml = name;\n }\n }\n\n private hostRenderer = useHostRenderer();\n\n constructor(\n private thyAvatarService: ThyAvatarService,\n public elementRef: ElementRef\n ) {}\n\n ngOnInit() {\n if (!this._size) {\n this._setAvatarSize(DEFAULT_SIZE);\n }\n this.hostRenderer.updateClass([`thy-avatar-${this._size}`]);\n }\n\n remove($event: Event) {\n this.thyOnRemove.emit($event);\n this.thyRemove.emit($event);\n }\n\n avatarImgError($event: Event) {\n this._setAvatarSrc(null);\n this.thyError.emit($event);\n }\n}\n","<img\n *ngIf=\"_src; else noSrc\"\n [src]=\"_src | thyAvatarSrc: _size\"\n class=\"avatar-avatar\"\n [ngClass]=\"thyImgClass\"\n alt=\"{{ avatarName || '' }}\"\n [attr.loading]=\"thyLoading\"\n [attr.fetchpriority]=\"thyFetchPriority\"\n (error)=\"avatarImgError($event)\"\n/>\n\n<ng-template #noSrc>\n <span class=\"avatar-default\" [ngStyle]=\"avatarName | avatarBgColor\">\n <div>{{ avatarName | avatarShortName }}</div>\n </span>\n</ng-template>\n\n<ng-template [ngIf]=\"thyShowName\">\n <div *ngIf=\"avatarNameSafeHtml; else noAvatarNameSafeHtml\" class=\"avatar-name\" [innerHtml]=\"avatarNameSafeHtml\"></div>\n <ng-template #noAvatarNameSafeHtml>\n <div class=\"avatar-name\">{{ avatarName }}</div>\n </ng-template>\n</ng-template>\n\n<a *ngIf=\"_showRemove\" (click)=\"remove($event)\" href=\"javascript:;\" class=\"remove-link avatar-remove\">\n <thy-icon class=\"remove-link-icon\" thyIconName=\"close-circle-bold-fill\"></thy-icon>\n</a>\n<div *ngIf=\"thyDisabled\" class=\"thy-avatar-disabled\">\n <thy-icon class=\"thy-avatar-disabled-icon\" thyIconName=\"ban\"></thy-icon>\n</div>\n","import { NgClass, NgFor, NgIf, NgStyle, NgTemplateOutlet } from '@angular/common';\nimport {\n AfterContentInit,\n Component,\n ContentChild,\n ContentChildren,\n HostBinding,\n Input,\n OnChanges,\n OnDestroy,\n QueryList,\n SimpleChanges,\n TemplateRef\n} from '@angular/core';\nimport { UpdateHostClassService } from 'ngx-tethys/core';\nimport { SafeAny } from 'ngx-tethys/types';\nimport { Subject } from 'rxjs';\nimport { DEFAULT_SIZE, ThyAvatar } from '../avatar.component';\nimport { takeUntil, startWith } from 'rxjs/operators';\n\nexport const THY_AVATAR_ITEM_SPACE = 4;\n\nexport const THY_OVERLAP_AVATAR_ITEM_SPACE = -8;\n\nexport const enum ThyAvatarListMode {\n overlap = 'overlap',\n default = 'default'\n}\n\n/**\n * 头像列表组件\n * @name thy-avatar-list\n * @order 20\n */\n@Component({\n selector: 'thy-avatar-list',\n templateUrl: `./avatar-list.component.html`,\n host: {\n class: 'thy-avatar-list'\n },\n providers: [UpdateHostClassService],\n standalone: true,\n imports: [NgFor, NgStyle, ThyAvatar, NgIf, NgClass, NgTemplateOutlet]\n})\nexport class ThyAvatarList implements OnChanges, OnDestroy, AfterContentInit {\n @HostBinding('class.thy-avatar-list-overlap') overlapMode = false;\n\n public avatarItems: ThyAvatar[] = [];\n\n private ngUnsubscribe$ = new Subject<void>();\n\n /**\n * 展示方式\n * @type overlap | default\n * @default default\n */\n @Input() thyMode: ThyAvatarListMode;\n\n /**\n * 头像大小\n * @type 16 | 22 | 24 | 28 | 32 | 36 | 44 | 48 | 68 | 110 | 160 | xxs(22px) | xs(24px) | sm(32px) | md(36px) | lg(48px)\n * @default 36\n */\n @Input() thyAvatarSize: number | string = DEFAULT_SIZE;\n\n /**\n * append 自定义操作\n */\n @ContentChild('append', { static: false }) append: TemplateRef<SafeAny>;\n\n /**\n * @private\n */\n @ContentChildren(ThyAvatar) avatarComponents: QueryList<ThyAvatar>;\n\n constructor() {}\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes.thyAvatarSize && !changes.thyAvatarSize.firstChange) {\n this.updateAvatarItems();\n }\n if (changes.thyMode) {\n this.overlapMode = changes.thyMode.currentValue === ThyAvatarListMode.overlap;\n if (!changes.thyMode.firstChange) {\n this.updateAvatarItems();\n }\n }\n }\n\n ngAfterContentInit() {\n this.avatarComponents.changes.pipe(startWith(this.avatarComponents), takeUntil(this.ngUnsubscribe$)).subscribe(() => {\n this.updateAvatarItems();\n });\n }\n\n private updateAvatarItems() {\n this.avatarItems = this.avatarComponents.toArray();\n this.avatarItems.forEach((item, index) => {\n item.thySize = this.thyAvatarSize;\n item.elementRef.nativeElement.style.zIndex = this.avatarItems.length - index;\n });\n }\n\n ngOnDestroy() {\n this.ngUnsubscribe$.next();\n this.ngUnsubscribe$.complete();\n }\n}\n","<ng-content></ng-content>\n\n<div *ngIf=\"append\" class=\"thy-avatar-append\">\n <ng-container [ngTemplateOutlet]=\"append\"></ng-container>\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ThyAvatar } from './avatar.component';\nimport { AvatarPipes } from './avatar.pipe';\nimport { ThyAvatarService, ThyDefaultAvatarService } from './avatar.service';\nimport { ThyIconModule } from 'ngx-tethys/icon';\nimport { ThyAvatarList } from './avatar-list/avatar-list.component';\n\n@NgModule({\n imports: [CommonModule, ThyIconModule, ThyAvatar, ThyAvatarList, AvatarPipes],\n providers: [\n {\n provide: ThyAvatarService,\n useClass: ThyDefaultAvatarService\n }\n ],\n exports: [ThyAvatar, ThyAvatarList, AvatarPipes]\n})\nexport class ThyAvatarModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.ThyAvatarService","i1.AvatarShortNamePipe","i1.AvatarBgColorPipe","i1.AvatarSrcPipe"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ngx-tethys-avatar.mjs","sources":["../../../src/avatar/avatar.service.ts","../../../src/avatar/avatar.pipe.ts","../../../src/avatar/avatar.component.ts","../../../src/avatar/avatar.component.html","../../../src/avatar/avatar-list/avatar-list.component.ts","../../../src/avatar/avatar-list/avatar-list.component.html","../../../src/avatar/avatar.module.ts","../../../src/avatar/ngx-tethys-avatar.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { SafeHtml } from '@angular/platform-browser';\n\nexport abstract class ThyAvatarService {\n ignoreAvatarSrcPaths = [`default.png`];\n\n /**\n * @deprecated the avatarSrcTransform method will be deprecated, please use srcTransform.\n */\n abstract avatarSrcTransform(src: string, size: number): string;\n\n abstract srcTransform(src: string, size: number): string;\n\n abstract nameTransform(name: string): string | SafeHtml;\n}\n\n@Injectable()\nexport class ThyDefaultAvatarService extends ThyAvatarService {\n /**\n * @deprecated the avatarSrcTransform method will be deprecated, please use srcTransform.\n */\n avatarSrcTransform(src: string, size: number): string {\n return src;\n }\n\n srcTransform(src: string, size: number): string {\n return src;\n }\n\n nameTransform(name: string): string | SafeHtml {\n return name;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { ThyAvatarService } from './avatar.service';\n\n/**\n * `\\u4e00`: https://www.compart.com/en/unicode/U+4E00\n * `\\u9fa5`: https://www.compart.com/en/unicode/U+9FA5\n */\nconst UNIFIED_IDEOGRAPHS_REGEX = /^[\\u4e00-\\u9fa5]+$/;\n\nconst SET_OF_LETTERS_REGEX = /^[a-zA-Z\\/ ]+$/;\n\n/**\n * @private\n */\n@Pipe({\n name: 'avatarShortName',\n standalone: true\n})\nexport class AvatarShortNamePipe implements PipeTransform {\n transform(name: string | null | undefined): string {\n if (!name) {\n return '';\n }\n\n name = name.trim();\n\n if (UNIFIED_IDEOGRAPHS_REGEX.test(name) && name.length > 2) {\n return name.slice(name.length - 2);\n }\n\n if (SET_OF_LETTERS_REGEX.test(name) && name.indexOf(' ') > 0) {\n const words: string[] = name.split(' ');\n return (words[0].slice(0, 1) + words[1].slice(0, 1)).toUpperCase();\n }\n\n return name.length > 2 ? name.slice(0, 2).toUpperCase() : name.toUpperCase();\n }\n}\n\n/**\n * @private\n */\n@Pipe({\n name: 'avatarBgColor',\n standalone: true\n})\nexport class AvatarBgColorPipe implements PipeTransform {\n transform(name: string) {\n if (!name) {\n return;\n }\n const colors = ['#56abfb', '#5dcfff', '#84e17e', '#73d897', '#ff9f73', '#fa8888', '#fb7fb7', '#9a7ef4', '#868af6'];\n const nameArray: string[] = name.split('');\n const code: number =\n name && name.length > 0\n ? nameArray.reduce(\n function (result, item) {\n result.value += item.charCodeAt(0);\n return result;\n },\n { value: 0 }\n ).value\n : 0;\n return {\n 'background-color': colors[code % 9]\n };\n }\n}\n\n/**\n * @private\n */\n@Pipe({\n name: 'thyAvatarSrc',\n standalone: true\n})\nexport class AvatarSrcPipe implements PipeTransform {\n constructor(private thyAvatarService: ThyAvatarService) {}\n transform(src: string, size: number) {\n return this.thyAvatarService.srcTransform\n ? this.thyAvatarService.srcTransform(src, size)\n : this.thyAvatarService.avatarSrcTransform(src, size);\n }\n}\n\nexport const AvatarPipes = [AvatarShortNamePipe, AvatarBgColorPipe, AvatarSrcPipe];\n","import { ChangeDetectionStrategy, Component, ElementRef, EventEmitter, HostBinding, Input, OnInit, Output } from '@angular/core';\nimport { SafeHtml } from '@angular/platform-browser';\nimport { isString, coerceBooleanProperty } from 'ngx-tethys/util';\nimport { useHostRenderer } from '@tethys/cdk/dom';\nimport { ThyAvatarService } from './avatar.service';\nimport { AvatarShortNamePipe, AvatarBgColorPipe, AvatarSrcPipe } from './avatar.pipe';\nimport { ThyIcon } from 'ngx-tethys/icon';\nimport { NgClass, NgStyle } from '@angular/common';\n\nconst sizeArray = [16, 22, 24, 28, 32, 36, 44, 48, 68, 110, 160];\n\nexport const DEFAULT_SIZE = 36;\n\nexport const thyAvatarSizeMap = {\n xxs: 22,\n xs: 24,\n sm: 32,\n md: 36,\n lg: 48\n};\n\n/** https://html.spec.whatwg.org/multipage/embedded-content.html#attr-img-loading */\nexport type ThyAvatarLoading = 'eager' | 'lazy';\n\n/** https://wicg.github.io/priority-hints/#idl-index */\nexport type ThyAvatarFetchPriority = 'high' | 'low' | 'auto';\n\n/**\n * 头像组件\n * @name thy-avatar\n * @order 10\n */\n@Component({\n selector: 'thy-avatar',\n templateUrl: './avatar.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [NgClass, NgStyle, ThyIcon, AvatarShortNamePipe, AvatarBgColorPipe, AvatarSrcPipe]\n})\nexport class ThyAvatar implements OnInit {\n _src: string;\n _name: string;\n _size: number;\n _showRemove = false;\n\n public avatarSrc: string;\n public avatarName?: string;\n public avatarNameSafeHtml?: SafeHtml;\n\n @HostBinding('class.thy-avatar') _isAvatar = true;\n\n /**\n * * 已废弃,请使用 thyRemove\n * @deprecated\n */\n @Output() thyOnRemove = new EventEmitter();\n\n /**\n * 移除按钮的事件, 当 thyRemovable 为 true 时起作用\n */\n @Output() thyRemove = new EventEmitter();\n\n /**\n * 头像 img 加载 error 时触发\n */\n @Output() thyError: EventEmitter<Event> = new EventEmitter<Event>();\n\n /**\n * 是否展示人员名称\n * @default false\n */\n @Input({ transform: coerceBooleanProperty }) thyShowName: boolean;\n\n /**\n * 头像路径地址, 默认为全路径,如果不是全路径,可以通过自定义服务 ThyAvatarService,重写 srcTransform 方法实现转换\n *\n */\n @Input()\n set thySrc(value: string) {\n this._setAvatarSrc(value);\n }\n\n /**\n * 人员名称(可设置自定义名称,需通过自定义服务 ThyAvatarService,重写 nameTransform 方法去实现转换)\n */\n @Input()\n set thyName(value: string) {\n // this._name = value;\n this._setAvatarName(value);\n }\n\n /**\n * 头像大小\n * @type 16 | 22 | 24 | 28 | 32 | 36 | 44 | 48 | 68 | 110 | 160 | xxs(22px) | xs(24px) | sm(32px) | md(36px) | lg(48px)\n * @default md\n */\n @Input()\n set thySize(value: number | string) {\n if (thyAvatarSizeMap[value]) {\n this._setAvatarSize(thyAvatarSizeMap[value]);\n } else {\n this._setAvatarSize((value as number) * 1);\n }\n }\n\n /**\n * 已废弃,请使用 thyRemovable\n * @deprecated\n * @default false\n */\n @Input({ transform: coerceBooleanProperty })\n set thyShowRemove(value: boolean) {\n this._showRemove = value;\n }\n\n /**\n * 是否展示移除按钮\n * @default false\n */\n @Input({ transform: coerceBooleanProperty })\n set thyRemovable(value: boolean) {\n this._showRemove = value;\n }\n\n /**\n * 图片自定义类\n */\n @Input() thyImgClass: string;\n\n /**\n * 是否禁用\n * @default false\n */\n @Input({ transform: coerceBooleanProperty }) thyDisabled: boolean;\n\n /**\n * 图片加载策略\n * @type eager(立即加载) | lazy(延迟加载)\n */\n @Input() thyLoading?: ThyAvatarLoading;\n\n /**\n * 图片加载优先级\n * @type auto(默认) | high(高) | low(低)\n */\n @Input() thyFetchPriority?: ThyAvatarFetchPriority;\n\n private _setAvatarSize(size: number) {\n if (sizeArray.indexOf(size) > -1) {\n this._size = size;\n } else {\n this._size = this.findClosestSize(sizeArray, size);\n }\n this.hostRenderer.updateClass([`thy-avatar-${this._size}`]);\n }\n\n private findClosestSize(sizeArray: number[], currentSize: number): number {\n let closestValue = sizeArray[0];\n let closestDifference = Math.abs(closestValue - currentSize);\n\n for (let i = 1; i < sizeArray.length; i++) {\n const currentDifference = Math.abs(sizeArray[i] - currentSize);\n if (currentDifference <= closestDifference) {\n closestValue = sizeArray[i];\n closestDifference = currentDifference;\n }\n }\n\n return closestValue;\n }\n\n private _setAvatarSrc(src: string) {\n if (src && this.thyAvatarService.ignoreAvatarSrcPaths.indexOf(src) < 0) {\n this._src = src;\n } else {\n this._src = null;\n }\n }\n\n private _setAvatarName(value: string) {\n const name = this.thyAvatarService.nameTransform(value);\n if (isString(name)) {\n this.avatarName = name as string;\n } else {\n this.avatarName = value;\n this.avatarNameSafeHtml = name;\n }\n }\n\n private hostRenderer = useHostRenderer();\n\n constructor(\n private thyAvatarService: ThyAvatarService,\n public elementRef: ElementRef\n ) {}\n\n ngOnInit() {\n if (!this._size) {\n this._setAvatarSize(DEFAULT_SIZE);\n }\n this.hostRenderer.updateClass([`thy-avatar-${this._size}`]);\n }\n\n remove($event: Event) {\n this.thyOnRemove.emit($event);\n this.thyRemove.emit($event);\n }\n\n avatarImgError($event: Event) {\n this._setAvatarSrc(null);\n this.thyError.emit($event);\n }\n}\n","@if (_src) {\n <img\n [src]=\"_src | thyAvatarSrc: _size\"\n class=\"avatar-avatar\"\n [ngClass]=\"thyImgClass\"\n alt=\"{{ avatarName || '' }}\"\n [attr.loading]=\"thyLoading\"\n [attr.fetchpriority]=\"thyFetchPriority\"\n (error)=\"avatarImgError($event)\"\n />\n} @else {\n <span class=\"avatar-default\" [ngStyle]=\"avatarName | avatarBgColor\">\n <div>{{ avatarName | avatarShortName }}</div>\n </span>\n}\n\n\n@if (thyShowName) {\n @if (avatarNameSafeHtml) {\n <div class=\"avatar-name\" [innerHtml]=\"avatarNameSafeHtml\"></div>\n } @else {\n <div class=\"avatar-name\">{{ avatarName }}</div>\n }\n}\n\n@if (_showRemove) {\n <a (click)=\"remove($event)\" href=\"javascript:;\" class=\"remove-link avatar-remove\">\n <thy-icon class=\"remove-link-icon\" thyIconName=\"close-circle-bold-fill\"></thy-icon>\n </a>\n}\n@if (thyDisabled) {\n <div class=\"thy-avatar-disabled\">\n <thy-icon class=\"thy-avatar-disabled-icon\" thyIconName=\"ban\"></thy-icon>\n </div>\n}\n","import { NgClass, NgStyle, NgTemplateOutlet } from '@angular/common';\nimport {\n AfterContentInit,\n Component,\n ContentChild,\n ContentChildren,\n HostBinding,\n Input,\n OnChanges,\n OnDestroy,\n QueryList,\n SimpleChanges,\n TemplateRef\n} from '@angular/core';\nimport { UpdateHostClassService } from 'ngx-tethys/core';\nimport { SafeAny } from 'ngx-tethys/types';\nimport { Subject } from 'rxjs';\nimport { DEFAULT_SIZE, ThyAvatar } from '../avatar.component';\nimport { takeUntil, startWith } from 'rxjs/operators';\n\nexport const THY_AVATAR_ITEM_SPACE = 4;\n\nexport const THY_OVERLAP_AVATAR_ITEM_SPACE = -8;\n\nexport const enum ThyAvatarListMode {\n overlap = 'overlap',\n default = 'default'\n}\n\n/**\n * 头像列表组件\n * @name thy-avatar-list\n * @order 20\n */\n@Component({\n selector: 'thy-avatar-list',\n templateUrl: `./avatar-list.component.html`,\n host: {\n class: 'thy-avatar-list'\n },\n providers: [UpdateHostClassService],\n standalone: true,\n imports: [NgStyle, ThyAvatar, NgClass, NgTemplateOutlet]\n})\nexport class ThyAvatarList implements OnChanges, OnDestroy, AfterContentInit {\n @HostBinding('class.thy-avatar-list-overlap') overlapMode = false;\n\n public avatarItems: ThyAvatar[] = [];\n\n private ngUnsubscribe$ = new Subject<void>();\n\n /**\n * 展示方式\n * @type overlap | default\n * @default default\n */\n @Input() thyMode: ThyAvatarListMode;\n\n /**\n * 头像大小\n * @type 16 | 22 | 24 | 28 | 32 | 36 | 44 | 48 | 68 | 110 | 160 | xxs(22px) | xs(24px) | sm(32px) | md(36px) | lg(48px)\n * @default 36\n */\n @Input() thyAvatarSize: number | string = DEFAULT_SIZE;\n\n /**\n * append 自定义操作\n */\n @ContentChild('append', { static: false }) append: TemplateRef<SafeAny>;\n\n /**\n * @private\n */\n @ContentChildren(ThyAvatar) avatarComponents: QueryList<ThyAvatar>;\n\n constructor() {}\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes.thyAvatarSize && !changes.thyAvatarSize.firstChange) {\n this.updateAvatarItems();\n }\n if (changes.thyMode) {\n this.overlapMode = changes.thyMode.currentValue === ThyAvatarListMode.overlap;\n if (!changes.thyMode.firstChange) {\n this.updateAvatarItems();\n }\n }\n }\n\n ngAfterContentInit() {\n this.avatarComponents.changes.pipe(startWith(this.avatarComponents), takeUntil(this.ngUnsubscribe$)).subscribe(() => {\n this.updateAvatarItems();\n });\n }\n\n private updateAvatarItems() {\n this.avatarItems = this.avatarComponents.toArray();\n this.avatarItems.forEach((item, index) => {\n item.thySize = this.thyAvatarSize;\n item.elementRef.nativeElement.style.zIndex = this.avatarItems.length - index;\n });\n }\n\n ngOnDestroy() {\n this.ngUnsubscribe$.next();\n this.ngUnsubscribe$.complete();\n }\n}\n","<ng-content></ng-content>\n\n@if (append) {\n <div class=\"thy-avatar-append\">\n <ng-container [ngTemplateOutlet]=\"append\"></ng-container>\n </div>\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ThyAvatar } from './avatar.component';\nimport { AvatarPipes } from './avatar.pipe';\nimport { ThyAvatarService, ThyDefaultAvatarService } from './avatar.service';\nimport { ThyIconModule } from 'ngx-tethys/icon';\nimport { ThyAvatarList } from './avatar-list/avatar-list.component';\n\n@NgModule({\n imports: [CommonModule, ThyIconModule, ThyAvatar, ThyAvatarList, AvatarPipes],\n providers: [\n {\n provide: ThyAvatarService,\n useClass: ThyDefaultAvatarService\n }\n ],\n exports: [ThyAvatar, ThyAvatarList, AvatarPipes]\n})\nexport class ThyAvatarModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.ThyAvatarService","i1.AvatarShortNamePipe","i1.AvatarBgColorPipe","i1.AvatarSrcPipe"],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
2
|
import { EventEmitter, numberAttribute, Component, ChangeDetectionStrategy, ViewEncapsulation, Inject, HostBinding, Input, Output, ViewChild, NgModule } from '@angular/core';
|
|
3
|
-
import { DOCUMENT,
|
|
3
|
+
import { DOCUMENT, NgTemplateOutlet, CommonModule } from '@angular/common';
|
|
4
4
|
import { ThyIcon, ThyIconModule } from 'ngx-tethys/icon';
|
|
5
5
|
import { BehaviorSubject, Subject, Observable, fromEvent, EMPTY } from 'rxjs';
|
|
6
6
|
import * as i2 from '@angular/cdk/platform';
|
|
@@ -101,11 +101,11 @@ class ThyBackTop {
|
|
|
101
101
|
}
|
|
102
102
|
}
|
|
103
103
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyBackTop, deps: [{ token: DOCUMENT }, { token: i1.ThyScrollService }, { token: i2.Platform }, { token: i0.ChangeDetectorRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
104
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
104
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: ThyBackTop, isStandalone: true, selector: "thy-back-top,[thyBackTop]", inputs: { thyTemplate: "thyTemplate", thyContainer: "thyContainer", thyVisibilityHeight: ["thyVisibilityHeight", "thyVisibilityHeight", numberAttribute] }, outputs: { thyClick: "thyClick", visibleChange: "visibleChange" }, host: { properties: { "class.thy-back-top-container": "this.classNames" } }, viewQueries: [{ propertyName: "backTop", first: true, predicate: ["backTop"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "@if (visible) {\n <div class=\"thy-back-top\" #backTop @fadeMotion>\n <ng-template #defaultContent>\n <div class=\"thy-back-top-content\">\n <thy-icon class=\"back-top-icon text-muted font-size-lg\" thyIconName=\"arrow-up\"></thy-icon>\n </div>\n </ng-template>\n <ng-template [ngTemplateOutlet]=\"thyTemplate || defaultContent\"></ng-template>\n </div>\n}\n", dependencies: [{ kind: "component", type: ThyIcon, selector: "thy-icon, [thy-icon]", inputs: ["thyIconType", "thyTwotoneColor", "thyIconName", "thyIconRotate", "thyIconSet", "thyIconLegging", "thyIconLinearGradient"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], animations: [fadeMotion], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
105
105
|
}
|
|
106
106
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyBackTop, decorators: [{
|
|
107
107
|
type: Component,
|
|
108
|
-
args: [{ selector: 'thy-back-top,[thyBackTop]', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, animations: [fadeMotion], standalone: true, imports: [
|
|
108
|
+
args: [{ selector: 'thy-back-top,[thyBackTop]', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, animations: [fadeMotion], standalone: true, imports: [ThyIcon, NgTemplateOutlet], template: "@if (visible) {\n <div class=\"thy-back-top\" #backTop @fadeMotion>\n <ng-template #defaultContent>\n <div class=\"thy-back-top-content\">\n <thy-icon class=\"back-top-icon text-muted font-size-lg\" thyIconName=\"arrow-up\"></thy-icon>\n </div>\n </ng-template>\n <ng-template [ngTemplateOutlet]=\"thyTemplate || defaultContent\"></ng-template>\n </div>\n}\n" }]
|
|
109
109
|
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
110
110
|
type: Inject,
|
|
111
111
|
args: [DOCUMENT]
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ngx-tethys-back-top.mjs","sources":["../../../src/back-top/back-top.component.ts","../../../src/back-top/back-top.component.html","../../../src/back-top/back-top.module.ts","../../../src/back-top/ngx-tethys-back-top.ts"],"sourcesContent":["import {\n Component,\n OnInit,\n ChangeDetectionStrategy,\n ViewEncapsulation,\n Input,\n TemplateRef,\n EventEmitter,\n Output,\n HostBinding,\n NgZone,\n ChangeDetectorRef,\n OnDestroy,\n OnChanges,\n Inject,\n ViewChild,\n ElementRef,\n numberAttribute\n} from '@angular/core';\nimport { Subject, fromEvent, BehaviorSubject, EMPTY, Observable } from 'rxjs';\nimport { Platform } from '@angular/cdk/platform';\nimport { throttleTime, takeUntil, switchMap } from 'rxjs/operators';\nimport { DOCUMENT, NgIf, NgTemplateOutlet } from '@angular/common';\nimport { fadeMotion, ThyScrollService } from 'ngx-tethys/core';\nimport { ThyIcon } from 'ngx-tethys/icon';\n\n/**\n * 回到顶部组件\n * @name thy-back-top\n */\n@Component({\n selector: 'thy-back-top,[thyBackTop]',\n templateUrl: './back-top.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n animations: [fadeMotion],\n standalone: true,\n imports: [NgIf, ThyIcon, NgTemplateOutlet]\n})\nexport class ThyBackTop implements OnInit, OnDestroy, OnChanges {\n @HostBinding('class.thy-back-top-container') classNames = true;\n\n /**\n * 自定义按钮显示模板\n */\n @Input() thyTemplate?: TemplateRef<void>;\n\n /**\n * 指定对哪个 DOM 元素返回顶部\n * @type string | HTMLElement\n * @default window\n */\n @Input() thyContainer?: string | HTMLElement;\n\n /**\n * 滚动高度达到此参数值才出现 thy-back-top\n * @type number\n */\n @Input({ transform: numberAttribute }) thyVisibilityHeight = 400;\n\n /**\n * 点击按钮的回调函数\n */\n @Output() readonly thyClick: EventEmitter<boolean> = new EventEmitter();\n\n /**\n * 监听按钮显示状态的回调函数\n */\n @Output() public visibleChange: EventEmitter<boolean> = new EventEmitter();\n\n /** The native `<div class=\"thy-back-top\"></div>` element. */\n @ViewChild('backTop', { static: false })\n set backTop(backTop: ElementRef<HTMLElement> | undefined) {\n this.backTop$.next(backTop);\n }\n\n public visible = false;\n\n /**\n * The subject used to store the native `<div class=\"thy-back-top\"></div>` since\n * it's located within the `ngIf` directive. It might be set asynchronously whenever the condition\n * is met. Having subject makes the code reactive and cancellable (e.g. event listeners will be\n * automatically removed and re-added through the `switchMap` below).\n */\n private backTop$ = new BehaviorSubject<ElementRef<HTMLElement> | undefined>(undefined);\n\n private destroy$ = new Subject<void>();\n private scrollListenerDestroy$ = new Subject<void>();\n\n private target: HTMLElement | null = null;\n\n constructor(\n @Inject(DOCUMENT) private doc: any,\n private thyScrollService: ThyScrollService,\n private platform: Platform,\n private cdr: ChangeDetectorRef,\n private zone: NgZone\n ) {\n this.backTop$\n .pipe(\n switchMap(backTop =>\n backTop\n ? new Observable(subscriber =>\n zone.runOutsideAngular(() => fromEvent(backTop.nativeElement, 'click').subscribe(subscriber))\n )\n : EMPTY\n ),\n takeUntil(this.destroy$)\n )\n .subscribe(() => {\n this.thyScrollService.scrollTo(this.getTarget(), 0);\n if (this.thyClick.observers.length) {\n zone.run(() => this.thyClick.emit(true));\n }\n });\n }\n\n ngOnInit(): void {\n this.registerScrollEvent();\n }\n\n private getTarget(): HTMLElement | Window {\n return this.target || window;\n }\n\n private handleScroll(): void {\n if (this.visible === this.thyScrollService.getScroll(this.getTarget()) > this.thyVisibilityHeight) {\n return;\n }\n this.visible = !this.visible;\n this.cdr.detectChanges();\n if (this.visibleChange.observers.length > 0) {\n this.zone.run(() => {\n this.visibleChange.emit(this.visible);\n });\n }\n }\n\n private registerScrollEvent(): void {\n if (!this.platform.isBrowser) {\n return;\n }\n this.scrollListenerDestroy$.next();\n this.handleScroll();\n this.zone.runOutsideAngular(() => {\n fromEvent(this.getTarget(), 'scroll', { passive: true })\n .pipe(throttleTime(50), takeUntil(this.scrollListenerDestroy$))\n .subscribe(() => this.handleScroll());\n });\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n this.scrollListenerDestroy$.next();\n }\n\n ngOnChanges(changes: any): void {\n const { thyContainer } = changes;\n if (thyContainer) {\n this.target = typeof this.thyContainer === 'string' ? this.doc.querySelector(this.thyContainer) : this.thyContainer;\n this.registerScrollEvent();\n }\n }\n}\n","<div class=\"thy-back-top\" #backTop @fadeMotion *ngIf=\"visible\">\n <ng-template #defaultContent>\n <div class=\"thy-back-top-content\">\n <thy-icon class=\"back-top-icon text-muted font-size-lg\" thyIconName=\"arrow-up\"></thy-icon>\n </div>\n </ng-template>\n <ng-template [ngTemplateOutlet]=\"thyTemplate || defaultContent\"></ng-template>\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ThyIconModule } from 'ngx-tethys/icon';\nimport { ThyBackTop } from './back-top.component';\n\n@NgModule({\n imports: [CommonModule, ThyIconModule, ThyBackTop],\n exports: [ThyBackTop]\n})\nexport class ThyBackTopModule {}\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-back-top.mjs","sources":["../../../src/back-top/back-top.component.ts","../../../src/back-top/back-top.component.html","../../../src/back-top/back-top.module.ts","../../../src/back-top/ngx-tethys-back-top.ts"],"sourcesContent":["import {\n Component,\n OnInit,\n ChangeDetectionStrategy,\n ViewEncapsulation,\n Input,\n TemplateRef,\n EventEmitter,\n Output,\n HostBinding,\n NgZone,\n ChangeDetectorRef,\n OnDestroy,\n OnChanges,\n Inject,\n ViewChild,\n ElementRef,\n numberAttribute\n} from '@angular/core';\nimport { Subject, fromEvent, BehaviorSubject, EMPTY, Observable } from 'rxjs';\nimport { Platform } from '@angular/cdk/platform';\nimport { throttleTime, takeUntil, switchMap } from 'rxjs/operators';\nimport { DOCUMENT, NgTemplateOutlet } from '@angular/common';\nimport { fadeMotion, ThyScrollService } from 'ngx-tethys/core';\nimport { ThyIcon } from 'ngx-tethys/icon';\n\n/**\n * 回到顶部组件\n * @name thy-back-top\n */\n@Component({\n selector: 'thy-back-top,[thyBackTop]',\n templateUrl: './back-top.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n animations: [fadeMotion],\n standalone: true,\n imports: [ThyIcon, NgTemplateOutlet]\n})\nexport class ThyBackTop implements OnInit, OnDestroy, OnChanges {\n @HostBinding('class.thy-back-top-container') classNames = true;\n\n /**\n * 自定义按钮显示模板\n */\n @Input() thyTemplate?: TemplateRef<void>;\n\n /**\n * 指定对哪个 DOM 元素返回顶部\n * @type string | HTMLElement\n * @default window\n */\n @Input() thyContainer?: string | HTMLElement;\n\n /**\n * 滚动高度达到此参数值才出现 thy-back-top\n * @type number\n */\n @Input({ transform: numberAttribute }) thyVisibilityHeight = 400;\n\n /**\n * 点击按钮的回调函数\n */\n @Output() readonly thyClick: EventEmitter<boolean> = new EventEmitter();\n\n /**\n * 监听按钮显示状态的回调函数\n */\n @Output() public visibleChange: EventEmitter<boolean> = new EventEmitter();\n\n /** The native `<div class=\"thy-back-top\"></div>` element. */\n @ViewChild('backTop', { static: false })\n set backTop(backTop: ElementRef<HTMLElement> | undefined) {\n this.backTop$.next(backTop);\n }\n\n public visible = false;\n\n /**\n * The subject used to store the native `<div class=\"thy-back-top\"></div>` since\n * it's located within the `ngIf` directive. It might be set asynchronously whenever the condition\n * is met. Having subject makes the code reactive and cancellable (e.g. event listeners will be\n * automatically removed and re-added through the `switchMap` below).\n */\n private backTop$ = new BehaviorSubject<ElementRef<HTMLElement> | undefined>(undefined);\n\n private destroy$ = new Subject<void>();\n private scrollListenerDestroy$ = new Subject<void>();\n\n private target: HTMLElement | null = null;\n\n constructor(\n @Inject(DOCUMENT) private doc: any,\n private thyScrollService: ThyScrollService,\n private platform: Platform,\n private cdr: ChangeDetectorRef,\n private zone: NgZone\n ) {\n this.backTop$\n .pipe(\n switchMap(backTop =>\n backTop\n ? new Observable(subscriber =>\n zone.runOutsideAngular(() => fromEvent(backTop.nativeElement, 'click').subscribe(subscriber))\n )\n : EMPTY\n ),\n takeUntil(this.destroy$)\n )\n .subscribe(() => {\n this.thyScrollService.scrollTo(this.getTarget(), 0);\n if (this.thyClick.observers.length) {\n zone.run(() => this.thyClick.emit(true));\n }\n });\n }\n\n ngOnInit(): void {\n this.registerScrollEvent();\n }\n\n private getTarget(): HTMLElement | Window {\n return this.target || window;\n }\n\n private handleScroll(): void {\n if (this.visible === this.thyScrollService.getScroll(this.getTarget()) > this.thyVisibilityHeight) {\n return;\n }\n this.visible = !this.visible;\n this.cdr.detectChanges();\n if (this.visibleChange.observers.length > 0) {\n this.zone.run(() => {\n this.visibleChange.emit(this.visible);\n });\n }\n }\n\n private registerScrollEvent(): void {\n if (!this.platform.isBrowser) {\n return;\n }\n this.scrollListenerDestroy$.next();\n this.handleScroll();\n this.zone.runOutsideAngular(() => {\n fromEvent(this.getTarget(), 'scroll', { passive: true })\n .pipe(throttleTime(50), takeUntil(this.scrollListenerDestroy$))\n .subscribe(() => this.handleScroll());\n });\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n this.scrollListenerDestroy$.next();\n }\n\n ngOnChanges(changes: any): void {\n const { thyContainer } = changes;\n if (thyContainer) {\n this.target = typeof this.thyContainer === 'string' ? this.doc.querySelector(this.thyContainer) : this.thyContainer;\n this.registerScrollEvent();\n }\n }\n}\n","@if (visible) {\n <div class=\"thy-back-top\" #backTop @fadeMotion>\n <ng-template #defaultContent>\n <div class=\"thy-back-top-content\">\n <thy-icon class=\"back-top-icon text-muted font-size-lg\" thyIconName=\"arrow-up\"></thy-icon>\n </div>\n </ng-template>\n <ng-template [ngTemplateOutlet]=\"thyTemplate || defaultContent\"></ng-template>\n </div>\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ThyIconModule } from 'ngx-tethys/icon';\nimport { ThyBackTop } from './back-top.component';\n\n@NgModule({\n imports: [CommonModule, ThyIconModule, ThyBackTop],\n exports: [ThyBackTop]\n})\nexport class ThyBackTopModule {}\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 * as i0 from '@angular/core';
|
|
2
2
|
import { numberAttribute, Component, ChangeDetectionStrategy, Input, NgModule } from '@angular/core';
|
|
3
|
-
import {
|
|
3
|
+
import { CommonModule } from '@angular/common';
|
|
4
4
|
import { isTextColor } from 'ngx-tethys/core';
|
|
5
5
|
import { coerceBooleanProperty } from 'ngx-tethys/util';
|
|
6
6
|
|
|
@@ -201,14 +201,14 @@ class ThyBadge {
|
|
|
201
201
|
}
|
|
202
202
|
}
|
|
203
203
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyBadge, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
204
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
204
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: ThyBadge, isStandalone: true, selector: "thy-badge,[thyBadge]", inputs: { thyType: "thyType", thyCount: ["thyCount", "thyCount", numberAttribute], thyContent: "thyContent", thyContext: "thyContext", thyMaxCount: ["thyMaxCount", "thyMaxCount", numberAttribute], thySize: "thySize", thyIsDot: ["thyIsDot", "thyIsDot", coerceBooleanProperty], thyIsHollow: ["thyIsHollow", "thyIsHollow", coerceBooleanProperty], thyKeepShow: ["thyKeepShow", "thyKeepShow", coerceBooleanProperty], thyTextColor: "thyTextColor", thyBackgroundColor: "thyBackgroundColor" }, host: { properties: { "class.thy-badge-wrapper": "isWrapper" }, classAttribute: "thy-badge-container" }, ngImport: i0, template: "@if (isShowBadge) {\n <div class=\"thy-badge {{ badgeClassName }}\" [style.color]=\"textColor\" [style.backgroundColor]=\"backgroundColor\">\n <span>{{ displayContent }}</span>\n </div>\n}\n<ng-content></ng-content>\n", changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
205
205
|
}
|
|
206
206
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyBadge, decorators: [{
|
|
207
207
|
type: Component,
|
|
208
208
|
args: [{ selector: 'thy-badge,[thyBadge]', changeDetection: ChangeDetectionStrategy.OnPush, host: {
|
|
209
209
|
class: 'thy-badge-container',
|
|
210
210
|
'[class.thy-badge-wrapper]': 'isWrapper'
|
|
211
|
-
}, standalone: true, imports: [
|
|
211
|
+
}, standalone: true, imports: [], template: "@if (isShowBadge) {\n <div class=\"thy-badge {{ badgeClassName }}\" [style.color]=\"textColor\" [style.backgroundColor]=\"backgroundColor\">\n <span>{{ displayContent }}</span>\n </div>\n}\n<ng-content></ng-content>\n" }]
|
|
212
212
|
}], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { thyType: [{
|
|
213
213
|
type: Input
|
|
214
214
|
}], thyCount: [{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ngx-tethys-badge.mjs","sources":["../../../src/badge/badge.component.ts","../../../src/badge/badge.component.html","../../../src/badge/badge.module.ts","../../../src/badge/ngx-tethys-badge.ts"],"sourcesContent":["import { isTextColor } from 'ngx-tethys/core';\n\nimport { ChangeDetectionStrategy, Component, ElementRef, Input, OnInit, numberAttribute } from '@angular/core';\nimport { NgIf } from '@angular/common';\nimport { coerceBooleanProperty } from 'ngx-tethys/util';\n\nexport type ThyBadgeSize = 'md' | 'sm' | 'lg';\n\n/**\n * 徽标组件,支持组件`thy-badge`和`thyBadge`指令两种使用方式\n * @name thy-badge,[thyBadge]\n */\n@Component({\n selector: 'thy-badge,[thyBadge]',\n templateUrl: './badge.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'thy-badge-container',\n '[class.thy-badge-wrapper]': 'isWrapper'\n },\n standalone: true,\n imports: [NgIf]\n})\nexport class ThyBadge implements OnInit {\n displayContent = '';\n\n badgeClassName = '';\n\n private nativeElement: any;\n\n private initialized = false;\n\n // 是否包裹在元素上\n protected isWrapper = false;\n\n public isShowBadge = true;\n\n private keepShowValue = false;\n\n private value: number | string = '';\n\n private valueHasBeenSet = false;\n\n private maxCount: number;\n\n private type: string;\n\n private size: ThyBadgeSize;\n\n private isDot: boolean;\n\n private isHollow: boolean;\n\n protected textColor: string;\n\n protected builtInTextColorClass: string;\n\n protected backgroundColor: string;\n\n protected builtInBackgroundColorClass: string;\n\n protected supClasses: string[] = [];\n\n constructor(private elementRef: ElementRef) {\n this.nativeElement = this.elementRef.nativeElement;\n }\n\n /**\n * 徽标类型\n * @type default | primary | danger | warning | success\n * @default danger\n */\n @Input()\n set thyType(value: string) {\n this.type = value;\n if (this.initialized) {\n this.combineBadgeClasses();\n }\n }\n\n /**\n * 徽标内容数字\n * @type number\n */\n @Input({ transform: numberAttribute })\n set thyCount(value: number) {\n this.value = value;\n this.valueHasBeenSet = true;\n if (this.initialized) {\n this.combineBadgeDisplayContent();\n this.combineBadgeClasses();\n }\n }\n\n /**\n * 徽标内容文本\n * @type string\n */\n @Input()\n set thyContent(value: string) {\n this.value = value;\n this.valueHasBeenSet = true;\n if (this.initialized) {\n this.combineBadgeDisplayContent();\n this.combineBadgeClasses();\n }\n }\n\n /**\n * 已废弃,徽标内容文本,命名错误,请使用 thyContent\n * @deprecated\n */\n @Input()\n set thyContext(value: string) {\n this.thyContent = value;\n }\n\n /**\n * 徽标显示的最大值, 与 thyCount 一起使用,thyCount 超过了 thyMaxCount 设置的值时,徽标内容为 thyMaxCount+\n * @type number\n */\n @Input({ transform: numberAttribute })\n set thyMaxCount(value: number) {\n this.maxCount = value;\n if (this.initialized) {\n this.combineBadgeDisplayContent();\n this.combineBadgeClasses();\n }\n }\n\n /**\n * 徽标显示的大小\n * @type md | sm | lg\n * @default md\n */\n @Input()\n set thySize(value: ThyBadgeSize) {\n this.size = value;\n\n if (this.initialized) {\n this.combineBadgeClasses();\n }\n }\n\n /**\n * 已废弃,徽标是一个实心点,已经被废弃\n * @deprecated\n */\n @Input({ transform: coerceBooleanProperty })\n set thyIsDot(value: boolean) {\n this.isDot = value;\n if (this.initialized) {\n this.combineBadgeClasses();\n }\n }\n\n /**\n * 已废弃,徽标是一个空心点\n * @deprecated\n */\n @Input({ transform: coerceBooleanProperty })\n set thyIsHollow(value: boolean) {\n this.isHollow = value;\n if (this.initialized) {\n this.combineBadgeClasses();\n }\n }\n\n /**\n * thyCount 为 0 时,强制显示数字 0,默认不显示\n * @default false\n */\n @Input({ transform: coerceBooleanProperty })\n set thyKeepShow(value: boolean) {\n this.keepShowValue = value;\n if (this.initialized) {\n this.combineBadgeDisplayContent();\n }\n }\n\n /**\n * 设置徽标字体的颜色,支持内置颜色和自定义颜色 'primary' | '#87d068' | ...\n * @type string\n */\n @Input()\n set thyTextColor(value: string) {\n if (isTextColor(value)) {\n this.builtInTextColorClass = `text-${value}`;\n this.textColor = null;\n } else {\n this.textColor = value;\n this.builtInTextColorClass = null;\n }\n if (this.initialized) {\n this.combineBadgeClasses();\n }\n }\n\n /**\n * 设置徽标的背景颜色,支持内置颜色和自定义颜色 'primary' | '#87d068' | ...\n * @type string\n */\n @Input()\n set thyBackgroundColor(value: string) {\n if (isTextColor(value)) {\n this.builtInBackgroundColorClass = `bg-${value}`;\n this.backgroundColor = null;\n } else {\n this.backgroundColor = value;\n this.builtInBackgroundColorClass = null;\n }\n if (this.initialized) {\n this.combineBadgeClasses();\n }\n }\n\n ngOnInit() {\n let childNodeCount = 0;\n this.nativeElement.childNodes.forEach((n: HTMLElement) => {\n if (['#comment'].indexOf(n.nodeName) < 0) {\n childNodeCount++;\n }\n });\n this.isWrapper = childNodeCount > 0;\n\n this.combineBadgeClasses();\n\n if (this.valueHasBeenSet) {\n this.combineBadgeDisplayContent();\n }\n\n this.initialized = true;\n }\n\n private combineBadgeClasses() {\n const classes: string[] = [];\n classes.push(`thy-badge-${this.type || 'danger'}`);\n if (this.size) {\n classes.push(`thy-badge-${this.size}`);\n }\n if (this.isDot) {\n classes.push(`thy-badge-dot`);\n } else if (this.isHollow) {\n classes.push(`thy-badge-hollow`);\n } else {\n classes.push(`thy-badge-count`);\n }\n\n if (this.builtInTextColorClass) {\n classes.push(this.builtInTextColorClass);\n }\n if (this.builtInBackgroundColorClass) {\n classes.push(this.builtInBackgroundColorClass);\n }\n this.badgeClassName = classes.join(' ');\n }\n\n private combineBadgeDisplayContent() {\n this.displayContent = this.value as string;\n if (this.value && this.maxCount != undefined && (this.value as number) > this.maxCount) {\n this.displayContent = `${this.maxCount}+`;\n }\n\n if (!this.value && !this.keepShowValue) {\n this.isShowBadge = false;\n } else {\n this.isShowBadge = true;\n }\n }\n}\n","<div *ngIf=\"isShowBadge\" class=\"thy-badge {{ badgeClassName }}\" [style.color]=\"textColor\" [style.backgroundColor]=\"backgroundColor\">\n <span>{{ displayContent }}</span>\n</div>\n<ng-content></ng-content>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ThyBadge } from './badge.component';\n\n@NgModule({\n imports: [CommonModule, ThyBadge],\n exports: [ThyBadge]\n})\nexport class ThyBadgeModule {\n constructor() {}\n}\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-badge.mjs","sources":["../../../src/badge/badge.component.ts","../../../src/badge/badge.component.html","../../../src/badge/badge.module.ts","../../../src/badge/ngx-tethys-badge.ts"],"sourcesContent":["import { isTextColor } from 'ngx-tethys/core';\n\nimport { ChangeDetectionStrategy, Component, ElementRef, Input, OnInit, numberAttribute } from '@angular/core';\n\nimport { coerceBooleanProperty } from 'ngx-tethys/util';\n\nexport type ThyBadgeSize = 'md' | 'sm' | 'lg';\n\n/**\n * 徽标组件,支持组件`thy-badge`和`thyBadge`指令两种使用方式\n * @name thy-badge,[thyBadge]\n */\n@Component({\n selector: 'thy-badge,[thyBadge]',\n templateUrl: './badge.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'thy-badge-container',\n '[class.thy-badge-wrapper]': 'isWrapper'\n },\n standalone: true,\n imports: []\n})\nexport class ThyBadge implements OnInit {\n displayContent = '';\n\n badgeClassName = '';\n\n private nativeElement: any;\n\n private initialized = false;\n\n // 是否包裹在元素上\n protected isWrapper = false;\n\n public isShowBadge = true;\n\n private keepShowValue = false;\n\n private value: number | string = '';\n\n private valueHasBeenSet = false;\n\n private maxCount: number;\n\n private type: string;\n\n private size: ThyBadgeSize;\n\n private isDot: boolean;\n\n private isHollow: boolean;\n\n protected textColor: string;\n\n protected builtInTextColorClass: string;\n\n protected backgroundColor: string;\n\n protected builtInBackgroundColorClass: string;\n\n protected supClasses: string[] = [];\n\n constructor(private elementRef: ElementRef) {\n this.nativeElement = this.elementRef.nativeElement;\n }\n\n /**\n * 徽标类型\n * @type default | primary | danger | warning | success\n * @default danger\n */\n @Input()\n set thyType(value: string) {\n this.type = value;\n if (this.initialized) {\n this.combineBadgeClasses();\n }\n }\n\n /**\n * 徽标内容数字\n * @type number\n */\n @Input({ transform: numberAttribute })\n set thyCount(value: number) {\n this.value = value;\n this.valueHasBeenSet = true;\n if (this.initialized) {\n this.combineBadgeDisplayContent();\n this.combineBadgeClasses();\n }\n }\n\n /**\n * 徽标内容文本\n * @type string\n */\n @Input()\n set thyContent(value: string) {\n this.value = value;\n this.valueHasBeenSet = true;\n if (this.initialized) {\n this.combineBadgeDisplayContent();\n this.combineBadgeClasses();\n }\n }\n\n /**\n * 已废弃,徽标内容文本,命名错误,请使用 thyContent\n * @deprecated\n */\n @Input()\n set thyContext(value: string) {\n this.thyContent = value;\n }\n\n /**\n * 徽标显示的最大值, 与 thyCount 一起使用,thyCount 超过了 thyMaxCount 设置的值时,徽标内容为 thyMaxCount+\n * @type number\n */\n @Input({ transform: numberAttribute })\n set thyMaxCount(value: number) {\n this.maxCount = value;\n if (this.initialized) {\n this.combineBadgeDisplayContent();\n this.combineBadgeClasses();\n }\n }\n\n /**\n * 徽标显示的大小\n * @type md | sm | lg\n * @default md\n */\n @Input()\n set thySize(value: ThyBadgeSize) {\n this.size = value;\n\n if (this.initialized) {\n this.combineBadgeClasses();\n }\n }\n\n /**\n * 已废弃,徽标是一个实心点,已经被废弃\n * @deprecated\n */\n @Input({ transform: coerceBooleanProperty })\n set thyIsDot(value: boolean) {\n this.isDot = value;\n if (this.initialized) {\n this.combineBadgeClasses();\n }\n }\n\n /**\n * 已废弃,徽标是一个空心点\n * @deprecated\n */\n @Input({ transform: coerceBooleanProperty })\n set thyIsHollow(value: boolean) {\n this.isHollow = value;\n if (this.initialized) {\n this.combineBadgeClasses();\n }\n }\n\n /**\n * thyCount 为 0 时,强制显示数字 0,默认不显示\n * @default false\n */\n @Input({ transform: coerceBooleanProperty })\n set thyKeepShow(value: boolean) {\n this.keepShowValue = value;\n if (this.initialized) {\n this.combineBadgeDisplayContent();\n }\n }\n\n /**\n * 设置徽标字体的颜色,支持内置颜色和自定义颜色 'primary' | '#87d068' | ...\n * @type string\n */\n @Input()\n set thyTextColor(value: string) {\n if (isTextColor(value)) {\n this.builtInTextColorClass = `text-${value}`;\n this.textColor = null;\n } else {\n this.textColor = value;\n this.builtInTextColorClass = null;\n }\n if (this.initialized) {\n this.combineBadgeClasses();\n }\n }\n\n /**\n * 设置徽标的背景颜色,支持内置颜色和自定义颜色 'primary' | '#87d068' | ...\n * @type string\n */\n @Input()\n set thyBackgroundColor(value: string) {\n if (isTextColor(value)) {\n this.builtInBackgroundColorClass = `bg-${value}`;\n this.backgroundColor = null;\n } else {\n this.backgroundColor = value;\n this.builtInBackgroundColorClass = null;\n }\n if (this.initialized) {\n this.combineBadgeClasses();\n }\n }\n\n ngOnInit() {\n let childNodeCount = 0;\n this.nativeElement.childNodes.forEach((n: HTMLElement) => {\n if (['#comment'].indexOf(n.nodeName) < 0) {\n childNodeCount++;\n }\n });\n this.isWrapper = childNodeCount > 0;\n\n this.combineBadgeClasses();\n\n if (this.valueHasBeenSet) {\n this.combineBadgeDisplayContent();\n }\n\n this.initialized = true;\n }\n\n private combineBadgeClasses() {\n const classes: string[] = [];\n classes.push(`thy-badge-${this.type || 'danger'}`);\n if (this.size) {\n classes.push(`thy-badge-${this.size}`);\n }\n if (this.isDot) {\n classes.push(`thy-badge-dot`);\n } else if (this.isHollow) {\n classes.push(`thy-badge-hollow`);\n } else {\n classes.push(`thy-badge-count`);\n }\n\n if (this.builtInTextColorClass) {\n classes.push(this.builtInTextColorClass);\n }\n if (this.builtInBackgroundColorClass) {\n classes.push(this.builtInBackgroundColorClass);\n }\n this.badgeClassName = classes.join(' ');\n }\n\n private combineBadgeDisplayContent() {\n this.displayContent = this.value as string;\n if (this.value && this.maxCount != undefined && (this.value as number) > this.maxCount) {\n this.displayContent = `${this.maxCount}+`;\n }\n\n if (!this.value && !this.keepShowValue) {\n this.isShowBadge = false;\n } else {\n this.isShowBadge = true;\n }\n }\n}\n","@if (isShowBadge) {\n <div class=\"thy-badge {{ badgeClassName }}\" [style.color]=\"textColor\" [style.backgroundColor]=\"backgroundColor\">\n <span>{{ displayContent }}</span>\n </div>\n}\n<ng-content></ng-content>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ThyBadge } from './badge.component';\n\n@NgModule({\n imports: [CommonModule, ThyBadge],\n exports: [ThyBadge]\n})\nexport class ThyBadgeModule {\n constructor() {}\n}\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 * as i0 from '@angular/core';
|
|
2
2
|
import { Component, ChangeDetectionStrategy, numberAttribute, Input, ContentChild, NgModule } from '@angular/core';
|
|
3
|
-
import {
|
|
3
|
+
import { NgClass, NgTemplateOutlet, CommonModule } from '@angular/common';
|
|
4
4
|
import { ThyIcon, ThyIconModule } from 'ngx-tethys/icon';
|
|
5
5
|
import { ThyDropdownDirective, ThyDropdownMenuItemDirective, ThyDropdownMenuComponent, ThyDropdownMenuItemNameDirective, ThyDropdownModule } from 'ngx-tethys/dropdown';
|
|
6
6
|
import { ThyAction, ThyActionModule } from 'ngx-tethys/action';
|
|
@@ -119,7 +119,7 @@ class ThyBreadcrumb {
|
|
|
119
119
|
}
|
|
120
120
|
}
|
|
121
121
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyBreadcrumb, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
122
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
122
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: ThyBreadcrumb, isStandalone: true, selector: "thy-breadcrumb", inputs: { thyIcon: "thyIcon", thySeparator: "thySeparator", items: ["thyItems", "items"], thyMaxCount: ["thyMaxCount", "thyMaxCount", numberAttribute], thyExpandable: ["thyExpandable", "thyExpandable", coerceBooleanProperty] }, host: { properties: { "class.thy-breadcrumb-separator": "!!thySeparator", "class.thy-breadcrumb-separator-slash": "thySeparator === \"slash\"", "class.thy-breadcrumb-separator-backslash": "thySeparator === \"backslash\"", "class.thy-breadcrumb-separator-vertical-line": "thySeparator === \"vertical-line\"" }, classAttribute: "thy-breadcrumb" }, queries: [{ propertyName: "itemTemplate", first: true, predicate: ["item"], descendants: true }], exportAs: ["ThyBreadcrumb"], usesOnChanges: true, ngImport: i0, template: "@if (svgIconName || iconClasses) {\n <div class=\"thy-breadcrumb-icon\">\n @if (svgIconName) {\n <thy-icon [thyIconName]=\"svgIconName\"></thy-icon>\n } @else {\n <i [ngClass]=\"iconClasses\"></i>\n }\n </div>\n}\n\n@for (item of showItems; track $index) {\n <thy-breadcrumb-item class=\"thy-breadcrumb-item-ellipsis\">\n @if (item?._id !== ellipsisItemId) {\n <ng-container *ngTemplateOutlet=\"itemContentTpl; context: { $implicit: item }\"></ng-container>\n } @else {\n <a\n thyAction\n href=\"javascript:;\"\n thyActionIcon=\"more\"\n thyActiveClass=\"active\"\n [class.disabled]=\"!thyExpandable\"\n class=\"ellipsis-action ml-n1 mr-n1\"\n [thyDropdown]=\"ellipsisList\"></a>\n }\n </thy-breadcrumb-item>\n}\n\n<ng-template #ellipsisList>\n <thy-dropdown-menu thyImmediateRender>\n @for (item of ellipsisItems; track $index) {\n <a thyDropdownMenuItem href=\"javascript:;\">\n <ng-template *ngTemplateOutlet=\"itemContentTpl; context: { $implicit: item }\"></ng-template>\n </a>\n }\n </thy-dropdown-menu>\n</ng-template>\n\n<ng-template #itemContentTpl let-item>\n @if (itemTemplate) {\n <ng-template *ngTemplateOutlet=\"itemTemplate; context: { $implicit: item }\"></ng-template>\n } @else {\n @if (item?.icon) {\n <thy-icon [thyIconName]=\"item.icon\" class=\"mr-2\"></thy-icon>\n }\n @if (item?.name) {\n <span>{{ item.name }}</span>\n }\n }\n</ng-template>\n\n<ng-content></ng-content>\n", dependencies: [{ kind: "component", type: ThyIcon, selector: "thy-icon, [thy-icon]", inputs: ["thyIconType", "thyTwotoneColor", "thyIconName", "thyIconRotate", "thyIconSet", "thyIconLegging", "thyIconLinearGradient"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: ThyBreadcrumbItem, selector: "thy-breadcrumb-item,[thyBreadcrumbItem]", exportAs: ["ThyBreadcrumbItem"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: ThyAction, selector: "thy-action, [thyAction]", inputs: ["thyType", "thyIcon", "thyActionIcon", "thyActive", "thyActionActive", "thyTheme", "thyHoverIcon", "thyDisabled"] }, { kind: "directive", type: ThyDropdownDirective, selector: "[thyDropdown]", inputs: ["thyDropdownMenu", "thyDropdown", "thyTrigger", "thyShowDelay", "thyHideDelay", "thyActiveClass", "thyPopoverOptions", "thyPlacement", "thyMenuInsideClosable", "thyPanelClass"], outputs: ["thyActiveChange"] }, { kind: "directive", type: ThyDropdownMenuItemDirective, selector: "[thyDropdownMenuItem]", inputs: ["thyType", "thyDisabled"] }, { kind: "component", type: ThyDropdownMenuComponent, selector: "thy-dropdown-menu", inputs: ["thyWidth", "thyImmediateRender"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
123
123
|
}
|
|
124
124
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyBreadcrumb, decorators: [{
|
|
125
125
|
type: Component,
|
|
@@ -130,8 +130,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
|
|
|
130
130
|
'[class.thy-breadcrumb-separator-backslash]': 'thySeparator === "backslash"',
|
|
131
131
|
'[class.thy-breadcrumb-separator-vertical-line]': 'thySeparator === "vertical-line"'
|
|
132
132
|
}, standalone: true, imports: [
|
|
133
|
-
NgIf,
|
|
134
|
-
NgFor,
|
|
135
133
|
ThyIcon,
|
|
136
134
|
NgClass,
|
|
137
135
|
ThyBreadcrumbItem,
|
|
@@ -142,7 +140,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
|
|
|
142
140
|
ThyDropdownMenuItemNameDirective,
|
|
143
141
|
ThyDropdownMenuComponent,
|
|
144
142
|
ThyIcon
|
|
145
|
-
], template: "<div class=\"thy-breadcrumb-icon\"
|
|
143
|
+
], template: "@if (svgIconName || iconClasses) {\n <div class=\"thy-breadcrumb-icon\">\n @if (svgIconName) {\n <thy-icon [thyIconName]=\"svgIconName\"></thy-icon>\n } @else {\n <i [ngClass]=\"iconClasses\"></i>\n }\n </div>\n}\n\n@for (item of showItems; track $index) {\n <thy-breadcrumb-item class=\"thy-breadcrumb-item-ellipsis\">\n @if (item?._id !== ellipsisItemId) {\n <ng-container *ngTemplateOutlet=\"itemContentTpl; context: { $implicit: item }\"></ng-container>\n } @else {\n <a\n thyAction\n href=\"javascript:;\"\n thyActionIcon=\"more\"\n thyActiveClass=\"active\"\n [class.disabled]=\"!thyExpandable\"\n class=\"ellipsis-action ml-n1 mr-n1\"\n [thyDropdown]=\"ellipsisList\"></a>\n }\n </thy-breadcrumb-item>\n}\n\n<ng-template #ellipsisList>\n <thy-dropdown-menu thyImmediateRender>\n @for (item of ellipsisItems; track $index) {\n <a thyDropdownMenuItem href=\"javascript:;\">\n <ng-template *ngTemplateOutlet=\"itemContentTpl; context: { $implicit: item }\"></ng-template>\n </a>\n }\n </thy-dropdown-menu>\n</ng-template>\n\n<ng-template #itemContentTpl let-item>\n @if (itemTemplate) {\n <ng-template *ngTemplateOutlet=\"itemTemplate; context: { $implicit: item }\"></ng-template>\n } @else {\n @if (item?.icon) {\n <thy-icon [thyIconName]=\"item.icon\" class=\"mr-2\"></thy-icon>\n }\n @if (item?.name) {\n <span>{{ item.name }}</span>\n }\n }\n</ng-template>\n\n<ng-content></ng-content>\n" }]
|
|
146
144
|
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { thyIcon: [{
|
|
147
145
|
type: Input
|
|
148
146
|
}], thySeparator: [{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ngx-tethys-breadcrumb.mjs","sources":["../../../src/breadcrumb/breadcrumb-item.component.ts","../../../src/breadcrumb/breadcrumb.component.ts","../../../src/breadcrumb/breadcrumb.component.html","../../../src/breadcrumb/module.ts","../../../src/breadcrumb/ngx-tethys-breadcrumb.ts"],"sourcesContent":["import { Component, ChangeDetectionStrategy, AfterViewInit, ElementRef, Renderer2 } from '@angular/core';\nimport { ThyIcon } from 'ngx-tethys/icon';\n\n/**\n * 面包屑 Item 组件\n * @name thy-breadcrumb-item,[thyBreadcrumbItem]\n * @order 20\n */\n@Component({\n selector: 'thy-breadcrumb-item,[thyBreadcrumbItem]',\n template: '<ng-content></ng-content><thy-icon class=\"separator-icon\" thyIconName=\"angle-right\"></thy-icon>',\n exportAs: 'ThyBreadcrumbItem',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'thy-breadcrumb-item'\n },\n standalone: true,\n imports: [ThyIcon]\n})\nexport class ThyBreadcrumbItem implements AfterViewInit {\n constructor(\n private renderer: Renderer2,\n private elementRef: ElementRef\n ) {}\n\n ngAfterViewInit() {\n this.wrapSpanForText(this.elementRef.nativeElement.childNodes);\n const link: HTMLElement = this.elementRef.nativeElement.querySelector('a');\n if (link && link.childNodes) {\n this.wrapSpanForText(link.childNodes);\n }\n }\n\n private wrapSpanForText(nodes: NodeList): void {\n nodes.forEach(node => {\n if (node.nodeName === '#text') {\n const span = this.renderer.createElement('span');\n const parent = this.renderer.parentNode(node);\n this.renderer.addClass(span, 'thy-wrap-span');\n this.renderer.insertBefore(parent, span, node);\n this.renderer.appendChild(span, node);\n }\n });\n }\n}\n","import {\n Component,\n ChangeDetectionStrategy,\n Input,\n ContentChild,\n TemplateRef,\n numberAttribute,\n OnChanges,\n SimpleChanges,\n OnInit,\n ChangeDetectorRef\n} from '@angular/core';\nimport { ThyIcon } from 'ngx-tethys/icon';\nimport { NgIf, NgClass, NgTemplateOutlet, NgFor } from '@angular/common';\nimport { ThyBreadcrumbItem } from './breadcrumb-item.component';\nimport { SafeAny } from 'ngx-tethys/types';\nimport {\n ThyDropdownDirective,\n ThyDropdownMenuComponent,\n ThyDropdownMenuItemDirective,\n ThyDropdownMenuItemNameDirective\n} from 'ngx-tethys/dropdown';\nimport { ThyAction } from 'ngx-tethys/action';\nimport { coerceBooleanProperty } from 'ngx-tethys/util';\n\nconst THY_BREADCRUMB_ITEM_ELLIPSIS_ID = 'THY_BREADCRUMB_ITEM_ELLIPSIS_ID';\n\nconst ELLIPSIS_ITEM = { _id: THY_BREADCRUMB_ITEM_ELLIPSIS_ID };\n\n/**\n * 面包屑组件\n * @name thy-breadcrumb\n * @order 10\n */\n@Component({\n selector: 'thy-breadcrumb',\n templateUrl: './breadcrumb.component.html',\n exportAs: 'ThyBreadcrumb',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'thy-breadcrumb',\n '[class.thy-breadcrumb-separator]': '!!thySeparator',\n '[class.thy-breadcrumb-separator-slash]': 'thySeparator === \"slash\"',\n '[class.thy-breadcrumb-separator-backslash]': 'thySeparator === \"backslash\"',\n '[class.thy-breadcrumb-separator-vertical-line]': 'thySeparator === \"vertical-line\"'\n },\n standalone: true,\n imports: [\n NgIf,\n NgFor,\n ThyIcon,\n NgClass,\n ThyBreadcrumbItem,\n NgTemplateOutlet,\n ThyAction,\n ThyDropdownDirective,\n ThyDropdownMenuItemDirective,\n ThyDropdownMenuItemNameDirective,\n ThyDropdownMenuComponent,\n ThyIcon\n ]\n})\nexport class ThyBreadcrumb implements OnInit, OnChanges {\n iconClasses: string[];\n svgIconName: string;\n\n /**\n * 面包屑的前缀 展示图标,如 folder-fill\n */\n @Input()\n set thyIcon(icon: string) {\n this.setIcon(icon);\n }\n\n /**\n * 面包屑的分隔符,不传值默认为 \">\"\n * @type slash | backslash | vertical-line\n */\n @Input() thySeparator: 'slash' | 'backslash' | 'vertical-line';\n\n /**\n * 面包屑的每一项数据\n */\n @Input({ alias: 'thyItems' }) items: SafeAny[];\n\n /**\n * 最大显示数量,超出此数量后,面包屑会被省略, 0 表示不省略(仅当传入 thyItems 时有效)\n */\n @Input({ transform: numberAttribute }) thyMaxCount = 4;\n\n /**\n * 是否可点击弹出已被省略的面包屑项(仅当传入 thyItems 时有效)\n */\n @Input({ transform: coerceBooleanProperty }) thyExpandable = true;\n\n /**\n * 面包屑的每一项模板(仅当传入 thyItems 时有效)\n */\n @ContentChild('item') itemTemplate: TemplateRef<SafeAny>;\n\n public ellipsisItemId = THY_BREADCRUMB_ITEM_ELLIPSIS_ID;\n\n public ellipsisItems: SafeAny[];\n\n public showItems: SafeAny[];\n\n constructor(private cdr: ChangeDetectorRef) {}\n\n ngOnInit() {\n this.resetItems();\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if ((changes.items && !changes.items.firstChange) || (changes.thyMaxCount && !changes.thyMaxCount.firstChange)) {\n this.resetItems();\n }\n }\n\n private setIcon(icon: string) {\n if (icon) {\n if (icon.includes('wtf')) {\n const classes = icon.split(' ');\n if (classes.length === 1) {\n classes.unshift('wtf');\n }\n this.iconClasses = classes;\n } else {\n this.svgIconName = icon;\n }\n } else {\n this.iconClasses = null;\n this.svgIconName = null;\n }\n }\n\n private resetItems() {\n if (!this.items?.length) {\n return;\n }\n if (this.thyMaxCount && this.items.length > this.thyMaxCount) {\n const ellipsisIndex = this.items.length - this.thyMaxCount + 2;\n this.ellipsisItems = this.items.slice(1, ellipsisIndex);\n this.showItems = [this.items[0], ELLIPSIS_ITEM, ...this.items.slice(ellipsisIndex)];\n } else {\n this.showItems = [...this.items];\n this.ellipsisItems = [];\n }\n }\n}\n","<div class=\"thy-breadcrumb-icon\" *ngIf=\"svgIconName || iconClasses\">\n <thy-icon *ngIf=\"svgIconName; else iconFont\" [thyIconName]=\"svgIconName\"></thy-icon>\n <ng-template #iconFont>\n <i [ngClass]=\"iconClasses\"></i>\n </ng-template>\n</div>\n\n<ng-container *ngFor=\"let item of showItems\">\n <thy-breadcrumb-item class=\"thy-breadcrumb-item-ellipsis\">\n <ng-container *ngIf=\"item?._id !== ellipsisItemId; else ellipsisTpl\">\n <ng-container *ngTemplateOutlet=\"itemContentTpl; context: { $implicit: item }\"></ng-container>\n </ng-container>\n <ng-template #ellipsisTpl>\n <a\n thyAction\n href=\"javascript:;\"\n thyActionIcon=\"more\"\n thyActiveClass=\"active\"\n [class.disabled]=\"!thyExpandable\"\n class=\"ellipsis-action ml-n1 mr-n1\"\n [thyDropdown]=\"ellipsisList\"\n ></a>\n </ng-template>\n </thy-breadcrumb-item>\n</ng-container>\n\n<ng-template #ellipsisList>\n <thy-dropdown-menu thyImmediateRender>\n <a thyDropdownMenuItem *ngFor=\"let item of ellipsisItems\" href=\"javascript:;\">\n <ng-template *ngTemplateOutlet=\"itemContentTpl; context: { $implicit: item }\"></ng-template>\n </a>\n </thy-dropdown-menu>\n</ng-template>\n\n<ng-template #itemContentTpl let-item>\n <ng-container *ngIf=\"itemTemplate; else defaultItemTpl\">\n <ng-template *ngTemplateOutlet=\"itemTemplate; context: { $implicit: item }\"></ng-template>\n </ng-container>\n <ng-template #defaultItemTpl>\n <thy-icon *ngIf=\"item?.icon\" [thyIconName]=\"item.icon\" class=\"mr-2\"></thy-icon>\n <span *ngIf=\"item?.name\">{{ item.name }}</span>\n </ng-template>\n</ng-template>\n\n<ng-content></ng-content>","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ThyBreadcrumb } from './breadcrumb.component';\nimport { ThyBreadcrumbItem } from './breadcrumb-item.component';\nimport { ThyIconModule } from 'ngx-tethys/icon';\nimport { ThyActionModule } from 'ngx-tethys/action';\nimport { ThyDropdownModule } from 'ngx-tethys/dropdown';\n\n@NgModule({\n imports: [CommonModule, ThyIconModule, ThyBreadcrumb, ThyBreadcrumbItem, ThyActionModule, ThyDropdownModule],\n exports: [ThyBreadcrumb, ThyBreadcrumbItem]\n})\nexport class ThyBreadcrumbModule {}\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-breadcrumb.mjs","sources":["../../../src/breadcrumb/breadcrumb-item.component.ts","../../../src/breadcrumb/breadcrumb.component.ts","../../../src/breadcrumb/breadcrumb.component.html","../../../src/breadcrumb/module.ts","../../../src/breadcrumb/ngx-tethys-breadcrumb.ts"],"sourcesContent":["import { Component, ChangeDetectionStrategy, AfterViewInit, ElementRef, Renderer2 } from '@angular/core';\nimport { ThyIcon } from 'ngx-tethys/icon';\n\n/**\n * 面包屑 Item 组件\n * @name thy-breadcrumb-item,[thyBreadcrumbItem]\n * @order 20\n */\n@Component({\n selector: 'thy-breadcrumb-item,[thyBreadcrumbItem]',\n template: '<ng-content></ng-content><thy-icon class=\"separator-icon\" thyIconName=\"angle-right\"></thy-icon>',\n exportAs: 'ThyBreadcrumbItem',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'thy-breadcrumb-item'\n },\n standalone: true,\n imports: [ThyIcon]\n})\nexport class ThyBreadcrumbItem implements AfterViewInit {\n constructor(\n private renderer: Renderer2,\n private elementRef: ElementRef\n ) {}\n\n ngAfterViewInit() {\n this.wrapSpanForText(this.elementRef.nativeElement.childNodes);\n const link: HTMLElement = this.elementRef.nativeElement.querySelector('a');\n if (link && link.childNodes) {\n this.wrapSpanForText(link.childNodes);\n }\n }\n\n private wrapSpanForText(nodes: NodeList): void {\n nodes.forEach(node => {\n if (node.nodeName === '#text') {\n const span = this.renderer.createElement('span');\n const parent = this.renderer.parentNode(node);\n this.renderer.addClass(span, 'thy-wrap-span');\n this.renderer.insertBefore(parent, span, node);\n this.renderer.appendChild(span, node);\n }\n });\n }\n}\n","import {\n Component,\n ChangeDetectionStrategy,\n Input,\n ContentChild,\n TemplateRef,\n numberAttribute,\n OnChanges,\n SimpleChanges,\n OnInit,\n ChangeDetectorRef\n} from '@angular/core';\nimport { ThyIcon } from 'ngx-tethys/icon';\nimport { NgClass, NgTemplateOutlet } from '@angular/common';\nimport { ThyBreadcrumbItem } from './breadcrumb-item.component';\nimport { SafeAny } from 'ngx-tethys/types';\nimport {\n ThyDropdownDirective,\n ThyDropdownMenuComponent,\n ThyDropdownMenuItemDirective,\n ThyDropdownMenuItemNameDirective\n} from 'ngx-tethys/dropdown';\nimport { ThyAction } from 'ngx-tethys/action';\nimport { coerceBooleanProperty } from 'ngx-tethys/util';\n\nconst THY_BREADCRUMB_ITEM_ELLIPSIS_ID = 'THY_BREADCRUMB_ITEM_ELLIPSIS_ID';\n\nconst ELLIPSIS_ITEM = { _id: THY_BREADCRUMB_ITEM_ELLIPSIS_ID };\n\n/**\n * 面包屑组件\n * @name thy-breadcrumb\n * @order 10\n */\n@Component({\n selector: 'thy-breadcrumb',\n templateUrl: './breadcrumb.component.html',\n exportAs: 'ThyBreadcrumb',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'thy-breadcrumb',\n '[class.thy-breadcrumb-separator]': '!!thySeparator',\n '[class.thy-breadcrumb-separator-slash]': 'thySeparator === \"slash\"',\n '[class.thy-breadcrumb-separator-backslash]': 'thySeparator === \"backslash\"',\n '[class.thy-breadcrumb-separator-vertical-line]': 'thySeparator === \"vertical-line\"'\n },\n standalone: true,\n imports: [\n ThyIcon,\n NgClass,\n ThyBreadcrumbItem,\n NgTemplateOutlet,\n ThyAction,\n ThyDropdownDirective,\n ThyDropdownMenuItemDirective,\n ThyDropdownMenuItemNameDirective,\n ThyDropdownMenuComponent,\n ThyIcon\n ]\n})\nexport class ThyBreadcrumb implements OnInit, OnChanges {\n iconClasses: string[];\n svgIconName: string;\n\n /**\n * 面包屑的前缀 展示图标,如 folder-fill\n */\n @Input()\n set thyIcon(icon: string) {\n this.setIcon(icon);\n }\n\n /**\n * 面包屑的分隔符,不传值默认为 \">\"\n * @type slash | backslash | vertical-line\n */\n @Input() thySeparator: 'slash' | 'backslash' | 'vertical-line';\n\n /**\n * 面包屑的每一项数据\n */\n @Input({ alias: 'thyItems' }) items: SafeAny[];\n\n /**\n * 最大显示数量,超出此数量后,面包屑会被省略, 0 表示不省略(仅当传入 thyItems 时有效)\n */\n @Input({ transform: numberAttribute }) thyMaxCount = 4;\n\n /**\n * 是否可点击弹出已被省略的面包屑项(仅当传入 thyItems 时有效)\n */\n @Input({ transform: coerceBooleanProperty }) thyExpandable = true;\n\n /**\n * 面包屑的每一项模板(仅当传入 thyItems 时有效)\n */\n @ContentChild('item') itemTemplate: TemplateRef<SafeAny>;\n\n public ellipsisItemId = THY_BREADCRUMB_ITEM_ELLIPSIS_ID;\n\n public ellipsisItems: SafeAny[];\n\n public showItems: SafeAny[];\n\n constructor(private cdr: ChangeDetectorRef) {}\n\n ngOnInit() {\n this.resetItems();\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if ((changes.items && !changes.items.firstChange) || (changes.thyMaxCount && !changes.thyMaxCount.firstChange)) {\n this.resetItems();\n }\n }\n\n private setIcon(icon: string) {\n if (icon) {\n if (icon.includes('wtf')) {\n const classes = icon.split(' ');\n if (classes.length === 1) {\n classes.unshift('wtf');\n }\n this.iconClasses = classes;\n } else {\n this.svgIconName = icon;\n }\n } else {\n this.iconClasses = null;\n this.svgIconName = null;\n }\n }\n\n private resetItems() {\n if (!this.items?.length) {\n return;\n }\n if (this.thyMaxCount && this.items.length > this.thyMaxCount) {\n const ellipsisIndex = this.items.length - this.thyMaxCount + 2;\n this.ellipsisItems = this.items.slice(1, ellipsisIndex);\n this.showItems = [this.items[0], ELLIPSIS_ITEM, ...this.items.slice(ellipsisIndex)];\n } else {\n this.showItems = [...this.items];\n this.ellipsisItems = [];\n }\n }\n}\n","@if (svgIconName || iconClasses) {\n <div class=\"thy-breadcrumb-icon\">\n @if (svgIconName) {\n <thy-icon [thyIconName]=\"svgIconName\"></thy-icon>\n } @else {\n <i [ngClass]=\"iconClasses\"></i>\n }\n </div>\n}\n\n@for (item of showItems; track $index) {\n <thy-breadcrumb-item class=\"thy-breadcrumb-item-ellipsis\">\n @if (item?._id !== ellipsisItemId) {\n <ng-container *ngTemplateOutlet=\"itemContentTpl; context: { $implicit: item }\"></ng-container>\n } @else {\n <a\n thyAction\n href=\"javascript:;\"\n thyActionIcon=\"more\"\n thyActiveClass=\"active\"\n [class.disabled]=\"!thyExpandable\"\n class=\"ellipsis-action ml-n1 mr-n1\"\n [thyDropdown]=\"ellipsisList\"></a>\n }\n </thy-breadcrumb-item>\n}\n\n<ng-template #ellipsisList>\n <thy-dropdown-menu thyImmediateRender>\n @for (item of ellipsisItems; track $index) {\n <a thyDropdownMenuItem href=\"javascript:;\">\n <ng-template *ngTemplateOutlet=\"itemContentTpl; context: { $implicit: item }\"></ng-template>\n </a>\n }\n </thy-dropdown-menu>\n</ng-template>\n\n<ng-template #itemContentTpl let-item>\n @if (itemTemplate) {\n <ng-template *ngTemplateOutlet=\"itemTemplate; context: { $implicit: item }\"></ng-template>\n } @else {\n @if (item?.icon) {\n <thy-icon [thyIconName]=\"item.icon\" class=\"mr-2\"></thy-icon>\n }\n @if (item?.name) {\n <span>{{ item.name }}</span>\n }\n }\n</ng-template>\n\n<ng-content></ng-content>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ThyBreadcrumb } from './breadcrumb.component';\nimport { ThyBreadcrumbItem } from './breadcrumb-item.component';\nimport { ThyIconModule } from 'ngx-tethys/icon';\nimport { ThyActionModule } from 'ngx-tethys/action';\nimport { ThyDropdownModule } from 'ngx-tethys/dropdown';\n\n@NgModule({\n imports: [CommonModule, ThyIconModule, ThyBreadcrumb, ThyBreadcrumbItem, ThyActionModule, ThyDropdownModule],\n exports: [ThyBreadcrumb, ThyBreadcrumbItem]\n})\nexport class ThyBreadcrumbModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;AAGA;;;;AAIG;MAYU,iBAAiB,CAAA;IAC1B,WACY,CAAA,QAAmB,EACnB,UAAsB,EAAA;QADtB,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAW;QACnB,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;KAC9B;IAEJ,eAAe,GAAA;QACX,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;AAC/D,QAAA,MAAM,IAAI,GAAgB,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;AAC3E,QAAA,IAAI,IAAI,IAAI,IAAI,CAAC,UAAU,EAAE;AACzB,YAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;SACzC;KACJ;AAEO,IAAA,eAAe,CAAC,KAAe,EAAA;AACnC,QAAA,KAAK,CAAC,OAAO,CAAC,IAAI,IAAG;AACjB,YAAA,IAAI,IAAI,CAAC,QAAQ,KAAK,OAAO,EAAE;gBAC3B,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;gBACjD,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;gBAC9C,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;gBAC9C,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;gBAC/C,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;aACzC;AACL,SAAC,CAAC,CAAC;KACN;8GAxBQ,iBAAiB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,SAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAAjB,iBAAiB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,yCAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,qBAAA,EAAA,EAAA,QAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAThB,iGAAiG,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAOjG,OAAO,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,eAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,uBAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;2FAER,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAX7B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,yCAAyC;AACnD,oBAAA,QAAQ,EAAE,iGAAiG;AAC3G,oBAAA,QAAQ,EAAE,mBAAmB;oBAC7B,eAAe,EAAE,uBAAuB,CAAC,MAAM;AAC/C,oBAAA,IAAI,EAAE;AACF,wBAAA,KAAK,EAAE,qBAAqB;AAC/B,qBAAA;AACD,oBAAA,UAAU,EAAE,IAAI;oBAChB,OAAO,EAAE,CAAC,OAAO,CAAC;AACrB,iBAAA,CAAA;;;ACOD,MAAM,+BAA+B,GAAG,iCAAiC,CAAC;AAE1E,MAAM,aAAa,GAAG,EAAE,GAAG,EAAE,+BAA+B,EAAE,CAAC;AAE/D;;;;AAIG;MA2BU,aAAa,CAAA;AAItB;;AAEG;IACH,IACI,OAAO,CAAC,IAAY,EAAA;AACpB,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;KACtB;AAkCD,IAAA,WAAA,CAAoB,GAAsB,EAAA;QAAtB,IAAG,CAAA,GAAA,GAAH,GAAG,CAAmB;AArB1C;;AAEG;QACoC,IAAW,CAAA,WAAA,GAAG,CAAC,CAAC;AAEvD;;AAEG;QAC0C,IAAa,CAAA,aAAA,GAAG,IAAI,CAAC;QAO3D,IAAc,CAAA,cAAA,GAAG,+BAA+B,CAAC;KAMV;IAE9C,QAAQ,GAAA;QACJ,IAAI,CAAC,UAAU,EAAE,CAAC;KACrB;AAED,IAAA,WAAW,CAAC,OAAsB,EAAA;QAC9B,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,MAAM,OAAO,CAAC,WAAW,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,WAAW,CAAC,EAAE;YAC5G,IAAI,CAAC,UAAU,EAAE,CAAC;SACrB;KACJ;AAEO,IAAA,OAAO,CAAC,IAAY,EAAA;QACxB,IAAI,IAAI,EAAE;AACN,YAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;gBACtB,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAChC,gBAAA,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;AACtB,oBAAA,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;iBAC1B;AACD,gBAAA,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC;aAC9B;iBAAM;AACH,gBAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;aAC3B;SACJ;aAAM;AACH,YAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;AACxB,YAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;SAC3B;KACJ;IAEO,UAAU,GAAA;AACd,QAAA,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE;YACrB,OAAO;SACV;AACD,QAAA,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,WAAW,EAAE;AAC1D,YAAA,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;AAC/D,YAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC;YACxD,IAAI,CAAC,SAAS,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC;SACvF;aAAM;YACH,IAAI,CAAC,SAAS,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;AACjC,YAAA,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;SAC3B;KACJ;8GArFQ,aAAa,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAAb,aAAa,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,YAAA,EAAA,cAAA,EAAA,KAAA,EAAA,CAAA,UAAA,EAAA,OAAA,CAAA,EAAA,WAAA,EAAA,CAAA,aAAA,EAAA,aAAA,EA0BF,eAAe,CAKf,EAAA,aAAA,EAAA,CAAA,eAAA,EAAA,eAAA,EAAA,qBAAqB,2gBC3F7C,sgDAmDA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDHQ,OAAO,EACP,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,eAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,uBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,OAAO,oFACP,iBAAiB,EAAA,QAAA,EAAA,yCAAA,EAAA,QAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACjB,gBAAgB,EAChB,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,SAAS,gMACT,oBAAoB,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,aAAA,EAAA,YAAA,EAAA,cAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,mBAAA,EAAA,cAAA,EAAA,uBAAA,EAAA,eAAA,CAAA,EAAA,OAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACpB,4BAA4B,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAE5B,wBAAwB,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,oBAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;2FAInB,aAAa,EAAA,UAAA,EAAA,CAAA;kBA1BzB,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,gBAAgB,YAEhB,eAAe,EAAA,eAAA,EACR,uBAAuB,CAAC,MAAM,EACzC,IAAA,EAAA;AACF,wBAAA,KAAK,EAAE,gBAAgB;AACvB,wBAAA,kCAAkC,EAAE,gBAAgB;AACpD,wBAAA,wCAAwC,EAAE,0BAA0B;AACpE,wBAAA,4CAA4C,EAAE,8BAA8B;AAC5E,wBAAA,gDAAgD,EAAE,kCAAkC;AACvF,qBAAA,EAAA,UAAA,EACW,IAAI,EACP,OAAA,EAAA;wBACL,OAAO;wBACP,OAAO;wBACP,iBAAiB;wBACjB,gBAAgB;wBAChB,SAAS;wBACT,oBAAoB;wBACpB,4BAA4B;wBAC5B,gCAAgC;wBAChC,wBAAwB;wBACxB,OAAO;AACV,qBAAA,EAAA,QAAA,EAAA,sgDAAA,EAAA,CAAA;sFAUG,OAAO,EAAA,CAAA;sBADV,KAAK;gBASG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBAKwB,KAAK,EAAA,CAAA;sBAAlC,KAAK;uBAAC,EAAE,KAAK,EAAE,UAAU,EAAE,CAAA;gBAKW,WAAW,EAAA,CAAA;sBAAjD,KAAK;uBAAC,EAAE,SAAS,EAAE,eAAe,EAAE,CAAA;gBAKQ,aAAa,EAAA,CAAA;sBAAzD,KAAK;uBAAC,EAAE,SAAS,EAAE,qBAAqB,EAAE,CAAA;gBAKrB,YAAY,EAAA,CAAA;sBAAjC,YAAY;uBAAC,MAAM,CAAA;;;MEpFX,mBAAmB,CAAA;8GAAnB,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAAnB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mBAAmB,EAHlB,OAAA,EAAA,CAAA,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,iBAAiB,EAAE,eAAe,EAAE,iBAAiB,CACjG,EAAA,OAAA,EAAA,CAAA,aAAa,EAAE,iBAAiB,CAAA,EAAA,CAAA,CAAA,EAAA;+GAEjC,mBAAmB,EAAA,OAAA,EAAA,CAHlB,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,iBAAiB,EAAE,eAAe,EAAE,iBAAiB,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAGlG,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAJ/B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACN,oBAAA,OAAO,EAAE,CAAC,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,iBAAiB,EAAE,eAAe,EAAE,iBAAiB,CAAC;AAC5G,oBAAA,OAAO,EAAE,CAAC,aAAa,EAAE,iBAAiB,CAAC;AAC9C,iBAAA,CAAA;;;ACXD;;AAEG;;;;"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { NgClass, CommonModule } from '@angular/common';
|
|
2
2
|
import * as i0 from '@angular/core';
|
|
3
3
|
import { Component, ViewEncapsulation, Input, HostBinding, ChangeDetectionStrategy, NgModule } from '@angular/core';
|
|
4
4
|
import { ThyIcon, ThyIconModule } from 'ngx-tethys/icon';
|
|
@@ -215,11 +215,11 @@ class ThyButtonIcon {
|
|
|
215
215
|
this.initialized = true;
|
|
216
216
|
}
|
|
217
217
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyButtonIcon, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
218
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
218
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: ThyButtonIcon, isStandalone: true, selector: "thy-button-icon,[thy-button-icon],[thyButtonIcon]", inputs: { thySize: "thySize", thyIcon: "thyIcon", thyButtonIcon: "thyButtonIcon", thyShape: "thyShape", thyLight: ["thyLight", "thyLight", coerceBooleanProperty$1], thyActive: ["thyActive", "thyActive", coerceBooleanProperty$1], thyTheme: "thyTheme", thyColor: "thyColor" }, host: { properties: { "class.btn": "this._isBtn", "class.btn-icon": "this._isBtnIcon", "class.btn-icon-light": "this._isLighted", "class.btn-icon-active": "this._isActive" } }, ngImport: i0, template: "@if (svgIconName) {\n <thy-icon [thyIconName]=\"svgIconName\" [style.color]=\"thyColor\" [style.borderColor]=\"thyColor\"></thy-icon>\n} @else {\n @if (iconClasses) {\n <i [ngClass]=\"iconClasses\" [style.color]=\"thyColor\" [style.borderColor]=\"thyColor\"></i>\n }\n}\n<ng-content></ng-content>\n", dependencies: [{ kind: "component", type: ThyIcon, selector: "thy-icon, [thy-icon]", inputs: ["thyIconType", "thyTwotoneColor", "thyIconName", "thyIconRotate", "thyIconSet", "thyIconLegging", "thyIconLinearGradient"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
219
219
|
}
|
|
220
220
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyButtonIcon, decorators: [{
|
|
221
221
|
type: Component,
|
|
222
|
-
args: [{ selector: 'thy-button-icon,[thy-button-icon],[thyButtonIcon]', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
|
|
222
|
+
args: [{ selector: 'thy-button-icon,[thy-button-icon],[thyButtonIcon]', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [ThyIcon, NgClass], template: "@if (svgIconName) {\n <thy-icon [thyIconName]=\"svgIconName\" [style.color]=\"thyColor\" [style.borderColor]=\"thyColor\"></thy-icon>\n} @else {\n @if (iconClasses) {\n <i [ngClass]=\"iconClasses\" [style.color]=\"thyColor\" [style.borderColor]=\"thyColor\"></i>\n }\n}\n<ng-content></ng-content>\n" }]
|
|
223
223
|
}], ctorParameters: () => [], propDecorators: { thySize: [{
|
|
224
224
|
type: Input
|
|
225
225
|
}], thyIcon: [{
|
|
@@ -434,13 +434,13 @@ class ThyButton {
|
|
|
434
434
|
});
|
|
435
435
|
}
|
|
436
436
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyButton, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
437
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
437
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: ThyButton, isStandalone: true, selector: "thy-button,[thy-button],[thyButton]", inputs: { thyButton: "thyButton", thyType: "thyType", thyLoading: ["thyLoading", "thyLoading", coerceBooleanProperty$1], thyLoadingText: "thyLoadingText", thySize: "thySize", thyIcon: "thyIcon", thyBlock: ["thyBlock", "thyBlock", coerceBooleanProperty$1] }, host: { properties: { "class.btn-block": "this.thyBlock" }, classAttribute: "thy-btn btn" }, ngImport: i0, template: "@if (svgIconName) {\n <thy-icon [thyIconName]=\"svgIconName\"></thy-icon>\n} @else {\n @if (iconClass) {\n <i [ngClass]=\"iconClass\"></i>\n }\n}\n<ng-content></ng-content>\n", dependencies: [{ kind: "component", type: ThyIcon, selector: "thy-icon, [thy-icon]", inputs: ["thyIconType", "thyTwotoneColor", "thyIconName", "thyIconRotate", "thyIconSet", "thyIconLegging", "thyIconLinearGradient"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
438
438
|
}
|
|
439
439
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyButton, decorators: [{
|
|
440
440
|
type: Component,
|
|
441
441
|
args: [{ selector: 'thy-button,[thy-button],[thyButton]', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, host: {
|
|
442
442
|
class: 'thy-btn btn'
|
|
443
|
-
}, standalone: true, imports: [
|
|
443
|
+
}, standalone: true, imports: [ThyIcon, NgClass], template: "@if (svgIconName) {\n <thy-icon [thyIconName]=\"svgIconName\"></thy-icon>\n} @else {\n @if (iconClass) {\n <i [ngClass]=\"iconClass\"></i>\n }\n}\n<ng-content></ng-content>\n" }]
|
|
444
444
|
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.Renderer2 }], propDecorators: { thyButton: [{
|
|
445
445
|
type: Input
|
|
446
446
|
}], thyType: [{
|