@ng-nest/ui 14.0.7 → 14.0.8

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 (197) hide show
  1. package/avatar/avatar-group.component.d.ts +8 -0
  2. package/avatar/avatar.component.d.ts +15 -4
  3. package/avatar/avatar.module.d.ts +5 -4
  4. package/avatar/avatar.property.d.ts +31 -3
  5. package/avatar/examples/en_US/default/badge/README.md +6 -0
  6. package/avatar/examples/en_US/default/group/README.md +6 -0
  7. package/avatar/examples/en_US/default/label/README.md +6 -0
  8. package/avatar/examples/en_US/default/response/README.md +6 -0
  9. package/avatar/examples/zh_CN/default/badge/README.md +6 -0
  10. package/avatar/examples/zh_CN/default/group/README.md +6 -0
  11. package/avatar/examples/zh_CN/default/label/README.md +6 -0
  12. package/avatar/examples/zh_CN/default/response/README.md +6 -0
  13. package/avatar/public-api.d.ts +1 -0
  14. package/badge/badge.component.d.ts +4 -1
  15. package/badge/badge.property.d.ts +6 -1
  16. package/badge/examples/en_US/default/animation/README.md +4 -0
  17. package/badge/examples/en_US/default/standalone/README.md +6 -0
  18. package/badge/examples/zh_CN/default/animation/README.md +4 -0
  19. package/badge/examples/zh_CN/default/standalone/README.md +6 -0
  20. package/calendar/calendar.property.d.ts +2 -1
  21. package/core/animation/badge.d.ts +1 -0
  22. package/core/config/config.d.ts +26 -0
  23. package/core/interfaces/identify.type.d.ts +2 -0
  24. package/core/interfaces/layout.type.d.ts +15 -0
  25. package/esm2020/avatar/avatar-group.component.mjs +19 -0
  26. package/esm2020/avatar/avatar.component.mjs +91 -11
  27. package/esm2020/avatar/avatar.module.mjs +6 -5
  28. package/esm2020/avatar/avatar.property.mjs +31 -3
  29. package/esm2020/avatar/public-api.mjs +2 -1
  30. package/esm2020/badge/badge.component.mjs +24 -8
  31. package/esm2020/badge/badge.property.mjs +7 -2
  32. package/esm2020/calendar/calendar.property.mjs +1 -1
  33. package/esm2020/core/animation/badge.mjs +17 -1
  34. package/esm2020/core/config/config.mjs +1 -1
  35. package/esm2020/core/interfaces/identify.type.mjs +1 -1
  36. package/esm2020/core/interfaces/layout.type.mjs +1 -1
  37. package/esm2020/form/form.component.mjs +3 -3
  38. package/esm2020/i18n/i18n.property.mjs +1 -1
  39. package/esm2020/i18n/languages/en_US.mjs +5 -1
  40. package/esm2020/i18n/languages/zh_CN.mjs +5 -1
  41. package/esm2020/i18n/languages/zh_TW.mjs +5 -1
  42. package/esm2020/image/image-group.component.mjs +2 -2
  43. package/esm2020/image/image.component.mjs +13 -5
  44. package/esm2020/image/image.module.mjs +5 -4
  45. package/esm2020/image/image.property.mjs +22 -3
  46. package/esm2020/index.mjs +3 -1
  47. package/esm2020/keyword/keyword.directive.mjs +66 -0
  48. package/esm2020/keyword/keyword.module.mjs +19 -0
  49. package/esm2020/keyword/keyword.property.mjs +41 -0
  50. package/esm2020/keyword/ng-nest-ui-keyword.mjs +5 -0
  51. package/esm2020/keyword/public-api.mjs +4 -0
  52. package/esm2020/list/list-option.component.mjs +4 -4
  53. package/esm2020/list/list.component.mjs +4 -4
  54. package/esm2020/list/list.module.mjs +8 -4
  55. package/esm2020/list/list.property.mjs +19 -3
  56. package/esm2020/select/select-portal.component.mjs +6 -3
  57. package/esm2020/select/select.component.mjs +31 -23
  58. package/esm2020/select/select.property.mjs +8 -2
  59. package/esm2020/table/table.component.mjs +4 -4
  60. package/esm2020/tree/tree-node.component.mjs +52 -27
  61. package/esm2020/tree/tree.component.mjs +173 -58
  62. package/esm2020/tree/tree.module.mjs +5 -4
  63. package/esm2020/tree/tree.property.mjs +38 -2
  64. package/esm2020/tree-select/ng-nest-ui-tree-select.mjs +5 -0
  65. package/esm2020/tree-select/public-api.mjs +5 -0
  66. package/esm2020/tree-select/tree-select-portal.component.mjs +110 -0
  67. package/esm2020/tree-select/tree-select.component.mjs +632 -0
  68. package/esm2020/tree-select/tree-select.module.mjs +65 -0
  69. package/esm2020/tree-select/tree-select.property.mjs +153 -0
  70. package/esm2020/upload/upload.component.mjs +9 -6
  71. package/esm2020/upload/upload.module.mjs +12 -4
  72. package/esm2020/upload/upload.property.mjs +10 -3
  73. package/fesm2015/ng-nest-ui-avatar.mjs +143 -17
  74. package/fesm2015/ng-nest-ui-avatar.mjs.map +1 -1
  75. package/fesm2015/ng-nest-ui-badge.mjs +29 -8
  76. package/fesm2015/ng-nest-ui-badge.mjs.map +1 -1
  77. package/fesm2015/ng-nest-ui-calendar.mjs.map +1 -1
  78. package/fesm2015/ng-nest-ui-core.mjs +17 -1
  79. package/fesm2015/ng-nest-ui-core.mjs.map +1 -1
  80. package/fesm2015/ng-nest-ui-form.mjs +2 -2
  81. package/fesm2015/ng-nest-ui-form.mjs.map +1 -1
  82. package/fesm2015/ng-nest-ui-i18n.mjs +12 -0
  83. package/fesm2015/ng-nest-ui-i18n.mjs.map +1 -1
  84. package/fesm2015/ng-nest-ui-image.mjs +39 -11
  85. package/fesm2015/ng-nest-ui-image.mjs.map +1 -1
  86. package/fesm2015/ng-nest-ui-keyword.mjs +125 -0
  87. package/fesm2015/ng-nest-ui-keyword.mjs.map +1 -0
  88. package/fesm2015/ng-nest-ui-list.mjs +32 -12
  89. package/fesm2015/ng-nest-ui-list.mjs.map +1 -1
  90. package/fesm2015/ng-nest-ui-select.mjs +42 -25
  91. package/fesm2015/ng-nest-ui-select.mjs.map +1 -1
  92. package/fesm2015/ng-nest-ui-table.mjs +3 -3
  93. package/fesm2015/ng-nest-ui-table.mjs.map +1 -1
  94. package/fesm2015/ng-nest-ui-tree-select.mjs +951 -0
  95. package/fesm2015/ng-nest-ui-tree-select.mjs.map +1 -0
  96. package/fesm2015/ng-nest-ui-tree.mjs +271 -94
  97. package/fesm2015/ng-nest-ui-tree.mjs.map +1 -1
  98. package/fesm2015/ng-nest-ui-upload.mjs +28 -10
  99. package/fesm2015/ng-nest-ui-upload.mjs.map +1 -1
  100. package/fesm2015/ng-nest-ui.mjs +2 -0
  101. package/fesm2015/ng-nest-ui.mjs.map +1 -1
  102. package/fesm2020/ng-nest-ui-avatar.mjs +140 -17
  103. package/fesm2020/ng-nest-ui-avatar.mjs.map +1 -1
  104. package/fesm2020/ng-nest-ui-badge.mjs +29 -8
  105. package/fesm2020/ng-nest-ui-badge.mjs.map +1 -1
  106. package/fesm2020/ng-nest-ui-calendar.mjs.map +1 -1
  107. package/fesm2020/ng-nest-ui-core.mjs +17 -1
  108. package/fesm2020/ng-nest-ui-core.mjs.map +1 -1
  109. package/fesm2020/ng-nest-ui-form.mjs +2 -2
  110. package/fesm2020/ng-nest-ui-form.mjs.map +1 -1
  111. package/fesm2020/ng-nest-ui-i18n.mjs +12 -0
  112. package/fesm2020/ng-nest-ui-i18n.mjs.map +1 -1
  113. package/fesm2020/ng-nest-ui-image.mjs +39 -11
  114. package/fesm2020/ng-nest-ui-image.mjs.map +1 -1
  115. package/fesm2020/ng-nest-ui-keyword.mjs +125 -0
  116. package/fesm2020/ng-nest-ui-keyword.mjs.map +1 -0
  117. package/fesm2020/ng-nest-ui-list.mjs +32 -12
  118. package/fesm2020/ng-nest-ui-list.mjs.map +1 -1
  119. package/fesm2020/ng-nest-ui-select.mjs +42 -25
  120. package/fesm2020/ng-nest-ui-select.mjs.map +1 -1
  121. package/fesm2020/ng-nest-ui-table.mjs +3 -3
  122. package/fesm2020/ng-nest-ui-table.mjs.map +1 -1
  123. package/fesm2020/ng-nest-ui-tree-select.mjs +946 -0
  124. package/fesm2020/ng-nest-ui-tree-select.mjs.map +1 -0
  125. package/fesm2020/ng-nest-ui-tree.mjs +267 -91
  126. package/fesm2020/ng-nest-ui-tree.mjs.map +1 -1
  127. package/fesm2020/ng-nest-ui-upload.mjs +28 -10
  128. package/fesm2020/ng-nest-ui-upload.mjs.map +1 -1
  129. package/fesm2020/ng-nest-ui.mjs +2 -0
  130. package/fesm2020/ng-nest-ui.mjs.map +1 -1
  131. package/i18n/i18n.property.d.ts +5 -0
  132. package/i18n/languages/en_US.d.ts +4 -0
  133. package/i18n/languages/zh_CN.d.ts +4 -0
  134. package/i18n/languages/zh_TW.d.ts +4 -0
  135. package/image/image.component.d.ts +2 -2
  136. package/image/image.module.d.ts +3 -2
  137. package/image/image.property.d.ts +23 -7
  138. package/index.d.ts +2 -0
  139. package/keyword/index.d.ts +5 -0
  140. package/keyword/keyword.directive.d.ts +19 -0
  141. package/keyword/keyword.module.d.ts +9 -0
  142. package/keyword/keyword.property.d.ts +40 -0
  143. package/keyword/public-api.d.ts +3 -0
  144. package/list/list-option.component.d.ts +0 -1
  145. package/list/list.module.d.ts +2 -1
  146. package/list/list.property.d.ts +22 -2
  147. package/package.json +17 -1
  148. package/select/examples/en_US/default/default/README.md +1 -2
  149. package/select/examples/zh_CN/default/default/README.md +1 -2
  150. package/select/select-portal.component.d.ts +5 -1
  151. package/select/select.component.d.ts +2 -2
  152. package/select/select.property.d.ts +6 -1
  153. package/style/core/index.css +29 -0
  154. package/style/core/index.css.map +1 -1
  155. package/style/directives/index.scss +1 -0
  156. package/style/directives/keyword/index.scss +6 -0
  157. package/style/directives/keyword/mixin.scss +24 -0
  158. package/style/directives/keyword/param.scss +3 -0
  159. package/tree/tree-node.component.d.ts +4 -4
  160. package/tree/tree.component.d.ts +13 -1
  161. package/tree/tree.module.d.ts +2 -1
  162. package/tree/tree.property.d.ts +44 -14
  163. package/tree-select/examples/en_US/default/README.md +4 -0
  164. package/tree-select/examples/en_US/default/async/README.md +6 -0
  165. package/tree-select/examples/en_US/default/bordered/README.md +6 -0
  166. package/tree-select/examples/en_US/default/custom/README.md +6 -0
  167. package/tree-select/examples/en_US/default/default/README.md +6 -0
  168. package/tree-select/examples/en_US/default/disabled/README.md +6 -0
  169. package/tree-select/examples/en_US/default/label/README.md +6 -0
  170. package/tree-select/examples/en_US/default/multiple/README.md +6 -0
  171. package/tree-select/examples/en_US/default/path/README.md +6 -0
  172. package/tree-select/examples/en_US/default/required/README.md +6 -0
  173. package/tree-select/examples/en_US/default/scroll/README.md +6 -0
  174. package/tree-select/examples/en_US/default/search/README.md +7 -0
  175. package/tree-select/examples/en_US/default/size/README.md +6 -0
  176. package/tree-select/examples/zh_CN/default/README.md +4 -0
  177. package/tree-select/examples/zh_CN/default/async/README.md +6 -0
  178. package/tree-select/examples/zh_CN/default/bordered/README.md +6 -0
  179. package/tree-select/examples/zh_CN/default/custom/README.md +6 -0
  180. package/tree-select/examples/zh_CN/default/default/README.md +6 -0
  181. package/tree-select/examples/zh_CN/default/disabled/README.md +6 -0
  182. package/tree-select/examples/zh_CN/default/label/README.md +6 -0
  183. package/tree-select/examples/zh_CN/default/multiple/README.md +6 -0
  184. package/tree-select/examples/zh_CN/default/path/README.md +6 -0
  185. package/tree-select/examples/zh_CN/default/required/README.md +6 -0
  186. package/tree-select/examples/zh_CN/default/scroll/README.md +6 -0
  187. package/tree-select/examples/zh_CN/default/search/README.md +7 -0
  188. package/tree-select/examples/zh_CN/default/size/README.md +6 -0
  189. package/tree-select/index.d.ts +5 -0
  190. package/tree-select/public-api.d.ts +4 -0
  191. package/tree-select/tree-select-portal.component.d.ts +62 -0
  192. package/tree-select/tree-select.component.d.ts +101 -0
  193. package/tree-select/tree-select.module.d.ts +20 -0
  194. package/tree-select/tree-select.property.d.ts +202 -0
  195. package/upload/upload.component.d.ts +1 -1
  196. package/upload/upload.module.d.ts +3 -1
  197. package/upload/upload.property.d.ts +13 -3
