ngx-tethys 19.0.3 → 19.0.5

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.
Files changed (167) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/calendar/calendar-header.component.d.ts +3 -2
  3. package/color-picker/color-picker.component.d.ts +15 -3
  4. package/date-picker/abstract-picker.component.d.ts +6 -1
  5. package/date-picker/base-picker.component.d.ts +1 -1
  6. package/date-picker/lib/calendar/calendar-footer.component.d.ts +2 -1
  7. package/date-picker/lib/calendar/calendar-table.component.d.ts +4 -3
  8. package/date-picker/lib/popups/date-popup.component.d.ts +2 -1
  9. package/date-picker/lib/popups/inner-popup.component.d.ts +2 -1
  10. package/date-picker/picker.component.d.ts +4 -3
  11. package/date-picker/picker.util.d.ts +5 -5
  12. package/fesm2022/ngx-tethys-action.mjs +11 -12
  13. package/fesm2022/ngx-tethys-action.mjs.map +1 -1
  14. package/fesm2022/ngx-tethys-affix.mjs +8 -9
  15. package/fesm2022/ngx-tethys-affix.mjs.map +1 -1
  16. package/fesm2022/ngx-tethys-alert.mjs +11 -12
  17. package/fesm2022/ngx-tethys-alert.mjs.map +1 -1
  18. package/fesm2022/ngx-tethys-anchor.mjs +10 -10
  19. package/fesm2022/ngx-tethys-arrow-switcher.mjs +7 -7
  20. package/fesm2022/ngx-tethys-autocomplete.mjs +17 -18
  21. package/fesm2022/ngx-tethys-autocomplete.mjs.map +1 -1
  22. package/fesm2022/ngx-tethys-avatar.mjs +25 -28
  23. package/fesm2022/ngx-tethys-avatar.mjs.map +1 -1
  24. package/fesm2022/ngx-tethys-back-top.mjs +7 -7
  25. package/fesm2022/ngx-tethys-badge.mjs +7 -7
  26. package/fesm2022/ngx-tethys-breadcrumb.mjs +10 -10
  27. package/fesm2022/ngx-tethys-button.mjs +14 -15
  28. package/fesm2022/ngx-tethys-button.mjs.map +1 -1
  29. package/fesm2022/ngx-tethys-calendar.mjs +18 -20
  30. package/fesm2022/ngx-tethys-calendar.mjs.map +1 -1
  31. package/fesm2022/ngx-tethys-card.mjs +15 -17
  32. package/fesm2022/ngx-tethys-card.mjs.map +1 -1
  33. package/fesm2022/ngx-tethys-carousel.mjs +14 -15
  34. package/fesm2022/ngx-tethys-carousel.mjs.map +1 -1
  35. package/fesm2022/ngx-tethys-cascader.mjs +16 -16
  36. package/fesm2022/ngx-tethys-checkbox.mjs +7 -7
  37. package/fesm2022/ngx-tethys-collapse.mjs +11 -12
  38. package/fesm2022/ngx-tethys-collapse.mjs.map +1 -1
  39. package/fesm2022/ngx-tethys-color-picker.mjs +34 -36
  40. package/fesm2022/ngx-tethys-color-picker.mjs.map +1 -1
  41. package/fesm2022/ngx-tethys-comment.mjs +15 -17
  42. package/fesm2022/ngx-tethys-comment.mjs.map +1 -1
  43. package/fesm2022/ngx-tethys-copy.mjs +8 -9
  44. package/fesm2022/ngx-tethys-copy.mjs.map +1 -1
  45. package/fesm2022/ngx-tethys-core.mjs +21 -22
  46. package/fesm2022/ngx-tethys-core.mjs.map +1 -1
  47. package/fesm2022/ngx-tethys-date-picker.mjs +231 -247
  48. package/fesm2022/ngx-tethys-date-picker.mjs.map +1 -1
  49. package/fesm2022/ngx-tethys-date-range.mjs +10 -10
  50. package/fesm2022/ngx-tethys-dialog.mjs +22 -23
  51. package/fesm2022/ngx-tethys-dialog.mjs.map +1 -1
  52. package/fesm2022/ngx-tethys-divider.mjs +7 -7
  53. package/fesm2022/ngx-tethys-dot.mjs +8 -9
  54. package/fesm2022/ngx-tethys-dot.mjs.map +1 -1
  55. package/fesm2022/ngx-tethys-drag-drop.mjs +23 -27
  56. package/fesm2022/ngx-tethys-drag-drop.mjs.map +1 -1
  57. package/fesm2022/ngx-tethys-dropdown.mjs +58 -70
  58. package/fesm2022/ngx-tethys-dropdown.mjs.map +1 -1
  59. package/fesm2022/ngx-tethys-empty.mjs +10 -10
  60. package/fesm2022/ngx-tethys-flexible-text.mjs +8 -8
  61. package/fesm2022/ngx-tethys-flexible-text.mjs.map +1 -1
  62. package/fesm2022/ngx-tethys-form.mjs +47 -54
  63. package/fesm2022/ngx-tethys-form.mjs.map +1 -1
  64. package/fesm2022/ngx-tethys-fullscreen.mjs +15 -16
  65. package/fesm2022/ngx-tethys-fullscreen.mjs.map +1 -1
  66. package/fesm2022/ngx-tethys-grid.mjs +35 -41
  67. package/fesm2022/ngx-tethys-grid.mjs.map +1 -1
  68. package/fesm2022/ngx-tethys-guider.mjs +17 -18
  69. package/fesm2022/ngx-tethys-guider.mjs.map +1 -1
  70. package/fesm2022/ngx-tethys-i18n.mjs +20 -8
  71. package/fesm2022/ngx-tethys-i18n.mjs.map +1 -1
  72. package/fesm2022/ngx-tethys-icon.mjs +11 -12
  73. package/fesm2022/ngx-tethys-icon.mjs.map +1 -1
  74. package/fesm2022/ngx-tethys-image.mjs +18 -20
  75. package/fesm2022/ngx-tethys-image.mjs.map +1 -1
  76. package/fesm2022/ngx-tethys-input-number.mjs +7 -7
  77. package/fesm2022/ngx-tethys-input.mjs +21 -23
  78. package/fesm2022/ngx-tethys-input.mjs.map +1 -1
  79. package/fesm2022/ngx-tethys-layout.mjs +73 -88
  80. package/fesm2022/ngx-tethys-layout.mjs.map +1 -1
  81. package/fesm2022/ngx-tethys-list.mjs +19 -22
  82. package/fesm2022/ngx-tethys-list.mjs.map +1 -1
  83. package/fesm2022/ngx-tethys-loading.mjs +7 -7
  84. package/fesm2022/ngx-tethys-mention.mjs +11 -12
  85. package/fesm2022/ngx-tethys-mention.mjs.map +1 -1
  86. package/fesm2022/ngx-tethys-menu.mjs +30 -30
  87. package/fesm2022/ngx-tethys-menu.mjs.map +1 -1
  88. package/fesm2022/ngx-tethys-message.mjs +22 -22
  89. package/fesm2022/ngx-tethys-nav.mjs +26 -29
  90. package/fesm2022/ngx-tethys-nav.mjs.map +1 -1
  91. package/fesm2022/ngx-tethys-notify.mjs +16 -16
  92. package/fesm2022/ngx-tethys-pagination.mjs +15 -17
  93. package/fesm2022/ngx-tethys-pagination.mjs.map +1 -1
  94. package/fesm2022/ngx-tethys-popover.mjs +21 -23
  95. package/fesm2022/ngx-tethys-popover.mjs.map +1 -1
  96. package/fesm2022/ngx-tethys-progress.mjs +13 -13
  97. package/fesm2022/ngx-tethys-property-operation.mjs +11 -11
  98. package/fesm2022/ngx-tethys-property-operation.mjs.map +1 -1
  99. package/fesm2022/ngx-tethys-property.mjs +11 -11
  100. package/fesm2022/ngx-tethys-property.mjs.map +1 -1
  101. package/fesm2022/ngx-tethys-radio.mjs +15 -15
  102. package/fesm2022/ngx-tethys-radio.mjs.map +1 -1
  103. package/fesm2022/ngx-tethys-rate.mjs +10 -10
  104. package/fesm2022/ngx-tethys-resizable.mjs +17 -18
  105. package/fesm2022/ngx-tethys-resizable.mjs.map +1 -1
  106. package/fesm2022/ngx-tethys-result.mjs +7 -7
  107. package/fesm2022/ngx-tethys-segment.mjs +10 -10
  108. package/fesm2022/ngx-tethys-select.mjs +10 -10
  109. package/fesm2022/ngx-tethys-shared.mjs +80 -93
  110. package/fesm2022/ngx-tethys-shared.mjs.map +1 -1
  111. package/fesm2022/ngx-tethys-skeleton.mjs +23 -24
  112. package/fesm2022/ngx-tethys-skeleton.mjs.map +1 -1
  113. package/fesm2022/ngx-tethys-slide.mjs +36 -41
  114. package/fesm2022/ngx-tethys-slide.mjs.map +1 -1
  115. package/fesm2022/ngx-tethys-slider.mjs +7 -7
  116. package/fesm2022/ngx-tethys-space.mjs +11 -12
  117. package/fesm2022/ngx-tethys-space.mjs.map +1 -1
  118. package/fesm2022/ngx-tethys-statistic.mjs +7 -7
  119. package/fesm2022/ngx-tethys-stepper.mjs +22 -24
  120. package/fesm2022/ngx-tethys-stepper.mjs.map +1 -1
  121. package/fesm2022/ngx-tethys-strength.mjs +8 -8
  122. package/fesm2022/ngx-tethys-strength.mjs.map +1 -1
  123. package/fesm2022/ngx-tethys-switch.mjs +7 -7
  124. package/fesm2022/ngx-tethys-table.mjs +22 -25
  125. package/fesm2022/ngx-tethys-table.mjs.map +1 -1
  126. package/fesm2022/ngx-tethys-tabs.mjs +14 -15
  127. package/fesm2022/ngx-tethys-tabs.mjs.map +1 -1
  128. package/fesm2022/ngx-tethys-tag.mjs +12 -13
  129. package/fesm2022/ngx-tethys-tag.mjs.map +1 -1
  130. package/fesm2022/ngx-tethys-time-picker.mjs +58 -56
  131. package/fesm2022/ngx-tethys-time-picker.mjs.map +1 -1
  132. package/fesm2022/ngx-tethys-timeline.mjs +13 -13
  133. package/fesm2022/ngx-tethys-tooltip.mjs +14 -15
  134. package/fesm2022/ngx-tethys-tooltip.mjs.map +1 -1
  135. package/fesm2022/ngx-tethys-transfer.mjs +10 -10
  136. package/fesm2022/ngx-tethys-tree-select.mjs +10 -10
  137. package/fesm2022/ngx-tethys-tree-select.mjs.map +1 -1
  138. package/fesm2022/ngx-tethys-tree.mjs +17 -18
  139. package/fesm2022/ngx-tethys-tree.mjs.map +1 -1
  140. package/fesm2022/ngx-tethys-typography.mjs +15 -17
  141. package/fesm2022/ngx-tethys-typography.mjs.map +1 -1
  142. package/fesm2022/ngx-tethys-upload.mjs +18 -19
  143. package/fesm2022/ngx-tethys-upload.mjs.map +1 -1
  144. package/fesm2022/ngx-tethys-util.mjs +419 -391
  145. package/fesm2022/ngx-tethys-util.mjs.map +1 -1
  146. package/fesm2022/ngx-tethys-vote.mjs +7 -7
  147. package/fesm2022/ngx-tethys-watermark.mjs +8 -9
  148. package/fesm2022/ngx-tethys-watermark.mjs.map +1 -1
  149. package/fesm2022/ngx-tethys.mjs +1 -1
  150. package/fesm2022/ngx-tethys.mjs.map +1 -1
  151. package/i18n/locale.d.ts +7 -1
  152. package/icon/index.d.ts +1 -1
  153. package/layout/header.component.d.ts +6 -18
  154. package/package.json +2 -1
  155. package/popover/popover.directive.d.ts +6 -2
  156. package/resizable/resizable.directive.d.ts +21 -3
  157. package/schematics/version.d.ts +1 -1
  158. package/schematics/version.js +1 -1
  159. package/table/table-column.component.d.ts +5 -30
  160. package/tag/tag.component.d.ts +2 -4
  161. package/time-picker/inner/inner-time-picker.component.d.ts +3 -1
  162. package/time-picker/inner/inner-time-picker.store.d.ts +5 -5
  163. package/time-picker/time-picker.component.d.ts +2 -2
  164. package/time-picker/time-picker.utils.d.ts +5 -5
  165. package/tooltip/tooltip.directive.d.ts +2 -10
  166. package/tree-select/tree-select.component.d.ts +2 -2
  167. package/util/helpers/helpers.d.ts +1 -0
