@geoit/ui 0.0.2 → 0.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 (258) hide show
  1. package/AGENTS.md +12 -8
  2. package/README.md +140 -17
  3. package/ai/AGENTS.md +43 -32
  4. package/ai/README.md +36 -2
  5. package/ai/catalog.json +5585 -437
  6. package/ai/components/geo-alert.md +75 -21
  7. package/ai/components/geo-back-button.md +64 -18
  8. package/ai/components/geo-breadcrumb.md +71 -12
  9. package/ai/components/geo-button.md +90 -27
  10. package/ai/components/geo-chart.md +103 -0
  11. package/ai/components/geo-checkbox.md +67 -20
  12. package/ai/components/geo-column-picker.md +91 -18
  13. package/ai/components/geo-confirm-modal.md +92 -27
  14. package/ai/components/geo-dashboard.md +91 -0
  15. package/ai/components/geo-date-picker.md +105 -29
  16. package/ai/components/geo-date-range-picker.md +101 -28
  17. package/ai/components/geo-empty-state.md +75 -0
  18. package/ai/components/geo-feedback-form.md +97 -0
  19. package/ai/components/geo-file-picker.md +99 -26
  20. package/ai/components/geo-forgot-password.md +78 -0
  21. package/ai/components/geo-form-modal.md +111 -44
  22. package/ai/components/geo-icon.md +70 -16
  23. package/ai/components/geo-input.md +94 -29
  24. package/ai/components/geo-layout-footer.md +70 -0
  25. package/ai/components/geo-layout-header-actions.md +82 -0
  26. package/ai/components/geo-layout-header.md +89 -0
  27. package/ai/components/geo-layout-sidebar.md +86 -0
  28. package/ai/components/geo-layout.md +155 -0
  29. package/ai/components/geo-list-page.md +72 -0
  30. package/ai/components/geo-login.md +94 -0
  31. package/ai/components/geo-map-admin-filter.md +80 -0
  32. package/ai/components/geo-map-basemap-switcher.md +75 -0
  33. package/ai/components/geo-map-help.md +72 -0
  34. package/ai/components/geo-map-layer-card.md +73 -0
  35. package/ai/components/geo-map-layer-panel.md +75 -0
  36. package/ai/components/geo-map-layers-drawer.md +78 -0
  37. package/ai/components/geo-map-legend.md +74 -0
  38. package/ai/components/geo-map-locate.md +75 -0
  39. package/ai/components/geo-map-location-chip.md +71 -0
  40. package/ai/components/geo-map-measure.md +74 -0
  41. package/ai/components/geo-map-opacity.md +75 -0
  42. package/ai/components/geo-map-parcel-popup.md +79 -0
  43. package/ai/components/geo-map-search.md +83 -0
  44. package/ai/components/geo-map-shell.md +110 -0
  45. package/ai/components/geo-map-snapshot.md +75 -0
  46. package/ai/components/geo-map-swipe.md +73 -0
  47. package/ai/components/geo-map-toolbar.md +76 -0
  48. package/ai/components/geo-map-zoom.md +74 -0
  49. package/ai/components/geo-map.md +205 -0
  50. package/ai/components/geo-overlap-result.md +88 -0
  51. package/ai/components/geo-page-header.md +72 -0
  52. package/ai/components/geo-page-title.md +62 -16
  53. package/ai/components/geo-pagination.md +76 -24
  54. package/ai/components/geo-radio.md +110 -27
  55. package/ai/components/geo-row-actions.md +87 -19
  56. package/ai/components/geo-select.md +108 -28
  57. package/ai/components/geo-slider.md +70 -21
  58. package/ai/components/geo-stat-card.md +98 -0
  59. package/ai/components/geo-status-tag.md +67 -15
  60. package/ai/components/geo-step-form-layout.md +121 -38
  61. package/ai/components/geo-stepper.md +81 -19
  62. package/ai/components/geo-table-filter.md +90 -29
  63. package/ai/components/geo-table-pagination.md +70 -23
  64. package/ai/components/geo-table-toolbar.md +84 -29
  65. package/ai/components/geo-table.md +191 -59
  66. package/ai/components/geo-tabs.md +99 -27
  67. package/ai/components/geo-textarea.md +84 -23
  68. package/ai/components/geo-toast.md +138 -27
  69. package/ai/components/geo-tree.md +94 -22
  70. package/ai/components/geo-typography.md +70 -19
  71. package/ai/components/geo-upload.md +109 -39
  72. package/ai/mockup.html +1194 -0
  73. package/ai/recipes.md +132 -47
  74. package/esm2022/lib/figma/geo-alert/geo-alert.component.mjs +19 -36
  75. package/esm2022/lib/figma/geo-back-button/geo-back-button.component.mjs +14 -24
  76. package/esm2022/lib/figma/geo-breadcrumb/geo-breadcrumb.component.mjs +8 -11
  77. package/esm2022/lib/figma/geo-button/geo-button.component.mjs +30 -59
  78. package/esm2022/lib/figma/geo-chart/geo-chart.component.mjs +88 -0
  79. package/esm2022/lib/figma/geo-chart/geo-chart.types.mjs +2 -0
  80. package/esm2022/lib/figma/geo-checkbox/geo-checkbox.component.mjs +11 -22
  81. package/esm2022/lib/figma/geo-confirm-modal/geo-confirm-modal.component.mjs +22 -54
  82. package/esm2022/lib/figma/geo-dashboard/geo-dashboard.component.mjs +49 -0
  83. package/esm2022/lib/figma/geo-dashboard/geo-dashboard.types.mjs +2 -0
  84. package/esm2022/lib/figma/geo-date-picker/geo-date-picker.component.mjs +48 -78
  85. package/esm2022/lib/figma/geo-date-range-picker/geo-date-range-picker.component.mjs +47 -75
  86. package/esm2022/lib/figma/geo-empty-state/geo-empty-state.component.mjs +25 -0
  87. package/esm2022/lib/figma/geo-feedback-form/geo-feedback-form.component.mjs +75 -0
  88. package/esm2022/lib/figma/geo-feedback-form/geo-feedback-form.types.mjs +2 -0
  89. package/esm2022/lib/figma/geo-file-picker/geo-file-picker.component.mjs +59 -81
  90. package/esm2022/lib/figma/geo-forgot-password/geo-forgot-password.component.mjs +51 -0
  91. package/esm2022/lib/figma/geo-form-modal/geo-form-modal.component.mjs +45 -112
  92. package/esm2022/lib/figma/geo-icon/geo-icon.component.mjs +22 -32
  93. package/esm2022/lib/figma/geo-input/geo-input.component.mjs +41 -70
  94. package/esm2022/lib/figma/geo-layout/footer/geo-layout-footer.component.mjs +18 -0
  95. package/esm2022/lib/figma/geo-layout/geo-layout-actions.directive.mjs +15 -0
  96. package/esm2022/lib/figma/geo-layout/geo-layout.component.mjs +79 -0
  97. package/esm2022/lib/figma/geo-layout/geo-layout.types.mjs +42 -0
  98. package/esm2022/lib/figma/geo-layout/header/geo-layout-header.component.mjs +60 -0
  99. package/esm2022/lib/figma/geo-layout/header-actions/geo-layout-header-actions.component.mjs +70 -0
  100. package/esm2022/lib/figma/geo-layout/sidebar/geo-layout-sidebar.component.mjs +90 -0
  101. package/esm2022/lib/figma/geo-list-page/geo-list-page.component.mjs +22 -0
  102. package/esm2022/lib/figma/geo-login/geo-login.component.mjs +58 -0
  103. package/esm2022/lib/figma/geo-login/geo-login.types.mjs +2 -0
  104. package/esm2022/lib/figma/geo-map/chrome/geo-map-admin-filter/geo-map-admin-filter.component.mjs +52 -0
  105. package/esm2022/lib/figma/geo-map/chrome/geo-map-basemap-switcher/geo-map-basemap-switcher.component.mjs +61 -0
  106. package/esm2022/lib/figma/geo-map/chrome/geo-map-help/geo-map-help.component.mjs +26 -0
  107. package/esm2022/lib/figma/geo-map/chrome/geo-map-layer-card/geo-map-layer-card.component.mjs +24 -0
  108. package/esm2022/lib/figma/geo-map/chrome/geo-map-layer-panel/geo-map-layer-panel.component.mjs +146 -0
  109. package/esm2022/lib/figma/geo-map/chrome/geo-map-layers-drawer/geo-map-layers-drawer.component.mjs +37 -0
  110. package/esm2022/lib/figma/geo-map/chrome/geo-map-legend/geo-map-legend.component.mjs +30 -0
  111. package/esm2022/lib/figma/geo-map/chrome/geo-map-locate/geo-map-locate.component.mjs +72 -0
  112. package/esm2022/lib/figma/geo-map/chrome/geo-map-location-chip/geo-map-location-chip.component.mjs +21 -0
  113. package/esm2022/lib/figma/geo-map/chrome/geo-map-measure/geo-map-measure.component.mjs +375 -0
  114. package/esm2022/lib/figma/geo-map/chrome/geo-map-opacity/geo-map-opacity.component.mjs +94 -0
  115. package/esm2022/lib/figma/geo-map/chrome/geo-map-parcel-popup/geo-map-parcel-popup.component.mjs +136 -0
  116. package/esm2022/lib/figma/geo-map/chrome/geo-map-search/geo-map-search.component.mjs +182 -0
  117. package/esm2022/lib/figma/geo-map/chrome/geo-map-shell/geo-map-shell.component.mjs +577 -0
  118. package/esm2022/lib/figma/geo-map/chrome/geo-map-snapshot/geo-map-snapshot.component.mjs +93 -0
  119. package/esm2022/lib/figma/geo-map/chrome/geo-map-swipe/geo-map-swipe.component.mjs +129 -0
  120. package/esm2022/lib/figma/geo-map/chrome/geo-map-toolbar/geo-map-toolbar.component.mjs +64 -0
  121. package/esm2022/lib/figma/geo-map/chrome/geo-map-zoom/geo-map-zoom.component.mjs +295 -0
  122. package/esm2022/lib/figma/geo-map/geo-map-toolbar.icons.mjs +18 -0
  123. package/esm2022/lib/figma/geo-map/geo-map.component.mjs +144 -0
  124. package/esm2022/lib/figma/geo-map/geo-map.constants.mjs +497 -0
  125. package/esm2022/lib/figma/geo-map/geo-map.controller.mjs +71 -0
  126. package/esm2022/lib/figma/geo-map/geo-map.types.mjs +2 -0
  127. package/esm2022/lib/figma/geo-map/services/geo-map-layer.service.mjs +368 -0
  128. package/esm2022/lib/figma/geo-map/services/geo-map-projection.service.mjs +110 -0
  129. package/esm2022/lib/figma/geo-map/services/geo-map.service.mjs +540 -0
  130. package/esm2022/lib/figma/geo-map/utils/geo-map-fullscreen-overlay.util.mjs +47 -0
  131. package/esm2022/lib/figma/geo-map/utils/geo-map-interactions.util.mjs +30 -0
  132. package/esm2022/lib/figma/geo-overlap-result/geo-overlap-result.component.mjs +25 -0
  133. package/esm2022/lib/figma/geo-overlap-result/geo-overlap-result.types.mjs +2 -0
  134. package/esm2022/lib/figma/geo-page-header/geo-page-header.component.mjs +23 -0
  135. package/esm2022/lib/figma/geo-page-title/geo-page-title.component.mjs +20 -35
  136. package/esm2022/lib/figma/geo-pagination/geo-pagination.component.mjs +13 -43
  137. package/esm2022/lib/figma/geo-radio/geo-radio.component.mjs +32 -52
  138. package/esm2022/lib/figma/geo-select/geo-select.component.mjs +46 -72
  139. package/esm2022/lib/figma/geo-slider/geo-slider.component.mjs +12 -28
  140. package/esm2022/lib/figma/geo-stat-card/geo-stat-card.component.mjs +163 -0
  141. package/esm2022/lib/figma/geo-stat-card/geo-stat-card.types.mjs +2 -0
  142. package/esm2022/lib/figma/geo-status-tag/geo-status-tag.component.mjs +23 -27
  143. package/esm2022/lib/figma/geo-step-form-layout/geo-step-form-layout.component.mjs +39 -96
  144. package/esm2022/lib/figma/geo-stepper/geo-stepper.component.mjs +18 -33
  145. package/esm2022/lib/figma/geo-table/geo-column-picker/geo-column-picker.component.mjs +14 -24
  146. package/esm2022/lib/figma/geo-table/geo-row-actions/geo-row-actions.component.mjs +18 -36
  147. package/esm2022/lib/figma/geo-table/geo-table-filter/geo-table-filter.component.mjs +41 -98
  148. package/esm2022/lib/figma/geo-table/geo-table-pagination/geo-table-pagination.component.mjs +40 -73
  149. package/esm2022/lib/figma/geo-table/geo-table-toolbar/geo-table-toolbar.component.mjs +26 -56
  150. package/esm2022/lib/figma/geo-table/geo-table.component.mjs +110 -210
  151. package/esm2022/lib/figma/geo-tabs/geo-tabs.component.mjs +33 -63
  152. package/esm2022/lib/figma/geo-textarea/geo-textarea.component.mjs +28 -44
  153. package/esm2022/lib/figma/geo-toast/geo-toast.component.mjs +18 -39
  154. package/esm2022/lib/figma/geo-tree/geo-tree.component.mjs +12 -40
  155. package/esm2022/lib/figma/geo-typography/geo-typography.component.mjs +49 -64
  156. package/esm2022/lib/figma/geo-upload/geo-upload.component.mjs +50 -101
  157. package/esm2022/lib/figma/index.mjs +50 -1
  158. package/esm2022/lib/styles/tokens.mjs +56 -24
  159. package/fesm2022/geoit-ui.mjs +5981 -1825
  160. package/fesm2022/geoit-ui.mjs.map +1 -1
  161. package/lib/figma/geo-alert/geo-alert.component.d.ts +10 -11
  162. package/lib/figma/geo-back-button/geo-back-button.component.d.ts +6 -7
  163. package/lib/figma/geo-breadcrumb/geo-breadcrumb.component.d.ts +2 -2
  164. package/lib/figma/geo-button/geo-button.component.d.ts +21 -17
  165. package/lib/figma/geo-chart/geo-chart.component.d.ts +40 -0
  166. package/lib/figma/geo-chart/geo-chart.types.d.ts +13 -0
  167. package/lib/figma/geo-checkbox/geo-checkbox.component.d.ts +6 -7
  168. package/lib/figma/geo-confirm-modal/geo-confirm-modal.component.d.ts +15 -17
  169. package/lib/figma/geo-dashboard/geo-dashboard.component.d.ts +29 -0
  170. package/lib/figma/geo-dashboard/geo-dashboard.types.d.ts +7 -0
  171. package/lib/figma/geo-date-picker/geo-date-picker.component.d.ts +26 -21
  172. package/lib/figma/geo-date-range-picker/geo-date-range-picker.component.d.ts +25 -20
  173. package/lib/figma/geo-empty-state/geo-empty-state.component.d.ts +17 -0
  174. package/lib/figma/geo-feedback-form/geo-feedback-form.component.d.ts +36 -0
  175. package/lib/figma/geo-feedback-form/geo-feedback-form.types.d.ts +8 -0
  176. package/lib/figma/geo-file-picker/geo-file-picker.component.d.ts +23 -20
  177. package/lib/figma/geo-forgot-password/geo-forgot-password.component.d.ts +24 -0
  178. package/lib/figma/geo-form-modal/geo-form-modal.component.d.ts +33 -35
  179. package/lib/figma/geo-icon/geo-icon.component.d.ts +7 -7
  180. package/lib/figma/geo-input/geo-input.component.d.ts +23 -21
  181. package/lib/figma/geo-layout/footer/geo-layout-footer.component.d.ts +10 -0
  182. package/lib/figma/geo-layout/geo-layout-actions.directive.d.ts +6 -0
  183. package/lib/figma/geo-layout/geo-layout.component.d.ts +48 -0
  184. package/lib/figma/geo-layout/geo-layout.types.d.ts +44 -0
  185. package/lib/figma/geo-layout/header/geo-layout-header.component.d.ts +31 -0
  186. package/lib/figma/geo-layout/header-actions/geo-layout-header-actions.component.d.ts +32 -0
  187. package/lib/figma/geo-layout/sidebar/geo-layout-sidebar.component.d.ts +34 -0
  188. package/lib/figma/geo-list-page/geo-list-page.component.d.ts +16 -0
  189. package/lib/figma/geo-login/geo-login.component.d.ts +27 -0
  190. package/lib/figma/geo-login/geo-login.types.d.ts +6 -0
  191. package/lib/figma/geo-map/chrome/geo-map-admin-filter/geo-map-admin-filter.component.d.ts +28 -0
  192. package/lib/figma/geo-map/chrome/geo-map-basemap-switcher/geo-map-basemap-switcher.component.d.ts +26 -0
  193. package/lib/figma/geo-map/chrome/geo-map-help/geo-map-help.component.d.ts +20 -0
  194. package/lib/figma/geo-map/chrome/geo-map-layer-card/geo-map-layer-card.component.d.ts +15 -0
  195. package/lib/figma/geo-map/chrome/geo-map-layer-panel/geo-map-layer-panel.component.d.ts +40 -0
  196. package/lib/figma/geo-map/chrome/geo-map-layers-drawer/geo-map-layers-drawer.component.d.ts +25 -0
  197. package/lib/figma/geo-map/chrome/geo-map-legend/geo-map-legend.component.d.ts +18 -0
  198. package/lib/figma/geo-map/chrome/geo-map-locate/geo-map-locate.component.d.ts +24 -0
  199. package/lib/figma/geo-map/chrome/geo-map-location-chip/geo-map-location-chip.component.d.ts +14 -0
  200. package/lib/figma/geo-map/chrome/geo-map-measure/geo-map-measure.component.d.ts +49 -0
  201. package/lib/figma/geo-map/chrome/geo-map-opacity/geo-map-opacity.component.d.ts +30 -0
  202. package/lib/figma/geo-map/chrome/geo-map-parcel-popup/geo-map-parcel-popup.component.d.ts +44 -0
  203. package/lib/figma/geo-map/chrome/geo-map-search/geo-map-search.component.d.ts +56 -0
  204. package/lib/figma/geo-map/chrome/geo-map-shell/geo-map-shell.component.d.ts +103 -0
  205. package/lib/figma/geo-map/chrome/geo-map-snapshot/geo-map-snapshot.component.d.ts +21 -0
  206. package/lib/figma/geo-map/chrome/geo-map-swipe/geo-map-swipe.component.d.ts +33 -0
  207. package/lib/figma/geo-map/chrome/geo-map-toolbar/geo-map-toolbar.component.d.ts +30 -0
  208. package/lib/figma/geo-map/chrome/geo-map-zoom/geo-map-zoom.component.d.ts +67 -0
  209. package/lib/figma/geo-map/geo-map-toolbar.icons.d.ts +17 -0
  210. package/lib/figma/geo-map/geo-map.component.d.ts +53 -0
  211. package/lib/figma/geo-map/geo-map.constants.d.ts +73 -0
  212. package/lib/figma/geo-map/geo-map.controller.d.ts +49 -0
  213. package/lib/figma/geo-map/geo-map.types.d.ts +224 -0
  214. package/lib/figma/geo-map/services/geo-map-layer.service.d.ts +42 -0
  215. package/lib/figma/geo-map/services/geo-map-projection.service.d.ts +32 -0
  216. package/lib/figma/geo-map/services/geo-map.service.d.ts +99 -0
  217. package/lib/figma/geo-map/utils/geo-map-fullscreen-overlay.util.d.ts +13 -0
  218. package/lib/figma/geo-map/utils/geo-map-interactions.util.d.ts +9 -0
  219. package/lib/figma/geo-overlap-result/geo-overlap-result.component.d.ts +18 -0
  220. package/lib/figma/geo-overlap-result/geo-overlap-result.types.d.ts +7 -0
  221. package/lib/figma/geo-page-header/geo-page-header.component.d.ts +16 -0
  222. package/lib/figma/geo-page-title/geo-page-title.component.d.ts +9 -9
  223. package/lib/figma/geo-pagination/geo-pagination.component.d.ts +9 -14
  224. package/lib/figma/geo-radio/geo-radio.component.d.ts +17 -15
  225. package/lib/figma/geo-select/geo-select.component.d.ts +24 -19
  226. package/lib/figma/geo-slider/geo-slider.component.d.ts +7 -9
  227. package/lib/figma/geo-stat-card/geo-stat-card.component.d.ts +50 -0
  228. package/lib/figma/geo-stat-card/geo-stat-card.types.d.ts +11 -0
  229. package/lib/figma/geo-status-tag/geo-status-tag.component.d.ts +7 -7
  230. package/lib/figma/geo-step-form-layout/geo-step-form-layout.component.d.ts +27 -29
  231. package/lib/figma/geo-stepper/geo-stepper.component.d.ts +6 -8
  232. package/lib/figma/geo-table/geo-column-picker/geo-column-picker.component.d.ts +6 -7
  233. package/lib/figma/geo-table/geo-row-actions/geo-row-actions.component.d.ts +11 -12
  234. package/lib/figma/geo-table/geo-table-filter/geo-table-filter.component.d.ts +21 -28
  235. package/lib/figma/geo-table/geo-table-pagination/geo-table-pagination.component.d.ts +17 -20
  236. package/lib/figma/geo-table/geo-table-toolbar/geo-table-toolbar.component.d.ts +17 -18
  237. package/lib/figma/geo-table/geo-table.component.d.ts +58 -62
  238. package/lib/figma/geo-tabs/geo-tabs.component.d.ts +14 -17
  239. package/lib/figma/geo-textarea/geo-textarea.component.d.ts +15 -13
  240. package/lib/figma/geo-toast/geo-toast.component.d.ts +11 -12
  241. package/lib/figma/geo-tree/geo-tree.component.d.ts +8 -13
  242. package/lib/figma/geo-typography/geo-typography.component.d.ts +13 -13
  243. package/lib/figma/geo-upload/geo-upload.component.d.ts +26 -28
  244. package/lib/figma/index.d.ts +49 -0
  245. package/lib/styles/tokens.d.ts +56 -23
  246. package/package.json +4 -2
  247. package/src/lib/figma/geo-map/assets/toolbar/fullscreen.svg +8 -0
  248. package/src/lib/figma/geo-map/assets/toolbar/home.svg +3 -0
  249. package/src/lib/figma/geo-map/assets/toolbar/layers.svg +3 -0
  250. package/src/lib/figma/geo-map/assets/toolbar/measure-area.svg +12 -0
  251. package/src/lib/figma/geo-map/assets/toolbar/measure-distance.svg +5 -0
  252. package/src/lib/figma/geo-map/assets/toolbar/pan.svg +13 -0
  253. package/src/lib/figma/geo-map/assets/toolbar/search.svg +3 -0
  254. package/src/lib/figma/geo-map/assets/toolbar/zoom-in.svg +3 -0
  255. package/src/lib/figma/geo-map/assets/toolbar/zoom-out.svg +5 -0
  256. package/src/lib/styles/design-tokens.scss +108 -35
  257. package/src/lib/styles/scrollbar.scss +2 -2
  258. package/src/lib/styles/theme.scss +1 -1