@@ -1,5 +1,5 @@
1
1
  import { __decorate } from "tslib";
2
- import { XInputBoolean, XWithConfig } from '@ng-nest/ui/core';
2
+ import { XInputBoolean, XWithConfig, XInputNumber } from '@ng-nest/ui/core';
3
3
  import { Input, Output, EventEmitter, Component } from '@angular/core';
4
4
  import { XControlValueAccessor } from '@ng-nest/ui/base-form';
5
5
  import * as i0 from "@angular/core";
@@ -49,7 +49,7 @@ export class XUploadProperty extends XControlValueAccessor {
49
49
  }
50
50
  }
51
51
  /** @nocollapse */ XUploadProperty.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: XUploadProperty, deps: null, target: i0.ɵɵFactoryTarget.Component });
52
- /** @nocollapse */ XUploadProperty.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: XUploadProperty, selector: "ng-component", inputs: { text: "text", action: "action", accept: "accept", type: "type", imgCut: "imgCut", multiple: "multiple", download: "download", multipleModel: "multipleModel", filesTpl: "filesTpl" }, outputs: { removeClick: "removeClick", uploadReady: "uploadReady", uploading: "uploading", uploadSuccess: "uploadSuccess", uploadError: "uploadError" }, usesInheritance: true, ngImport: i0, template: '', isInline: true });
52
+ /** @nocollapse */ XUploadProperty.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: XUploadProperty, selector: "ng-component", inputs: { text: "text", action: "action", accept: "accept", type: "type", imgFallback: "imgFallback", imgCut: "imgCut", multiple: "multiple", download: "download", multipleModel: "multipleModel", filesTpl: "filesTpl", maxLimit: "maxLimit" }, outputs: { removeClick: "removeClick", uploadReady: "uploadReady", uploading: "uploading", uploadSuccess: "uploadSuccess", uploadError: "uploadError" }, usesInheritance: true, ngImport: i0, template: '', isInline: true });
53
53
  __decorate([
54
54
  XInputBoolean()
55
55
  ], XUploadProperty.prototype, "imgCut", void 0);
