ngx-tethys 18.2.0-next.0 → 18.2.0-next.2
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 +56 -0
- package/autocomplete/autocomplete.component.d.ts +4 -2
- package/calendar/calendar-header.component.d.ts +2 -0
- package/cascader/cascader.component.d.ts +3 -1
- package/color-picker/color-picker-panel.component.d.ts +3 -1
- package/copy/copy.directive.d.ts +1 -0
- package/core/overlay/abstract-overlay-ref.d.ts +4 -0
- package/core/overlay/abstract-overlay.service.d.ts +1 -1
- package/core/theme/store.d.ts +2 -1
- package/core/theme/theme.d.ts +2 -0
- package/date-picker/abstract-picker.component.d.ts +3 -1
- package/date-picker/date-helper.service.d.ts +3 -0
- package/date-picker/date-picker.config.d.ts +7 -1
- package/date-picker/lib/calendar/calendar-footer.component.d.ts +3 -1
- package/date-picker/lib/calendar/calendar-header.component.d.ts +3 -1
- package/date-picker/lib/calendar/calendar-table.component.d.ts +3 -1
- package/date-picker/lib/date-carousel/date-carousel.component.d.ts +4 -1
- package/date-picker/lib/popups/date-popup.component.d.ts +3 -1
- package/date-picker/lib/popups/inner-popup.component.d.ts +3 -1
- package/date-range/date-range.component.d.ts +2 -0
- package/date-range/optional-dates/optional-dates.component.d.ts +1 -0
- package/dialog/confirm/confirm.component.d.ts +1 -0
- package/dialog/confirm.config.d.ts +14 -7
- package/dialog/dialog-ref.d.ts +10 -2
- package/dialog/dialog.service.d.ts +6 -0
- package/empty/empty.component.d.ts +14 -9
- package/empty/empty.config.d.ts +3 -0
- package/esm2022/autocomplete/autocomplete.component.mjs +9 -5
- package/esm2022/calendar/calendar-header.component.mjs +9 -5
- package/esm2022/cascader/cascader.component.mjs +9 -6
- package/esm2022/checkbox/checkbox.component.mjs +1 -1
- package/esm2022/color-picker/color-picker-panel.component.mjs +5 -3
- package/esm2022/copy/copy.directive.mjs +7 -5
- package/esm2022/core/overlay/abstract-overlay-ref.mjs +2 -2
- package/esm2022/core/overlay/abstract-overlay.service.mjs +2 -2
- package/esm2022/core/theme/store.mjs +7 -7
- package/esm2022/core/theme/theme.mjs +9 -2
- package/esm2022/date-picker/abstract-picker.component.mjs +4 -2
- package/esm2022/date-picker/base-picker.component.mjs +2 -2
- package/esm2022/date-picker/date-helper.service.mjs +4 -2
- package/esm2022/date-picker/date-picker.component.mjs +1 -1
- package/esm2022/date-picker/date-picker.config.mjs +55 -2
- package/esm2022/date-picker/date-picker.directive.mjs +1 -1
- package/esm2022/date-picker/date-picker.service.mjs +3 -3
- package/esm2022/date-picker/lib/calendar/calendar-footer.component.mjs +5 -3
- package/esm2022/date-picker/lib/calendar/calendar-header.component.mjs +3 -1
- package/esm2022/date-picker/lib/calendar/calendar-table.component.mjs +3 -1
- package/esm2022/date-picker/lib/date/date-header.component.mjs +6 -5
- package/esm2022/date-picker/lib/date/date-table.component.mjs +4 -4
- package/esm2022/date-picker/lib/date-carousel/date-carousel.component.mjs +9 -4
- package/esm2022/date-picker/lib/decade/decade-header.component.mjs +3 -3
- package/esm2022/date-picker/lib/month/month-header.component.mjs +4 -4
- package/esm2022/date-picker/lib/month/month-table.component.mjs +3 -2
- package/esm2022/date-picker/lib/popups/date-popup.component.mjs +5 -3
- package/esm2022/date-picker/lib/popups/inner-popup.component.mjs +5 -3
- package/esm2022/date-picker/lib/year/year-header.component.mjs +3 -3
- package/esm2022/date-picker/month-picker.component.mjs +1 -1
- package/esm2022/date-picker/quarter-picker.component.mjs +1 -1
- package/esm2022/date-picker/range-picker.component.mjs +1 -1
- package/esm2022/date-picker/range-picker.directive.mjs +1 -1
- package/esm2022/date-picker/week-picker.component.mjs +1 -1
- package/esm2022/date-picker/year-picker.component.mjs +1 -1
- package/esm2022/date-range/date-range.component.mjs +7 -4
- package/esm2022/date-range/optional-dates/optional-dates.component.mjs +4 -2
- package/esm2022/dialog/confirm/confirm.component.mjs +14 -3
- package/esm2022/dialog/confirm.config.mjs +17 -2
- package/esm2022/dialog/dialog-ref.mjs +9 -6
- package/esm2022/dialog/dialog.service.mjs +27 -3
- package/esm2022/empty/empty.component.mjs +7 -2
- package/esm2022/empty/empty.config.mjs +4 -1
- package/esm2022/form/form-validator-loader.mjs +17 -15
- package/esm2022/guider/guider-hint/guider-hint.component.mjs +5 -3
- package/esm2022/i18n/i18n.mjs +9 -0
- package/esm2022/i18n/i18n.service.mjs +45 -0
- package/esm2022/i18n/i18n.token.mjs +10 -0
- package/esm2022/i18n/index.mjs +10 -0
- package/esm2022/i18n/locale.mjs +14 -0
- package/esm2022/i18n/locales/de-de.mjs +130 -0
- package/esm2022/i18n/locales/en-us.mjs +151 -0
- package/esm2022/i18n/locales/ja-jp.mjs +130 -0
- package/esm2022/i18n/locales/zh-hans.mjs +130 -0
- package/esm2022/i18n/locales/zh-hant.mjs +130 -0
- package/esm2022/i18n/ngx-tethys-i18n.mjs +5 -0
- package/esm2022/nav/nav.component.mjs +5 -3
- package/esm2022/pagination/pagination.component.mjs +22 -5
- package/esm2022/pagination/pagination.module.mjs +26 -5
- package/esm2022/pagination/pagination.pipe.mjs +25 -1
- package/esm2022/property/property-item.component.mjs +3 -3
- package/esm2022/radio/button/radio-button.component.mjs +1 -1
- package/esm2022/radio/radio.component.mjs +1 -1
- package/esm2022/select/custom-select/custom-select.component.mjs +13 -6
- package/esm2022/strength/strength.component.mjs +21 -20
- package/esm2022/time-picker/time-picker-panel.component.mjs +5 -3
- package/esm2022/time-picker/time-picker.component.mjs +4 -2
- package/esm2022/tooltip/tooltip-ref.mjs +4 -1
- package/esm2022/transfer/transfer-list.component.mjs +5 -3
- package/esm2022/tree-select/tree-select.component.mjs +9 -6
- package/esm2022/version.mjs +2 -2
- package/fesm2022/ngx-tethys-autocomplete.mjs +8 -5
- package/fesm2022/ngx-tethys-autocomplete.mjs.map +1 -1
- package/fesm2022/ngx-tethys-calendar.mjs +8 -5
- package/fesm2022/ngx-tethys-calendar.mjs.map +1 -1
- package/fesm2022/ngx-tethys-cascader.mjs +8 -5
- package/fesm2022/ngx-tethys-cascader.mjs.map +1 -1
- package/fesm2022/ngx-tethys-checkbox.mjs.map +1 -1
- package/fesm2022/ngx-tethys-color-picker.mjs +4 -2
- package/fesm2022/ngx-tethys-color-picker.mjs.map +1 -1
- package/fesm2022/ngx-tethys-copy.mjs +6 -4
- package/fesm2022/ngx-tethys-copy.mjs.map +1 -1
- package/fesm2022/ngx-tethys-core.mjs +14 -7
- package/fesm2022/ngx-tethys-core.mjs.map +1 -1
- package/fesm2022/ngx-tethys-date-picker.mjs +95 -30
- package/fesm2022/ngx-tethys-date-picker.mjs.map +1 -1
- package/fesm2022/ngx-tethys-date-range.mjs +8 -4
- package/fesm2022/ngx-tethys-date-range.mjs.map +1 -1
- package/fesm2022/ngx-tethys-dialog.mjs +61 -10
- package/fesm2022/ngx-tethys-dialog.mjs.map +1 -1
- package/fesm2022/ngx-tethys-empty.mjs +9 -1
- package/fesm2022/ngx-tethys-empty.mjs.map +1 -1
- package/fesm2022/ngx-tethys-form.mjs +16 -14
- package/fesm2022/ngx-tethys-form.mjs.map +1 -1
- package/fesm2022/ngx-tethys-guider.mjs +4 -2
- package/fesm2022/ngx-tethys-guider.mjs.map +1 -1
- package/fesm2022/ngx-tethys-i18n.mjs +747 -0
- package/fesm2022/ngx-tethys-i18n.mjs.map +1 -0
- package/fesm2022/ngx-tethys-nav.mjs +4 -2
- package/fesm2022/ngx-tethys-nav.mjs.map +1 -1
- package/fesm2022/ngx-tethys-pagination.mjs +69 -7
- package/fesm2022/ngx-tethys-pagination.mjs.map +1 -1
- package/fesm2022/ngx-tethys-property.mjs +2 -2
- package/fesm2022/ngx-tethys-property.mjs.map +1 -1
- package/fesm2022/ngx-tethys-radio.mjs.map +1 -1
- package/fesm2022/ngx-tethys-select.mjs +12 -5
- package/fesm2022/ngx-tethys-select.mjs.map +1 -1
- package/fesm2022/ngx-tethys-strength.mjs +20 -19
- package/fesm2022/ngx-tethys-strength.mjs.map +1 -1
- package/fesm2022/ngx-tethys-time-picker.mjs +6 -3
- package/fesm2022/ngx-tethys-time-picker.mjs.map +1 -1
- package/fesm2022/ngx-tethys-tooltip.mjs +3 -0
- package/fesm2022/ngx-tethys-tooltip.mjs.map +1 -1
- package/fesm2022/ngx-tethys-transfer.mjs +4 -2
- package/fesm2022/ngx-tethys-transfer.mjs.map +1 -1
- package/fesm2022/ngx-tethys-tree-select.mjs +8 -5
- package/fesm2022/ngx-tethys-tree-select.mjs.map +1 -1
- package/fesm2022/ngx-tethys.mjs +1 -1
- package/fesm2022/ngx-tethys.mjs.map +1 -1
- package/form/form-validator-loader.d.ts +2 -0
- package/guider/guider-hint/guider-hint.component.d.ts +3 -1
- package/i18n/i18n.d.ts +154 -0
- package/i18n/i18n.service.d.ts +19 -0
- package/i18n/i18n.token.d.ts +8 -0
- package/i18n/index.d.ts +9 -0
- package/i18n/locale.d.ts +4 -0
- package/i18n/locales/de-de.d.ts +130 -0
- package/i18n/locales/en-us.d.ts +151 -0
- package/i18n/locales/ja-jp.d.ts +130 -0
- package/i18n/locales/zh-hans.d.ts +130 -0
- package/i18n/locales/zh-hant.d.ts +130 -0
- package/nav/nav.component.d.ts +3 -1
- package/package.json +7 -1
- package/pagination/pagination.component.d.ts +4 -1
- package/pagination/pagination.module.d.ts +1 -1
- package/pagination/pagination.pipe.d.ts +6 -0
- package/radio/radio.component.d.ts +0 -2
- package/schematics/version.d.ts +1 -1
- package/schematics/version.js +1 -1
- package/select/custom-select/custom-select.component.d.ts +3 -1
- package/strength/strength.component.d.ts +21 -2
- package/styles/modules/cdk/drag-drop.scss +1 -1
- package/time-picker/time-picker-panel.component.d.ts +3 -1
- package/time-picker/time-picker.component.d.ts +3 -1
- package/transfer/transfer-list.component.d.ts +3 -1
- package/tree-select/tree-select.component.d.ts +3 -1
|
@@ -9,6 +9,7 @@ import { ThySelect, ThySelectModule } from 'ngx-tethys/select';
|
|
|
9
9
|
import { ThyOption, ThyEnterDirective, ThySharedModule } from 'ngx-tethys/shared';
|
|
10
10
|
import { isTemplateRef, coerceBooleanProperty } from 'ngx-tethys/util';
|
|
11
11
|
import { DomSanitizer } from '@angular/platform-browser';
|
|
12
|
+
import { useLocale, injectLocale } from 'ngx-tethys/i18n';
|
|
12
13
|
|
|
13
14
|
const DEFAULT_RANGE_COUNT = 5;
|
|
14
15
|
const PaginationDefaultConfig = {
|
|
@@ -64,6 +65,30 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
|
|
|
64
65
|
standalone: true
|
|
65
66
|
}]
|
|
66
67
|
}] });
|
|
68
|
+
class PaginationPerPageFormat {
|
|
69
|
+
transform(unit, locale) {
|
|
70
|
+
if (locale.id.includes('en') || locale.id.includes('de')) {
|
|
71
|
+
// eg. 5 / page
|
|
72
|
+
// eg. 5 / Seite
|
|
73
|
+
return ' / ' + locale.pagination.page;
|
|
74
|
+
}
|
|
75
|
+
else {
|
|
76
|
+
// eg. 5 条/页
|
|
77
|
+
// eg. 5 個/頁
|
|
78
|
+
// eg. 5 条/ページ
|
|
79
|
+
return ' ' + unit + '/' + locale.pagination.page;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: PaginationPerPageFormat, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
83
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.0", ngImport: i0, type: PaginationPerPageFormat, isStandalone: true, name: "paginationPerPageFormat" }); }
|
|
84
|
+
}
|
|
85
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: PaginationPerPageFormat, decorators: [{
|
|
86
|
+
type: Pipe,
|
|
87
|
+
args: [{
|
|
88
|
+
name: 'paginationPerPageFormat',
|
|
89
|
+
standalone: true
|
|
90
|
+
}]
|
|
91
|
+
}] });
|
|
67
92
|
|
|
68
93
|
/**
|
|
69
94
|
* 分页组件,当数据量过多时,使用分页分解数据。
|
|
@@ -74,8 +99,15 @@ class ThyPagination {
|
|
|
74
99
|
constructor() {
|
|
75
100
|
this.paginationConfig = inject(THY_PAGINATION_CONFIG, { optional: true });
|
|
76
101
|
this.cdr = inject(ChangeDetectorRef);
|
|
102
|
+
this.allLocale = useLocale();
|
|
103
|
+
this.locale = injectLocale('pagination');
|
|
77
104
|
this.isTemplateRef = isTemplateRef;
|
|
78
|
-
this.config = Object.assign({}, PaginationDefaultConfig,
|
|
105
|
+
this.config = Object.assign({}, PaginationDefaultConfig, {
|
|
106
|
+
firstText: this.locale().firstPage,
|
|
107
|
+
lastText: this.locale().lastPage,
|
|
108
|
+
totalPagesFormat: this.locale().totalCount,
|
|
109
|
+
unit: this.locale().defaultUnit
|
|
110
|
+
}, this.paginationConfig.main);
|
|
79
111
|
/**
|
|
80
112
|
* 是否禁用
|
|
81
113
|
*/
|
|
@@ -333,11 +365,20 @@ class ThyPagination {
|
|
|
333
365
|
this.pageSizeChanged.emit(event);
|
|
334
366
|
}
|
|
335
367
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyPagination, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
336
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: ThyPagination, isStandalone: true, selector: "thy-pagination", inputs: { thyPageIndex: ["thyPageIndex", "thyPageIndex", numberAttribute], thyPageSize: ["thyPageSize", "thyPageSize", numberAttribute], thyTotal: ["thyTotal", "thyTotal", numberAttribute], thyCustomPages: "thyCustomPages", disabled: ["thyDisabled", "disabled", coerceBooleanProperty], showQuickJumper: ["thyShowQuickJumper", "showQuickJumper", coerceBooleanProperty], showTotalPageCount: ["thyShowTotalPageCount", "showTotalPageCount", coerceBooleanProperty], size: ["thySize", "size"], maxCount: ["thyMaxCount", "maxCount", numberAttribute], marginalCount: ["thyMarginalCount", "marginalCount", numberAttribute], thyRangeCount: ["thyRangeCount", "thyRangeCount", numberAttribute], showSizeChanger: ["thyShowSizeChanger", "showSizeChanger", coerceBooleanProperty], pageSizeOptions: ["thyPageSizeOptions", "pageSizeOptions"], hideOnSinglePage: ["thyHideOnSinglePage", "hideOnSinglePage", coerceBooleanProperty], unit: ["thyUnit", "unit"], showTotal: ["thyShowTotal", "showTotal"] }, outputs: { pageIndexChange: "thyPageIndexChange", pageChanged: "thyPageChanged", pageSizeChanged: "thyPageSizeChanged" }, host: { properties: { "class.thy-pagination": "this.isPaginationClass", "class.thy-pagination-has-total": "this.showTotal" } }, ngImport: i0, template: "@if ((hideOnSinglePage && total > pageSize) || !hideOnSinglePage) {\n @if (showTotal) {\n <div class=\"thy-pagination-total\">\n @if (!isTemplateRef(showTotal)) {\n @if (total > 0) {\n <div class=\"mr-3\">\n
|
|
368
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: ThyPagination, isStandalone: true, selector: "thy-pagination", inputs: { thyPageIndex: ["thyPageIndex", "thyPageIndex", numberAttribute], thyPageSize: ["thyPageSize", "thyPageSize", numberAttribute], thyTotal: ["thyTotal", "thyTotal", numberAttribute], thyCustomPages: "thyCustomPages", disabled: ["thyDisabled", "disabled", coerceBooleanProperty], showQuickJumper: ["thyShowQuickJumper", "showQuickJumper", coerceBooleanProperty], showTotalPageCount: ["thyShowTotalPageCount", "showTotalPageCount", coerceBooleanProperty], size: ["thySize", "size"], maxCount: ["thyMaxCount", "maxCount", numberAttribute], marginalCount: ["thyMarginalCount", "marginalCount", numberAttribute], thyRangeCount: ["thyRangeCount", "thyRangeCount", numberAttribute], showSizeChanger: ["thyShowSizeChanger", "showSizeChanger", coerceBooleanProperty], pageSizeOptions: ["thyPageSizeOptions", "pageSizeOptions"], hideOnSinglePage: ["thyHideOnSinglePage", "hideOnSinglePage", coerceBooleanProperty], unit: ["thyUnit", "unit"], showTotal: ["thyShowTotal", "showTotal"] }, outputs: { pageIndexChange: "thyPageIndexChange", pageChanged: "thyPageChanged", pageSizeChanged: "thyPageSizeChanged" }, host: { properties: { "class.thy-pagination": "this.isPaginationClass", "class.thy-pagination-has-total": "this.showTotal" } }, ngImport: i0, template: "@if ((hideOnSinglePage && total > pageSize) || !hideOnSinglePage) {\n @if (showTotal) {\n <div class=\"thy-pagination-total\">\n @if (!isTemplateRef(showTotal)) {\n @if (total > 0) {\n <div class=\"mr-3\">\n {{ locale().order }}<span class=\"number\"> {{ range.from }}-{{ range.to }} </span>{{ config.unit }}\n </div>\n <div>\n {{ locale().total }}<span class=\"number\"> {{ total }} </span>{{ config.unit }}\n </div>\n }\n } @else {\n <ng-template [ngTemplateOutlet]=\"showTotal\" [ngTemplateOutletContext]=\"{ $implicit: total, range: range }\"></ng-template>\n }\n </div>\n }\n <div class=\"thy-pagination-content\">\n @if (config.showSizeChanger) {\n <div class=\"thy-pagination-size\">\n <thy-select [(ngModel)]=\"selectPageSize\" [thySize]=\"selectSize\" [thyDisabled]=\"disabled\" (ngModelChange)=\"onPageSizeChange($event)\">\n @for (option of config.pageSizeOptions; track option) {\n <thy-option\n class=\"page-size-option\"\n [thyValue]=\"option\"\n [thyLabelText]=\"option + (config.unit | paginationPerPageFormat: allLocale())\"></thy-option>\n }\n </thy-select>\n </div>\n }\n <ul class=\"thy-pagination-pages\">\n @if (config.boundaryLinks) {\n <li class=\"thy-page-item\" [class.disabled]=\"disabled || pageIndex === firstIndex\" (click)=\"selectPage(firstIndex)\">\n <a class=\"thy-page-link thy-page-link-first\" href=\"javascript:;\">\n @if (config.firstText) {\n {{ config.firstText }}\n }\n @if (config.firstIcon) {\n <thy-icon [thyIconName]=\"config.firstIcon\"></thy-icon>\n }\n </a>\n </li>\n }\n @if (config.directionLinks) {\n <li class=\"thy-page-item\" [class.disabled]=\"disabled || pageIndex === firstIndex\" (click)=\"selectPage(pageIndex - 1)\">\n <a class=\"thy-page-link page-link-pre\" href=\"javascript:;\">\n @if (config.previousText) {\n {{ config.previousText }}\n }\n @if (config.previousIcon) {\n <thy-icon [thyIconName]=\"config.previousIcon\"></thy-icon>\n }\n </a>\n </li>\n }\n @for (page of pages; track page.index) {\n <li class=\"thy-page-item thy-page-number\" [class.active]=\"page.active\" [class.disabled]=\"disabled\" (click)=\"selectPage(page.index)\">\n <a class=\"thy-page-link\" href=\"javascript:;\">{{ page.text }}</a>\n </li>\n }\n @if (config.directionLinks) {\n <li class=\"thy-page-item page-item-next\" [class.disabled]=\"disabled || pageIndex === pageCount\" (click)=\"selectPage(pageIndex + 1)\">\n <a class=\"thy-page-link thy-page-link-next\" href=\"javascript:;\">\n @if (config.nextText) {\n {{ config.nextText }}\n }\n @if (config.nextIcon) {\n <thy-icon [thyIconName]=\"config.nextIcon\"></thy-icon>\n }\n </a>\n </li>\n }\n @if (config.boundaryLinks) {\n <li class=\"thy-page-item\" [class.disabled]=\"disabled || pageIndex === pageCount\" (click)=\"selectPage(pageCount)\">\n <a class=\"thy-page-link thy-page-link-last\" href=\"javascript:;\">\n @if (config.lastText) {\n {{ config.lastText }}\n }\n @if (config.lastIcon) {\n <thy-icon [thyIconName]=\"config.lastIcon\"></thy-icon>\n }\n </a>\n </li>\n }\n </ul>\n @if (config.showTotalPageCount && config.totalPagesFormat) {\n <div class=\"thy-pagination-count\" [innerHTML]=\"pageCount | paginationTotalPagesFormat: config.totalPagesFormat\"></div>\n }\n @if (config.showQuickJumper) {\n <div class=\"thy-pagination-jumper\">\n <div class=\"thy-pagination-jumper-input\">\n {{ locale().jumpTo }}\n <input type=\"text\" [disabled]=\"disabled\" #jumperInput (thyEnter)=\"jumpPage(jumperInput)\" (blur)=\"jumpPage(jumperInput)\" />\n {{ locale().page }}\n </div>\n </div>\n }\n </div>\n}\n", dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: ThySelect, selector: "thy-select,thy-custom-select", inputs: ["thyDropdownWidthMode", "thyShowSearch", "thyPlaceHolder", "thyServerSearch", "thyLoadState", "thyAutoActiveFirstItem", "thyMode", "thySize", "thyEmptyStateText", "thyEmptySearchMessageText", "thyEnableScrollLoad", "thyAllowClear", "thyDisabled", "thySortComparator", "thyFooterTemplate", "thyPlacement", "thyOrigin", "thyFooterClass", "thyAutoExpand", "thyHasBackdrop", "thyMaxTagCount", "thyBorderless", "thyOptions", "thyPreset"], outputs: ["thyOnSearch", "thyOnScrollToBottom", "thyOnExpandStatusChange"], exportAs: ["thySelect"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: ThyOption, selector: "thy-option", inputs: ["thyValue", "thyRawValue", "thyLabelText", "thyShowOptionCustom", "thySearchKey", "thyDisabled"], outputs: ["selectionChange", "visibleChange"] }, { kind: "component", type: ThyIcon, selector: "thy-icon, [thy-icon]", inputs: ["thyIconType", "thyTwotoneColor", "thyIconName", "thyIconRotate", "thyIconSet", "thyIconLegging", "thyIconLinearGradient"] }, { kind: "directive", type: ThyEnterDirective, selector: "[thyEnter]", outputs: ["thyEnter"] }, { kind: "pipe", type: PaginationTotalCountFormat, name: "paginationTotalPagesFormat" }, { kind: "pipe", type: PaginationPerPageFormat, name: "paginationPerPageFormat" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
337
369
|
}
|
|
338
370
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyPagination, decorators: [{
|
|
339
371
|
type: Component,
|
|
340
|
-
args: [{ selector: 'thy-pagination', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
|
|
372
|
+
args: [{ selector: 'thy-pagination', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
|
|
373
|
+
NgTemplateOutlet,
|
|
374
|
+
ThySelect,
|
|
375
|
+
FormsModule,
|
|
376
|
+
ThyOption,
|
|
377
|
+
ThyIcon,
|
|
378
|
+
ThyEnterDirective,
|
|
379
|
+
PaginationTotalCountFormat,
|
|
380
|
+
PaginationPerPageFormat
|
|
381
|
+
], template: "@if ((hideOnSinglePage && total > pageSize) || !hideOnSinglePage) {\n @if (showTotal) {\n <div class=\"thy-pagination-total\">\n @if (!isTemplateRef(showTotal)) {\n @if (total > 0) {\n <div class=\"mr-3\">\n {{ locale().order }}<span class=\"number\"> {{ range.from }}-{{ range.to }} </span>{{ config.unit }}\n </div>\n <div>\n {{ locale().total }}<span class=\"number\"> {{ total }} </span>{{ config.unit }}\n </div>\n }\n } @else {\n <ng-template [ngTemplateOutlet]=\"showTotal\" [ngTemplateOutletContext]=\"{ $implicit: total, range: range }\"></ng-template>\n }\n </div>\n }\n <div class=\"thy-pagination-content\">\n @if (config.showSizeChanger) {\n <div class=\"thy-pagination-size\">\n <thy-select [(ngModel)]=\"selectPageSize\" [thySize]=\"selectSize\" [thyDisabled]=\"disabled\" (ngModelChange)=\"onPageSizeChange($event)\">\n @for (option of config.pageSizeOptions; track option) {\n <thy-option\n class=\"page-size-option\"\n [thyValue]=\"option\"\n [thyLabelText]=\"option + (config.unit | paginationPerPageFormat: allLocale())\"></thy-option>\n }\n </thy-select>\n </div>\n }\n <ul class=\"thy-pagination-pages\">\n @if (config.boundaryLinks) {\n <li class=\"thy-page-item\" [class.disabled]=\"disabled || pageIndex === firstIndex\" (click)=\"selectPage(firstIndex)\">\n <a class=\"thy-page-link thy-page-link-first\" href=\"javascript:;\">\n @if (config.firstText) {\n {{ config.firstText }}\n }\n @if (config.firstIcon) {\n <thy-icon [thyIconName]=\"config.firstIcon\"></thy-icon>\n }\n </a>\n </li>\n }\n @if (config.directionLinks) {\n <li class=\"thy-page-item\" [class.disabled]=\"disabled || pageIndex === firstIndex\" (click)=\"selectPage(pageIndex - 1)\">\n <a class=\"thy-page-link page-link-pre\" href=\"javascript:;\">\n @if (config.previousText) {\n {{ config.previousText }}\n }\n @if (config.previousIcon) {\n <thy-icon [thyIconName]=\"config.previousIcon\"></thy-icon>\n }\n </a>\n </li>\n }\n @for (page of pages; track page.index) {\n <li class=\"thy-page-item thy-page-number\" [class.active]=\"page.active\" [class.disabled]=\"disabled\" (click)=\"selectPage(page.index)\">\n <a class=\"thy-page-link\" href=\"javascript:;\">{{ page.text }}</a>\n </li>\n }\n @if (config.directionLinks) {\n <li class=\"thy-page-item page-item-next\" [class.disabled]=\"disabled || pageIndex === pageCount\" (click)=\"selectPage(pageIndex + 1)\">\n <a class=\"thy-page-link thy-page-link-next\" href=\"javascript:;\">\n @if (config.nextText) {\n {{ config.nextText }}\n }\n @if (config.nextIcon) {\n <thy-icon [thyIconName]=\"config.nextIcon\"></thy-icon>\n }\n </a>\n </li>\n }\n @if (config.boundaryLinks) {\n <li class=\"thy-page-item\" [class.disabled]=\"disabled || pageIndex === pageCount\" (click)=\"selectPage(pageCount)\">\n <a class=\"thy-page-link thy-page-link-last\" href=\"javascript:;\">\n @if (config.lastText) {\n {{ config.lastText }}\n }\n @if (config.lastIcon) {\n <thy-icon [thyIconName]=\"config.lastIcon\"></thy-icon>\n }\n </a>\n </li>\n }\n </ul>\n @if (config.showTotalPageCount && config.totalPagesFormat) {\n <div class=\"thy-pagination-count\" [innerHTML]=\"pageCount | paginationTotalPagesFormat: config.totalPagesFormat\"></div>\n }\n @if (config.showQuickJumper) {\n <div class=\"thy-pagination-jumper\">\n <div class=\"thy-pagination-jumper-input\">\n {{ locale().jumpTo }}\n <input type=\"text\" [disabled]=\"disabled\" #jumperInput (thyEnter)=\"jumpPage(jumperInput)\" (blur)=\"jumpPage(jumperInput)\" />\n {{ locale().page }}\n </div>\n </div>\n }\n </div>\n}\n" }]
|
|
341
382
|
}], propDecorators: { thyPageIndex: [{
|
|
342
383
|
type: Input,
|
|
343
384
|
args: [{ transform: numberAttribute }]
|
|
@@ -404,13 +445,34 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
|
|
|
404
445
|
|
|
405
446
|
class ThyPaginationModule {
|
|
406
447
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyPaginationModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
407
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.0", ngImport: i0, type: ThyPaginationModule, imports: [CommonModule,
|
|
408
|
-
|
|
448
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.0", ngImport: i0, type: ThyPaginationModule, imports: [CommonModule,
|
|
449
|
+
FormsModule,
|
|
450
|
+
ThySharedModule,
|
|
451
|
+
ThyIconModule,
|
|
452
|
+
ThySelectModule,
|
|
453
|
+
ThyPagination,
|
|
454
|
+
PaginationTotalCountFormat,
|
|
455
|
+
PaginationPerPageFormat], exports: [ThyPagination] }); }
|
|
456
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyPaginationModule, imports: [CommonModule,
|
|
457
|
+
FormsModule,
|
|
458
|
+
ThySharedModule,
|
|
459
|
+
ThyIconModule,
|
|
460
|
+
ThySelectModule,
|
|
461
|
+
ThyPagination] }); }
|
|
409
462
|
}
|
|
410
463
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyPaginationModule, decorators: [{
|
|
411
464
|
type: NgModule,
|
|
412
465
|
args: [{
|
|
413
|
-
imports: [
|
|
466
|
+
imports: [
|
|
467
|
+
CommonModule,
|
|
468
|
+
FormsModule,
|
|
469
|
+
ThySharedModule,
|
|
470
|
+
ThyIconModule,
|
|
471
|
+
ThySelectModule,
|
|
472
|
+
ThyPagination,
|
|
473
|
+
PaginationTotalCountFormat,
|
|
474
|
+
PaginationPerPageFormat
|
|
475
|
+
],
|
|
414
476
|
exports: [ThyPagination]
|
|
415
477
|
}]
|
|
416
478
|
}] });
|
|
@@ -419,5 +481,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
|
|
|
419
481
|
* Generated bundle index. Do not edit.
|
|
420
482
|
*/
|
|
421
483
|
|
|
422
|
-
export { DEFAULT_RANGE_COUNT, PaginationDefaultConfig, PaginationTotalCountFormat, THY_PAGINATION_CONFIG, ThyPagination, ThyPaginationModule };
|
|
484
|
+
export { DEFAULT_RANGE_COUNT, PaginationDefaultConfig, PaginationPerPageFormat, PaginationTotalCountFormat, THY_PAGINATION_CONFIG, ThyPagination, ThyPaginationModule };
|
|
423
485
|
//# sourceMappingURL=ngx-tethys-pagination.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ngx-tethys-pagination.mjs","sources":["../../../src/pagination/pagination.config.ts","../../../src/pagination/pagination.pipe.ts","../../../src/pagination/pagination.component.ts","../../../src/pagination/pagination.component.html","../../../src/pagination/pagination.module.ts","../../../src/pagination/ngx-tethys-pagination.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\nimport { ThyPaginationConfigModel } from './pagination.class';\n\nexport const DEFAULT_RANGE_COUNT = 5;\n\nexport const PaginationDefaultConfig: ThyPaginationConfigModel = {\n boundaryLinks: false,\n directionLinks: true,\n pageSize: 20,\n maxCount: 7,\n rangeCount: DEFAULT_RANGE_COUNT,\n showQuickJumper: true,\n showTotalPageCount: true,\n firstText: '第一页',\n lastText: '最后一页',\n previousText: '',\n nextText: '',\n firstIcon: '',\n lastIcon: '',\n previousIcon: 'angle-left',\n nextIcon: 'angle-right',\n totalPagesFormat: '共{total}页',\n showSizeChanger: false,\n pageSizeOptions: [10, 20, 50, 100],\n unit: '条'\n};\nexport interface ThyPaginationConfig {\n main?: ThyPaginationConfigModel;\n}\n\nexport const THY_PAGINATION_CONFIG = new InjectionToken<ThyPaginationConfig>('THY_PAGINATION_CONFIG', {\n providedIn: 'root',\n factory: () => {\n return {};\n }\n});\n","import { Pipe, PipeTransform, inject } from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\n\n/**\n * @private\n */\n@Pipe({\n name: 'paginationTotalPagesFormat',\n standalone: true\n})\nexport class PaginationTotalCountFormat implements PipeTransform {\n private sanitizer = inject(DomSanitizer);\n\n transform(count: number, format: string): any {\n if (count && format) {\n return this.sanitizer.bypassSecurityTrustHtml(format.replace(/\\{(.+?)\\}/g, `<span>${count}</span>`));\n } else {\n return '';\n }\n }\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n EventEmitter,\n HostBinding,\n Input,\n OnInit,\n Output,\n TemplateRef,\n numberAttribute,\n inject\n} from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { useHostRenderer } from '@tethys/cdk/dom';\nimport { ThyIcon } from 'ngx-tethys/icon';\nimport { ThySelect } from 'ngx-tethys/select';\nimport { ThyEnterDirective, ThyOption } from 'ngx-tethys/shared';\nimport { coerceBooleanProperty, isTemplateRef } from 'ngx-tethys/util';\nimport { ThyPaginationConfigModel } from './pagination.class';\nimport { DEFAULT_RANGE_COUNT, PaginationDefaultConfig, THY_PAGINATION_CONFIG, ThyPaginationConfig } from './pagination.config';\nimport { PaginationTotalCountFormat } from './pagination.pipe';\n\n/**\n * 分页组件,当数据量过多时,使用分页分解数据。\n * @name thy-pagination\n * @order 10\n */\n@Component({\n selector: 'thy-pagination',\n templateUrl: './pagination.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [NgTemplateOutlet, ThySelect, FormsModule, ThyOption, ThyIcon, ThyEnterDirective, PaginationTotalCountFormat]\n})\nexport class ThyPagination implements OnInit {\n private paginationConfig = inject(THY_PAGINATION_CONFIG, { optional: true })!;\n private cdr = inject(ChangeDetectorRef);\n\n isTemplateRef = isTemplateRef;\n public config: ThyPaginationConfigModel = Object.assign({}, PaginationDefaultConfig, this.paginationConfig.main);\n\n /**\n * 设置当前页,支持双向绑定\n * @default 1\n */\n @Input({ transform: numberAttribute })\n set thyPageIndex(pageIndex: number) {\n this.pageIndex = pageIndex;\n if (this.initialized) {\n this.setPageIndex(pageIndex);\n }\n }\n\n /**\n * 每页条目数量\n * @default 20\n */\n @Input({ transform: numberAttribute })\n set thyPageSize(pageSize: number) {\n this.pageSize = pageSize;\n this.selectPageSize = pageSize;\n if (this.initialized) {\n this.calculatePageCount();\n this.initializePages(this.pageIndex, this.pageCount);\n this.cdr.markForCheck();\n }\n }\n\n /**\n * 总页数 与 totalPages 二选一传入\n */\n @Input({ transform: numberAttribute })\n set thyTotal(total: number) {\n this.total = total;\n if (this.initialized) {\n this.calculatePageCount();\n this.setPageIndex(this.pageIndex);\n this.cdr.markForCheck();\n }\n }\n\n /**\n * 自定义分页页码,设置自定义分页页码后将不根据 Total 和 PageSize 来自动计算页码,完全以传入的页码为准\n * @type number[]\n */\n @Input()\n set thyCustomPages(pages: number[]) {\n this.customPages = pages;\n this.config.showTotalPageCount = false;\n if (this.initialized) {\n this.calculatePageCount();\n this.initializePages(this.pageIndex, this.pageCount);\n this.cdr.markForCheck();\n }\n }\n\n /**\n * 是否禁用\n */\n @Input({ alias: 'thyDisabled', transform: coerceBooleanProperty }) disabled = false;\n\n /**\n * 是否显示快速跳转\n * @default false\n */\n @Input({ alias: 'thyShowQuickJumper', transform: coerceBooleanProperty })\n set showQuickJumper(value: boolean) {\n this.config.showQuickJumper = value;\n }\n\n /**\n * 设置是否显示总页数信息\n * @default true\n */\n @Input({ alias: 'thyShowTotalPageCount', transform: coerceBooleanProperty })\n set showTotalPageCount(value: boolean) {\n this.config.showTotalPageCount = value;\n }\n\n /**\n * 设置分页组件的大小\n * @type sm | md | lg\n * @default md\n */\n @Input('thySize')\n set size(size: 'sm' | 'md' | 'lg') {\n this.selectSize = size;\n this.hostRenderer.addClass(`thy-pagination-${size}`);\n }\n\n /**\n * 设置最大显示数量,超出最大显示数后会自动进行分割显示\n * @default 9\n */\n @Input({ alias: 'thyMaxCount', transform: numberAttribute })\n set maxCount(value: number) {\n this.config.maxCount = value;\n }\n\n /**\n * 设置边缘显示数量\n * @default 2\n */\n @Input({ alias: 'thyMarginalCount', transform: numberAttribute }) marginalCount: number;\n\n /**\n * 设置中间区域显示数量\n * @default 5\n */\n @Input({ transform: numberAttribute })\n set thyRangeCount(value: number) {\n if (Number.isInteger(value)) {\n this.config.rangeCount = value;\n if (this.initialized) {\n this.setMarginalCount(value);\n }\n }\n }\n\n @Input({ alias: 'thyShowSizeChanger', transform: coerceBooleanProperty })\n set showSizeChanger(value: boolean) {\n this.config.showSizeChanger = value;\n }\n\n /**\n * @type number[]\n */\n @Input('thyPageSizeOptions')\n set pageSizeOptions(value: number[]) {\n this.config.pageSizeOptions = value;\n }\n\n /**\n * 只有一页时是否隐藏分页器\n * @default false\n */\n @Input({ alias: 'thyHideOnSinglePage', transform: coerceBooleanProperty }) hideOnSinglePage: boolean;\n\n /**\n * 分页器单位\n * @default 条\n */\n @Input('thyUnit')\n set unit(value: string) {\n if (value) {\n this.config.unit = value;\n }\n }\n\n /**\n * 页码改变的回调\n */\n @Output('thyPageIndexChange') pageIndexChange = new EventEmitter<number>();\n\n /**\n * 与Bootstrap pagination 兼容,后续版本会进行删除,参数保持与 bootstrap 一致\n */\n @Output('thyPageChanged') pageChanged = new EventEmitter<{ page: number }>();\n\n @Output('thyPageSizeChanged') pageSizeChanged = new EventEmitter<number>();\n\n public pages: { index?: number; text?: string; active?: boolean }[] = [];\n\n public pageIndex = 1;\n\n public pageSize: number;\n\n public pageCount: number;\n\n public customPages: number[];\n\n public total: number;\n\n public range = { from: 0, to: 0 };\n\n public firstIndex = 1;\n\n public isHideOnSinglePage = false;\n\n private initialized = false;\n\n private hostRenderer = useHostRenderer();\n\n public selectSize = 'md';\n\n public selectPageSize: Number = 20;\n\n @HostBinding('class.thy-pagination') isPaginationClass = true;\n\n /**\n * 是否显示范围和total\n * @default false\n */\n @HostBinding('class.thy-pagination-has-total')\n @Input('thyShowTotal')\n showTotal: boolean | TemplateRef<{ $implicit: number; range: { from: number; to: number } }> = false;\n\n ngOnInit() {\n this.setMarginalCount(this.config.rangeCount);\n this.calculatePageCount();\n this.setPageIndex(this.pageIndex);\n this.initialized = true;\n }\n\n private setMarginalCount(range: number) {\n if (!this.marginalCount) {\n this.marginalCount = range <= DEFAULT_RANGE_COUNT ? 1 : 2;\n }\n }\n\n private setPageIndex(pageIndex: number) {\n this.pageIndex = pageIndex > this.pageCount ? this.pageCount : pageIndex || 1;\n const toPageSize = this.pageIndex * this.pageSize;\n this.range = {\n from: (this.pageIndex - 1) * this.pageSize + 1,\n to: toPageSize > this.total ? this.total : toPageSize\n };\n this.initializePages(this.pageIndex, this.pageCount);\n this.cdr.markForCheck();\n }\n\n private calculatePageCount() {\n let pageCount = null;\n if (this.customPages && this.customPages.length > 0) {\n pageCount = this.customPages[this.customPages.length - 1];\n } else {\n pageCount = this.pageSize < 1 ? 1 : Math.ceil(this.total / this.pageSize);\n }\n this.pageCount = Math.max(pageCount || 0, 1);\n }\n\n private makePage(index: number, text: string, active: boolean): { index: number; text: string; active: boolean } {\n return { index, text, active };\n }\n\n private initializePages(pageIndex: number, pageCount: number) {\n if (this.customPages && this.customPages.length > 0) {\n this.pages = this.customPages.map(page => {\n return {\n index: page,\n text: page.toString(),\n active: page === +pageIndex\n };\n });\n return;\n }\n\n let pages = [];\n const marginalCount = this.marginalCount;\n const rangeCount = this.config.rangeCount;\n const maxCount = this.config.maxCount;\n const isMaxSized = pageCount > maxCount;\n if (isMaxSized) {\n const beforePages = [];\n const afterPages = [];\n\n // mainPages\n let start = Math.ceil(Math.max(marginalCount + 1, pageIndex - (rangeCount - 1) / 2));\n let end = Math.ceil(Math.min(pageIndex + (rangeCount - 1) / 2, pageCount - marginalCount));\n if (pageIndex - 1 < marginalCount) {\n end = rangeCount;\n }\n if (pageCount - pageIndex <= marginalCount) {\n start = pageCount - rangeCount + 1;\n }\n\n for (let i = start; i <= end; i++) {\n pages.push({\n index: i,\n text: i.toString(),\n active: i === +pageIndex\n });\n }\n\n // beforePages\n for (let i = 1; i <= marginalCount; i++) {\n beforePages.push(this.makePage(i, i.toString(), i === pageIndex));\n }\n\n if (pageIndex - Math.ceil(rangeCount / 2) > this.firstIndex && marginalCount + 1 < start) {\n beforePages.push(this.makePage(Math.ceil((marginalCount + start) / 2), '···', null));\n }\n\n // afterPages\n if (pageIndex + Math.ceil(rangeCount / 2) < pageCount && pageCount - marginalCount > end) {\n afterPages.push(this.makePage(Math.ceil((pageCount - marginalCount + 1 + end) / 2), '···', null));\n }\n for (let i = pageCount - marginalCount + 1; i <= pageCount; i++) {\n afterPages.push(this.makePage(i, i.toString(), i === pageIndex));\n }\n\n pages = [...beforePages, ...pages, ...afterPages];\n } else {\n for (let i = 1; i <= pageCount; i++) {\n pages.push({\n index: i,\n text: i.toString(),\n active: i === +pageIndex\n });\n }\n }\n this.pages = pages;\n }\n\n private pageChange(pageIndex: number) {\n this.pageIndexChange.emit(pageIndex);\n this.pageChanged.emit({ page: pageIndex });\n }\n\n selectPage(pageIndex: number) {\n if (this.disabled || pageIndex === this.firstIndex - 1 || pageIndex === this.pageCount + 1) {\n return;\n }\n this.setPageIndex(pageIndex);\n this.pageChange(this.pageIndex);\n }\n\n jumpPage(input: HTMLInputElement) {\n const pageIndex = +input.value;\n if (Number.isInteger(pageIndex)) {\n this.selectPage(pageIndex);\n }\n input.value = '';\n }\n\n onPageSizeChange(event: number) {\n this.pageSize = event;\n this.calculatePageCount();\n this.setPageIndex(this.pageIndex);\n this.pageSizeChanged.emit(event);\n }\n}\n","@if ((hideOnSinglePage && total > pageSize) || !hideOnSinglePage) {\n @if (showTotal) {\n <div class=\"thy-pagination-total\">\n @if (!isTemplateRef(showTotal)) {\n @if (total > 0) {\n <div class=\"mr-3\">\n 第<span class=\"number\"> {{ range.from }}-{{ range.to }} </span>{{ config.unit }}\n </div>\n <div>\n 共<span class=\"number\"> {{ total }} </span>{{ config.unit }}\n </div>\n }\n } @else {\n <ng-template [ngTemplateOutlet]=\"showTotal\" [ngTemplateOutletContext]=\"{ $implicit: total, range: range }\"></ng-template>\n }\n </div>\n }\n <div class=\"thy-pagination-content\">\n @if (config.showSizeChanger) {\n <div class=\"thy-pagination-size\">\n <thy-select [(ngModel)]=\"selectPageSize\" [thySize]=\"selectSize\" [thyDisabled]=\"disabled\" (ngModelChange)=\"onPageSizeChange($event)\">\n @for (option of config.pageSizeOptions; track option) {\n <thy-option class=\"page-size-option\" [thyValue]=\"option\" [thyLabelText]=\"option + ' ' + config.unit + '/页'\"></thy-option>\n }\n </thy-select>\n </div>\n }\n <ul class=\"thy-pagination-pages\">\n @if (config.boundaryLinks) {\n <li class=\"thy-page-item\" [class.disabled]=\"disabled || pageIndex === firstIndex\" (click)=\"selectPage(firstIndex)\">\n <a class=\"thy-page-link thy-page-link-first\" href=\"javascript:;\">\n @if (config.firstText) {\n {{ config.firstText }}\n }\n @if (config.firstIcon) {\n <thy-icon [thyIconName]=\"config.firstIcon\"></thy-icon>\n }\n </a>\n </li>\n }\n @if (config.directionLinks) {\n <li class=\"thy-page-item\" [class.disabled]=\"disabled || pageIndex === firstIndex\" (click)=\"selectPage(pageIndex - 1)\">\n <a class=\"thy-page-link page-link-pre\" href=\"javascript:;\">\n @if (config.previousText) {\n {{ config.previousText }}\n }\n @if (config.previousIcon) {\n <thy-icon [thyIconName]=\"config.previousIcon\"></thy-icon>\n }\n </a>\n </li>\n }\n @for (page of pages; track page.index) {\n <li class=\"thy-page-item thy-page-number\" [class.active]=\"page.active\" [class.disabled]=\"disabled\" (click)=\"selectPage(page.index)\">\n <a class=\"thy-page-link\" href=\"javascript:;\">{{ page.text }}</a>\n </li>\n }\n @if (config.directionLinks) {\n <li class=\"thy-page-item page-item-next\" [class.disabled]=\"disabled || pageIndex === pageCount\" (click)=\"selectPage(pageIndex + 1)\">\n <a class=\"thy-page-link thy-page-link-next\" href=\"javascript:;\">\n @if (config.nextText) {\n {{ config.nextText }}\n }\n @if (config.nextIcon) {\n <thy-icon [thyIconName]=\"config.nextIcon\"></thy-icon>\n }\n </a>\n </li>\n }\n @if (config.boundaryLinks) {\n <li class=\"thy-page-item\" [class.disabled]=\"disabled || pageIndex === pageCount\" (click)=\"selectPage(pageCount)\">\n <a class=\"thy-page-link thy-page-link-last\" href=\"javascript:;\">\n @if (config.lastText) {\n {{ config.lastText }}\n }\n @if (config.lastIcon) {\n <thy-icon [thyIconName]=\"config.lastIcon\"></thy-icon>\n }\n </a>\n </li>\n }\n </ul>\n @if (config.showTotalPageCount && config.totalPagesFormat) {\n <div class=\"thy-pagination-count\" [innerHTML]=\"pageCount | paginationTotalPagesFormat: config.totalPagesFormat\"></div>\n }\n @if (config.showQuickJumper) {\n <div class=\"thy-pagination-jumper\">\n <div class=\"thy-pagination-jumper-input\">\n 跳至\n <input type=\"text\" [disabled]=\"disabled\" #jumperInput (thyEnter)=\"jumpPage(jumperInput)\" (blur)=\"jumpPage(jumperInput)\" />\n 页\n </div>\n </div>\n }\n </div>\n}\n","import { NgModule } from '@angular/core';\nimport { ThyPagination } from './pagination.component';\nimport { CommonModule } from '@angular/common';\nimport { PaginationTotalCountFormat } from './pagination.pipe';\nimport { ThySharedModule } from 'ngx-tethys/shared';\nimport { THY_PAGINATION_CONFIG } from './pagination.config';\nimport { ThyIconModule } from 'ngx-tethys/icon';\nimport { ThySelectModule } from 'ngx-tethys/select';\nimport { FormsModule } from '@angular/forms';\n\n@NgModule({\n imports: [CommonModule, FormsModule, ThySharedModule, ThyIconModule, ThySelectModule, ThyPagination, PaginationTotalCountFormat],\n exports: [ThyPagination]\n})\nexport class ThyPaginationModule {}\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-pagination.mjs","sources":["../../../src/pagination/pagination.config.ts","../../../src/pagination/pagination.pipe.ts","../../../src/pagination/pagination.component.ts","../../../src/pagination/pagination.component.html","../../../src/pagination/pagination.module.ts","../../../src/pagination/ngx-tethys-pagination.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\nimport { ThyPaginationConfigModel } from './pagination.class';\n\nexport const DEFAULT_RANGE_COUNT = 5;\n\nexport const PaginationDefaultConfig: ThyPaginationConfigModel = {\n boundaryLinks: false,\n directionLinks: true,\n pageSize: 20,\n maxCount: 7,\n rangeCount: DEFAULT_RANGE_COUNT,\n showQuickJumper: true,\n showTotalPageCount: true,\n firstText: '第一页',\n lastText: '最后一页',\n previousText: '',\n nextText: '',\n firstIcon: '',\n lastIcon: '',\n previousIcon: 'angle-left',\n nextIcon: 'angle-right',\n totalPagesFormat: '共{total}页',\n showSizeChanger: false,\n pageSizeOptions: [10, 20, 50, 100],\n unit: '条'\n};\nexport interface ThyPaginationConfig {\n main?: ThyPaginationConfigModel;\n}\n\nexport const THY_PAGINATION_CONFIG = new InjectionToken<ThyPaginationConfig>('THY_PAGINATION_CONFIG', {\n providedIn: 'root',\n factory: () => {\n return {};\n }\n});\n","import { Pipe, PipeTransform, inject } from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { ThyI18nLocale } from 'ngx-tethys/i18n';\n\n/**\n * @private\n */\n@Pipe({\n name: 'paginationTotalPagesFormat',\n standalone: true\n})\nexport class PaginationTotalCountFormat implements PipeTransform {\n private sanitizer = inject(DomSanitizer);\n\n transform(count: number, format: string): any {\n if (count && format) {\n return this.sanitizer.bypassSecurityTrustHtml(format.replace(/\\{(.+?)\\}/g, `<span>${count}</span>`));\n } else {\n return '';\n }\n }\n}\n\n@Pipe({\n name: 'paginationPerPageFormat',\n standalone: true\n})\nexport class PaginationPerPageFormat implements PipeTransform {\n transform(unit: string, locale: ThyI18nLocale): string {\n if (locale.id.includes('en') || locale.id.includes('de')) {\n // eg. 5 / page\n // eg. 5 / Seite\n return ' / ' + locale.pagination.page;\n } else {\n // eg. 5 条/页\n // eg. 5 個/頁\n // eg. 5 条/ページ\n return ' ' + unit + '/' + locale.pagination.page;\n }\n }\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n EventEmitter,\n HostBinding,\n Input,\n OnInit,\n Output,\n TemplateRef,\n numberAttribute,\n inject,\n Signal\n} from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { useHostRenderer } from '@tethys/cdk/dom';\nimport { ThyIcon } from 'ngx-tethys/icon';\nimport { ThySelect } from 'ngx-tethys/select';\nimport { ThyEnterDirective, ThyOption } from 'ngx-tethys/shared';\nimport { coerceBooleanProperty, isTemplateRef } from 'ngx-tethys/util';\nimport { ThyPaginationConfigModel } from './pagination.class';\nimport { DEFAULT_RANGE_COUNT, PaginationDefaultConfig, THY_PAGINATION_CONFIG } from './pagination.config';\nimport { PaginationPerPageFormat, PaginationTotalCountFormat } from './pagination.pipe';\nimport { injectLocale, ThyI18nLocale, ThyPaginationLocale, useLocale } from 'ngx-tethys/i18n';\n\n/**\n * 分页组件,当数据量过多时,使用分页分解数据。\n * @name thy-pagination\n * @order 10\n */\n@Component({\n selector: 'thy-pagination',\n templateUrl: './pagination.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [\n NgTemplateOutlet,\n ThySelect,\n FormsModule,\n ThyOption,\n ThyIcon,\n ThyEnterDirective,\n PaginationTotalCountFormat,\n PaginationPerPageFormat\n ]\n})\nexport class ThyPagination implements OnInit {\n private paginationConfig = inject(THY_PAGINATION_CONFIG, { optional: true })!;\n private cdr = inject(ChangeDetectorRef);\n allLocale: Signal<ThyI18nLocale> = useLocale();\n locale: Signal<ThyPaginationLocale> = injectLocale('pagination');\n\n isTemplateRef = isTemplateRef;\n public config: ThyPaginationConfigModel = Object.assign(\n {},\n PaginationDefaultConfig,\n {\n firstText: this.locale().firstPage,\n lastText: this.locale().lastPage,\n totalPagesFormat: this.locale().totalCount,\n unit: this.locale().defaultUnit\n },\n this.paginationConfig.main\n );\n\n /**\n * 设置当前页,支持双向绑定\n * @default 1\n */\n @Input({ transform: numberAttribute })\n set thyPageIndex(pageIndex: number) {\n this.pageIndex = pageIndex;\n if (this.initialized) {\n this.setPageIndex(pageIndex);\n }\n }\n\n /**\n * 每页条目数量\n * @default 20\n */\n @Input({ transform: numberAttribute })\n set thyPageSize(pageSize: number) {\n this.pageSize = pageSize;\n this.selectPageSize = pageSize;\n if (this.initialized) {\n this.calculatePageCount();\n this.initializePages(this.pageIndex, this.pageCount);\n this.cdr.markForCheck();\n }\n }\n\n /**\n * 总页数 与 totalPages 二选一传入\n */\n @Input({ transform: numberAttribute })\n set thyTotal(total: number) {\n this.total = total;\n if (this.initialized) {\n this.calculatePageCount();\n this.setPageIndex(this.pageIndex);\n this.cdr.markForCheck();\n }\n }\n\n /**\n * 自定义分页页码,设置自定义分页页码后将不根据 Total 和 PageSize 来自动计算页码,完全以传入的页码为准\n * @type number[]\n */\n @Input()\n set thyCustomPages(pages: number[]) {\n this.customPages = pages;\n this.config.showTotalPageCount = false;\n if (this.initialized) {\n this.calculatePageCount();\n this.initializePages(this.pageIndex, this.pageCount);\n this.cdr.markForCheck();\n }\n }\n\n /**\n * 是否禁用\n */\n @Input({ alias: 'thyDisabled', transform: coerceBooleanProperty }) disabled = false;\n\n /**\n * 是否显示快速跳转\n * @default false\n */\n @Input({ alias: 'thyShowQuickJumper', transform: coerceBooleanProperty })\n set showQuickJumper(value: boolean) {\n this.config.showQuickJumper = value;\n }\n\n /**\n * 设置是否显示总页数信息\n * @default true\n */\n @Input({ alias: 'thyShowTotalPageCount', transform: coerceBooleanProperty })\n set showTotalPageCount(value: boolean) {\n this.config.showTotalPageCount = value;\n }\n\n /**\n * 设置分页组件的大小\n * @type sm | md | lg\n * @default md\n */\n @Input('thySize')\n set size(size: 'sm' | 'md' | 'lg') {\n this.selectSize = size;\n this.hostRenderer.addClass(`thy-pagination-${size}`);\n }\n\n /**\n * 设置最大显示数量,超出最大显示数后会自动进行分割显示\n * @default 9\n */\n @Input({ alias: 'thyMaxCount', transform: numberAttribute })\n set maxCount(value: number) {\n this.config.maxCount = value;\n }\n\n /**\n * 设置边缘显示数量\n * @default 2\n */\n @Input({ alias: 'thyMarginalCount', transform: numberAttribute }) marginalCount: number;\n\n /**\n * 设置中间区域显示数量\n * @default 5\n */\n @Input({ transform: numberAttribute })\n set thyRangeCount(value: number) {\n if (Number.isInteger(value)) {\n this.config.rangeCount = value;\n if (this.initialized) {\n this.setMarginalCount(value);\n }\n }\n }\n\n @Input({ alias: 'thyShowSizeChanger', transform: coerceBooleanProperty })\n set showSizeChanger(value: boolean) {\n this.config.showSizeChanger = value;\n }\n\n /**\n * @type number[]\n */\n @Input('thyPageSizeOptions')\n set pageSizeOptions(value: number[]) {\n this.config.pageSizeOptions = value;\n }\n\n /**\n * 只有一页时是否隐藏分页器\n * @default false\n */\n @Input({ alias: 'thyHideOnSinglePage', transform: coerceBooleanProperty }) hideOnSinglePage: boolean;\n\n /**\n * 分页器单位\n * @default 条\n */\n @Input('thyUnit')\n set unit(value: string) {\n if (value) {\n this.config.unit = value;\n }\n }\n\n /**\n * 页码改变的回调\n */\n @Output('thyPageIndexChange') pageIndexChange = new EventEmitter<number>();\n\n /**\n * 与Bootstrap pagination 兼容,后续版本会进行删除,参数保持与 bootstrap 一致\n */\n @Output('thyPageChanged') pageChanged = new EventEmitter<{ page: number }>();\n\n @Output('thyPageSizeChanged') pageSizeChanged = new EventEmitter<number>();\n\n public pages: { index?: number; text?: string; active?: boolean }[] = [];\n\n public pageIndex = 1;\n\n public pageSize: number;\n\n public pageCount: number;\n\n public customPages: number[];\n\n public total: number;\n\n public range = { from: 0, to: 0 };\n\n public firstIndex = 1;\n\n public isHideOnSinglePage = false;\n\n private initialized = false;\n\n private hostRenderer = useHostRenderer();\n\n public selectSize = 'md';\n\n public selectPageSize: Number = 20;\n\n @HostBinding('class.thy-pagination') isPaginationClass = true;\n\n /**\n * 是否显示范围和total\n * @default false\n */\n @HostBinding('class.thy-pagination-has-total')\n @Input('thyShowTotal')\n showTotal: boolean | TemplateRef<{ $implicit: number; range: { from: number; to: number } }> = false;\n\n ngOnInit() {\n this.setMarginalCount(this.config.rangeCount);\n this.calculatePageCount();\n this.setPageIndex(this.pageIndex);\n this.initialized = true;\n }\n\n private setMarginalCount(range: number) {\n if (!this.marginalCount) {\n this.marginalCount = range <= DEFAULT_RANGE_COUNT ? 1 : 2;\n }\n }\n\n private setPageIndex(pageIndex: number) {\n this.pageIndex = pageIndex > this.pageCount ? this.pageCount : pageIndex || 1;\n const toPageSize = this.pageIndex * this.pageSize;\n this.range = {\n from: (this.pageIndex - 1) * this.pageSize + 1,\n to: toPageSize > this.total ? this.total : toPageSize\n };\n this.initializePages(this.pageIndex, this.pageCount);\n this.cdr.markForCheck();\n }\n\n private calculatePageCount() {\n let pageCount = null;\n if (this.customPages && this.customPages.length > 0) {\n pageCount = this.customPages[this.customPages.length - 1];\n } else {\n pageCount = this.pageSize < 1 ? 1 : Math.ceil(this.total / this.pageSize);\n }\n this.pageCount = Math.max(pageCount || 0, 1);\n }\n\n private makePage(index: number, text: string, active: boolean): { index: number; text: string; active: boolean } {\n return { index, text, active };\n }\n\n private initializePages(pageIndex: number, pageCount: number) {\n if (this.customPages && this.customPages.length > 0) {\n this.pages = this.customPages.map(page => {\n return {\n index: page,\n text: page.toString(),\n active: page === +pageIndex\n };\n });\n return;\n }\n\n let pages = [];\n const marginalCount = this.marginalCount;\n const rangeCount = this.config.rangeCount;\n const maxCount = this.config.maxCount;\n const isMaxSized = pageCount > maxCount;\n if (isMaxSized) {\n const beforePages = [];\n const afterPages = [];\n\n // mainPages\n let start = Math.ceil(Math.max(marginalCount + 1, pageIndex - (rangeCount - 1) / 2));\n let end = Math.ceil(Math.min(pageIndex + (rangeCount - 1) / 2, pageCount - marginalCount));\n if (pageIndex - 1 < marginalCount) {\n end = rangeCount;\n }\n if (pageCount - pageIndex <= marginalCount) {\n start = pageCount - rangeCount + 1;\n }\n\n for (let i = start; i <= end; i++) {\n pages.push({\n index: i,\n text: i.toString(),\n active: i === +pageIndex\n });\n }\n\n // beforePages\n for (let i = 1; i <= marginalCount; i++) {\n beforePages.push(this.makePage(i, i.toString(), i === pageIndex));\n }\n\n if (pageIndex - Math.ceil(rangeCount / 2) > this.firstIndex && marginalCount + 1 < start) {\n beforePages.push(this.makePage(Math.ceil((marginalCount + start) / 2), '···', null));\n }\n\n // afterPages\n if (pageIndex + Math.ceil(rangeCount / 2) < pageCount && pageCount - marginalCount > end) {\n afterPages.push(this.makePage(Math.ceil((pageCount - marginalCount + 1 + end) / 2), '···', null));\n }\n for (let i = pageCount - marginalCount + 1; i <= pageCount; i++) {\n afterPages.push(this.makePage(i, i.toString(), i === pageIndex));\n }\n\n pages = [...beforePages, ...pages, ...afterPages];\n } else {\n for (let i = 1; i <= pageCount; i++) {\n pages.push({\n index: i,\n text: i.toString(),\n active: i === +pageIndex\n });\n }\n }\n this.pages = pages;\n }\n\n private pageChange(pageIndex: number) {\n this.pageIndexChange.emit(pageIndex);\n this.pageChanged.emit({ page: pageIndex });\n }\n\n selectPage(pageIndex: number) {\n if (this.disabled || pageIndex === this.firstIndex - 1 || pageIndex === this.pageCount + 1) {\n return;\n }\n this.setPageIndex(pageIndex);\n this.pageChange(this.pageIndex);\n }\n\n jumpPage(input: HTMLInputElement) {\n const pageIndex = +input.value;\n if (Number.isInteger(pageIndex)) {\n this.selectPage(pageIndex);\n }\n input.value = '';\n }\n\n onPageSizeChange(event: number) {\n this.pageSize = event;\n this.calculatePageCount();\n this.setPageIndex(this.pageIndex);\n this.pageSizeChanged.emit(event);\n }\n}\n","@if ((hideOnSinglePage && total > pageSize) || !hideOnSinglePage) {\n @if (showTotal) {\n <div class=\"thy-pagination-total\">\n @if (!isTemplateRef(showTotal)) {\n @if (total > 0) {\n <div class=\"mr-3\">\n {{ locale().order }}<span class=\"number\"> {{ range.from }}-{{ range.to }} </span>{{ config.unit }}\n </div>\n <div>\n {{ locale().total }}<span class=\"number\"> {{ total }} </span>{{ config.unit }}\n </div>\n }\n } @else {\n <ng-template [ngTemplateOutlet]=\"showTotal\" [ngTemplateOutletContext]=\"{ $implicit: total, range: range }\"></ng-template>\n }\n </div>\n }\n <div class=\"thy-pagination-content\">\n @if (config.showSizeChanger) {\n <div class=\"thy-pagination-size\">\n <thy-select [(ngModel)]=\"selectPageSize\" [thySize]=\"selectSize\" [thyDisabled]=\"disabled\" (ngModelChange)=\"onPageSizeChange($event)\">\n @for (option of config.pageSizeOptions; track option) {\n <thy-option\n class=\"page-size-option\"\n [thyValue]=\"option\"\n [thyLabelText]=\"option + (config.unit | paginationPerPageFormat: allLocale())\"></thy-option>\n }\n </thy-select>\n </div>\n }\n <ul class=\"thy-pagination-pages\">\n @if (config.boundaryLinks) {\n <li class=\"thy-page-item\" [class.disabled]=\"disabled || pageIndex === firstIndex\" (click)=\"selectPage(firstIndex)\">\n <a class=\"thy-page-link thy-page-link-first\" href=\"javascript:;\">\n @if (config.firstText) {\n {{ config.firstText }}\n }\n @if (config.firstIcon) {\n <thy-icon [thyIconName]=\"config.firstIcon\"></thy-icon>\n }\n </a>\n </li>\n }\n @if (config.directionLinks) {\n <li class=\"thy-page-item\" [class.disabled]=\"disabled || pageIndex === firstIndex\" (click)=\"selectPage(pageIndex - 1)\">\n <a class=\"thy-page-link page-link-pre\" href=\"javascript:;\">\n @if (config.previousText) {\n {{ config.previousText }}\n }\n @if (config.previousIcon) {\n <thy-icon [thyIconName]=\"config.previousIcon\"></thy-icon>\n }\n </a>\n </li>\n }\n @for (page of pages; track page.index) {\n <li class=\"thy-page-item thy-page-number\" [class.active]=\"page.active\" [class.disabled]=\"disabled\" (click)=\"selectPage(page.index)\">\n <a class=\"thy-page-link\" href=\"javascript:;\">{{ page.text }}</a>\n </li>\n }\n @if (config.directionLinks) {\n <li class=\"thy-page-item page-item-next\" [class.disabled]=\"disabled || pageIndex === pageCount\" (click)=\"selectPage(pageIndex + 1)\">\n <a class=\"thy-page-link thy-page-link-next\" href=\"javascript:;\">\n @if (config.nextText) {\n {{ config.nextText }}\n }\n @if (config.nextIcon) {\n <thy-icon [thyIconName]=\"config.nextIcon\"></thy-icon>\n }\n </a>\n </li>\n }\n @if (config.boundaryLinks) {\n <li class=\"thy-page-item\" [class.disabled]=\"disabled || pageIndex === pageCount\" (click)=\"selectPage(pageCount)\">\n <a class=\"thy-page-link thy-page-link-last\" href=\"javascript:;\">\n @if (config.lastText) {\n {{ config.lastText }}\n }\n @if (config.lastIcon) {\n <thy-icon [thyIconName]=\"config.lastIcon\"></thy-icon>\n }\n </a>\n </li>\n }\n </ul>\n @if (config.showTotalPageCount && config.totalPagesFormat) {\n <div class=\"thy-pagination-count\" [innerHTML]=\"pageCount | paginationTotalPagesFormat: config.totalPagesFormat\"></div>\n }\n @if (config.showQuickJumper) {\n <div class=\"thy-pagination-jumper\">\n <div class=\"thy-pagination-jumper-input\">\n {{ locale().jumpTo }}\n <input type=\"text\" [disabled]=\"disabled\" #jumperInput (thyEnter)=\"jumpPage(jumperInput)\" (blur)=\"jumpPage(jumperInput)\" />\n {{ locale().page }}\n </div>\n </div>\n }\n </div>\n}\n","import { NgModule } from '@angular/core';\nimport { ThyPagination } from './pagination.component';\nimport { CommonModule } from '@angular/common';\nimport { PaginationPerPageFormat, PaginationTotalCountFormat } from './pagination.pipe';\nimport { ThySharedModule } from 'ngx-tethys/shared';\nimport { ThyIconModule } from 'ngx-tethys/icon';\nimport { ThySelectModule } from 'ngx-tethys/select';\nimport { FormsModule } from '@angular/forms';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n ThySharedModule,\n ThyIconModule,\n ThySelectModule,\n ThyPagination,\n PaginationTotalCountFormat,\n PaginationPerPageFormat\n ],\n exports: [ThyPagination]\n})\nexport class ThyPaginationModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -134,7 +134,7 @@ class ThyPropertyItem {
|
|
|
134
134
|
this.setEditing(keep);
|
|
135
135
|
}
|
|
136
136
|
hasOverlay() {
|
|
137
|
-
return this.overlayOutsideClickDispatcher._attachedOverlays.
|
|
137
|
+
return !!this.overlayOutsideClickDispatcher._attachedOverlays.filter(overlay => !this.originOverlays.includes(overlay)).length;
|
|
138
138
|
}
|
|
139
139
|
subscribeClick() {
|
|
140
140
|
if (this.thyEditable === true) {
|
|
@@ -152,7 +152,7 @@ class ThyPropertyItem {
|
|
|
152
152
|
}
|
|
153
153
|
}
|
|
154
154
|
subscribeOverlayDetach() {
|
|
155
|
-
const openedOverlays = this.overlayOutsideClickDispatcher._attachedOverlays.
|
|
155
|
+
const openedOverlays = this.overlayOutsideClickDispatcher._attachedOverlays.filter(overlay => !this.originOverlays.includes(overlay));
|
|
156
156
|
const overlaysDetachments$ = openedOverlays.map(overlay => overlay.detachments());
|
|
157
157
|
if (overlaysDetachments$.length) {
|
|
158
158
|
combineLatest(overlaysDetachments$)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ngx-tethys-property.mjs","sources":["../../../src/property/properties.component.ts","../../../src/property/properties.component.html","../../../src/property/property-item.component.ts","../../../src/property/property-item.component.html","../../../src/property/module.ts","../../../src/property/ngx-tethys-property.ts"],"sourcesContent":["import { BehaviorSubject } from 'rxjs';\n\nimport { ChangeDetectionStrategy, Component, HostBinding, Input, OnInit, numberAttribute } from '@angular/core';\n\nexport type ThyPropertiesLayout = 'horizontal' | 'vertical';\n\n/**\n * 属性列表组件\n * @name thy-properties\n */\n@Component({\n selector: 'thy-properties',\n templateUrl: './properties.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'thy-properties',\n '[class.thy-properties-vertical]': 'layout === \"vertical\"',\n '[class.thy-properties-horizontal]': 'layout === \"horizontal\"',\n '[class.thy-properties-edit-trigger-hover]': 'thyEditTrigger === \"hover\"',\n '[class.thy-properties-edit-trigger-click]': 'thyEditTrigger === \"click\"'\n },\n standalone: true\n})\nexport class ThyProperties implements OnInit {\n layout$ = new BehaviorSubject<ThyPropertiesLayout>('horizontal');\n\n layout: ThyPropertiesLayout = 'horizontal';\n\n /**\n * 展示布局\n * @type \"horizontal\" | \"vertical\"\n * @default horizontal\n */\n @Input() set thyLayout(layout: ThyPropertiesLayout) {\n this.layout = layout;\n this.layout$.next(layout);\n }\n\n /**\n * 设置一行的可以 property-item 的数量\n * @type number\n */\n @Input({ transform: numberAttribute }) thyColumn: number = 1;\n\n /**\n * 设置编辑状态触发方法\n * @type 'hover' | 'click'\n */\n @Input() thyEditTrigger: 'hover' | 'click' = 'hover';\n\n @HostBinding('style.grid-template-columns')\n get gridTemplateColumns() {\n return `repeat(${this.thyColumn}, 1fr)`;\n }\n\n constructor() {}\n\n ngOnInit() {}\n}\n","<ng-content></ng-content>\n","import { ThyClickDispatcher } from 'ngx-tethys/core';\nimport { ThyFlexibleText } from 'ngx-tethys/flexible-text';\nimport { combineLatest, fromEvent, Subject, Subscription, timer } from 'rxjs';\nimport { delay, filter, take, takeUntil } from 'rxjs/operators';\n\nimport { OverlayOutsideClickDispatcher, OverlayRef } from '@angular/cdk/overlay';\nimport { NgTemplateOutlet } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n ElementRef,\n EventEmitter,\n HostBinding,\n Input,\n NgZone,\n numberAttribute,\n OnChanges,\n OnDestroy,\n OnInit,\n Output,\n SimpleChanges,\n TemplateRef,\n ViewChild,\n inject\n} from '@angular/core';\n\nimport { ThyProperties } from './properties.component';\nimport { coerceBooleanProperty } from 'ngx-tethys/util';\n\nexport type ThyPropertyItemOperationTrigger = 'hover' | 'always';\n\n/**\n * 属性组件\n * @name thy-property-item\n */\n@Component({\n selector: 'thy-property-item',\n templateUrl: './property-item.component.html',\n host: {\n class: 'thy-property-item',\n '[class.thy-property-item-operational]': '!!operation',\n '[class.thy-property-item-operational-hover]': \"thyOperationTrigger === 'hover'\"\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [ThyFlexibleText, NgTemplateOutlet]\n})\nexport class ThyPropertyItem implements OnInit, OnChanges, OnDestroy {\n private cdr = inject(ChangeDetectorRef);\n private clickDispatcher = inject(ThyClickDispatcher);\n private ngZone = inject(NgZone);\n private overlayOutsideClickDispatcher = inject(OverlayOutsideClickDispatcher);\n private parent = inject(ThyProperties);\n\n /**\n * 属性名称\n * @type sting\n * @default thyLabelText\n */\n @Input() thyLabelText: string;\n\n /**\n * 设置属性是否是可编辑的\n * @type sting\n * @default false\n */\n @Input({ transform: coerceBooleanProperty }) thyEditable: boolean;\n\n /**\n * 设置跨列的数量\n * @type number\n */\n @Input({ transform: numberAttribute }) thySpan: number = 1;\n\n /**\n * 设置属性操作现实触发方式,默认 always 一直显示\n * @type 'hover' | 'always'\n */\n @Input() thyOperationTrigger: ThyPropertyItemOperationTrigger = 'always';\n\n @Output() thyEditingChange: EventEmitter<boolean> = new EventEmitter<boolean>();\n\n /**\n * 属性名称自定义模板\n * @type TemplateRef\n */\n @ContentChild('label', { static: true }) label!: TemplateRef<void>;\n\n /**\n * 属性内容编辑模板,只有在 thyEditable 为 true 时生效\n * @type TemplateRef\n */\n @ContentChild('editor', { static: true }) editor!: TemplateRef<void>;\n\n /**\n * 操作区模板\n * @type TemplateRef\n */\n @ContentChild('operation', { static: true }) operation!: TemplateRef<void>;\n\n /**\n * @private\n */\n @ViewChild('contentTemplate', { static: true }) content!: TemplateRef<void>;\n\n /**\n * @private\n */\n @ViewChild('item', { static: true }) itemContent: ElementRef<HTMLElement>;\n\n editing: boolean;\n\n changes$ = new Subject<SimpleChanges>();\n\n private destroy$ = new Subject<void>();\n\n private eventDestroy$ = new Subject<void>();\n\n private originOverlays: OverlayRef[] = [];\n\n private clickEventSubscription: Subscription;\n\n @HostBinding('style.grid-column')\n get gridColumn() {\n return `span ${Math.min(this.thySpan, this.parent.thyColumn)}`;\n }\n\n isVertical = false;\n\n constructor() {\n this.originOverlays = [...this.overlayOutsideClickDispatcher._attachedOverlays] as OverlayRef[];\n }\n\n ngOnInit() {\n this.subscribeClick();\n this.parent.layout$.pipe(takeUntil(this.destroy$)).subscribe(layout => {\n this.isVertical = layout === 'vertical';\n this.cdr.markForCheck();\n });\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.thyEditable && changes.thyEditable.currentValue) {\n this.subscribeClick();\n } else {\n this.setEditing(false);\n this.eventDestroy$.next();\n this.eventDestroy$.complete();\n\n if (this.clickEventSubscription) {\n this.clickEventSubscription.unsubscribe();\n this.clickEventSubscription = null;\n }\n }\n }\n\n setEditing(editing: boolean) {\n this.ngZone.run(() => {\n if (!!this.editing !== !!editing) {\n this.thyEditingChange.emit(editing);\n }\n this.editing = editing;\n this.cdr.markForCheck();\n });\n }\n\n /**\n * @deprecated please use setEditing(editing: boolean)\n */\n setKeepEditing(keep: boolean) {\n this.setEditing(keep);\n }\n\n private hasOverlay() {\n return this.overlayOutsideClickDispatcher._attachedOverlays.length > this.originOverlays.length;\n }\n\n private subscribeClick() {\n if (this.thyEditable === true) {\n this.ngZone.runOutsideAngular(() => {\n if (this.clickEventSubscription) {\n return;\n }\n this.clickEventSubscription = fromEvent(this.itemContent.nativeElement, 'click')\n .pipe(takeUntil(this.eventDestroy$))\n .subscribe(() => {\n this.setEditing(true);\n this.bindEditorBlurEvent(this.itemContent.nativeElement);\n });\n });\n }\n }\n\n private subscribeOverlayDetach() {\n const openedOverlays = this.overlayOutsideClickDispatcher._attachedOverlays.slice(this.originOverlays.length);\n const overlaysDetachments$ = openedOverlays.map(overlay => overlay.detachments());\n if (overlaysDetachments$.length) {\n combineLatest(overlaysDetachments$)\n .pipe(delay(50), take(1), takeUntil(this.destroy$))\n .subscribe(() => {\n this.setEditing(false);\n });\n }\n }\n\n private subscribeDocumentClick(editorElement: HTMLElement) {\n this.clickDispatcher\n .clicked(0)\n .pipe(\n filter(event => {\n return !editorElement.contains(event.target as HTMLElement);\n }),\n take(1),\n takeUntil(this.destroy$)\n )\n .subscribe(() => {\n this.setEditing(false);\n });\n }\n\n private bindEditorBlurEvent(editorElement: HTMLElement) {\n timer(0).subscribe(() => {\n if (this.hasOverlay()) {\n this.subscribeOverlayDetach();\n } else {\n this.subscribeDocumentClick(editorElement);\n }\n });\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n\n this.eventDestroy$.next();\n this.eventDestroy$.complete();\n }\n}\n","<ng-template #contentTemplate>\n <ng-content></ng-content>\n</ng-template>\n<div class=\"thy-property-item-label\">\n @if (thyLabelText) {\n <span thyFlexibleText [thyTooltipContent]=\"thyLabelText\">{{ thyLabelText }}</span>\n }\n @if (label) {\n <span> <ng-template [ngTemplateOutlet]=\"label\"></ng-template></span>\n }\n @if (operation && isVertical) {\n <div class=\"thy-property-item-operation\">\n <ng-template [ngTemplateOutlet]=\"operation\"></ng-template>\n </div>\n }\n</div>\n<div class=\"thy-property-item-wrapper\">\n <div\n #item\n class=\"thy-property-item-content\"\n [class.thy-property-item-content-editable]=\"thyEditable\"\n [class.thy-property-item-content-editing]=\"editing\">\n <div class=\"thy-property-item-content-text\">\n @if (content) {\n <ng-template [ngTemplateOutlet]=\"content\"></ng-template>\n }\n </div>\n @if (thyEditable) {\n <div class=\"thy-property-item-content-editor\">\n @if (editor) {\n <ng-template [ngTemplateOutlet]=\"editor\"></ng-template>\n }\n </div>\n }\n </div>\n @if (operation && !isVertical) {\n <div class=\"thy-property-item-operation\">\n <ng-template [ngTemplateOutlet]=\"operation\"></ng-template>\n </div>\n }\n</div>\n","import { ThyFlexibleTextModule } from 'ngx-tethys/flexible-text';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { ThyProperties } from './properties.component';\nimport { ThyPropertyItem } from './property-item.component';\nimport { ThyTooltipModule } from 'ngx-tethys/tooltip';\n\n@NgModule({\n imports: [CommonModule, ThyFlexibleTextModule, ThyTooltipModule, ThyProperties, ThyPropertyItem],\n exports: [ThyProperties, ThyPropertyItem]\n})\nexport class ThyPropertyModule {}\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-property.mjs","sources":["../../../src/property/properties.component.ts","../../../src/property/properties.component.html","../../../src/property/property-item.component.ts","../../../src/property/property-item.component.html","../../../src/property/module.ts","../../../src/property/ngx-tethys-property.ts"],"sourcesContent":["import { BehaviorSubject } from 'rxjs';\n\nimport { ChangeDetectionStrategy, Component, HostBinding, Input, OnInit, numberAttribute } from '@angular/core';\n\nexport type ThyPropertiesLayout = 'horizontal' | 'vertical';\n\n/**\n * 属性列表组件\n * @name thy-properties\n */\n@Component({\n selector: 'thy-properties',\n templateUrl: './properties.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'thy-properties',\n '[class.thy-properties-vertical]': 'layout === \"vertical\"',\n '[class.thy-properties-horizontal]': 'layout === \"horizontal\"',\n '[class.thy-properties-edit-trigger-hover]': 'thyEditTrigger === \"hover\"',\n '[class.thy-properties-edit-trigger-click]': 'thyEditTrigger === \"click\"'\n },\n standalone: true\n})\nexport class ThyProperties implements OnInit {\n layout$ = new BehaviorSubject<ThyPropertiesLayout>('horizontal');\n\n layout: ThyPropertiesLayout = 'horizontal';\n\n /**\n * 展示布局\n * @type \"horizontal\" | \"vertical\"\n * @default horizontal\n */\n @Input() set thyLayout(layout: ThyPropertiesLayout) {\n this.layout = layout;\n this.layout$.next(layout);\n }\n\n /**\n * 设置一行的可以 property-item 的数量\n * @type number\n */\n @Input({ transform: numberAttribute }) thyColumn: number = 1;\n\n /**\n * 设置编辑状态触发方法\n * @type 'hover' | 'click'\n */\n @Input() thyEditTrigger: 'hover' | 'click' = 'hover';\n\n @HostBinding('style.grid-template-columns')\n get gridTemplateColumns() {\n return `repeat(${this.thyColumn}, 1fr)`;\n }\n\n constructor() {}\n\n ngOnInit() {}\n}\n","<ng-content></ng-content>\n","import { ThyClickDispatcher } from 'ngx-tethys/core';\nimport { ThyFlexibleText } from 'ngx-tethys/flexible-text';\nimport { combineLatest, fromEvent, Subject, Subscription, timer } from 'rxjs';\nimport { delay, filter, take, takeUntil } from 'rxjs/operators';\n\nimport { OverlayOutsideClickDispatcher, OverlayRef } from '@angular/cdk/overlay';\nimport { NgTemplateOutlet } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n ElementRef,\n EventEmitter,\n HostBinding,\n Input,\n NgZone,\n numberAttribute,\n OnChanges,\n OnDestroy,\n OnInit,\n Output,\n SimpleChanges,\n TemplateRef,\n ViewChild,\n inject\n} from '@angular/core';\n\nimport { ThyProperties } from './properties.component';\nimport { coerceBooleanProperty } from 'ngx-tethys/util';\n\nexport type ThyPropertyItemOperationTrigger = 'hover' | 'always';\n\n/**\n * 属性组件\n * @name thy-property-item\n */\n@Component({\n selector: 'thy-property-item',\n templateUrl: './property-item.component.html',\n host: {\n class: 'thy-property-item',\n '[class.thy-property-item-operational]': '!!operation',\n '[class.thy-property-item-operational-hover]': \"thyOperationTrigger === 'hover'\"\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [ThyFlexibleText, NgTemplateOutlet]\n})\nexport class ThyPropertyItem implements OnInit, OnChanges, OnDestroy {\n private cdr = inject(ChangeDetectorRef);\n private clickDispatcher = inject(ThyClickDispatcher);\n private ngZone = inject(NgZone);\n private overlayOutsideClickDispatcher = inject(OverlayOutsideClickDispatcher);\n private parent = inject(ThyProperties);\n\n /**\n * 属性名称\n * @type sting\n * @default thyLabelText\n */\n @Input() thyLabelText: string;\n\n /**\n * 设置属性是否是可编辑的\n * @type sting\n * @default false\n */\n @Input({ transform: coerceBooleanProperty }) thyEditable: boolean;\n\n /**\n * 设置跨列的数量\n * @type number\n */\n @Input({ transform: numberAttribute }) thySpan: number = 1;\n\n /**\n * 设置属性操作现实触发方式,默认 always 一直显示\n * @type 'hover' | 'always'\n */\n @Input() thyOperationTrigger: ThyPropertyItemOperationTrigger = 'always';\n\n @Output() thyEditingChange: EventEmitter<boolean> = new EventEmitter<boolean>();\n\n /**\n * 属性名称自定义模板\n * @type TemplateRef\n */\n @ContentChild('label', { static: true }) label!: TemplateRef<void>;\n\n /**\n * 属性内容编辑模板,只有在 thyEditable 为 true 时生效\n * @type TemplateRef\n */\n @ContentChild('editor', { static: true }) editor!: TemplateRef<void>;\n\n /**\n * 操作区模板\n * @type TemplateRef\n */\n @ContentChild('operation', { static: true }) operation!: TemplateRef<void>;\n\n /**\n * @private\n */\n @ViewChild('contentTemplate', { static: true }) content!: TemplateRef<void>;\n\n /**\n * @private\n */\n @ViewChild('item', { static: true }) itemContent: ElementRef<HTMLElement>;\n\n editing: boolean;\n\n changes$ = new Subject<SimpleChanges>();\n\n private destroy$ = new Subject<void>();\n\n private eventDestroy$ = new Subject<void>();\n\n private originOverlays: OverlayRef[] = [];\n\n private clickEventSubscription: Subscription;\n\n @HostBinding('style.grid-column')\n get gridColumn() {\n return `span ${Math.min(this.thySpan, this.parent.thyColumn)}`;\n }\n\n isVertical = false;\n\n constructor() {\n this.originOverlays = [...this.overlayOutsideClickDispatcher._attachedOverlays] as OverlayRef[];\n }\n\n ngOnInit() {\n this.subscribeClick();\n this.parent.layout$.pipe(takeUntil(this.destroy$)).subscribe(layout => {\n this.isVertical = layout === 'vertical';\n this.cdr.markForCheck();\n });\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.thyEditable && changes.thyEditable.currentValue) {\n this.subscribeClick();\n } else {\n this.setEditing(false);\n this.eventDestroy$.next();\n this.eventDestroy$.complete();\n\n if (this.clickEventSubscription) {\n this.clickEventSubscription.unsubscribe();\n this.clickEventSubscription = null;\n }\n }\n }\n\n setEditing(editing: boolean) {\n this.ngZone.run(() => {\n if (!!this.editing !== !!editing) {\n this.thyEditingChange.emit(editing);\n }\n this.editing = editing;\n this.cdr.markForCheck();\n });\n }\n\n /**\n * @deprecated please use setEditing(editing: boolean)\n */\n setKeepEditing(keep: boolean) {\n this.setEditing(keep);\n }\n\n private hasOverlay() {\n return !!this.overlayOutsideClickDispatcher._attachedOverlays.filter(overlay => !this.originOverlays.includes(overlay)).length;\n }\n\n private subscribeClick() {\n if (this.thyEditable === true) {\n this.ngZone.runOutsideAngular(() => {\n if (this.clickEventSubscription) {\n return;\n }\n this.clickEventSubscription = fromEvent(this.itemContent.nativeElement, 'click')\n .pipe(takeUntil(this.eventDestroy$))\n .subscribe(() => {\n this.setEditing(true);\n this.bindEditorBlurEvent(this.itemContent.nativeElement);\n });\n });\n }\n }\n\n private subscribeOverlayDetach() {\n const openedOverlays = this.overlayOutsideClickDispatcher._attachedOverlays.filter(\n overlay => !this.originOverlays.includes(overlay)\n );\n const overlaysDetachments$ = openedOverlays.map(overlay => overlay.detachments());\n if (overlaysDetachments$.length) {\n combineLatest(overlaysDetachments$)\n .pipe(delay(50), take(1), takeUntil(this.destroy$))\n .subscribe(() => {\n this.setEditing(false);\n });\n }\n }\n\n private subscribeDocumentClick(editorElement: HTMLElement) {\n this.clickDispatcher\n .clicked(0)\n .pipe(\n filter(event => {\n return !editorElement.contains(event.target as HTMLElement);\n }),\n take(1),\n takeUntil(this.destroy$)\n )\n .subscribe(() => {\n this.setEditing(false);\n });\n }\n\n private bindEditorBlurEvent(editorElement: HTMLElement) {\n timer(0).subscribe(() => {\n if (this.hasOverlay()) {\n this.subscribeOverlayDetach();\n } else {\n this.subscribeDocumentClick(editorElement);\n }\n });\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n\n this.eventDestroy$.next();\n this.eventDestroy$.complete();\n }\n}\n","<ng-template #contentTemplate>\n <ng-content></ng-content>\n</ng-template>\n<div class=\"thy-property-item-label\">\n @if (thyLabelText) {\n <span thyFlexibleText [thyTooltipContent]=\"thyLabelText\">{{ thyLabelText }}</span>\n }\n @if (label) {\n <span> <ng-template [ngTemplateOutlet]=\"label\"></ng-template></span>\n }\n @if (operation && isVertical) {\n <div class=\"thy-property-item-operation\">\n <ng-template [ngTemplateOutlet]=\"operation\"></ng-template>\n </div>\n }\n</div>\n<div class=\"thy-property-item-wrapper\">\n <div\n #item\n class=\"thy-property-item-content\"\n [class.thy-property-item-content-editable]=\"thyEditable\"\n [class.thy-property-item-content-editing]=\"editing\">\n <div class=\"thy-property-item-content-text\">\n @if (content) {\n <ng-template [ngTemplateOutlet]=\"content\"></ng-template>\n }\n </div>\n @if (thyEditable) {\n <div class=\"thy-property-item-content-editor\">\n @if (editor) {\n <ng-template [ngTemplateOutlet]=\"editor\"></ng-template>\n }\n </div>\n }\n </div>\n @if (operation && !isVertical) {\n <div class=\"thy-property-item-operation\">\n <ng-template [ngTemplateOutlet]=\"operation\"></ng-template>\n </div>\n }\n</div>\n","import { ThyFlexibleTextModule } from 'ngx-tethys/flexible-text';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { ThyProperties } from './properties.component';\nimport { ThyPropertyItem } from './property-item.component';\nimport { ThyTooltipModule } from 'ngx-tethys/tooltip';\n\n@NgModule({\n imports: [CommonModule, ThyFlexibleTextModule, ThyTooltipModule, ThyProperties, ThyPropertyItem],\n exports: [ThyProperties, ThyPropertyItem]\n})\nexport class ThyPropertyModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ngx-tethys-radio.mjs","sources":["../../../src/radio/group/radio-group.component.ts","../../../src/radio/group/radio-group.component.html","../../../src/radio/radio.component.ts","../../../src/radio/radio.component.html","../../../src/radio/button/radio-button.component.ts","../../../src/radio/button/radio-button.component.html","../../../src/radio/module.ts","../../../src/radio/ngx-tethys-radio.ts"],"sourcesContent":["import {\n AfterContentInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n forwardRef,\n HostBinding,\n Input,\n OnChanges,\n OnInit,\n SimpleChanges,\n inject\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { useHostRenderer } from '@tethys/cdk/dom';\n\nimport { ThyRadioButton } from '../button/radio-button.component';\nimport { ThyRadio } from '../radio.component';\nimport { coerceBooleanProperty } from 'ngx-tethys/util';\n\nconst buttonGroupSizeMap = {\n sm: ['btn-group-sm'],\n lg: ['btn-group-lg']\n};\n\nconst radioGroupLayoutMap = {\n flex: ['radio-group-layout-flex']\n};\n\n/**\n * @name thy-radio-group\n * @order 20\n */\n@Component({\n selector: 'thy-radio-group',\n templateUrl: './radio-group.component.html',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ThyRadioGroup),\n multi: true\n }\n ],\n host: {\n '[attr.tabindex]': `-1`\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class ThyRadioGroup implements ControlValueAccessor, OnInit, OnChanges, AfterContentInit {\n private changeDetectorRef = inject(ChangeDetectorRef);\n\n @HostBinding('class.thy-radio-group') thyRadioGroup = true;\n\n @HostBinding('class.btn-group') isButtonGroup = false;\n\n @HostBinding('class.btn-group-outline-default')\n isButtonGroupOutline = false;\n\n private _size: string;\n\n private _layout: string;\n\n /**\n * 大小\n * @type sm | md | lg\n * @default md\n */\n @Input()\n set thySize(size: string) {\n this._size = size;\n }\n\n @Input()\n set thyLayout(layout: string) {\n this._layout = layout;\n }\n\n _innerValue: string | number;\n\n radios: Array<ThyRadio | ThyRadioButton> = [];\n\n private hostRenderer = useHostRenderer();\n\n /**\n * 是否禁用单选组合框\n * @default false\n */\n @Input({ transform: coerceBooleanProperty }) thyDisabled = false;\n\n onChange: (_: string) => void = () => null;\n onTouched: () => void = () => null;\n\n addRadio(radio: ThyRadio | ThyRadioButton): void {\n this.radios.push(radio);\n radio.thyChecked = radio.thyValue === this._innerValue;\n }\n\n updateValue(value: string, emit: boolean): void {\n this._innerValue = value;\n this.radios.forEach(radio => {\n radio.thyChecked = radio.thyValue === this._innerValue;\n });\n if (emit) {\n this.onChange(value);\n }\n this.onTouched();\n this.changeDetectorRef.detectChanges();\n }\n\n writeValue(value: any): void {\n this.updateValue(value, false);\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n setDisabledState?(isDisabled: boolean): void {\n this.radios.forEach(radio => {\n radio.setDisabledState(isDisabled);\n });\n }\n\n setGroup() {\n if (!this.isButtonGroup && !this.isButtonGroupOutline) {\n this.isButtonGroup = true;\n this.isButtonGroupOutline = true;\n }\n }\n\n ngOnInit() {\n this._setClasses();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n const { thyDisabled } = changes;\n if (thyDisabled) {\n this.setDisabledState(this.thyDisabled);\n }\n }\n\n ngAfterContentInit(): void {\n this.setDisabledState(this.thyDisabled);\n }\n\n private _setClasses() {\n const classNames: string[] = [];\n if (buttonGroupSizeMap[this._size]) {\n classNames.push(buttonGroupSizeMap[this._size]);\n }\n if (radioGroupLayoutMap[this._layout]) {\n classNames.push(radioGroupLayoutMap[this._layout]);\n }\n this.hostRenderer.updateClass(classNames);\n }\n}\n","<ng-content></ng-content>\n","import { Component, forwardRef, OnInit, Input, ChangeDetectionStrategy, ChangeDetectorRef, inject } from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { ThyTranslate } from 'ngx-tethys/core';\nimport { ThyFormCheckBaseComponent } from 'ngx-tethys/shared';\nimport { ThyRadioGroup } from './group/radio-group.component';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { NgClass } from '@angular/common';\n\n/**\n * 单选框组件\n * @name thy-radio,[thyRadio]\n * @order 10\n */\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: '[thy-radio],[thyRadio]',\n templateUrl: './radio.component.html',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ThyRadio),\n multi: true\n }\n ],\n host: {\n '[attr.tabindex]': `-1`\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [NgClass]\n})\nexport class ThyRadio extends ThyFormCheckBaseComponent implements OnInit {\n thyTranslate: ThyTranslate;\n thyRadioGroupComponent = inject(ThyRadioGroup, { optional: true })!;\n\n name: string;\n\n /**\n * 当和 thy-radio-group 配合使用时的值,选中后的 NgModel 值\n */\n @Input() thyValue: string;\n\n set thyChecked(value: boolean) {\n this.writeValue(coerceBooleanProperty(value));\n this.changeDetectorRef.markForCheck();\n }\n\n ngOnInit() {\n if (this.thyRadioGroupComponent) {\n this.thyRadioGroupComponent.addRadio(this);\n }\n }\n\n change() {\n if (this.thyRadioGroupComponent) {\n this.thyRadioGroupComponent.updateValue(this.thyValue, true);\n } else {\n this.updateValue(!this._innerValue);\n }\n }\n}\n","<input\n class=\"form-check-input\"\n [checked]=\"_isChecked\"\n (change)=\"change()\"\n type=\"radio\"\n [attr.tabindex]=\"tabIndex\"\n [disabled]=\"_disabled\"\n [attr.name]=\"name\"\n [ngClass]=\"{ 'form-check-no-label-text': !_labelText }\" />\n@if (_labelText) {\n <span class=\"form-check-label\">{{ _labelText }}</span>\n}\n<ng-content></ng-content>\n","import { Component, OnInit, HostBinding, HostListener, Input, ChangeDetectorRef, inject } from '@angular/core';\nimport { ThyTranslate } from 'ngx-tethys/core';\nimport { ThyRadioGroup } from './../group/radio-group.component';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { ThyRadio } from '../radio.component';\n\n/**\n * @name [thy-radio-button],[thyRadioButton]\n */\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: '[thy-radio-button],[thyRadioButton]',\n templateUrl: './radio-button.component.html',\n standalone: true,\n host: {\n '[attr.tabindex]': `tabIndex`\n }\n})\nexport class ThyRadioButton extends ThyRadio implements OnInit {\n @HostBinding('class.btn') isButton = true;\n @HostBinding('class.active') isActive = false;\n @HostBinding('class.disabled') get isDisabled() {\n return this._disabled;\n }\n\n name: string;\n\n @Input() thyValue: string;\n\n set thyChecked(value: boolean) {\n this.isActive = !!value;\n this.writeValue(coerceBooleanProperty(value));\n }\n\n ngOnInit() {\n this._isFormCheck = false;\n if (this.thyRadioGroupComponent) {\n this.thyRadioGroupComponent.addRadio(this);\n this.thyRadioGroupComponent.setGroup();\n }\n }\n\n @HostListener('click', ['$event'])\n click($event: MouseEvent) {\n if (!this._disabled) {\n this.change();\n }\n }\n}\n","<ng-container> {{ _labelText }}</ng-container>\n<ng-content></ng-content>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { ThyRadio } from './radio.component';\nimport { ThyRadioButton } from './button/radio-button.component';\nimport { ThyRadioGroup } from './group/radio-group.component';\n\n@NgModule({\n imports: [CommonModule, FormsModule, ThyRadio, ThyRadioGroup, ThyRadioButton],\n exports: [ThyRadio, ThyRadioGroup, ThyRadioButton]\n})\nexport class ThyRadioModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["coerceBooleanProperty"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ngx-tethys-radio.mjs","sources":["../../../src/radio/group/radio-group.component.ts","../../../src/radio/group/radio-group.component.html","../../../src/radio/radio.component.ts","../../../src/radio/radio.component.html","../../../src/radio/button/radio-button.component.ts","../../../src/radio/button/radio-button.component.html","../../../src/radio/module.ts","../../../src/radio/ngx-tethys-radio.ts"],"sourcesContent":["import {\n AfterContentInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n forwardRef,\n HostBinding,\n Input,\n OnChanges,\n OnInit,\n SimpleChanges,\n inject\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { useHostRenderer } from '@tethys/cdk/dom';\n\nimport { ThyRadioButton } from '../button/radio-button.component';\nimport { ThyRadio } from '../radio.component';\nimport { coerceBooleanProperty } from 'ngx-tethys/util';\n\nconst buttonGroupSizeMap = {\n sm: ['btn-group-sm'],\n lg: ['btn-group-lg']\n};\n\nconst radioGroupLayoutMap = {\n flex: ['radio-group-layout-flex']\n};\n\n/**\n * @name thy-radio-group\n * @order 20\n */\n@Component({\n selector: 'thy-radio-group',\n templateUrl: './radio-group.component.html',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ThyRadioGroup),\n multi: true\n }\n ],\n host: {\n '[attr.tabindex]': `-1`\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class ThyRadioGroup implements ControlValueAccessor, OnInit, OnChanges, AfterContentInit {\n private changeDetectorRef = inject(ChangeDetectorRef);\n\n @HostBinding('class.thy-radio-group') thyRadioGroup = true;\n\n @HostBinding('class.btn-group') isButtonGroup = false;\n\n @HostBinding('class.btn-group-outline-default')\n isButtonGroupOutline = false;\n\n private _size: string;\n\n private _layout: string;\n\n /**\n * 大小\n * @type sm | md | lg\n * @default md\n */\n @Input()\n set thySize(size: string) {\n this._size = size;\n }\n\n @Input()\n set thyLayout(layout: string) {\n this._layout = layout;\n }\n\n _innerValue: string | number;\n\n radios: Array<ThyRadio | ThyRadioButton> = [];\n\n private hostRenderer = useHostRenderer();\n\n /**\n * 是否禁用单选组合框\n * @default false\n */\n @Input({ transform: coerceBooleanProperty }) thyDisabled = false;\n\n onChange: (_: string) => void = () => null;\n onTouched: () => void = () => null;\n\n addRadio(radio: ThyRadio | ThyRadioButton): void {\n this.radios.push(radio);\n radio.thyChecked = radio.thyValue === this._innerValue;\n }\n\n updateValue(value: string, emit: boolean): void {\n this._innerValue = value;\n this.radios.forEach(radio => {\n radio.thyChecked = radio.thyValue === this._innerValue;\n });\n if (emit) {\n this.onChange(value);\n }\n this.onTouched();\n this.changeDetectorRef.detectChanges();\n }\n\n writeValue(value: any): void {\n this.updateValue(value, false);\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n setDisabledState?(isDisabled: boolean): void {\n this.radios.forEach(radio => {\n radio.setDisabledState(isDisabled);\n });\n }\n\n setGroup() {\n if (!this.isButtonGroup && !this.isButtonGroupOutline) {\n this.isButtonGroup = true;\n this.isButtonGroupOutline = true;\n }\n }\n\n ngOnInit() {\n this._setClasses();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n const { thyDisabled } = changes;\n if (thyDisabled) {\n this.setDisabledState(this.thyDisabled);\n }\n }\n\n ngAfterContentInit(): void {\n this.setDisabledState(this.thyDisabled);\n }\n\n private _setClasses() {\n const classNames: string[] = [];\n if (buttonGroupSizeMap[this._size]) {\n classNames.push(buttonGroupSizeMap[this._size]);\n }\n if (radioGroupLayoutMap[this._layout]) {\n classNames.push(radioGroupLayoutMap[this._layout]);\n }\n this.hostRenderer.updateClass(classNames);\n }\n}\n","<ng-content></ng-content>\n","import { Component, forwardRef, OnInit, Input, ChangeDetectionStrategy, inject } from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { ThyFormCheckBaseComponent } from 'ngx-tethys/shared';\nimport { ThyRadioGroup } from './group/radio-group.component';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { NgClass } from '@angular/common';\n\n/**\n * 单选框组件\n * @name thy-radio,[thyRadio]\n * @order 10\n */\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: '[thy-radio],[thyRadio]',\n templateUrl: './radio.component.html',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ThyRadio),\n multi: true\n }\n ],\n host: {\n '[attr.tabindex]': `-1`\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [NgClass]\n})\nexport class ThyRadio extends ThyFormCheckBaseComponent implements OnInit {\n thyRadioGroupComponent = inject(ThyRadioGroup, { optional: true })!;\n\n name: string;\n\n /**\n * 当和 thy-radio-group 配合使用时的值,选中后的 NgModel 值\n */\n @Input() thyValue: string;\n\n set thyChecked(value: boolean) {\n this.writeValue(coerceBooleanProperty(value));\n this.changeDetectorRef.markForCheck();\n }\n\n ngOnInit() {\n if (this.thyRadioGroupComponent) {\n this.thyRadioGroupComponent.addRadio(this);\n }\n }\n\n change() {\n if (this.thyRadioGroupComponent) {\n this.thyRadioGroupComponent.updateValue(this.thyValue, true);\n } else {\n this.updateValue(!this._innerValue);\n }\n }\n}\n","<input\n class=\"form-check-input\"\n [checked]=\"_isChecked\"\n (change)=\"change()\"\n type=\"radio\"\n [attr.tabindex]=\"tabIndex\"\n [disabled]=\"_disabled\"\n [attr.name]=\"name\"\n [ngClass]=\"{ 'form-check-no-label-text': !_labelText }\" />\n@if (_labelText) {\n <span class=\"form-check-label\">{{ _labelText }}</span>\n}\n<ng-content></ng-content>\n","import { Component, OnInit, HostBinding, HostListener, Input } from '@angular/core';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { ThyRadio } from '../radio.component';\n\n/**\n * @name [thy-radio-button],[thyRadioButton]\n */\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: '[thy-radio-button],[thyRadioButton]',\n templateUrl: './radio-button.component.html',\n standalone: true,\n host: {\n '[attr.tabindex]': `tabIndex`\n }\n})\nexport class ThyRadioButton extends ThyRadio implements OnInit {\n @HostBinding('class.btn') isButton = true;\n @HostBinding('class.active') isActive = false;\n @HostBinding('class.disabled') get isDisabled() {\n return this._disabled;\n }\n\n name: string;\n\n @Input() thyValue: string;\n\n set thyChecked(value: boolean) {\n this.isActive = !!value;\n this.writeValue(coerceBooleanProperty(value));\n }\n\n ngOnInit() {\n this._isFormCheck = false;\n if (this.thyRadioGroupComponent) {\n this.thyRadioGroupComponent.addRadio(this);\n this.thyRadioGroupComponent.setGroup();\n }\n }\n\n @HostListener('click', ['$event'])\n click($event: MouseEvent) {\n if (!this._disabled) {\n this.change();\n }\n }\n}\n","<ng-container> {{ _labelText }}</ng-container>\n<ng-content></ng-content>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { ThyRadio } from './radio.component';\nimport { ThyRadioButton } from './button/radio-button.component';\nimport { ThyRadioGroup } from './group/radio-group.component';\n\n@NgModule({\n imports: [CommonModule, FormsModule, ThyRadio, ThyRadioGroup, ThyRadioButton],\n exports: [ThyRadio, ThyRadioGroup, ThyRadioButton]\n})\nexport class ThyRadioModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["coerceBooleanProperty"],"mappings":"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"}
|