@@ -104,10 +104,10 @@ class ThyProgressCircle {
104
104
  })
105
105
  .reverse();
106
106
  }
107
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.4", ngImport: i0, type: ThyProgressCircle, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
108
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.4", type: ThyProgressCircle, isStandalone: true, selector: "thy-progress-circle", inputs: { thyType: "thyType", thySize: "thySize", thyValue: "thyValue", thyMax: ["thyMax", "thyMax", numberAttribute], thyTips: "thyTips", thyShape: "thyShape", thyGapDegree: ["thyGapDegree", "thyGapDegree", numberAttribute], thyGapPosition: "thyGapPosition", thyStrokeWidth: ["thyStrokeWidth", "thyStrokeWidth", numberAttribute] }, host: { classAttribute: "progress-circle" }, usesOnChanges: true, ngImport: i0, template: "<div\n [thyTooltip]=\"thyTips\"\n [thyTooltipDisabled]=\"!thyTips\"\n [style.width.px]=\"width\"\n [style.height.px]=\"width\"\n [ngClass]=\"progressSize\"\n class=\"progress-circle-inner\">\n <svg class=\"progress-circle-svg\" viewBox=\"0 0 100 100\">\n <path\n class=\"progress-circle-trail\"\n fill-opacity=\"0\"\n [attr.d]=\"pathString\"\n [ngStyle]=\"trailPathStyle\"\n [attr.stroke-width]=\"strokeWidth\"></path>\n @for (p of progressCirclePath; track $index) {\n <path\n class=\"progress-circle-path\"\n [ngClass]=\"p.className\"\n fill-opacity=\"0\"\n [attr.d]=\"pathString\"\n [attr.stroke-linecap]=\"'round'\"\n [attr.stroke]=\"p.stroke\"\n [attr.stroke-width]=\"p.value ? strokeWidth : 0\"\n [ngStyle]=\"p.strokePathStyle\"></path>\n }\n </svg>\n <span class=\"progress-circle-content\">\n <ng-content></ng-content>\n </span>\n</div>\n", dependencies: [{ kind: "directive", type: ThyTooltipDirective, selector: "[thyTooltip],[thy-tooltip]", inputs: ["thyTooltip", "thyTooltipPlacement", "thyTooltipClass", "thyTooltipShowDelay", "thyTooltipHideDelay", "thyTooltipTrigger", "thyTooltipDisabled", "thyTooltipTemplateContext", "thyTooltipOffset", "thyTooltipPin"], exportAs: ["thyTooltip"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }], encapsulation: i0.ViewEncapsulation.None }); }
107
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: ThyProgressCircle, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
108
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.6", type: ThyProgressCircle, isStandalone: true, selector: "thy-progress-circle", inputs: { thyType: "thyType", thySize: "thySize", thyValue: "thyValue", thyMax: ["thyMax", "thyMax", numberAttribute], thyTips: "thyTips", thyShape: "thyShape", thyGapDegree: ["thyGapDegree", "thyGapDegree", numberAttribute], thyGapPosition: "thyGapPosition", thyStrokeWidth: ["thyStrokeWidth", "thyStrokeWidth", numberAttribute] }, host: { classAttribute: "progress-circle" }, usesOnChanges: true, ngImport: i0, template: "<div\n [thyTooltip]=\"thyTips\"\n [thyTooltipDisabled]=\"!thyTips\"\n [style.width.px]=\"width\"\n [style.height.px]=\"width\"\n [ngClass]=\"progressSize\"\n class=\"progress-circle-inner\">\n <svg class=\"progress-circle-svg\" viewBox=\"0 0 100 100\">\n <path\n class=\"progress-circle-trail\"\n fill-opacity=\"0\"\n [attr.d]=\"pathString\"\n [ngStyle]=\"trailPathStyle\"\n [attr.stroke-width]=\"strokeWidth\"></path>\n @for (p of progressCirclePath; track $index) {\n <path\n class=\"progress-circle-path\"\n [ngClass]=\"p.className\"\n fill-opacity=\"0\"\n [attr.d]=\"pathString\"\n [attr.stroke-linecap]=\"'round'\"\n [attr.stroke]=\"p.stroke\"\n [attr.stroke-width]=\"p.value ? strokeWidth : 0\"\n [ngStyle]=\"p.strokePathStyle\"></path>\n }\n </svg>\n <span class=\"progress-circle-content\">\n <ng-content></ng-content>\n </span>\n</div>\n", dependencies: [{ kind: "directive", type: ThyTooltipDirective, selector: "[thyTooltip],[thy-tooltip]", inputs: ["thyTooltip", "thyTooltipPlacement", "thyTooltipClass", "thyTooltipShowDelay", "thyTooltipHideDelay", "thyTooltipTrigger", "thyTooltipDisabled", "thyTooltipTemplateContext", "thyTooltipOffset", "thyTooltipPin"], exportAs: ["thyTooltip"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }], encapsulation: i0.ViewEncapsulation.None }); }
109
109
  }
110
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.4", ngImport: i0, type: ThyProgressCircle, decorators: [{
110
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: ThyProgressCircle, decorators: [{
111
111
  type: Component,
112
112
  args: [{ selector: 'thy-progress-circle', encapsulation: ViewEncapsulation.None, host: {
113
113
  class: 'progress-circle'
@@ -162,10 +162,10 @@ class ThyProgressStrip {
162
162
  recalculatePercentage() {
163
163
  this.percent = +((this.value / this.progress.max) * 100).toFixed(2);
164
164
  }
165
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.4", ngImport: i0, type: ThyProgressStrip, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
166
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "19.2.4", type: ThyProgressStrip, isStandalone: true, selector: "thy-progress-bar", inputs: { thyTips: "thyTips", thyType: "thyType", thyValue: ["thyValue", "thyValue", numberAttribute], thyColor: "thyColor" }, host: { properties: { "class.progress-bar": "this.isProgressBar", "style.width.%": "this.percent" } }, ngImport: i0, template: "<div class=\"progress-bar-inner\" [ngStyle]=\"{ 'background-color': color }\">\n <ng-content></ng-content>\n</div>\n", dependencies: [{ kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }], encapsulation: i0.ViewEncapsulation.None }); }
165
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: ThyProgressStrip, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
166
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "19.2.6", type: ThyProgressStrip, isStandalone: true, selector: "thy-progress-bar", inputs: { thyTips: "thyTips", thyType: "thyType", thyValue: ["thyValue", "thyValue", numberAttribute], thyColor: "thyColor" }, host: { properties: { "class.progress-bar": "this.isProgressBar", "style.width.%": "this.percent" } }, ngImport: i0, template: "<div class=\"progress-bar-inner\" [ngStyle]=\"{ 'background-color': color }\">\n <ng-content></ng-content>\n</div>\n", dependencies: [{ kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }], encapsulation: i0.ViewEncapsulation.None }); }
167
167
  }