@@ -63,6 +63,9 @@ __decorate([
63
63
  __decorate([
64
64
  XWithConfig(X_CONFIG_NAME, 'cover')
65
65
  ], XUploadProperty.prototype, "multipleModel", void 0);
66
+ __decorate([
67
+ XInputNumber()
68
+ ], XUploadProperty.prototype, "maxLimit", void 0);
66
69
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: XUploadProperty, decorators: [{
67
70
  type: Component,
68
71
  args: [{ template: '' }]
@@ -74,6 +77,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImpor
74
77
  type: Input
75
78
  }], type: [{
76
79
  type: Input
80
+ }], imgFallback: [{
81
+ type: Input
77
82
  }], imgCut: [{
78
83
  type: Input
79
84
  }], multiple: [{
@@ -84,6 +89,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImpor
84
89
  type: Input
85
90
  }], filesTpl: [{
86
91
  type: Input
92
+ }], maxLimit: [{
93
+ type: Input
87
94
  }], removeClick: [{
88
95
  type: Output
89
96
  }], uploadReady: [{
@@ -101,4 +108,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImpor
101
108
  * @decorator component
102
109
  */
103
110
  export const XUploadPortalPrefix = 'x-upload-portal';
104
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsb2FkLnByb3BlcnR5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGliL25nLW5lc3QvdWkvdXBsb2FkL3VwbG9hZC5wcm9wZXJ0eS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLGFBQWEsRUFBMkMsV0FBVyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDdkcsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2RSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7QUFFOUQ7Ozs7R0FJRztBQUNILE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxVQUFVLENBQUM7QUFDeEMsTUFBTSxhQUFhLEdBQUcsUUFBUSxDQUFDO0FBRS9COztHQUVHO0FBRUgsTUFBTSxPQUFPLGVBQWdCLFNBQVEscUJBQW9DO0lBRHpFOztRQWlCRTs7O1dBR0c7UUFDTSxTQUFJLEdBQWdCLE1BQU0sQ0FBQztRQTBCcEM7OztXQUdHO1FBQ08sZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBd0MsQ0FBQztRQUNqRjs7O1dBR0c7UUFDTyxnQkFBVyxHQUFHLElBQUksWUFBWSxFQUFlLENBQUM7UUFDeEQ7OztXQUdHO1FBQ08sY0FBUyxHQUFHLElBQUksWUFBWSxFQUFlLENBQUM7UUFDdEQ7OztXQUdHO1FBQ08sa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBZSxDQUFDO1FBQzFEOzs7V0FHRztRQUNPLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQWUsQ0FBQztLQUN6RDs7K0hBdkVZLGVBQWU7bUhBQWYsZUFBZSxvYUFETCxFQUFFO0FBMEJHO0lBQWhCLGFBQWEsRUFBRTsrQ0FBbUI7QUFLbEI7SUFBaEIsYUFBYSxFQUFFO2lEQUFxQjtBQUt3QjtJQUE1RCxXQUFXLENBQVcsYUFBYSxFQUFFLElBQUksQ0FBQztJQUFFLGFBQWEsRUFBRTtpREFBcUI7QUFLdEI7SUFBMUQsV0FBVyxDQUF1QixhQUFhLEVBQUUsT0FBTyxDQUFDO3NEQUFzQzsyRkF4QzlGLGVBQWU7a0JBRDNCLFNBQVM7bUJBQUMsRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFOzhCQU1oQixJQUFJO3NCQUFaLEtBQUs7Z0JBS0csTUFBTTtzQkFBZCxLQUFLO2dCQUtHLE1BQU07c0JBQWQsS0FBSztnQkFLRyxJQUFJO3NCQUFaLEtBQUs7Z0JBS29CLE1BQU07c0JBQS9CLEtBQUs7Z0JBS29CLFFBQVE7c0JBQWpDLEtBQUs7Z0JBS2dFLFFBQVE7c0JBQTdFLEtBQUs7Z0JBSzhELGFBQWE7c0JBQWhGLEtBQUs7Z0JBS0csUUFBUTtzQkFBaEIsS0FBSztnQkFLSSxXQUFXO3NCQUFwQixNQUFNO2dCQUtHLFdBQVc7c0JBQXBCLE1BQU07Z0JBS0csU0FBUztzQkFBbEIsTUFBTTtnQkFLRyxhQUFhO3NCQUF0QixNQUFNO2dCQUtHLFdBQVc7c0JBQXBCLE1BQU07O0FBaURUOzs7O0dBSUc7QUFDSCxNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRyxpQkFBaUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFhJbnB1dEJvb2xlYW4sIFhCb29sZWFuLCBYVGVtcGxhdGUsIFhQb3NpdGlvbiwgWENvcm5lciwgWFdpdGhDb25maWcgfSBmcm9tICdAbmctbmVzdC91aS9jb3JlJztcclxuaW1wb3J0IHsgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgWENvbnRyb2xWYWx1ZUFjY2Vzc29yIH0gZnJvbSAnQG5nLW5lc3QvdWkvYmFzZS1mb3JtJztcclxuXHJcbi8qKlxyXG4gKiBVcGxvYWRcclxuICogQHNlbGVjdG9yIHgtdXBsb2FkXHJcbiAqIEBkZWNvcmF0b3IgY29tcG9uZW50XHJcbiAqL1xyXG5leHBvcnQgY29uc3QgWFVwbG9hZFByZWZpeCA9ICd4LXVwbG9hZCc7XHJcbmNvbnN0IFhfQ09ORklHX05BTUUgPSAndXBsb2FkJztcclxuXHJcbi8qKlxyXG4gKiBVcGxvYWQgUHJvcGVydHlcclxuICovXHJcbkBDb21wb25lbnQoeyB0ZW1wbGF0ZTogJycgfSlcclxuZXhwb3J0IGNsYXNzIFhVcGxvYWRQcm9wZXJ0eSBleHRlbmRzIFhDb250cm9sVmFsdWVBY2Nlc3NvcjxYVXBsb2FkTm9kZVtdPiB7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOaYvuekuuaWh+Wtl1xyXG4gICAqIEBlbl9VUyBEaXNwbGF5IHRleHRcclxuICAgKi9cclxuICBASW5wdXQoKSB0ZXh0PzogWFRlbXBsYXRlO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDor7fmsYLlnLDlnYBcclxuICAgKiBAZW5fVVMgUmVxdWVzdCBhZGRyZXNzXHJcbiAgICovXHJcbiAgQElucHV0KCkgYWN0aW9uPzogc3RyaW5nO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDkuIrkvKDmlofku7bnsbvlnovvvIzkuI7ljp/nlJ/nmoQgaW5wdXQgZmlsZSDnu4Tku7bkuIDoh7RcclxuICAgKiBAZW5fVVMgVXBsb2FkIGZpbGUgdHlwZSwgY29uc2lzdGVudCB3aXRoIG5hdGl2ZSBpbnB1dCBmaWxlIGNvbXBvbmVudFxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIGFjY2VwdD86IHN0cmluZztcclxuICAvKipcclxuICAgKiBAemhfQ04g5paH5Lu25pi+56S657G75Z6LXHJcbiAgICogQGVuX1VTIEZpbGUgZGlzcGxheSB0eXBlXHJcbiAgICovXHJcbiAgQElucHV0KCkgdHlwZTogWFVwbG9hZFR5cGUgPSAnbGlzdCc7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOWbvueJh+WJquijgVxyXG4gICAqIEBlbl9VUyBQaWN0dXJlIGNyb3BwaW5nXHJcbiAgICovXHJcbiAgQElucHV0KCkgQFhJbnB1dEJvb2xlYW4oKSBpbWdDdXQ/OiBYQm9vbGVhbjtcclxuICAvKipcclxuICAgKiBAemhfQ04g5aSa5paH5Lu25LiK5LygXHJcbiAgICogQGVuX1VTIE11bHRpcGxlIGZpbGUgdXBsb2FkXHJcbiAgICovXHJcbiAgQElucHV0KCkgQFhJbnB1dEJvb2xlYW4oKSBtdWx0aXBsZT86IFhCb29sZWFuO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDngrnlh7vkuIvovb1cclxuICAgKiBAZW5fVVMgY2xpY2sgZG93bmxvYWRcclxuICAgKi9cclxuICBASW5wdXQoKSBAWFdpdGhDb25maWc8WEJvb2xlYW4+KFhfQ09ORklHX05BTUUsIHRydWUpIEBYSW5wdXRCb29sZWFuKCkgZG93bmxvYWQhOiBYQm9vbGVhbjtcclxuICAvKipcclxuICAgKiBAemhfQ04g5aSa5qyh5LiK5Lyg55qE5qih5byP77yMY292ZXIg6KaG55uW546w5pyJIGFkZCDnu6fnu63mt7vliqBcclxuICAgKiBAZW5fVVMgRm9yIG1hbnkgdXBsb2FkIG1vZGUsICdjb3ZlcicgY292ZXJzIHRoZSBleGlzdGluZywgJ2FkZCcgY29udGludWUgdG8gYWRkXHJcbiAgICovXHJcbiAgQElucHV0KCkgQFhXaXRoQ29uZmlnPFhVcGxvYWRNdWx0aXBsZU1vZGVsPihYX0NPTkZJR19OQU1FLCAnY292ZXInKSBtdWx0aXBsZU1vZGVsITogWFVwbG9hZE11bHRpcGxlTW9kZWw7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOaWh+S7tuWIl+ihqOiHquWumuS5ieaYvuekuuaooeadv1xyXG4gICAqIEBlbl9VUyBGaWxlIGxpc3QgY3VzdG9tIGRpc3BsYXkgdGVtcGxhdGVcclxuICAgKi9cclxuICBASW5wdXQoKSBmaWxlc1RwbD86IFhUZW1wbGF0ZTtcclxuICAvKipcclxuICAgKiBAemhfQ04g5Yig6Zmk5oyJ6ZKu55qE5LqL5Lu2XHJcbiAgICogQGVuX1VTIERlbGV0ZSBidXR0b24gZXZlbnRcclxuICAgKi9cclxuICBAT3V0cHV0KCkgcmVtb3ZlQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPHsgZmlsZTogWFVwbG9hZE5vZGU7IGluZGV4OiBudW1iZXIgfT4oKTtcclxuICAvKipcclxuICAgKiBAemhfQ04g5byA5aeL5LiK5Lyg5LqL5Lu2XHJcbiAgICogQGVuX1VTIFN0YXJ0IHVwbG9hZCBldmVudFxyXG4gICAqL1xyXG4gIEBPdXRwdXQoKSB1cGxvYWRSZWFkeSA9IG5ldyBFdmVudEVtaXR0ZXI8WFVwbG9hZE5vZGU+KCk7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOato+WcqOS4iuS8oOS6i+S7tlxyXG4gICAqIEBlbl9VUyBTdGFydCB1cGxvYWQgZXZlbnRcclxuICAgKi9cclxuICBAT3V0cHV0KCkgdXBsb2FkaW5nID0gbmV3IEV2ZW50RW1pdHRlcjxYVXBsb2FkTm9kZT4oKTtcclxuICAvKipcclxuICAgKiBAemhfQ04g5LiK5Lyg5oiQ5Yqf5LqL5Lu2XHJcbiAgICogQGVuX1VTIFN0YXJ0IHVwbG9hZCBldmVudFxyXG4gICAqL1xyXG4gIEBPdXRwdXQoKSB1cGxvYWRTdWNjZXNzID0gbmV3IEV2ZW50RW1pdHRlcjxYVXBsb2FkTm9kZT4oKTtcclxuICAvKipcclxuICAgKiBAemhfQ04g5LiK5Lyg5aSx6LSl5LqL5Lu2XHJcbiAgICogQGVuX1VTIFN0YXJ0IHVwbG9hZCBldmVudFxyXG4gICAqL1xyXG4gIEBPdXRwdXQoKSB1cGxvYWRFcnJvciA9IG5ldyBFdmVudEVtaXR0ZXI8WFVwbG9hZE5vZGU+KCk7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBAemhfQ04gVXBsb2FkIOaVsOaNruWvueixoVxyXG4gKiBAZW5fVVMgVXBsb2FkIGRhdGEgb2JqZWN0XHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIFhVcGxvYWROb2RlIGV4dGVuZHMgRmlsZSB7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOWcsOWdgFxyXG4gICAqIEBlbl9VUyBhZGRyZXNzXHJcbiAgICovXHJcbiAgdXJsPzogc3RyaW5nO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDnirbmgIFcclxuICAgKiBAZW5fVVMgc3RhdHVzXHJcbiAgICovXHJcbiAgc3RhdGU/OiBYU3RhdGVUeXBlO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDkuIrkvKDov5vluqZcclxuICAgKiBAZW5fVVMgVXBsb2FkIHByb2dyZXNzXHJcbiAgICovXHJcbiAgcGVyY2VudD86IG51bWJlcjtcclxufVxyXG5cclxuLyoqXHJcbiAqIEB6aF9DTiDmlofku7bnirbmgIFcclxuICogQGVuX1VTIEZpbGUgc3RhdHVzXHJcbiAqL1xyXG5leHBvcnQgdHlwZSBYU3RhdGVUeXBlID0gJ3JlYWR5JyB8ICd1cGxvYWRpbmcnIHwgJ3N1Y2Nlc3MnIHwgJ2Vycm9yJztcclxuXHJcbi8qKlxyXG4gKiBAemhfQ04g5paH5Lu25pi+56S657G75Z6LXHJcbiAqIEBlbl9VUyBGaWxlIGRpc3BsYXkgdHlwZVxyXG4gKi9cclxuZXhwb3J0IHR5cGUgWFVwbG9hZFR5cGUgPSAnbGlzdCcgfCAnaW1nJztcclxuXHJcbi8qKlxyXG4gKiBAemhfQ04g5aSa5qyh5LiK5Lyg55qE5qih5byP77yMY292ZXIg6KaG55uW546w5pyJIGFkZCDnu6fnu63mt7vliqBcclxuICogQGVuX1VTIEZvciBtYW55IHVwbG9hZCBtb2RlLCAnY292ZXInIGNvdmVycyB0aGUgZXhpc3RpbmcsICdhZGQnIGNvbnRpbnVlIHRvIGFkZFxyXG4gKi9cclxuZXhwb3J0IHR5cGUgWFVwbG9hZE11bHRpcGxlTW9kZWwgPSAnY292ZXInIHwgJ2FkZCc7XHJcblxyXG4vKipcclxuICogQHpoX0NOIOWJquijgeeahOaWueS9jVxyXG4gKiBAZW5fVVMgVGFpbG9yZWQgb3JpZW50YXRpb25cclxuICovXHJcbmV4cG9ydCB0eXBlIFhVcGxvYWRDdXRUeXBlID0gWFBvc2l0aW9uIHwgWENvcm5lciB8ICcnO1xyXG5cclxuLyoqXHJcbiAqIFVwbG9hZCBQb3J0YWxcclxuICogQHNlbGVjdG9yIHgtdXBsb2FkLXBvcnRhbFxyXG4gKiBAZGVjb3JhdG9yIGNvbXBvbmVudFxyXG4gKi9cclxuZXhwb3J0IGNvbnN0IFhVcGxvYWRQb3J0YWxQcmVmaXggPSAneC11cGxvYWQtcG9ydGFsJztcclxuIl19
111
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsb2FkLnByb3BlcnR5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGliL25nLW5lc3QvdWkvdXBsb2FkL3VwbG9hZC5wcm9wZXJ0eS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLGFBQWEsRUFBMkMsV0FBVyxFQUFXLFlBQVksRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQzlILE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7O0FBRTlEOzs7O0dBSUc7QUFDSCxNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsVUFBVSxDQUFDO0FBQ3hDLE1BQU0sYUFBYSxHQUFHLFFBQVEsQ0FBQztBQUUvQjs7R0FFRztBQUVILE1BQU0sT0FBTyxlQUFnQixTQUFRLHFCQUFvQztJQUR6RTs7UUFpQkU7OztXQUdHO1FBQ00sU0FBSSxHQUFnQixNQUFNLENBQUM7UUFvQ3BDOzs7V0FHRztRQUNPLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQXdDLENBQUM7UUFDakY7OztXQUdHO1FBQ08sZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBZSxDQUFDO1FBQ3hEOzs7V0FHRztRQUNPLGNBQVMsR0FBRyxJQUFJLFlBQVksRUFBZSxDQUFDO1FBQ3REOzs7V0FHRztRQUNPLGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQWUsQ0FBQztRQUMxRDs7O1dBR0c7UUFDTyxnQkFBVyxHQUFHLElBQUksWUFBWSxFQUFlLENBQUM7S0FDekQ7OytIQWpGWSxlQUFlO21IQUFmLGVBQWUsc2RBREwsRUFBRTtBQStCRztJQUFoQixhQUFhLEVBQUU7K0NBQW1CO0FBS2xCO0lBQWhCLGFBQWEsRUFBRTtpREFBcUI7QUFLd0I7SUFBNUQsV0FBVyxDQUFXLGFBQWEsRUFBRSxJQUFJLENBQUM7SUFBRSxhQUFhLEVBQUU7aURBQXFCO0FBS3RCO0lBQTFELFdBQVcsQ0FBdUIsYUFBYSxFQUFFLE9BQU8sQ0FBQztzREFBc0M7QUFVaEY7SUFBZixZQUFZLEVBQUU7aURBQW9COzJGQXZEakMsZUFBZTtrQkFEM0IsU0FBUzttQkFBQyxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUU7OEJBTWhCLElBQUk7c0JBQVosS0FBSztnQkFLRyxNQUFNO3NCQUFkLEtBQUs7Z0JBS0csTUFBTTtzQkFBZCxLQUFLO2dCQUtHLElBQUk7c0JBQVosS0FBSztnQkFLRyxXQUFXO3NCQUFuQixLQUFLO2dCQUtvQixNQUFNO3NCQUEvQixLQUFLO2dCQUtvQixRQUFRO3NCQUFqQyxLQUFLO2dCQUtnRSxRQUFRO3NCQUE3RSxLQUFLO2dCQUs4RCxhQUFhO3NCQUFoRixLQUFLO2dCQUtHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBS21CLFFBQVE7c0JBQWhDLEtBQUs7Z0JBS0ksV0FBVztzQkFBcEIsTUFBTTtnQkFLRyxXQUFXO3NCQUFwQixNQUFNO2dCQUtHLFNBQVM7c0JBQWxCLE1BQU07Z0JBS0csYUFBYTtzQkFBdEIsTUFBTTtnQkFLRyxXQUFXO3NCQUFwQixNQUFNOztBQWlEVDs7OztHQUlHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUcsaUJBQWlCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBYSW5wdXRCb29sZWFuLCBYQm9vbGVhbiwgWFRlbXBsYXRlLCBYUG9zaXRpb24sIFhDb3JuZXIsIFhXaXRoQ29uZmlnLCBYTnVtYmVyLCBYSW5wdXROdW1iZXIgfSBmcm9tICdAbmctbmVzdC91aS9jb3JlJztcclxuaW1wb3J0IHsgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgWENvbnRyb2xWYWx1ZUFjY2Vzc29yIH0gZnJvbSAnQG5nLW5lc3QvdWkvYmFzZS1mb3JtJztcclxuXHJcbi8qKlxyXG4gKiBVcGxvYWRcclxuICogQHNlbGVjdG9yIHgtdXBsb2FkXHJcbiAqIEBkZWNvcmF0b3IgY29tcG9uZW50XHJcbiAqL1xyXG5leHBvcnQgY29uc3QgWFVwbG9hZFByZWZpeCA9ICd4LXVwbG9hZCc7XHJcbmNvbnN0IFhfQ09ORklHX05BTUUgPSAndXBsb2FkJztcclxuXHJcbi8qKlxyXG4gKiBVcGxvYWQgUHJvcGVydHlcclxuICovXHJcbkBDb21wb25lbnQoeyB0ZW1wbGF0ZTogJycgfSlcclxuZXhwb3J0IGNsYXNzIFhVcGxvYWRQcm9wZXJ0eSBleHRlbmRzIFhDb250cm9sVmFsdWVBY2Nlc3NvcjxYVXBsb2FkTm9kZVtdPiB7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOaYvuekuuaWh+Wtl1xyXG4gICAqIEBlbl9VUyBEaXNwbGF5IHRleHRcclxuICAgKi9cclxuICBASW5wdXQoKSB0ZXh0PzogWFRlbXBsYXRlO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDor7fmsYLlnLDlnYBcclxuICAgKiBAZW5fVVMgUmVxdWVzdCBhZGRyZXNzXHJcbiAgICovXHJcbiAgQElucHV0KCkgYWN0aW9uPzogc3RyaW5nO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDkuIrkvKDmlofku7bnsbvlnovvvIzkuI7ljp/nlJ/nmoQgaW5wdXQgZmlsZSDnu4Tku7bkuIDoh7RcclxuICAgKiBAZW5fVVMgVXBsb2FkIGZpbGUgdHlwZSwgY29uc2lzdGVudCB3aXRoIG5hdGl2ZSBpbnB1dCBmaWxlIGNvbXBvbmVudFxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIGFjY2VwdD86IHN0cmluZztcclxuICAvKipcclxuICAgKiBAemhfQ04g5paH5Lu25pi+56S657G75Z6LXHJcbiAgICogQGVuX1VTIEZpbGUgZGlzcGxheSB0eXBlXHJcbiAgICovXHJcbiAgQElucHV0KCkgdHlwZTogWFVwbG9hZFR5cGUgPSAnbGlzdCc7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOWbvueJh+exu+Wei+S4i+mdouWKoOi9veWksei0peaYvuekulxyXG4gICAqIEBlbl9VUyBQaG90byB0eXBlIGJlbG93IGxvYWRpbmcgZmFpbGVkIGRpc3BsYXlcclxuICAgKi9cclxuICBASW5wdXQoKSBpbWdGYWxsYmFjaz86IHN0cmluZztcclxuICAvKipcclxuICAgKiBAemhfQ04g5Zu+54mH5Ymq6KOBXHJcbiAgICogQGVuX1VTIFBpY3R1cmUgY3JvcHBpbmdcclxuICAgKi9cclxuICBASW5wdXQoKSBAWElucHV0Qm9vbGVhbigpIGltZ0N1dD86IFhCb29sZWFuO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDlpJrmlofku7bkuIrkvKBcclxuICAgKiBAZW5fVVMgTXVsdGlwbGUgZmlsZSB1cGxvYWRcclxuICAgKi9cclxuICBASW5wdXQoKSBAWElucHV0Qm9vbGVhbigpIG11bHRpcGxlPzogWEJvb2xlYW47XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOeCueWHu+S4i+i9vVxyXG4gICAqIEBlbl9VUyBjbGljayBkb3dubG9hZFxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIEBYV2l0aENvbmZpZzxYQm9vbGVhbj4oWF9DT05GSUdfTkFNRSwgdHJ1ZSkgQFhJbnB1dEJvb2xlYW4oKSBkb3dubG9hZCE6IFhCb29sZWFuO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDlpJrmrKHkuIrkvKDnmoTmqKHlvI/vvIxjb3ZlciDopobnm5bnjrDmnIkgYWRkIOe7p+e7rea3u+WKoFxyXG4gICAqIEBlbl9VUyBGb3IgbWFueSB1cGxvYWQgbW9kZSwgJ2NvdmVyJyBjb3ZlcnMgdGhlIGV4aXN0aW5nLCAnYWRkJyBjb250aW51ZSB0byBhZGRcclxuICAgKi9cclxuICBASW5wdXQoKSBAWFdpdGhDb25maWc8WFVwbG9hZE11bHRpcGxlTW9kZWw+KFhfQ09ORklHX05BTUUsICdjb3ZlcicpIG11bHRpcGxlTW9kZWwhOiBYVXBsb2FkTXVsdGlwbGVNb2RlbDtcclxuICAvKipcclxuICAgKiBAemhfQ04g5paH5Lu25YiX6KGo6Ieq5a6a5LmJ5pi+56S65qih5p2/XHJcbiAgICogQGVuX1VTIEZpbGUgbGlzdCBjdXN0b20gZGlzcGxheSB0ZW1wbGF0ZVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIGZpbGVzVHBsPzogWFRlbXBsYXRlO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDpmZDliLbljZXmrKHkuIrkvKDmlofku7bkuKrmlbDvvIzlj6rmnInlvIDlkK/lpJrmlofku7bkuIrkvKAgbXVsdGlwbGUg5pe255Sf5pWI77yM6buY6K6k5LiN5YGa6ZmQ5Yi2XHJcbiAgICogQGVuX1VTIExpbWl0IHRoZSBudW1iZXIgb2YgZmlsZXMgdXBsb2FkZWQgZmlsZXMuIERvIG5vdCByZXN0cmljdCB0aGUgZGVmYXVsdFxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIEBYSW5wdXROdW1iZXIoKSBtYXhMaW1pdD86IFhOdW1iZXI7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOWIoOmZpOaMiemSrueahOS6i+S7tlxyXG4gICAqIEBlbl9VUyBEZWxldGUgYnV0dG9uIGV2ZW50XHJcbiAgICovXHJcbiAgQE91dHB1dCgpIHJlbW92ZUNsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjx7IGZpbGU6IFhVcGxvYWROb2RlOyBpbmRleDogbnVtYmVyIH0+KCk7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOW8gOWni+S4iuS8oOS6i+S7tlxyXG4gICAqIEBlbl9VUyBTdGFydCB1cGxvYWQgZXZlbnRcclxuICAgKi9cclxuICBAT3V0cHV0KCkgdXBsb2FkUmVhZHkgPSBuZXcgRXZlbnRFbWl0dGVyPFhVcGxvYWROb2RlPigpO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDmraPlnKjkuIrkvKDkuovku7ZcclxuICAgKiBAZW5fVVMgU3RhcnQgdXBsb2FkIGV2ZW50XHJcbiAgICovXHJcbiAgQE91dHB1dCgpIHVwbG9hZGluZyA9IG5ldyBFdmVudEVtaXR0ZXI8WFVwbG9hZE5vZGU+KCk7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOS4iuS8oOaIkOWKn+S6i+S7tlxyXG4gICAqIEBlbl9VUyBTdGFydCB1cGxvYWQgZXZlbnRcclxuICAgKi9cclxuICBAT3V0cHV0KCkgdXBsb2FkU3VjY2VzcyA9IG5ldyBFdmVudEVtaXR0ZXI8WFVwbG9hZE5vZGU+KCk7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOS4iuS8oOWksei0peS6i+S7tlxyXG4gICAqIEBlbl9VUyBTdGFydCB1cGxvYWQgZXZlbnRcclxuICAgKi9cclxuICBAT3V0cHV0KCkgdXBsb2FkRXJyb3IgPSBuZXcgRXZlbnRFbWl0dGVyPFhVcGxvYWROb2RlPigpO1xyXG59XHJcblxyXG4vKipcclxuICogQHpoX0NOIFVwbG9hZCDmlbDmja7lr7nosaFcclxuICogQGVuX1VTIFVwbG9hZCBkYXRhIG9iamVjdFxyXG4gKi9cclxuZXhwb3J0IGludGVyZmFjZSBYVXBsb2FkTm9kZSBleHRlbmRzIEZpbGUge1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDlnLDlnYBcclxuICAgKiBAZW5fVVMgYWRkcmVzc1xyXG4gICAqL1xyXG4gIHVybD86IHN0cmluZztcclxuICAvKipcclxuICAgKiBAemhfQ04g54q25oCBXHJcbiAgICogQGVuX1VTIHN0YXR1c1xyXG4gICAqL1xyXG4gIHN0YXRlPzogWFN0YXRlVHlwZTtcclxuICAvKipcclxuICAgKiBAemhfQ04g5LiK5Lyg6L+b5bqmXHJcbiAgICogQGVuX1VTIFVwbG9hZCBwcm9ncmVzc1xyXG4gICAqL1xyXG4gIHBlcmNlbnQ/OiBYTnVtYmVyO1xyXG59XHJcblxyXG4vKipcclxuICogQHpoX0NOIOaWh+S7tueKtuaAgVxyXG4gKiBAZW5fVVMgRmlsZSBzdGF0dXNcclxuICovXHJcbmV4cG9ydCB0eXBlIFhTdGF0ZVR5cGUgPSAncmVhZHknIHwgJ3VwbG9hZGluZycgfCAnc3VjY2VzcycgfCAnZXJyb3InO1xyXG5cclxuLyoqXHJcbiAqIEB6aF9DTiDmlofku7bmmL7npLrnsbvlnotcclxuICogQGVuX1VTIEZpbGUgZGlzcGxheSB0eXBlXHJcbiAqL1xyXG5leHBvcnQgdHlwZSBYVXBsb2FkVHlwZSA9ICdsaXN0JyB8ICdpbWcnO1xyXG5cclxuLyoqXHJcbiAqIEB6aF9DTiDlpJrmrKHkuIrkvKDnmoTmqKHlvI/vvIxjb3ZlciDopobnm5bnjrDmnIkgYWRkIOe7p+e7rea3u+WKoFxyXG4gKiBAZW5fVVMgRm9yIG1hbnkgdXBsb2FkIG1vZGUsICdjb3ZlcicgY292ZXJzIHRoZSBleGlzdGluZywgJ2FkZCcgY29udGludWUgdG8gYWRkXHJcbiAqL1xyXG5leHBvcnQgdHlwZSBYVXBsb2FkTXVsdGlwbGVNb2RlbCA9ICdjb3ZlcicgfCAnYWRkJztcclxuXHJcbi8qKlxyXG4gKiBAemhfQ04g5Ymq6KOB55qE5pa55L2NXHJcbiAqIEBlbl9VUyBUYWlsb3JlZCBvcmllbnRhdGlvblxyXG4gKi9cclxuZXhwb3J0IHR5cGUgWFVwbG9hZEN1dFR5cGUgPSBYUG9zaXRpb24gfCBYQ29ybmVyIHwgJyc7XHJcblxyXG4vKipcclxuICogVXBsb2FkIFBvcnRhbFxyXG4gKiBAc2VsZWN0b3IgeC11cGxvYWQtcG9ydGFsXHJcbiAqIEBkZWNvcmF0b3IgY29tcG9uZW50XHJcbiAqL1xyXG5leHBvcnQgY29uc3QgWFVwbG9hZFBvcnRhbFByZWZpeCA9ICd4LXVwbG9hZC1wb3J0YWwnO1xyXG4iXX0=
@@ -1,10 +1,11 @@
1
1
  import * as i0 from '@angular/core';
2
- import { Component, Input, ViewEncapsulation, ChangeDetectionStrategy, NgModule } from '@angular/core';
2
+ import { Component, Input, ViewEncapsulation, ChangeDetectionStrategy, Inject, ViewChild, HostBinding, NgModule } from '@angular/core';
3
3
  import { __decorate } from 'tslib';
4
4
  import * as i1 from '@ng-nest/ui/core';
5
- import { XProperty, XWithConfig, XIsEmpty } from '@ng-nest/ui/core';
5
+ import { XProperty, XWithConfig, XInputNumber, XIsChange, XIsEmpty, XIsNumber, XIsString, XIsObject, XResize } from '@ng-nest/ui/core';
6
6
  import * as i2 from '@angular/common';
7
- import { CommonModule } from '@angular/common';
7
+ import { DOCUMENT, CommonModule } from '@angular/common';
8
+ import { Subject, takeUntil } from 'rxjs';
8
9
  import * as i3 from '@ng-nest/ui/outlet';
9
10
  import { XOutletModule } from '@ng-nest/ui/outlet';
10
11
  import * as i4 from '@ng-nest/ui/icon';
@@ -23,7 +24,7 @@ const X_CONFIG_NAME = 'avatar';
23
24
  class XAvatarProperty extends XProperty {
24
25
  }
25
26
  /** @nocollapse */ XAvatarProperty.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: XAvatarProperty, deps: null, target: i0.ɵɵFactoryTarget.Component });
26
- /** @nocollapse */ XAvatarProperty.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: XAvatarProperty, selector: "ng-component", inputs: { label: "label", size: "size", icon: "icon", shape: "shape", src: "src", fit: "fit" }, usesInheritance: true, ngImport: i0, template: '', isInline: true });
27
+ /** @nocollapse */ XAvatarProperty.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: XAvatarProperty, selector: "ng-component", inputs: { label: "label", size: "size", icon: "icon", shape: "shape", src: "src", fit: "fit", gap: "gap", backgroundColor: "backgroundColor" }, usesInheritance: true, ngImport: i0, template: '', isInline: true });
27
28
  __decorate([
28
29
  XWithConfig(X_CONFIG_NAME, 'medium')
29
30
  ], XAvatarProperty.prototype, "size", void 0);