@@ -1,77 +1,48 @@
1
- import { Component, EventEmitter, Input, Output } from '@angular/core';
2
- import { CommonModule } from '@angular/common';
1
+ import { ChangeDetectionStrategy, Component, computed, input, output, } from '@angular/core';
3
2
  import { NzIconModule } from 'ng-zorro-antd/icon';
4
3
  import { NzToolTipModule } from 'ng-zorro-antd/tooltip';
5
4
  import * as i0 from "@angular/core";
6
- import * as i1 from "@angular/common";
7
- import * as i2 from "ng-zorro-antd/icon";
8
- import * as i3 from "ng-zorro-antd/tooltip";
5
+ import * as i1 from "ng-zorro-antd/icon";
6
+ import * as i2 from "ng-zorro-antd/tooltip";
9
7
  export class GeoButtonComponent {
10
- appearance = 'primary';
11
- color = 'brand';
12
- icon;
13
- iconTheme = 'outline';
8
+ appearance = input('primary');
9
+ color = input('brand');
10
+ icon = input(undefined);
11
+ iconTheme = input('outline');
14
12
  /** Vị trí icon: `start` (trái) hoặc `end` (phải). */
15
- iconPlacement = 'start';
16
- iconOnly = false;
17
- type = 'button';
18
- disabled = false;
13
+ iconPlacement = input('start');
14
+ iconOnly = input(false);
15
+ type = input('button');
16
+ disabled = input(false);
19
17
  /** Tooltip Ant Design (`nz-tooltip`). Ưu tiên hơn `title` native. */
20
- tooltip = '';
21
- tooltipPlacement = 'top';
18
+ tooltip = input('');
19
+ tooltipPlacement = input('top');
22
20
  /** Trạng thái active (vd. toolbar toggle đang bật). */
23
- active = false;
21
+ active = input(false);
24
22
  /** Native `title` — fallback khi không set `tooltip`. */
25
- title = '';
26
- clicked = new EventEmitter();
27
- get tooltipTitle() {
28
- return this.tooltip || this.title || '';
29
- }
30
- get classNames() {
23
+ title = input('');
24
+ clicked = output();
25
+ tooltipTitle = computed(() => this.tooltip() || this.title() || '');
26
+ classNames = computed(() => {
27
+ const icon = this.icon();
31
28
  return {
32
- [`geo-button--${this.appearance}`]: true,
33
- [`geo-button--${this.color}`]: true,
34
- 'geo-button--icon-only': this.iconOnly,
35
- 'geo-button--icon-end': !!this.icon && this.iconPlacement === 'end',
36
- 'geo-button--active': this.active,
29
+ [`geo-button--${this.appearance()}`]: true,
30
+ [`geo-button--${this.color()}`]: true,
31
+ 'geo-button--icon-only': this.iconOnly(),
32
+ 'geo-button--icon-end': !!icon && this.iconPlacement() === 'end',
33
+ 'geo-button--active': this.active(),
37
34
  };
38
- }
35
+ });
39
36
  onClick(event) {
40
- if (!this.disabled) {
37
+ if (!this.disabled()) {
41
38
  this.clicked.emit(event);
42
39
  }
43
40
  }
44
41
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: GeoButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
45
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: GeoButtonComponent, isStandalone: true, selector: "geo-button", inputs: { appearance: "appearance", color: "color", icon: "icon", iconTheme: "iconTheme", iconPlacement: "iconPlacement", iconOnly: "iconOnly", type: "type", disabled: "disabled", tooltip: "tooltip", tooltipPlacement: "tooltipPlacement", active: "active", title: "title" }, outputs: { clicked: "clicked" }, ngImport: i0, template: "<button\n [type]=\"type\"\n [disabled]=\"disabled\"\n class=\"geo-button\"\n [ngClass]=\"classNames\"\n [nz-tooltip]=\"tooltipTitle\"\n [nzTooltipPlacement]=\"tooltipPlacement\"\n [nzTooltipTrigger]=\"tooltipTitle ? 'hover' : null\"\n [attr.aria-label]=\"tooltipTitle || null\"\n [attr.aria-pressed]=\"active ? true : null\"\n (click)=\"onClick($event)\"\n>\n @if (icon && iconPlacement === 'start') {\n <span class=\"geo-button__icon\">\n <span nz-icon [nzType]=\"icon\" [nzTheme]=\"iconTheme\"></span>\n </span>\n }\n @if (!iconOnly) {\n <span class=\"geo-button__label\">\n <ng-content></ng-content>\n </span>\n }\n @if (icon && iconPlacement === 'end') {\n <span class=\"geo-button__icon\">\n <span nz-icon [nzType]=\"icon\" [nzTheme]=\"iconTheme\"></span>\n </span>\n }\n</button>\n", styles: [".geo-button{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:var(--geo-control-height);min-height:var(--geo-control-height);padding:0 16px;border-radius:var(--geo-radius);border:1px solid transparent;font-size:var(--geo-font-size-sm);font-weight:500;line-height:normal;cursor:pointer;transition:background-color .15s ease,border-color .15s ease,color .15s ease;white-space:nowrap;font-family:inherit;background:transparent;box-sizing:border-box}.geo-button.geo-button--brand{--geo-btn-tone: var(--geo-color-primary-default);--geo-btn-tone-dark: var(--geo-color-primary-hover);--geo-btn-tone-surface: var(--geo-color-primary-surface-light);--geo-btn-secondary-hover: var(--geo-color-primary-secondary-hover)}.geo-button.geo-button--danger{--geo-btn-tone: var(--geo-color-error-default);--geo-btn-tone-dark: var(--geo-color-error-dark);--geo-btn-tone-surface: var(--geo-color-error-light);--geo-btn-secondary-hover: var(--geo-color-error-light)}.geo-button.geo-button--warning{--geo-btn-tone: var(--geo-color-warning-default);--geo-btn-tone-dark: var(--geo-color-warning-dark);--geo-btn-tone-surface: var(--geo-color-warning-light);--geo-btn-secondary-hover: var(--geo-color-warning-light)}.geo-button.geo-button--success{--geo-btn-tone: var(--geo-color-success-default);--geo-btn-tone-dark: var(--geo-color-success-dark);--geo-btn-tone-surface: var(--geo-color-success-light);--geo-btn-secondary-hover: var(--geo-color-success-light)}.geo-button:disabled{cursor:not-allowed;pointer-events:none}.geo-button--primary{background:var(--geo-btn-tone);border-color:var(--geo-btn-tone);color:var(--geo-color-neutral-white)}.geo-button--primary:hover:not(:disabled){background:var(--geo-btn-tone-dark);border-color:var(--geo-btn-tone-dark)}.geo-button--primary:disabled{background:var(--geo-color-neutral-300);border-color:var(--geo-color-neutral-300);color:var(--geo-color-neutral-disabled-text)}.geo-button--secondary{background:var(--geo-color-neutral-white);border-color:var(--geo-btn-tone);color:var(--geo-btn-tone)}.geo-button--secondary:hover:not(:disabled){background:var(--geo-btn-secondary-hover)}.geo-button--secondary:disabled{background:var(--geo-color-neutral-white);border-color:var(--geo-color-neutral-300);color:var(--geo-color-neutral-disabled-text)}.geo-button--tertiary{background:transparent;border-color:transparent;color:var(--geo-btn-tone)}.geo-button--tertiary:hover:not(:disabled){background:var(--geo-btn-tone-surface)}.geo-button--tertiary:disabled{background:transparent;border-color:transparent;color:var(--geo-color-neutral-disabled-text)}.geo-button--icon-only{width:var(--geo-control-height);min-width:var(--geo-control-height);padding:0}.geo-button--active:not(:disabled).geo-button--secondary,.geo-button--active:not(:disabled).geo-button--tertiary{background:var(--geo-btn-tone-surface);border-color:var(--geo-btn-tone);color:var(--geo-btn-tone);box-shadow:inset 0 0 0 1px var(--geo-btn-tone)}.geo-button--active:not(:disabled).geo-button--primary{background:var(--geo-btn-tone-dark);border-color:var(--geo-btn-tone-dark);color:var(--geo-color-neutral-white)}.geo-button__icon{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:16px;height:16px;font-size:16px;line-height:1}.geo-button__icon:empty{display:none}.geo-button__icon :deep(.anticon),.geo-button__icon :deep(em){width:16px;height:16px;font-size:16px}.geo-button__label{display:inline-flex;align-items:center}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: NzIconModule }, { kind: "directive", type: i2.NzIconDirective, selector: "[nz-icon]", inputs: ["nzSpin", "nzRotate", "nzType", "nzTheme", "nzTwotoneColor", "nzIconfont"], exportAs: ["nzIcon"] }, { kind: "ngmodule", type: NzToolTipModule }, { kind: "directive", type: i3.NzTooltipDirective, selector: "[nz-tooltip]", inputs: ["nzTooltipTitle", "nzTooltipTitleContext", "nz-tooltip", "nzTooltipTrigger", "nzTooltipPlacement", "nzTooltipOrigin", "nzTooltipVisible", "nzTooltipMouseEnterDelay", "nzTooltipMouseLeaveDelay", "nzTooltipOverlayClassName", "nzTooltipOverlayStyle", "nzTooltipArrowPointAtCenter", "cdkConnectedOverlayPush", "nzTooltipColor"], outputs: ["nzTooltipVisibleChange"], exportAs: ["nzTooltip"] }] });
42
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: GeoButtonComponent, isStandalone: true, selector: "geo-button", inputs: { appearance: { classPropertyName: "appearance", publicName: "appearance", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, iconTheme: { classPropertyName: "iconTheme", publicName: "iconTheme", isSignal: true, isRequired: false, transformFunction: null }, iconPlacement: { classPropertyName: "iconPlacement", publicName: "iconPlacement", isSignal: true, isRequired: false, transformFunction: null }, iconOnly: { classPropertyName: "iconOnly", publicName: "iconOnly", isSignal: true, isRequired: false, transformFunction: null }, type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, tooltip: { classPropertyName: "tooltip", publicName: "tooltip", isSignal: true, isRequired: false, transformFunction: null }, tooltipPlacement: { classPropertyName: "tooltipPlacement", publicName: "tooltipPlacement", isSignal: true, isRequired: false, transformFunction: null }, active: { classPropertyName: "active", publicName: "active", isSignal: true, isRequired: false, transformFunction: null }, title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { clicked: "clicked" }, ngImport: i0, template: "<button\n [type]=\"type()\"\n [disabled]=\"disabled()\"\n class=\"geo-button\"\n [class]=\"classNames()\"\n [nz-tooltip]=\"tooltipTitle()\"\n [nzTooltipPlacement]=\"tooltipPlacement()\"\n [nzTooltipTrigger]=\"tooltipTitle() ? 'hover' : null\"\n [attr.aria-label]=\"tooltipTitle() || null\"\n [attr.aria-pressed]=\"active() ? true : null\"\n (click)=\"onClick($event)\"\n>\n @if (icon(); as iconName) {\n @if (iconPlacement() === 'start') {\n <span class=\"geo-button__icon\">\n <span nz-icon [nzType]=\"iconName\" [nzTheme]=\"iconTheme()\"></span>\n </span>\n }\n }\n @if (!iconOnly()) {\n <span class=\"geo-button__label\">\n <ng-content></ng-content>\n </span>\n }\n @if (icon(); as iconName) {\n @if (iconPlacement() === 'end') {\n <span class=\"geo-button__icon\">\n <span nz-icon [nzType]=\"iconName\" [nzTheme]=\"iconTheme()\"></span>\n </span>\n }\n }\n</button>\n", styles: [".geo-button{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:var(--geo-control-height);min-height:var(--geo-control-height);padding:0 16px;border-radius:var(--geo-radius);border:1px solid transparent;font-size:var(--geo-font-size-sm);font-weight:500;line-height:normal;cursor:pointer;transition:background-color .15s ease,border-color .15s ease,color .15s ease;white-space:nowrap;font-family:inherit;background:transparent;box-sizing:border-box}.geo-button.geo-button--brand{--geo-btn-tone: var(--geo-color-primary-default);--geo-btn-tone-dark: var(--geo-color-primary-hover);--geo-btn-tone-surface: var(--geo-color-primary-surface-light);--geo-btn-secondary-hover: var(--geo-color-primary-secondary-hover)}.geo-button.geo-button--danger{--geo-btn-tone: var(--geo-color-error-default);--geo-btn-tone-dark: var(--geo-color-error-dark);--geo-btn-tone-surface: var(--geo-color-error-light);--geo-btn-secondary-hover: var(--geo-color-error-light)}.geo-button.geo-button--warning{--geo-btn-tone: var(--geo-color-warning-default);--geo-btn-tone-dark: var(--geo-color-warning-dark);--geo-btn-tone-surface: var(--geo-color-warning-light);--geo-btn-secondary-hover: var(--geo-color-warning-light)}.geo-button.geo-button--success{--geo-btn-tone: var(--geo-color-success-default);--geo-btn-tone-dark: var(--geo-color-success-dark);--geo-btn-tone-surface: var(--geo-color-success-light);--geo-btn-secondary-hover: var(--geo-color-success-light)}.geo-button:disabled{cursor:not-allowed;pointer-events:none}.geo-button--primary{background:var(--geo-btn-tone);border-color:var(--geo-btn-tone);color:var(--geo-color-neutral-white)}.geo-button--primary:hover:not(:disabled){background:var(--geo-btn-tone-dark);border-color:var(--geo-btn-tone-dark)}.geo-button--primary:disabled{background:var(--geo-color-neutral-300);border-color:var(--geo-color-neutral-300);color:var(--geo-color-neutral-disabled-text)}.geo-button--secondary{background:var(--geo-color-neutral-white);border-color:var(--geo-btn-tone);color:var(--geo-btn-tone)}.geo-button--secondary:hover:not(:disabled){background:var(--geo-btn-secondary-hover)}.geo-button--secondary:disabled{background:var(--geo-color-neutral-white);border-color:var(--geo-color-neutral-300);color:var(--geo-color-neutral-disabled-text)}.geo-button--tertiary{background:transparent;border-color:transparent;color:var(--geo-btn-tone)}.geo-button--tertiary:hover:not(:disabled){background:var(--geo-btn-tone-surface)}.geo-button--tertiary:disabled{background:transparent;border-color:transparent;color:var(--geo-color-neutral-disabled-text)}.geo-button--icon-only{width:var(--geo-control-height);min-width:var(--geo-control-height);padding:0}.geo-button--active:not(:disabled).geo-button--secondary,.geo-button--active:not(:disabled).geo-button--tertiary{background:var(--geo-btn-tone-surface);border-color:var(--geo-btn-tone);color:var(--geo-btn-tone);box-shadow:inset 0 0 0 1px var(--geo-btn-tone)}.geo-button--active:not(:disabled).geo-button--primary{background:var(--geo-btn-tone-dark);border-color:var(--geo-btn-tone-dark);color:var(--geo-color-neutral-white)}.geo-button__icon{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:16px;height:16px;font-size:16px;line-height:1}.geo-button__icon:empty{display:none}.geo-button__icon :deep(.anticon),.geo-button__icon :deep(em){width:16px;height:16px;font-size:16px}.geo-button__label{display:inline-flex;align-items:center}\n"], dependencies: [{ kind: "ngmodule", type: NzIconModule }, { kind: "directive", type: i1.NzIconDirective, selector: "[nz-icon]", inputs: ["nzSpin", "nzRotate", "nzType", "nzTheme", "nzTwotoneColor", "nzIconfont"], exportAs: ["nzIcon"] }, { kind: "ngmodule", type: NzToolTipModule }, { kind: "directive", type: i2.NzTooltipDirective, selector: "[nz-tooltip]", inputs: ["nzTooltipTitle", "nzTooltipTitleContext", "nz-tooltip", "nzTooltipTrigger", "nzTooltipPlacement", "nzTooltipOrigin", "nzTooltipVisible", "nzTooltipMouseEnterDelay", "nzTooltipMouseLeaveDelay", "nzTooltipOverlayClassName", "nzTooltipOverlayStyle", "nzTooltipArrowPointAtCenter", "cdkConnectedOverlayPush", "nzTooltipColor"], outputs: ["nzTooltipVisibleChange"], exportAs: ["nzTooltip"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
46
43
  }
47
44
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: GeoButtonComponent, decorators: [{
48
45
  type: Component,
49
- args: [{ selector: 'geo-button', standalone: true, imports: [CommonModule, NzIconModule, NzToolTipModule], template: "<button\n [type]=\"type\"\n [disabled]=\"disabled\"\n class=\"geo-button\"\n [ngClass]=\"classNames\"\n [nz-tooltip]=\"tooltipTitle\"\n [nzTooltipPlacement]=\"tooltipPlacement\"\n [nzTooltipTrigger]=\"tooltipTitle ? 'hover' : null\"\n [attr.aria-label]=\"tooltipTitle || null\"\n [attr.aria-pressed]=\"active ? true : null\"\n (click)=\"onClick($event)\"\n>\n @if (icon && iconPlacement === 'start') {\n <span class=\"geo-button__icon\">\n <span nz-icon [nzType]=\"icon\" [nzTheme]=\"iconTheme\"></span>\n </span>\n }\n @if (!iconOnly) {\n <span class=\"geo-button__label\">\n <ng-content></ng-content>\n </span>\n }\n @if (icon && iconPlacement === 'end') {\n <span class=\"geo-button__icon\">\n <span nz-icon [nzType]=\"icon\" [nzTheme]=\"iconTheme\"></span>\n </span>\n }\n</button>\n", styles: [".geo-button{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:var(--geo-control-height);min-height:var(--geo-control-height);padding:0 16px;border-radius:var(--geo-radius);border:1px solid transparent;font-size:var(--geo-font-size-sm);font-weight:500;line-height:normal;cursor:pointer;transition:background-color .15s ease,border-color .15s ease,color .15s ease;white-space:nowrap;font-family:inherit;background:transparent;box-sizing:border-box}.geo-button.geo-button--brand{--geo-btn-tone: var(--geo-color-primary-default);--geo-btn-tone-dark: var(--geo-color-primary-hover);--geo-btn-tone-surface: var(--geo-color-primary-surface-light);--geo-btn-secondary-hover: var(--geo-color-primary-secondary-hover)}.geo-button.geo-button--danger{--geo-btn-tone: var(--geo-color-error-default);--geo-btn-tone-dark: var(--geo-color-error-dark);--geo-btn-tone-surface: var(--geo-color-error-light);--geo-btn-secondary-hover: var(--geo-color-error-light)}.geo-button.geo-button--warning{--geo-btn-tone: var(--geo-color-warning-default);--geo-btn-tone-dark: var(--geo-color-warning-dark);--geo-btn-tone-surface: var(--geo-color-warning-light);--geo-btn-secondary-hover: var(--geo-color-warning-light)}.geo-button.geo-button--success{--geo-btn-tone: var(--geo-color-success-default);--geo-btn-tone-dark: var(--geo-color-success-dark);--geo-btn-tone-surface: var(--geo-color-success-light);--geo-btn-secondary-hover: var(--geo-color-success-light)}.geo-button:disabled{cursor:not-allowed;pointer-events:none}.geo-button--primary{background:var(--geo-btn-tone);border-color:var(--geo-btn-tone);color:var(--geo-color-neutral-white)}.geo-button--primary:hover:not(:disabled){background:var(--geo-btn-tone-dark);border-color:var(--geo-btn-tone-dark)}.geo-button--primary:disabled{background:var(--geo-color-neutral-300);border-color:var(--geo-color-neutral-300);color:var(--geo-color-neutral-disabled-text)}.geo-button--secondary{background:var(--geo-color-neutral-white);border-color:var(--geo-btn-tone);color:var(--geo-btn-tone)}.geo-button--secondary:hover:not(:disabled){background:var(--geo-btn-secondary-hover)}.geo-button--secondary:disabled{background:var(--geo-color-neutral-white);border-color:var(--geo-color-neutral-300);color:var(--geo-color-neutral-disabled-text)}.geo-button--tertiary{background:transparent;border-color:transparent;color:var(--geo-btn-tone)}.geo-button--tertiary:hover:not(:disabled){background:var(--geo-btn-tone-surface)}.geo-button--tertiary:disabled{background:transparent;border-color:transparent;color:var(--geo-color-neutral-disabled-text)}.geo-button--icon-only{width:var(--geo-control-height);min-width:var(--geo-control-height);padding:0}.geo-button--active:not(:disabled).geo-button--secondary,.geo-button--active:not(:disabled).geo-button--tertiary{background:var(--geo-btn-tone-surface);border-color:var(--geo-btn-tone);color:var(--geo-btn-tone);box-shadow:inset 0 0 0 1px var(--geo-btn-tone)}.geo-button--active:not(:disabled).geo-button--primary{background:var(--geo-btn-tone-dark);border-color:var(--geo-btn-tone-dark);color:var(--geo-color-neutral-white)}.geo-button__icon{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:16px;height:16px;font-size:16px;line-height:1}.geo-button__icon:empty{display:none}.geo-button__icon :deep(.anticon),.geo-button__icon :deep(em){width:16px;height:16px;font-size:16px}.geo-button__label{display:inline-flex;align-items:center}\n"] }]
50
- }], propDecorators: { appearance: [{
51
- type: Input
52
- }], color: [{
53
- type: Input
54
- }], icon: [{
55
- type: Input
56
- }], iconTheme: [{
57
- type: Input
58
- }], iconPlacement: [{
59
- type: Input
60
- }], iconOnly: [{
61
- type: Input
62
- }], type: [{
63
- type: Input
64
- }], disabled: [{
65
- type: Input
66
- }], tooltip: [{
67
- type: Input
68
- }], tooltipPlacement: [{
69
- type: Input
70
- }], active: [{
71
- type: Input
72
- }], title: [{
73
- type: Input
74
- }], clicked: [{
75
- type: Output
76
- }] } });
77
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VvLWJ1dHRvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9nZW8tdWkvc3JjL2xpYi9maWdtYS9nZW8tYnV0dG9uL2dlby1idXR0b24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZ2VvLXVpL3NyYy9saWIvZmlnbWEvZ2VvLWJ1dHRvbi9nZW8tYnV0dG9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7Ozs7O0FBVXhELE1BQU0sT0FBTyxrQkFBa0I7SUFDcEIsVUFBVSxHQUF3QixTQUFTLENBQUM7SUFDNUMsS0FBSyxHQUFtQixPQUFPLENBQUM7SUFDaEMsSUFBSSxDQUFVO0lBQ2QsU0FBUyxHQUFtQyxTQUFTLENBQUM7SUFDL0QscURBQXFEO0lBQzVDLGFBQWEsR0FBb0IsT0FBTyxDQUFDO0lBQ3pDLFFBQVEsR0FBRyxLQUFLLENBQUM7SUFDakIsSUFBSSxHQUF3QixRQUFRLENBQUM7SUFDckMsUUFBUSxHQUFHLEtBQUssQ0FBQztJQUMxQixxRUFBcUU7SUFDNUQsT0FBTyxHQUFHLEVBQUUsQ0FBQztJQUNiLGdCQUFnQixHQUE4QixLQUFLLENBQUM7SUFDN0QsdURBQXVEO0lBQzlDLE1BQU0sR0FBRyxLQUFLLENBQUM7SUFDeEIseURBQXlEO0lBQ2hELEtBQUssR0FBRyxFQUFFLENBQUM7SUFFVixPQUFPLEdBQUcsSUFBSSxZQUFZLEVBQWMsQ0FBQztJQUVuRCxJQUFJLFlBQVk7UUFDZCxPQUFPLElBQUksQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUM7SUFDMUMsQ0FBQztJQUVELElBQUksVUFBVTtRQUNaLE9BQU87WUFDTCxDQUFDLGVBQWUsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLEVBQUUsSUFBSTtZQUN4QyxDQUFDLGVBQWUsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLEVBQUUsSUFBSTtZQUNuQyx1QkFBdUIsRUFBRSxJQUFJLENBQUMsUUFBUTtZQUN0QyxzQkFBc0IsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsYUFBYSxLQUFLLEtBQUs7WUFDbkUsb0JBQW9CLEVBQUUsSUFBSSxDQUFDLE1BQU07U0FDbEMsQ0FBQztJQUNKLENBQUM7SUFFRCxPQUFPLENBQUMsS0FBaUI7UUFDdkIsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNuQixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMzQixDQUFDO0lBQ0gsQ0FBQzt3R0F0Q1Usa0JBQWtCOzRGQUFsQixrQkFBa0IseVhDYi9CLHMwQkE0QkEsMDdHRG5CWSxZQUFZLDRIQUFFLFlBQVksaU5BQUUsZUFBZTs7NEZBSTFDLGtCQUFrQjtrQkFQOUIsU0FBUzsrQkFDRSxZQUFZLGNBQ1YsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLFlBQVksRUFBRSxlQUFlLENBQUM7OEJBSzdDLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUVHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFFRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUVHLE1BQU07c0JBQWQsS0FBSztnQkFFRyxLQUFLO3NCQUFiLEtBQUs7Z0JBRUksT0FBTztzQkFBaEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTnpJY29uTW9kdWxlIH0gZnJvbSAnbmctem9ycm8tYW50ZC9pY29uJztcbmltcG9ydCB7IE56VG9vbFRpcE1vZHVsZSB9IGZyb20gJ25nLXpvcnJvLWFudGQvdG9vbHRpcCc7XG5pbXBvcnQgeyBHZW9CdXR0b25BcHBlYXJhbmNlLCBHZW9CdXR0b25Db2xvciwgR2VvQnV0dG9uVG9vbHRpcFBsYWNlbWVudCB9IGZyb20gJy4vZ2VvLWJ1dHRvbi50eXBlcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2dlby1idXR0b24nLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBOekljb25Nb2R1bGUsIE56VG9vbFRpcE1vZHVsZV0sXG4gIHRlbXBsYXRlVXJsOiAnLi9nZW8tYnV0dG9uLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL2dlby1idXR0b24uY29tcG9uZW50LnNjc3MnLFxufSlcbmV4cG9ydCBjbGFzcyBHZW9CdXR0b25Db21wb25lbnQge1xuICBASW5wdXQoKSBhcHBlYXJhbmNlOiBHZW9CdXR0b25BcHBlYXJhbmNlID0gJ3ByaW1hcnknO1xuICBASW5wdXQoKSBjb2xvcjogR2VvQnV0dG9uQ29sb3IgPSAnYnJhbmQnO1xuICBASW5wdXQoKSBpY29uPzogc3RyaW5nO1xuICBASW5wdXQoKSBpY29uVGhlbWU6ICdvdXRsaW5lJyB8ICdmaWxsJyB8ICd0d290b25lJyA9ICdvdXRsaW5lJztcbiAgLyoqIFbhu4sgdHLDrSBpY29uOiBgc3RhcnRgICh0csOhaSkgaG/hurdjIGBlbmRgIChwaOG6o2kpLiAqL1xuICBASW5wdXQoKSBpY29uUGxhY2VtZW50OiAnc3RhcnQnIHwgJ2VuZCcgPSAnc3RhcnQnO1xuICBASW5wdXQoKSBpY29uT25seSA9IGZhbHNlO1xuICBASW5wdXQoKSB0eXBlOiAnYnV0dG9uJyB8ICdzdWJtaXQnID0gJ2J1dHRvbic7XG4gIEBJbnB1dCgpIGRpc2FibGVkID0gZmFsc2U7XG4gIC8qKiBUb29sdGlwIEFudCBEZXNpZ24gKGBuei10b29sdGlwYCkuIMavdSB0acOqbiBoxqFuIGB0aXRsZWAgbmF0aXZlLiAqL1xuICBASW5wdXQoKSB0b29sdGlwID0gJyc7XG4gIEBJbnB1dCgpIHRvb2x0aXBQbGFjZW1lbnQ6IEdlb0J1dHRvblRvb2x0aXBQbGFjZW1lbnQgPSAndG9wJztcbiAgLyoqIFRy4bqhbmcgdGjDoWkgYWN0aXZlICh2ZC4gdG9vbGJhciB0b2dnbGUgxJFhbmcgYuG6rXQpLiAqL1xuICBASW5wdXQoKSBhY3RpdmUgPSBmYWxzZTtcbiAgLyoqIE5hdGl2ZSBgdGl0bGVgIOKAlCBmYWxsYmFjayBraGkga2jDtG5nIHNldCBgdG9vbHRpcGAuICovXG4gIEBJbnB1dCgpIHRpdGxlID0gJyc7XG5cbiAgQE91dHB1dCgpIGNsaWNrZWQgPSBuZXcgRXZlbnRFbWl0dGVyPE1vdXNlRXZlbnQ+KCk7XG5cbiAgZ2V0IHRvb2x0aXBUaXRsZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnRvb2x0aXAgfHwgdGhpcy50aXRsZSB8fCAnJztcbiAgfVxuXG4gIGdldCBjbGFzc05hbWVzKCk6IFJlY29yZDxzdHJpbmcsIGJvb2xlYW4+IHtcbiAgICByZXR1cm4ge1xuICAgICAgW2BnZW8tYnV0dG9uLS0ke3RoaXMuYXBwZWFyYW5jZX1gXTogdHJ1ZSxcbiAgICAgIFtgZ2VvLWJ1dHRvbi0tJHt0aGlzLmNvbG9yfWBdOiB0cnVlLFxuICAgICAgJ2dlby1idXR0b24tLWljb24tb25seSc6IHRoaXMuaWNvbk9ubHksXG4gICAgICAnZ2VvLWJ1dHRvbi0taWNvbi1lbmQnOiAhIXRoaXMuaWNvbiAmJiB0aGlzLmljb25QbGFjZW1lbnQgPT09ICdlbmQnLFxuICAgICAgJ2dlby1idXR0b24tLWFjdGl2ZSc6IHRoaXMuYWN0aXZlLFxuICAgIH07XG4gIH1cblxuICBvbkNsaWNrKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmRpc2FibGVkKSB7XG4gICAgICB0aGlzLmNsaWNrZWQuZW1pdChldmVudCk7XG4gICAgfVxuICB9XG59XG4iLCI8YnV0dG9uXG4gIFt0eXBlXT1cInR5cGVcIlxuICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICBjbGFzcz1cImdlby1idXR0b25cIlxuICBbbmdDbGFzc109XCJjbGFzc05hbWVzXCJcbiAgW256LXRvb2x0aXBdPVwidG9vbHRpcFRpdGxlXCJcbiAgW256VG9vbHRpcFBsYWNlbWVudF09XCJ0b29sdGlwUGxhY2VtZW50XCJcbiAgW256VG9vbHRpcFRyaWdnZXJdPVwidG9vbHRpcFRpdGxlID8gJ2hvdmVyJyA6IG51bGxcIlxuICBbYXR0ci5hcmlhLWxhYmVsXT1cInRvb2x0aXBUaXRsZSB8fCBudWxsXCJcbiAgW2F0dHIuYXJpYS1wcmVzc2VkXT1cImFjdGl2ZSA/IHRydWUgOiBudWxsXCJcbiAgKGNsaWNrKT1cIm9uQ2xpY2soJGV2ZW50KVwiXG4+XG4gIEBpZiAoaWNvbiAmJiBpY29uUGxhY2VtZW50ID09PSAnc3RhcnQnKSB7XG4gICAgPHNwYW4gY2xhc3M9XCJnZW8tYnV0dG9uX19pY29uXCI+XG4gICAgICA8c3BhbiBuei1pY29uIFtuelR5cGVdPVwiaWNvblwiIFtuelRoZW1lXT1cImljb25UaGVtZVwiPjwvc3Bhbj5cbiAgICA8L3NwYW4+XG4gIH1cbiAgQGlmICghaWNvbk9ubHkpIHtcbiAgICA8c3BhbiBjbGFzcz1cImdlby1idXR0b25fX2xhYmVsXCI+XG4gICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgPC9zcGFuPlxuICB9XG4gIEBpZiAoaWNvbiAmJiBpY29uUGxhY2VtZW50ID09PSAnZW5kJykge1xuICAgIDxzcGFuIGNsYXNzPVwiZ2VvLWJ1dHRvbl9faWNvblwiPlxuICAgICAgPHNwYW4gbnotaWNvbiBbbnpUeXBlXT1cImljb25cIiBbbnpUaGVtZV09XCJpY29uVGhlbWVcIj48L3NwYW4+XG4gICAgPC9zcGFuPlxuICB9XG48L2J1dHRvbj5cbiJdfQ==
46
+ args: [{ selector: 'geo-button', standalone: true, imports: [NzIconModule, NzToolTipModule], changeDetection: ChangeDetectionStrategy.OnPush, template: "<button\n [type]=\"type()\"\n [disabled]=\"disabled()\"\n class=\"geo-button\"\n [class]=\"classNames()\"\n [nz-tooltip]=\"tooltipTitle()\"\n [nzTooltipPlacement]=\"tooltipPlacement()\"\n [nzTooltipTrigger]=\"tooltipTitle() ? 'hover' : null\"\n [attr.aria-label]=\"tooltipTitle() || null\"\n [attr.aria-pressed]=\"active() ? true : null\"\n (click)=\"onClick($event)\"\n>\n @if (icon(); as iconName) {\n @if (iconPlacement() === 'start') {\n <span class=\"geo-button__icon\">\n <span nz-icon [nzType]=\"iconName\" [nzTheme]=\"iconTheme()\"></span>\n </span>\n }\n }\n @if (!iconOnly()) {\n <span class=\"geo-button__label\">\n <ng-content></ng-content>\n </span>\n }\n @if (icon(); as iconName) {\n @if (iconPlacement() === 'end') {\n <span class=\"geo-button__icon\">\n <span nz-icon [nzType]=\"iconName\" [nzTheme]=\"iconTheme()\"></span>\n </span>\n }\n }\n</button>\n", styles: [".geo-button{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:var(--geo-control-height);min-height:var(--geo-control-height);padding:0 16px;border-radius:var(--geo-radius);border:1px solid transparent;font-size:var(--geo-font-size-sm);font-weight:500;line-height:normal;cursor:pointer;transition:background-color .15s ease,border-color .15s ease,color .15s ease;white-space:nowrap;font-family:inherit;background:transparent;box-sizing:border-box}.geo-button.geo-button--brand{--geo-btn-tone: var(--geo-color-primary-default);--geo-btn-tone-dark: var(--geo-color-primary-hover);--geo-btn-tone-surface: var(--geo-color-primary-surface-light);--geo-btn-secondary-hover: var(--geo-color-primary-secondary-hover)}.geo-button.geo-button--danger{--geo-btn-tone: var(--geo-color-error-default);--geo-btn-tone-dark: var(--geo-color-error-dark);--geo-btn-tone-surface: var(--geo-color-error-light);--geo-btn-secondary-hover: var(--geo-color-error-light)}.geo-button.geo-button--warning{--geo-btn-tone: var(--geo-color-warning-default);--geo-btn-tone-dark: var(--geo-color-warning-dark);--geo-btn-tone-surface: var(--geo-color-warning-light);--geo-btn-secondary-hover: var(--geo-color-warning-light)}.geo-button.geo-button--success{--geo-btn-tone: var(--geo-color-success-default);--geo-btn-tone-dark: var(--geo-color-success-dark);--geo-btn-tone-surface: var(--geo-color-success-light);--geo-btn-secondary-hover: var(--geo-color-success-light)}.geo-button:disabled{cursor:not-allowed;pointer-events:none}.geo-button--primary{background:var(--geo-btn-tone);border-color:var(--geo-btn-tone);color:var(--geo-color-neutral-white)}.geo-button--primary:hover:not(:disabled){background:var(--geo-btn-tone-dark);border-color:var(--geo-btn-tone-dark)}.geo-button--primary:disabled{background:var(--geo-color-neutral-300);border-color:var(--geo-color-neutral-300);color:var(--geo-color-neutral-disabled-text)}.geo-button--secondary{background:var(--geo-color-neutral-white);border-color:var(--geo-btn-tone);color:var(--geo-btn-tone)}.geo-button--secondary:hover:not(:disabled){background:var(--geo-btn-secondary-hover)}.geo-button--secondary:disabled{background:var(--geo-color-neutral-white);border-color:var(--geo-color-neutral-300);color:var(--geo-color-neutral-disabled-text)}.geo-button--tertiary{background:transparent;border-color:transparent;color:var(--geo-btn-tone)}.geo-button--tertiary:hover:not(:disabled){background:var(--geo-btn-tone-surface)}.geo-button--tertiary:disabled{background:transparent;border-color:transparent;color:var(--geo-color-neutral-disabled-text)}.geo-button--icon-only{width:var(--geo-control-height);min-width:var(--geo-control-height);padding:0}.geo-button--active:not(:disabled).geo-button--secondary,.geo-button--active:not(:disabled).geo-button--tertiary{background:var(--geo-btn-tone-surface);border-color:var(--geo-btn-tone);color:var(--geo-btn-tone);box-shadow:inset 0 0 0 1px var(--geo-btn-tone)}.geo-button--active:not(:disabled).geo-button--primary{background:var(--geo-btn-tone-dark);border-color:var(--geo-btn-tone-dark);color:var(--geo-color-neutral-white)}.geo-button__icon{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:16px;height:16px;font-size:16px;line-height:1}.geo-button__icon:empty{display:none}.geo-button__icon :deep(.anticon),.geo-button__icon :deep(em){width:16px;height:16px;font-size:16px}.geo-button__label{display:inline-flex;align-items:center}\n"] }]
47
+ }] });
48
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VvLWJ1dHRvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9nZW8tdWkvc3JjL2xpYi9maWdtYS9nZW8tYnV0dG9uL2dlby1idXR0b24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZ2VvLXVpL3NyYy9saWIvZmlnbWEvZ2VvLWJ1dHRvbi9nZW8tYnV0dG9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFFBQVEsRUFDUixLQUFLLEVBQ0wsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7Ozs7QUFXeEQsTUFBTSxPQUFPLGtCQUFrQjtJQUNwQixVQUFVLEdBQUcsS0FBSyxDQUFzQixTQUFTLENBQUMsQ0FBQztJQUNuRCxLQUFLLEdBQUcsS0FBSyxDQUFpQixPQUFPLENBQUMsQ0FBQztJQUN2QyxJQUFJLEdBQUcsS0FBSyxDQUFxQixTQUFTLENBQUMsQ0FBQztJQUM1QyxTQUFTLEdBQUcsS0FBSyxDQUFpQyxTQUFTLENBQUMsQ0FBQztJQUN0RSxxREFBcUQ7SUFDNUMsYUFBYSxHQUFHLEtBQUssQ0FBa0IsT0FBTyxDQUFDLENBQUM7SUFDaEQsUUFBUSxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN4QixJQUFJLEdBQUcsS0FBSyxDQUFzQixRQUFRLENBQUMsQ0FBQztJQUM1QyxRQUFRLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2pDLHFFQUFxRTtJQUM1RCxPQUFPLEdBQUcsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3BCLGdCQUFnQixHQUFHLEtBQUssQ0FBNEIsS0FBSyxDQUFDLENBQUM7SUFDcEUsdURBQXVEO0lBQzlDLE1BQU0sR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDL0IseURBQXlEO0lBQ2hELEtBQUssR0FBRyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUM7SUFFbEIsT0FBTyxHQUFHLE1BQU0sRUFBYyxDQUFDO0lBRS9CLFlBQVksR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUVwRSxVQUFVLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRTtRQUNsQyxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDekIsT0FBTztZQUNMLENBQUMsZUFBZSxJQUFJLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUk7WUFDMUMsQ0FBQyxlQUFlLElBQUksQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEVBQUUsSUFBSTtZQUNyQyx1QkFBdUIsRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ3hDLHNCQUFzQixFQUFFLENBQUMsQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRSxLQUFLLEtBQUs7WUFDaEUsb0JBQW9CLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRTtTQUNwQyxDQUFDO0lBQ0osQ0FBQyxDQUFDLENBQUM7SUFFSCxPQUFPLENBQUMsS0FBaUI7UUFDdkIsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDO1lBQ3JCLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzNCLENBQUM7SUFDSCxDQUFDO3dHQXJDVSxrQkFBa0I7NEZBQWxCLGtCQUFrQiw0bkRDbkIvQixrN0JBZ0NBLDA3R0RsQlksWUFBWSxpTkFBRSxlQUFlOzs0RkFLNUIsa0JBQWtCO2tCQVI5QixTQUFTOytCQUNFLFlBQVksY0FDVixJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsZUFBZSxDQUFDLG1CQUd2Qix1QkFBdUIsQ0FBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgY29tcHV0ZWQsXG4gIGlucHV0LFxuICBvdXRwdXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTnpJY29uTW9kdWxlIH0gZnJvbSAnbmctem9ycm8tYW50ZC9pY29uJztcbmltcG9ydCB7IE56VG9vbFRpcE1vZHVsZSB9IGZyb20gJ25nLXpvcnJvLWFudGQvdG9vbHRpcCc7XG5pbXBvcnQgeyBHZW9CdXR0b25BcHBlYXJhbmNlLCBHZW9CdXR0b25Db2xvciwgR2VvQnV0dG9uVG9vbHRpcFBsYWNlbWVudCB9IGZyb20gJy4vZ2VvLWJ1dHRvbi50eXBlcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2dlby1idXR0b24nLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbTnpJY29uTW9kdWxlLCBOelRvb2xUaXBNb2R1bGVdLFxuICB0ZW1wbGF0ZVVybDogJy4vZ2VvLWJ1dHRvbi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9nZW8tYnV0dG9uLmNvbXBvbmVudC5zY3NzJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIEdlb0J1dHRvbkNvbXBvbmVudCB7XG4gIHJlYWRvbmx5IGFwcGVhcmFuY2UgPSBpbnB1dDxHZW9CdXR0b25BcHBlYXJhbmNlPigncHJpbWFyeScpO1xuICByZWFkb25seSBjb2xvciA9IGlucHV0PEdlb0J1dHRvbkNvbG9yPignYnJhbmQnKTtcbiAgcmVhZG9ubHkgaWNvbiA9IGlucHV0PHN0cmluZyB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcbiAgcmVhZG9ubHkgaWNvblRoZW1lID0gaW5wdXQ8J291dGxpbmUnIHwgJ2ZpbGwnIHwgJ3R3b3RvbmUnPignb3V0bGluZScpO1xuICAvKiogVuG7iyB0csOtIGljb246IGBzdGFydGAgKHRyw6FpKSBob+G6t2MgYGVuZGAgKHBo4bqjaSkuICovXG4gIHJlYWRvbmx5IGljb25QbGFjZW1lbnQgPSBpbnB1dDwnc3RhcnQnIHwgJ2VuZCc+KCdzdGFydCcpO1xuICByZWFkb25seSBpY29uT25seSA9IGlucHV0KGZhbHNlKTtcbiAgcmVhZG9ubHkgdHlwZSA9IGlucHV0PCdidXR0b24nIHwgJ3N1Ym1pdCc+KCdidXR0b24nKTtcbiAgcmVhZG9ubHkgZGlzYWJsZWQgPSBpbnB1dChmYWxzZSk7XG4gIC8qKiBUb29sdGlwIEFudCBEZXNpZ24gKGBuei10b29sdGlwYCkuIMavdSB0acOqbiBoxqFuIGB0aXRsZWAgbmF0aXZlLiAqL1xuICByZWFkb25seSB0b29sdGlwID0gaW5wdXQoJycpO1xuICByZWFkb25seSB0b29sdGlwUGxhY2VtZW50ID0gaW5wdXQ8R2VvQnV0dG9uVG9vbHRpcFBsYWNlbWVudD4oJ3RvcCcpO1xuICAvKiogVHLhuqFuZyB0aMOhaSBhY3RpdmUgKHZkLiB0b29sYmFyIHRvZ2dsZSDEkWFuZyBi4bqtdCkuICovXG4gIHJlYWRvbmx5IGFjdGl2ZSA9IGlucHV0KGZhbHNlKTtcbiAgLyoqIE5hdGl2ZSBgdGl0bGVgIOKAlCBmYWxsYmFjayBraGkga2jDtG5nIHNldCBgdG9vbHRpcGAuICovXG4gIHJlYWRvbmx5IHRpdGxlID0gaW5wdXQoJycpO1xuXG4gIHJlYWRvbmx5IGNsaWNrZWQgPSBvdXRwdXQ8TW91c2VFdmVudD4oKTtcblxuICByZWFkb25seSB0b29sdGlwVGl0bGUgPSBjb21wdXRlZCgoKSA9PiB0aGlzLnRvb2x0aXAoKSB8fCB0aGlzLnRpdGxlKCkgfHwgJycpO1xuXG4gIHJlYWRvbmx5IGNsYXNzTmFtZXMgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3QgaWNvbiA9IHRoaXMuaWNvbigpO1xuICAgIHJldHVybiB7XG4gICAgICBbYGdlby1idXR0b24tLSR7dGhpcy5hcHBlYXJhbmNlKCl9YF06IHRydWUsXG4gICAgICBbYGdlby1idXR0b24tLSR7dGhpcy5jb2xvcigpfWBdOiB0cnVlLFxuICAgICAgJ2dlby1idXR0b24tLWljb24tb25seSc6IHRoaXMuaWNvbk9ubHkoKSxcbiAgICAgICdnZW8tYnV0dG9uLS1pY29uLWVuZCc6ICEhaWNvbiAmJiB0aGlzLmljb25QbGFjZW1lbnQoKSA9PT0gJ2VuZCcsXG4gICAgICAnZ2VvLWJ1dHRvbi0tYWN0aXZlJzogdGhpcy5hY3RpdmUoKSxcbiAgICB9O1xuICB9KTtcblxuICBvbkNsaWNrKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmRpc2FibGVkKCkpIHtcbiAgICAgIHRoaXMuY2xpY2tlZC5lbWl0KGV2ZW50KTtcbiAgICB9XG4gIH1cbn1cbiIsIjxidXR0b25cbiAgW3R5cGVdPVwidHlwZSgpXCJcbiAgW2Rpc2FibGVkXT1cImRpc2FibGVkKClcIlxuICBjbGFzcz1cImdlby1idXR0b25cIlxuICBbY2xhc3NdPVwiY2xhc3NOYW1lcygpXCJcbiAgW256LXRvb2x0aXBdPVwidG9vbHRpcFRpdGxlKClcIlxuICBbbnpUb29sdGlwUGxhY2VtZW50XT1cInRvb2x0aXBQbGFjZW1lbnQoKVwiXG4gIFtuelRvb2x0aXBUcmlnZ2VyXT1cInRvb2x0aXBUaXRsZSgpID8gJ2hvdmVyJyA6IG51bGxcIlxuICBbYXR0ci5hcmlhLWxhYmVsXT1cInRvb2x0aXBUaXRsZSgpIHx8IG51bGxcIlxuICBbYXR0ci5hcmlhLXByZXNzZWRdPVwiYWN0aXZlKCkgPyB0cnVlIDogbnVsbFwiXG4gIChjbGljayk9XCJvbkNsaWNrKCRldmVudClcIlxuPlxuICBAaWYgKGljb24oKTsgYXMgaWNvbk5hbWUpIHtcbiAgICBAaWYgKGljb25QbGFjZW1lbnQoKSA9PT0gJ3N0YXJ0Jykge1xuICAgICAgPHNwYW4gY2xhc3M9XCJnZW8tYnV0dG9uX19pY29uXCI+XG4gICAgICAgIDxzcGFuIG56LWljb24gW256VHlwZV09XCJpY29uTmFtZVwiIFtuelRoZW1lXT1cImljb25UaGVtZSgpXCI+PC9zcGFuPlxuICAgICAgPC9zcGFuPlxuICAgIH1cbiAgfVxuICBAaWYgKCFpY29uT25seSgpKSB7XG4gICAgPHNwYW4gY2xhc3M9XCJnZW8tYnV0dG9uX19sYWJlbFwiPlxuICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgIDwvc3Bhbj5cbiAgfVxuICBAaWYgKGljb24oKTsgYXMgaWNvbk5hbWUpIHtcbiAgICBAaWYgKGljb25QbGFjZW1lbnQoKSA9PT0gJ2VuZCcpIHtcbiAgICAgIDxzcGFuIGNsYXNzPVwiZ2VvLWJ1dHRvbl9faWNvblwiPlxuICAgICAgICA8c3BhbiBuei1pY29uIFtuelR5cGVdPVwiaWNvbk5hbWVcIiBbbnpUaGVtZV09XCJpY29uVGhlbWUoKVwiPjwvc3Bhbj5cbiAgICAgIDwvc3Bhbj5cbiAgICB9XG4gIH1cbjwvYnV0dG9uPlxuIl19
@@ -0,0 +1,88 @@
1
+ import { ChangeDetectionStrategy, Component, computed, input, model, output, ViewEncapsulation, } from '@angular/core';
2
+ import { GeoButtonComponent } from '../geo-button/geo-button.component';
3
+ import { GeoEmptyStateComponent } from '../geo-empty-state/geo-empty-state.component';
4
+ import * as i0 from "@angular/core";
5
+ const DEFAULT_COLORS = [
6
+ 'var(--geo-color-primary-default)',
7
+ 'var(--geo-color-warning-default)',
8
+ 'var(--geo-color-success-default)',
9
+ 'var(--geo-color-info-default)',
10
+ 'var(--geo-color-teal-default, #0d9488)',
11
+ 'var(--geo-color-neutral-500)',
12
+ ];
13
+ /**
14
+ * Lightweight SVG charts for dashboard / thống kê (TCQH.2–3).
15
+ * No chart-library peer dependency — host binds data only.
16
+ *
17
+ * @summary Biểu đồ cột / donut thuần SVG cho trang thống kê.
18
+ * @whenToUse Dashboard diện tích theo xã, tỷ lệ thửa lệch mục đích.
19
+ * @doNotUseWhen Heavy BI dashboards needing zoom/brush — use a chart lib in the app.
20
+ */
21
+ export class GeoChartComponent {
22
+ type = input('bar');
23
+ title = input('');
24
+ data = input([]);
25
+ height = input(260);
26
+ showLegend = input(true);
27
+ showSort = input(false);
28
+ sort = model('desc');
29
+ emptyText = input('Chưa có dữ liệu thống kê.');
30
+ unit = input('');
31
+ segmentClick = output();
32
+ sortChange = output();
33
+ sortedData = computed(() => {
34
+ const items = [...this.data()];
35
+ const sort = this.sort();
36
+ if (sort === 'asc') {
37
+ return items.sort((a, b) => a.value - b.value);
38
+ }
39
+ if (sort === 'desc') {
40
+ return items.sort((a, b) => b.value - a.value);
41
+ }
42
+ return items;
43
+ });
44
+ maxValue = computed(() => Math.max(0, ...this.sortedData().map((item) => item.value)));
45
+ total = computed(() => this.sortedData().reduce((sum, item) => sum + item.value, 0));
46
+ donutSegments = computed(() => {
47
+ const items = this.sortedData();
48
+ const total = this.total() || 1;
49
+ const radius = 56;
50
+ const circumference = 2 * Math.PI * radius;
51
+ let offset = 0;
52
+ return items.map((item, index) => {
53
+ const ratio = item.value / total;
54
+ const length = ratio * circumference;
55
+ const segment = {
56
+ datum: item,
57
+ index,
58
+ color: item.color || DEFAULT_COLORS[index % DEFAULT_COLORS.length],
59
+ dasharray: `${length} ${circumference - length}`,
60
+ dashoffset: -offset,
61
+ percent: Math.round(ratio * 1000) / 10,
62
+ };
63
+ offset += length;
64
+ return segment;
65
+ });
66
+ });
67
+ colorOf(item, index) {
68
+ return item.color || DEFAULT_COLORS[index % DEFAULT_COLORS.length];
69
+ }
70
+ barWidth(value) {
71
+ const max = this.maxValue() || 1;
72
+ return `${Math.max(2, (value / max) * 100)}%`;
73
+ }
74
+ setSort(next) {
75
+ this.sort.set(next);
76
+ this.sortChange.emit(next);
77
+ }
78
+ onSegment(datum, index) {
79
+ this.segmentClick.emit({ datum, index });
80
+ }
81
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: GeoChartComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
82
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: GeoChartComponent, isStandalone: true, selector: "geo-chart", inputs: { type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null }, title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: false, transformFunction: null }, height: { classPropertyName: "height", publicName: "height", isSignal: true, isRequired: false, transformFunction: null }, showLegend: { classPropertyName: "showLegend", publicName: "showLegend", isSignal: true, isRequired: false, transformFunction: null }, showSort: { classPropertyName: "showSort", publicName: "showSort", isSignal: true, isRequired: false, transformFunction: null }, sort: { classPropertyName: "sort", publicName: "sort", isSignal: true, isRequired: false, transformFunction: null }, emptyText: { classPropertyName: "emptyText", publicName: "emptyText", isSignal: true, isRequired: false, transformFunction: null }, unit: { classPropertyName: "unit", publicName: "unit", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { sort: "sortChange", segmentClick: "segmentClick", sortChange: "sortChange" }, host: { classAttribute: "geo-chart-host" }, ngImport: i0, template: "<div class=\"geo-chart\" [style.--geo-chart-height.px]=\"height()\">\n <header class=\"geo-chart__header\">\n @if (title()) {\n <h3 class=\"geo-chart__title\">{{ title() }}</h3>\n }\n @if (showSort() && type() === 'bar') {\n <div class=\"geo-chart__sort\" role=\"group\" aria-label=\"S\u1EAFp x\u1EBFp\">\n <geo-button\n appearance=\"tertiary\"\n [active]=\"sort() === 'desc'\"\n (clicked)=\"setSort('desc')\"\n >\n Gi\u1EA3m d\u1EA7n\n </geo-button>\n <geo-button\n appearance=\"tertiary\"\n [active]=\"sort() === 'asc'\"\n (clicked)=\"setSort('asc')\"\n >\n T\u0103ng d\u1EA7n\n </geo-button>\n </div>\n }\n </header>\n\n @if (!sortedData().length) {\n <geo-empty-state [title]=\"emptyText()\" icon=\"bar-chart\" />\n } @else if (type() === 'bar') {\n <div class=\"geo-chart__bars\" role=\"img\" [attr.aria-label]=\"title() || 'Bi\u1EC3u \u0111\u1ED3 c\u1ED9t'\">\n @for (item of sortedData(); track item.id ?? item.label; let i = $index) {\n <button\n type=\"button\"\n class=\"geo-chart__bar-row\"\n (click)=\"onSegment(item, i)\"\n >\n <span class=\"geo-chart__bar-label\" [title]=\"item.label\">{{ item.label }}</span>\n <span class=\"geo-chart__bar-track\">\n <span\n class=\"geo-chart__bar-fill\"\n [style.width]=\"barWidth(item.value)\"\n [style.background]=\"colorOf(item, i)\"\n ></span>\n </span>\n <span class=\"geo-chart__bar-value\">\n {{ item.value }}{{ unit() ? ' ' + unit() : '' }}\n </span>\n </button>\n }\n </div>\n } @else {\n <div class=\"geo-chart__donut-wrap\">\n <svg\n class=\"geo-chart__donut\"\n viewBox=\"0 0 140 140\"\n role=\"img\"\n [attr.aria-label]=\"title() || 'Bi\u1EC3u \u0111\u1ED3 donut'\"\n >\n <circle\n class=\"geo-chart__donut-track\"\n cx=\"70\"\n cy=\"70\"\n r=\"56\"\n fill=\"none\"\n stroke-width=\"18\"\n />\n @for (seg of donutSegments(); track seg.datum.id ?? seg.datum.label) {\n <circle\n class=\"geo-chart__donut-seg\"\n cx=\"70\"\n cy=\"70\"\n r=\"56\"\n fill=\"none\"\n stroke-width=\"18\"\n [attr.stroke]=\"seg.color\"\n [attr.stroke-dasharray]=\"seg.dasharray\"\n [attr.stroke-dashoffset]=\"seg.dashoffset\"\n transform=\"rotate(-90 70 70)\"\n (click)=\"onSegment(seg.datum, seg.index)\"\n />\n }\n <text x=\"70\" y=\"66\" text-anchor=\"middle\" class=\"geo-chart__donut-center-label\">\n T\u1ED5ng\n </text>\n <text x=\"70\" y=\"84\" text-anchor=\"middle\" class=\"geo-chart__donut-center-value\">\n {{ total() }}\n </text>\n </svg>\n\n @if (showLegend()) {\n <ul class=\"geo-chart__legend\">\n @for (seg of donutSegments(); track seg.datum.id ?? seg.datum.label) {\n <li>\n <button\n type=\"button\"\n class=\"geo-chart__legend-item\"\n (click)=\"onSegment(seg.datum, seg.index)\"\n >\n <span\n class=\"geo-chart__swatch\"\n [style.background]=\"seg.color\"\n ></span>\n <span class=\"geo-chart__legend-label\">{{ seg.datum.label }}</span>\n <span class=\"geo-chart__legend-value\">{{ seg.percent }}%</span>\n </button>\n </li>\n }\n </ul>\n }\n </div>\n }\n</div>\n", styles: [".geo-chart-host{display:block}.geo-chart{display:flex;flex-direction:column;gap:12px;padding:16px;border:1px solid var(--geo-color-border-default);border-radius:var(--geo-radius-lg);background:var(--geo-color-surface-elevated);min-height:var(--geo-chart-height, 260px)}.geo-chart__header{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.geo-chart__title{margin:0;font-size:var(--geo-font-size-body);font-weight:var(--geo-font-weight-semibold);color:var(--geo-color-neutral-900)}.geo-chart__sort{display:inline-flex;gap:4px}.geo-chart__bars{display:flex;flex-direction:column;gap:10px;max-height:calc(var(--geo-chart-height, 260px) - 48px);overflow:auto;padding-right:4px}.geo-chart__bar-row{display:grid;grid-template-columns:minmax(88px,140px) 1fr auto;align-items:center;gap:10px;margin:0;padding:0;border:0;background:transparent;font:inherit;color:inherit;cursor:pointer;text-align:left}.geo-chart__bar-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--geo-font-size-caption);color:var(--geo-color-neutral-700)}.geo-chart__bar-track{height:12px;border-radius:var(--geo-radius-sm);background:var(--geo-color-neutral-100);overflow:hidden}.geo-chart__bar-fill{display:block;height:100%;border-radius:inherit;transition:width .2s ease}.geo-chart__bar-value{font-size:var(--geo-font-size-caption);font-weight:var(--geo-font-weight-semibold);color:var(--geo-color-neutral-800);white-space:nowrap}.geo-chart__donut-wrap{display:flex;align-items:center;gap:20px;flex-wrap:wrap}.geo-chart__donut{width:180px;height:180px;flex-shrink:0}.geo-chart__donut-track{stroke:var(--geo-color-neutral-100)}.geo-chart__donut-seg{cursor:pointer;transition:opacity .15s ease}.geo-chart__donut-seg:hover{opacity:.85}.geo-chart__donut-center-label{fill:var(--geo-color-neutral-500);font-size:11px}.geo-chart__donut-center-value{fill:var(--geo-color-neutral-900);font-size:16px;font-weight:600}.geo-chart__legend{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:8px;flex:1;min-width:160px}.geo-chart__legend-item{display:grid;grid-template-columns:12px 1fr auto;align-items:center;gap:8px;width:100%;margin:0;padding:4px 0;border:0;background:transparent;font:inherit;color:inherit;cursor:pointer;text-align:left}.geo-chart__swatch{width:12px;height:12px;border-radius:2px}.geo-chart__legend-label{font-size:var(--geo-font-size-body-small);color:var(--geo-color-neutral-800)}.geo-chart__legend-value{font-size:var(--geo-font-size-caption);font-weight:var(--geo-font-weight-semibold);color:var(--geo-color-neutral-600)}\n"], dependencies: [{ kind: "component", type: GeoButtonComponent, selector: "geo-button", inputs: ["appearance", "color", "icon", "iconTheme", "iconPlacement", "iconOnly", "type", "disabled", "tooltip", "tooltipPlacement", "active", "title"], outputs: ["clicked"] }, { kind: "component", type: GeoEmptyStateComponent, selector: "geo-empty-state", inputs: ["title", "description", "icon", "actionLabel"], outputs: ["actionClick"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
83
+ }
84
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: GeoChartComponent, decorators: [{
85
+ type: Component,
86
+ args: [{ selector: 'geo-chart', standalone: true, imports: [GeoButtonComponent, GeoEmptyStateComponent], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: { class: 'geo-chart-host' }, template: "<div class=\"geo-chart\" [style.--geo-chart-height.px]=\"height()\">\n <header class=\"geo-chart__header\">\n @if (title()) {\n <h3 class=\"geo-chart__title\">{{ title() }}</h3>\n }\n @if (showSort() && type() === 'bar') {\n <div class=\"geo-chart__sort\" role=\"group\" aria-label=\"S\u1EAFp x\u1EBFp\">\n <geo-button\n appearance=\"tertiary\"\n [active]=\"sort() === 'desc'\"\n (clicked)=\"setSort('desc')\"\n >\n Gi\u1EA3m d\u1EA7n\n </geo-button>\n <geo-button\n appearance=\"tertiary\"\n [active]=\"sort() === 'asc'\"\n (clicked)=\"setSort('asc')\"\n >\n T\u0103ng d\u1EA7n\n </geo-button>\n </div>\n }\n </header>\n\n @if (!sortedData().length) {\n <geo-empty-state [title]=\"emptyText()\" icon=\"bar-chart\" />\n } @else if (type() === 'bar') {\n <div class=\"geo-chart__bars\" role=\"img\" [attr.aria-label]=\"title() || 'Bi\u1EC3u \u0111\u1ED3 c\u1ED9t'\">\n @for (item of sortedData(); track item.id ?? item.label; let i = $index) {\n <button\n type=\"button\"\n class=\"geo-chart__bar-row\"\n (click)=\"onSegment(item, i)\"\n >\n <span class=\"geo-chart__bar-label\" [title]=\"item.label\">{{ item.label }}</span>\n <span class=\"geo-chart__bar-track\">\n <span\n class=\"geo-chart__bar-fill\"\n [style.width]=\"barWidth(item.value)\"\n [style.background]=\"colorOf(item, i)\"\n ></span>\n </span>\n <span class=\"geo-chart__bar-value\">\n {{ item.value }}{{ unit() ? ' ' + unit() : '' }}\n </span>\n </button>\n }\n </div>\n } @else {\n <div class=\"geo-chart__donut-wrap\">\n <svg\n class=\"geo-chart__donut\"\n viewBox=\"0 0 140 140\"\n role=\"img\"\n [attr.aria-label]=\"title() || 'Bi\u1EC3u \u0111\u1ED3 donut'\"\n >\n <circle\n class=\"geo-chart__donut-track\"\n cx=\"70\"\n cy=\"70\"\n r=\"56\"\n fill=\"none\"\n stroke-width=\"18\"\n />\n @for (seg of donutSegments(); track seg.datum.id ?? seg.datum.label) {\n <circle\n class=\"geo-chart__donut-seg\"\n cx=\"70\"\n cy=\"70\"\n r=\"56\"\n fill=\"none\"\n stroke-width=\"18\"\n [attr.stroke]=\"seg.color\"\n [attr.stroke-dasharray]=\"seg.dasharray\"\n [attr.stroke-dashoffset]=\"seg.dashoffset\"\n transform=\"rotate(-90 70 70)\"\n (click)=\"onSegment(seg.datum, seg.index)\"\n />\n }\n <text x=\"70\" y=\"66\" text-anchor=\"middle\" class=\"geo-chart__donut-center-label\">\n T\u1ED5ng\n </text>\n <text x=\"70\" y=\"84\" text-anchor=\"middle\" class=\"geo-chart__donut-center-value\">\n {{ total() }}\n </text>\n </svg>\n\n @if (showLegend()) {\n <ul class=\"geo-chart__legend\">\n @for (seg of donutSegments(); track seg.datum.id ?? seg.datum.label) {\n <li>\n <button\n type=\"button\"\n class=\"geo-chart__legend-item\"\n (click)=\"onSegment(seg.datum, seg.index)\"\n >\n <span\n class=\"geo-chart__swatch\"\n [style.background]=\"seg.color\"\n ></span>\n <span class=\"geo-chart__legend-label\">{{ seg.datum.label }}</span>\n <span class=\"geo-chart__legend-value\">{{ seg.percent }}%</span>\n </button>\n </li>\n }\n </ul>\n }\n </div>\n }\n</div>\n", styles: [".geo-chart-host{display:block}.geo-chart{display:flex;flex-direction:column;gap:12px;padding:16px;border:1px solid var(--geo-color-border-default);border-radius:var(--geo-radius-lg);background:var(--geo-color-surface-elevated);min-height:var(--geo-chart-height, 260px)}.geo-chart__header{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.geo-chart__title{margin:0;font-size:var(--geo-font-size-body);font-weight:var(--geo-font-weight-semibold);color:var(--geo-color-neutral-900)}.geo-chart__sort{display:inline-flex;gap:4px}.geo-chart__bars{display:flex;flex-direction:column;gap:10px;max-height:calc(var(--geo-chart-height, 260px) - 48px);overflow:auto;padding-right:4px}.geo-chart__bar-row{display:grid;grid-template-columns:minmax(88px,140px) 1fr auto;align-items:center;gap:10px;margin:0;padding:0;border:0;background:transparent;font:inherit;color:inherit;cursor:pointer;text-align:left}.geo-chart__bar-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--geo-font-size-caption);color:var(--geo-color-neutral-700)}.geo-chart__bar-track{height:12px;border-radius:var(--geo-radius-sm);background:var(--geo-color-neutral-100);overflow:hidden}.geo-chart__bar-fill{display:block;height:100%;border-radius:inherit;transition:width .2s ease}.geo-chart__bar-value{font-size:var(--geo-font-size-caption);font-weight:var(--geo-font-weight-semibold);color:var(--geo-color-neutral-800);white-space:nowrap}.geo-chart__donut-wrap{display:flex;align-items:center;gap:20px;flex-wrap:wrap}.geo-chart__donut{width:180px;height:180px;flex-shrink:0}.geo-chart__donut-track{stroke:var(--geo-color-neutral-100)}.geo-chart__donut-seg{cursor:pointer;transition:opacity .15s ease}.geo-chart__donut-seg:hover{opacity:.85}.geo-chart__donut-center-label{fill:var(--geo-color-neutral-500);font-size:11px}.geo-chart__donut-center-value{fill:var(--geo-color-neutral-900);font-size:16px;font-weight:600}.geo-chart__legend{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:8px;flex:1;min-width:160px}.geo-chart__legend-item{display:grid;grid-template-columns:12px 1fr auto;align-items:center;gap:8px;width:100%;margin:0;padding:4px 0;border:0;background:transparent;font:inherit;color:inherit;cursor:pointer;text-align:left}.geo-chart__swatch{width:12px;height:12px;border-radius:2px}.geo-chart__legend-label{font-size:var(--geo-font-size-body-small);color:var(--geo-color-neutral-800)}.geo-chart__legend-value{font-size:var(--geo-font-size-caption);font-weight:var(--geo-font-weight-semibold);color:var(--geo-color-neutral-600)}\n"] }]
87
+ }] });
88
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VvLWNoYXJ0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2dlby11aS9zcmMvbGliL2ZpZ21hL2dlby1jaGFydC9nZW8tY2hhcnQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZ2VvLXVpL3NyYy9saWIvZmlnbWEvZ2VvLWNoYXJ0L2dlby1jaGFydC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxRQUFRLEVBQ1IsS0FBSyxFQUNMLEtBQUssRUFDTCxNQUFNLEVBQ04saUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDhDQUE4QyxDQUFDOztBQVF0RixNQUFNLGNBQWMsR0FBRztJQUNyQixrQ0FBa0M7SUFDbEMsa0NBQWtDO0lBQ2xDLGtDQUFrQztJQUNsQywrQkFBK0I7SUFDL0Isd0NBQXdDO0lBQ3hDLDhCQUE4QjtDQUMvQixDQUFDO0FBRUY7Ozs7Ozs7R0FPRztBQVdILE1BQU0sT0FBTyxpQkFBaUI7SUFDbkIsSUFBSSxHQUFHLEtBQUssQ0FBZSxLQUFLLENBQUMsQ0FBQztJQUNsQyxLQUFLLEdBQUcsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ2xCLElBQUksR0FBRyxLQUFLLENBQWtCLEVBQUUsQ0FBQyxDQUFDO0lBQ2xDLE1BQU0sR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDcEIsVUFBVSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN6QixRQUFRLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3hCLElBQUksR0FBRyxLQUFLLENBQWUsTUFBTSxDQUFDLENBQUM7SUFDbkMsU0FBUyxHQUFHLEtBQUssQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO0lBQy9DLElBQUksR0FBRyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUM7SUFFakIsWUFBWSxHQUFHLE1BQU0sRUFBd0IsQ0FBQztJQUM5QyxVQUFVLEdBQUcsTUFBTSxFQUFnQixDQUFDO0lBRXBDLFVBQVUsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFO1FBQ2xDLE1BQU0sS0FBSyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUMvQixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDekIsSUFBSSxJQUFJLEtBQUssS0FBSyxFQUFFLENBQUM7WUFDbkIsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDakQsQ0FBQztRQUNELElBQUksSUFBSSxLQUFLLE1BQU0sRUFBRSxDQUFDO1lBQ3BCLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2pELENBQUM7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUMsQ0FBQyxDQUFDO0lBRU0sUUFBUSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FDaEMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsR0FBRyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FDNUQsQ0FBQztJQUVPLEtBQUssR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQzdCLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FDN0QsQ0FBQztJQUVPLGFBQWEsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFO1FBQ3JDLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUNoQyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ2hDLE1BQU0sTUFBTSxHQUFHLEVBQUUsQ0FBQztRQUNsQixNQUFNLGFBQWEsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLEVBQUUsR0FBRyxNQUFNLENBQUM7UUFDM0MsSUFBSSxNQUFNLEdBQUcsQ0FBQyxDQUFDO1FBQ2YsT0FBTyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxFQUFFO1lBQy9CLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1lBQ2pDLE1BQU0sTUFBTSxHQUFHLEtBQUssR0FBRyxhQUFhLENBQUM7WUFDckMsTUFBTSxPQUFPLEdBQUc7Z0JBQ2QsS0FBSyxFQUFFLElBQUk7Z0JBQ1gsS0FBSztnQkFDTCxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUssSUFBSSxjQUFjLENBQUMsS0FBSyxHQUFHLGNBQWMsQ0FBQyxNQUFNLENBQUM7Z0JBQ2xFLFNBQVMsRUFBRSxHQUFHLE1BQU0sSUFBSSxhQUFhLEdBQUcsTUFBTSxFQUFFO2dCQUNoRCxVQUFVLEVBQUUsQ0FBQyxNQUFNO2dCQUNuQixPQUFPLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRTthQUN2QyxDQUFDO1lBQ0YsTUFBTSxJQUFJLE1BQU0sQ0FBQztZQUNqQixPQUFPLE9BQU8sQ0FBQztRQUNqQixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0lBRUgsT0FBTyxDQUFDLElBQW1CLEVBQUUsS0FBYTtRQUN4QyxPQUFPLElBQUksQ0FBQyxLQUFLLElBQUksY0FBYyxDQUFDLEtBQUssR0FBRyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDckUsQ0FBQztJQUVELFFBQVEsQ0FBQyxLQUFhO1FBQ3BCLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDakMsT0FBTyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsS0FBSyxHQUFHLEdBQUcsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxHQUFHLENBQUM7SUFDaEQsQ0FBQztJQUVELE9BQU8sQ0FBQyxJQUFrQjtRQUN4QixJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNwQixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBRUQsU0FBUyxDQUFDLEtBQW9CLEVBQUUsS0FBYTtRQUMzQyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQzNDLENBQUM7d0dBeEVVLGlCQUFpQjs0RkFBakIsaUJBQWlCLHl5Q0M3QzlCLHl1SEErR0EseWxGRHpFWSxrQkFBa0Isc09BQUUsc0JBQXNCOzs0RkFPekMsaUJBQWlCO2tCQVY3QixTQUFTOytCQUNFLFdBQVcsY0FDVCxJQUFJLFdBQ1AsQ0FBQyxrQkFBa0IsRUFBRSxzQkFBc0IsQ0FBQyxtQkFHcEMsdUJBQXVCLENBQUMsTUFBTSxpQkFDaEMsaUJBQWlCLENBQUMsSUFBSSxRQUMvQixFQUFFLEtBQUssRUFBRSxnQkFBZ0IsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIGNvbXB1dGVkLFxuICBpbnB1dCxcbiAgbW9kZWwsXG4gIG91dHB1dCxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgR2VvQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnLi4vZ2VvLWJ1dHRvbi9nZW8tYnV0dG9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBHZW9FbXB0eVN0YXRlQ29tcG9uZW50IH0gZnJvbSAnLi4vZ2VvLWVtcHR5LXN0YXRlL2dlby1lbXB0eS1zdGF0ZS5jb21wb25lbnQnO1xuaW1wb3J0IHR5cGUge1xuICBHZW9DaGFydERhdHVtLFxuICBHZW9DaGFydFNlZ21lbnRDbGljayxcbiAgR2VvQ2hhcnRTb3J0LFxuICBHZW9DaGFydFR5cGUsXG59IGZyb20gJy4vZ2VvLWNoYXJ0LnR5cGVzJztcblxuY29uc3QgREVGQVVMVF9DT0xPUlMgPSBbXG4gICd2YXIoLS1nZW8tY29sb3ItcHJpbWFyeS1kZWZhdWx0KScsXG4gICd2YXIoLS1nZW8tY29sb3Itd2FybmluZy1kZWZhdWx0KScsXG4gICd2YXIoLS1nZW8tY29sb3Itc3VjY2Vzcy1kZWZhdWx0KScsXG4gICd2YXIoLS1nZW8tY29sb3ItaW5mby1kZWZhdWx0KScsXG4gICd2YXIoLS1nZW8tY29sb3ItdGVhbC1kZWZhdWx0LCAjMGQ5NDg4KScsXG4gICd2YXIoLS1nZW8tY29sb3ItbmV1dHJhbC01MDApJyxcbl07XG5cbi8qKlxuICogTGlnaHR3ZWlnaHQgU1ZHIGNoYXJ0cyBmb3IgZGFzaGJvYXJkIC8gdGjhu5FuZyBrw6ogKFRDUUguMuKAkzMpLlxuICogTm8gY2hhcnQtbGlicmFyeSBwZWVyIGRlcGVuZGVuY3kg4oCUIGhvc3QgYmluZHMgZGF0YSBvbmx5LlxuICpcbiAqIEBzdW1tYXJ5IEJp4buDdSDEkeG7kyBj4buZdCAvIGRvbnV0IHRodeG6p24gU1ZHIGNobyB0cmFuZyB0aOG7kW5nIGvDqi5cbiAqIEB3aGVuVG9Vc2UgRGFzaGJvYXJkIGRp4buHbiB0w61jaCB0aGVvIHjDoywgdOG7tyBs4buHIHRo4butYSBs4buHY2ggbeG7pWMgxJHDrWNoLlxuICogQGRvTm90VXNlV2hlbiBIZWF2eSBCSSBkYXNoYm9hcmRzIG5lZWRpbmcgem9vbS9icnVzaCDigJQgdXNlIGEgY2hhcnQgbGliIGluIHRoZSBhcHAuXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2dlby1jaGFydCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtHZW9CdXR0b25Db21wb25lbnQsIEdlb0VtcHR5U3RhdGVDb21wb25lbnRdLFxuICB0ZW1wbGF0ZVVybDogJy4vZ2VvLWNoYXJ0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL2dlby1jaGFydC5jb21wb25lbnQuc2NzcycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBob3N0OiB7IGNsYXNzOiAnZ2VvLWNoYXJ0LWhvc3QnIH0sXG59KVxuZXhwb3J0IGNsYXNzIEdlb0NoYXJ0Q29tcG9uZW50IHtcbiAgcmVhZG9ubHkgdHlwZSA9IGlucHV0PEdlb0NoYXJ0VHlwZT4oJ2JhcicpO1xuICByZWFkb25seSB0aXRsZSA9IGlucHV0KCcnKTtcbiAgcmVhZG9ubHkgZGF0YSA9IGlucHV0PEdlb0NoYXJ0RGF0dW1bXT4oW10pO1xuICByZWFkb25seSBoZWlnaHQgPSBpbnB1dCgyNjApO1xuICByZWFkb25seSBzaG93TGVnZW5kID0gaW5wdXQodHJ1ZSk7XG4gIHJlYWRvbmx5IHNob3dTb3J0ID0gaW5wdXQoZmFsc2UpO1xuICByZWFkb25seSBzb3J0ID0gbW9kZWw8R2VvQ2hhcnRTb3J0PignZGVzYycpO1xuICByZWFkb25seSBlbXB0eVRleHQgPSBpbnB1dCgnQ2jGsGEgY8OzIGThu68gbGnhu4d1IHRo4buRbmcga8OqLicpO1xuICByZWFkb25seSB1bml0ID0gaW5wdXQoJycpO1xuXG4gIHJlYWRvbmx5IHNlZ21lbnRDbGljayA9IG91dHB1dDxHZW9DaGFydFNlZ21lbnRDbGljaz4oKTtcbiAgcmVhZG9ubHkgc29ydENoYW5nZSA9IG91dHB1dDxHZW9DaGFydFNvcnQ+KCk7XG5cbiAgcmVhZG9ubHkgc29ydGVkRGF0YSA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCBpdGVtcyA9IFsuLi50aGlzLmRhdGEoKV07XG4gICAgY29uc3Qgc29ydCA9IHRoaXMuc29ydCgpO1xuICAgIGlmIChzb3J0ID09PSAnYXNjJykge1xuICAgICAgcmV0dXJuIGl0ZW1zLnNvcnQoKGEsIGIpID0+IGEudmFsdWUgLSBiLnZhbHVlKTtcbiAgICB9XG4gICAgaWYgKHNvcnQgPT09ICdkZXNjJykge1xuICAgICAgcmV0dXJuIGl0ZW1zLnNvcnQoKGEsIGIpID0+IGIudmFsdWUgLSBhLnZhbHVlKTtcbiAgICB9XG4gICAgcmV0dXJuIGl0ZW1zO1xuICB9KTtcblxuICByZWFkb25seSBtYXhWYWx1ZSA9IGNvbXB1dGVkKCgpID0+XG4gICAgTWF0aC5tYXgoMCwgLi4udGhpcy5zb3J0ZWREYXRhKCkubWFwKChpdGVtKSA9PiBpdGVtLnZhbHVlKSksXG4gICk7XG5cbiAgcmVhZG9ubHkgdG90YWwgPSBjb21wdXRlZCgoKSA9PlxuICAgIHRoaXMuc29ydGVkRGF0YSgpLnJlZHVjZSgoc3VtLCBpdGVtKSA9PiBzdW0gKyBpdGVtLnZhbHVlLCAwKSxcbiAgKTtcblxuICByZWFkb25seSBkb251dFNlZ21lbnRzID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IGl0ZW1zID0gdGhpcy5zb3J0ZWREYXRhKCk7XG4gICAgY29uc3QgdG90YWwgPSB0aGlzLnRvdGFsKCkgfHwgMTtcbiAgICBjb25zdCByYWRpdXMgPSA1NjtcbiAgICBjb25zdCBjaXJjdW1mZXJlbmNlID0gMiAqIE1hdGguUEkgKiByYWRpdXM7XG4gICAgbGV0IG9mZnNldCA9IDA7XG4gICAgcmV0dXJuIGl0ZW1zLm1hcCgoaXRlbSwgaW5kZXgpID0+IHtcbiAgICAgIGNvbnN0IHJhdGlvID0gaXRlbS52YWx1ZSAvIHRvdGFsO1xuICAgICAgY29uc3QgbGVuZ3RoID0gcmF0aW8gKiBjaXJjdW1mZXJlbmNlO1xuICAgICAgY29uc3Qgc2VnbWVudCA9IHtcbiAgICAgICAgZGF0dW06IGl0ZW0sXG4gICAgICAgIGluZGV4LFxuICAgICAgICBjb2xvcjogaXRlbS5jb2xvciB8fCBERUZBVUxUX0NPTE9SU1tpbmRleCAlIERFRkFVTFRfQ09MT1JTLmxlbmd0aF0sXG4gICAgICAgIGRhc2hhcnJheTogYCR7bGVuZ3RofSAke2NpcmN1bWZlcmVuY2UgLSBsZW5ndGh9YCxcbiAgICAgICAgZGFzaG9mZnNldDogLW9mZnNldCxcbiAgICAgICAgcGVyY2VudDogTWF0aC5yb3VuZChyYXRpbyAqIDEwMDApIC8gMTAsXG4gICAgICB9O1xuICAgICAgb2Zmc2V0ICs9IGxlbmd0aDtcbiAgICAgIHJldHVybiBzZWdtZW50O1xuICAgIH0pO1xuICB9KTtcblxuICBjb2xvck9mKGl0ZW06IEdlb0NoYXJ0RGF0dW0sIGluZGV4OiBudW1iZXIpOiBzdHJpbmcge1xuICAgIHJldHVybiBpdGVtLmNvbG9yIHx8IERFRkFVTFRfQ09MT1JTW2luZGV4ICUgREVGQVVMVF9DT0xPUlMubGVuZ3RoXTtcbiAgfVxuXG4gIGJhcldpZHRoKHZhbHVlOiBudW1iZXIpOiBzdHJpbmcge1xuICAgIGNvbnN0IG1heCA9IHRoaXMubWF4VmFsdWUoKSB8fCAxO1xuICAgIHJldHVybiBgJHtNYXRoLm1heCgyLCAodmFsdWUgLyBtYXgpICogMTAwKX0lYDtcbiAgfVxuXG4gIHNldFNvcnQobmV4dDogR2VvQ2hhcnRTb3J0KTogdm9pZCB7XG4gICAgdGhpcy5zb3J0LnNldChuZXh0KTtcbiAgICB0aGlzLnNvcnRDaGFuZ2UuZW1pdChuZXh0KTtcbiAgfVxuXG4gIG9uU2VnbWVudChkYXR1bTogR2VvQ2hhcnREYXR1bSwgaW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgIHRoaXMuc2VnbWVudENsaWNrLmVtaXQoeyBkYXR1bSwgaW5kZXggfSk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJnZW8tY2hhcnRcIiBbc3R5bGUuLS1nZW8tY2hhcnQtaGVpZ2h0LnB4XT1cImhlaWdodCgpXCI+XG4gIDxoZWFkZXIgY2xhc3M9XCJnZW8tY2hhcnRfX2hlYWRlclwiPlxuICAgIEBpZiAodGl0bGUoKSkge1xuICAgICAgPGgzIGNsYXNzPVwiZ2VvLWNoYXJ0X190aXRsZVwiPnt7IHRpdGxlKCkgfX08L2gzPlxuICAgIH1cbiAgICBAaWYgKHNob3dTb3J0KCkgJiYgdHlwZSgpID09PSAnYmFyJykge1xuICAgICAgPGRpdiBjbGFzcz1cImdlby1jaGFydF9fc29ydFwiIHJvbGU9XCJncm91cFwiIGFyaWEtbGFiZWw9XCJT4bqvcCB44bq/cFwiPlxuICAgICAgICA8Z2VvLWJ1dHRvblxuICAgICAgICAgIGFwcGVhcmFuY2U9XCJ0ZXJ0aWFyeVwiXG4gICAgICAgICAgW2FjdGl2ZV09XCJzb3J0KCkgPT09ICdkZXNjJ1wiXG4gICAgICAgICAgKGNsaWNrZWQpPVwic2V0U29ydCgnZGVzYycpXCJcbiAgICAgICAgPlxuICAgICAgICAgIEdp4bqjbSBk4bqnblxuICAgICAgICA8L2dlby1idXR0b24+XG4gICAgICAgIDxnZW8tYnV0dG9uXG4gICAgICAgICAgYXBwZWFyYW5jZT1cInRlcnRpYXJ5XCJcbiAgICAgICAgICBbYWN0aXZlXT1cInNvcnQoKSA9PT0gJ2FzYydcIlxuICAgICAgICAgIChjbGlja2VkKT1cInNldFNvcnQoJ2FzYycpXCJcbiAgICAgICAgPlxuICAgICAgICAgIFTEg25nIGThuqduXG4gICAgICAgIDwvZ2VvLWJ1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgIH1cbiAgPC9oZWFkZXI+XG5cbiAgQGlmICghc29ydGVkRGF0YSgpLmxlbmd0aCkge1xuICAgIDxnZW8tZW1wdHktc3RhdGUgW3RpdGxlXT1cImVtcHR5VGV4dCgpXCIgaWNvbj1cImJhci1jaGFydFwiIC8+XG4gIH0gQGVsc2UgaWYgKHR5cGUoKSA9PT0gJ2JhcicpIHtcbiAgICA8ZGl2IGNsYXNzPVwiZ2VvLWNoYXJ0X19iYXJzXCIgcm9sZT1cImltZ1wiIFthdHRyLmFyaWEtbGFiZWxdPVwidGl0bGUoKSB8fCAnQmnhu4N1IMSR4buTIGPhu5l0J1wiPlxuICAgICAgQGZvciAoaXRlbSBvZiBzb3J0ZWREYXRhKCk7IHRyYWNrIGl0ZW0uaWQgPz8gaXRlbS5sYWJlbDsgbGV0IGkgPSAkaW5kZXgpIHtcbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgIGNsYXNzPVwiZ2VvLWNoYXJ0X19iYXItcm93XCJcbiAgICAgICAgICAoY2xpY2spPVwib25TZWdtZW50KGl0ZW0sIGkpXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZ2VvLWNoYXJ0X19iYXItbGFiZWxcIiBbdGl0bGVdPVwiaXRlbS5sYWJlbFwiPnt7IGl0ZW0ubGFiZWwgfX08L3NwYW4+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJnZW8tY2hhcnRfX2Jhci10cmFja1wiPlxuICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgY2xhc3M9XCJnZW8tY2hhcnRfX2Jhci1maWxsXCJcbiAgICAgICAgICAgICAgW3N0eWxlLndpZHRoXT1cImJhcldpZHRoKGl0ZW0udmFsdWUpXCJcbiAgICAgICAgICAgICAgW3N0eWxlLmJhY2tncm91bmRdPVwiY29sb3JPZihpdGVtLCBpKVwiXG4gICAgICAgICAgICA+PC9zcGFuPlxuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImdlby1jaGFydF9fYmFyLXZhbHVlXCI+XG4gICAgICAgICAgICB7eyBpdGVtLnZhbHVlIH19e3sgdW5pdCgpID8gJyAnICsgdW5pdCgpIDogJycgfX1cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgfVxuICAgIDwvZGl2PlxuICB9IEBlbHNlIHtcbiAgICA8ZGl2IGNsYXNzPVwiZ2VvLWNoYXJ0X19kb251dC13cmFwXCI+XG4gICAgICA8c3ZnXG4gICAgICAgIGNsYXNzPVwiZ2VvLWNoYXJ0X19kb251dFwiXG4gICAgICAgIHZpZXdCb3g9XCIwIDAgMTQwIDE0MFwiXG4gICAgICAgIHJvbGU9XCJpbWdcIlxuICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cInRpdGxlKCkgfHwgJ0Jp4buDdSDEkeG7kyBkb251dCdcIlxuICAgICAgPlxuICAgICAgICA8Y2lyY2xlXG4gICAgICAgICAgY2xhc3M9XCJnZW8tY2hhcnRfX2RvbnV0LXRyYWNrXCJcbiAgICAgICAgICBjeD1cIjcwXCJcbiAgICAgICAgICBjeT1cIjcwXCJcbiAgICAgICAgICByPVwiNTZcIlxuICAgICAgICAgIGZpbGw9XCJub25lXCJcbiAgICAgICAgICBzdHJva2Utd2lkdGg9XCIxOFwiXG4gICAgICAgIC8+XG4gICAgICAgIEBmb3IgKHNlZyBvZiBkb251dFNlZ21lbnRzKCk7IHRyYWNrIHNlZy5kYXR1bS5pZCA/PyBzZWcuZGF0dW0ubGFiZWwpIHtcbiAgICAgICAgICA8Y2lyY2xlXG4gICAgICAgICAgICBjbGFzcz1cImdlby1jaGFydF9fZG9udXQtc2VnXCJcbiAgICAgICAgICAgIGN4PVwiNzBcIlxuICAgICAgICAgICAgY3k9XCI3MFwiXG4gICAgICAgICAgICByPVwiNTZcIlxuICAgICAgICAgICAgZmlsbD1cIm5vbmVcIlxuICAgICAgICAgICAgc3Ryb2tlLXdpZHRoPVwiMThcIlxuICAgICAgICAgICAgW2F0dHIuc3Ryb2tlXT1cInNlZy5jb2xvclwiXG4gICAgICAgICAgICBbYXR0ci5zdHJva2UtZGFzaGFycmF5XT1cInNlZy5kYXNoYXJyYXlcIlxuICAgICAgICAgICAgW2F0dHIuc3Ryb2tlLWRhc2hvZmZzZXRdPVwic2VnLmRhc2hvZmZzZXRcIlxuICAgICAgICAgICAgdHJhbnNmb3JtPVwicm90YXRlKC05MCA3MCA3MClcIlxuICAgICAgICAgICAgKGNsaWNrKT1cIm9uU2VnbWVudChzZWcuZGF0dW0sIHNlZy5pbmRleClcIlxuICAgICAgICAgIC8+XG4gICAgICAgIH1cbiAgICAgICAgPHRleHQgeD1cIjcwXCIgeT1cIjY2XCIgdGV4dC1hbmNob3I9XCJtaWRkbGVcIiBjbGFzcz1cImdlby1jaGFydF9fZG9udXQtY2VudGVyLWxhYmVsXCI+XG4gICAgICAgICAgVOG7lW5nXG4gICAgICAgIDwvdGV4dD5cbiAgICAgICAgPHRleHQgeD1cIjcwXCIgeT1cIjg0XCIgdGV4dC1hbmNob3I9XCJtaWRkbGVcIiBjbGFzcz1cImdlby1jaGFydF9fZG9udXQtY2VudGVyLXZhbHVlXCI+XG4gICAgICAgICAge3sgdG90YWwoKSB9fVxuICAgICAgICA8L3RleHQ+XG4gICAgICA8L3N2Zz5cblxuICAgICAgQGlmIChzaG93TGVnZW5kKCkpIHtcbiAgICAgICAgPHVsIGNsYXNzPVwiZ2VvLWNoYXJ0X19sZWdlbmRcIj5cbiAgICAgICAgICBAZm9yIChzZWcgb2YgZG9udXRTZWdtZW50cygpOyB0cmFjayBzZWcuZGF0dW0uaWQgPz8gc2VnLmRhdHVtLmxhYmVsKSB7XG4gICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImdlby1jaGFydF9fbGVnZW5kLWl0ZW1cIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJvblNlZ21lbnQoc2VnLmRhdHVtLCBzZWcuaW5kZXgpXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cImdlby1jaGFydF9fc3dhdGNoXCJcbiAgICAgICAgICAgICAgICAgIFtzdHlsZS5iYWNrZ3JvdW5kXT1cInNlZy5jb2xvclwiXG4gICAgICAgICAgICAgICAgPjwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImdlby1jaGFydF9fbGVnZW5kLWxhYmVsXCI+e3sgc2VnLmRhdHVtLmxhYmVsIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZ2VvLWNoYXJ0X19sZWdlbmQtdmFsdWVcIj57eyBzZWcucGVyY2VudCB9fSU8L3NwYW4+XG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICB9XG4gICAgICAgIDwvdWw+XG4gICAgICB9XG4gICAgPC9kaXY+XG4gIH1cbjwvZGl2PlxuIl19
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VvLWNoYXJ0LnR5cGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZ2VvLXVpL3NyYy9saWIvZmlnbWEvZ2VvLWNoYXJ0L2dlby1jaGFydC50eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHR5cGUgR2VvQ2hhcnRUeXBlID0gJ2JhcicgfCAnZG9udXQnO1xuXG5leHBvcnQgdHlwZSBHZW9DaGFydFNvcnQgPSAnbm9uZScgfCAnYXNjJyB8ICdkZXNjJztcblxuZXhwb3J0IGludGVyZmFjZSBHZW9DaGFydERhdHVtIHtcbiAgaWQ/OiBzdHJpbmc7XG4gIGxhYmVsOiBzdHJpbmc7XG4gIHZhbHVlOiBudW1iZXI7XG4gIC8qKiBPcHRpb25hbCBDU1MgY29sb3I7IHByZWZlciBkZXNpZ24gdG9rZW5zIHdoZW4gcG9zc2libGUuICovXG4gIGNvbG9yPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEdlb0NoYXJ0U2VnbWVudENsaWNrIHtcbiAgZGF0dW06IEdlb0NoYXJ0RGF0dW07XG4gIGluZGV4OiBudW1iZXI7XG59XG4iXX0=
@@ -1,34 +1,23 @@
1
- import { Component, EventEmitter, Input, Output, ViewEncapsulation } from '@angular/core';
1
+ import { ChangeDetectionStrategy, Component, input, model, ViewEncapsulation, } from '@angular/core';
2
2
  import { FormsModule } from '@angular/forms';
3
3
  import { NgZorroAntdModule } from '../../ng-zorro/ng-zorro-antd.module';
4
4
  import * as i0 from "@angular/core";
5
5
  import * as i1 from "ng-zorro-antd/checkbox";
6
6
  import * as i2 from "@angular/forms";
7
7
  export class GeoCheckboxComponent {
8
- label = '';
9
- checked = false;
10
- disabled = false;
11
- indeterminate = false;
12
- checkedChange = new EventEmitter();
8
+ label = input('');
9
+ /** Two-way: `[(checked)]`. */
10
+ checked = model(false);
11
+ disabled = input(false);
12
+ indeterminate = input(false);
13
13
  onChange(value) {
14
- this.checked = value;
15
- this.checkedChange.emit(value);
14
+ this.checked.set(value);
16
15
  }
17
16
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: GeoCheckboxComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
18
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: GeoCheckboxComponent, isStandalone: true, selector: "geo-checkbox", inputs: { label: "label", checked: "checked", disabled: "disabled", indeterminate: "indeterminate" }, outputs: { checkedChange: "checkedChange" }, ngImport: i0, template: "<label\n nz-checkbox\n class=\"geo-checkbox\"\n [nzDisabled]=\"disabled\"\n [nzIndeterminate]=\"indeterminate\"\n [(ngModel)]=\"checked\"\n (ngModelChange)=\"onChange($event)\"\n>{{ label }}</label>\n", styles: ["geo-checkbox{display:inline-block;--ant-primary-color: var(--geo-color-primary-default);--ant-primary-color-hover: var(--geo-color-primary-hover);--ant-primary-color-active: var(--geo-color-primary-hover)}geo-checkbox .geo-checkbox{font-size:14px;color:var(--geo-color-neutral-900)}geo-checkbox .ant-checkbox:not(.ant-checkbox-disabled):hover .ant-checkbox-inner{border-color:var(--geo-color-primary-default)!important}geo-checkbox .ant-checkbox-checked:not(.ant-checkbox-disabled) .ant-checkbox-inner{background-color:var(--geo-color-primary-default)!important;border-color:var(--geo-color-primary-default)!important}geo-checkbox .ant-checkbox-checked:not(.ant-checkbox-disabled):after{border-color:var(--geo-color-primary-default)!important}geo-checkbox .ant-checkbox-indeterminate:not(.ant-checkbox-disabled) .ant-checkbox-inner{background-color:var(--geo-color-neutral-white)!important;border-color:var(--geo-color-primary-default)!important}geo-checkbox .ant-checkbox-indeterminate:not(.ant-checkbox-disabled) .ant-checkbox-inner:after{background-color:var(--geo-color-primary-default)!important}geo-checkbox .ant-checkbox-input:focus+.ant-checkbox-inner,geo-checkbox .ant-checkbox-input:focus-visible+.ant-checkbox-inner{border-color:var(--geo-color-primary-default)!important}geo-checkbox .ant-checkbox-checked:not(.ant-checkbox-disabled):hover .ant-checkbox-inner{background-color:var(--geo-color-primary-hover)!important;border-color:var(--geo-color-primary-hover)!important}geo-checkbox .ant-checkbox-indeterminate:not(.ant-checkbox-disabled):hover .ant-checkbox-inner{border-color:var(--geo-color-primary-hover)!important}geo-checkbox .ant-checkbox-indeterminate:not(.ant-checkbox-disabled):hover .ant-checkbox-inner:after{background-color:var(--geo-color-primary-hover)!important}geo-checkbox .ant-checkbox-disabled .ant-checkbox-inner{background-color:var(--geo-color-neutral-100)!important;border-color:var(--geo-color-neutral-300)!important}geo-checkbox .ant-checkbox-disabled.ant-checkbox-checked .ant-checkbox-inner:after{border-color:#00000040!important}geo-checkbox .ant-checkbox-disabled.ant-checkbox-indeterminate .ant-checkbox-inner:after{background-color:#00000040!important}\n"], dependencies: [{ kind: "ngmodule", type: NgZorroAntdModule }, { kind: "component", type: i1.NzCheckboxComponent, selector: "[nz-checkbox]", inputs: ["nzValue", "nzAutoFocus", "nzDisabled", "nzIndeterminate", "nzChecked", "nzId"], outputs: ["nzCheckedChange"], exportAs: ["nzCheckbox"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], encapsulation: i0.ViewEncapsulation.None });
17
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.14", type: GeoCheckboxComponent, isStandalone: true, selector: "geo-checkbox", inputs: { label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, checked: { classPropertyName: "checked", publicName: "checked", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, indeterminate: { classPropertyName: "indeterminate", publicName: "indeterminate", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { checked: "checkedChange" }, ngImport: i0, template: "<label\n nz-checkbox\n class=\"geo-checkbox\"\n [nzDisabled]=\"disabled()\"\n [nzIndeterminate]=\"indeterminate()\"\n [ngModel]=\"checked()\"\n (ngModelChange)=\"onChange($event)\"\n>{{ label() }}</label>\n", styles: ["geo-checkbox{display:inline-block;--ant-primary-color: var(--geo-color-primary-default);--ant-primary-color-hover: var(--geo-color-primary-hover);--ant-primary-color-active: var(--geo-color-primary-hover)}geo-checkbox .geo-checkbox{font-size:14px;color:var(--geo-color-neutral-900)}geo-checkbox .ant-checkbox:not(.ant-checkbox-disabled):hover .ant-checkbox-inner{border-color:var(--geo-color-primary-default)!important}geo-checkbox .ant-checkbox-checked:not(.ant-checkbox-disabled) .ant-checkbox-inner{background-color:var(--geo-color-primary-default)!important;border-color:var(--geo-color-primary-default)!important}geo-checkbox .ant-checkbox-checked:not(.ant-checkbox-disabled):after{border-color:var(--geo-color-primary-default)!important}geo-checkbox .ant-checkbox-indeterminate:not(.ant-checkbox-disabled) .ant-checkbox-inner{background-color:var(--geo-color-neutral-white)!important;border-color:var(--geo-color-primary-default)!important}geo-checkbox .ant-checkbox-indeterminate:not(.ant-checkbox-disabled) .ant-checkbox-inner:after{background-color:var(--geo-color-primary-default)!important}geo-checkbox .ant-checkbox-input:focus+.ant-checkbox-inner,geo-checkbox .ant-checkbox-input:focus-visible+.ant-checkbox-inner{border-color:var(--geo-color-primary-default)!important}geo-checkbox .ant-checkbox-checked:not(.ant-checkbox-disabled):hover .ant-checkbox-inner{background-color:var(--geo-color-primary-hover)!important;border-color:var(--geo-color-primary-hover)!important}geo-checkbox .ant-checkbox-indeterminate:not(.ant-checkbox-disabled):hover .ant-checkbox-inner{border-color:var(--geo-color-primary-hover)!important}geo-checkbox .ant-checkbox-indeterminate:not(.ant-checkbox-disabled):hover .ant-checkbox-inner:after{background-color:var(--geo-color-primary-hover)!important}geo-checkbox .ant-checkbox-disabled .ant-checkbox-inner{background-color:var(--geo-color-neutral-100)!important;border-color:var(--geo-color-neutral-300)!important}geo-checkbox .ant-checkbox-disabled.ant-checkbox-checked .ant-checkbox-inner:after{border-color:#00000040!important}geo-checkbox .ant-checkbox-disabled.ant-checkbox-indeterminate .ant-checkbox-inner:after{background-color:#00000040!important}\n"], dependencies: [{ kind: "ngmodule", type: NgZorroAntdModule }, { kind: "component", type: i1.NzCheckboxComponent, selector: "[nz-checkbox]", inputs: ["nzValue", "nzAutoFocus", "nzDisabled", "nzIndeterminate", "nzChecked", "nzId"], outputs: ["nzCheckedChange"], exportAs: ["nzCheckbox"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
19
18
  }
20
19
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: GeoCheckboxComponent, decorators: [{
21
20
  type: Component,
22
- args: [{ selector: 'geo-checkbox', standalone: true, imports: [NgZorroAntdModule, FormsModule], encapsulation: ViewEncapsulation.None, template: "<label\n nz-checkbox\n class=\"geo-checkbox\"\n [nzDisabled]=\"disabled\"\n [nzIndeterminate]=\"indeterminate\"\n [(ngModel)]=\"checked\"\n (ngModelChange)=\"onChange($event)\"\n>{{ label }}</label>\n", styles: ["geo-checkbox{display:inline-block;--ant-primary-color: var(--geo-color-primary-default);--ant-primary-color-hover: var(--geo-color-primary-hover);--ant-primary-color-active: var(--geo-color-primary-hover)}geo-checkbox .geo-checkbox{font-size:14px;color:var(--geo-color-neutral-900)}geo-checkbox .ant-checkbox:not(.ant-checkbox-disabled):hover .ant-checkbox-inner{border-color:var(--geo-color-primary-default)!important}geo-checkbox .ant-checkbox-checked:not(.ant-checkbox-disabled) .ant-checkbox-inner{background-color:var(--geo-color-primary-default)!important;border-color:var(--geo-color-primary-default)!important}geo-checkbox .ant-checkbox-checked:not(.ant-checkbox-disabled):after{border-color:var(--geo-color-primary-default)!important}geo-checkbox .ant-checkbox-indeterminate:not(.ant-checkbox-disabled) .ant-checkbox-inner{background-color:var(--geo-color-neutral-white)!important;border-color:var(--geo-color-primary-default)!important}geo-checkbox .ant-checkbox-indeterminate:not(.ant-checkbox-disabled) .ant-checkbox-inner:after{background-color:var(--geo-color-primary-default)!important}geo-checkbox .ant-checkbox-input:focus+.ant-checkbox-inner,geo-checkbox .ant-checkbox-input:focus-visible+.ant-checkbox-inner{border-color:var(--geo-color-primary-default)!important}geo-checkbox .ant-checkbox-checked:not(.ant-checkbox-disabled):hover .ant-checkbox-inner{background-color:var(--geo-color-primary-hover)!important;border-color:var(--geo-color-primary-hover)!important}geo-checkbox .ant-checkbox-indeterminate:not(.ant-checkbox-disabled):hover .ant-checkbox-inner{border-color:var(--geo-color-primary-hover)!important}geo-checkbox .ant-checkbox-indeterminate:not(.ant-checkbox-disabled):hover .ant-checkbox-inner:after{background-color:var(--geo-color-primary-hover)!important}geo-checkbox .ant-checkbox-disabled .ant-checkbox-inner{background-color:var(--geo-color-neutral-100)!important;border-color:var(--geo-color-neutral-300)!important}geo-checkbox .ant-checkbox-disabled.ant-checkbox-checked .ant-checkbox-inner:after{border-color:#00000040!important}geo-checkbox .ant-checkbox-disabled.ant-checkbox-indeterminate .ant-checkbox-inner:after{background-color:#00000040!important}\n"] }]
23
- }], propDecorators: { label: [{
24
- type: Input
25
- }], checked: [{
26
- type: Input
27
- }], disabled: [{
28
- type: Input
29
- }], indeterminate: [{
30
- type: Input
31
- }], checkedChange: [{
32
- type: Output
33
- }] } });
34
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VvLWNoZWNrYm94LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2dlby11aS9zcmMvbGliL2ZpZ21hL2dlby1jaGVja2JveC9nZW8tY2hlY2tib3guY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZ2VvLXVpL3NyYy9saWIvZmlnbWEvZ2VvLWNoZWNrYm94L2dlby1jaGVja2JveC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFGLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQzs7OztBQVV4RSxNQUFNLE9BQU8sb0JBQW9CO0lBQ3RCLEtBQUssR0FBRyxFQUFFLENBQUM7SUFDWCxPQUFPLEdBQUcsS0FBSyxDQUFDO0lBQ2hCLFFBQVEsR0FBRyxLQUFLLENBQUM7SUFDakIsYUFBYSxHQUFHLEtBQUssQ0FBQztJQUVyQixhQUFhLEdBQUcsSUFBSSxZQUFZLEVBQVcsQ0FBQztJQUV0RCxRQUFRLENBQUMsS0FBYztRQUNyQixJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztRQUNyQixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNqQyxDQUFDO3dHQVhVLG9CQUFvQjs0RkFBcEIsb0JBQW9CLDJOQ1pqQyxnTkFRQSxpdEVERFksaUJBQWlCLGdRQUFFLFdBQVc7OzRGQUs3QixvQkFBb0I7a0JBUmhDLFNBQVM7K0JBQ0UsY0FBYyxjQUNaLElBQUksV0FDUCxDQUFDLGlCQUFpQixFQUFFLFdBQVcsQ0FBQyxpQkFHMUIsaUJBQWlCLENBQUMsSUFBSTs4QkFHNUIsS0FBSztzQkFBYixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBRUksYUFBYTtzQkFBdEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBOZ1pvcnJvQW50ZE1vZHVsZSB9IGZyb20gJy4uLy4uL25nLXpvcnJvL25nLXpvcnJvLWFudGQubW9kdWxlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZ2VvLWNoZWNrYm94JyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW05nWm9ycm9BbnRkTW9kdWxlLCBGb3Jtc01vZHVsZV0sXG4gIHRlbXBsYXRlVXJsOiAnLi9nZW8tY2hlY2tib3guY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vZ2VvLWNoZWNrYm94LmNvbXBvbmVudC5zY3NzJyxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbn0pXG5leHBvcnQgY2xhc3MgR2VvQ2hlY2tib3hDb21wb25lbnQge1xuICBASW5wdXQoKSBsYWJlbCA9ICcnO1xuICBASW5wdXQoKSBjaGVja2VkID0gZmFsc2U7XG4gIEBJbnB1dCgpIGRpc2FibGVkID0gZmFsc2U7XG4gIEBJbnB1dCgpIGluZGV0ZXJtaW5hdGUgPSBmYWxzZTtcblxuICBAT3V0cHV0KCkgY2hlY2tlZENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuICBvbkNoYW5nZSh2YWx1ZTogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuY2hlY2tlZCA9IHZhbHVlO1xuICAgIHRoaXMuY2hlY2tlZENoYW5nZS5lbWl0KHZhbHVlKTtcbiAgfVxufVxuIiwiPGxhYmVsXG4gIG56LWNoZWNrYm94XG4gIGNsYXNzPVwiZ2VvLWNoZWNrYm94XCJcbiAgW256RGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICBbbnpJbmRldGVybWluYXRlXT1cImluZGV0ZXJtaW5hdGVcIlxuICBbKG5nTW9kZWwpXT1cImNoZWNrZWRcIlxuICAobmdNb2RlbENoYW5nZSk9XCJvbkNoYW5nZSgkZXZlbnQpXCJcbj57eyBsYWJlbCB9fTwvbGFiZWw+XG4iXX0=
21
+ args: [{ selector: 'geo-checkbox', standalone: true, imports: [NgZorroAntdModule, FormsModule], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<label\n nz-checkbox\n class=\"geo-checkbox\"\n [nzDisabled]=\"disabled()\"\n [nzIndeterminate]=\"indeterminate()\"\n [ngModel]=\"checked()\"\n (ngModelChange)=\"onChange($event)\"\n>{{ label() }}</label>\n", styles: ["geo-checkbox{display:inline-block;--ant-primary-color: var(--geo-color-primary-default);--ant-primary-color-hover: var(--geo-color-primary-hover);--ant-primary-color-active: var(--geo-color-primary-hover)}geo-checkbox .geo-checkbox{font-size:14px;color:var(--geo-color-neutral-900)}geo-checkbox .ant-checkbox:not(.ant-checkbox-disabled):hover .ant-checkbox-inner{border-color:var(--geo-color-primary-default)!important}geo-checkbox .ant-checkbox-checked:not(.ant-checkbox-disabled) .ant-checkbox-inner{background-color:var(--geo-color-primary-default)!important;border-color:var(--geo-color-primary-default)!important}geo-checkbox .ant-checkbox-checked:not(.ant-checkbox-disabled):after{border-color:var(--geo-color-primary-default)!important}geo-checkbox .ant-checkbox-indeterminate:not(.ant-checkbox-disabled) .ant-checkbox-inner{background-color:var(--geo-color-neutral-white)!important;border-color:var(--geo-color-primary-default)!important}geo-checkbox .ant-checkbox-indeterminate:not(.ant-checkbox-disabled) .ant-checkbox-inner:after{background-color:var(--geo-color-primary-default)!important}geo-checkbox .ant-checkbox-input:focus+.ant-checkbox-inner,geo-checkbox .ant-checkbox-input:focus-visible+.ant-checkbox-inner{border-color:var(--geo-color-primary-default)!important}geo-checkbox .ant-checkbox-checked:not(.ant-checkbox-disabled):hover .ant-checkbox-inner{background-color:var(--geo-color-primary-hover)!important;border-color:var(--geo-color-primary-hover)!important}geo-checkbox .ant-checkbox-indeterminate:not(.ant-checkbox-disabled):hover .ant-checkbox-inner{border-color:var(--geo-color-primary-hover)!important}geo-checkbox .ant-checkbox-indeterminate:not(.ant-checkbox-disabled):hover .ant-checkbox-inner:after{background-color:var(--geo-color-primary-hover)!important}geo-checkbox .ant-checkbox-disabled .ant-checkbox-inner{background-color:var(--geo-color-neutral-100)!important;border-color:var(--geo-color-neutral-300)!important}geo-checkbox .ant-checkbox-disabled.ant-checkbox-checked .ant-checkbox-inner:after{border-color:#00000040!important}geo-checkbox .ant-checkbox-disabled.ant-checkbox-indeterminate .ant-checkbox-inner:after{background-color:#00000040!important}\n"] }]
22
+ }] });
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VvLWNoZWNrYm94LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2dlby11aS9zcmMvbGliL2ZpZ21hL2dlby1jaGVja2JveC9nZW8tY2hlY2tib3guY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZ2VvLXVpL3NyYy9saWIvZmlnbWEvZ2VvLWNoZWNrYm94L2dlby1jaGVja2JveC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxLQUFLLEVBQ0wsS0FBSyxFQUNMLGlCQUFpQixHQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0scUNBQXFDLENBQUM7Ozs7QUFXeEUsTUFBTSxPQUFPLG9CQUFvQjtJQUN0QixLQUFLLEdBQUcsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQzNCLDhCQUE4QjtJQUNyQixPQUFPLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3ZCLFFBQVEsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDeEIsYUFBYSxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUV0QyxRQUFRLENBQUMsS0FBYztRQUNyQixJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMxQixDQUFDO3dHQVRVLG9CQUFvQjs0RkFBcEIsb0JBQW9CLGtvQkNuQmpDLHNOQVFBLGl0RURLWSxpQkFBaUIsZ1FBQUUsV0FBVzs7NEZBTTdCLG9CQUFvQjtrQkFUaEMsU0FBUzsrQkFDRSxjQUFjLGNBQ1osSUFBSSxXQUNQLENBQUMsaUJBQWlCLEVBQUUsV0FBVyxDQUFDLGlCQUcxQixpQkFBaUIsQ0FBQyxJQUFJLG1CQUNwQix1QkFBdUIsQ0FBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgaW5wdXQsXG4gIG1vZGVsLFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE5nWm9ycm9BbnRkTW9kdWxlIH0gZnJvbSAnLi4vLi4vbmctem9ycm8vbmctem9ycm8tYW50ZC5tb2R1bGUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdnZW8tY2hlY2tib3gnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbTmdab3Jyb0FudGRNb2R1bGUsIEZvcm1zTW9kdWxlXSxcbiAgdGVtcGxhdGVVcmw6ICcuL2dlby1jaGVja2JveC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9nZW8tY2hlY2tib3guY29tcG9uZW50LnNjc3MnLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgR2VvQ2hlY2tib3hDb21wb25lbnQge1xuICByZWFkb25seSBsYWJlbCA9IGlucHV0KCcnKTtcbiAgLyoqIFR3by13YXk6IGBbKGNoZWNrZWQpXWAuICovXG4gIHJlYWRvbmx5IGNoZWNrZWQgPSBtb2RlbChmYWxzZSk7XG4gIHJlYWRvbmx5IGRpc2FibGVkID0gaW5wdXQoZmFsc2UpO1xuICByZWFkb25seSBpbmRldGVybWluYXRlID0gaW5wdXQoZmFsc2UpO1xuXG4gIG9uQ2hhbmdlKHZhbHVlOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5jaGVja2VkLnNldCh2YWx1ZSk7XG4gIH1cbn1cbiIsIjxsYWJlbFxuICBuei1jaGVja2JveFxuICBjbGFzcz1cImdlby1jaGVja2JveFwiXG4gIFtuekRpc2FibGVkXT1cImRpc2FibGVkKClcIlxuICBbbnpJbmRldGVybWluYXRlXT1cImluZGV0ZXJtaW5hdGUoKVwiXG4gIFtuZ01vZGVsXT1cImNoZWNrZWQoKVwiXG4gIChuZ01vZGVsQ2hhbmdlKT1cIm9uQ2hhbmdlKCRldmVudClcIlxuPnt7IGxhYmVsKCkgfX08L2xhYmVsPlxuIl19