168
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.4", ngImport: i0, type: ThyProgressStrip, decorators: [{
168
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: ThyProgressStrip, decorators: [{
169
169
  type: Component,
170
170
  args: [{ selector: 'thy-progress-bar', encapsulation: ViewEncapsulation.None, imports: [NgStyle], template: "<div class=\"progress-bar-inner\" [ngStyle]=\"{ 'background-color': color }\">\n <ng-content></ng-content>\n</div>\n" }]
171
171
  }], propDecorators: { isProgressBar: [{
@@ -267,15 +267,15 @@ class ThyProgress {
267
267
  bar.recalculatePercentage();
268
268
  });
269
269
  }
270
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.4", ngImport: i0, type: ThyProgress, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
271
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.4", type: ThyProgress, isStandalone: true, selector: "thy-progress", inputs: { thyType: "thyType", thySize: "thySize", thyValue: "thyValue", thyMax: ["thyMax", "thyMax", numberAttribute], thyTips: "thyTips", thyShape: "thyShape", thyGapDegree: ["thyGapDegree", "thyGapDegree", numberAttribute], thyGapPosition: "thyGapPosition", thyStrokeWidth: ["thyStrokeWidth", "thyStrokeWidth", numberAttribute] }, host: { properties: { "class.thy-progress-strip": "thyShape === 'strip'", "class.thy-progress-circle": "thyShape === 'circle'", "attr.max": "this.max", "class.progress-stacked": "this.isStacked" }, classAttribute: "thy-progress progress" }, providers: [
270
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: ThyProgress, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
271
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.6", type: ThyProgress, isStandalone: true, selector: "thy-progress", inputs: { thyType: "thyType", thySize: "thySize", thyValue: "thyValue", thyMax: ["thyMax", "thyMax", numberAttribute], thyTips: "thyTips", thyShape: "thyShape", thyGapDegree: ["thyGapDegree", "thyGapDegree", numberAttribute], thyGapPosition: "thyGapPosition", thyStrokeWidth: ["thyStrokeWidth", "thyStrokeWidth", numberAttribute] }, host: { properties: { "class.thy-progress-strip": "thyShape === 'strip'", "class.thy-progress-circle": "thyShape === 'circle'", "attr.max": "this.max", "class.progress-stacked": "this.isStacked" }, classAttribute: "thy-progress progress" }, providers: [
272
272
  {
273
273
  provide: THY_PROGRESS_COMPONENT,
274
274
  useExisting: ThyProgress
275
275
  }
276
276
  ], viewQueries: [{ propertyName: "barsQueryList", predicate: ThyProgressStrip, descendants: true }], usesOnChanges: true, ngImport: i0, template: "<ng-container>\n @if (thyShape === 'strip') {\n <div class=\"thy-progress-strip-outer\">\n @if (isStacked) {\n @for (item of value; track $index) {\n <thy-progress-bar\n [thyType]=\"item.type\"\n [ngClass]=\"{ 'cursor-pointer': item.tips || thyTips }\"\n [thyTooltip]=\"item.tips || thyTips\"\n [thyTooltipTemplateContext]=\"item\"\n [thyTooltipDisabled]=\"!thyTips && !item.tips\"\n [thyColor]=\"item.color\"\n [thyValue]=\"item.value\"\n >{{ item.label }}\n </thy-progress-bar>\n }\n } @else {\n @if (value) {\n <thy-progress-bar\n [thyType]=\"thyType\"\n [ngClass]=\"{ 'cursor-pointer': thyTips }\"\n [thyTooltip]=\"thyTips\"\n [thyTooltipTemplateContext]=\"value\"\n [thyTooltipDisabled]=\"!thyTips\"\n [thyValue]=\"value\">\n </thy-progress-bar>\n }\n }\n </div>\n @if (thyShape === 'strip') {\n <div class=\"thy-progress-strip-text\">\n <ng-template [ngTemplateOutlet]=\"contentTemplate\"></ng-template>\n </div>\n }\n } @else {\n <thy-progress-circle\n [thyType]=\"thyType\"\n [thyTooltip]=\"thyTips\"\n [thyTooltipDisabled]=\"!thyTips\"\n [thyTooltipTemplateContext]=\"value\"\n [thyValue]=\"value\"\n [thySize]=\"size\"\n [thyMax]=\"max\"\n [thyGapDegree]=\"thyGapDegree\"\n [thyGapPosition]=\"thyGapPosition\"\n [thyStrokeWidth]=\"thyStrokeWidth\">\n <ng-template [ngTemplateOutlet]=\"contentTemplate\"></ng-template\n ></thy-progress-circle>\n }\n</ng-container>\n\n<ng-template #contentTemplate>\n <ng-content></ng-content>\n</ng-template>\n", dependencies: [{ kind: "component", type: ThyProgressStrip, selector: "thy-progress-bar", inputs: ["thyTips", "thyType", "thyValue", "thyColor"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: ThyTooltipDirective, selector: "[thyTooltip],[thy-tooltip]", inputs: ["thyTooltip", "thyTooltipPlacement", "thyTooltipClass", "thyTooltipShowDelay", "thyTooltipHideDelay", "thyTooltipTrigger", "thyTooltipDisabled", "thyTooltipTemplateContext", "thyTooltipOffset", "thyTooltipPin"], exportAs: ["thyTooltip"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: ThyProgressCircle, selector: "thy-progress-circle", inputs: ["thyType", "thySize", "thyValue", "thyMax", "thyTips", "thyShape", "thyGapDegree", "thyGapPosition", "thyStrokeWidth"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
277
277
  }
278
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.4", ngImport: i0, type: ThyProgress, decorators: [{
278
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: ThyProgress, decorators: [{
279
279
  type: Component,
280
280
  args: [{ selector: 'thy-progress', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, providers: [
281
281
  {
@@ -320,11 +320,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.4", ngImpor
320
320
  }] } });
321
321
 
322
322
  class ThyProgressModule {
323
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.4", ngImport: i0, type: ThyProgressModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
324
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.4", ngImport: i0, type: ThyProgressModule, imports: [CommonModule, ThyTooltipModule, ThyProgress, ThyProgressStrip, ThyProgressCircle], exports: [ThyProgress] }); }
325
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.4", ngImport: i0, type: ThyProgressModule, imports: [CommonModule, ThyTooltipModule] }); }
323
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: ThyProgressModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
324
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.6", ngImport: i0, type: ThyProgressModule, imports: [CommonModule, ThyTooltipModule, ThyProgress, ThyProgressStrip, ThyProgressCircle], exports: [ThyProgress] }); }
325
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: ThyProgressModule, imports: [CommonModule, ThyTooltipModule] }); }
326
326
  }
327
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.4", ngImport: i0, type: ThyProgressModule, decorators: [{
327
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: ThyProgressModule, decorators: [{
328
328
  type: NgModule,
329
329
  args: [{
330
330
  imports: [CommonModule, ThyTooltipModule, ThyProgress, ThyProgressStrip, ThyProgressCircle],
@@ -17,12 +17,12 @@ class ThyPropertyOperationGroup {
17
17
  constructor() {
18
18
  this._isPropertyOperationGroup = true;
19
19
  }
20
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.4", ngImport: i0, type: ThyPropertyOperationGroup, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
21
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.4", 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" }); }
20
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: ThyPropertyOperationGroup, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
21
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.6", 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: "19.2.4", ngImport: i0, type: ThyPropertyOperationGroup, decorators: [{
23
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: ThyPropertyOperationGroup, decorators: [{
24
24
  type: Component,
25
- args: [{ selector: 'thy-property-operation-group', standalone: true, template: "<ng-content></ng-content>\n" }]
25
+ args: [{ selector: 'thy-property-operation-group', template: "<ng-content></ng-content>\n" }]
26
26
  }], ctorParameters: () => [], propDecorators: { _isPropertyOperationGroup: [{
27
27
  type: HostBinding,
28
28
  args: ['class.thy-property-operation-group']
@@ -148,10 +148,10 @@ 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: "19.2.4", ngImport: i0, type: ThyPropertyOperation, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
152
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.4", 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'\"\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", 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"] }] }); }
151
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: ThyPropertyOperation, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
152
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.6", 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'\"\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", 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: "19.2.4", ngImport: i0, type: ThyPropertyOperation, decorators: [{
154
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: ThyPropertyOperation, decorators: [{
155
155
  type: Component,
156
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'\"\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" }]
157
157
  }], propDecorators: { thyOnRemove: [{
@@ -201,11 +201,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.4", ngImpor
201
201
  }] } });
202
202
 
203
203
  class ThyPropertyOperationModule {
204
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.4", ngImport: i0, type: ThyPropertyOperationModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
205
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.4", 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: "19.2.4", ngImport: i0, type: ThyPropertyOperationModule, imports: [CommonModule, ThyButtonModule, ThyIconModule, ThyFlexibleTextModule, ThyPropertyOperation] }); }
204
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: ThyPropertyOperationModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
205
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.6", 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: "19.2.6", ngImport: i0, type: ThyPropertyOperationModule, imports: [CommonModule, ThyButtonModule, ThyIconModule, ThyFlexibleTextModule, ThyPropertyOperation] }); }
207
207
  }
208
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.4", ngImport: i0, type: ThyPropertyOperationModule, decorators: [{
208
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.6", 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 standalone: true\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 || this.thyClick.observers.length === 0) {\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() 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 || this.thyClick.observers.length === 0) {\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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"}
@@ -41,10 +41,10 @@ class ThyProperties {
41
41
  this.thyEditTrigger = 'hover';
42
42
  }
43
43
  ngOnInit() { }
44
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.4", ngImport: i0, type: ThyProperties, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
45
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "19.2.4", type: ThyProperties, isStandalone: true, selector: "thy-properties", inputs: { thyLayout: "thyLayout", thyColumn: ["thyColumn", "thyColumn", numberAttribute], thyEditTrigger: "thyEditTrigger" }, host: { properties: { "class.thy-properties-vertical": "layout === \"vertical\"", "class.thy-properties-horizontal": "layout === \"horizontal\"", "class.thy-properties-edit-trigger-hover": "thyEditTrigger === \"hover\"", "class.thy-properties-edit-trigger-click": "thyEditTrigger === \"click\"", "style.grid-template-columns": "this.gridTemplateColumns" }, classAttribute: "thy-properties" }, ngImport: i0, template: "<ng-content></ng-content>\n", changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
44
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: ThyProperties, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
45
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "19.2.6", type: ThyProperties, isStandalone: true, selector: "thy-properties", inputs: { thyLayout: "thyLayout", thyColumn: ["thyColumn", "thyColumn", numberAttribute], thyEditTrigger: "thyEditTrigger" }, host: { properties: { "class.thy-properties-vertical": "layout === \"vertical\"", "class.thy-properties-horizontal": "layout === \"horizontal\"", "class.thy-properties-edit-trigger-hover": "thyEditTrigger === \"hover\"", "class.thy-properties-edit-trigger-click": "thyEditTrigger === \"click\"", "style.grid-template-columns": "this.gridTemplateColumns" }, classAttribute: "thy-properties" }, ngImport: i0, template: "<ng-content></ng-content>\n", changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
46
46
  }
47
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.4", ngImport: i0, type: ThyProperties, decorators: [{
47
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: ThyProperties, decorators: [{
48
48
  type: Component,
49
49
  args: [{ selector: 'thy-properties', changeDetection: ChangeDetectionStrategy.OnPush, host: {
50
50
  class: 'thy-properties',
@@ -52,7 +52,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.4", ngImpor
52
52
  '[class.thy-properties-horizontal]': 'layout === "horizontal"',
53
53
  '[class.thy-properties-edit-trigger-hover]': 'thyEditTrigger === "hover"',
54
54
  '[class.thy-properties-edit-trigger-click]': 'thyEditTrigger === "click"'
55
- }, standalone: true, template: "<ng-content></ng-content>\n" }]
55
+ }, template: "<ng-content></ng-content>\n" }]
56
56
  }], ctorParameters: () => [], propDecorators: { thyLayout: [{
57
57
  type: Input
58
58
  }], thyColumn: [{
@@ -188,10 +188,10 @@ class ThyPropertyItem {
188
188
  this.eventDestroy$.next();
189
189
  this.eventDestroy$.complete();
190
190
  }
191
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.4", ngImport: i0, type: ThyPropertyItem, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
192
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.4", type: ThyPropertyItem, isStandalone: true, selector: "thy-property-item", inputs: { thyLabelText: "thyLabelText", thyEditable: ["thyEditable", "thyEditable", coerceBooleanProperty], thySpan: ["thySpan", "thySpan", numberAttribute], thyOperationTrigger: "thyOperationTrigger" }, outputs: { thyEditingChange: "thyEditingChange" }, host: { properties: { "class.thy-property-item-operational": "!!operation", "class.thy-property-item-operational-hover": "thyOperationTrigger === 'hover'", "style.grid-column": "this.gridColumn" }, classAttribute: "thy-property-item" }, queries: [{ propertyName: "label", first: true, predicate: ["label"], descendants: true, static: true }, { propertyName: "editor", first: true, predicate: ["editor"], descendants: true, static: true }, { propertyName: "operation", first: true, predicate: ["operation"], descendants: true, static: true }], viewQueries: [{ propertyName: "content", first: true, predicate: ["contentTemplate"], descendants: true, static: true }, { propertyName: "itemContent", first: true, predicate: ["item"], descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: "<ng-template #contentTemplate>\n <ng-content></ng-content>\n</ng-template>\n<div class=\"thy-property-item-label\">\n @if (thyLabelText) {\n <span thyFlexibleText [thyTooltipContent]=\"thyLabelText\">{{ thyLabelText }}</span>\n }\n @if (label) {\n <span> <ng-template [ngTemplateOutlet]=\"label\"></ng-template></span>\n }\n @if (operation && isVertical) {\n <div class=\"thy-property-item-operation\">\n <ng-template [ngTemplateOutlet]=\"operation\"></ng-template>\n </div>\n }\n</div>\n<div class=\"thy-property-item-wrapper\">\n <div\n #item\n class=\"thy-property-item-content\"\n [class.thy-property-item-content-editable]=\"thyEditable\"\n [class.thy-property-item-content-editing]=\"editing\">\n <div class=\"thy-property-item-content-text\">\n @if (content) {\n <ng-template [ngTemplateOutlet]=\"content\"></ng-template>\n }\n </div>\n @if (thyEditable) {\n <div class=\"thy-property-item-content-editor\">\n @if (editor) {\n <ng-template [ngTemplateOutlet]=\"editor\"></ng-template>\n }\n </div>\n }\n </div>\n @if (operation && !isVertical) {\n <div class=\"thy-property-item-operation\">\n <ng-template [ngTemplateOutlet]=\"operation\"></ng-template>\n </div>\n }\n</div>\n", 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 }); }
191
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: ThyPropertyItem, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
192
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.6", type: ThyPropertyItem, isStandalone: true, selector: "thy-property-item", inputs: { thyLabelText: "thyLabelText", thyEditable: ["thyEditable", "thyEditable", coerceBooleanProperty], thySpan: ["thySpan", "thySpan", numberAttribute], thyOperationTrigger: "thyOperationTrigger" }, outputs: { thyEditingChange: "thyEditingChange" }, host: { properties: { "class.thy-property-item-operational": "!!operation", "class.thy-property-item-operational-hover": "thyOperationTrigger === 'hover'", "style.grid-column": "this.gridColumn" }, classAttribute: "thy-property-item" }, queries: [{ propertyName: "label", first: true, predicate: ["label"], descendants: true, static: true }, { propertyName: "editor", first: true, predicate: ["editor"], descendants: true, static: true }, { propertyName: "operation", first: true, predicate: ["operation"], descendants: true, static: true }], viewQueries: [{ propertyName: "content", first: true, predicate: ["contentTemplate"], descendants: true, static: true }, { propertyName: "itemContent", first: true, predicate: ["item"], descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: "<ng-template #contentTemplate>\n <ng-content></ng-content>\n</ng-template>\n<div class=\"thy-property-item-label\">\n @if (thyLabelText) {\n <span thyFlexibleText [thyTooltipContent]=\"thyLabelText\">{{ thyLabelText }}</span>\n }\n @if (label) {\n <span> <ng-template [ngTemplateOutlet]=\"label\"></ng-template></span>\n }\n @if (operation && isVertical) {\n <div class=\"thy-property-item-operation\">\n <ng-template [ngTemplateOutlet]=\"operation\"></ng-template>\n </div>\n }\n</div>\n<div class=\"thy-property-item-wrapper\">\n <div\n #item\n class=\"thy-property-item-content\"\n [class.thy-property-item-content-editable]=\"thyEditable\"\n [class.thy-property-item-content-editing]=\"editing\">\n <div class=\"thy-property-item-content-text\">\n @if (content) {\n <ng-template [ngTemplateOutlet]=\"content\"></ng-template>\n }\n </div>\n @if (thyEditable) {\n <div class=\"thy-property-item-content-editor\">\n @if (editor) {\n <ng-template [ngTemplateOutlet]=\"editor\"></ng-template>\n }\n </div>\n }\n </div>\n @if (operation && !isVertical) {\n <div class=\"thy-property-item-operation\">\n <ng-template [ngTemplateOutlet]=\"operation\"></ng-template>\n </div>\n }\n</div>\n", 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 }); }
193
193
  }
194
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.4", ngImport: i0, type: ThyPropertyItem, decorators: [{
194
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: ThyPropertyItem, decorators: [{
195
195
  type: Component,
196
196
  args: [{ selector: 'thy-property-item', host: {
197
197
  class: 'thy-property-item',
@@ -231,11 +231,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.4", ngImpor
231
231
  }] } });
232
232
 
233
233
  class ThyPropertyModule {
234
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.4", ngImport: i0, type: ThyPropertyModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
235
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.4", ngImport: i0, type: ThyPropertyModule, imports: [CommonModule, ThyFlexibleTextModule, ThyTooltipModule, ThyProperties, ThyPropertyItem], exports: [ThyProperties, ThyPropertyItem] }); }
236
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.4", ngImport: i0, type: ThyPropertyModule, imports: [CommonModule, ThyFlexibleTextModule, ThyTooltipModule, ThyPropertyItem] }); }
234
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: ThyPropertyModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
235
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.6", ngImport: i0, type: ThyPropertyModule, imports: [CommonModule, ThyFlexibleTextModule, ThyTooltipModule, ThyProperties, ThyPropertyItem], exports: [ThyProperties, ThyPropertyItem] }); }
236
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: ThyPropertyModule, imports: [CommonModule, ThyFlexibleTextModule, ThyTooltipModule, ThyPropertyItem] }); }
237
237
  }
238
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.4", ngImport: i0, type: ThyPropertyModule, decorators: [{
238
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: ThyPropertyModule, decorators: [{
239
239
  type: NgModule,
240
240
  args: [{
241
241
  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 { BehaviorSubject } from 'rxjs';\n\nimport { ChangeDetectionStrategy, Component, HostBinding, Input, OnInit, numberAttribute } from '@angular/core';\n\nexport type ThyPropertiesLayout = 'horizontal' | 'vertical';\n\n/**\n * 属性列表组件\n * @name thy-properties\n */\n@Component({\n selector: 'thy-properties',\n templateUrl: './properties.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'thy-properties',\n '[class.thy-properties-vertical]': 'layout === \"vertical\"',\n '[class.thy-properties-horizontal]': 'layout === \"horizontal\"',\n '[class.thy-properties-edit-trigger-hover]': 'thyEditTrigger === \"hover\"',\n '[class.thy-properties-edit-trigger-click]': 'thyEditTrigger === \"click\"'\n },\n standalone: true\n})\nexport class ThyProperties implements OnInit {\n layout$ = new BehaviorSubject<ThyPropertiesLayout>('horizontal');\n\n layout: ThyPropertiesLayout = 'horizontal';\n\n /**\n * 展示布局\n * @type \"horizontal\" | \"vertical\"\n * @default horizontal\n */\n @Input() set thyLayout(layout: ThyPropertiesLayout) {\n this.layout = layout;\n this.layout$.next(layout);\n }\n\n /**\n * 设置一行的可以 property-item 的数量\n * @type number\n */\n @Input({ transform: numberAttribute }) thyColumn: number = 1;\n\n /**\n * 设置编辑状态触发方法\n * @type 'hover' | 'click'\n */\n @Input() thyEditTrigger: 'hover' | 'click' = 'hover';\n\n @HostBinding('style.grid-template-columns')\n get gridTemplateColumns() {\n return `repeat(${this.thyColumn}, 1fr)`;\n }\n\n constructor() {}\n\n ngOnInit() {}\n}\n","<ng-content></ng-content>\n","import { ThyClickDispatcher } from 'ngx-tethys/core';\nimport { ThyFlexibleText } from 'ngx-tethys/flexible-text';\nimport { combineLatest, fromEvent, Subject, Subscription, timer } from 'rxjs';\nimport { delay, filter, take, takeUntil } from 'rxjs/operators';\n\nimport { OverlayOutsideClickDispatcher, OverlayRef } from '@angular/cdk/overlay';\nimport { NgTemplateOutlet } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n ElementRef,\n EventEmitter,\n HostBinding,\n Input,\n NgZone,\n numberAttribute,\n OnChanges,\n OnDestroy,\n OnInit,\n Output,\n SimpleChanges,\n TemplateRef,\n ViewChild,\n inject\n} from '@angular/core';\n\nimport { ThyProperties } from './properties.component';\nimport { coerceBooleanProperty } from 'ngx-tethys/util';\n\nexport type ThyPropertyItemOperationTrigger = 'hover' | 'always';\n\n/**\n * 属性组件\n * @name thy-property-item\n */\n@Component({\n selector: 'thy-property-item',\n templateUrl: './property-item.component.html',\n host: {\n class: 'thy-property-item',\n '[class.thy-property-item-operational]': '!!operation',\n '[class.thy-property-item-operational-hover]': \"thyOperationTrigger === 'hover'\"\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [ThyFlexibleText, NgTemplateOutlet]\n})\nexport class ThyPropertyItem implements OnInit, OnChanges, OnDestroy {\n private cdr = inject(ChangeDetectorRef);\n private clickDispatcher = inject(ThyClickDispatcher);\n private ngZone = inject(NgZone);\n private overlayOutsideClickDispatcher = inject(OverlayOutsideClickDispatcher);\n private parent = inject(ThyProperties);\n\n /**\n * 属性名称\n * @type sting\n * @default thyLabelText\n */\n @Input() thyLabelText: string;\n\n /**\n * 设置属性是否是可编辑的\n * @type sting\n * @default false\n */\n @Input({ transform: coerceBooleanProperty }) thyEditable: boolean;\n\n /**\n * 设置跨列的数量\n * @type number\n */\n @Input({ transform: numberAttribute }) thySpan: number = 1;\n\n /**\n * 设置属性操作现实触发方式,默认 always 一直显示\n * @type 'hover' | 'always'\n */\n @Input() thyOperationTrigger: ThyPropertyItemOperationTrigger = 'always';\n\n @Output() thyEditingChange: EventEmitter<boolean> = new EventEmitter<boolean>();\n\n /**\n * 属性名称自定义模板\n * @type TemplateRef\n */\n @ContentChild('label', { static: true }) label!: TemplateRef<void>;\n\n /**\n * 属性内容编辑模板,只有在 thyEditable 为 true 时生效\n * @type TemplateRef\n */\n @ContentChild('editor', { static: true }) editor!: TemplateRef<void>;\n\n /**\n * 操作区模板\n * @type TemplateRef\n */\n @ContentChild('operation', { static: true }) operation!: TemplateRef<void>;\n\n /**\n * @private\n */\n @ViewChild('contentTemplate', { static: true }) content!: TemplateRef<void>;\n\n /**\n * @private\n */\n @ViewChild('item', { static: true }) itemContent: ElementRef<HTMLElement>;\n\n editing: boolean;\n\n changes$ = new Subject<SimpleChanges>();\n\n private destroy$ = new Subject<void>();\n\n private eventDestroy$ = new Subject<void>();\n\n private originOverlays: OverlayRef[] = [];\n\n private clickEventSubscription: Subscription;\n\n @HostBinding('style.grid-column')\n get gridColumn() {\n return `span ${Math.min(this.thySpan, this.parent.thyColumn)}`;\n }\n\n isVertical = false;\n\n constructor() {\n this.originOverlays = [...this.overlayOutsideClickDispatcher._attachedOverlays] as OverlayRef[];\n }\n\n ngOnInit() {\n this.subscribeClick();\n this.parent.layout$.pipe(takeUntil(this.destroy$)).subscribe(layout => {\n this.isVertical = layout === 'vertical';\n this.cdr.markForCheck();\n });\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.thyEditable && changes.thyEditable.currentValue) {\n this.subscribeClick();\n } else {\n this.setEditing(false);\n this.eventDestroy$.next();\n this.eventDestroy$.complete();\n\n if (this.clickEventSubscription) {\n this.clickEventSubscription.unsubscribe();\n this.clickEventSubscription = null;\n }\n }\n }\n\n setEditing(editing: boolean) {\n this.ngZone.run(() => {\n if (!!this.editing !== !!editing) {\n this.thyEditingChange.emit(editing);\n }\n this.editing = editing;\n this.cdr.markForCheck();\n });\n }\n\n /**\n * @deprecated please use setEditing(editing: boolean)\n */\n setKeepEditing(keep: boolean) {\n this.setEditing(keep);\n }\n\n private hasOverlay() {\n return !!this.overlayOutsideClickDispatcher._attachedOverlays.filter(overlay => !this.originOverlays.includes(overlay)).length;\n }\n\n private subscribeClick() {\n if (this.thyEditable === true) {\n this.ngZone.runOutsideAngular(() => {\n if (this.clickEventSubscription) {\n return;\n }\n this.clickEventSubscription = fromEvent(this.itemContent.nativeElement, 'click')\n .pipe(takeUntil(this.eventDestroy$))\n .subscribe(() => {\n this.setEditing(true);\n this.bindEditorBlurEvent(this.itemContent.nativeElement);\n });\n });\n }\n }\n\n private subscribeOverlayDetach() {\n const openedOverlays = this.overlayOutsideClickDispatcher._attachedOverlays.filter(\n overlay => !this.originOverlays.includes(overlay)\n );\n const overlaysDetachments$ = openedOverlays.map(overlay => overlay.detachments());\n if (overlaysDetachments$.length) {\n combineLatest(overlaysDetachments$)\n .pipe(delay(50), take(1), takeUntil(this.destroy$))\n .subscribe(() => {\n this.setEditing(false);\n });\n }\n }\n\n private subscribeDocumentClick(editorElement: HTMLElement) {\n this.clickDispatcher\n .clicked(0)\n .pipe(\n filter(event => {\n return !editorElement.contains(event.target as HTMLElement);\n }),\n take(1),\n takeUntil(this.destroy$)\n )\n .subscribe(() => {\n this.setEditing(false);\n });\n }\n\n private bindEditorBlurEvent(editorElement: HTMLElement) {\n timer(0).subscribe(() => {\n if (this.hasOverlay()) {\n this.subscribeOverlayDetach();\n } else {\n this.subscribeDocumentClick(editorElement);\n }\n });\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n\n this.eventDestroy$.next();\n this.eventDestroy$.complete();\n }\n}\n","<ng-template #contentTemplate>\n <ng-content></ng-content>\n</ng-template>\n<div class=\"thy-property-item-label\">\n @if (thyLabelText) {\n <span thyFlexibleText [thyTooltipContent]=\"thyLabelText\">{{ thyLabelText }}</span>\n }\n @if (label) {\n <span> <ng-template [ngTemplateOutlet]=\"label\"></ng-template></span>\n }\n @if (operation && isVertical) {\n <div class=\"thy-property-item-operation\">\n <ng-template [ngTemplateOutlet]=\"operation\"></ng-template>\n </div>\n }\n</div>\n<div class=\"thy-property-item-wrapper\">\n <div\n #item\n class=\"thy-property-item-content\"\n [class.thy-property-item-content-editable]=\"thyEditable\"\n [class.thy-property-item-content-editing]=\"editing\">\n <div class=\"thy-property-item-content-text\">\n @if (content) {\n <ng-template [ngTemplateOutlet]=\"content\"></ng-template>\n }\n </div>\n @if (thyEditable) {\n <div class=\"thy-property-item-content-editor\">\n @if (editor) {\n <ng-template [ngTemplateOutlet]=\"editor\"></ng-template>\n }\n </div>\n }\n </div>\n @if (operation && !isVertical) {\n <div class=\"thy-property-item-operation\">\n <ng-template [ngTemplateOutlet]=\"operation\"></ng-template>\n </div>\n }\n</div>\n","import { ThyFlexibleTextModule } from 'ngx-tethys/flexible-text';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { ThyProperties } from './properties.component';\nimport { ThyPropertyItem } from './property-item.component';\nimport { ThyTooltipModule } from 'ngx-tethys/tooltip';\n\n@NgModule({\n imports: [CommonModule, ThyFlexibleTextModule, ThyTooltipModule, ThyProperties, ThyPropertyItem],\n exports: [ThyProperties, ThyPropertyItem]\n})\nexport class ThyPropertyModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ngx-tethys-property.mjs","sources":["../../../src/property/properties.component.ts","../../../src/property/properties.component.html","../../../src/property/property-item.component.ts","../../../src/property/property-item.component.html","../../../src/property/module.ts","../../../src/property/ngx-tethys-property.ts"],"sourcesContent":["import { BehaviorSubject } from 'rxjs';\n\nimport { ChangeDetectionStrategy, Component, HostBinding, Input, OnInit, numberAttribute } from '@angular/core';\n\nexport type ThyPropertiesLayout = 'horizontal' | 'vertical';\n\n/**\n * 属性列表组件\n * @name thy-properties\n */\n@Component({\n selector: 'thy-properties',\n templateUrl: './properties.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'thy-properties',\n '[class.thy-properties-vertical]': 'layout === \"vertical\"',\n '[class.thy-properties-horizontal]': 'layout === \"horizontal\"',\n '[class.thy-properties-edit-trigger-hover]': 'thyEditTrigger === \"hover\"',\n '[class.thy-properties-edit-trigger-click]': 'thyEditTrigger === \"click\"'\n }\n})\nexport class ThyProperties implements OnInit {\n layout$ = new BehaviorSubject<ThyPropertiesLayout>('horizontal');\n\n layout: ThyPropertiesLayout = 'horizontal';\n\n /**\n * 展示布局\n * @type \"horizontal\" | \"vertical\"\n * @default horizontal\n */\n @Input() set thyLayout(layout: ThyPropertiesLayout) {\n this.layout = layout;\n this.layout$.next(layout);\n }\n\n /**\n * 设置一行的可以 property-item 的数量\n * @type number\n */\n @Input({ transform: numberAttribute }) thyColumn: number = 1;\n\n /**\n * 设置编辑状态触发方法\n * @type 'hover' | 'click'\n */\n @Input() thyEditTrigger: 'hover' | 'click' = 'hover';\n\n @HostBinding('style.grid-template-columns')\n get gridTemplateColumns() {\n return `repeat(${this.thyColumn}, 1fr)`;\n }\n\n constructor() {}\n\n ngOnInit() {}\n}\n","<ng-content></ng-content>\n","import { ThyClickDispatcher } from 'ngx-tethys/core';\nimport { ThyFlexibleText } from 'ngx-tethys/flexible-text';\nimport { combineLatest, fromEvent, Subject, Subscription, timer } from 'rxjs';\nimport { delay, filter, take, takeUntil } from 'rxjs/operators';\n\nimport { OverlayOutsideClickDispatcher, OverlayRef } from '@angular/cdk/overlay';\nimport { NgTemplateOutlet } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n ElementRef,\n EventEmitter,\n HostBinding,\n Input,\n NgZone,\n numberAttribute,\n OnChanges,\n OnDestroy,\n OnInit,\n Output,\n SimpleChanges,\n TemplateRef,\n ViewChild,\n inject\n} from '@angular/core';\n\nimport { ThyProperties } from './properties.component';\nimport { coerceBooleanProperty } from 'ngx-tethys/util';\n\nexport type ThyPropertyItemOperationTrigger = 'hover' | 'always';\n\n/**\n * 属性组件\n * @name thy-property-item\n */\n@Component({\n selector: 'thy-property-item',\n templateUrl: './property-item.component.html',\n host: {\n class: 'thy-property-item',\n '[class.thy-property-item-operational]': '!!operation',\n '[class.thy-property-item-operational-hover]': \"thyOperationTrigger === 'hover'\"\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [ThyFlexibleText, NgTemplateOutlet]\n})\nexport class ThyPropertyItem implements OnInit, OnChanges, OnDestroy {\n private cdr = inject(ChangeDetectorRef);\n private clickDispatcher = inject(ThyClickDispatcher);\n private ngZone = inject(NgZone);\n private overlayOutsideClickDispatcher = inject(OverlayOutsideClickDispatcher);\n private parent = inject(ThyProperties);\n\n /**\n * 属性名称\n * @type sting\n * @default thyLabelText\n */\n @Input() thyLabelText: string;\n\n /**\n * 设置属性是否是可编辑的\n * @type sting\n * @default false\n */\n @Input({ transform: coerceBooleanProperty }) thyEditable: boolean;\n\n /**\n * 设置跨列的数量\n * @type number\n */\n @Input({ transform: numberAttribute }) thySpan: number = 1;\n\n /**\n * 设置属性操作现实触发方式,默认 always 一直显示\n * @type 'hover' | 'always'\n */\n @Input() thyOperationTrigger: ThyPropertyItemOperationTrigger = 'always';\n\n @Output() thyEditingChange: EventEmitter<boolean> = new EventEmitter<boolean>();\n\n /**\n * 属性名称自定义模板\n * @type TemplateRef\n */\n @ContentChild('label', { static: true }) label!: TemplateRef<void>;\n\n /**\n * 属性内容编辑模板,只有在 thyEditable 为 true 时生效\n * @type TemplateRef\n */\n @ContentChild('editor', { static: true }) editor!: TemplateRef<void>;\n\n /**\n * 操作区模板\n * @type TemplateRef\n */\n @ContentChild('operation', { static: true }) operation!: TemplateRef<void>;\n\n /**\n * @private\n */\n @ViewChild('contentTemplate', { static: true }) content!: TemplateRef<void>;\n\n /**\n * @private\n */\n @ViewChild('item', { static: true }) itemContent: ElementRef<HTMLElement>;\n\n editing: boolean;\n\n changes$ = new Subject<SimpleChanges>();\n\n private destroy$ = new Subject<void>();\n\n private eventDestroy$ = new Subject<void>();\n\n private originOverlays: OverlayRef[] = [];\n\n private clickEventSubscription: Subscription;\n\n @HostBinding('style.grid-column')\n get gridColumn() {\n return `span ${Math.min(this.thySpan, this.parent.thyColumn)}`;\n }\n\n isVertical = false;\n\n constructor() {\n this.originOverlays = [...this.overlayOutsideClickDispatcher._attachedOverlays] as OverlayRef[];\n }\n\n ngOnInit() {\n this.subscribeClick();\n this.parent.layout$.pipe(takeUntil(this.destroy$)).subscribe(layout => {\n this.isVertical = layout === 'vertical';\n this.cdr.markForCheck();\n });\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.thyEditable && changes.thyEditable.currentValue) {\n this.subscribeClick();\n } else {\n this.setEditing(false);\n this.eventDestroy$.next();\n this.eventDestroy$.complete();\n\n if (this.clickEventSubscription) {\n this.clickEventSubscription.unsubscribe();\n this.clickEventSubscription = null;\n }\n }\n }\n\n setEditing(editing: boolean) {\n this.ngZone.run(() => {\n if (!!this.editing !== !!editing) {\n this.thyEditingChange.emit(editing);\n }\n this.editing = editing;\n this.cdr.markForCheck();\n });\n }\n\n /**\n * @deprecated please use setEditing(editing: boolean)\n */\n setKeepEditing(keep: boolean) {\n this.setEditing(keep);\n }\n\n private hasOverlay() {\n return !!this.overlayOutsideClickDispatcher._attachedOverlays.filter(overlay => !this.originOverlays.includes(overlay)).length;\n }\n\n private subscribeClick() {\n if (this.thyEditable === true) {\n this.ngZone.runOutsideAngular(() => {\n if (this.clickEventSubscription) {\n return;\n }\n this.clickEventSubscription = fromEvent(this.itemContent.nativeElement, 'click')\n .pipe(takeUntil(this.eventDestroy$))\n .subscribe(() => {\n this.setEditing(true);\n this.bindEditorBlurEvent(this.itemContent.nativeElement);\n });\n });\n }\n }\n\n private subscribeOverlayDetach() {\n const openedOverlays = this.overlayOutsideClickDispatcher._attachedOverlays.filter(\n overlay => !this.originOverlays.includes(overlay)\n );\n const overlaysDetachments$ = openedOverlays.map(overlay => overlay.detachments());\n if (overlaysDetachments$.length) {\n combineLatest(overlaysDetachments$)\n .pipe(delay(50), take(1), takeUntil(this.destroy$))\n .subscribe(() => {\n this.setEditing(false);\n });\n }\n }\n\n private subscribeDocumentClick(editorElement: HTMLElement) {\n this.clickDispatcher\n .clicked(0)\n .pipe(\n filter(event => {\n return !editorElement.contains(event.target as HTMLElement);\n }),\n take(1),\n takeUntil(this.destroy$)\n )\n .subscribe(() => {\n this.setEditing(false);\n });\n }\n\n private bindEditorBlurEvent(editorElement: HTMLElement) {\n timer(0).subscribe(() => {\n if (this.hasOverlay()) {\n this.subscribeOverlayDetach();\n } else {\n this.subscribeDocumentClick(editorElement);\n }\n });\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n\n this.eventDestroy$.next();\n this.eventDestroy$.complete();\n }\n}\n","<ng-template #contentTemplate>\n <ng-content></ng-content>\n</ng-template>\n<div class=\"thy-property-item-label\">\n @if (thyLabelText) {\n <span thyFlexibleText [thyTooltipContent]=\"thyLabelText\">{{ thyLabelText }}</span>\n }\n @if (label) {\n <span> <ng-template [ngTemplateOutlet]=\"label\"></ng-template></span>\n }\n @if (operation && isVertical) {\n <div class=\"thy-property-item-operation\">\n <ng-template [ngTemplateOutlet]=\"operation\"></ng-template>\n </div>\n }\n</div>\n<div class=\"thy-property-item-wrapper\">\n <div\n #item\n class=\"thy-property-item-content\"\n [class.thy-property-item-content-editable]=\"thyEditable\"\n [class.thy-property-item-content-editing]=\"editing\">\n <div class=\"thy-property-item-content-text\">\n @if (content) {\n <ng-template [ngTemplateOutlet]=\"content\"></ng-template>\n }\n </div>\n @if (thyEditable) {\n <div class=\"thy-property-item-content-editor\">\n @if (editor) {\n <ng-template [ngTemplateOutlet]=\"editor\"></ng-template>\n }\n </div>\n }\n </div>\n @if (operation && !isVertical) {\n <div class=\"thy-property-item-operation\">\n <ng-template [ngTemplateOutlet]=\"operation\"></ng-template>\n </div>\n }\n</div>\n","import { ThyFlexibleTextModule } from 'ngx-tethys/flexible-text';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { ThyProperties } from './properties.component';\nimport { ThyPropertyItem } from './property-item.component';\nimport { ThyTooltipModule } from 'ngx-tethys/tooltip';\n\n@NgModule({\n imports: [CommonModule, ThyFlexibleTextModule, ThyTooltipModule, ThyProperties, ThyPropertyItem],\n exports: [ThyProperties, ThyPropertyItem]\n})\nexport class ThyPropertyModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -102,8 +102,8 @@ class ThyRadioGroup {
102
102
  }
103
103
  this.hostRenderer.updateClass(classNames);
104
104
  }
105
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.4", ngImport: i0, type: ThyRadioGroup, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
106
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "19.2.4", type: ThyRadioGroup, isStandalone: true, selector: "thy-radio-group", inputs: { thySize: "thySize", thyLayout: "thyLayout", thyDisabled: ["thyDisabled", "thyDisabled", coerceBooleanProperty] }, host: { properties: { "attr.tabindex": "-1", "class.thy-radio-group": "this.thyRadioGroup", "class.btn-group": "this.isButtonGroup", "class.btn-group-outline-default": "this.isButtonGroupOutline" } }, providers: [
105
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: ThyRadioGroup, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
106
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "19.2.6", type: ThyRadioGroup, isStandalone: true, selector: "thy-radio-group", inputs: { thySize: "thySize", thyLayout: "thyLayout", thyDisabled: ["thyDisabled", "thyDisabled", coerceBooleanProperty] }, host: { properties: { "attr.tabindex": "-1", "class.thy-radio-group": "this.thyRadioGroup", "class.btn-group": "this.isButtonGroup", "class.btn-group-outline-default": "this.isButtonGroupOutline" } }, providers: [
107
107
  {
108
108
  provide: NG_VALUE_ACCESSOR,
109
109
  useExisting: forwardRef(() => ThyRadioGroup),
@@ -111,7 +111,7 @@ class ThyRadioGroup {
111
111
  }
112
112
  ], usesOnChanges: true, ngImport: i0, template: "<ng-content></ng-content>\n", changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
113
113
  }
114
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.4", ngImport: i0, type: ThyRadioGroup, decorators: [{
114
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: ThyRadioGroup, decorators: [{
115
115
  type: Component,
116
116
  args: [{ selector: 'thy-radio-group', providers: [
117
117
  {
@@ -121,7 +121,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.4", ngImpor
121
121
  }
122
122
  ], host: {
123
123
  '[attr.tabindex]': `-1`
124
- }, changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, template: "<ng-content></ng-content>\n" }]
124
+ }, changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-content></ng-content>\n" }]
125
125
  }], propDecorators: { thyRadioGroup: [{
126
126
  type: HostBinding,
127
127
  args: ['class.thy-radio-group']
@@ -167,8 +167,8 @@ class ThyRadio extends ThyFormCheckBaseComponent {
167
167
  this.updateValue(!this._innerValue);
168
168
  }
169
169
  }
170
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.4", ngImport: i0, type: ThyRadio, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
171
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.4", type: ThyRadio, isStandalone: true, selector: "[thy-radio],[thyRadio]", inputs: { thyValue: "thyValue" }, host: { properties: { "attr.tabindex": "-1" } }, providers: [
170
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: ThyRadio, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
171
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.6", type: ThyRadio, isStandalone: true, selector: "[thy-radio],[thyRadio]", inputs: { thyValue: "thyValue" }, host: { properties: { "attr.tabindex": "-1" } }, providers: [
172
172
  {
173
173
  provide: NG_VALUE_ACCESSOR,
174
174
  useExisting: forwardRef(() => ThyRadio),
@@ -176,7 +176,7 @@ class ThyRadio extends ThyFormCheckBaseComponent {
176
176
  }
177
177
  ], 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 }); }
178
178
  }
179
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.4", ngImport: i0, type: ThyRadio, decorators: [{
179
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: ThyRadio, decorators: [{
180
180
  type: Component,
181
181
  args: [{ selector: '[thy-radio],[thyRadio]', providers: [
182
182
  {
@@ -219,12 +219,12 @@ class ThyRadioButton extends ThyRadio {
219
219
  this.change();
220
220
  }
221
221
  }
222
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.4", ngImport: i0, type: ThyRadioButton, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
223
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.4", type: ThyRadioButton, isStandalone: true, selector: "[thy-radio-button],[thyRadioButton]", inputs: { thyValue: "thyValue" }, 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" }); }
222
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: ThyRadioButton, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
223
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.6", type: ThyRadioButton, isStandalone: true, selector: "[thy-radio-button],[thyRadioButton]", inputs: { thyValue: "thyValue" }, 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" }); }
224
224
  }
225
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.4", ngImport: i0, type: ThyRadioButton, decorators: [{
225
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: ThyRadioButton, decorators: [{
226
226
  type: Component,
227
- args: [{ selector: '[thy-radio-button],[thyRadioButton]', standalone: true, host: {
227
+ args: [{ selector: '[thy-radio-button],[thyRadioButton]', host: {
228
228
  '[attr.tabindex]': `tabIndex`
229
229
  }, template: "<ng-container> {{ _labelText }}</ng-container>\n<ng-content></ng-content>\n" }]
230
230
  }], propDecorators: { isButton: [{
@@ -244,11 +244,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.4", ngImpor
244
244
  }] } });
245
245
 
246
246
  class ThyRadioModule {
247
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.4", ngImport: i0, type: ThyRadioModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
248
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.4", ngImport: i0, type: ThyRadioModule, imports: [CommonModule, FormsModule, ThyRadio, ThyRadioGroup, ThyRadioButton], exports: [ThyRadio, ThyRadioGroup, ThyRadioButton] }); }
249
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.4", ngImport: i0, type: ThyRadioModule, imports: [CommonModule, FormsModule] }); }
247
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: ThyRadioModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
248
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.6", ngImport: i0, type: ThyRadioModule, imports: [CommonModule, FormsModule, ThyRadio, ThyRadioGroup, ThyRadioButton], exports: [ThyRadio, ThyRadioGroup, ThyRadioButton] }); }
249
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: ThyRadioModule, imports: [CommonModule, FormsModule] }); }
250
250
  }