@@ -33,6 +34,13 @@ __decorate([
33
34
  __decorate([
34
35
  XWithConfig(X_CONFIG_NAME, 'cover')
35
36
  ], XAvatarProperty.prototype, "fit", void 0);
37
+ __decorate([
38
+ XWithConfig(X_CONFIG_NAME, 4),
39
+ XInputNumber()
40
+ ], XAvatarProperty.prototype, "gap", void 0);
41
+ __decorate([
42
+ XWithConfig(X_CONFIG_NAME, '#999999')
43
+ ], XAvatarProperty.prototype, "backgroundColor", void 0);
36
44
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: XAvatarProperty, decorators: [{
37
45
  type: Component,
38
46
  args: [{ template: '' }]
@@ -48,48 +56,166 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImpor
48
56
  type: Input
49
57
  }], fit: [{
50
58
  type: Input
51
- }] } });
59
+ }], gap: [{
60
+ type: Input
61
+ }], backgroundColor: [{
62
+ type: Input
63
+ }] } });
64
+ /**
65
+ * Avatar Group
66
+ * @selector x-avatar-group
67
+ * @decorator component
68
+ */
69
+ const XAvatarGroupPrefix = 'x-avatar-group';
70
+ /**
71
+ * Avatar Group Property
72
+ */
73
+ class XAvatarGroupProperty extends XProperty {
74
+ }
75
+ /** @nocollapse */ XAvatarGroupProperty.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: XAvatarGroupProperty, deps: null, target: i0.ɵɵFactoryTarget.Component });
76
+ /** @nocollapse */ XAvatarGroupProperty.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: XAvatarGroupProperty, selector: "ng-component", usesInheritance: true, ngImport: i0, template: '', isInline: true });
77
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: XAvatarGroupProperty, decorators: [{
78
+ type: Component,
79
+ args: [{ template: '' }]
80
+ }] });
52
81
 
