ngx-tethys 20.0.1 → 20.0.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 +17 -0
- package/action/index.d.ts +3 -3
- package/affix/index.d.ts +1 -1
- package/alert/index.d.ts +3 -3
- package/anchor/index.d.ts +3 -3
- package/arrow-switcher/index.d.ts +6 -6
- package/autocomplete/index.d.ts +7 -7
- package/avatar/index.d.ts +9 -9
- package/back-top/index.d.ts +3 -3
- package/badge/index.d.ts +6 -6
- package/breadcrumb/index.d.ts +7 -7
- package/button/index.d.ts +19 -19
- package/calendar/index.d.ts +8 -8
- package/card/index.d.ts +6 -6
- package/carousel/index.d.ts +4 -4
- package/cascader/index.d.ts +24 -24
- package/collapse/index.d.ts +4 -4
- package/color-picker/index.d.ts +16 -16
- package/comment/index.d.ts +3 -3
- package/copy/index.d.ts +2 -2
- package/core/index.d.ts +22 -22
- package/date-picker/index.d.ts +111 -111
- package/date-range/index.d.ts +5 -5
- package/dialog/index.d.ts +18 -18
- package/divider/index.d.ts +3 -3
- package/drag-drop/index.d.ts +7 -7
- package/dropdown/index.d.ts +10 -10
- package/empty/index.d.ts +12 -12
- package/fesm2022/ngx-tethys-action.mjs +14 -12
- package/fesm2022/ngx-tethys-action.mjs.map +1 -1
- package/fesm2022/ngx-tethys-affix.mjs +7 -7
- package/fesm2022/ngx-tethys-affix.mjs.map +1 -1
- package/fesm2022/ngx-tethys-alert.mjs +10 -10
- package/fesm2022/ngx-tethys-anchor.mjs +11 -11
- package/fesm2022/ngx-tethys-anchor.mjs.map +1 -1
- package/fesm2022/ngx-tethys-arrow-switcher.mjs +7 -7
- package/fesm2022/ngx-tethys-arrow-switcher.mjs.map +1 -1
- package/fesm2022/ngx-tethys-autocomplete.mjs +19 -18
- package/fesm2022/ngx-tethys-autocomplete.mjs.map +1 -1
- package/fesm2022/ngx-tethys-avatar.mjs +23 -22
- package/fesm2022/ngx-tethys-avatar.mjs.map +1 -1
- package/fesm2022/ngx-tethys-back-top.mjs +7 -7
- package/fesm2022/ngx-tethys-badge.mjs +7 -7
- package/fesm2022/ngx-tethys-badge.mjs.map +1 -1
- package/fesm2022/ngx-tethys-breadcrumb.mjs +10 -10
- package/fesm2022/ngx-tethys-breadcrumb.mjs.map +1 -1
- package/fesm2022/ngx-tethys-button.mjs +16 -16
- package/fesm2022/ngx-tethys-button.mjs.map +1 -1
- package/fesm2022/ngx-tethys-calendar.mjs +16 -16
- package/fesm2022/ngx-tethys-calendar.mjs.map +1 -1
- package/fesm2022/ngx-tethys-card.mjs +13 -13
- package/fesm2022/ngx-tethys-card.mjs.map +1 -1
- package/fesm2022/ngx-tethys-carousel.mjs +15 -15
- package/fesm2022/ngx-tethys-carousel.mjs.map +1 -1
- package/fesm2022/ngx-tethys-cascader.mjs +41 -34
- package/fesm2022/ngx-tethys-cascader.mjs.map +1 -1
- package/fesm2022/ngx-tethys-checkbox.mjs +7 -7
- package/fesm2022/ngx-tethys-collapse.mjs +10 -10
- package/fesm2022/ngx-tethys-color-picker.mjs +65 -57
- package/fesm2022/ngx-tethys-color-picker.mjs.map +1 -1
- package/fesm2022/ngx-tethys-comment.mjs +13 -13
- package/fesm2022/ngx-tethys-copy.mjs +10 -10
- package/fesm2022/ngx-tethys-copy.mjs.map +1 -1
- package/fesm2022/ngx-tethys-core.mjs +30 -25
- package/fesm2022/ngx-tethys-core.mjs.map +1 -1
- package/fesm2022/ngx-tethys-date-picker.mjs +184 -174
- package/fesm2022/ngx-tethys-date-picker.mjs.map +1 -1
- package/fesm2022/ngx-tethys-date-range.mjs +16 -16
- package/fesm2022/ngx-tethys-date-range.mjs.map +1 -1
- package/fesm2022/ngx-tethys-dialog.mjs +24 -24
- package/fesm2022/ngx-tethys-dialog.mjs.map +1 -1
- package/fesm2022/ngx-tethys-divider.mjs +7 -7
- package/fesm2022/ngx-tethys-divider.mjs.map +1 -1
- package/fesm2022/ngx-tethys-dot.mjs +7 -7
- package/fesm2022/ngx-tethys-drag-drop.mjs +24 -24
- package/fesm2022/ngx-tethys-drag-drop.mjs.map +1 -1
- package/fesm2022/ngx-tethys-dropdown.mjs +48 -47
- package/fesm2022/ngx-tethys-dropdown.mjs.map +1 -1
- package/fesm2022/ngx-tethys-empty.mjs +13 -13
- package/fesm2022/ngx-tethys-empty.mjs.map +1 -1
- package/fesm2022/ngx-tethys-flexible-text.mjs +7 -7
- package/fesm2022/ngx-tethys-flexible-text.mjs.map +1 -1
- package/fesm2022/ngx-tethys-form.mjs +64 -61
- package/fesm2022/ngx-tethys-form.mjs.map +1 -1
- package/fesm2022/ngx-tethys-fullscreen.mjs +18 -15
- package/fesm2022/ngx-tethys-fullscreen.mjs.map +1 -1
- package/fesm2022/ngx-tethys-grid.mjs +34 -33
- package/fesm2022/ngx-tethys-grid.mjs.map +1 -1
- package/fesm2022/ngx-tethys-guider.mjs +25 -24
- package/fesm2022/ngx-tethys-guider.mjs.map +1 -1
- package/fesm2022/ngx-tethys-i18n.mjs +3 -3
- package/fesm2022/ngx-tethys-i18n.mjs.map +1 -1
- package/fesm2022/ngx-tethys-icon.mjs +15 -13
- package/fesm2022/ngx-tethys-icon.mjs.map +1 -1
- package/fesm2022/ngx-tethys-image.mjs +31 -29
- package/fesm2022/ngx-tethys-image.mjs.map +1 -1
- package/fesm2022/ngx-tethys-input-number.mjs +17 -10
- package/fesm2022/ngx-tethys-input-number.mjs.map +1 -1
- package/fesm2022/ngx-tethys-input.mjs +28 -27
- package/fesm2022/ngx-tethys-input.mjs.map +1 -1
- package/fesm2022/ngx-tethys-layout.mjs +63 -63
- package/fesm2022/ngx-tethys-layout.mjs.map +1 -1
- package/fesm2022/ngx-tethys-list.mjs +21 -18
- package/fesm2022/ngx-tethys-list.mjs.map +1 -1
- package/fesm2022/ngx-tethys-loading.mjs +7 -7
- package/fesm2022/ngx-tethys-mention.mjs +35 -31
- package/fesm2022/ngx-tethys-mention.mjs.map +1 -1
- package/fesm2022/ngx-tethys-menu.mjs +26 -26
- package/fesm2022/ngx-tethys-menu.mjs.map +1 -1
- package/fesm2022/ngx-tethys-message.mjs +24 -24
- package/fesm2022/ngx-tethys-message.mjs.map +1 -1
- package/fesm2022/ngx-tethys-nav.mjs +27 -27
- package/fesm2022/ngx-tethys-nav.mjs.map +1 -1
- package/fesm2022/ngx-tethys-notify.mjs +20 -20
- package/fesm2022/ngx-tethys-notify.mjs.map +1 -1
- package/fesm2022/ngx-tethys-pagination.mjs +18 -18
- package/fesm2022/ngx-tethys-pagination.mjs.map +1 -1
- package/fesm2022/ngx-tethys-popover.mjs +22 -21
- package/fesm2022/ngx-tethys-popover.mjs.map +1 -1
- package/fesm2022/ngx-tethys-progress.mjs +17 -17
- package/fesm2022/ngx-tethys-progress.mjs.map +1 -1
- package/fesm2022/ngx-tethys-property-operation.mjs +11 -11
- package/fesm2022/ngx-tethys-property-operation.mjs.map +1 -1
- package/fesm2022/ngx-tethys-property.mjs +12 -11
- package/fesm2022/ngx-tethys-property.mjs.map +1 -1
- package/fesm2022/ngx-tethys-radio.mjs +17 -17
- package/fesm2022/ngx-tethys-radio.mjs.map +1 -1
- package/fesm2022/ngx-tethys-rate.mjs +12 -12
- package/fesm2022/ngx-tethys-rate.mjs.map +1 -1
- package/fesm2022/ngx-tethys-resizable.mjs +21 -18
- package/fesm2022/ngx-tethys-resizable.mjs.map +1 -1
- package/fesm2022/ngx-tethys-result.mjs +11 -11
- package/fesm2022/ngx-tethys-result.mjs.map +1 -1
- package/fesm2022/ngx-tethys-segment.mjs +19 -16
- package/fesm2022/ngx-tethys-segment.mjs.map +1 -1
- package/fesm2022/ngx-tethys-select.mjs +60 -38
- package/fesm2022/ngx-tethys-select.mjs.map +1 -1
- package/fesm2022/ngx-tethys-shared.mjs +82 -79
- package/fesm2022/ngx-tethys-shared.mjs.map +1 -1
- package/fesm2022/ngx-tethys-skeleton.mjs +32 -32
- package/fesm2022/ngx-tethys-skeleton.mjs.map +1 -1
- package/fesm2022/ngx-tethys-slide.mjs +37 -36
- package/fesm2022/ngx-tethys-slide.mjs.map +1 -1
- package/fesm2022/ngx-tethys-slider.mjs +11 -11
- package/fesm2022/ngx-tethys-slider.mjs.map +1 -1
- package/fesm2022/ngx-tethys-space.mjs +10 -10
- package/fesm2022/ngx-tethys-statistic.mjs +7 -7
- package/fesm2022/ngx-tethys-statistic.mjs.map +1 -1
- package/fesm2022/ngx-tethys-stepper.mjs +22 -22
- package/fesm2022/ngx-tethys-stepper.mjs.map +1 -1
- package/fesm2022/ngx-tethys-strength.mjs +7 -7
- package/fesm2022/ngx-tethys-strength.mjs.map +1 -1
- package/fesm2022/ngx-tethys-switch.mjs +7 -7
- package/fesm2022/ngx-tethys-switch.mjs.map +1 -1
- package/fesm2022/ngx-tethys-table.mjs +28 -28
- package/fesm2022/ngx-tethys-table.mjs.map +1 -1
- package/fesm2022/ngx-tethys-tabs.mjs +13 -13
- package/fesm2022/ngx-tethys-tabs.mjs.map +1 -1
- package/fesm2022/ngx-tethys-tag.mjs +11 -11
- package/fesm2022/ngx-tethys-tag.mjs.map +1 -1
- package/fesm2022/ngx-tethys-testing.mjs +1 -1
- package/fesm2022/ngx-tethys-testing.mjs.map +1 -1
- package/fesm2022/ngx-tethys-time-picker.mjs +22 -22
- package/fesm2022/ngx-tethys-time-picker.mjs.map +1 -1
- package/fesm2022/ngx-tethys-timeline.mjs +14 -14
- package/fesm2022/ngx-tethys-timeline.mjs.map +1 -1
- package/fesm2022/ngx-tethys-tooltip.mjs +19 -16
- package/fesm2022/ngx-tethys-tooltip.mjs.map +1 -1
- package/fesm2022/ngx-tethys-transfer.mjs +15 -15
- package/fesm2022/ngx-tethys-transfer.mjs.map +1 -1
- package/fesm2022/ngx-tethys-tree-select.mjs +17 -17
- package/fesm2022/ngx-tethys-tree-select.mjs.map +1 -1
- package/fesm2022/ngx-tethys-tree.mjs +50 -43
- package/fesm2022/ngx-tethys-tree.mjs.map +1 -1
- package/fesm2022/ngx-tethys-typography.mjs +16 -16
- package/fesm2022/ngx-tethys-typography.mjs.map +1 -1
- package/fesm2022/ngx-tethys-upload.mjs +26 -25
- package/fesm2022/ngx-tethys-upload.mjs.map +1 -1
- package/fesm2022/ngx-tethys-util.mjs +11 -5
- package/fesm2022/ngx-tethys-util.mjs.map +1 -1
- package/fesm2022/ngx-tethys-vote.mjs +7 -7
- package/fesm2022/ngx-tethys-watermark.mjs +18 -15
- package/fesm2022/ngx-tethys-watermark.mjs.map +1 -1
- package/fesm2022/ngx-tethys.mjs +1 -1
- package/fesm2022/ngx-tethys.mjs.map +1 -1
- package/flexible-text/index.d.ts +5 -5
- package/form/index.d.ts +26 -22
- package/fullscreen/index.d.ts +4 -4
- package/grid/index.d.ts +12 -12
- package/guider/index.d.ts +10 -10
- package/i18n/index.d.ts +1 -1
- package/icon/index.d.ts +3 -3
- package/image/index.d.ts +12 -12
- package/input/index.d.ts +22 -22
- package/input-number/index.d.ts +4 -4
- package/layout/index.d.ts +16 -16
- package/list/index.d.ts +16 -15
- package/mention/index.d.ts +4 -4
- package/menu/index.d.ts +7 -7
- package/message/index.d.ts +5 -5
- package/nav/index.d.ts +12 -12
- package/notify/index.d.ts +1 -1
- package/package.json +1 -1
- package/pagination/index.d.ts +21 -17
- package/popover/index.d.ts +8 -8
- package/progress/index.d.ts +18 -18
- package/property/index.d.ts +6 -6
- package/property-operation/index.d.ts +3 -3
- package/radio/index.d.ts +6 -6
- package/rate/index.d.ts +5 -5
- package/resizable/index.d.ts +2 -2
- package/result/index.d.ts +8 -8
- package/schematics/testing/test-workspace.js +1 -0
- package/schematics/version.d.ts +1 -1
- package/schematics/version.js +1 -1
- package/segment/index.d.ts +9 -9
- package/select/index.d.ts +21 -21
- package/shared/index.d.ts +29 -29
- package/skeleton/index.d.ts +52 -52
- package/slide/index.d.ts +5 -5
- package/slider/index.d.ts +6 -6
- package/space/index.d.ts +1 -1
- package/statistic/index.d.ts +18 -18
- package/stepper/index.d.ts +8 -8
- package/switch/index.d.ts +2 -2
- package/table/index.d.ts +24 -24
- package/tabs/index.d.ts +6 -6
- package/testing/index.d.ts +1 -1
- package/time-picker/index.d.ts +21 -21
- package/timeline/index.d.ts +8 -8
- package/tooltip/index.d.ts +12 -12
- package/transfer/index.d.ts +16 -16
- package/tree/index.d.ts +28 -28
- package/tree-select/index.d.ts +13 -13
- package/typography/index.d.ts +3 -3
- package/upload/index.d.ts +4 -4
- package/util/index.d.ts +17 -7
- package/vote/index.d.ts +2 -2
- package/watermark/index.d.ts +2 -2
|
@@ -17,10 +17,10 @@ class ThyPropertyOperationGroup {
|
|
|
17
17
|
constructor() {
|
|
18
18
|
this._isPropertyOperationGroup = true;
|
|
19
19
|
}
|
|
20
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
21
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.
|
|
20
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyPropertyOperationGroup, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
21
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.15", type: ThyPropertyOperationGroup, isStandalone: true, selector: "thy-property-operation-group", host: { properties: { "class.thy-property-operation-group": "this._isPropertyOperationGroup" } }, ngImport: i0, template: "<ng-content></ng-content>\n" }); }
|
|
22
22
|
}
|
|
23
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
23
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyPropertyOperationGroup, decorators: [{
|
|
24
24
|
type: Component,
|
|
25
25
|
args: [{ selector: 'thy-property-operation-group', template: "<ng-content></ng-content>\n" }]
|
|
26
26
|
}], ctorParameters: () => [], propDecorators: { _isPropertyOperationGroup: [{
|
|
@@ -148,12 +148,12 @@ class ThyPropertyOperation {
|
|
|
148
148
|
$event.stopPropagation();
|
|
149
149
|
this.thyOnRemove.emit($event);
|
|
150
150
|
}
|
|
151
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
152
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.
|
|
151
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyPropertyOperation, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
152
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.15", type: ThyPropertyOperation, isStandalone: true, selector: "thy-property-operation", inputs: { thyLabelText: "thyLabelText", thyValue: "thyValue", thyLabelTextTranslateKey: "thyLabelTextTranslateKey", thyIcon: "thyIcon", thyShowClose: ["thyShowClose", "thyShowClose", coerceBooleanProperty], thyLabelHasValue: ["thyLabelHasValue", "thyLabelHasValue", coerceBooleanProperty], thyLabelHideWhenHasValue: ["thyLabelHideWhenHasValue", "thyLabelHideWhenHasValue", coerceBooleanProperty], thyType: "thyType", active: ["thyActive", "active", coerceBooleanProperty], disabled: ["thyDisabled", "disabled", coerceBooleanProperty] }, outputs: { thyOnRemove: "thyOnRemove", thyClick: "thyClick" }, host: { properties: { "class.thy-property-operation": "this._isPropertyOperation", "class.active": "this.active", "class.thy-property-operation-disabled": "this.disabled" } }, queries: [{ propertyName: "operationIcon", first: true, predicate: ["operationIcon"], descendants: true }], viewQueries: [{ propertyName: "contentElement", first: true, predicate: ["contentElement"], descendants: true, static: true }], ngImport: i0, template: "<div class=\"thy-operation-icon\">\n <ng-container *ngTemplateOutlet=\"operationIcon\"></ng-container>\n @if (icon) {\n <button\n [ngClass]=\"{ disabled: disabled }\"\n [thyButtonIcon]=\"icon\"\n [thyShape]=\"onlyHasTips ? 'circle-thick-dashed' : 'circle-thick-solid'\"></button>\n }\n</div>\n<div class=\"thy-operation-content\" [ngClass]=\"{ 'only-has-tips': onlyHasTips }\">\n <div #contentElement>\n <ng-content></ng-content>\n </div>\n @if (value) {\n <span thyFlexibleText [thyTooltipContent]=\"value\">{{ value }}</span>\n }\n\n @if (!value || (!labelHideWhenHasValue && value)) {\n <div class=\"thy-tips\">{{ labelText }}</div>\n }\n</div>\n@if (showClose && !disabled) {\n <span (click)=\"remove($event)\" class=\"close-link close-link-danger\">\n <thy-icon thyIconName=\"close\" class=\"close-link-sm\"></thy-icon>\n </span>\n}\n", dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: ThyButtonIcon, selector: "thy-button-icon,[thy-button-icon],[thyButtonIcon]", inputs: ["thySize", "thyIcon", "thyButtonIcon", "thyShape", "thyLight", "thyActive", "thyTheme", "thyColor"] }, { kind: "component", type: ThyFlexibleText, selector: "thy-flexible-text,[thyFlexibleText]", inputs: ["thyTooltipTrigger", "thyContainerClass", "thyTooltipContent", "thyTooltipPlacement", "thyTooltipOffset"], exportAs: ["thyFlexibleText"] }, { kind: "component", type: ThyIcon, selector: "thy-icon, [thy-icon]", inputs: ["thyIconType", "thyTwotoneColor", "thyIconName", "thyIconRotate", "thyIconSet", "thyIconLegging", "thyIconLinearGradient"] }] }); }
|
|
153
153
|
}
|
|
154
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
154
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyPropertyOperation, decorators: [{
|
|
155
155
|
type: Component,
|
|
156
|
-
args: [{ selector: 'thy-property-operation', imports: [NgTemplateOutlet, NgClass, ThyButtonIcon, ThyFlexibleText, ThyIcon], template: "<div class=\"thy-operation-icon\">\n <ng-container *ngTemplateOutlet=\"operationIcon\"></ng-container>\n @if (icon) {\n <button\n [ngClass]=\"{ disabled: disabled }\"\n [thyButtonIcon]=\"icon\"\n [thyShape]=\"onlyHasTips ? 'circle-thick-dashed' : 'circle-thick-solid'\"
|
|
156
|
+
args: [{ selector: 'thy-property-operation', imports: [NgTemplateOutlet, NgClass, ThyButtonIcon, ThyFlexibleText, ThyIcon], template: "<div class=\"thy-operation-icon\">\n <ng-container *ngTemplateOutlet=\"operationIcon\"></ng-container>\n @if (icon) {\n <button\n [ngClass]=\"{ disabled: disabled }\"\n [thyButtonIcon]=\"icon\"\n [thyShape]=\"onlyHasTips ? 'circle-thick-dashed' : 'circle-thick-solid'\"></button>\n }\n</div>\n<div class=\"thy-operation-content\" [ngClass]=\"{ 'only-has-tips': onlyHasTips }\">\n <div #contentElement>\n <ng-content></ng-content>\n </div>\n @if (value) {\n <span thyFlexibleText [thyTooltipContent]=\"value\">{{ value }}</span>\n }\n\n @if (!value || (!labelHideWhenHasValue && value)) {\n <div class=\"thy-tips\">{{ labelText }}</div>\n }\n</div>\n@if (showClose && !disabled) {\n <span (click)=\"remove($event)\" class=\"close-link close-link-danger\">\n <thy-icon thyIconName=\"close\" class=\"close-link-sm\"></thy-icon>\n </span>\n}\n" }]
|
|
157
157
|
}], propDecorators: { thyOnRemove: [{
|
|
158
158
|
type: Output
|
|
159
159
|
}], thyClick: [{
|
|
@@ -201,11 +201,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImpo
|
|
|
201
201
|
}] } });
|
|
202
202
|
|
|
203
203
|
class ThyPropertyOperationModule {
|
|
204
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
205
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.
|
|
206
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.
|
|
204
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyPropertyOperationModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
205
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.15", ngImport: i0, type: ThyPropertyOperationModule, imports: [CommonModule, ThyButtonModule, ThyIconModule, ThyFlexibleTextModule, ThyPropertyOperation, ThyPropertyOperationGroup], exports: [ThyPropertyOperation, ThyPropertyOperationGroup] }); }
|
|
206
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyPropertyOperationModule, imports: [CommonModule, ThyButtonModule, ThyIconModule, ThyFlexibleTextModule, ThyPropertyOperation] }); }
|
|
207
207
|
}
|
|
208
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
208
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyPropertyOperationModule, decorators: [{
|
|
209
209
|
type: NgModule,
|
|
210
210
|
args: [{
|
|
211
211
|
imports: [CommonModule, ThyButtonModule, ThyIconModule, ThyFlexibleTextModule, ThyPropertyOperation, ThyPropertyOperationGroup],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ngx-tethys-property-operation.mjs","sources":["../../../src/property-operation/group/property-operation-group.component.ts","../../../src/property-operation/group/property-operation-group.component.html","../../../src/property-operation/property-operation.component.ts","../../../src/property-operation/property-operation.component.html","../../../src/property-operation/module.ts","../../../src/property-operation/ngx-tethys-property-operation.ts"],"sourcesContent":["import { Component, HostBinding } from '@angular/core';\n\n/**\n * @name thy-property-operation-group\n */\n@Component({\n selector: 'thy-property-operation-group',\n templateUrl: './property-operation-group.component.html'\n})\nexport class ThyPropertyOperationGroup {\n @HostBinding('class.thy-property-operation-group') _isPropertyOperationGroup = true;\n\n constructor() {}\n}\n","<ng-content></ng-content>\n","import {\n AfterContentInit,\n Component,\n ContentChild,\n ElementRef,\n EventEmitter,\n HostBinding,\n Input,\n OnInit,\n Output,\n TemplateRef,\n ViewChild,\n OnDestroy,\n NgZone,\n inject\n} from '@angular/core';\nimport { useHostRenderer } from '@tethys/cdk/dom';\nimport { ThyTranslate } from 'ngx-tethys/core';\nimport { coerceBooleanProperty, htmlElementIsEmpty } from 'ngx-tethys/util';\nimport { fromEvent, Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { ThyIcon } from 'ngx-tethys/icon';\nimport { ThyFlexibleText } from 'ngx-tethys/flexible-text';\nimport { ThyButtonIcon } from 'ngx-tethys/button';\nimport { NgTemplateOutlet, NgClass } from '@angular/common';\n\ntype ThyPropertyOperationTypes = 'primary' | 'success' | 'warning' | 'danger';\n\n/**\n * 属性操作组件\n * @name thy-property-operation\n * @order 10\n */\n@Component({\n selector: 'thy-property-operation',\n templateUrl: './property-operation.component.html',\n imports: [NgTemplateOutlet, NgClass, ThyButtonIcon, ThyFlexibleText, ThyIcon]\n})\nexport class ThyPropertyOperation implements OnInit, AfterContentInit, OnDestroy {\n private thyTranslate = inject(ThyTranslate);\n private elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n private ngZone = inject(NgZone);\n\n private initialized = false;\n\n private hostRenderer = useHostRenderer();\n\n labelText: string;\n\n onlyHasTips = false;\n\n showClose = false;\n\n type: ThyPropertyOperationTypes;\n\n icon: string;\n\n value: string;\n\n labelHideWhenHasValue = false;\n\n /**\n * 点击移除图标时的事件回调,此函数只有在thyShowClose为true时才会发生\n */\n @Output() thyOnRemove = new EventEmitter();\n\n /**\n * 点击事件回调\n */\n @Output() thyClick = new EventEmitter<Event>();\n\n @HostBinding('class.thy-property-operation') _isPropertyOperation = true;\n\n @ContentChild('operationIcon') operationIcon: TemplateRef<any>;\n\n @ViewChild('contentElement', { static: true }) contentElement: ElementRef;\n\n /**\n * 属性的 Label 文本\n */\n @Input()\n set thyLabelText(value: string) {\n this.labelText = value;\n }\n\n /**\n * 属性的值\n */\n @Input()\n set thyValue(value: string) {\n this.value = value;\n this.setOnlyHasTips();\n }\n\n /**\n * 属性的 Label Translate Key\n */\n @Input()\n set thyLabelTextTranslateKey(value: string) {\n this.labelText = this.thyTranslate.instant(value);\n }\n\n /**\n * 图标\n */\n @Input()\n set thyIcon(value: string) {\n this.icon = value;\n }\n\n /**\n * 当有属性值时是否展示移除图标\n * @default false\n */\n @Input({ transform: coerceBooleanProperty })\n set thyShowClose(value: boolean) {\n this.showClose = value;\n }\n\n // 支持有值时,label不显示\n @Input({ transform: coerceBooleanProperty })\n set thyLabelHasValue(value: boolean) {\n this.labelHideWhenHasValue = !value;\n }\n\n /**\n * 有值时隐藏 label\n * @default false\n */\n @Input({ transform: coerceBooleanProperty })\n set thyLabelHideWhenHasValue(value: boolean) {\n this.labelHideWhenHasValue = value;\n }\n\n /**\n * 属性类型\n * @type danger | primary | success | warning | null\n * @default null\n */\n @Input()\n set thyType(value: ThyPropertyOperationTypes) {\n this.type = value;\n this.setHostClass();\n }\n\n /**\n * 激活状态\n * @default false\n */\n @HostBinding('class.active')\n @Input({ alias: 'thyActive', transform: coerceBooleanProperty })\n active: boolean;\n\n /**\n * 禁用操作,添加后property operation中thyClick和thyOnRemove事件将会被禁用\n * @default false\n */\n @HostBinding('class.thy-property-operation-disabled')\n @Input({ alias: 'thyDisabled', transform: coerceBooleanProperty })\n disabled: boolean;\n\n private destroy$ = new Subject<void>();\n\n private setHostClass(first = false) {\n if (!this.initialized && !first) {\n return;\n }\n this.hostRenderer.updateClass(this.type ? [`thy-property-operation-${this.type}`] : []);\n }\n\n private setOnlyHasTips(first = false) {\n if (!this.initialized && !first) {\n return;\n }\n if (this.value) {\n this.onlyHasTips = false;\n } else if (htmlElementIsEmpty(this.contentElement.nativeElement)) {\n this.onlyHasTips = true;\n } else {\n this.onlyHasTips = false;\n }\n }\n\n ngOnInit() {\n this.setHostClass(true);\n\n this.ngZone.runOutsideAngular(() =>\n fromEvent<Event>(this.elementRef.nativeElement, 'click')\n .pipe(takeUntil(this.destroy$))\n .subscribe(event => {\n if (this.disabled) {\n return;\n }\n\n this.ngZone.run(() => this.thyClick.emit(event));\n })\n );\n }\n\n ngAfterContentInit() {\n this.setOnlyHasTips(true);\n this.initialized = true;\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n }\n\n remove($event: Event) {\n $event.stopPropagation();\n this.thyOnRemove.emit($event);\n }\n}\n","<div class=\"thy-operation-icon\">\n <ng-container *ngTemplateOutlet=\"operationIcon\"></ng-container>\n @if (icon) {\n <button\n [ngClass]=\"{ disabled: disabled }\"\n [thyButtonIcon]=\"icon\"\n [thyShape]=\"onlyHasTips ? 'circle-thick-dashed' : 'circle-thick-solid'\"\n ></button>\n }\n</div>\n<div class=\"thy-operation-content\" [ngClass]=\"{ 'only-has-tips': onlyHasTips }\">\n <div #contentElement>\n <ng-content></ng-content>\n </div>\n @if (value) {\n <span thyFlexibleText [thyTooltipContent]=\"value\">{{ value }}</span>\n }\n\n @if (!value || (!labelHideWhenHasValue && value)) {\n <div class=\"thy-tips\">{{ labelText }}</div>\n }\n</div>\n@if (showClose && !disabled) {\n <span (click)=\"remove($event)\" class=\"close-link close-link-danger\">\n <thy-icon thyIconName=\"close\" class=\" close-link-sm\"></thy-icon>\n </span>\n}\n","import { ThyButtonModule } from 'ngx-tethys/button';\nimport { ThyFlexibleTextModule } from 'ngx-tethys/flexible-text';\nimport { ThyIconModule } from 'ngx-tethys/icon';\n\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { ThyPropertyOperationGroup } from './group/property-operation-group.component';\nimport { ThyPropertyOperation } from './property-operation.component';\n\n@NgModule({\n imports: [CommonModule, ThyButtonModule, ThyIconModule, ThyFlexibleTextModule, ThyPropertyOperation, ThyPropertyOperationGroup],\n exports: [ThyPropertyOperation, ThyPropertyOperationGroup]\n})\nexport class ThyPropertyOperationModule {}\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-operation.mjs","sources":["../../../src/property-operation/group/property-operation-group.component.ts","../../../src/property-operation/group/property-operation-group.component.html","../../../src/property-operation/property-operation.component.ts","../../../src/property-operation/property-operation.component.html","../../../src/property-operation/module.ts","../../../src/property-operation/ngx-tethys-property-operation.ts"],"sourcesContent":["import { Component, HostBinding } from '@angular/core';\n\n/**\n * @name thy-property-operation-group\n */\n@Component({\n selector: 'thy-property-operation-group',\n templateUrl: './property-operation-group.component.html'\n})\nexport class ThyPropertyOperationGroup {\n @HostBinding('class.thy-property-operation-group') _isPropertyOperationGroup = true;\n\n constructor() {}\n}\n","<ng-content></ng-content>\n","import {\n AfterContentInit,\n Component,\n ContentChild,\n ElementRef,\n EventEmitter,\n HostBinding,\n Input,\n OnInit,\n Output,\n TemplateRef,\n ViewChild,\n OnDestroy,\n NgZone,\n inject\n} from '@angular/core';\nimport { useHostRenderer } from '@tethys/cdk/dom';\nimport { ThyTranslate } from 'ngx-tethys/core';\nimport { coerceBooleanProperty, htmlElementIsEmpty } from 'ngx-tethys/util';\nimport { fromEvent, Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { ThyIcon } from 'ngx-tethys/icon';\nimport { ThyFlexibleText } from 'ngx-tethys/flexible-text';\nimport { ThyButtonIcon } from 'ngx-tethys/button';\nimport { NgTemplateOutlet, NgClass } from '@angular/common';\n\ntype ThyPropertyOperationTypes = 'primary' | 'success' | 'warning' | 'danger';\n\n/**\n * 属性操作组件\n * @name thy-property-operation\n * @order 10\n */\n@Component({\n selector: 'thy-property-operation',\n templateUrl: './property-operation.component.html',\n imports: [NgTemplateOutlet, NgClass, ThyButtonIcon, ThyFlexibleText, ThyIcon]\n})\nexport class ThyPropertyOperation implements OnInit, AfterContentInit, OnDestroy {\n private thyTranslate = inject(ThyTranslate);\n private elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n private ngZone = inject(NgZone);\n\n private initialized = false;\n\n private hostRenderer = useHostRenderer();\n\n labelText!: string;\n\n onlyHasTips = false;\n\n showClose = false;\n\n type!: ThyPropertyOperationTypes;\n\n icon!: string;\n\n value!: string;\n\n labelHideWhenHasValue = false;\n\n /**\n * 点击移除图标时的事件回调,此函数只有在thyShowClose为true时才会发生\n */\n @Output() readonly thyOnRemove = new EventEmitter();\n\n /**\n * 点击事件回调\n */\n @Output() readonly thyClick = new EventEmitter<Event>();\n\n @HostBinding('class.thy-property-operation') _isPropertyOperation = true;\n\n @ContentChild('operationIcon') operationIcon?: TemplateRef<any>;\n\n @ViewChild('contentElement', { static: true }) contentElement!: ElementRef;\n\n /**\n * 属性的 Label 文本\n */\n @Input()\n set thyLabelText(value: string) {\n this.labelText = value;\n }\n\n /**\n * 属性的值\n */\n @Input()\n set thyValue(value: string) {\n this.value = value;\n this.setOnlyHasTips();\n }\n\n /**\n * 属性的 Label Translate Key\n */\n @Input()\n set thyLabelTextTranslateKey(value: string) {\n this.labelText = this.thyTranslate.instant(value);\n }\n\n /**\n * 图标\n */\n @Input()\n set thyIcon(value: string) {\n this.icon = value;\n }\n\n /**\n * 当有属性值时是否展示移除图标\n * @default false\n */\n @Input({ transform: coerceBooleanProperty })\n set thyShowClose(value: boolean) {\n this.showClose = value;\n }\n\n // 支持有值时,label不显示\n @Input({ transform: coerceBooleanProperty })\n set thyLabelHasValue(value: boolean) {\n this.labelHideWhenHasValue = !value;\n }\n\n /**\n * 有值时隐藏 label\n * @default false\n */\n @Input({ transform: coerceBooleanProperty })\n set thyLabelHideWhenHasValue(value: boolean) {\n this.labelHideWhenHasValue = value;\n }\n\n /**\n * 属性类型\n * @type danger | primary | success | warning | null\n * @default null\n */\n @Input()\n set thyType(value: ThyPropertyOperationTypes) {\n this.type = value;\n this.setHostClass();\n }\n\n /**\n * 激活状态\n * @default false\n */\n @HostBinding('class.active')\n @Input({ alias: 'thyActive', transform: coerceBooleanProperty })\n active!: boolean;\n\n /**\n * 禁用操作,添加后property operation中thyClick和thyOnRemove事件将会被禁用\n * @default false\n */\n @HostBinding('class.thy-property-operation-disabled')\n @Input({ alias: 'thyDisabled', transform: coerceBooleanProperty })\n disabled!: boolean;\n\n private destroy$ = new Subject<void>();\n\n private setHostClass(first = false) {\n if (!this.initialized && !first) {\n return;\n }\n this.hostRenderer.updateClass(this.type ? [`thy-property-operation-${this.type}`] : []);\n }\n\n private setOnlyHasTips(first = false) {\n if (!this.initialized && !first) {\n return;\n }\n if (this.value) {\n this.onlyHasTips = false;\n } else if (htmlElementIsEmpty(this.contentElement.nativeElement)) {\n this.onlyHasTips = true;\n } else {\n this.onlyHasTips = false;\n }\n }\n\n ngOnInit() {\n this.setHostClass(true);\n\n this.ngZone.runOutsideAngular(() =>\n fromEvent<Event>(this.elementRef.nativeElement, 'click')\n .pipe(takeUntil(this.destroy$))\n .subscribe(event => {\n if (this.disabled) {\n return;\n }\n\n this.ngZone.run(() => this.thyClick.emit(event));\n })\n );\n }\n\n ngAfterContentInit() {\n this.setOnlyHasTips(true);\n this.initialized = true;\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n }\n\n remove($event: Event) {\n $event.stopPropagation();\n this.thyOnRemove.emit($event);\n }\n}\n","<div class=\"thy-operation-icon\">\n <ng-container *ngTemplateOutlet=\"operationIcon\"></ng-container>\n @if (icon) {\n <button\n [ngClass]=\"{ disabled: disabled }\"\n [thyButtonIcon]=\"icon\"\n [thyShape]=\"onlyHasTips ? 'circle-thick-dashed' : 'circle-thick-solid'\"></button>\n }\n</div>\n<div class=\"thy-operation-content\" [ngClass]=\"{ 'only-has-tips': onlyHasTips }\">\n <div #contentElement>\n <ng-content></ng-content>\n </div>\n @if (value) {\n <span thyFlexibleText [thyTooltipContent]=\"value\">{{ value }}</span>\n }\n\n @if (!value || (!labelHideWhenHasValue && value)) {\n <div class=\"thy-tips\">{{ labelText }}</div>\n }\n</div>\n@if (showClose && !disabled) {\n <span (click)=\"remove($event)\" class=\"close-link close-link-danger\">\n <thy-icon thyIconName=\"close\" class=\"close-link-sm\"></thy-icon>\n </span>\n}\n","import { ThyButtonModule } from 'ngx-tethys/button';\nimport { ThyFlexibleTextModule } from 'ngx-tethys/flexible-text';\nimport { ThyIconModule } from 'ngx-tethys/icon';\n\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { ThyPropertyOperationGroup } from './group/property-operation-group.component';\nimport { ThyPropertyOperation } from './property-operation.component';\n\n@NgModule({\n imports: [CommonModule, ThyButtonModule, ThyIconModule, ThyFlexibleTextModule, ThyPropertyOperation, ThyPropertyOperationGroup],\n exports: [ThyPropertyOperation, ThyPropertyOperationGroup]\n})\nexport class ThyPropertyOperationModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -34,10 +34,10 @@ class ThyProperties {
|
|
|
34
34
|
return `repeat(${this.thyColumn()}, 1fr)`;
|
|
35
35
|
}, ...(ngDevMode ? [{ debugName: "gridTemplateColumns" }] : []));
|
|
36
36
|
}
|
|
37
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
38
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.3.
|
|
37
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyProperties, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
38
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.3.15", type: ThyProperties, isStandalone: true, selector: "thy-properties", inputs: { layout: { classPropertyName: "layout", publicName: "thyLayout", isSignal: true, isRequired: false, transformFunction: null }, thyColumn: { classPropertyName: "thyColumn", publicName: "thyColumn", isSignal: true, isRequired: false, transformFunction: null }, thyEditTrigger: { classPropertyName: "thyEditTrigger", publicName: "thyEditTrigger", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.thy-properties-vertical": "layout() === \"vertical\"", "class.thy-properties-horizontal": "layout() === \"horizontal\"", "class.thy-property-edit-trigger-hover": "thyEditTrigger() === \"hover\"", "class.thy-property-edit-trigger-click": "thyEditTrigger() === \"click\"", "style.grid-template-columns": "gridTemplateColumns()" }, classAttribute: "thy-properties" }, ngImport: i0, template: "<ng-content></ng-content>\n", changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
39
39
|
}
|
|
40
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
40
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyProperties, decorators: [{
|
|
41
41
|
type: Component,
|
|
42
42
|
args: [{ selector: 'thy-properties', changeDetection: ChangeDetectionStrategy.OnPush, host: {
|
|
43
43
|
class: 'thy-properties',
|
|
@@ -105,10 +105,11 @@ class ThyPropertyItem {
|
|
|
105
105
|
/**
|
|
106
106
|
* @private
|
|
107
107
|
*/
|
|
108
|
-
this.itemContent = viewChild('item'
|
|
108
|
+
this.itemContent = viewChild.required('item');
|
|
109
109
|
this.editing = signal(false, ...(ngDevMode ? [{ debugName: "editing" }] : []));
|
|
110
110
|
this.eventDestroy$ = new Subject();
|
|
111
111
|
this.originOverlays = [];
|
|
112
|
+
this.clickEventSubscription = null;
|
|
112
113
|
this.gridColumn = computed(() => {
|
|
113
114
|
return `span ${Math.min(this.thySpan(), this.parent?.thyColumn())}`;
|
|
114
115
|
}, ...(ngDevMode ? [{ debugName: "gridColumn" }] : []));
|
|
@@ -201,10 +202,10 @@ class ThyPropertyItem {
|
|
|
201
202
|
this.eventDestroy$.next();
|
|
202
203
|
this.eventDestroy$.complete();
|
|
203
204
|
}
|
|
204
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
205
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.
|
|
205
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyPropertyItem, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
206
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.15", type: ThyPropertyItem, isStandalone: true, selector: "thy-property-item", inputs: { thyLabelText: { classPropertyName: "thyLabelText", publicName: "thyLabelText", isSignal: true, isRequired: false, transformFunction: null }, thyEditable: { classPropertyName: "thyEditable", publicName: "thyEditable", isSignal: true, isRequired: false, transformFunction: null }, thySpan: { classPropertyName: "thySpan", publicName: "thySpan", isSignal: true, isRequired: false, transformFunction: null }, thyEditTrigger: { classPropertyName: "thyEditTrigger", publicName: "thyEditTrigger", isSignal: true, isRequired: false, transformFunction: null }, thyOperationTrigger: { classPropertyName: "thyOperationTrigger", publicName: "thyOperationTrigger", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { thyEditingChange: "thyEditingChange" }, host: { properties: { "class.thy-property-edit-trigger-hover": "thyEditTrigger() === \"hover\"", "class.thy-property-edit-trigger-click": "thyEditTrigger() === \"click\"", "class.thy-property-item-operational": "!!operation()", "class.thy-property-item-operational-hover": "thyOperationTrigger() === 'hover'", "style.grid-column": "gridColumn()", "class.thy-property-item-single": "!parent" }, classAttribute: "thy-property-item" }, queries: [{ propertyName: "label", first: true, predicate: ["label"], descendants: true, isSignal: true }, { propertyName: "editor", first: true, predicate: ["editor"], descendants: true, isSignal: true }, { propertyName: "operation", first: true, predicate: ["operation"], descendants: true, isSignal: true }], viewQueries: [{ propertyName: "content", first: true, predicate: ["contentTemplate"], descendants: true, isSignal: true }, { propertyName: "itemContent", first: true, predicate: ["item"], descendants: true, isSignal: true }], ngImport: i0, template: "<ng-template #contentTemplate>\n <ng-content></ng-content>\n</ng-template>\n\n@let labelText = thyLabelText();\n@let labelTemplate = label();\n@let operationTemplate = operation();\n\n@if (labelText || labelTemplate || (operationTemplate && isVertical())) {\n <div class=\"thy-property-item-label\">\n @if (labelText) {\n <span thyFlexibleText [thyTooltipContent]=\"labelText\">{{ labelText }}</span>\n }\n @if (labelTemplate) {\n <span> <ng-template [ngTemplateOutlet]=\"labelTemplate\"></ng-template></span>\n }\n @if (operationTemplate && isVertical()) {\n <div class=\"thy-property-item-operation\">\n <ng-template [ngTemplateOutlet]=\"operationTemplate\"></ng-template>\n </div>\n }\n </div>\n}\n\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", dependencies: [{ kind: "component", type: ThyFlexibleText, selector: "thy-flexible-text,[thyFlexibleText]", inputs: ["thyTooltipTrigger", "thyContainerClass", "thyTooltipContent", "thyTooltipPlacement", "thyTooltipOffset"], exportAs: ["thyFlexibleText"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
206
207
|
}
|
|
207
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
208
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyPropertyItem, decorators: [{
|
|
208
209
|
type: Component,
|
|
209
210
|
args: [{ selector: 'thy-property-item', host: {
|
|
210
211
|
class: 'thy-property-item',
|
|
@@ -218,11 +219,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImpo
|
|
|
218
219
|
}], ctorParameters: () => [], propDecorators: { thyLabelText: [{ type: i0.Input, args: [{ isSignal: true, alias: "thyLabelText", required: false }] }], thyEditable: [{ type: i0.Input, args: [{ isSignal: true, alias: "thyEditable", required: false }] }], thySpan: [{ type: i0.Input, args: [{ isSignal: true, alias: "thySpan", required: false }] }], thyEditTrigger: [{ type: i0.Input, args: [{ isSignal: true, alias: "thyEditTrigger", required: false }] }], thyOperationTrigger: [{ type: i0.Input, args: [{ isSignal: true, alias: "thyOperationTrigger", required: false }] }], thyEditingChange: [{ type: i0.Output, args: ["thyEditingChange"] }], label: [{ type: i0.ContentChild, args: ['label', { isSignal: true }] }], editor: [{ type: i0.ContentChild, args: ['editor', { isSignal: true }] }], operation: [{ type: i0.ContentChild, args: ['operation', { isSignal: true }] }], content: [{ type: i0.ViewChild, args: ['contentTemplate', { isSignal: true }] }], itemContent: [{ type: i0.ViewChild, args: ['item', { isSignal: true }] }] } });
|
|
219
220
|
|
|
220
221
|
class ThyPropertyModule {
|
|
221
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
222
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.
|
|
223
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.
|
|
222
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyPropertyModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
223
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.15", ngImport: i0, type: ThyPropertyModule, imports: [CommonModule, ThyFlexibleTextModule, ThyTooltipModule, ThyProperties, ThyPropertyItem], exports: [ThyProperties, ThyPropertyItem] }); }
|
|
224
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyPropertyModule, imports: [CommonModule, ThyFlexibleTextModule, ThyTooltipModule, ThyPropertyItem] }); }
|
|
224
225
|
}
|
|
225
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
226
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyPropertyModule, decorators: [{
|
|
226
227
|
type: NgModule,
|
|
227
228
|
args: [{
|
|
228
229
|
imports: [CommonModule, ThyFlexibleTextModule, ThyTooltipModule, ThyProperties, ThyPropertyItem],
|
|
@@ -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 { ChangeDetectionStrategy, Component, numberAttribute, input, computed } 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-property-edit-trigger-hover]': 'thyEditTrigger() === \"hover\"',\n '[class.thy-property-edit-trigger-click]': 'thyEditTrigger() === \"click\"',\n '[style.grid-template-columns]': 'gridTemplateColumns()'\n }\n})\nexport class ThyProperties {\n /**\n * 展示布局\n * @type \"horizontal\" | \"vertical\"\n */\n readonly layout = input<ThyPropertiesLayout>('horizontal', { alias: 'thyLayout' });\n\n /**\n * 设置一行的可以 property-item 的数量\n */\n readonly thyColumn = input(1, { transform: numberAttribute });\n\n /**\n * 设置编辑状态触发方法\n * @type 'hover' | 'click'\n */\n readonly thyEditTrigger = input<'hover' | 'click'>('hover');\n\n protected readonly gridTemplateColumns = computed(() => {\n return `repeat(${this.thyColumn()}, 1fr)`;\n });\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';\nimport { OverlayOutsideClickDispatcher, OverlayRef } from '@angular/cdk/overlay';\nimport { NgTemplateOutlet } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n NgZone,\n numberAttribute,\n OnDestroy,\n TemplateRef,\n inject,\n input,\n computed,\n effect,\n output,\n contentChild,\n viewChild,\n signal,\n DestroyRef\n} from '@angular/core';\nimport { ThyProperties } from './properties.component';\nimport { coerceBooleanProperty, helpers, ThyBooleanInput } from 'ngx-tethys/util';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\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-edit-trigger-hover]': 'thyEditTrigger() === \"hover\"',\n '[class.thy-property-edit-trigger-click]': 'thyEditTrigger() === \"click\"',\n '[class.thy-property-item-operational]': '!!operation()',\n '[class.thy-property-item-operational-hover]': \"thyOperationTrigger() === 'hover'\",\n '[style.grid-column]': 'gridColumn()',\n '[class.thy-property-item-single]': '!parent'\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [ThyFlexibleText, NgTemplateOutlet]\n})\nexport class ThyPropertyItem implements OnDestroy {\n private clickDispatcher = inject(ThyClickDispatcher);\n private ngZone = inject(NgZone);\n private overlayOutsideClickDispatcher = inject(OverlayOutsideClickDispatcher);\n private parent = inject(ThyProperties, { optional: true });\n private destroyRef = inject(DestroyRef);\n\n /**\n * 属性名称\n */\n readonly thyLabelText = input<string>();\n\n /**\n * 设置属性是否是可编辑的\n */\n readonly thyEditable = input<boolean, ThyBooleanInput>(false, { transform: coerceBooleanProperty });\n\n /**\n * 设置跨列的数量\n */\n readonly thySpan = input(1, { transform: numberAttribute });\n\n /**\n * 设置编辑状态触发方法\n * @type 'hover' | 'click'\n */\n readonly thyEditTrigger = input<'hover' | 'click'>();\n\n /**\n * 设置属性操作现实触发方式,默认 always 一直显示\n * @type 'hover' | 'always'\n */\n readonly thyOperationTrigger = input<ThyPropertyItemOperationTrigger>('always');\n\n readonly thyEditingChange = output<boolean>();\n\n /**\n * 属性名称自定义模板\n * @type TemplateRef\n */\n readonly label = contentChild<TemplateRef<void>>('label');\n\n /**\n * 属性内容编辑模板,只有在 thyEditable 为 true 时生效\n * @type TemplateRef\n */\n readonly editor = contentChild<TemplateRef<void>>('editor');\n\n /**\n * 操作区模板\n * @type TemplateRef\n */\n readonly operation = contentChild<TemplateRef<void>>('operation');\n\n /**\n * @private\n */\n readonly content = viewChild<TemplateRef<void>>('contentTemplate');\n\n /**\n * @private\n */\n readonly itemContent = viewChild<ElementRef<HTMLElement>>('item');\n\n editing = signal(false);\n\n private eventDestroy$ = new Subject<void>();\n\n private originOverlays: OverlayRef[] = [];\n\n private clickEventSubscription: Subscription;\n\n protected readonly gridColumn = computed(() => {\n return `span ${Math.min(this.thySpan(), this.parent?.thyColumn())}`;\n });\n\n readonly isVertical = computed(() => {\n return this.parent?.layout() === 'vertical';\n });\n\n constructor() {\n this.originOverlays = [...this.overlayOutsideClickDispatcher._attachedOverlays];\n\n effect(() => {\n if (this.thyEditable()) {\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\n setEditing(editing: boolean) {\n this.ngZone.run(() => {\n if (!!this.editing() !== !!editing) {\n this.thyEditingChange.emit(editing);\n }\n this.editing.set(editing);\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 const itemElement = this.itemContent().nativeElement;\n this.clickEventSubscription = fromEvent(itemElement, 'click')\n .pipe(takeUntil(this.eventDestroy$))\n .subscribe(() => {\n this.originOverlays = [...this.overlayOutsideClickDispatcher._attachedOverlays];\n this.setEditing(true);\n this.bindEditorBlurEvent(itemElement);\n itemElement.querySelector('input')?.focus();\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), takeUntilDestroyed(this.destroyRef))\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 takeUntilDestroyed(this.destroyRef)\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.eventDestroy$.next();\n this.eventDestroy$.complete();\n }\n}\n","<ng-template #contentTemplate>\n <ng-content></ng-content>\n</ng-template>\n\n@let labelText = thyLabelText();\n@let labelTemplate = label();\n@let operationTemplate = operation();\n\n@if (labelText || labelTemplate || (operationTemplate && isVertical())) {\n <div class=\"thy-property-item-label\">\n @if (labelText) {\n <span thyFlexibleText [thyTooltipContent]=\"labelText\">{{ labelText }}</span>\n }\n @if (labelTemplate) {\n <span> <ng-template [ngTemplateOutlet]=\"labelTemplate\"></ng-template></span>\n }\n @if (operationTemplate && isVertical()) {\n <div class=\"thy-property-item-operation\">\n <ng-template [ngTemplateOutlet]=\"operationTemplate\"></ng-template>\n </div>\n }\n </div>\n}\n\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":";;;;;;;;;;;;AAIA;;;AAGG;MAcU,aAAa,CAAA;AAb1B,IAAA,WAAA,GAAA;AAcI;;;AAGG;AACM,QAAA,IAAA,CAAA,MAAM,GAAG,KAAK,CAAsB,YAAY,0CAAI,KAAK,EAAE,WAAW,EAAA,CAAA,GAAA,CAApB,EAAE,KAAK,EAAE,WAAW,EAAE,GAAC;AAElF;;AAEG;AACM,QAAA,IAAA,CAAA,SAAS,GAAG,KAAK,CAAC,CAAC,6CAAI,SAAS,EAAE,eAAe,EAAA,CAAA,GAAA,CAA5B,EAAE,SAAS,EAAE,eAAe,EAAE,GAAC;AAE7D;;;AAGG;AACM,QAAA,IAAA,CAAA,cAAc,GAAG,KAAK,CAAoB,OAAO,0DAAC;AAExC,QAAA,IAAA,CAAA,mBAAmB,GAAG,QAAQ,CAAC,MAAK;AACnD,YAAA,OAAO,UAAU,IAAI,CAAC,SAAS,EAAE,QAAQ;AAC7C,QAAA,CAAC,+DAAC;AACL,IAAA;+GArBY,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAb,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,aAAa,q3BCrB1B,6BACA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;4FDoBa,aAAa,EAAA,UAAA,EAAA,CAAA;kBAbzB,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,gBAAgB,EAAA,eAAA,EAET,uBAAuB,CAAC,MAAM,EAAA,IAAA,EACzC;AACF,wBAAA,KAAK,EAAE,gBAAgB;AACvB,wBAAA,iCAAiC,EAAE,yBAAyB;AAC5D,wBAAA,mCAAmC,EAAE,2BAA2B;AAChE,wBAAA,yCAAyC,EAAE,8BAA8B;AACzE,wBAAA,yCAAyC,EAAE,8BAA8B;AACzE,wBAAA,+BAA+B,EAAE;AACpC,qBAAA,EAAA,QAAA,EAAA,6BAAA,EAAA;;;AEWL;;;AAGG;MAgBU,eAAe,CAAA;AAgFxB,IAAA,WAAA,GAAA;AA/EQ,QAAA,IAAA,CAAA,eAAe,GAAG,MAAM,CAAC,kBAAkB,CAAC;AAC5C,QAAA,IAAA,CAAA,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;AACvB,QAAA,IAAA,CAAA,6BAA6B,GAAG,MAAM,CAAC,6BAA6B,CAAC;QACrE,IAAA,CAAA,MAAM,GAAG,MAAM,CAAC,aAAa,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AAClD,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;AAEvC;;AAEG;QACM,IAAA,CAAA,YAAY,GAAG,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,cAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAU;AAEvC;;AAEG;AACM,QAAA,IAAA,CAAA,WAAW,GAAG,KAAK,CAA2B,KAAK,+CAAI,SAAS,EAAE,qBAAqB,EAAA,CAAA,GAAA,CAAlC,EAAE,SAAS,EAAE,qBAAqB,EAAE,GAAC;AAEnG;;AAEG;AACM,QAAA,IAAA,CAAA,OAAO,GAAG,KAAK,CAAC,CAAC,2CAAI,SAAS,EAAE,eAAe,EAAA,CAAA,GAAA,CAA5B,EAAE,SAAS,EAAE,eAAe,EAAE,GAAC;AAE3D;;;AAGG;QACM,IAAA,CAAA,cAAc,GAAG,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,gBAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAqB;AAEpD;;;AAGG;AACM,QAAA,IAAA,CAAA,mBAAmB,GAAG,KAAK,CAAkC,QAAQ,+DAAC;QAEtE,IAAA,CAAA,gBAAgB,GAAG,MAAM,EAAW;AAE7C;;;AAGG;AACM,QAAA,IAAA,CAAA,KAAK,GAAG,YAAY,CAAoB,OAAO,iDAAC;AAEzD;;;AAGG;AACM,QAAA,IAAA,CAAA,MAAM,GAAG,YAAY,CAAoB,QAAQ,kDAAC;AAE3D;;;AAGG;AACM,QAAA,IAAA,CAAA,SAAS,GAAG,YAAY,CAAoB,WAAW,qDAAC;AAEjE;;AAEG;AACM,QAAA,IAAA,CAAA,OAAO,GAAG,SAAS,CAAoB,iBAAiB,mDAAC;AAElE;;AAEG;AACM,QAAA,IAAA,CAAA,WAAW,GAAG,SAAS,CAA0B,MAAM,uDAAC;AAEjE,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC,KAAK,mDAAC;AAEf,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,OAAO,EAAQ;QAEnC,IAAA,CAAA,cAAc,GAAiB,EAAE;AAItB,QAAA,IAAA,CAAA,UAAU,GAAG,QAAQ,CAAC,MAAK;AAC1C,YAAA,OAAO,QAAQ,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,IAAI,CAAC,MAAM,EAAE,SAAS,EAAE,CAAC,EAAE;AACvE,QAAA,CAAC,sDAAC;AAEO,QAAA,IAAA,CAAA,UAAU,GAAG,QAAQ,CAAC,MAAK;YAChC,OAAO,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,UAAU;AAC/C,QAAA,CAAC,sDAAC;QAGE,IAAI,CAAC,cAAc,GAAG,CAAC,GAAG,IAAI,CAAC,6BAA6B,CAAC,iBAAiB,CAAC;QAE/E,MAAM,CAAC,MAAK;AACR,YAAA,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE;gBACpB,IAAI,CAAC,cAAc,EAAE;YACzB;iBAAO;AACH,gBAAA,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;AACtB,gBAAA,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE;AACzB,gBAAA,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE;AAE7B,gBAAA,IAAI,IAAI,CAAC,sBAAsB,EAAE;AAC7B,oBAAA,IAAI,CAAC,sBAAsB,CAAC,WAAW,EAAE;AACzC,oBAAA,IAAI,CAAC,sBAAsB,GAAG,IAAI;gBACtC;YACJ;AACJ,QAAA,CAAC,CAAC;IACN;AAEA,IAAA,UAAU,CAAC,OAAgB,EAAA;AACvB,QAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAK;YACjB,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,OAAO,EAAE;AAChC,gBAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC;YACvC;AACA,YAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC;AAC7B,QAAA,CAAC,CAAC;IACN;AAEA;;AAEG;AACH,IAAA,cAAc,CAAC,IAAa,EAAA;AACxB,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;IACzB;IAEQ,UAAU,GAAA;QACd,OAAO,CAAC,CAAC,IAAI,CAAC,6BAA6B,CAAC,iBAAiB,CAAC,MAAM,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM;IAClI;IAEQ,cAAc,GAAA;AAClB,QAAA,IAAI,IAAI,CAAC,WAAW,EAAE,KAAK,IAAI,EAAE;AAC7B,YAAA,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,MAAK;AAC/B,gBAAA,IAAI,IAAI,CAAC,sBAAsB,EAAE;oBAC7B;gBACJ;gBACA,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC,aAAa;gBACpD,IAAI,CAAC,sBAAsB,GAAG,SAAS,CAAC,WAAW,EAAE,OAAO;AACvD,qBAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC;qBAClC,SAAS,CAAC,MAAK;oBACZ,IAAI,CAAC,cAAc,GAAG,CAAC,GAAG,IAAI,CAAC,6BAA6B,CAAC,iBAAiB,CAAC;AAC/E,oBAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;AACrB,oBAAA,IAAI,CAAC,mBAAmB,CAAC,WAAW,CAAC;oBACrC,WAAW,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE;AAC/C,gBAAA,CAAC,CAAC;AACV,YAAA,CAAC,CAAC;QACN;IACJ;IAEQ,sBAAsB,GAAA;QAC1B,MAAM,cAAc,GAAG,IAAI,CAAC,6BAA6B,CAAC,iBAAiB,CAAC,MAAM,CAC9E,OAAO,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,OAAO,CAAC,CACpD;AACD,QAAA,MAAM,oBAAoB,GAAG,cAAc,CAAC,GAAG,CAAC,OAAO,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;AACjF,QAAA,IAAI,oBAAoB,CAAC,MAAM,EAAE;YAC7B,aAAa,CAAC,oBAAoB;AAC7B,iBAAA,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC;iBAC5D,SAAS,CAAC,MAAK;AACZ,gBAAA,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;AAC1B,YAAA,CAAC,CAAC;QACV;IACJ;AAEQ,IAAA,sBAAsB,CAAC,aAA0B,EAAA;AACrD,QAAA,IAAI,CAAC;aACA,OAAO,CAAC,CAAC;AACT,aAAA,IAAI,CACD,MAAM,CAAC,KAAK,IAAG;YACX,OAAO,CAAC,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAqB,CAAC;AAC/D,QAAA,CAAC,CAAC,EACF,IAAI,CAAC,CAAC,CAAC,EACP,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC;aAEtC,SAAS,CAAC,MAAK;AACZ,YAAA,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;AAC1B,QAAA,CAAC,CAAC;IACV;AAEQ,IAAA,mBAAmB,CAAC,aAA0B,EAAA;AAClD,QAAA,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,MAAK;AACpB,YAAA,IAAI,IAAI,CAAC,UAAU,EAAE,EAAE;gBACnB,IAAI,CAAC,sBAAsB,EAAE;YACjC;iBAAO;AACH,gBAAA,IAAI,CAAC,sBAAsB,CAAC,aAAa,CAAC;YAC9C;AACJ,QAAA,CAAC,CAAC;IACN;IAEA,WAAW,GAAA;AACP,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE;AACzB,QAAA,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE;IACjC;+GApLS,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAf,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,eAAe,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,EAAA,YAAA,EAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,UAAA,EAAA,cAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,mBAAA,EAAA,EAAA,iBAAA,EAAA,qBAAA,EAAA,UAAA,EAAA,qBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,uCAAA,EAAA,gCAAA,EAAA,uCAAA,EAAA,gCAAA,EAAA,qCAAA,EAAA,eAAA,EAAA,2CAAA,EAAA,mCAAA,EAAA,mBAAA,EAAA,cAAA,EAAA,gCAAA,EAAA,SAAA,EAAA,EAAA,cAAA,EAAA,mBAAA,EAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,OAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,OAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,QAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,QAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,WAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,WAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,SAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,aAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,MAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECjD5B,shDAiDA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDFc,eAAe,mOAAE,gBAAgB,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;4FAElC,eAAe,EAAA,UAAA,EAAA,CAAA;kBAf3B,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,mBAAmB,EAAA,IAAA,EAEvB;AACF,wBAAA,KAAK,EAAE,mBAAmB;AAC1B,wBAAA,yCAAyC,EAAE,8BAA8B;AACzE,wBAAA,yCAAyC,EAAE,8BAA8B;AACzE,wBAAA,uCAAuC,EAAE,eAAe;AACxD,wBAAA,6CAA6C,EAAE,mCAAmC;AAClF,wBAAA,qBAAqB,EAAE,cAAc;AACrC,wBAAA,kCAAkC,EAAE;qBACvC,EAAA,eAAA,EACgB,uBAAuB,CAAC,MAAM,EAAA,OAAA,EACtC,CAAC,eAAe,EAAE,gBAAgB,CAAC,EAAA,QAAA,EAAA,shDAAA,EAAA;AA0CK,SAAA,CAAA,EAAA,cAAA,EAAA,MAAA,EAAA,EAAA,cAAA,EAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,cAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,aAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,OAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,SAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,cAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,mBAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,qBAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,gBAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,MAAA,EAAA,IAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,YAAA,EAAA,IAAA,EAAA,CAAA,OAAO,mEAMN,QAAQ,EAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,SAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,YAAA,EAAA,IAAA,EAAA,CAML,WAAW,EAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,OAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,CAKhB,iBAAiB,qEAKP,MAAM,EAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,EAAA,CAAA;;MEpGvD,iBAAiB,CAAA;+GAAjB,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAjB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,EAAA,OAAA,EAAA,CAHhB,YAAY,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,aAAa,EAAE,eAAe,CAAA,EAAA,OAAA,EAAA,CACrF,aAAa,EAAE,eAAe,CAAA,EAAA,CAAA,CAAA;AAE/B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,YAHhB,YAAY,EAAE,qBAAqB,EAAE,gBAAgB,EAAiB,eAAe,CAAA,EAAA,CAAA,CAAA;;4FAGtF,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAJ7B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACN,OAAO,EAAE,CAAC,YAAY,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,aAAa,EAAE,eAAe,CAAC;AAChG,oBAAA,OAAO,EAAE,CAAC,aAAa,EAAE,eAAe;AAC3C,iBAAA;;;ACVD;;AAEG;;;;"}
|
|
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 { ChangeDetectionStrategy, Component, numberAttribute, input, computed } 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-property-edit-trigger-hover]': 'thyEditTrigger() === \"hover\"',\n '[class.thy-property-edit-trigger-click]': 'thyEditTrigger() === \"click\"',\n '[style.grid-template-columns]': 'gridTemplateColumns()'\n }\n})\nexport class ThyProperties {\n /**\n * 展示布局\n * @type \"horizontal\" | \"vertical\"\n */\n readonly layout = input<ThyPropertiesLayout>('horizontal', { alias: 'thyLayout' });\n\n /**\n * 设置一行的可以 property-item 的数量\n */\n readonly thyColumn = input(1, { transform: numberAttribute });\n\n /**\n * 设置编辑状态触发方法\n * @type 'hover' | 'click'\n */\n readonly thyEditTrigger = input<'hover' | 'click'>('hover');\n\n protected readonly gridTemplateColumns = computed(() => {\n return `repeat(${this.thyColumn()}, 1fr)`;\n });\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';\nimport { OverlayOutsideClickDispatcher, OverlayRef } from '@angular/cdk/overlay';\nimport { NgTemplateOutlet } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n NgZone,\n numberAttribute,\n OnDestroy,\n TemplateRef,\n inject,\n input,\n computed,\n effect,\n output,\n contentChild,\n viewChild,\n signal,\n DestroyRef\n} from '@angular/core';\nimport { ThyProperties } from './properties.component';\nimport { coerceBooleanProperty, helpers, ThyBooleanInput } from 'ngx-tethys/util';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\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-edit-trigger-hover]': 'thyEditTrigger() === \"hover\"',\n '[class.thy-property-edit-trigger-click]': 'thyEditTrigger() === \"click\"',\n '[class.thy-property-item-operational]': '!!operation()',\n '[class.thy-property-item-operational-hover]': \"thyOperationTrigger() === 'hover'\",\n '[style.grid-column]': 'gridColumn()',\n '[class.thy-property-item-single]': '!parent'\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [ThyFlexibleText, NgTemplateOutlet]\n})\nexport class ThyPropertyItem implements OnDestroy {\n private clickDispatcher = inject(ThyClickDispatcher);\n private ngZone = inject(NgZone);\n private overlayOutsideClickDispatcher = inject(OverlayOutsideClickDispatcher);\n private parent = inject(ThyProperties, { optional: true });\n private destroyRef = inject(DestroyRef);\n\n /**\n * 属性名称\n */\n readonly thyLabelText = input<string>();\n\n /**\n * 设置属性是否是可编辑的\n */\n readonly thyEditable = input<boolean, ThyBooleanInput>(false, { transform: coerceBooleanProperty });\n\n /**\n * 设置跨列的数量\n */\n readonly thySpan = input(1, { transform: numberAttribute });\n\n /**\n * 设置编辑状态触发方法\n * @type 'hover' | 'click'\n */\n readonly thyEditTrigger = input<'hover' | 'click'>();\n\n /**\n * 设置属性操作现实触发方式,默认 always 一直显示\n * @type 'hover' | 'always'\n */\n readonly thyOperationTrigger = input<ThyPropertyItemOperationTrigger>('always');\n\n readonly thyEditingChange = output<boolean>();\n\n /**\n * 属性名称自定义模板\n * @type TemplateRef\n */\n readonly label = contentChild<TemplateRef<void>>('label');\n\n /**\n * 属性内容编辑模板,只有在 thyEditable 为 true 时生效\n * @type TemplateRef\n */\n readonly editor = contentChild<TemplateRef<void>>('editor');\n\n /**\n * 操作区模板\n * @type TemplateRef\n */\n readonly operation = contentChild<TemplateRef<void>>('operation');\n\n /**\n * @private\n */\n readonly content = viewChild<TemplateRef<void>>('contentTemplate');\n\n /**\n * @private\n */\n readonly itemContent = viewChild.required<ElementRef<HTMLElement>>('item');\n\n editing = signal(false);\n\n private eventDestroy$ = new Subject<void>();\n\n private originOverlays: OverlayRef[] = [];\n\n private clickEventSubscription: Subscription | null = null;\n\n protected readonly gridColumn = computed(() => {\n return `span ${Math.min(this.thySpan(), this.parent?.thyColumn() as number)}`;\n });\n\n readonly isVertical = computed(() => {\n return this.parent?.layout() === 'vertical';\n });\n\n constructor() {\n this.originOverlays = [...this.overlayOutsideClickDispatcher._attachedOverlays];\n\n effect(() => {\n if (this.thyEditable()) {\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\n setEditing(editing: boolean) {\n this.ngZone.run(() => {\n if (!!this.editing() !== !!editing) {\n this.thyEditingChange.emit(editing);\n }\n this.editing.set(editing);\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 const itemElement = this.itemContent().nativeElement;\n this.clickEventSubscription = fromEvent(itemElement, 'click')\n .pipe(takeUntil(this.eventDestroy$))\n .subscribe(() => {\n this.originOverlays = [...this.overlayOutsideClickDispatcher._attachedOverlays];\n this.setEditing(true);\n this.bindEditorBlurEvent(itemElement);\n itemElement.querySelector('input')?.focus();\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), takeUntilDestroyed(this.destroyRef))\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 takeUntilDestroyed(this.destroyRef)\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.eventDestroy$.next();\n this.eventDestroy$.complete();\n }\n}\n","<ng-template #contentTemplate>\n <ng-content></ng-content>\n</ng-template>\n\n@let labelText = thyLabelText();\n@let labelTemplate = label();\n@let operationTemplate = operation();\n\n@if (labelText || labelTemplate || (operationTemplate && isVertical())) {\n <div class=\"thy-property-item-label\">\n @if (labelText) {\n <span thyFlexibleText [thyTooltipContent]=\"labelText\">{{ labelText }}</span>\n }\n @if (labelTemplate) {\n <span> <ng-template [ngTemplateOutlet]=\"labelTemplate\"></ng-template></span>\n }\n @if (operationTemplate && isVertical()) {\n <div class=\"thy-property-item-operation\">\n <ng-template [ngTemplateOutlet]=\"operationTemplate\"></ng-template>\n </div>\n }\n </div>\n}\n\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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"}
|
|
@@ -25,7 +25,7 @@ class ThyRadio extends ThyFormCheckBaseComponent {
|
|
|
25
25
|
}
|
|
26
26
|
set thyChecked(value) {
|
|
27
27
|
this.writeValue(coerceBooleanProperty(value));
|
|
28
|
-
this.changeDetectorRef
|
|
28
|
+
this.changeDetectorRef?.markForCheck();
|
|
29
29
|
}
|
|
30
30
|
ngOnInit() {
|
|
31
31
|
if (this.thyRadioGroupComponent) {
|
|
@@ -40,8 +40,8 @@ class ThyRadio extends ThyFormCheckBaseComponent {
|
|
|
40
40
|
this.updateValue(!this._innerValue);
|
|
41
41
|
}
|
|
42
42
|
}
|
|
43
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
44
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.
|
|
43
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyRadio, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
44
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.15", type: ThyRadio, isStandalone: true, selector: "[thy-radio],[thyRadio]", inputs: { thyValue: { classPropertyName: "thyValue", publicName: "thyValue", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "attr.tabindex": "-1" } }, providers: [
|
|
45
45
|
{
|
|
46
46
|
provide: NG_VALUE_ACCESSOR,
|
|
47
47
|
useExisting: forwardRef(() => ThyRadio),
|
|
@@ -49,7 +49,7 @@ class ThyRadio extends ThyFormCheckBaseComponent {
|
|
|
49
49
|
}
|
|
50
50
|
], usesInheritance: true, ngImport: i0, template: "<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", dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
51
51
|
}
|
|
52
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
52
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyRadio, decorators: [{
|
|
53
53
|
type: Component,
|
|
54
54
|
args: [{ selector: '[thy-radio],[thyRadio]', providers: [
|
|
55
55
|
{
|
|
@@ -91,10 +91,10 @@ class ThyRadioButton extends ThyRadio {
|
|
|
91
91
|
this.change();
|
|
92
92
|
}
|
|
93
93
|
}
|
|
94
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
95
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.3.
|
|
94
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyRadioButton, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
95
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.3.15", type: ThyRadioButton, isStandalone: true, selector: "[thy-radio-button],[thyRadioButton]", inputs: { thyValue: { classPropertyName: "thyValue", publicName: "thyValue", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "click": "click($event)" }, properties: { "attr.tabindex": "tabIndex", "class.btn": "this.isButton", "class.active": "this.isActive", "class.disabled": "this.isDisabled" } }, usesInheritance: true, ngImport: i0, template: "<ng-container> {{ _labelText() }}</ng-container>\n<ng-content></ng-content>\n" }); }
|
|
96
96
|
}
|
|
97
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
97
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyRadioButton, decorators: [{
|
|
98
98
|
type: Component,
|
|
99
99
|
args: [{ selector: '[thy-radio-button],[thyRadioButton]', host: {
|
|
100
100
|
'[attr.tabindex]': `tabIndex`
|
|
@@ -114,11 +114,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImpo
|
|
|
114
114
|
}] } });
|
|
115
115
|
|
|
116
116
|
const buttonGroupSizeMap = {
|
|
117
|
-
sm:
|
|
118
|
-
lg:
|
|
117
|
+
sm: 'btn-group-sm',
|
|
118
|
+
lg: 'btn-group-lg'
|
|
119
119
|
};
|
|
120
120
|
const radioGroupLayoutMap = {
|
|
121
|
-
flex:
|
|
121
|
+
flex: 'radio-group-layout-flex'
|
|
122
122
|
};
|
|
123
123
|
/**
|
|
124
124
|
* @name thy-radio-group
|
|
@@ -204,8 +204,8 @@ class ThyRadioGroup {
|
|
|
204
204
|
}
|
|
205
205
|
this.hostRenderer.updateClass(classNames);
|
|
206
206
|
}
|
|
207
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
208
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.3.
|
|
207
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyRadioGroup, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
208
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.3.15", type: ThyRadioGroup, isStandalone: true, selector: "thy-radio-group", inputs: { thySize: { classPropertyName: "thySize", publicName: "thySize", isSignal: true, isRequired: false, transformFunction: null }, thyLayout: { classPropertyName: "thyLayout", publicName: "thyLayout", isSignal: true, isRequired: false, transformFunction: null }, thyDisabled: { classPropertyName: "thyDisabled", publicName: "thyDisabled", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.btn-group": "isButtonGroup()", "class.btn-group-outline-default": "isButtonGroupOutline()", "attr.tabindex": "-1" }, classAttribute: "thy-radio-group" }, providers: [
|
|
209
209
|
{
|
|
210
210
|
provide: NG_VALUE_ACCESSOR,
|
|
211
211
|
useExisting: forwardRef(() => ThyRadioGroup),
|
|
@@ -217,7 +217,7 @@ class ThyRadioGroup {
|
|
|
217
217
|
}
|
|
218
218
|
], ngImport: i0, template: "<ng-content></ng-content>\n", changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
219
219
|
}
|
|
220
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
220
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyRadioGroup, decorators: [{
|
|
221
221
|
type: Component,
|
|
222
222
|
args: [{ selector: 'thy-radio-group', providers: [
|
|
223
223
|
{
|
|
@@ -238,11 +238,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImpo
|
|
|
238
238
|
}], ctorParameters: () => [], propDecorators: { thySize: [{ type: i0.Input, args: [{ isSignal: true, alias: "thySize", required: false }] }], thyLayout: [{ type: i0.Input, args: [{ isSignal: true, alias: "thyLayout", required: false }] }], thyDisabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "thyDisabled", required: false }] }] } });
|
|
239
239
|
|
|
240
240
|
class ThyRadioModule {
|
|
241
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
242
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.
|
|
243
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.
|
|
241
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyRadioModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
242
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.15", ngImport: i0, type: ThyRadioModule, imports: [CommonModule, FormsModule, ThyRadio, ThyRadioGroup, ThyRadioButton], exports: [ThyRadio, ThyRadioGroup, ThyRadioButton] }); }
|
|
243
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyRadioModule, imports: [CommonModule, FormsModule] }); }
|
|
244
244
|
}
|
|
245
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
245
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyRadioModule, decorators: [{
|
|
246
246
|
type: NgModule,
|
|
247
247
|
args: [{
|
|
248
248
|
imports: [CommonModule, FormsModule, ThyRadio, ThyRadioGroup, ThyRadioButton],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ngx-tethys-radio.mjs","sources":["../../../src/radio/radio.token.ts","../../../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/group/radio-group.component.ts","../../../src/radio/group/radio-group.component.html","../../../src/radio/module.ts","../../../src/radio/ngx-tethys-radio.ts"],"sourcesContent":["import { InjectionToken, InputSignal } from '@angular/core';\n\nexport interface IThyRadioComponent {\n thyValue: InputSignal<string>;\n thyChecked: boolean;\n setDisabledState?(isDisabled: boolean): void;\n}\n\nexport interface IThyRadioGroupComponent {\n addRadio(radio: IThyRadioComponent): void;\n updateValue(value: string, emit: boolean): void;\n setGroup(): void;\n}\n\nexport const THY_RADIO_GROUP_COMPONENT = new InjectionToken<IThyRadioGroupComponent>('THY_RADIO_GROUP_COMPONENT');\n","import { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { NgClass } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, forwardRef, inject, input, OnInit } from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { ThyFormCheckBaseComponent } from 'ngx-tethys/shared';\nimport { IThyRadioComponent, THY_RADIO_GROUP_COMPONENT } from './radio.token';\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 imports: [NgClass]\n})\nexport class ThyRadio extends ThyFormCheckBaseComponent implements IThyRadioComponent, OnInit {\n thyRadioGroupComponent = inject(THY_RADIO_GROUP_COMPONENT, { optional: true })!;\n\n name: string;\n\n /**\n * 当和 thy-radio-group 配合使用时的值,选中后的 NgModel 值\n */\n readonly thyValue = input<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 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 readonly thyValue = input<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 { ChangeDetectionStrategy, ChangeDetectorRef, Component, effect, forwardRef, inject, input, signal } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { useHostRenderer } from '@tethys/cdk/dom';\nimport { coerceBooleanProperty } from 'ngx-tethys/util';\nimport { ThyRadioButton } from '../button/radio-button.component';\nimport { ThyRadio } from '../radio.component';\nimport { IThyRadioGroupComponent, THY_RADIO_GROUP_COMPONENT } from '../radio.token';\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 provide: THY_RADIO_GROUP_COMPONENT,\n useExisting: ThyRadioGroup\n }\n ],\n host: {\n class: 'thy-radio-group',\n '[class.btn-group]': 'isButtonGroup()',\n '[class.btn-group-outline-default]': 'isButtonGroupOutline()',\n '[attr.tabindex]': `-1`\n },\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class ThyRadioGroup implements IThyRadioGroupComponent, ControlValueAccessor {\n private changeDetectorRef = inject(ChangeDetectorRef);\n\n isButtonGroup = signal(false);\n\n isButtonGroupOutline = signal(false);\n\n /**\n * 大小\n * @type sm | md | lg\n * @default md\n */\n readonly thySize = input<string>('md');\n\n /**\n * 布局\n * @type flex\n */\n readonly thyLayout = input<string>();\n\n _innerValue: string | number;\n\n radios: Array<ThyRadio | ThyRadioButton> = [];\n\n private hostRenderer = useHostRenderer();\n\n /**\n * 是否禁用单选组合框\n * @default false\n */\n readonly thyDisabled = input(false, { transform: coerceBooleanProperty });\n\n onChange: (_: string) => void = () => null;\n\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(): void {\n if (!this.isButtonGroup() && !this.isButtonGroupOutline()) {\n this.isButtonGroup.set(true);\n this.isButtonGroupOutline.set(true);\n }\n }\n\n constructor() {\n effect(() => {\n this.setClasses();\n });\n\n effect(() => {\n const disabled = this.thyDisabled();\n this.setDisabledState(disabled);\n });\n }\n\n private setClasses() {\n const classNames: string[] = [];\n const size = this.thySize();\n if (size && buttonGroupSizeMap[size]) {\n classNames.push(buttonGroupSizeMap[size]);\n }\n const layout = this.thyLayout();\n if (layout && radioGroupLayoutMap[layout]) {\n classNames.push(radioGroupLayoutMap[layout]);\n }\n this.hostRenderer.updateClass(classNames);\n }\n}\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/radio.token.ts","../../../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/group/radio-group.component.ts","../../../src/radio/group/radio-group.component.html","../../../src/radio/module.ts","../../../src/radio/ngx-tethys-radio.ts"],"sourcesContent":["import { InjectionToken, InputSignal } from '@angular/core';\n\nexport interface IThyRadioComponent {\n thyValue: InputSignal<string | undefined>;\n thyChecked: boolean;\n setDisabledState?(isDisabled: boolean): void;\n}\n\nexport interface IThyRadioGroupComponent {\n addRadio(radio: IThyRadioComponent): void;\n updateValue(value: string, emit: boolean): void;\n setGroup(): void;\n}\n\nexport const THY_RADIO_GROUP_COMPONENT = new InjectionToken<IThyRadioGroupComponent>('THY_RADIO_GROUP_COMPONENT');\n","import { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { NgClass } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, forwardRef, inject, input, OnInit } from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { ThyFormCheckBaseComponent } from 'ngx-tethys/shared';\nimport { IThyRadioComponent, THY_RADIO_GROUP_COMPONENT } from './radio.token';\n\n/**\n * 单选框组件\n * @name thy-radio,[thyRadio]\n * @order 10\n */\n@Component({\n \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 imports: [NgClass]\n})\nexport class ThyRadio extends ThyFormCheckBaseComponent implements IThyRadioComponent, OnInit {\n thyRadioGroupComponent = inject(THY_RADIO_GROUP_COMPONENT, { optional: true })!;\n\n name?: string;\n\n /**\n * 当和 thy-radio-group 配合使用时的值,选中后的 NgModel 值\n */\n readonly thyValue = input<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';\nimport { IThyRadioComponent } from '../radio.token';\n\n/**\n * @name [thy-radio-button],[thyRadioButton]\n */\n@Component({\n\n selector: '[thy-radio-button],[thyRadioButton]',\n templateUrl: './radio-button.component.html',\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 readonly thyValue = input<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 as IThyRadioComponent);\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 { ChangeDetectionStrategy, ChangeDetectorRef, Component, effect, forwardRef, inject, input, signal } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { useHostRenderer } from '@tethys/cdk/dom';\nimport { coerceBooleanProperty } from 'ngx-tethys/util';\nimport { ThyRadioButton } from '../button/radio-button.component';\nimport { ThyRadio } from '../radio.component';\nimport { IThyRadioGroupComponent, THY_RADIO_GROUP_COMPONENT } from '../radio.token';\n\nconst buttonGroupSizeMap: Record<string, string> = {\n sm: 'btn-group-sm',\n lg: 'btn-group-lg'\n};\n\nconst radioGroupLayoutMap: Record<string, string> = {\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 provide: THY_RADIO_GROUP_COMPONENT,\n useExisting: ThyRadioGroup\n }\n ],\n host: {\n class: 'thy-radio-group',\n '[class.btn-group]': 'isButtonGroup()',\n '[class.btn-group-outline-default]': 'isButtonGroupOutline()',\n '[attr.tabindex]': `-1`\n },\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class ThyRadioGroup implements IThyRadioGroupComponent, ControlValueAccessor {\n private changeDetectorRef = inject(ChangeDetectorRef);\n\n isButtonGroup = signal(false);\n\n isButtonGroupOutline = signal(false);\n\n /**\n * 大小\n * @type sm | md | lg\n * @default md\n */\n readonly thySize = input<string>('md');\n\n /**\n * 布局\n * @type flex\n */\n readonly thyLayout = input<string>();\n\n _innerValue!: string | number;\n\n radios: Array<ThyRadio | ThyRadioButton> = [];\n\n private hostRenderer = useHostRenderer();\n\n /**\n * 是否禁用单选组合框\n * @default false\n */\n readonly thyDisabled = input(false, { transform: coerceBooleanProperty });\n\n onChange: (_: string) => void = () => null;\n\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(): void {\n if (!this.isButtonGroup() && !this.isButtonGroupOutline()) {\n this.isButtonGroup.set(true);\n this.isButtonGroupOutline.set(true);\n }\n }\n\n constructor() {\n effect(() => {\n this.setClasses();\n });\n\n effect(() => {\n const disabled = this.thyDisabled();\n this.setDisabledState(disabled);\n });\n }\n\n private setClasses() {\n const classNames: string[] = [];\n const size = this.thySize();\n if (size && buttonGroupSizeMap[size]) {\n classNames.push(buttonGroupSizeMap[size]);\n }\n const layout = this.thyLayout();\n if (layout && radioGroupLayoutMap[layout]) {\n classNames.push(radioGroupLayoutMap[layout]);\n }\n this.hostRenderer.updateClass(classNames);\n }\n}\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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"}
|