@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
@@ -5,18 +5,18 @@ import * as i0 from "@angular/core";
5
5
  */
6
6
  export declare class GeoPageTitleComponent {
7
7
  /** Nội dung tiêu đề. */
8
- title: string;
8
+ readonly title: import("@angular/core").InputSignal<string>;
9
9
  /** Tự chuyển uppercase. Default `true`. */
10
- uppercase: boolean;
10
+ readonly uppercase: import("@angular/core").InputSignal<boolean>;
11
11
  /** Chiều rộng gạch chân (px hoặc CSS size). Default `56px`. */
12
- accentWidth: number | string;
12
+ readonly accentWidth: import("@angular/core").InputSignal<string | number>;
13
13
  /** Độ dày gạch chân. Default `4px`. */
14
- accentHeight: number | string;
14
+ readonly accentHeight: import("@angular/core").InputSignal<string | number>;
15
15
  /** Heading level → geo-typography variant. */
16
- level: 1 | 2 | 3 | 4;
17
- get typographyVariant(): GeoTypographyVariant;
18
- get accentWidthCss(): string;
19
- get accentHeightCss(): string;
16
+ readonly level: import("@angular/core").InputSignal<1 | 2 | 3 | 4>;
17
+ readonly typographyVariant: import("@angular/core").Signal<GeoTypographyVariant>;
18
+ readonly accentWidthCss: import("@angular/core").Signal<string>;
19
+ readonly accentHeightCss: import("@angular/core").Signal<string>;
20
20
  static ɵfac: i0.ɵɵFactoryDeclaration<GeoPageTitleComponent, never>;
21
- static ɵcmp: i0.ɵɵComponentDeclaration<GeoPageTitleComponent, "geo-page-title", never, { "title": { "alias": "title"; "required": false; }; "uppercase": { "alias": "uppercase"; "required": false; }; "accentWidth": { "alias": "accentWidth"; "required": false; }; "accentHeight": { "alias": "accentHeight"; "required": false; }; "level": { "alias": "level"; "required": false; }; }, {}, never, ["*"], true, never>;
21
+ static ɵcmp: i0.ɵɵComponentDeclaration<GeoPageTitleComponent, "geo-page-title", never, { "title": { "alias": "title"; "required": false; "isSignal": true; }; "uppercase": { "alias": "uppercase"; "required": false; "isSignal": true; }; "accentWidth": { "alias": "accentWidth"; "required": false; "isSignal": true; }; "accentHeight": { "alias": "accentHeight"; "required": false; "isSignal": true; }; "level": { "alias": "level"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
22
22
  }
@@ -1,21 +1,16 @@
1
- import { EventEmitter } from '@angular/core';
2
1
  import * as i0 from "@angular/core";
3
2
  /**
4
3
  * Pagination gọn — wrap `nz-pagination`. Dùng cho panel/map (không kèm size changer như `geo-table-pagination`).
5
4
  */
6
5
  export declare class GeoPaginationComponent {
7
- pageIndex: number;
8
- pageSize: number;
9
- total: number;
10
- size: 'default' | 'small';
11
- simple: boolean;
12
- hideOnSinglePage: boolean;
13
- showSizeChanger: boolean;
14
- pageSizeOptions: number[];
15
- pageIndexChange: EventEmitter<number>;
16
- pageSizeChange: EventEmitter<number>;
17
- onPageIndexChange(page: number): void;
18
- onPageSizeChange(size: number): void;
6
+ readonly pageIndex: import("@angular/core").ModelSignal<number>;
7
+ readonly pageSize: import("@angular/core").ModelSignal<number>;
8
+ readonly total: import("@angular/core").InputSignal<number>;
9
+ readonly size: import("@angular/core").InputSignal<"default" | "small">;
10
+ readonly simple: import("@angular/core").InputSignal<boolean>;
11
+ readonly hideOnSinglePage: import("@angular/core").InputSignal<boolean>;
12
+ readonly showSizeChanger: import("@angular/core").InputSignal<boolean>;
13
+ readonly pageSizeOptions: import("@angular/core").InputSignal<number[]>;
19
14
  static ɵfac: i0.ɵɵFactoryDeclaration<GeoPaginationComponent, never>;
20
- static ɵcmp: i0.ɵɵComponentDeclaration<GeoPaginationComponent, "geo-pagination", never, { "pageIndex": { "alias": "pageIndex"; "required": false; }; "pageSize": { "alias": "pageSize"; "required": false; }; "total": { "alias": "total"; "required": false; }; "size": { "alias": "size"; "required": false; }; "simple": { "alias": "simple"; "required": false; }; "hideOnSinglePage": { "alias": "hideOnSinglePage"; "required": false; }; "showSizeChanger": { "alias": "showSizeChanger"; "required": false; }; "pageSizeOptions": { "alias": "pageSizeOptions"; "required": false; }; }, { "pageIndexChange": "pageIndexChange"; "pageSizeChange": "pageSizeChange"; }, never, never, true, never>;
15
+ static ɵcmp: i0.ɵɵComponentDeclaration<GeoPaginationComponent, "geo-pagination", never, { "pageIndex": { "alias": "pageIndex"; "required": false; "isSignal": true; }; "pageSize": { "alias": "pageSize"; "required": false; "isSignal": true; }; "total": { "alias": "total"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "simple": { "alias": "simple"; "required": false; "isSignal": true; }; "hideOnSinglePage": { "alias": "hideOnSinglePage"; "required": false; "isSignal": true; }; "showSizeChanger": { "alias": "showSizeChanger"; "required": false; "isSignal": true; }; "pageSizeOptions": { "alias": "pageSizeOptions"; "required": false; "isSignal": true; }; }, { "pageIndex": "pageIndexChange"; "pageSize": "pageSizeChange"; }, never, never, true, never>;
21
16
  }
@@ -1,24 +1,26 @@
1
- import { EventEmitter } from '@angular/core';
2
1
  import { ControlValueAccessor } from '@angular/forms';
3
2
  import { GeoRadioButtonAppearance, GeoRadioLayout, GeoRadioOption, GeoRadioSize } from './geo-radio.types';
4
3
  import * as i0 from "@angular/core";
5
4
  export declare class GeoRadioComponent implements ControlValueAccessor {
6
- options: GeoRadioOption[];
7
- label: string;
8
- size: GeoRadioSize;
9
- layout: GeoRadioLayout;
5
+ private readonly cdr;
6
+ readonly options: import("@angular/core").InputSignal<GeoRadioOption[]>;
7
+ readonly label: import("@angular/core").InputSignal<string>;
8
+ readonly size: import("@angular/core").InputSignal<GeoRadioSize>;
9
+ readonly layout: import("@angular/core").InputSignal<GeoRadioLayout>;
10
10
  /** `true` → dùng `nz-radio-button` thay vì `nz-radio` */
11
- buttonStyle: boolean;
11
+ readonly buttonStyle: import("@angular/core").InputSignal<boolean>;
12
12
  /** Chỉ áp dụng khi `buttonStyle: true` */
13
- buttonAppearance: GeoRadioButtonAppearance;
14
- disabled: boolean;
15
- required: boolean;
16
- error: boolean;
17
- errorMessage: string;
18
- block: boolean;
19
- valueChange: EventEmitter<string | number | null>;
13
+ readonly buttonAppearance: import("@angular/core").InputSignal<GeoRadioButtonAppearance>;
14
+ readonly disabled: import("@angular/core").InputSignal<boolean>;
15
+ readonly required: import("@angular/core").InputSignal<boolean>;
16
+ readonly error: import("@angular/core").InputSignal<boolean>;
17
+ readonly errorMessage: import("@angular/core").InputSignal<string>;
18
+ readonly block: import("@angular/core").InputSignal<boolean>;
19
+ readonly valueChange: import("@angular/core").OutputEmitterRef<string | number | null>;
20
20
  readonly errorMessageId: string;
21
- value: string | number | null;
21
+ private readonly disabledFromCva;
22
+ readonly isDisabled: import("@angular/core").Signal<boolean>;
23
+ protected readonly value: import("@angular/core").WritableSignal<string | number | null>;
22
24
  private onChange;
23
25
  private onTouched;
24
26
  onValueChange(value: string | number | null): void;
@@ -27,5 +29,5 @@ export declare class GeoRadioComponent implements ControlValueAccessor {
27
29
  registerOnTouched(fn: () => void): void;
28
30
  setDisabledState(isDisabled: boolean): void;
29
31
  static ɵfac: i0.ɵɵFactoryDeclaration<GeoRadioComponent, never>;
30
- static ɵcmp: i0.ɵɵComponentDeclaration<GeoRadioComponent, "geo-radio", never, { "options": { "alias": "options"; "required": false; }; "label": { "alias": "label"; "required": false; }; "size": { "alias": "size"; "required": false; }; "layout": { "alias": "layout"; "required": false; }; "buttonStyle": { "alias": "buttonStyle"; "required": false; }; "buttonAppearance": { "alias": "buttonAppearance"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "required": { "alias": "required"; "required": false; }; "error": { "alias": "error"; "required": false; }; "errorMessage": { "alias": "errorMessage"; "required": false; }; "block": { "alias": "block"; "required": false; }; }, { "valueChange": "valueChange"; }, never, never, true, never>;
32
+ static ɵcmp: i0.ɵɵComponentDeclaration<GeoRadioComponent, "geo-radio", never, { "options": { "alias": "options"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "layout": { "alias": "layout"; "required": false; "isSignal": true; }; "buttonStyle": { "alias": "buttonStyle"; "required": false; "isSignal": true; }; "buttonAppearance": { "alias": "buttonAppearance"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "error": { "alias": "error"; "required": false; "isSignal": true; }; "errorMessage": { "alias": "errorMessage"; "required": false; "isSignal": true; }; "block": { "alias": "block"; "required": false; "isSignal": true; }; }, { "valueChange": "valueChange"; }, never, never, true, never>;
31
33
  }
@@ -1,33 +1,38 @@
1
- import { EventEmitter } from '@angular/core';
2
1
  import { ControlValueAccessor } from '@angular/forms';
3
2
  import { GeoSelectMode, GeoSelectOption, GeoSelectSize } from './geo-select.types';
4
3
  import * as i0 from "@angular/core";
5
4
  export declare class GeoSelectComponent implements ControlValueAccessor {
6
- options: GeoSelectOption[];
7
- label: string;
8
- placeholder: string;
9
- size: GeoSelectSize;
10
- mode: GeoSelectMode;
11
- disabled: boolean;
12
- required: boolean;
13
- error: boolean;
14
- errorMessage: string;
15
- allowClear: boolean;
16
- showSearch: boolean;
17
- block: boolean;
18
- width?: number | string;
19
- valueChange: EventEmitter<string | number | (string | number)[] | null>;
5
+ private readonly cdr;
6
+ readonly options: import("@angular/core").InputSignal<GeoSelectOption<string | number>[]>;
7
+ readonly label: import("@angular/core").InputSignal<string>;
8
+ readonly placeholder: import("@angular/core").InputSignal<string>;
9
+ readonly size: import("@angular/core").InputSignal<GeoSelectSize>;
10
+ readonly mode: import("@angular/core").InputSignal<GeoSelectMode>;
11
+ readonly disabled: import("@angular/core").InputSignal<boolean>;
12
+ readonly required: import("@angular/core").InputSignal<boolean>;
13
+ readonly error: import("@angular/core").InputSignal<boolean>;
14
+ readonly errorMessage: import("@angular/core").InputSignal<string>;
15
+ readonly allowClear: import("@angular/core").InputSignal<boolean>;
16
+ readonly showSearch: import("@angular/core").InputSignal<boolean>;
17
+ readonly block: import("@angular/core").InputSignal<boolean>;
18
+ readonly width: import("@angular/core").InputSignal<string | number | undefined>;
19
+ readonly valueChange: import("@angular/core").OutputEmitterRef<string | number | (string | number)[] | null>;
20
20
  readonly errorMessageId: string;
21
- value: string | number | Array<string | number> | null;
21
+ private readonly disabledFromCva;
22
+ readonly isDisabled: import("@angular/core").Signal<boolean>;
23
+ protected readonly value: import("@angular/core").WritableSignal<string | number | (string | number)[] | null>;
22
24
  private onChange;
23
25
  private onTouched;
24
- get hostWidth(): string | null;
25
- get controlClassNames(): Record<string, boolean>;
26
+ readonly hostWidth: import("@angular/core").Signal<string | null>;
27
+ readonly controlClassNames: import("@angular/core").Signal<{
28
+ [x: string]: boolean;
29
+ 'geo-select': boolean;
30
+ }>;
26
31
  onValueChange(value: string | number | Array<string | number> | null): void;
27
32
  writeValue(value: string | number | Array<string | number> | null): void;
28
33
  registerOnChange(fn: (value: string | number | Array<string | number> | null) => void): void;
29
34
  registerOnTouched(fn: () => void): void;
30
35
  setDisabledState(isDisabled: boolean): void;
31
36
  static ɵfac: i0.ɵɵFactoryDeclaration<GeoSelectComponent, never>;
32
- static ɵcmp: i0.ɵɵComponentDeclaration<GeoSelectComponent, "geo-select", never, { "options": { "alias": "options"; "required": false; }; "label": { "alias": "label"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "size": { "alias": "size"; "required": false; }; "mode": { "alias": "mode"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "required": { "alias": "required"; "required": false; }; "error": { "alias": "error"; "required": false; }; "errorMessage": { "alias": "errorMessage"; "required": false; }; "allowClear": { "alias": "allowClear"; "required": false; }; "showSearch": { "alias": "showSearch"; "required": false; }; "block": { "alias": "block"; "required": false; }; "width": { "alias": "width"; "required": false; }; }, { "valueChange": "valueChange"; }, never, never, true, never>;
37
+ static ɵcmp: i0.ɵɵComponentDeclaration<GeoSelectComponent, "geo-select", never, { "options": { "alias": "options"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "mode": { "alias": "mode"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "error": { "alias": "error"; "required": false; "isSignal": true; }; "errorMessage": { "alias": "errorMessage"; "required": false; "isSignal": true; }; "allowClear": { "alias": "allowClear"; "required": false; "isSignal": true; }; "showSearch": { "alias": "showSearch"; "required": false; "isSignal": true; }; "block": { "alias": "block"; "required": false; "isSignal": true; }; "width": { "alias": "width"; "required": false; "isSignal": true; }; }, { "valueChange": "valueChange"; }, never, never, true, never>;
33
38
  }
@@ -1,17 +1,15 @@
1
- import { EventEmitter } from '@angular/core';
2
1
  import * as i0 from "@angular/core";
3
2
  /**
4
3
  * Slider (opacity / range) — wrap `nz-slider`. Domain dùng `geo-slider`, không import NzSliderModule.
5
4
  */
6
5
  export declare class GeoSliderComponent {
7
- value: number;
8
- min: number;
9
- max: number;
10
- step: number;
11
- disabled: boolean;
12
- tipFormatter?: (value: number) => string;
13
- valueChange: EventEmitter<number>;
6
+ readonly value: import("@angular/core").ModelSignal<number>;
7
+ readonly min: import("@angular/core").InputSignal<number>;
8
+ readonly max: import("@angular/core").InputSignal<number>;
9
+ readonly step: import("@angular/core").InputSignal<number>;
10
+ readonly disabled: import("@angular/core").InputSignal<boolean>;
11
+ readonly tipFormatter: import("@angular/core").InputSignal<((value: number) => string) | undefined>;
14
12
  onChange(next: number): void;
15
13
  static ɵfac: i0.ɵɵFactoryDeclaration<GeoSliderComponent, never>;
16
- static ɵcmp: i0.ɵɵComponentDeclaration<GeoSliderComponent, "geo-slider", never, { "value": { "alias": "value"; "required": false; }; "min": { "alias": "min"; "required": false; }; "max": { "alias": "max"; "required": false; }; "step": { "alias": "step"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "tipFormatter": { "alias": "tipFormatter"; "required": false; }; }, { "valueChange": "valueChange"; }, never, never, true, never>;
14
+ static ɵcmp: i0.ɵɵComponentDeclaration<GeoSliderComponent, "geo-slider", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "min": { "alias": "min"; "required": false; "isSignal": true; }; "max": { "alias": "max"; "required": false; "isSignal": true; }; "step": { "alias": "step"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "tipFormatter": { "alias": "tipFormatter"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; }, never, never, true, never>;
17
15
  }
@@ -0,0 +1,50 @@
1
+ import type { GeoStatCardItem } from './geo-stat-card.types';
2
+ import * as i0 from "@angular/core";
3
+ /**
4
+ * KPI / summary tile for dashboard (TCQH.1).
5
+ *
6
+ * @summary Ô thống kê tổng quan (diện tích, số thửa…).
7
+ * @whenToUse Dashboard hoặc đầu trang thống kê.
8
+ * @doNotUseWhen Form field summaries — use typography.
9
+ */
10
+ export declare class GeoStatCardComponent {
11
+ private readonly cdr;
12
+ private readonly destroyRef;
13
+ readonly label: import("@angular/core").InputSignal<string>;
14
+ readonly value: import("@angular/core").InputSignal<string | number>;
15
+ readonly unit: import("@angular/core").InputSignal<string>;
16
+ readonly icon: import("@angular/core").InputSignal<string>;
17
+ readonly hint: import("@angular/core").InputSignal<string>;
18
+ readonly clickable: import("@angular/core").InputSignal<boolean>;
19
+ /** Count-up number animation. Honors `prefers-reduced-motion`. */
20
+ readonly animate: import("@angular/core").InputSignal<boolean>;
21
+ /** Count-up duration in ms. */
22
+ readonly animationDuration: import("@angular/core").InputSignal<number>;
23
+ /** Stagger delay before count-up starts (ms). */
24
+ readonly animationDelay: import("@angular/core").InputSignal<number>;
25
+ readonly clicked: import("@angular/core").OutputEmitterRef<void>;
26
+ /** Convenience: bind a whole item object. */
27
+ readonly item: import("@angular/core").InputSignal<GeoStatCardItem | null>;
28
+ /** Animated / resolved value shown in the template. */
29
+ readonly displayValue: import("@angular/core").WritableSignal<string>;
30
+ private rafId;
31
+ private delayId;
32
+ private animToken;
33
+ readonly resolvedLabel: import("@angular/core").Signal<string>;
34
+ readonly resolvedUnit: import("@angular/core").Signal<string>;
35
+ readonly resolvedIcon: import("@angular/core").Signal<string>;
36
+ readonly resolvedHint: import("@angular/core").Signal<string>;
37
+ private readonly resolvedRawValue;
38
+ /** Fallback when animation has not painted yet. */
39
+ readonly resolvedRawFallback: import("@angular/core").Signal<string>;
40
+ constructor();
41
+ onClick(): void;
42
+ private startCountUp;
43
+ private cancelAnimation;
44
+ /** Soft ease-out — nhanh gọn, hạ tốc nhẹ khi kết thúc. */
45
+ private easeOutSoft;
46
+ private parseValue;
47
+ private formatValue;
48
+ static ɵfac: i0.ɵɵFactoryDeclaration<GeoStatCardComponent, never>;
49
+ static ɵcmp: i0.ɵɵComponentDeclaration<GeoStatCardComponent, "geo-stat-card", never, { "label": { "alias": "label"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; "unit": { "alias": "unit"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "hint": { "alias": "hint"; "required": false; "isSignal": true; }; "clickable": { "alias": "clickable"; "required": false; "isSignal": true; }; "animate": { "alias": "animate"; "required": false; "isSignal": true; }; "animationDuration": { "alias": "animationDuration"; "required": false; "isSignal": true; }; "animationDelay": { "alias": "animationDelay"; "required": false; "isSignal": true; }; "item": { "alias": "item"; "required": false; "isSignal": true; }; }, { "clicked": "clicked"; }, never, never, true, never>;
50
+ }
@@ -0,0 +1,11 @@
1
+ export interface GeoStatCardItem {
2
+ id?: string;
3
+ label: string;
4
+ value: string | number;
5
+ /** Optional unit shown after value (e.g. m², thửa). */
6
+ unit?: string;
7
+ /** Ant Design icon name. */
8
+ icon?: string;
9
+ /** Optional helper / trend text. */
10
+ hint?: string;
11
+ }
@@ -1,4 +1,4 @@
1
- import { GeoStatusColor, GeoStatusPreset } from './geo-status-tag.types';
1
+ import { GeoStatusColor } from './geo-status-tag.types';
2
2
  import * as i0 from "@angular/core";
3
3
  export declare class GeoStatusTagComponent {
4
4
  /**
@@ -6,13 +6,13 @@ export declare class GeoStatusTagComponent {
6
6
  * Semantic: success | primary | error | warning | info | teal | neutral
7
7
  * Legacy: completed | cancelled | in_progress | adjusting
8
8
  */
9
- status: GeoStatusPreset | string;
9
+ readonly status: import("@angular/core").InputSignal<string>;
10
10
  /** Override label text. */
11
- label?: string;
11
+ readonly label: import("@angular/core").InputSignal<string | undefined>;
12
12
  /** Show leading status dot (design default). */
13
- showDot: boolean;
14
- get resolvedColor(): GeoStatusColor;
15
- get displayLabel(): string;
13
+ readonly showDot: import("@angular/core").InputSignal<boolean>;
14
+ readonly resolvedColor: import("@angular/core").Signal<GeoStatusColor>;
15
+ readonly displayLabel: import("@angular/core").Signal<string>;
16
16
  static ɵfac: i0.ɵɵFactoryDeclaration<GeoStatusTagComponent, never>;
17
- static ɵcmp: i0.ɵɵComponentDeclaration<GeoStatusTagComponent, "geo-status-tag", never, { "status": { "alias": "status"; "required": false; }; "label": { "alias": "label"; "required": false; }; "showDot": { "alias": "showDot"; "required": false; }; }, {}, never, never, true, never>;
17
+ static ɵcmp: i0.ɵɵComponentDeclaration<GeoStatusTagComponent, "geo-status-tag", never, { "status": { "alias": "status"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "showDot": { "alias": "showDot"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
18
18
  }
@@ -1,4 +1,3 @@
1
- import { EventEmitter } from '@angular/core';
2
1
  import { GeoStepperStep } from '../geo-stepper/geo-stepper.types';
3
2
  import * as i0 from "@angular/core";
4
3
  /**
@@ -19,38 +18,37 @@ import * as i0 from "@angular/core";
19
18
  * ```
20
19
  */
21
20
  export declare class GeoStepFormLayoutComponent {
22
- steps: GeoStepperStep[];
23
- activeIndex: number;
24
- title: string;
25
- clickableSteps: boolean;
21
+ readonly steps: import("@angular/core").InputSignal<GeoStepperStep[]>;
22
+ readonly activeIndex: import("@angular/core").ModelSignal<number>;
23
+ readonly title: import("@angular/core").InputSignal<string>;
24
+ readonly clickableSteps: import("@angular/core").InputSignal<boolean>;
26
25
  /** Hiện nút ↑/↓ góc phải card (chuyển bước). Mặc định `true`. */
27
- showScrollButtons: boolean;
28
- showCancel: boolean;
29
- showPrevious: boolean;
30
- showSave: boolean;
31
- showNext: boolean;
32
- cancelLabel: string;
33
- previousLabel: string;
34
- saveLabel: string;
35
- nextLabel: string;
36
- finishLabel: string;
37
- saveLoading: boolean;
38
- nextLoading: boolean;
26
+ readonly showScrollButtons: import("@angular/core").InputSignal<boolean>;
27
+ readonly showCancel: import("@angular/core").InputSignal<boolean>;
28
+ readonly showPrevious: import("@angular/core").InputSignal<boolean>;
29
+ readonly showSave: import("@angular/core").InputSignal<boolean>;
30
+ readonly showNext: import("@angular/core").InputSignal<boolean>;
31
+ readonly cancelLabel: import("@angular/core").InputSignal<string>;
32
+ readonly previousLabel: import("@angular/core").InputSignal<string>;
33
+ readonly saveLabel: import("@angular/core").InputSignal<string>;
34
+ readonly nextLabel: import("@angular/core").InputSignal<string>;
35
+ readonly finishLabel: import("@angular/core").InputSignal<string>;
36
+ readonly saveLoading: import("@angular/core").InputSignal<boolean>;
37
+ readonly nextLoading: import("@angular/core").InputSignal<boolean>;
39
38
  /** Ẩn footer actions (dùng slot `[footer]` hoặc không cần nút). */
40
- hideDefaultFooter: boolean;
41
- activeIndexChange: EventEmitter<number>;
42
- stepSelect: EventEmitter<{
39
+ readonly hideDefaultFooter: import("@angular/core").InputSignal<boolean>;
40
+ readonly stepSelect: import("@angular/core").OutputEmitterRef<{
43
41
  index: number;
44
42
  step: GeoStepperStep;
45
43
  }>;
46
- cancel: EventEmitter<void>;
47
- previous: EventEmitter<void>;
48
- save: EventEmitter<void>;
49
- next: EventEmitter<void>;
50
- get isLastStep(): boolean;
51
- get canGoPreviousStep(): boolean;
52
- get canGoNextStep(): boolean;
53
- get resolvedNextLabel(): string;
44
+ readonly cancel: import("@angular/core").OutputEmitterRef<void>;
45
+ readonly previous: import("@angular/core").OutputEmitterRef<void>;
46
+ readonly save: import("@angular/core").OutputEmitterRef<void>;
47
+ readonly next: import("@angular/core").OutputEmitterRef<void>;
48
+ readonly isLastStep: import("@angular/core").Signal<boolean>;
49
+ readonly canGoPreviousStep: import("@angular/core").Signal<boolean>;
50
+ readonly canGoNextStep: import("@angular/core").Signal<boolean>;
51
+ readonly resolvedNextLabel: import("@angular/core").Signal<string>;
54
52
  onActiveIndexChange(index: number): void;
55
53
  onStepSelect(event: {
56
54
  index: number;
@@ -63,5 +61,5 @@ export declare class GeoStepFormLayoutComponent {
63
61
  goAdjacentStep(direction: 'up' | 'down'): void;
64
62
  private findAdjacentStepIndex;
65
63
  static ɵfac: i0.ɵɵFactoryDeclaration<GeoStepFormLayoutComponent, never>;
66
- static ɵcmp: i0.ɵɵComponentDeclaration<GeoStepFormLayoutComponent, "geo-step-form-layout", never, { "steps": { "alias": "steps"; "required": false; }; "activeIndex": { "alias": "activeIndex"; "required": false; }; "title": { "alias": "title"; "required": false; }; "clickableSteps": { "alias": "clickableSteps"; "required": false; }; "showScrollButtons": { "alias": "showScrollButtons"; "required": false; }; "showCancel": { "alias": "showCancel"; "required": false; }; "showPrevious": { "alias": "showPrevious"; "required": false; }; "showSave": { "alias": "showSave"; "required": false; }; "showNext": { "alias": "showNext"; "required": false; }; "cancelLabel": { "alias": "cancelLabel"; "required": false; }; "previousLabel": { "alias": "previousLabel"; "required": false; }; "saveLabel": { "alias": "saveLabel"; "required": false; }; "nextLabel": { "alias": "nextLabel"; "required": false; }; "finishLabel": { "alias": "finishLabel"; "required": false; }; "saveLoading": { "alias": "saveLoading"; "required": false; }; "nextLoading": { "alias": "nextLoading"; "required": false; }; "hideDefaultFooter": { "alias": "hideDefaultFooter"; "required": false; }; }, { "activeIndexChange": "activeIndexChange"; "stepSelect": "stepSelect"; "cancel": "cancel"; "previous": "previous"; "save": "save"; "next": "next"; }, never, ["[sidebarExtra]", "*", "[footer]", "[footer]"], true, never>;
64
+ static ɵcmp: i0.ɵɵComponentDeclaration<GeoStepFormLayoutComponent, "geo-step-form-layout", never, { "steps": { "alias": "steps"; "required": false; "isSignal": true; }; "activeIndex": { "alias": "activeIndex"; "required": false; "isSignal": true; }; "title": { "alias": "title"; "required": false; "isSignal": true; }; "clickableSteps": { "alias": "clickableSteps"; "required": false; "isSignal": true; }; "showScrollButtons": { "alias": "showScrollButtons"; "required": false; "isSignal": true; }; "showCancel": { "alias": "showCancel"; "required": false; "isSignal": true; }; "showPrevious": { "alias": "showPrevious"; "required": false; "isSignal": true; }; "showSave": { "alias": "showSave"; "required": false; "isSignal": true; }; "showNext": { "alias": "showNext"; "required": false; "isSignal": true; }; "cancelLabel": { "alias": "cancelLabel"; "required": false; "isSignal": true; }; "previousLabel": { "alias": "previousLabel"; "required": false; "isSignal": true; }; "saveLabel": { "alias": "saveLabel"; "required": false; "isSignal": true; }; "nextLabel": { "alias": "nextLabel"; "required": false; "isSignal": true; }; "finishLabel": { "alias": "finishLabel"; "required": false; "isSignal": true; }; "saveLoading": { "alias": "saveLoading"; "required": false; "isSignal": true; }; "nextLoading": { "alias": "nextLoading"; "required": false; "isSignal": true; }; "hideDefaultFooter": { "alias": "hideDefaultFooter"; "required": false; "isSignal": true; }; }, { "activeIndex": "activeIndexChange"; "stepSelect": "stepSelect"; "cancel": "cancel"; "previous": "previous"; "save": "save"; "next": "next"; }, never, ["[sidebarExtra]", "*", "[footer]", "[footer]"], true, never>;
67
65
  }
@@ -1,4 +1,3 @@
1
- import { EventEmitter } from '@angular/core';
2
1
  import { GeoStepperOrientation, GeoStepperStep } from './geo-stepper.types';
3
2
  import * as i0 from "@angular/core";
4
3
  /**
@@ -21,14 +20,13 @@ import * as i0 from "@angular/core";
21
20
  * ```
22
21
  */
23
22
  export declare class GeoStepperComponent {
24
- steps: GeoStepperStep[];
25
- activeIndex: number;
23
+ readonly steps: import("@angular/core").InputSignal<GeoStepperStep[]>;
24
+ readonly activeIndex: import("@angular/core").ModelSignal<number>;
26
25
  /** Mặc định horizontal theo design form modal. */
27
- orientation: GeoStepperOrientation;
26
+ readonly orientation: import("@angular/core").InputSignal<GeoStepperOrientation>;
28
27
  /** Cho phép click để đổi bước. */
29
- clickable: boolean;
30
- activeIndexChange: EventEmitter<number>;
31
- stepSelect: EventEmitter<{
28
+ readonly clickable: import("@angular/core").InputSignal<boolean>;
29
+ readonly stepSelect: import("@angular/core").OutputEmitterRef<{
32
30
  index: number;
33
31
  step: GeoStepperStep;
34
32
  }>;
@@ -38,5 +36,5 @@ export declare class GeoStepperComponent {
38
36
  isPending(index: number): boolean;
39
37
  onSelect(index: number, step: GeoStepperStep): void;
40
38
  static ɵfac: i0.ɵɵFactoryDeclaration<GeoStepperComponent, never>;
41
- static ɵcmp: i0.ɵɵComponentDeclaration<GeoStepperComponent, "geo-stepper", never, { "steps": { "alias": "steps"; "required": false; }; "activeIndex": { "alias": "activeIndex"; "required": false; }; "orientation": { "alias": "orientation"; "required": false; }; "clickable": { "alias": "clickable"; "required": false; }; }, { "activeIndexChange": "activeIndexChange"; "stepSelect": "stepSelect"; }, never, never, true, never>;
39
+ static ɵcmp: i0.ɵɵComponentDeclaration<GeoStepperComponent, "geo-stepper", never, { "steps": { "alias": "steps"; "required": false; "isSignal": true; }; "activeIndex": { "alias": "activeIndex"; "required": false; "isSignal": true; }; "orientation": { "alias": "orientation"; "required": false; "isSignal": true; }; "clickable": { "alias": "clickable"; "required": false; "isSignal": true; }; }, { "activeIndex": "activeIndexChange"; "stepSelect": "stepSelect"; }, never, never, true, never>;
42
40
  }
@@ -1,13 +1,12 @@
1
- import { EventEmitter } from '@angular/core';
2
1
  import { GeoColumnPickerApplyPayload, GeoColumnPickerItem } from './geo-column-picker.types';
3
2
  import * as i0 from "@angular/core";
4
3
  export declare class GeoColumnPickerComponent {
5
- triggerLabel: string;
6
- hint: string;
7
- items: GeoColumnPickerItem[];
4
+ readonly triggerLabel: import("@angular/core").InputSignal<string>;
5
+ readonly hint: import("@angular/core").InputSignal<string>;
6
+ readonly items: import("@angular/core").InputSignal<GeoColumnPickerItem[]>;
8
7
  /** Lưu trạng thái ẩn/hiện cột theo session khi người dùng áp dụng */
9
- storageKey?: string;
10
- apply: EventEmitter<GeoColumnPickerApplyPayload>;
8
+ readonly storageKey: import("@angular/core").InputSignal<string | undefined>;
9
+ readonly apply: import("@angular/core").OutputEmitterRef<GeoColumnPickerApplyPayload>;
11
10
  dropdownVisible: boolean;
12
11
  draftItems: GeoColumnPickerItem[];
13
12
  onDropdownVisibleChange(visible: boolean): void;
@@ -16,5 +15,5 @@ export declare class GeoColumnPickerComponent {
16
15
  onReset(): void;
17
16
  private syncDraft;
18
17
  static ɵfac: i0.ɵɵFactoryDeclaration<GeoColumnPickerComponent, never>;
19
- static ɵcmp: i0.ɵɵComponentDeclaration<GeoColumnPickerComponent, "geo-column-picker", never, { "triggerLabel": { "alias": "triggerLabel"; "required": false; }; "hint": { "alias": "hint"; "required": false; }; "items": { "alias": "items"; "required": false; }; "storageKey": { "alias": "storageKey"; "required": false; }; }, { "apply": "apply"; }, never, never, true, never>;
18
+ static ɵcmp: i0.ɵɵComponentDeclaration<GeoColumnPickerComponent, "geo-column-picker", never, { "triggerLabel": { "alias": "triggerLabel"; "required": false; "isSignal": true; }; "hint": { "alias": "hint"; "required": false; "isSignal": true; }; "items": { "alias": "items"; "required": false; "isSignal": true; }; "storageKey": { "alias": "storageKey"; "required": false; "isSignal": true; }; }, { "apply": "apply"; }, never, never, true, never>;
20
19
  }
@@ -1,21 +1,20 @@
1
- import { EventEmitter } from '@angular/core';
2
1
  import { GeoRowAction } from './geo-row-actions.types';
3
2
  import * as i0 from "@angular/core";
4
3
  export declare class GeoRowActionsComponent {
5
- actions: GeoRowAction[] | null;
4
+ readonly actions: import("@angular/core").InputSignal<GeoRowAction[] | null>;
6
5
  /** Action ưu tiên hiển thị khi có > 2 thao tác (mặc định: edit) */
7
- primaryActionKey: string;
8
- actionClick: EventEmitter<string>;
6
+ readonly primaryActionKey: import("@angular/core").InputSignal<string>;
7
+ readonly actionClick: import("@angular/core").OutputEmitterRef<string>;
9
8
  /** @deprecated Dùng `actionClick` với key `edit` */
10
- edit: EventEmitter<void>;
9
+ readonly edit: import("@angular/core").OutputEmitterRef<void>;
11
10
  /** @deprecated Dùng `actionClick` với key `more` */
12
- more: EventEmitter<void>;
13
- get resolvedActions(): GeoRowAction[];
14
- get enabledActions(): GeoRowAction[];
15
- get inlineActions(): GeoRowAction[];
16
- get overflowActions(): GeoRowAction[];
17
- get hasOverflow(): boolean;
11
+ readonly more: import("@angular/core").OutputEmitterRef<void>;
12
+ readonly resolvedActions: import("@angular/core").Signal<GeoRowAction[]>;
13
+ readonly enabledActions: import("@angular/core").Signal<GeoRowAction[]>;
14
+ readonly inlineActions: import("@angular/core").Signal<GeoRowAction[]>;
15
+ readonly overflowActions: import("@angular/core").Signal<GeoRowAction[]>;
16
+ readonly hasOverflow: import("@angular/core").Signal<boolean>;
18
17
  onActionClick(event: Event, action: GeoRowAction): void;
19
18
  static ɵfac: i0.ɵɵFactoryDeclaration<GeoRowActionsComponent, never>;
20
- static ɵcmp: i0.ɵɵComponentDeclaration<GeoRowActionsComponent, "geo-row-actions", never, { "actions": { "alias": "actions"; "required": false; }; "primaryActionKey": { "alias": "primaryActionKey"; "required": false; }; }, { "actionClick": "actionClick"; "edit": "edit"; "more": "more"; }, never, never, true, never>;
19
+ static ɵcmp: i0.ɵɵComponentDeclaration<GeoRowActionsComponent, "geo-row-actions", never, { "actions": { "alias": "actions"; "required": false; "isSignal": true; }; "primaryActionKey": { "alias": "primaryActionKey"; "required": false; "isSignal": true; }; }, { "actionClick": "actionClick"; "edit": "edit"; "more": "more"; }, never, never, true, never>;
21
20
  }
@@ -1,4 +1,4 @@
1
- import { AfterViewInit, EventEmitter, OnChanges, OnDestroy, SimpleChanges } from '@angular/core';
1
+ import { AfterViewInit, OnDestroy } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
3
  /**
4
4
  * Thanh lọc phía trên bảng: field chính + actions (Tìm kiếm / Bộ lọc nâng cao / Reset).
@@ -15,53 +15,46 @@ import * as i0 from "@angular/core";
15
15
  * ## Content projection
16
16
  * - Default: luôn hiện. Slot `[advanced]`: chỉ hiện khi `advancedExpanded`.
17
17
  */
18
- export declare class GeoTableFilterComponent implements AfterViewInit, OnChanges, OnDestroy {
18
+ export declare class GeoTableFilterComponent implements AfterViewInit, OnDestroy {
19
19
  private readonly host;
20
20
  private readonly ngZone;
21
- private readonly cdr;
22
21
  /**
23
22
  * Số cột field mỗi hàng (mặc định 4 → tổng 5 cột gồm actions).
24
23
  * Ví dụ: 4 field + columns=2 → 2 hàng × 2 cột field (+ 1 cột actions).
25
24
  */
26
- columns: number;
25
+ readonly columns: import("@angular/core").InputSignal<number>;
27
26
  /**
28
27
  * Khi `true` (mặc định): số cột thực tế ≤ `columns` theo breakpoint.
29
28
  * Khi `false`: luôn dùng đúng `columns`.
30
29
  */
31
- responsiveColumns: boolean;
30
+ readonly responsiveColumns: import("@angular/core").InputSignal<boolean>;
32
31
  /** Đưa actions lên hàng đầu khi màn hẹp (stacked). */
33
- responsiveCollapse: boolean;
32
+ readonly responsiveCollapse: import("@angular/core").InputSignal<boolean>;
34
33
  /** Breakpoint chuyển layout stacked (px). */
35
- mobileBreakpoint: number;
34
+ readonly mobileBreakpoint: import("@angular/core").InputSignal<number>;
36
35
  /** Khoảng cách grid (px). */
37
- gap: number;
38
- searchLabel: string;
39
- searchLoading: boolean;
36
+ readonly gap: import("@angular/core").InputSignal<number>;
37
+ readonly searchLabel: import("@angular/core").InputSignal<string>;
38
+ readonly searchLoading: import("@angular/core").InputSignal<boolean>;
40
39
  /** Hiện nút mở/đóng slot `[advanced]`. */
41
- showAdvancedToggle: boolean;
42
- showReset: boolean;
40
+ readonly showAdvancedToggle: import("@angular/core").InputSignal<boolean>;
41
+ readonly showReset: import("@angular/core").InputSignal<boolean>;
43
42
  /** Mở panel field nâng cao (`[advanced]`). */
44
- advancedExpanded: boolean;
43
+ readonly advancedExpanded: import("@angular/core").ModelSignal<boolean>;
45
44
  /**
46
45
  * Số field advanced đang có giá trị — hiện badge trên nút expand.
47
46
  * Parent tự tính (vd. `countFilledFilters(query, ADVANCED_KEYS)`).
48
47
  */
49
- advancedFilterCount: number;
50
- filterToggleTitle: string;
51
- resetTitle: string;
52
- search: EventEmitter<void>;
53
- reset: EventEmitter<void>;
54
- advancedExpandedChange: EventEmitter<boolean>;
55
- effectiveCols: number;
56
- stackedLayout: boolean;
48
+ readonly advancedFilterCount: import("@angular/core").InputSignal<number>;
49
+ readonly filterToggleTitle: import("@angular/core").InputSignal<string>;
50
+ readonly resetTitle: import("@angular/core").InputSignal<string>;
51
+ readonly search: import("@angular/core").OutputEmitterRef<void>;
52
+ readonly reset: import("@angular/core").OutputEmitterRef<void>;
53
+ readonly effectiveCols: import("@angular/core").WritableSignal<number>;
54
+ readonly stackedLayout: import("@angular/core").WritableSignal<boolean>;
57
55
  private resizeObserver?;
58
56
  private layoutFrame?;
59
- get hostColumns(): number;
60
- /** Tổng cột grid = field cols + 1 cột actions. */
61
- get hostTotalColumns(): number;
62
- get hostGap(): number;
63
- get stackedLayoutClass(): boolean;
64
- ngOnChanges(changes: SimpleChanges): void;
57
+ constructor();
65
58
  ngAfterViewInit(): void;
66
59
  ngOnDestroy(): void;
67
60
  toggleAdvanced(): void;
@@ -71,5 +64,5 @@ export declare class GeoTableFilterComponent implements AfterViewInit, OnChanges
71
64
  private updateResponsiveLayout;
72
65
  private getEffectiveCols;
73
66
  static ɵfac: i0.ɵɵFactoryDeclaration<GeoTableFilterComponent, never>;
74
- static ɵcmp: i0.ɵɵComponentDeclaration<GeoTableFilterComponent, "geo-table-filter", never, { "columns": { "alias": "columns"; "required": false; }; "responsiveColumns": { "alias": "responsiveColumns"; "required": false; }; "responsiveCollapse": { "alias": "responsiveCollapse"; "required": false; }; "mobileBreakpoint": { "alias": "mobileBreakpoint"; "required": false; }; "gap": { "alias": "gap"; "required": false; }; "searchLabel": { "alias": "searchLabel"; "required": false; }; "searchLoading": { "alias": "searchLoading"; "required": false; }; "showAdvancedToggle": { "alias": "showAdvancedToggle"; "required": false; }; "showReset": { "alias": "showReset"; "required": false; }; "advancedExpanded": { "alias": "advancedExpanded"; "required": false; }; "advancedFilterCount": { "alias": "advancedFilterCount"; "required": false; }; "filterToggleTitle": { "alias": "filterToggleTitle"; "required": false; }; "resetTitle": { "alias": "resetTitle"; "required": false; }; }, { "search": "search"; "reset": "reset"; "advancedExpandedChange": "advancedExpandedChange"; }, never, ["*", "[advanced]"], true, never>;
67
+ static ɵcmp: i0.ɵɵComponentDeclaration<GeoTableFilterComponent, "geo-table-filter", never, { "columns": { "alias": "columns"; "required": false; "isSignal": true; }; "responsiveColumns": { "alias": "responsiveColumns"; "required": false; "isSignal": true; }; "responsiveCollapse": { "alias": "responsiveCollapse"; "required": false; "isSignal": true; }; "mobileBreakpoint": { "alias": "mobileBreakpoint"; "required": false; "isSignal": true; }; "gap": { "alias": "gap"; "required": false; "isSignal": true; }; "searchLabel": { "alias": "searchLabel"; "required": false; "isSignal": true; }; "searchLoading": { "alias": "searchLoading"; "required": false; "isSignal": true; }; "showAdvancedToggle": { "alias": "showAdvancedToggle"; "required": false; "isSignal": true; }; "showReset": { "alias": "showReset"; "required": false; "isSignal": true; }; "advancedExpanded": { "alias": "advancedExpanded"; "required": false; "isSignal": true; }; "advancedFilterCount": { "alias": "advancedFilterCount"; "required": false; "isSignal": true; }; "filterToggleTitle": { "alias": "filterToggleTitle"; "required": false; "isSignal": true; }; "resetTitle": { "alias": "resetTitle"; "required": false; "isSignal": true; }; }, { "advancedExpanded": "advancedExpandedChange"; "search": "search"; "reset": "reset"; }, never, ["*", "[advanced]"], true, never>;
75
68
  }