53
82
  class XAvatarComponent extends XAvatarProperty {
54
- constructor(renderer, elementRef, cdr, configService) {
83
+ constructor(renderer, elementRef, cdr, configService, document) {
55
84
  super();
56
85
  this.renderer = renderer;
57
86
  this.elementRef = elementRef;
58
87
  this.cdr = cdr;
59
88
  this.configService = configService;
60
89
  this.isImgError = false;
90
+ this.styleMap = {};
91
+ this._unSubject = new Subject();
92
+ this.document = document;
93
+ }
94
+ ngOnDestroy() {
95
+ var _a;
96
+ this._unSubject.next();
97
+ this._unSubject.complete();
98
+ (_a = this._resizeObserver) === null || _a === void 0 ? void 0 : _a.disconnect();
61
99
  }
62
- ngOnInit() {
100
+ ngOnChanges(changes) {
101
+ let { label } = changes;
102
+ XIsChange(label) && setTimeout(() => this.setLabel());
103
+ }
104
+ ngAfterViewInit() {
63
105
  this.setClassMap();
106
+ this.setLabel();
64
107
  }
65
108
  setClassMap() {
66
109
  this.classMap = {
67
- [`${XAvatarPrefix}-${this.shape}`]: !XIsEmpty(this.shape),
68
- [`${XAvatarPrefix}-${this.size}`]: !XIsEmpty(this.size)
110
+ [`${XAvatarPrefix}-${this.shape}`]: !XIsEmpty(this.shape)
69
111
  };
112
+ if (XIsNumber(this.size)) {
113
+ const nsize = Number(this.size);
114
+ this.setStyleMap(nsize);
115
+ this.cdr.detectChanges();
116
+ }
117
+ else if (XIsString(this.size)) {
118
+ this.classMap[`${XAvatarPrefix}-${this.size}`] = !XIsEmpty(this.size);
119
+ this.cdr.detectChanges();
120
+ }
121
+ else if (XIsObject(this.size)) {
122
+ this.classMap[`${XAvatarPrefix}-medium`] = true;
123
+ const sz = this.size;
124
+ let { xs, sm, md, lg, xl } = sz;
125
+ if (!xs && !sm && !md && !lg && !xl)
126
+ return;
127
+ XResize(this.document.documentElement)
128
+ .pipe(takeUntil(this._unSubject))
129
+ .subscribe((x) => {
130
+ this._resizeObserver = x.resizeObserver;
131
+ const width = this.document.documentElement.clientWidth;
132
+ let nsize = 40;
133
+ if (xs && width < 768) {
134
+ nsize = xs;
135
+ }
136
+ if (sm && width >= 768) {
137
+ nsize = sm;
138
+ }
139
+ if (md && width >= 992) {
140
+ nsize = md;
141
+ }
142
+ if (lg && width >= 1200) {
143
+ nsize = lg;
144
+ }
145
+ if (xl && width >= 1920) {
146
+ nsize = xl;
147
+ }
148
+ this.setStyleMap(nsize);
149
+ this.cdr.detectChanges();
150
+ this.setLabel();
151
+ });
152
+ }
153
+ }
154
+ setStyleMap(size) {
155
+ this.styleMap = {
156
+ height: `${size}px`,
157
+ width: `${size}px`,
158
+ lineHeight: `${size}px`,
159
+ fontSize: `${size * 0.6}px`
160
+ };
161
+ }
162
+ setLabel() {
163
+ if (!this.label)
164
+ return;
165
+ if (!this.elementRef || !this.labelRef)
166
+ return;
167
+ const eleWidth = this.elementRef.nativeElement.clientWidth;
168
+ const labelWidth = this.labelRef.nativeElement.clientWidth;
169
+ let scale = (eleWidth - Number(this.gap) * 2) / labelWidth;
170
+ scale = scale > 1 ? 1 : scale;
171
+ this.renderer.setStyle(this.labelRef.nativeElement, 'transform', `scale(${scale})`);
70
172
  }
71
173
  imgError() {
72
174
  this.isImgError = true;
73
175
  this.cdr.detectChanges();
74
176
  }
75
177
  }
76
- /** @nocollapse */ XAvatarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: XAvatarComponent, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i1.XConfigService }], target: i0.ɵɵFactoryTarget.Component });
77
- /** @nocollapse */ XAvatarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: XAvatarComponent, selector: "x-avatar", usesInheritance: true, ngImport: i0, template: "<span #avatar class=\"x-avatar\" [ngClass]=\"classMap\" [class.x-avatar-error]=\"isImgError\">\r\n <img *ngIf=\"src && !isImgError\" [src]=\"src\" [style.object-fit]=\"fit\" (error)=\"imgError()\" />\r\n <x-icon *ngIf=\"icon\" [type]=\"icon\"></x-icon>\r\n <x-icon *ngIf=\"isImgError\" type=\"fto-image\"></x-icon>\r\n <span *xOutlet=\"label; context: { $label: label }\">\r\n {{ label }}\r\n </span>\r\n</span>\r\n", styles: ["x-avatar{display:flex}.x-avatar{margin:0;padding:0;font-size:var(--x-font-size);display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;text-align:center;overflow:hidden;color:var(--x-background-100);background-color:var(--x-text-500)}.x-avatar>img{display:block;height:100%}.x-avatar-circle{border-radius:50%}.x-avatar-square{border-radius:var(--x-border-radius)}.x-avatar-error>img{height:initial}.x-avatar-big{height:3.5rem;width:3.5rem;line-height:3.5rem;font-size:2.1rem}.x-avatar-large{height:3rem;width:3rem;line-height:3rem;font-size:1.8rem}.x-avatar-medium{height:2.5rem;width:2.5rem;line-height:2.5rem;font-size:1.5rem}.x-avatar-small{height:2rem;width:2rem;line-height:2rem;font-size:1.2rem}.x-avatar-mini{height:1.5rem;width:1.5rem;line-height:1.5rem;font-size:.9rem}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.XOutletDirective, selector: "[xOutlet]", inputs: ["xOutletContext", "xOutlet"] }, { kind: "component", type: i4.XIconComponent, selector: "x-icon" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
178
+ /** @nocollapse */ XAvatarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: XAvatarComponent, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i1.XConfigService }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Component });
179
+ /** @nocollapse */ XAvatarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: XAvatarComponent, selector: "x-avatar", viewQueries: [{ propertyName: "labelRef", first: true, predicate: ["labelRef"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<span\r\n #avatar\r\n class=\"x-avatar\"\r\n [class.x-avatar-label]=\"label\"\r\n [ngClass]=\"classMap\"\r\n [class.x-avatar-error]=\"isImgError\"\r\n [ngStyle]=\"styleMap\"\r\n [style.backgroundColor]=\"backgroundColor\"\r\n>\r\n <img *ngIf=\"src && !isImgError\" [src]=\"src\" [style.object-fit]=\"fit\" (error)=\"imgError()\" />\r\n <x-icon *ngIf=\"icon\" [type]=\"icon\"></x-icon>\r\n <x-icon *ngIf=\"isImgError\" type=\"fto-image\"></x-icon>\r\n <span #labelRef *xOutlet=\"label; context: { $label: label }\">\r\n {{ label }}\r\n </span>\r\n</span>\r\n", styles: ["x-avatar{display:flex}.x-avatar{margin:0;padding:0;font-size:var(--x-font-size);display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;text-align:center;overflow:hidden;color:var(--x-background-100)}.x-avatar>img{display:block;height:100%}.x-avatar-circle{border-radius:50%}.x-avatar-square{border-radius:var(--x-border-radius)}.x-avatar-error>img{height:initial}.x-avatar>span{white-space:nowrap}.x-avatar-big{height:3.5rem;width:3.5rem;line-height:3.5rem;font-size:2.1rem}.x-avatar-large{height:3rem;width:3rem;line-height:3rem;font-size:1.8rem}.x-avatar-medium{height:2.5rem;width:2.5rem;line-height:2.5rem;font-size:1.5rem}.x-avatar-small{height:2rem;width:2rem;line-height:2rem;font-size:1.2rem}.x-avatar-mini{height:1.5rem;width:1.5rem;line-height:1.5rem;font-size:.9rem}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i3.XOutletDirective, selector: "[xOutlet]", inputs: ["xOutletContext", "xOutlet"] }, { kind: "component", type: i4.XIconComponent, selector: "x-icon" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
78
180
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: XAvatarComponent, decorators: [{
79
181
  type: Component,
80
- args: [{ selector: `${XAvatarPrefix}`, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<span #avatar class=\"x-avatar\" [ngClass]=\"classMap\" [class.x-avatar-error]=\"isImgError\">\r\n <img *ngIf=\"src && !isImgError\" [src]=\"src\" [style.object-fit]=\"fit\" (error)=\"imgError()\" />\r\n <x-icon *ngIf=\"icon\" [type]=\"icon\"></x-icon>\r\n <x-icon *ngIf=\"isImgError\" type=\"fto-image\"></x-icon>\r\n <span *xOutlet=\"label; context: { $label: label }\">\r\n {{ label }}\r\n </span>\r\n</span>\r\n", styles: ["x-avatar{display:flex}.x-avatar{margin:0;padding:0;font-size:var(--x-font-size);display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;text-align:center;overflow:hidden;color:var(--x-background-100);background-color:var(--x-text-500)}.x-avatar>img{display:block;height:100%}.x-avatar-circle{border-radius:50%}.x-avatar-square{border-radius:var(--x-border-radius)}.x-avatar-error>img{height:initial}.x-avatar-big{height:3.5rem;width:3.5rem;line-height:3.5rem;font-size:2.1rem}.x-avatar-large{height:3rem;width:3rem;line-height:3rem;font-size:1.8rem}.x-avatar-medium{height:2.5rem;width:2.5rem;line-height:2.5rem;font-size:1.5rem}.x-avatar-small{height:2rem;width:2rem;line-height:2rem;font-size:1.2rem}.x-avatar-mini{height:1.5rem;width:1.5rem;line-height:1.5rem;font-size:.9rem}\n"] }]
81
- }], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i1.XConfigService }]; } });
182
+ args: [{ selector: `${XAvatarPrefix}`, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<span\r\n #avatar\r\n class=\"x-avatar\"\r\n [class.x-avatar-label]=\"label\"\r\n [ngClass]=\"classMap\"\r\n [class.x-avatar-error]=\"isImgError\"\r\n [ngStyle]=\"styleMap\"\r\n [style.backgroundColor]=\"backgroundColor\"\r\n>\r\n <img *ngIf=\"src && !isImgError\" [src]=\"src\" [style.object-fit]=\"fit\" (error)=\"imgError()\" />\r\n <x-icon *ngIf=\"icon\" [type]=\"icon\"></x-icon>\r\n <x-icon *ngIf=\"isImgError\" type=\"fto-image\"></x-icon>\r\n <span #labelRef *xOutlet=\"label; context: { $label: label }\">\r\n {{ label }}\r\n </span>\r\n</span>\r\n", styles: ["x-avatar{display:flex}.x-avatar{margin:0;padding:0;font-size:var(--x-font-size);display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;text-align:center;overflow:hidden;color:var(--x-background-100)}.x-avatar>img{display:block;height:100%}.x-avatar-circle{border-radius:50%}.x-avatar-square{border-radius:var(--x-border-radius)}.x-avatar-error>img{height:initial}.x-avatar>span{white-space:nowrap}.x-avatar-big{height:3.5rem;width:3.5rem;line-height:3.5rem;font-size:2.1rem}.x-avatar-large{height:3rem;width:3rem;line-height:3rem;font-size:1.8rem}.x-avatar-medium{height:2.5rem;width:2.5rem;line-height:2.5rem;font-size:1.5rem}.x-avatar-small{height:2rem;width:2rem;line-height:2rem;font-size:1.2rem}.x-avatar-mini{height:1.5rem;width:1.5rem;line-height:1.5rem;font-size:.9rem}\n"] }]
183
+ }], ctorParameters: function () {
184
+ return [{ type: i0.Renderer2 }, { type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i1.XConfigService }, { type: undefined, decorators: [{
185
+ type: Inject,
186
+ args: [DOCUMENT]
187
+ }] }];
188
+ }, propDecorators: { labelRef: [{
189
+ type: ViewChild,
190
+ args: ['labelRef']
191
+ }] } });
192
+
193
+ class XAvatarGroupComponent extends XAvatarGroupProperty {
194
+ constructor() {
195
+ super();
196
+ this._has = true;
197
+ }
198
+ }
199
+ /** @nocollapse */ XAvatarGroupComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: XAvatarGroupComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
200
+ /** @nocollapse */ XAvatarGroupComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: XAvatarGroupComponent, selector: "x-avatar-group", host: { properties: { "class.x-avatar-group": "this._has" } }, usesInheritance: true, ngImport: i0, template: "<ng-content></ng-content>\r\n", styles: ["x-avatar-group{display:flex}.x-avatar-group{margin:0;padding:0}.x-avatar-group>x-avatar{z-index:0}.x-avatar-group>x-avatar:not(:first-child){margin-left:-.5rem}.x-avatar-group>x-avatar .x-avatar{border:var(--x-border-width) var(--x-border-style) var(--x-white)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
201
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: XAvatarGroupComponent, decorators: [{
202
+ type: Component,
203
+ args: [{ selector: `${XAvatarGroupPrefix}`, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-content></ng-content>\r\n", styles: ["x-avatar-group{display:flex}.x-avatar-group{margin:0;padding:0}.x-avatar-group>x-avatar{z-index:0}.x-avatar-group>x-avatar:not(:first-child){margin-left:-.5rem}.x-avatar-group>x-avatar .x-avatar{border:var(--x-border-width) var(--x-border-style) var(--x-white)}\n"] }]
204
+ }], ctorParameters: function () { return []; }, propDecorators: { _has: [{
205
+ type: HostBinding,
206
+ args: ['class.x-avatar-group']
207
+ }] } });
82
208
 
83
209
  class XAvatarModule {
84
210
  }
85
211
  /** @nocollapse */ XAvatarModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: XAvatarModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
86
- /** @nocollapse */ XAvatarModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.0.2", ngImport: i0, type: XAvatarModule, declarations: [XAvatarComponent, XAvatarProperty], imports: [CommonModule, XOutletModule, XIconModule], exports: [XAvatarComponent] });
212
+ /** @nocollapse */ XAvatarModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.0.2", ngImport: i0, type: XAvatarModule, declarations: [XAvatarComponent, XAvatarProperty, XAvatarGroupComponent, XAvatarGroupProperty], imports: [CommonModule, XOutletModule, XIconModule], exports: [XAvatarComponent, XAvatarGroupComponent] });
87
213
  /** @nocollapse */ XAvatarModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: XAvatarModule, imports: [CommonModule, XOutletModule, XIconModule] });
88
214
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: XAvatarModule, decorators: [{
89
215
  type: NgModule,
90
216
  args: [{
91
- declarations: [XAvatarComponent, XAvatarProperty],
92
- exports: [XAvatarComponent],
217
+ declarations: [XAvatarComponent, XAvatarProperty, XAvatarGroupComponent, XAvatarGroupProperty],
218
+ exports: [XAvatarComponent, XAvatarGroupComponent],
93
219
  imports: [CommonModule, XOutletModule, XIconModule]
94
220
  }]
95
221
  }] });
@@ -98,5 +224,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImpor
98
224
  * Generated bundle index. Do not edit.
99
225
  */
100
226
 