251
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.4", ngImport: i0, type: ThyRadioModule, decorators: [{
251
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.6", ngImport: i0, type: ThyRadioModule, decorators: [{
252
252
  type: NgModule,
253
253
  args: [{
254
254
  imports: [CommonModule, FormsModule, ThyRadio, ThyRadioGroup, ThyRadioButton],
@@ -1 +1 @@
1
- {"version":3,"file":"ngx-tethys-radio.mjs","sources":["../../../src/radio/group/radio-group.component.ts","../../../src/radio/group/radio-group.component.html","../../../src/radio/radio.component.ts","../../../src/radio/radio.component.html","../../../src/radio/button/radio-button.component.ts","../../../src/radio/button/radio-button.component.html","../../../src/radio/module.ts","../../../src/radio/ngx-tethys-radio.ts"],"sourcesContent":["import {\n AfterContentInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n forwardRef,\n HostBinding,\n Input,\n OnChanges,\n OnInit,\n SimpleChanges,\n inject\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { useHostRenderer } from '@tethys/cdk/dom';\n\nimport { ThyRadioButton } from '../button/radio-button.component';\nimport { ThyRadio } from '../radio.component';\nimport { coerceBooleanProperty } from 'ngx-tethys/util';\n\nconst buttonGroupSizeMap = {\n sm: ['btn-group-sm'],\n lg: ['btn-group-lg']\n};\n\nconst radioGroupLayoutMap = {\n flex: ['radio-group-layout-flex']\n};\n\n/**\n * @name thy-radio-group\n * @order 20\n */\n@Component({\n selector: 'thy-radio-group',\n templateUrl: './radio-group.component.html',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ThyRadioGroup),\n multi: true\n }\n ],\n host: {\n '[attr.tabindex]': `-1`\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class ThyRadioGroup implements ControlValueAccessor, OnInit, OnChanges, AfterContentInit {\n private changeDetectorRef = inject(ChangeDetectorRef);\n\n @HostBinding('class.thy-radio-group') thyRadioGroup = true;\n\n @HostBinding('class.btn-group') isButtonGroup = false;\n\n @HostBinding('class.btn-group-outline-default')\n isButtonGroupOutline = false;\n\n private _size: string;\n\n private _layout: string;\n\n /**\n * 大小\n * @type sm | md | lg\n * @default md\n */\n @Input()\n set thySize(size: string) {\n this._size = size;\n }\n\n @Input()\n set thyLayout(layout: string) {\n this._layout = layout;\n }\n\n _innerValue: string | number;\n\n radios: Array<ThyRadio | ThyRadioButton> = [];\n\n private hostRenderer = useHostRenderer();\n\n /**\n * 是否禁用单选组合框\n * @default false\n */\n @Input({ transform: coerceBooleanProperty }) thyDisabled = false;\n\n onChange: (_: string) => void = () => null;\n onTouched: () => void = () => null;\n\n addRadio(radio: ThyRadio | ThyRadioButton): void {\n this.radios.push(radio);\n radio.thyChecked = radio.thyValue === this._innerValue;\n }\n\n updateValue(value: string, emit: boolean): void {\n this._innerValue = value;\n this.radios.forEach(radio => {\n radio.thyChecked = radio.thyValue === this._innerValue;\n });\n if (emit) {\n this.onChange(value);\n }\n this.onTouched();\n this.changeDetectorRef.detectChanges();\n }\n\n writeValue(value: any): void {\n this.updateValue(value, false);\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n setDisabledState?(isDisabled: boolean): void {\n this.radios.forEach(radio => {\n radio.setDisabledState(isDisabled);\n });\n }\n\n setGroup() {\n if (!this.isButtonGroup && !this.isButtonGroupOutline) {\n this.isButtonGroup = true;\n this.isButtonGroupOutline = true;\n }\n }\n\n ngOnInit() {\n this._setClasses();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n const { thyDisabled } = changes;\n if (thyDisabled) {\n this.setDisabledState(this.thyDisabled);\n }\n }\n\n ngAfterContentInit(): void {\n this.setDisabledState(this.thyDisabled);\n }\n\n private _setClasses() {\n const classNames: string[] = [];\n if (buttonGroupSizeMap[this._size]) {\n classNames.push(buttonGroupSizeMap[this._size]);\n }\n if (radioGroupLayoutMap[this._layout]) {\n classNames.push(radioGroupLayoutMap[this._layout]);\n }\n this.hostRenderer.updateClass(classNames);\n }\n}\n","<ng-content></ng-content>\n","import { Component, forwardRef, OnInit, Input, ChangeDetectionStrategy, inject } from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { ThyFormCheckBaseComponent } from 'ngx-tethys/shared';\nimport { ThyRadioGroup } from './group/radio-group.component';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { NgClass } from '@angular/common';\n\n/**\n * 单选框组件\n * @name thy-radio,[thyRadio]\n * @order 10\n */\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: '[thy-radio],[thyRadio]',\n templateUrl: './radio.component.html',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ThyRadio),\n multi: true\n }\n ],\n host: {\n '[attr.tabindex]': `-1`\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [NgClass]\n})\nexport class ThyRadio extends ThyFormCheckBaseComponent implements OnInit {\n thyRadioGroupComponent = inject(ThyRadioGroup, { optional: true })!;\n\n name: string;\n\n /**\n * 当和 thy-radio-group 配合使用时的值,选中后的 NgModel 值\n */\n @Input() thyValue: string;\n\n set thyChecked(value: boolean) {\n this.writeValue(coerceBooleanProperty(value));\n this.changeDetectorRef.markForCheck();\n }\n\n ngOnInit() {\n if (this.thyRadioGroupComponent) {\n this.thyRadioGroupComponent.addRadio(this);\n }\n }\n\n change() {\n if (this.thyRadioGroupComponent) {\n this.thyRadioGroupComponent.updateValue(this.thyValue, true);\n } else {\n this.updateValue(!this._innerValue);\n }\n }\n}\n","<input\n class=\"form-check-input\"\n [checked]=\"_isChecked\"\n (change)=\"change()\"\n type=\"radio\"\n [attr.tabindex]=\"tabIndex\"\n [disabled]=\"_disabled\"\n [attr.name]=\"name\"\n [ngClass]=\"{ 'form-check-no-label-text': !_labelText }\" />\n@if (_labelText) {\n <span class=\"form-check-label\">{{ _labelText }}</span>\n}\n<ng-content></ng-content>\n","import { Component, OnInit, HostBinding, HostListener, Input } from '@angular/core';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { ThyRadio } from '../radio.component';\n\n/**\n * @name [thy-radio-button],[thyRadioButton]\n */\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: '[thy-radio-button],[thyRadioButton]',\n templateUrl: './radio-button.component.html',\n standalone: true,\n host: {\n '[attr.tabindex]': `tabIndex`\n }\n})\nexport class ThyRadioButton extends ThyRadio implements OnInit {\n @HostBinding('class.btn') isButton = true;\n @HostBinding('class.active') isActive = false;\n @HostBinding('class.disabled') get isDisabled() {\n return this._disabled;\n }\n\n name: string;\n\n @Input() thyValue: string;\n\n set thyChecked(value: boolean) {\n this.isActive = !!value;\n this.writeValue(coerceBooleanProperty(value));\n }\n\n ngOnInit() {\n this._isFormCheck = false;\n if (this.thyRadioGroupComponent) {\n this.thyRadioGroupComponent.addRadio(this);\n this.thyRadioGroupComponent.setGroup();\n }\n }\n\n @HostListener('click', ['$event'])\n click($event: MouseEvent) {\n if (!this._disabled) {\n this.change();\n }\n }\n}\n","<ng-container> {{ _labelText }}</ng-container>\n<ng-content></ng-content>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { ThyRadio } from './radio.component';\nimport { ThyRadioButton } from './button/radio-button.component';\nimport { ThyRadioGroup } from './group/radio-group.component';\n\n@NgModule({\n imports: [CommonModule, FormsModule, ThyRadio, ThyRadioGroup, ThyRadioButton],\n exports: [ThyRadio, ThyRadioGroup, ThyRadioButton]\n})\nexport class ThyRadioModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["coerceBooleanProperty"],"mappings":"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"}
1
+ {"version":3,"file":"ngx-tethys-radio.mjs","sources":["../../../src/radio/group/radio-group.component.ts","../../../src/radio/group/radio-group.component.html","../../../src/radio/radio.component.ts","../../../src/radio/radio.component.html","../../../src/radio/button/radio-button.component.ts","../../../src/radio/button/radio-button.component.html","../../../src/radio/module.ts","../../../src/radio/ngx-tethys-radio.ts"],"sourcesContent":["import {\n AfterContentInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n forwardRef,\n HostBinding,\n Input,\n OnChanges,\n OnInit,\n SimpleChanges,\n inject\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { useHostRenderer } from '@tethys/cdk/dom';\n\nimport { ThyRadioButton } from '../button/radio-button.component';\nimport { ThyRadio } from '../radio.component';\nimport { coerceBooleanProperty } from 'ngx-tethys/util';\n\nconst buttonGroupSizeMap = {\n sm: ['btn-group-sm'],\n lg: ['btn-group-lg']\n};\n\nconst radioGroupLayoutMap = {\n flex: ['radio-group-layout-flex']\n};\n\n/**\n * @name thy-radio-group\n * @order 20\n */\n@Component({\n selector: 'thy-radio-group',\n templateUrl: './radio-group.component.html',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ThyRadioGroup),\n multi: true\n }\n ],\n host: {\n '[attr.tabindex]': `-1`\n },\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class ThyRadioGroup implements ControlValueAccessor, OnInit, OnChanges, AfterContentInit {\n private changeDetectorRef = inject(ChangeDetectorRef);\n\n @HostBinding('class.thy-radio-group') thyRadioGroup = true;\n\n @HostBinding('class.btn-group') isButtonGroup = false;\n\n @HostBinding('class.btn-group-outline-default')\n isButtonGroupOutline = false;\n\n private _size: string;\n\n private _layout: string;\n\n /**\n * 大小\n * @type sm | md | lg\n * @default md\n */\n @Input()\n set thySize(size: string) {\n this._size = size;\n }\n\n @Input()\n set thyLayout(layout: string) {\n this._layout = layout;\n }\n\n _innerValue: string | number;\n\n radios: Array<ThyRadio | ThyRadioButton> = [];\n\n private hostRenderer = useHostRenderer();\n\n /**\n * 是否禁用单选组合框\n * @default false\n */\n @Input({ transform: coerceBooleanProperty }) thyDisabled = false;\n\n onChange: (_: string) => void = () => null;\n onTouched: () => void = () => null;\n\n addRadio(radio: ThyRadio | ThyRadioButton): void {\n this.radios.push(radio);\n radio.thyChecked = radio.thyValue === this._innerValue;\n }\n\n updateValue(value: string, emit: boolean): void {\n this._innerValue = value;\n this.radios.forEach(radio => {\n radio.thyChecked = radio.thyValue === this._innerValue;\n });\n if (emit) {\n this.onChange(value);\n }\n this.onTouched();\n this.changeDetectorRef.detectChanges();\n }\n\n writeValue(value: any): void {\n this.updateValue(value, false);\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n setDisabledState?(isDisabled: boolean): void {\n this.radios.forEach(radio => {\n radio.setDisabledState(isDisabled);\n });\n }\n\n setGroup() {\n if (!this.isButtonGroup && !this.isButtonGroupOutline) {\n this.isButtonGroup = true;\n this.isButtonGroupOutline = true;\n }\n }\n\n ngOnInit() {\n this._setClasses();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n const { thyDisabled } = changes;\n if (thyDisabled) {\n this.setDisabledState(this.thyDisabled);\n }\n }\n\n ngAfterContentInit(): void {\n this.setDisabledState(this.thyDisabled);\n }\n\n private _setClasses() {\n const classNames: string[] = [];\n if (buttonGroupSizeMap[this._size]) {\n classNames.push(buttonGroupSizeMap[this._size]);\n }\n if (radioGroupLayoutMap[this._layout]) {\n classNames.push(radioGroupLayoutMap[this._layout]);\n }\n this.hostRenderer.updateClass(classNames);\n }\n}\n","<ng-content></ng-content>\n","import { Component, forwardRef, OnInit, Input, ChangeDetectionStrategy, inject } from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { ThyFormCheckBaseComponent } from 'ngx-tethys/shared';\nimport { ThyRadioGroup } from './group/radio-group.component';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { NgClass } from '@angular/common';\n\n/**\n * 单选框组件\n * @name thy-radio,[thyRadio]\n * @order 10\n */\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: '[thy-radio],[thyRadio]',\n templateUrl: './radio.component.html',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ThyRadio),\n multi: true\n }\n ],\n host: {\n '[attr.tabindex]': `-1`\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [NgClass]\n})\nexport class ThyRadio extends ThyFormCheckBaseComponent implements OnInit {\n thyRadioGroupComponent = inject(ThyRadioGroup, { optional: true })!;\n\n name: string;\n\n /**\n * 当和 thy-radio-group 配合使用时的值,选中后的 NgModel 值\n */\n @Input() thyValue: string;\n\n set thyChecked(value: boolean) {\n this.writeValue(coerceBooleanProperty(value));\n this.changeDetectorRef.markForCheck();\n }\n\n ngOnInit() {\n if (this.thyRadioGroupComponent) {\n this.thyRadioGroupComponent.addRadio(this);\n }\n }\n\n change() {\n if (this.thyRadioGroupComponent) {\n this.thyRadioGroupComponent.updateValue(this.thyValue, true);\n } else {\n this.updateValue(!this._innerValue);\n }\n }\n}\n","<input\n class=\"form-check-input\"\n [checked]=\"_isChecked\"\n (change)=\"change()\"\n type=\"radio\"\n [attr.tabindex]=\"tabIndex\"\n [disabled]=\"_disabled\"\n [attr.name]=\"name\"\n [ngClass]=\"{ 'form-check-no-label-text': !_labelText }\" />\n@if (_labelText) {\n <span class=\"form-check-label\">{{ _labelText }}</span>\n}\n<ng-content></ng-content>\n","import { Component, OnInit, HostBinding, HostListener, Input } from '@angular/core';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { ThyRadio } from '../radio.component';\n\n/**\n * @name [thy-radio-button],[thyRadioButton]\n */\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: '[thy-radio-button],[thyRadioButton]',\n templateUrl: './radio-button.component.html',\n host: {\n '[attr.tabindex]': `tabIndex`\n }\n})\nexport class ThyRadioButton extends ThyRadio implements OnInit {\n @HostBinding('class.btn') isButton = true;\n @HostBinding('class.active') isActive = false;\n @HostBinding('class.disabled') get isDisabled() {\n return this._disabled;\n }\n\n name: string;\n\n @Input() thyValue: string;\n\n set thyChecked(value: boolean) {\n this.isActive = !!value;\n this.writeValue(coerceBooleanProperty(value));\n }\n\n ngOnInit() {\n this._isFormCheck = false;\n if (this.thyRadioGroupComponent) {\n this.thyRadioGroupComponent.addRadio(this);\n this.thyRadioGroupComponent.setGroup();\n }\n }\n\n @HostListener('click', ['$event'])\n click($event: MouseEvent) {\n if (!this._disabled) {\n this.change();\n }\n }\n}\n","<ng-container> {{ _labelText }}</ng-container>\n<ng-content></ng-content>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { ThyRadio } from './radio.component';\nimport { ThyRadioButton } from './button/radio-button.component';\nimport { ThyRadioGroup } from './group/radio-group.component';\n\n@NgModule({\n imports: [CommonModule, FormsModule, ThyRadio, ThyRadioGroup, ThyRadioButton],\n exports: [ThyRadio, ThyRadioGroup, ThyRadioButton]\n})\nexport class ThyRadioModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["coerceBooleanProperty"],"mappings":"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"}