101
- export { XAvatarComponent, XAvatarModule, XAvatarPrefix, XAvatarProperty };
227
+ export { XAvatarComponent, XAvatarGroupComponent, XAvatarGroupPrefix, XAvatarGroupProperty, XAvatarModule, XAvatarPrefix, XAvatarProperty };
102
228
  //# sourceMappingURL=ng-nest-ui-avatar.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"ng-nest-ui-avatar.mjs","sources":["../../../../lib/ng-nest/ui/avatar/avatar.property.ts","../../../../lib/ng-nest/ui/avatar/avatar.component.ts","../../../../lib/ng-nest/ui/avatar/avatar.component.html","../../../../lib/ng-nest/ui/avatar/avatar.module.ts","../../../../lib/ng-nest/ui/avatar/ng-nest-ui-avatar.ts"],"sourcesContent":["import { XSize, XTemplate, XProperty, XWithConfig, XShape, XFit } from '@ng-nest/ui/core';\r\nimport { Input, Component } from '@angular/core';\r\n\r\n/**\r\n * Avatar\r\n * @selector x-avatar\r\n * @decorator component\r\n */\r\nexport const XAvatarPrefix = 'x-avatar';\r\nconst X_CONFIG_NAME = 'avatar';\r\n\r\n/**\r\n * Avatar Property\r\n */\r\n@Component({ template: '' })\r\nexport class XAvatarProperty extends XProperty {\r\n /**\r\n * @zh_CN 显示字符\r\n * @en_US Display characters\r\n */\r\n @Input() label?: XTemplate;\r\n /**\r\n * @zh_CN 尺寸\r\n * @en_US Size\r\n */\r\n @Input() @XWithConfig<XSize>(X_CONFIG_NAME, 'medium') size?: XSize;\r\n /**\r\n * @zh_CN 显示图标\r\n * @en_US Show icon\r\n */\r\n @Input() icon?: string;\r\n /**\r\n * @zh_CN 形状\r\n * @en_US Shape\r\n */\r\n @Input() @XWithConfig<XAvatarShape>(X_CONFIG_NAME, 'circle') shape?: XAvatarShape;\r\n /**\r\n * @zh_CN 图片地址\r\n * @en_US The map's address\r\n */\r\n @Input() src?: string;\r\n /**\r\n * @zh_CN 图片适应方式\r\n * @en_US Image adaptation method\r\n */\r\n @Input() @XWithConfig<XAvatarFit>(X_CONFIG_NAME, 'cover') fit?: XAvatarFit;\r\n}\r\n\r\n/**\r\n * @zh_CN 头像形状\r\n * @en_US Avatar shape\r\n */\r\nexport type XAvatarShape = XShape;\r\n\r\n/**\r\n * @zh_CN 当展示类型为图片的时候,设置图片如何适应容器框\r\n * @en_US When the display type is picture, set how the picture fits into the container frame\r\n */\r\nexport type XAvatarFit = XFit;\r\n","import { Component, OnInit, ViewEncapsulation, Renderer2, ElementRef, ChangeDetectorRef, ChangeDetectionStrategy } from '@angular/core';\r\nimport { XAvatarPrefix, XAvatarProperty } from './avatar.property';\r\nimport { XIsEmpty, XConfigService } from '@ng-nest/ui/core';\r\n\r\n@Component({\r\n selector: `${XAvatarPrefix}`,\r\n templateUrl: './avatar.component.html',\r\n styleUrls: ['./avatar.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class XAvatarComponent extends XAvatarProperty implements OnInit {\r\n isImgError: boolean = false;\r\n\r\n constructor(\r\n public renderer: Renderer2,\r\n public elementRef: ElementRef,\r\n public cdr: ChangeDetectorRef,\r\n public configService: XConfigService\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n this.setClassMap();\r\n }\r\n\r\n setClassMap() {\r\n this.classMap = {\r\n [`${XAvatarPrefix}-${this.shape}`]: !XIsEmpty(this.shape),\r\n [`${XAvatarPrefix}-${this.size}`]: !XIsEmpty(this.size)\r\n };\r\n }\r\n\r\n imgError() {\r\n this.isImgError = true;\r\n this.cdr.detectChanges();\r\n }\r\n}\r\n","<span #avatar class=\"x-avatar\" [ngClass]=\"classMap\" [class.x-avatar-error]=\"isImgError\">\r\n <img *ngIf=\"src && !isImgError\" [src]=\"src\" [style.object-fit]=\"fit\" (error)=\"imgError()\" />\r\n <x-icon *ngIf=\"icon\" [type]=\"icon\"></x-icon>\r\n <x-icon *ngIf=\"isImgError\" type=\"fto-image\"></x-icon>\r\n <span *xOutlet=\"label; context: { $label: label }\">\r\n {{ label }}\r\n </span>\r\n</span>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { XAvatarComponent } from './avatar.component';\r\nimport { XIconModule } from '@ng-nest/ui/icon';\r\nimport { XOutletModule } from '@ng-nest/ui/outlet';\r\nimport { XAvatarProperty } from './avatar.property';\r\n\r\n@NgModule({\r\n declarations: [XAvatarComponent, XAvatarProperty],\r\n exports: [XAvatarComponent],\r\n imports: [CommonModule, XOutletModule, XIconModule]\r\n})\r\nexport class XAvatarModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ng-nest-ui-avatar.mjs","sources":["../../../../lib/ng-nest/ui/avatar/avatar.property.ts","../../../../lib/ng-nest/ui/avatar/avatar.component.ts","../../../../lib/ng-nest/ui/avatar/avatar.component.html","../../../../lib/ng-nest/ui/avatar/avatar-group.component.ts","../../../../lib/ng-nest/ui/avatar/avatar-group.component.html","../../../../lib/ng-nest/ui/avatar/avatar.module.ts","../../../../lib/ng-nest/ui/avatar/ng-nest-ui-avatar.ts"],"sourcesContent":["import { XSize, XTemplate, XProperty, XWithConfig, XShape, XFit, XResponseSize, XNumber, XInputNumber } from '@ng-nest/ui/core';\r\nimport { Input, Component } from '@angular/core';\r\n\r\n/**\r\n * Avatar\r\n * @selector x-avatar\r\n * @decorator component\r\n */\r\nexport const XAvatarPrefix = 'x-avatar';\r\nconst X_CONFIG_NAME = 'avatar';\r\n\r\n/**\r\n * Avatar Property\r\n */\r\n@Component({ template: '' })\r\nexport class XAvatarProperty extends XProperty {\r\n /**\r\n * @zh_CN 显示字符\r\n * @en_US Display characters\r\n */\r\n @Input() label?: XTemplate;\r\n /**\r\n * @zh_CN 尺寸\r\n * @en_US Size\r\n */\r\n @Input() @XWithConfig<XAvatarSize>(X_CONFIG_NAME, 'medium') size?: XAvatarSize;\r\n /**\r\n * @zh_CN 显示图标\r\n * @en_US Show icon\r\n */\r\n @Input() icon?: string;\r\n /**\r\n * @zh_CN 形状\r\n * @en_US Shape\r\n */\r\n @Input() @XWithConfig<XAvatarShape>(X_CONFIG_NAME, 'circle') shape?: XAvatarShape;\r\n /**\r\n * @zh_CN 图片地址\r\n * @en_US The map's address\r\n */\r\n @Input() src?: string;\r\n /**\r\n * @zh_CN 图片适应方式\r\n * @en_US Image adaptation method\r\n */\r\n @Input() @XWithConfig<XAvatarFit>(X_CONFIG_NAME, 'cover') fit?: XAvatarFit;\r\n /**\r\n * @zh_CN 字符类型的时候左右边距,px\r\n * @en_US When the character type is the left and right distance, PX\r\n */\r\n @Input() @XWithConfig<XNumber>(X_CONFIG_NAME, 4) @XInputNumber() gap?: XNumber;\r\n /**\r\n * @zh_CN 背景颜色\r\n * @en_US Background color\r\n */\r\n @Input() @XWithConfig<string>(X_CONFIG_NAME, '#999999') backgroundColor?: string;\r\n}\r\n\r\n/**\r\n * @zh_CN 头像形状\r\n * @en_US Avatar shape\r\n */\r\nexport type XAvatarShape = XShape;\r\n\r\n/**\r\n * @zh_CN 当展示类型为图片的时候,设置图片如何适应容器框\r\n * @en_US When the display type is picture, set how the picture fits into the container frame\r\n */\r\nexport type XAvatarFit = XFit;\r\n\r\n/**\r\n * @zh_CN 尺寸类型\r\n * @en_US Size type\r\n */\r\nexport type XAvatarSize = number | XSize | XResponseSize;\r\n\r\n/**\r\n * Avatar Group\r\n * @selector x-avatar-group\r\n * @decorator component\r\n */\r\nexport const XAvatarGroupPrefix = 'x-avatar-group';\r\n\r\n/**\r\n * Avatar Group Property\r\n */\r\n@Component({ template: '' })\r\nexport class XAvatarGroupProperty extends XProperty {}\r\n","import {\r\n Component,\r\n ViewEncapsulation,\r\n Renderer2,\r\n ElementRef,\r\n ChangeDetectorRef,\r\n ChangeDetectionStrategy,\r\n Inject,\r\n OnDestroy,\r\n ViewChild,\r\n AfterViewInit,\r\n OnChanges,\r\n SimpleChanges\r\n} from '@angular/core';\r\nimport { XAvatarPrefix, XAvatarProperty } from './avatar.property';\r\nimport { XIsEmpty, XConfigService, XIsNumber, XIsString, XResize, XIsObject, XResponseSize, XIsChange } from '@ng-nest/ui/core';\r\nimport { DOCUMENT } from '@angular/common';\r\nimport { Subject, takeUntil } from 'rxjs';\r\n\r\n@Component({\r\n selector: `${XAvatarPrefix}`,\r\n templateUrl: './avatar.component.html',\r\n styleUrls: ['./avatar.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class XAvatarComponent extends XAvatarProperty implements OnDestroy, OnChanges, AfterViewInit {\r\n isImgError: boolean = false;\r\n\r\n styleMap: { [key: string]: any } = {};\r\n document!: Document;\r\n private _unSubject = new Subject<void>();\r\n private _resizeObserver!: ResizeObserver;\r\n\r\n @ViewChild('labelRef') labelRef!: ElementRef;\r\n\r\n constructor(\r\n public renderer: Renderer2,\r\n public elementRef: ElementRef,\r\n public cdr: ChangeDetectorRef,\r\n public configService: XConfigService,\r\n @Inject(DOCUMENT) document: any\r\n ) {\r\n super();\r\n this.document = document;\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._unSubject.next();\r\n this._unSubject.complete();\r\n this._resizeObserver?.disconnect();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n let { label } = changes;\r\n XIsChange(label) && setTimeout(() => this.setLabel());\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this.setClassMap();\r\n this.setLabel();\r\n }\r\n\r\n setClassMap() {\r\n this.classMap = {\r\n [`${XAvatarPrefix}-${this.shape}`]: !XIsEmpty(this.shape)\r\n };\r\n if (XIsNumber(this.size)) {\r\n const nsize = Number(this.size);\r\n this.setStyleMap(nsize);\r\n this.cdr.detectChanges();\r\n } else if (XIsString(this.size)) {\r\n this.classMap[`${XAvatarPrefix}-${this.size}`] = !XIsEmpty(this.size);\r\n this.cdr.detectChanges();\r\n } else if (XIsObject(this.size)) {\r\n this.classMap[`${XAvatarPrefix}-medium`] = true;\r\n const sz = this.size as XResponseSize;\r\n let { xs, sm, md, lg, xl } = sz;\r\n if (!xs && !sm && !md && !lg && !xl) return;\r\n XResize(this.document.documentElement)\r\n .pipe(takeUntil(this._unSubject))\r\n .subscribe((x) => {\r\n this._resizeObserver = x.resizeObserver;\r\n const width = this.document.documentElement.clientWidth;\r\n let nsize = 40;\r\n if (xs && width < 768) {\r\n nsize = xs;\r\n }\r\n if (sm && width >= 768) {\r\n nsize = sm;\r\n }\r\n if (md && width >= 992) {\r\n nsize = md;\r\n }\r\n if (lg && width >= 1200) {\r\n nsize = lg;\r\n }\r\n if (xl && width >= 1920) {\r\n nsize = xl;\r\n }\r\n this.setStyleMap(nsize);\r\n this.cdr.detectChanges();\r\n this.setLabel();\r\n });\r\n }\r\n }\r\n\r\n setStyleMap(size: number) {\r\n this.styleMap = {\r\n height: `${size}px`,\r\n width: `${size}px`,\r\n lineHeight: `${size}px`,\r\n fontSize: `${size * 0.6}px`\r\n };\r\n }\r\n\r\n setLabel() {\r\n if (!this.label) return;\r\n if (!this.elementRef || !this.labelRef) return;\r\n const eleWidth = this.elementRef.nativeElement.clientWidth;\r\n const labelWidth = this.labelRef.nativeElement.clientWidth;\r\n let scale = (eleWidth - Number(this.gap) * 2) / labelWidth;\r\n scale = scale > 1 ? 1 : scale;\r\n this.renderer.setStyle(this.labelRef.nativeElement, 'transform', `scale(${scale})`);\r\n }\r\n\r\n imgError() {\r\n this.isImgError = true;\r\n this.cdr.detectChanges();\r\n }\r\n}\r\n","<span\r\n #avatar\r\n class=\"x-avatar\"\r\n [class.x-avatar-label]=\"label\"\r\n [ngClass]=\"classMap\"\r\n [class.x-avatar-error]=\"isImgError\"\r\n [ngStyle]=\"styleMap\"\r\n [style.backgroundColor]=\"backgroundColor\"\r\n>\r\n <img *ngIf=\"src && !isImgError\" [src]=\"src\" [style.object-fit]=\"fit\" (error)=\"imgError()\" />\r\n <x-icon *ngIf=\"icon\" [type]=\"icon\"></x-icon>\r\n <x-icon *ngIf=\"isImgError\" type=\"fto-image\"></x-icon>\r\n <span #labelRef *xOutlet=\"label; context: { $label: label }\">\r\n {{ label }}\r\n </span>\r\n</span>\r\n","import { Component, ViewEncapsulation, ChangeDetectionStrategy, HostBinding } from '@angular/core';\r\nimport { XAvatarGroupPrefix, XAvatarGroupProperty } from './avatar.property';\r\n\r\n@Component({\r\n selector: `${XAvatarGroupPrefix}`,\r\n templateUrl: './avatar-group.component.html',\r\n styleUrls: ['./avatar-group.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class XAvatarGroupComponent extends XAvatarGroupProperty {\r\n @HostBinding('class.x-avatar-group') _has = true;\r\n constructor() {\r\n super();\r\n }\r\n}\r\n","<ng-content></ng-content>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { XAvatarComponent } from './avatar.component';\r\nimport { XIconModule } from '@ng-nest/ui/icon';\r\nimport { XOutletModule } from '@ng-nest/ui/outlet';\r\nimport { XAvatarGroupProperty, XAvatarProperty } from './avatar.property';\r\nimport { XAvatarGroupComponent } from './avatar-group.component';\r\n\r\n@NgModule({\r\n declarations: [XAvatarComponent, XAvatarProperty, XAvatarGroupComponent, XAvatarGroupProperty],\r\n exports: [XAvatarComponent, XAvatarGroupComponent],\r\n imports: [CommonModule, XOutletModule, XIconModule]\r\n})\r\nexport class XAvatarModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@ import * as i0 from '@angular/core';
2
2
  import { Component, Input, ViewEncapsulation, ChangeDetectionStrategy, NgModule } from '@angular/core';
3
3
  import { __decorate } from 'tslib';
4
4
  import * as i1 from '@ng-nest/ui/core';
5
- import { XProperty, XWithConfig, XInputNumber, XInputBoolean, XIsArray, XIsChange, XIsEmpty, XIsNumber, XBadgeAnimation } from '@ng-nest/ui/core';
5
+ import { XProperty, XWithConfig, XInputNumber, XInputBoolean, XIsArray, XIsChange, XIsEmpty, XIsNumber, XBadgeAnimation, XBadgeStandaloneAnimation } from '@ng-nest/ui/core';
6
6
  import * as i2 from '@angular/common';
7
7
  import { CommonModule } from '@angular/common';
8
8
 
@@ -32,7 +32,7 @@ class XBadgeProperty extends XProperty {
32
32
  }
33
33
  }
34
34
  /** @nocollapse */ XBadgeProperty.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: XBadgeProperty, deps: null, target: i0.ɵɵFactoryTarget.Component });
35
- /** @nocollapse */ XBadgeProperty.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: XBadgeProperty, selector: "ng-component", inputs: { type: "type", max: "max", value: "value", offset: "offset", dot: "dot" }, usesInheritance: true, ngImport: i0, template: '', isInline: true });
35
+ /** @nocollapse */ XBadgeProperty.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: XBadgeProperty, selector: "ng-component", inputs: { type: "type", max: "max", value: "value", offset: "offset", dot: "dot", standalone: "standalone" }, usesInheritance: true, ngImport: i0, template: '', isInline: true });
36
36
  __decorate([
37
37
  XWithConfig(X_CONFIG_NAME, 'danger')
38
38
  ], XBadgeProperty.prototype, "type", void 0);
@@ -42,6 +42,9 @@ __decorate([
42
42
  __decorate([
43
43
  XInputBoolean()
44
44
  ], XBadgeProperty.prototype, "dot", void 0);
45
+ __decorate([
46
+ XInputBoolean()
47
+ ], XBadgeProperty.prototype, "standalone", void 0);
45
48
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: XBadgeProperty, decorators: [{
46
49
  type: Component,
47
50
  args: [{ template: '' }]
@@ -55,6 +58,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImpor
55
58
  type: Input
56
59
  }], dot: [{
57
60
  type: Input
61
+ }], standalone: [{
62
+ type: Input
58
63
  }] } });
59
64
 
60
65
  class XBadgeComponent extends XBadgeProperty {
@@ -66,10 +71,13 @@ class XBadgeComponent extends XBadgeProperty {
66
71
  this.configService = configService;
67
72
  this.displayValue = '';
68
73
  this.viewInit = false;
74
+ this.range = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, '+'];
75
+ this.displayNums = [];
76
+ this.maxNums = [];
69
77
  }
70
- get getOffsetLeft() {
78
+ get getOffsetRight() {
71
79
  if (this.offset && XIsArray(this.offset) && this.offset.length > 0) {
72
- return this.offset[0];
80
+ return `-${this.offset[0]}`;
73
81
  }
74
82
  return null;
75
83
  }
@@ -86,8 +94,7 @@ class XBadgeComponent extends XBadgeProperty {
86
94
  const { value } = simples;
87
95
  XIsChange(value) && this.setDisplayValue();
88
96
  }
89
- ngAfterViewInit() {
90
- }
97
+ ngAfterViewInit() { }
91
98
  setClassMap() {
92
99
  this.classMap[`${XBadgePrefix}-${this.type}`] = !XIsEmpty(this.type);
93
100
  }
@@ -99,13 +106,27 @@ class XBadgeComponent extends XBadgeProperty {
99
106
  else {
100
107
  this.displayValue = `${this.value}`;
101
108
  }
109
+ let res = [];
110
+ for (let i = 0; i < this.displayValue.length; i++) {
111
+ let str = this.displayValue[i];
112
+ if (str === '+') {
113
+ res.push(str);
114
+ }
115
+ else {
116
+ res.push(Number(str));
117
+ }
118
+ }
119
+ this.displayNums = res;
120
+ if (this.displayNums.length != this.maxNums.length) {
121
+ this.maxNums = this.displayNums.map((_x, index) => index);
122
+ }
102
123
  }
103
124
  }
104
125
  /** @nocollapse */ XBadgeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: XBadgeComponent, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i1.XConfigService }], target: i0.ɵɵFactoryTarget.Component });
105
- /** @nocollapse */ XBadgeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: XBadgeComponent, selector: "x-badge", usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div #badge class=\"x-badge\" [ngClass]=\"classMap\" [class.x-badge-dot]=\"dot\" [class.x-badge-offset]=\"getOffsetLeft\">\r\n <ng-content></ng-content>\r\n <sup [@x-badge-animation] [style.marginLeft]=\"getOffsetLeft\" [style.marginTop]=\"getOffsetTop\">\r\n <ng-container *ngIf=\"!dot\">{{ displayValue }}</ng-container>\r\n </sup>\r\n</div>\r\n", styles: ["x-badge{display:inline-flex}.x-badge{margin:0;padding:0;font-size:var(--x-font-size);display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;text-align:center;position:relative}.x-badge>sup{position:absolute;top:0;right:0;transform:translate(50%,-50%);transform-origin:100% 0%;border-radius:.625rem;color:var(--x-white);display:inline-block;height:1.125rem;line-height:1.125rem;padding:0 .375rem;text-align:center;white-space:nowrap;box-shadow:0 0 0 .0625rem var(--x-white)}.x-badge-dot>sup{width:.5rem;height:.5rem;padding:0;right:.125rem;border-radius:50%}.x-badge-offset>sup{right:inherit}.x-badge-primary>sup{background-color:var(--x-primary)}.x-badge-success>sup{background-color:var(--x-success)}.x-badge-info>sup{background-color:var(--x-info)}.x-badge-warning>sup{background-color:var(--x-warning)}.x-badge-danger>sup{background-color:var(--x-danger)}.x-badge-text>sup{background-color:var(--x-text)}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], animations: [XBadgeAnimation], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
126
+ /** @nocollapse */ XBadgeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: XBadgeComponent, selector: "x-badge", usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div #badge class=\"x-badge\" [ngClass]=\"classMap\" [class.x-badge-dot]=\"dot\" [class.x-badge-standalone]=\"standalone\">\r\n <ng-content></ng-content>\r\n <ng-container *ngIf=\"value > 0 || dot\">\r\n <sup *ngIf=\"standalone\" [@x-badge-standalone-animation] [style.marginRight]=\"getOffsetRight\" [style.marginTop]=\"getOffsetTop\">\r\n <ng-container *ngIf=\"!dot\">\r\n <ng-container *ngTemplateOutlet=\"diaplayValueTpl\"></ng-container>\r\n </ng-container>\r\n </sup>\r\n <sup *ngIf=\"!standalone\" [@x-badge-animation] [style.marginRight]=\"getOffsetRight\" [style.marginTop]=\"getOffsetTop\">\r\n <ng-container *ngIf=\"!dot\">\r\n <ng-container *ngTemplateOutlet=\"diaplayValueTpl\"></ng-container>\r\n </ng-container>\r\n </sup>\r\n </ng-container>\r\n</div>\r\n\r\n<ng-template #diaplayValueTpl>\r\n <span\r\n class=\"x-badge-scroll\"\r\n *ngFor=\"let item of maxNums; let i = index\"\r\n [style.transform]=\"'translateY(-' + (displayNums[i] == '+' ? 10 : displayNums[i]) * 100 + '%)'\"\r\n >\r\n <p *ngFor=\"let j of range\">{{ j }}</p>\r\n </span>\r\n</ng-template>\r\n", styles: ["x-badge{display:inline-block}.x-badge{margin:0;padding:0;font-size:var(--x-font-size);display:inline-block;box-sizing:border-box;text-align:center;position:relative}.x-badge>sup{position:absolute;top:0;right:0;overflow:hidden;transform:translate(50%,-50%);transform-origin:100% 0%;border-radius:.625rem;color:var(--x-white);display:inline-block;height:1.125rem;line-height:1.125rem;padding:0 .375rem;text-align:center;white-space:nowrap;box-shadow:0 0 0 .0625rem var(--x-white);vertical-align:middle}.x-badge-dot>sup{width:.5rem;height:.5rem;padding:0;right:0;border-radius:50%}.x-badge-standalone>sup{position:initial;transform:initial;transform-origin:initial}.x-badge-scroll{position:relative;height:1.125rem;display:inline-block;transition:transform var(--x-animation-duration-base) ease-in-out}.x-badge-primary>sup{background-color:var(--x-primary)}.x-badge-success>sup{background-color:var(--x-success)}.x-badge-info>sup{background-color:var(--x-info)}.x-badge-warning>sup{background-color:var(--x-warning)}.x-badge-danger>sup{background-color:var(--x-danger)}.x-badge-text>sup{background-color:var(--x-text)}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], animations: [XBadgeAnimation, XBadgeStandaloneAnimation], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
106
127
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: XBadgeComponent, decorators: [{
107
128
  type: Component,
108
- args: [{ selector: `${XBadgePrefix}`, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, animations: [XBadgeAnimation], template: "<div #badge class=\"x-badge\" [ngClass]=\"classMap\" [class.x-badge-dot]=\"dot\" [class.x-badge-offset]=\"getOffsetLeft\">\r\n <ng-content></ng-content>\r\n <sup [@x-badge-animation] [style.marginLeft]=\"getOffsetLeft\" [style.marginTop]=\"getOffsetTop\">\r\n <ng-container *ngIf=\"!dot\">{{ displayValue }}</ng-container>\r\n </sup>\r\n</div>\r\n", styles: ["x-badge{display:inline-flex}.x-badge{margin:0;padding:0;font-size:var(--x-font-size);display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;text-align:center;position:relative}.x-badge>sup{position:absolute;top:0;right:0;transform:translate(50%,-50%);transform-origin:100% 0%;border-radius:.625rem;color:var(--x-white);display:inline-block;height:1.125rem;line-height:1.125rem;padding:0 .375rem;text-align:center;white-space:nowrap;box-shadow:0 0 0 .0625rem var(--x-white)}.x-badge-dot>sup{width:.5rem;height:.5rem;padding:0;right:.125rem;border-radius:50%}.x-badge-offset>sup{right:inherit}.x-badge-primary>sup{background-color:var(--x-primary)}.x-badge-success>sup{background-color:var(--x-success)}.x-badge-info>sup{background-color:var(--x-info)}.x-badge-warning>sup{background-color:var(--x-warning)}.x-badge-danger>sup{background-color:var(--x-danger)}.x-badge-text>sup{background-color:var(--x-text)}\n"] }]
129
+ args: [{ selector: `${XBadgePrefix}`, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, animations: [XBadgeAnimation, XBadgeStandaloneAnimation], template: "<div #badge class=\"x-badge\" [ngClass]=\"classMap\" [class.x-badge-dot]=\"dot\" [class.x-badge-standalone]=\"standalone\">\r\n <ng-content></ng-content>\r\n <ng-container *ngIf=\"value > 0 || dot\">\r\n <sup *ngIf=\"standalone\" [@x-badge-standalone-animation] [style.marginRight]=\"getOffsetRight\" [style.marginTop]=\"getOffsetTop\">\r\n <ng-container *ngIf=\"!dot\">\r\n <ng-container *ngTemplateOutlet=\"diaplayValueTpl\"></ng-container>\r\n </ng-container>\r\n </sup>\r\n <sup *ngIf=\"!standalone\" [@x-badge-animation] [style.marginRight]=\"getOffsetRight\" [style.marginTop]=\"getOffsetTop\">\r\n <ng-container *ngIf=\"!dot\">\r\n <ng-container *ngTemplateOutlet=\"diaplayValueTpl\"></ng-container>\r\n </ng-container>\r\n </sup>\r\n </ng-container>\r\n</div>\r\n\r\n<ng-template #diaplayValueTpl>\r\n <span\r\n class=\"x-badge-scroll\"\r\n *ngFor=\"let item of maxNums; let i = index\"\r\n [style.transform]=\"'translateY(-' + (displayNums[i] == '+' ? 10 : displayNums[i]) * 100 + '%)'\"\r\n >\r\n <p *ngFor=\"let j of range\">{{ j }}</p>\r\n </span>\r\n</ng-template>\r\n", styles: ["x-badge{display:inline-block}.x-badge{margin:0;padding:0;font-size:var(--x-font-size);display:inline-block;box-sizing:border-box;text-align:center;position:relative}.x-badge>sup{position:absolute;top:0;right:0;overflow:hidden;transform:translate(50%,-50%);transform-origin:100% 0%;border-radius:.625rem;color:var(--x-white);display:inline-block;height:1.125rem;line-height:1.125rem;padding:0 .375rem;text-align:center;white-space:nowrap;box-shadow:0 0 0 .0625rem var(--x-white);vertical-align:middle}.x-badge-dot>sup{width:.5rem;height:.5rem;padding:0;right:0;border-radius:50%}.x-badge-standalone>sup{position:initial;transform:initial;transform-origin:initial}.x-badge-scroll{position:relative;height:1.125rem;display:inline-block;transition:transform var(--x-animation-duration-base) ease-in-out}.x-badge-primary>sup{background-color:var(--x-primary)}.x-badge-success>sup{background-color:var(--x-success)}.x-badge-info>sup{background-color:var(--x-info)}.x-badge-warning>sup{background-color:var(--x-warning)}.x-badge-danger>sup{background-color:var(--x-danger)}.x-badge-text>sup{background-color:var(--x-text)}\n"] }]
109
130
  }], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i1.XConfigService }]; } });
110
131
 
111
132
  class XBadgeModule {
@@ -1 +1 @@
1
- {"version":3,"file":"ng-nest-ui-badge.mjs","sources":["../../../../lib/ng-nest/ui/badge/badge.property.ts","../../../../lib/ng-nest/ui/badge/badge.component.ts","../../../../lib/ng-nest/ui/badge/badge.component.html","../../../../lib/ng-nest/ui/badge/badge.module.ts","../../../../lib/ng-nest/ui/badge/ng-nest-ui-badge.ts"],"sourcesContent":["import { XProperty, XInputNumber, XInputBoolean, XNumber, XBoolean, XType, XWithConfig } from '@ng-nest/ui/core';\r\nimport { Input, Component } from '@angular/core';\r\n\r\n/**\r\n * Badge\r\n * @selector x-badge\r\n * @decorator component\r\n */\r\nexport const XBadgePrefix = 'x-badge';\r\nconst X_CONFIG_NAME = 'badge';\r\n\r\n/**\r\n * Badge Property\r\n */\r\n@Component({ template: '' })\r\nexport class XBadgeProperty extends XProperty {\r\n /**\r\n * @zh_CN 背景颜色\r\n * @en_US Background color\r\n */\r\n @Input() @XWithConfig<XBadgeType>(X_CONFIG_NAME, 'danger') type?: XBadgeType;\r\n /**\r\n * @zh_CN 最大值\r\n * @en_US Max\r\n */\r\n @Input() @XInputNumber() max?: XNumber;\r\n /**\r\n * @zh_CN 显示值\r\n * @en_US Display value\r\n */\r\n @Input() value: XNumber = '';\r\n /**\r\n * @zh_CN 偏移值 [left, top]\r\n * @en_US Offset value\r\n */\r\n @Input() offset: (number | string)[] = [];\r\n /**\r\n * @zh_CN 是否显示小红点\r\n * @en_US Whether to show the small red dot\r\n */\r\n @Input() @XInputBoolean() dot?: XBoolean;\r\n}\r\n\r\n/**\r\n * @zh_CN 标记类型\r\n * @en_US Mark type\r\n */\r\nexport type XBadgeType = XType;\r\n","import {\r\n Component,\r\n OnInit,\r\n ViewEncapsulation,\r\n Renderer2,\r\n ElementRef,\r\n ChangeDetectorRef,\r\n ChangeDetectionStrategy,\r\n SimpleChanges,\r\n OnChanges\r\n} from '@angular/core';\r\nimport { XBadgePrefix, XBadgeProperty } from './badge.property';\r\nimport { XIsNumber, XIsChange, XIsEmpty, XConfigService, XIsArray, XBadgeAnimation } from '@ng-nest/ui/core';\r\n\r\n@Component({\r\n selector: `${XBadgePrefix}`,\r\n templateUrl: './badge.component.html',\r\n styleUrls: ['./badge.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n animations: [XBadgeAnimation]\r\n})\r\nexport class XBadgeComponent extends XBadgeProperty implements OnInit, OnChanges {\r\n displayValue: string = '';\r\n viewInit = false;\r\n\r\n get getOffsetLeft() {\r\n if (this.offset && XIsArray(this.offset) && this.offset.length > 0) {\r\n return this.offset[0];\r\n }\r\n return null;\r\n }\r\n\r\n get getOffsetTop() {\r\n if (this.offset && XIsArray(this.offset) && this.offset.length > 1) {\r\n return this.offset[1];\r\n }\r\n return null;\r\n }\r\n\r\n constructor(\r\n public renderer: Renderer2,\r\n public elementRef: ElementRef,\r\n public cdr: ChangeDetectorRef,\r\n public configService: XConfigService\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n this.setClassMap();\r\n }\r\n\r\n ngOnChanges(simples: SimpleChanges) {\r\n const { value } = simples;\r\n XIsChange(value) && this.setDisplayValue();\r\n }\r\n\r\n ngAfterViewInit() {\r\n }\r\n\r\n setClassMap() {\r\n this.classMap[`${XBadgePrefix}-${this.type}`] = !XIsEmpty(this.type);\r\n }\r\n\r\n setDisplayValue() {\r\n let toNumber = Number(this.value);\r\n if (XIsNumber(toNumber) && this.max && toNumber > this.max) {\r\n this.displayValue = `${this.max}+`;\r\n } else {\r\n this.displayValue = `${this.value}`;\r\n }\r\n }\r\n}\r\n","<div #badge class=\"x-badge\" [ngClass]=\"classMap\" [class.x-badge-dot]=\"dot\" [class.x-badge-offset]=\"getOffsetLeft\">\r\n <ng-content></ng-content>\r\n <sup [@x-badge-animation] [style.marginLeft]=\"getOffsetLeft\" [style.marginTop]=\"getOffsetTop\">\r\n <ng-container *ngIf=\"!dot\">{{ displayValue }}</ng-container>\r\n </sup>\r\n</div>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { XBadgeComponent } from './badge.component';\r\nimport { XBadgeProperty } from './badge.property';\r\n\r\n@NgModule({\r\n declarations: [XBadgeComponent, XBadgeProperty],\r\n exports: [XBadgeComponent],\r\n imports: [CommonModule]\r\n})\r\nexport class XBadgeModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ng-nest-ui-badge.mjs","sources":["../../../../lib/ng-nest/ui/badge/badge.property.ts","../../../../lib/ng-nest/ui/badge/badge.component.ts","../../../../lib/ng-nest/ui/badge/badge.component.html","../../../../lib/ng-nest/ui/badge/badge.module.ts","../../../../lib/ng-nest/ui/badge/ng-nest-ui-badge.ts"],"sourcesContent":["import { XProperty, XInputNumber, XInputBoolean, XNumber, XBoolean, XType, XWithConfig } from '@ng-nest/ui/core';\r\nimport { Input, Component } from '@angular/core';\r\n\r\n/**\r\n * Badge\r\n * @selector x-badge\r\n * @decorator component\r\n */\r\nexport const XBadgePrefix = 'x-badge';\r\nconst X_CONFIG_NAME = 'badge';\r\n\r\n/**\r\n * Badge Property\r\n */\r\n@Component({ template: '' })\r\nexport class XBadgeProperty extends XProperty {\r\n /**\r\n * @zh_CN 背景颜色\r\n * @en_US Background color\r\n */\r\n @Input() @XWithConfig<XBadgeType>(X_CONFIG_NAME, 'danger') type?: XBadgeType;\r\n /**\r\n * @zh_CN 最大值\r\n * @en_US Max\r\n */\r\n @Input() @XInputNumber() max?: XNumber;\r\n /**\r\n * @zh_CN 显示值\r\n * @en_US Display value\r\n */\r\n @Input() value: XNumber = '';\r\n /**\r\n * @zh_CN 偏移值 [left, top]\r\n * @en_US Offset value\r\n */\r\n @Input() offset: (number | string)[] = [];\r\n /**\r\n * @zh_CN 是否显示小红点\r\n * @en_US Whether to show the small red dot\r\n */\r\n @Input() @XInputBoolean() dot?: XBoolean;\r\n /**\r\n * @zh_CN 独立使用\r\n * @en_US Independent use\r\n */\r\n @Input() @XInputBoolean() standalone?: XBoolean;\r\n}\r\n\r\n/**\r\n * @zh_CN 标记类型\r\n * @en_US Mark type\r\n */\r\nexport type XBadgeType = XType;\r\n","import {\r\n Component,\r\n OnInit,\r\n ViewEncapsulation,\r\n Renderer2,\r\n ElementRef,\r\n ChangeDetectorRef,\r\n ChangeDetectionStrategy,\r\n SimpleChanges,\r\n OnChanges\r\n} from '@angular/core';\r\nimport { XBadgePrefix, XBadgeProperty } from './badge.property';\r\nimport { XIsNumber, XIsChange, XIsEmpty, XConfigService, XIsArray, XBadgeAnimation, XBadgeStandaloneAnimation } from '@ng-nest/ui/core';\r\n\r\n@Component({\r\n selector: `${XBadgePrefix}`,\r\n templateUrl: './badge.component.html',\r\n styleUrls: ['./badge.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n animations: [XBadgeAnimation, XBadgeStandaloneAnimation]\r\n})\r\nexport class XBadgeComponent extends XBadgeProperty implements OnInit, OnChanges {\r\n displayValue: string = '';\r\n viewInit = false;\r\n range = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, '+'];\r\n displayNums: any[] = [];\r\n maxNums: number[] = [];\r\n\r\n get getOffsetRight() {\r\n if (this.offset && XIsArray(this.offset) && this.offset.length > 0) {\r\n return `-${this.offset[0]}`;\r\n }\r\n return null;\r\n }\r\n\r\n get getOffsetTop() {\r\n if (this.offset && XIsArray(this.offset) && this.offset.length > 1) {\r\n return this.offset[1];\r\n }\r\n return null;\r\n }\r\n\r\n constructor(\r\n public renderer: Renderer2,\r\n public elementRef: ElementRef,\r\n public cdr: ChangeDetectorRef,\r\n public configService: XConfigService\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n this.setClassMap();\r\n }\r\n\r\n ngOnChanges(simples: SimpleChanges) {\r\n const { value } = simples;\r\n XIsChange(value) && this.setDisplayValue();\r\n }\r\n\r\n ngAfterViewInit() {}\r\n\r\n setClassMap() {\r\n this.classMap[`${XBadgePrefix}-${this.type}`] = !XIsEmpty(this.type);\r\n }\r\n\r\n setDisplayValue() {\r\n let toNumber = Number(this.value);\r\n if (XIsNumber(toNumber) && this.max && toNumber > this.max) {\r\n this.displayValue = `${this.max}+`;\r\n } else {\r\n this.displayValue = `${this.value}`;\r\n }\r\n let res: any = [];\r\n for (let i = 0; i < this.displayValue.length; i++) {\r\n let str = this.displayValue[i];\r\n if (str === '+') {\r\n res.push(str);\r\n } else {\r\n res.push(Number(str));\r\n }\r\n }\r\n this.displayNums = res;\r\n if (this.displayNums.length != this.maxNums.length) {\r\n this.maxNums = this.displayNums.map((_x, index) => index) as number[];\r\n }\r\n }\r\n}\r\n","<div #badge class=\"x-badge\" [ngClass]=\"classMap\" [class.x-badge-dot]=\"dot\" [class.x-badge-standalone]=\"standalone\">\r\n <ng-content></ng-content>\r\n <ng-container *ngIf=\"value > 0 || dot\">\r\n <sup *ngIf=\"standalone\" [@x-badge-standalone-animation] [style.marginRight]=\"getOffsetRight\" [style.marginTop]=\"getOffsetTop\">\r\n <ng-container *ngIf=\"!dot\">\r\n <ng-container *ngTemplateOutlet=\"diaplayValueTpl\"></ng-container>\r\n </ng-container>\r\n </sup>\r\n <sup *ngIf=\"!standalone\" [@x-badge-animation] [style.marginRight]=\"getOffsetRight\" [style.marginTop]=\"getOffsetTop\">\r\n <ng-container *ngIf=\"!dot\">\r\n <ng-container *ngTemplateOutlet=\"diaplayValueTpl\"></ng-container>\r\n </ng-container>\r\n </sup>\r\n </ng-container>\r\n</div>\r\n\r\n<ng-template #diaplayValueTpl>\r\n <span\r\n class=\"x-badge-scroll\"\r\n *ngFor=\"let item of maxNums; let i = index\"\r\n [style.transform]=\"'translateY(-' + (displayNums[i] == '+' ? 10 : displayNums[i]) * 100 + '%)'\"\r\n >\r\n <p *ngFor=\"let j of range\">{{ j }}</p>\r\n </span>\r\n</ng-template>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { XBadgeComponent } from './badge.component';\r\nimport { XBadgeProperty } from './badge.property';\r\n\r\n@NgModule({\r\n declarations: [XBadgeComponent, XBadgeProperty],\r\n exports: [XBadgeComponent],\r\n imports: [CommonModule]\r\n})\r\nexport class XBadgeModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}