@tinya-code/gas-admin-ui 0.2.0-alpha.15 → 0.2.0-alpha.18

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 (368) hide show
  1. package/fesm2022/tinya-code-gas-admin-ui-badge-EeCA_l-o.mjs +84 -0
  2. package/fesm2022/tinya-code-gas-admin-ui-badge-EeCA_l-o.mjs.map +1 -0
  3. package/fesm2022/tinya-code-gas-admin-ui-bar-chart-G7sEMSBY.mjs +140 -0
  4. package/fesm2022/tinya-code-gas-admin-ui-bar-chart-G7sEMSBY.mjs.map +1 -0
  5. package/fesm2022/tinya-code-gas-admin-ui-boolean-B2ASKL0E.mjs +113 -0
  6. package/fesm2022/tinya-code-gas-admin-ui-boolean-B2ASKL0E.mjs.map +1 -0
  7. package/fesm2022/tinya-code-gas-admin-ui-button-BQjNW8KB.mjs +163 -0
  8. package/fesm2022/tinya-code-gas-admin-ui-button-BQjNW8KB.mjs.map +1 -0
  9. package/fesm2022/tinya-code-gas-admin-ui-calendar-view-DCY8bj2V.mjs +1027 -0
  10. package/fesm2022/tinya-code-gas-admin-ui-calendar-view-DCY8bj2V.mjs.map +1 -0
  11. package/fesm2022/tinya-code-gas-admin-ui-chart-line-BjdlKHoH.mjs +278 -0
  12. package/fesm2022/tinya-code-gas-admin-ui-chart-line-BjdlKHoH.mjs.map +1 -0
  13. package/fesm2022/tinya-code-gas-admin-ui-color-Dljh_By3.mjs +107 -0
  14. package/fesm2022/tinya-code-gas-admin-ui-color-Dljh_By3.mjs.map +1 -0
  15. package/fesm2022/tinya-code-gas-admin-ui-condition-evaluator-DY2k1M3C.mjs +101 -0
  16. package/fesm2022/tinya-code-gas-admin-ui-condition-evaluator-DY2k1M3C.mjs.map +1 -0
  17. package/fesm2022/tinya-code-gas-admin-ui-currency-BvuF3Z63.mjs +141 -0
  18. package/fesm2022/tinya-code-gas-admin-ui-currency-BvuF3Z63.mjs.map +1 -0
  19. package/fesm2022/tinya-code-gas-admin-ui-data-source.service-96FSbN72.mjs +88 -0
  20. package/fesm2022/tinya-code-gas-admin-ui-data-source.service-96FSbN72.mjs.map +1 -0
  21. package/fesm2022/tinya-code-gas-admin-ui-date-1SJGXZrd.mjs +107 -0
  22. package/fesm2022/tinya-code-gas-admin-ui-date-1SJGXZrd.mjs.map +1 -0
  23. package/fesm2022/tinya-code-gas-admin-ui-display-badge-fwk6sDU7.mjs +140 -0
  24. package/fesm2022/tinya-code-gas-admin-ui-display-badge-fwk6sDU7.mjs.map +1 -0
  25. package/fesm2022/tinya-code-gas-admin-ui-display-date-D7zLiDiG.mjs +119 -0
  26. package/fesm2022/tinya-code-gas-admin-ui-display-date-D7zLiDiG.mjs.map +1 -0
  27. package/fesm2022/tinya-code-gas-admin-ui-display-file-BiIhqvQC.mjs +125 -0
  28. package/fesm2022/tinya-code-gas-admin-ui-display-file-BiIhqvQC.mjs.map +1 -0
  29. package/fesm2022/tinya-code-gas-admin-ui-display-image-C1dhnZi1.mjs +152 -0
  30. package/fesm2022/tinya-code-gas-admin-ui-display-image-C1dhnZi1.mjs.map +1 -0
  31. package/fesm2022/tinya-code-gas-admin-ui-display-list-DOEuUbGe.mjs +211 -0
  32. package/fesm2022/tinya-code-gas-admin-ui-display-list-DOEuUbGe.mjs.map +1 -0
  33. package/fesm2022/tinya-code-gas-admin-ui-display-number-DDMzr4Hn.mjs +116 -0
  34. package/fesm2022/tinya-code-gas-admin-ui-display-number-DDMzr4Hn.mjs.map +1 -0
  35. package/fesm2022/tinya-code-gas-admin-ui-display-text-B8CdVNpv.mjs +111 -0
  36. package/fesm2022/tinya-code-gas-admin-ui-display-text-B8CdVNpv.mjs.map +1 -0
  37. package/fesm2022/tinya-code-gas-admin-ui-dropdown-C3blvmE1.mjs +122 -0
  38. package/fesm2022/tinya-code-gas-admin-ui-dropdown-C3blvmE1.mjs.map +1 -0
  39. package/fesm2022/tinya-code-gas-admin-ui-email-CT_O5ihA.mjs +107 -0
  40. package/fesm2022/tinya-code-gas-admin-ui-email-CT_O5ihA.mjs.map +1 -0
  41. package/fesm2022/tinya-code-gas-admin-ui-empty-state-BMc0QtoT.mjs +109 -0
  42. package/fesm2022/tinya-code-gas-admin-ui-empty-state-BMc0QtoT.mjs.map +1 -0
  43. package/fesm2022/tinya-code-gas-admin-ui-error-mapper.service-DY5y1FjE.mjs +45 -0
  44. package/fesm2022/tinya-code-gas-admin-ui-error-mapper.service-DY5y1FjE.mjs.map +1 -0
  45. package/fesm2022/tinya-code-gas-admin-ui-field-aria-BD1Wiggc.mjs +50 -0
  46. package/fesm2022/tinya-code-gas-admin-ui-field-aria-BD1Wiggc.mjs.map +1 -0
  47. package/fesm2022/tinya-code-gas-admin-ui-field-node-CIK6KNN_.mjs +24 -0
  48. package/fesm2022/tinya-code-gas-admin-ui-field-node-CIK6KNN_.mjs.map +1 -0
  49. package/fesm2022/tinya-code-gas-admin-ui-field-path-B4-FTBGZ.mjs +27 -0
  50. package/fesm2022/tinya-code-gas-admin-ui-field-path-B4-FTBGZ.mjs.map +1 -0
  51. package/fesm2022/tinya-code-gas-admin-ui-file-Dmxioog7.mjs +408 -0
  52. package/fesm2022/tinya-code-gas-admin-ui-file-Dmxioog7.mjs.map +1 -0
  53. package/fesm2022/tinya-code-gas-admin-ui-form-view-CEe7aZ4m.mjs +4516 -0
  54. package/fesm2022/tinya-code-gas-admin-ui-form-view-CEe7aZ4m.mjs.map +1 -0
  55. package/fesm2022/tinya-code-gas-admin-ui-format-badge-CK8ct5Wk.mjs +82 -0
  56. package/fesm2022/tinya-code-gas-admin-ui-format-badge-CK8ct5Wk.mjs.map +1 -0
  57. package/fesm2022/tinya-code-gas-admin-ui-format-boolean-ClzezZz-.mjs +105 -0
  58. package/fesm2022/tinya-code-gas-admin-ui-format-boolean-ClzezZz-.mjs.map +1 -0
  59. package/fesm2022/tinya-code-gas-admin-ui-format-currency-CVmniKml.mjs +65 -0
  60. package/fesm2022/tinya-code-gas-admin-ui-format-currency-CVmniKml.mjs.map +1 -0
  61. package/fesm2022/tinya-code-gas-admin-ui-format-date-Dr1YsDd_.mjs +65 -0
  62. package/fesm2022/tinya-code-gas-admin-ui-format-date-Dr1YsDd_.mjs.map +1 -0
  63. package/fesm2022/tinya-code-gas-admin-ui-format-number-CWCjpI4n.mjs +65 -0
  64. package/fesm2022/tinya-code-gas-admin-ui-format-number-CWCjpI4n.mjs.map +1 -0
  65. package/fesm2022/tinya-code-gas-admin-ui-format-text-DBOgJkH0.mjs +59 -0
  66. package/fesm2022/tinya-code-gas-admin-ui-format-text-DBOgJkH0.mjs.map +1 -0
  67. package/fesm2022/tinya-code-gas-admin-ui-format-thumbnail-PCRvxWKt.mjs +94 -0
  68. package/fesm2022/tinya-code-gas-admin-ui-format-thumbnail-PCRvxWKt.mjs.map +1 -0
  69. package/fesm2022/tinya-code-gas-admin-ui-gap-sorting-iTdy_DYG.mjs +72 -0
  70. package/fesm2022/tinya-code-gas-admin-ui-gap-sorting-iTdy_DYG.mjs.map +1 -0
  71. package/fesm2022/tinya-code-gas-admin-ui-group-h7-O8tt4.mjs +238 -0
  72. package/fesm2022/tinya-code-gas-admin-ui-group-h7-O8tt4.mjs.map +1 -0
  73. package/fesm2022/tinya-code-gas-admin-ui-image-7UhJ7nqI.mjs +416 -0
  74. package/fesm2022/tinya-code-gas-admin-ui-image-7UhJ7nqI.mjs.map +1 -0
  75. package/fesm2022/tinya-code-gas-admin-ui-kanban-view-Dl0Ol5Kb.mjs +439 -0
  76. package/fesm2022/tinya-code-gas-admin-ui-kanban-view-Dl0Ol5Kb.mjs.map +1 -0
  77. package/fesm2022/tinya-code-gas-admin-ui-key-value-nVdgg5at.mjs +513 -0
  78. package/fesm2022/tinya-code-gas-admin-ui-key-value-nVdgg5at.mjs.map +1 -0
  79. package/fesm2022/tinya-code-gas-admin-ui-list-DTtCYS4d.mjs +637 -0
  80. package/fesm2022/tinya-code-gas-admin-ui-list-DTtCYS4d.mjs.map +1 -0
  81. package/fesm2022/tinya-code-gas-admin-ui-metric-card-DnGMQL8l.mjs +127 -0
  82. package/fesm2022/tinya-code-gas-admin-ui-metric-card-DnGMQL8l.mjs.map +1 -0
  83. package/fesm2022/tinya-code-gas-admin-ui-multiselect-PB28e-jl.mjs +251 -0
  84. package/fesm2022/tinya-code-gas-admin-ui-multiselect-PB28e-jl.mjs.map +1 -0
  85. package/fesm2022/tinya-code-gas-admin-ui-notification.service-LjSULER6.mjs +66 -0
  86. package/fesm2022/tinya-code-gas-admin-ui-notification.service-LjSULER6.mjs.map +1 -0
  87. package/fesm2022/tinya-code-gas-admin-ui-number-JNr7glc8.mjs +114 -0
  88. package/fesm2022/tinya-code-gas-admin-ui-number-JNr7glc8.mjs.map +1 -0
  89. package/fesm2022/tinya-code-gas-admin-ui-phone-jR417hPf.mjs +116 -0
  90. package/fesm2022/tinya-code-gas-admin-ui-phone-jR417hPf.mjs.map +1 -0
  91. package/fesm2022/tinya-code-gas-admin-ui-quick-actions-DCQ6emmF.mjs +235 -0
  92. package/fesm2022/tinya-code-gas-admin-ui-quick-actions-DCQ6emmF.mjs.map +1 -0
  93. package/fesm2022/tinya-code-gas-admin-ui-radio-mode-DxvN07DY.mjs +8 -0
  94. package/fesm2022/tinya-code-gas-admin-ui-radio-mode-DxvN07DY.mjs.map +1 -0
  95. package/fesm2022/tinya-code-gas-admin-ui-readonly-text-BL7-4qie.mjs +124 -0
  96. package/fesm2022/tinya-code-gas-admin-ui-readonly-text-BL7-4qie.mjs.map +1 -0
  97. package/fesm2022/tinya-code-gas-admin-ui-record-list-BiZfnd_7.mjs +249 -0
  98. package/fesm2022/tinya-code-gas-admin-ui-record-list-BiZfnd_7.mjs.map +1 -0
  99. package/fesm2022/tinya-code-gas-admin-ui-relation-drawer.service-B0kT8EiW.mjs +39 -0
  100. package/fesm2022/tinya-code-gas-admin-ui-relation-drawer.service-B0kT8EiW.mjs.map +1 -0
  101. package/fesm2022/tinya-code-gas-admin-ui-relation-ykpJ3PYl.mjs +309 -0
  102. package/fesm2022/tinya-code-gas-admin-ui-relation-ykpJ3PYl.mjs.map +1 -0
  103. package/fesm2022/tinya-code-gas-admin-ui-render-registry-B88Pme-y.mjs +576 -0
  104. package/fesm2022/tinya-code-gas-admin-ui-render-registry-B88Pme-y.mjs.map +1 -0
  105. package/fesm2022/tinya-code-gas-admin-ui-rich-select-CIHaOrbU.mjs +161 -0
  106. package/fesm2022/tinya-code-gas-admin-ui-rich-select-CIHaOrbU.mjs.map +1 -0
  107. package/fesm2022/tinya-code-gas-admin-ui-rolldown-runtime-DpJrqANO.mjs +11 -0
  108. package/fesm2022/tinya-code-gas-admin-ui-schema-catalog-D0Pk0wAN.mjs +685 -0
  109. package/fesm2022/tinya-code-gas-admin-ui-schema-catalog-D0Pk0wAN.mjs.map +1 -0
  110. package/fesm2022/tinya-code-gas-admin-ui-seed-DkVZbxPP.mjs +80 -0
  111. package/fesm2022/tinya-code-gas-admin-ui-seed-DkVZbxPP.mjs.map +1 -0
  112. package/fesm2022/tinya-code-gas-admin-ui-select-CDwX9yNO.mjs +296 -0
  113. package/fesm2022/tinya-code-gas-admin-ui-select-CDwX9yNO.mjs.map +1 -0
  114. package/fesm2022/tinya-code-gas-admin-ui-skeleton-DnWK0tcZ.mjs +119 -0
  115. package/fesm2022/tinya-code-gas-admin-ui-skeleton-DnWK0tcZ.mjs.map +1 -0
  116. package/fesm2022/tinya-code-gas-admin-ui-slug-DU58cbiY.mjs +158 -0
  117. package/fesm2022/tinya-code-gas-admin-ui-slug-DU58cbiY.mjs.map +1 -0
  118. package/fesm2022/tinya-code-gas-admin-ui-source-options-B9R4mw8-.mjs +26 -0
  119. package/fesm2022/tinya-code-gas-admin-ui-source-options-B9R4mw8-.mjs.map +1 -0
  120. package/fesm2022/tinya-code-gas-admin-ui-status-progress-DmeG8htE.mjs +205 -0
  121. package/fesm2022/tinya-code-gas-admin-ui-status-progress-DmeG8htE.mjs.map +1 -0
  122. package/fesm2022/tinya-code-gas-admin-ui-string-list-gleasqzD.mjs +432 -0
  123. package/fesm2022/tinya-code-gas-admin-ui-string-list-gleasqzD.mjs.map +1 -0
  124. package/fesm2022/tinya-code-gas-admin-ui-template-interpolator-ewv7CkNX.mjs +36 -0
  125. package/fesm2022/tinya-code-gas-admin-ui-template-interpolator-ewv7CkNX.mjs.map +1 -0
  126. package/fesm2022/tinya-code-gas-admin-ui-text-CUPmL7W_.mjs +107 -0
  127. package/fesm2022/tinya-code-gas-admin-ui-text-CUPmL7W_.mjs.map +1 -0
  128. package/fesm2022/tinya-code-gas-admin-ui-textarea-CGLSIW13.mjs +223 -0
  129. package/fesm2022/tinya-code-gas-admin-ui-textarea-CGLSIW13.mjs.map +1 -0
  130. package/fesm2022/tinya-code-gas-admin-ui-time-BcHzsTWf.mjs +107 -0
  131. package/fesm2022/tinya-code-gas-admin-ui-time-BcHzsTWf.mjs.map +1 -0
  132. package/fesm2022/tinya-code-gas-admin-ui-upload.service-CZPEPCeN.mjs +60 -0
  133. package/fesm2022/tinya-code-gas-admin-ui-upload.service-CZPEPCeN.mjs.map +1 -0
  134. package/fesm2022/tinya-code-gas-admin-ui-url-GO4LZi__.mjs +141 -0
  135. package/fesm2022/tinya-code-gas-admin-ui-url-GO4LZi__.mjs.map +1 -0
  136. package/fesm2022/tinya-code-gas-admin-ui.mjs +4738 -0
  137. package/fesm2022/tinya-code-gas-admin-ui.mjs.map +1 -0
  138. package/package.json +15 -3
  139. package/types/tinya-code-gas-admin-ui.d.ts +3634 -0
  140. package/ng-package.json +0 -7
  141. package/src/lib/actions/action-registry.spec.ts +0 -52
  142. package/src/lib/actions/action-registry.ts +0 -126
  143. package/src/lib/actions/action-service.spec.ts +0 -215
  144. package/src/lib/actions/action-service.ts +0 -87
  145. package/src/lib/actions/descriptors.spec.ts +0 -155
  146. package/src/lib/actions/descriptors.ts +0 -154
  147. package/src/lib/columns/column-cell.ts +0 -33
  148. package/src/lib/columns/column-defaults.spec.ts +0 -99
  149. package/src/lib/columns/column-defaults.ts +0 -84
  150. package/src/lib/columns/column-format.spec.ts +0 -274
  151. package/src/lib/columns/descriptors.ts +0 -113
  152. package/src/lib/columns/format-badge.ts +0 -51
  153. package/src/lib/columns/format-boolean.ts +0 -58
  154. package/src/lib/columns/format-currency.ts +0 -30
  155. package/src/lib/columns/format-date.ts +0 -35
  156. package/src/lib/columns/format-number.ts +0 -32
  157. package/src/lib/columns/format-text.ts +0 -23
  158. package/src/lib/columns/format-thumbnail.ts +0 -63
  159. package/src/lib/core/adapters/firebase-auth.adapter.ts +0 -6
  160. package/src/lib/core/guards/auth.guard.spec.ts +0 -88
  161. package/src/lib/core/guards/auth.guard.ts +0 -48
  162. package/src/lib/core/guards/unsaved-changes.guard.ts +0 -16
  163. package/src/lib/core/interceptors/api-error.interceptor.spec.ts +0 -182
  164. package/src/lib/core/interceptors/api-error.interceptor.ts +0 -87
  165. package/src/lib/core/models/api.model.ts +0 -104
  166. package/src/lib/core/models/schema-descriptions.ts +0 -118
  167. package/src/lib/core/models/schema.model.ts +0 -1097
  168. package/src/lib/core/registry/composition-validator.spec.ts +0 -358
  169. package/src/lib/core/registry/composition-validator.ts +0 -270
  170. package/src/lib/core/registry/field-validators.spec.ts +0 -199
  171. package/src/lib/core/registry/field-validators.ts +0 -440
  172. package/src/lib/core/registry/render-host.spec.ts +0 -208
  173. package/src/lib/core/registry/render-host.ts +0 -646
  174. package/src/lib/core/registry/render-registry.spec.ts +0 -96
  175. package/src/lib/core/registry/render-registry.ts +0 -312
  176. package/src/lib/core/registry/schema-catalog.ts +0 -156
  177. package/src/lib/core/services/api.service.spec.ts +0 -1142
  178. package/src/lib/core/services/api.service.ts +0 -371
  179. package/src/lib/core/services/auth.service.spec.ts +0 -653
  180. package/src/lib/core/services/auth.service.ts +0 -503
  181. package/src/lib/core/services/config.service.spec.ts +0 -121
  182. package/src/lib/core/services/config.service.ts +0 -119
  183. package/src/lib/core/services/data-source.service.spec.ts +0 -179
  184. package/src/lib/core/services/data-source.service.ts +0 -142
  185. package/src/lib/core/services/error-mapper.service.spec.ts +0 -50
  186. package/src/lib/core/services/error-mapper.service.ts +0 -49
  187. package/src/lib/core/services/notification.service.ts +0 -73
  188. package/src/lib/core/services/relation-drawer.service.ts +0 -41
  189. package/src/lib/core/services/theme.service.spec.ts +0 -106
  190. package/src/lib/core/services/theme.service.ts +0 -86
  191. package/src/lib/core/services/transport.spec.ts +0 -198
  192. package/src/lib/core/services/transport.ts +0 -164
  193. package/src/lib/core/services/upload.service.ts +0 -81
  194. package/src/lib/core/testing/categories.schema.ts +0 -125
  195. package/src/lib/core/testing/orders.schema.ts +0 -372
  196. package/src/lib/core/testing/products.schema.ts +0 -258
  197. package/src/lib/core/testing/site.schema.ts +0 -195
  198. package/src/lib/core/testing/test-catalog.ts +0 -21
  199. package/src/lib/core/tokens.ts +0 -112
  200. package/src/lib/core/utils/clipboard.spec.ts +0 -55
  201. package/src/lib/core/utils/clipboard.ts +0 -90
  202. package/src/lib/core/utils/context-resolver.spec.ts +0 -95
  203. package/src/lib/core/utils/context-resolver.ts +0 -101
  204. package/src/lib/core/utils/response-unwrapper.spec.ts +0 -70
  205. package/src/lib/core/utils/response-unwrapper.ts +0 -103
  206. package/src/lib/core/utils/source-options.spec.ts +0 -96
  207. package/src/lib/core/utils/source-options.ts +0 -54
  208. package/src/lib/core/utils/template-interpolator.spec.ts +0 -59
  209. package/src/lib/core/utils/template-interpolator.ts +0 -56
  210. package/src/lib/core/view-navigation/view-navigation.service.spec.ts +0 -207
  211. package/src/lib/core/view-navigation/view-navigation.service.ts +0 -132
  212. package/src/lib/fields/boolean/boolean.descriptor.ts +0 -11
  213. package/src/lib/fields/boolean/boolean.ts +0 -40
  214. package/src/lib/fields/color/color.descriptor.ts +0 -12
  215. package/src/lib/fields/color/color.ts +0 -34
  216. package/src/lib/fields/currency/currency.descriptor.ts +0 -12
  217. package/src/lib/fields/currency/currency.ts +0 -67
  218. package/src/lib/fields/date/date.descriptor.ts +0 -12
  219. package/src/lib/fields/date/date.ts +0 -36
  220. package/src/lib/fields/descriptors.ts +0 -122
  221. package/src/lib/fields/display/display-badge.ts +0 -65
  222. package/src/lib/fields/display/display-date.ts +0 -39
  223. package/src/lib/fields/display/display-defaults.ts +0 -84
  224. package/src/lib/fields/display/display-file.ts +0 -41
  225. package/src/lib/fields/display/display-image.ts +0 -54
  226. package/src/lib/fields/display/display-list.ts +0 -107
  227. package/src/lib/fields/display/display-number.ts +0 -41
  228. package/src/lib/fields/display/display-text.ts +0 -42
  229. package/src/lib/fields/display/display.spec.ts +0 -242
  230. package/src/lib/fields/dropdown/dropdown.descriptor.ts +0 -12
  231. package/src/lib/fields/dropdown/dropdown.ts +0 -45
  232. package/src/lib/fields/email/email.descriptor.ts +0 -12
  233. package/src/lib/fields/email/email.ts +0 -28
  234. package/src/lib/fields/field-aria.ts +0 -60
  235. package/src/lib/fields/field-host/field-host.spec.ts +0 -118
  236. package/src/lib/fields/field-host/field-host.ts +0 -47
  237. package/src/lib/fields/field-node.ts +0 -88
  238. package/src/lib/fields/file/file.descriptor.ts +0 -14
  239. package/src/lib/fields/file/file.spec.ts +0 -134
  240. package/src/lib/fields/file/file.ts +0 -281
  241. package/src/lib/fields/group/group.descriptor.ts +0 -21
  242. package/src/lib/fields/group/group.ts +0 -110
  243. package/src/lib/fields/image/image.descriptor.ts +0 -12
  244. package/src/lib/fields/image/image.spec.ts +0 -117
  245. package/src/lib/fields/image/image.ts +0 -281
  246. package/src/lib/fields/key-value/key-value.descriptor.ts +0 -11
  247. package/src/lib/fields/key-value/key-value.ts +0 -283
  248. package/src/lib/fields/list/list.descriptor.ts +0 -21
  249. package/src/lib/fields/list/list.ts +0 -376
  250. package/src/lib/fields/multiselect/multiselect.descriptor.ts +0 -11
  251. package/src/lib/fields/multiselect/multiselect.spec.ts +0 -142
  252. package/src/lib/fields/multiselect/multiselect.ts +0 -152
  253. package/src/lib/fields/number/number.descriptor.ts +0 -12
  254. package/src/lib/fields/number/number.ts +0 -40
  255. package/src/lib/fields/phone/phone.descriptor.ts +0 -12
  256. package/src/lib/fields/phone/phone.ts +0 -46
  257. package/src/lib/fields/readonly-text/readonly-text.descriptor.ts +0 -12
  258. package/src/lib/fields/readonly-text/readonly-text.ts +0 -58
  259. package/src/lib/fields/relation/relation.descriptor.ts +0 -12
  260. package/src/lib/fields/relation/relation.spec.ts +0 -193
  261. package/src/lib/fields/relation/relation.ts +0 -224
  262. package/src/lib/fields/rich-select/rich-select.descriptor.ts +0 -12
  263. package/src/lib/fields/rich-select/rich-select.ts +0 -175
  264. package/src/lib/fields/select/radio-mode.ts +0 -25
  265. package/src/lib/fields/select/select.descriptor.ts +0 -12
  266. package/src/lib/fields/select/select.spec.ts +0 -162
  267. package/src/lib/fields/select/select.ts +0 -210
  268. package/src/lib/fields/slug/slug.descriptor.ts +0 -19
  269. package/src/lib/fields/slug/slug.ts +0 -67
  270. package/src/lib/fields/string-list/string-list.descriptor.ts +0 -11
  271. package/src/lib/fields/string-list/string-list.ts +0 -222
  272. package/src/lib/fields/text/text.descriptor.ts +0 -12
  273. package/src/lib/fields/text/text.ts +0 -35
  274. package/src/lib/fields/textarea/textarea.descriptor.ts +0 -12
  275. package/src/lib/fields/textarea/textarea.spec.ts +0 -117
  276. package/src/lib/fields/textarea/textarea.ts +0 -126
  277. package/src/lib/fields/time/time.descriptor.ts +0 -12
  278. package/src/lib/fields/time/time.ts +0 -28
  279. package/src/lib/fields/unknown-render/unknown-render.ts +0 -49
  280. package/src/lib/fields/url/url.descriptor.ts +0 -12
  281. package/src/lib/fields/url/url.ts +0 -53
  282. package/src/lib/gas-admin-ui.spec.ts +0 -21
  283. package/src/lib/gas-admin-ui.ts +0 -9
  284. package/src/lib/layouts/descriptors.ts +0 -9
  285. package/src/lib/pages/dashboard/dashboard.ts +0 -167
  286. package/src/lib/pages/detail-view/detail-view.spec.ts +0 -333
  287. package/src/lib/pages/detail-view/detail-view.ts +0 -570
  288. package/src/lib/pages/drawer-form/drawer-form.ts +0 -228
  289. package/src/lib/pages/form-view/form-model.ts +0 -88
  290. package/src/lib/pages/form-view/form-schema.ts +0 -255
  291. package/src/lib/pages/form-view/form-view.ts +0 -1622
  292. package/src/lib/pages/list-view/list-view.formats.spec.ts +0 -214
  293. package/src/lib/pages/list-view/list-view.ts +0 -882
  294. package/src/lib/pages/login/login.spec.ts +0 -109
  295. package/src/lib/pages/login/login.ts +0 -227
  296. package/src/lib/pages/resource-page/resource-page.ts +0 -234
  297. package/src/lib/shared/components/badge/badge.ts +0 -35
  298. package/src/lib/shared/components/button/button.ts +0 -65
  299. package/src/lib/shared/components/confirm-dialog/confirm-dialog.ts +0 -48
  300. package/src/lib/shared/components/copy-button/copy-button.ts +0 -56
  301. package/src/lib/shared/components/copy-share/copy-share.spec.ts +0 -122
  302. package/src/lib/shared/components/copy-share/copy-share.ts +0 -107
  303. package/src/lib/shared/components/drawer/drawer.spec.ts +0 -127
  304. package/src/lib/shared/components/drawer/drawer.ts +0 -172
  305. package/src/lib/shared/components/empty-state/empty-state.ts +0 -30
  306. package/src/lib/shared/components/modal/modal.spec.ts +0 -149
  307. package/src/lib/shared/components/modal/modal.ts +0 -145
  308. package/src/lib/shared/components/post-create-modal/post-create-modal.spec.ts +0 -165
  309. package/src/lib/shared/components/post-create-modal/post-create-modal.ts +0 -159
  310. package/src/lib/shared/components/skeleton/skeleton.ts +0 -31
  311. package/src/lib/shared/components/toast/toast.ts +0 -58
  312. package/src/lib/shared/utils/col-span.ts +0 -25
  313. package/src/lib/shared/utils/condition-evaluator.ts +0 -53
  314. package/src/lib/shared/utils/depends-on.ts +0 -48
  315. package/src/lib/shared/utils/dialog-focus.ts +0 -28
  316. package/src/lib/shared/utils/field-path.ts +0 -49
  317. package/src/lib/shared/utils/gap-sorting.ts +0 -144
  318. package/src/lib/shared/utils/seed.spec.ts +0 -64
  319. package/src/lib/shared/utils/seed.ts +0 -149
  320. package/src/lib/shared/utils/slugify.ts +0 -13
  321. package/src/lib/shared/utils/validators.ts +0 -41
  322. package/src/lib/shell/layout/layout.ts +0 -63
  323. package/src/lib/shell/shell.routes.spec.ts +0 -59
  324. package/src/lib/shell/shell.routes.ts +0 -122
  325. package/src/lib/shell/sidebar/sidebar.ts +0 -139
  326. package/src/lib/shell/theme-toggle/theme-toggle.ts +0 -74
  327. package/src/lib/views/calendar-view/calendar-model.ts +0 -426
  328. package/src/lib/views/calendar-view/calendar-view.spec.ts +0 -557
  329. package/src/lib/views/calendar-view/calendar-view.ts +0 -568
  330. package/src/lib/views/composer/composer-host.spec.ts +0 -301
  331. package/src/lib/views/composer/composer-host.ts +0 -248
  332. package/src/lib/views/composer/composer-imports.spec.ts +0 -54
  333. package/src/lib/views/composer/view-context.spec.ts +0 -117
  334. package/src/lib/views/composer/view-context.ts +0 -109
  335. package/src/lib/views/composer/view-slot.spec.ts +0 -130
  336. package/src/lib/views/composer/view-slot.ts +0 -178
  337. package/src/lib/views/descriptors.ts +0 -46
  338. package/src/lib/views/kanban-view/kanban-model.ts +0 -173
  339. package/src/lib/views/kanban-view/kanban-view.spec.ts +0 -540
  340. package/src/lib/views/kanban-view/kanban-view.ts +0 -327
  341. package/src/lib/widgets/bar-chart/bar-chart.descriptor.ts +0 -17
  342. package/src/lib/widgets/bar-chart/bar-chart.spec.ts +0 -66
  343. package/src/lib/widgets/bar-chart/bar-chart.ts +0 -76
  344. package/src/lib/widgets/chart-line/chart-line.descriptor.ts +0 -17
  345. package/src/lib/widgets/chart-line/chart-line.spec.ts +0 -113
  346. package/src/lib/widgets/chart-line/chart-line.ts +0 -219
  347. package/src/lib/widgets/descriptors.ts +0 -29
  348. package/src/lib/widgets/metric-card/metric-card.descriptor.ts +0 -41
  349. package/src/lib/widgets/metric-card/metric-card.spec.ts +0 -52
  350. package/src/lib/widgets/metric-card/metric-card.ts +0 -48
  351. package/src/lib/widgets/quick-actions/quick-actions.descriptor.ts +0 -13
  352. package/src/lib/widgets/quick-actions/quick-actions.spec.ts +0 -61
  353. package/src/lib/widgets/quick-actions/quick-actions.ts +0 -100
  354. package/src/lib/widgets/record-list/record-list.descriptor.ts +0 -16
  355. package/src/lib/widgets/record-list/record-list.spec.ts +0 -79
  356. package/src/lib/widgets/record-list/record-list.ts +0 -115
  357. package/src/lib/widgets/series.spec.ts +0 -42
  358. package/src/lib/widgets/series.ts +0 -56
  359. package/src/lib/widgets/status-progress/status-progress.descriptor.ts +0 -19
  360. package/src/lib/widgets/status-progress/status-progress.spec.ts +0 -63
  361. package/src/lib/widgets/status-progress/status-progress.ts +0 -104
  362. package/src/lib/widgets/widget-host/widget-host.spec.ts +0 -179
  363. package/src/lib/widgets/widget-host/widget-host.ts +0 -99
  364. package/src/public-api.ts +0 -104
  365. package/tinya-code-gas-admin-ui-0.2.0-alpha.15.tgz +0 -0
  366. package/tsconfig.lib.json +0 -13
  367. package/tsconfig.lib.prod.json +0 -11
  368. package/tsconfig.spec.json +0 -10
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tinya-code-gas-admin-ui-display-date-D7zLiDiG.mjs","names":[],"sources":["../../../projects/gas-admin-ui/src/lib/fields/display/display-date.ts"],"sourcesContent":["import { Component, computed, input } from '@angular/core';\n\nimport { Badge } from '../../shared/components/badge/badge';\nimport type { FieldSchema } from '../../core/models/schema.model';\n\nconst FORMATO_FECHA = new Intl.DateTimeFormat('es-PE', { dateStyle: 'medium', timeZone: 'UTC' });\n\n/**\n * Display por defecto de `date` (R4.1 · modo `display`).\n *\n * Misma fórmula que `formatValue` de `detail-view` antes de R4.2: `es-PE`,\n * `dateStyle: 'medium'`, **UTC** para que la fecha no se corra un día según\n * el huso de quien abra la ficha, y texto crudo si no es parseable.\n */\n@Component({\n selector: 'app-field-display-date',\n imports: [Badge],\n template: `\n @if (chip()) {\n <app-badge [label]=\"texto()\" />\n } @else {\n {{ texto() }}\n }\n `,\n})\nexport class FieldDisplayDate {\n readonly field = input.required<FieldSchema>();\n readonly value = input<unknown>(null);\n /** `true` en la cabecera: la fecha se pinta como chip compacto. */\n readonly chip = input(false);\n\n protected readonly texto = computed(() => {\n const d = new Date(String(this.value()));\n if (Number.isNaN(d.getTime())) {\n return String(this.value());\n }\n return FORMATO_FECHA.format(d);\n });\n}\n"],"mappings":";;;AAKA,MAAM,gBAAgB,IAAI,KAAK,eAAe,SAAS;CAAE,WAAW;CAAU,UAAU;AAAK,CAAE;AAoB/F,IAAa,mBAAb,MAAa,iBAAgB;CAClB,QAAQ,MAAM,SAAuB,GAAA,YAAA,CAAA,EAAA,WAAA,QAAA,CAAA,+BAAA,CAAA,CAAA;CACrC,QAAQ,MAAe,MAAK,GAAA,YAAA,CAAA,EAAA,WAAA,QAAA,CAAA,+BAAA,CAAA,CAAA;CAE5B,OAAO,MAAM,OAAM,GAAA,YAAA,CAAA,EAAA,WAAA,OAAA,CAAA,+BAAA,CAAA,CAAA;CAET,QAAQ,eAAc;EACvC,MAAM,IAAI,IAAI,KAAK,OAAO,KAAK,MAAK,CAAE,CAAC;EACvC,IAAI,OAAO,MAAM,EAAE,QAAO,CAAE,GAC1B,OAAO,OAAO,KAAK,MAAK,CAAE;EAE5B,OAAO,cAAc,OAAO,CAAC;CAC/B,GAAE,GAAA,YAAA,CAAA,EAAA,WAAA,QAAA,CAAA,+BAAA,CAAA,CAAA;CAZS,OAAA,OAAA,GAAA,mBAAA;EAAA,YAAA;EAAA,SAAA;EAAA,UAAA;EAAA,MAAA;EAAgB,MAAA,CAAA;EAAA,QAAA,GAAA,gBAAA;CAAA,CAAA;CAAhB,OAAA,OAAA,GAAA,qBAAA;EAAA,YAAA;EAAA,SAAA;EAAA,MAAA;EAAgB,cAAA;EAAA,UAAA;EAAA,QAAA;GAAA,OAAA;IAAA,mBAAA;IAAA,YAAA;IAAA,UAAA;IAAA,YAAA;IAAA,mBAAA;GAAA;GAAA,OAAA;IAAA,mBAAA;IAAA,YAAA;IAAA,UAAA;IAAA,YAAA;IAAA,mBAAA;GAAA;GAAA,MAAA;IAAA,mBAAA;IAAA,YAAA;IAAA,UAAA;IAAA,YAAA;IAAA,mBAAA;GAAA;EAAA;EAAA,UAAA;EAAA,UARjB;;;;;;;EAMT,UAAA;EAAA,cAAA,CAAA;GAAA,MAAA;GAAA,MAPS;GAAK,UAAA;GAAA,QAAA,CAAA,SAAA,MAAA;EAAA,CAAA;CAAA,CAAA;;AASJ,GAAA,yBAAA;CAAA,YAAA;CAAA,SAAA;CAAA,UAAA;CAAA,MAAA;CAAgB,YAAA,CAAA;EAX5B,MAAA;EAAU,MAAA,CAAA;GACT,UAAU;GACV,SAAS,CAAC,KAAK;GACf,UAAU;;;;;;;EAOX,CAAA"}
@@ -0,0 +1,125 @@
1
+ import { t as Badge } from "./tinya-code-gas-admin-ui-badge-EeCA_l-o.mjs";
2
+ import * as i0 from "@angular/core";
3
+ import { Component, computed, input } from "@angular/core";
4
+ var FieldDisplayFile = class FieldDisplayFile {
5
+ field = input.required(...ngDevMode ? [{ debugName: "field" }] : /* istanbul ignore next */ []);
6
+ value = input(null, ...ngDevMode ? [{ debugName: "value" }] : /* istanbul ignore next */ []);
7
+ chip = input(false, ...ngDevMode ? [{ debugName: "chip" }] : /* istanbul ignore next */ []);
8
+ url = computed(() => String(this.value()), ...ngDevMode ? [{ debugName: "url" }] : /* istanbul ignore next */ []);
9
+ static ɵfac = i0.ɵɵngDeclareFactory({
10
+ minVersion: "12.0.0",
11
+ version: "22.2.3",
12
+ ngImport: i0,
13
+ type: FieldDisplayFile,
14
+ deps: [],
15
+ target: i0.ɵɵFactoryTarget.Component
16
+ });
17
+ static ɵcmp = i0.ɵɵngDeclareComponent({
18
+ minVersion: "17.0.0",
19
+ version: "22.2.3",
20
+ type: FieldDisplayFile,
21
+ isStandalone: true,
22
+ selector: "app-field-display-file",
23
+ inputs: {
24
+ field: {
25
+ classPropertyName: "field",
26
+ publicName: "field",
27
+ isSignal: true,
28
+ isRequired: true,
29
+ transformFunction: null
30
+ },
31
+ value: {
32
+ classPropertyName: "value",
33
+ publicName: "value",
34
+ isSignal: true,
35
+ isRequired: false,
36
+ transformFunction: null
37
+ },
38
+ chip: {
39
+ classPropertyName: "chip",
40
+ publicName: "chip",
41
+ isSignal: true,
42
+ isRequired: false,
43
+ transformFunction: null
44
+ }
45
+ },
46
+ ngImport: i0,
47
+ template: `
48
+ @if (chip()) {
49
+ <app-badge [label]="url()" />
50
+ } @else {
51
+ <a
52
+ class="font-medium text-primary hover:underline"
53
+ [href]="url()"
54
+ target="_blank"
55
+ rel="noopener noreferrer"
56
+ >
57
+ Abrir archivo
58
+ </a>
59
+ }
60
+ `,
61
+ isInline: true,
62
+ dependencies: [{
63
+ kind: "component",
64
+ type: Badge,
65
+ selector: "app-badge",
66
+ inputs: ["label", "kind"]
67
+ }]
68
+ });
69
+ };
70
+ i0.ɵɵngDeclareClassMetadata({
71
+ minVersion: "12.0.0",
72
+ version: "22.2.3",
73
+ ngImport: i0,
74
+ type: FieldDisplayFile,
75
+ decorators: [{
76
+ type: Component,
77
+ args: [{
78
+ selector: "app-field-display-file",
79
+ imports: [Badge],
80
+ template: `
81
+ @if (chip()) {
82
+ <app-badge [label]="url()" />
83
+ } @else {
84
+ <a
85
+ class="font-medium text-primary hover:underline"
86
+ [href]="url()"
87
+ target="_blank"
88
+ rel="noopener noreferrer"
89
+ >
90
+ Abrir archivo
91
+ </a>
92
+ }
93
+ `
94
+ }]
95
+ }],
96
+ propDecorators: {
97
+ field: [{
98
+ type: i0.Input,
99
+ args: [{
100
+ isSignal: true,
101
+ alias: "field",
102
+ required: true
103
+ }]
104
+ }],
105
+ value: [{
106
+ type: i0.Input,
107
+ args: [{
108
+ isSignal: true,
109
+ alias: "value",
110
+ required: false
111
+ }]
112
+ }],
113
+ chip: [{
114
+ type: i0.Input,
115
+ args: [{
116
+ isSignal: true,
117
+ alias: "chip",
118
+ required: false
119
+ }]
120
+ }]
121
+ }
122
+ });
123
+ export { FieldDisplayFile };
124
+
125
+ //# sourceMappingURL=tinya-code-gas-admin-ui-display-file-BiIhqvQC.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tinya-code-gas-admin-ui-display-file-BiIhqvQC.mjs","names":[],"sources":["../../../projects/gas-admin-ui/src/lib/fields/display/display-file.ts"],"sourcesContent":["import { Component, computed, input } from '@angular/core';\n\nimport { Badge } from '../../shared/components/badge/badge';\nimport type { FieldSchema } from '../../core/models/schema.model';\n\n/**\n * Display por defecto de `file` (R4.1 · modo `display` · R9.5.3).\n *\n * Un archivo no tiene miniatura: el valor es la URL pública, y lo honesto\n * en la ficha de detalle es un enlace que lo abre (mismo lenguaje que el\n * «Abrir» de `url`). En la cabecera (`chip`) va como badge con la URL, la\n * paridad con el resto de los displays.\n */\n@Component({\n selector: 'app-field-display-file',\n imports: [Badge],\n template: `\n @if (chip()) {\n <app-badge [label]=\"url()\" />\n } @else {\n <a\n class=\"font-medium text-primary hover:underline\"\n [href]=\"url()\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n Abrir archivo\n </a>\n }\n `,\n})\nexport class FieldDisplayFile {\n /** Campo que se pinta. Lo usa el tipo; acá sólo tipa la forma común. */\n readonly field = input.required<FieldSchema>();\n /** Valor crudo del registro (la URL pública). El host ya filtró el vacío. */\n readonly value = input<unknown>(null);\n /** `true` en la cabecera: la URL se pinta como chip compacto. */\n readonly chip = input(false);\n\n protected readonly url = computed(() => String(this.value()));\n}\n"],"mappings":";;;AA+BA,IAAa,mBAAb,MAAa,iBAAgB;CAElB,QAAQ,MAAM,SAAuB,GAAA,YAAA,CAAA,EAAA,WAAA,QAAA,CAAA,+BAAA,CAAA,CAAA;CAErC,QAAQ,MAAe,MAAK,GAAA,YAAA,CAAA,EAAA,WAAA,QAAA,CAAA,+BAAA,CAAA,CAAA;CAE5B,OAAO,MAAM,OAAM,GAAA,YAAA,CAAA,EAAA,WAAA,OAAA,CAAA,+BAAA,CAAA,CAAA;CAET,MAAM,eAAe,OAAO,KAAK,MAAK,CAAE,GAAE,GAAA,YAAA,CAAA,EAAA,WAAA,MAAA,CAAA,+BAAA,CAAA,CAAA;CARlD,OAAA,OAAA,GAAA,mBAAA;EAAA,YAAA;EAAA,SAAA;EAAA,UAAA;EAAA,MAAA;EAAgB,MAAA,CAAA;EAAA,QAAA,GAAA,gBAAA;CAAA,CAAA;CAAhB,OAAA,OAAA,GAAA,qBAAA;EAAA,YAAA;EAAA,SAAA;EAAA,MAAA;EAAgB,cAAA;EAAA,UAAA;EAAA,QAAA;GAAA,OAAA;IAAA,mBAAA;IAAA,YAAA;IAAA,UAAA;IAAA,YAAA;IAAA,mBAAA;GAAA;GAAA,OAAA;IAAA,mBAAA;IAAA,YAAA;IAAA,UAAA;IAAA,YAAA;IAAA,mBAAA;GAAA;GAAA,MAAA;IAAA,mBAAA;IAAA,YAAA;IAAA,UAAA;IAAA,YAAA;IAAA,mBAAA;GAAA;EAAA;EAAA,UAAA;EAAA,UAfjB;;;;;;;;;;;;;;EAaT,UAAA;EAAA,cAAA,CAAA;GAAA,MAAA;GAAA,MAdS;GAAK,UAAA;GAAA,QAAA,CAAA,SAAA,MAAA;EAAA,CAAA;CAAA,CAAA;;AAgBJ,GAAA,yBAAA;CAAA,YAAA;CAAA,SAAA;CAAA,UAAA;CAAA,MAAA;CAAgB,YAAA,CAAA;EAlB5B,MAAA;EAAU,MAAA,CAAA;GACT,UAAU;GACV,SAAS,CAAC,KAAK;GACf,UAAU;;;;;;;;;;;;;;EAcX,CAAA"}
@@ -0,0 +1,152 @@
1
+ import { t as Badge } from "./tinya-code-gas-admin-ui-badge-EeCA_l-o.mjs";
2
+ import * as i0 from "@angular/core";
3
+ import { Component, computed, input } from "@angular/core";
4
+ import { LucideExternalLink } from "@lucide/angular";
5
+ var FieldDisplayImage = class FieldDisplayImage {
6
+ field = input.required(...ngDevMode ? [{ debugName: "field" }] : /* istanbul ignore next */ []);
7
+ value = input(null, ...ngDevMode ? [{ debugName: "value" }] : /* istanbul ignore next */ []);
8
+ chip = input(false, ...ngDevMode ? [{ debugName: "chip" }] : /* istanbul ignore next */ []);
9
+ url = computed(() => String(this.value()), ...ngDevMode ? [{ debugName: "url" }] : /* istanbul ignore next */ []);
10
+ static ɵfac = i0.ɵɵngDeclareFactory({
11
+ minVersion: "12.0.0",
12
+ version: "22.2.3",
13
+ ngImport: i0,
14
+ type: FieldDisplayImage,
15
+ deps: [],
16
+ target: i0.ɵɵFactoryTarget.Component
17
+ });
18
+ static ɵcmp = i0.ɵɵngDeclareComponent({
19
+ minVersion: "17.0.0",
20
+ version: "22.2.3",
21
+ type: FieldDisplayImage,
22
+ isStandalone: true,
23
+ selector: "app-field-display-image",
24
+ inputs: {
25
+ field: {
26
+ classPropertyName: "field",
27
+ publicName: "field",
28
+ isSignal: true,
29
+ isRequired: true,
30
+ transformFunction: null
31
+ },
32
+ value: {
33
+ classPropertyName: "value",
34
+ publicName: "value",
35
+ isSignal: true,
36
+ isRequired: false,
37
+ transformFunction: null
38
+ },
39
+ chip: {
40
+ classPropertyName: "chip",
41
+ publicName: "chip",
42
+ isSignal: true,
43
+ isRequired: false,
44
+ transformFunction: null
45
+ }
46
+ },
47
+ ngImport: i0,
48
+ template: `
49
+ @if (chip()) {
50
+ <!-- Paridad R4.2: la cabecera siempre mostró el valor formateado
51
+ como chip, y para una imagen ese valor era la URL. -->
52
+ <app-badge [label]="url()" />
53
+ } @else {
54
+ <a
55
+ [href]="url()"
56
+ target="_blank"
57
+ rel="noopener noreferrer"
58
+ class="group relative inline-block overflow-hidden rounded-xl border border-neutral/20 shadow-xs transition hover:border-primary"
59
+ >
60
+ <img
61
+ [src]="url()"
62
+ [alt]="field().label"
63
+ class="h-28 w-28 object-cover transition duration-300 group-hover:scale-105"
64
+ />
65
+ <div
66
+ class="absolute inset-0 flex items-center justify-center bg-black/40 opacity-0 transition group-hover:opacity-100"
67
+ >
68
+ <svg lucideExternalLink size="18" class="text-white" />
69
+ </div>
70
+ </a>
71
+ }
72
+ `,
73
+ isInline: true,
74
+ dependencies: [{
75
+ kind: "component",
76
+ type: Badge,
77
+ selector: "app-badge",
78
+ inputs: ["label", "kind"]
79
+ }, {
80
+ kind: "component",
81
+ type: LucideExternalLink,
82
+ selector: "svg[lucideExternalLink]"
83
+ }]
84
+ });
85
+ };
86
+ i0.ɵɵngDeclareClassMetadata({
87
+ minVersion: "12.0.0",
88
+ version: "22.2.3",
89
+ ngImport: i0,
90
+ type: FieldDisplayImage,
91
+ decorators: [{
92
+ type: Component,
93
+ args: [{
94
+ selector: "app-field-display-image",
95
+ imports: [Badge, LucideExternalLink],
96
+ template: `
97
+ @if (chip()) {
98
+ <!-- Paridad R4.2: la cabecera siempre mostró el valor formateado
99
+ como chip, y para una imagen ese valor era la URL. -->
100
+ <app-badge [label]="url()" />
101
+ } @else {
102
+ <a
103
+ [href]="url()"
104
+ target="_blank"
105
+ rel="noopener noreferrer"
106
+ class="group relative inline-block overflow-hidden rounded-xl border border-neutral/20 shadow-xs transition hover:border-primary"
107
+ >
108
+ <img
109
+ [src]="url()"
110
+ [alt]="field().label"
111
+ class="h-28 w-28 object-cover transition duration-300 group-hover:scale-105"
112
+ />
113
+ <div
114
+ class="absolute inset-0 flex items-center justify-center bg-black/40 opacity-0 transition group-hover:opacity-100"
115
+ >
116
+ <svg lucideExternalLink size="18" class="text-white" />
117
+ </div>
118
+ </a>
119
+ }
120
+ `
121
+ }]
122
+ }],
123
+ propDecorators: {
124
+ field: [{
125
+ type: i0.Input,
126
+ args: [{
127
+ isSignal: true,
128
+ alias: "field",
129
+ required: true
130
+ }]
131
+ }],
132
+ value: [{
133
+ type: i0.Input,
134
+ args: [{
135
+ isSignal: true,
136
+ alias: "value",
137
+ required: false
138
+ }]
139
+ }],
140
+ chip: [{
141
+ type: i0.Input,
142
+ args: [{
143
+ isSignal: true,
144
+ alias: "chip",
145
+ required: false
146
+ }]
147
+ }]
148
+ }
149
+ });
150
+ export { FieldDisplayImage };
151
+
152
+ //# sourceMappingURL=tinya-code-gas-admin-ui-display-image-C1dhnZi1.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tinya-code-gas-admin-ui-display-image-C1dhnZi1.mjs","names":[],"sources":["../../../projects/gas-admin-ui/src/lib/fields/display/display-image.ts"],"sourcesContent":["import { Component, computed, input } from '@angular/core';\n\nimport { LucideExternalLink } from '@lucide/angular';\n\nimport { Badge } from '../../shared/components/badge/badge';\nimport type { FieldSchema } from '../../core/models/schema.model';\n\n/**\n * Display por defecto de `image` (R4.1 · modo `display`).\n *\n * Mismo maquetado que la rama `kind === 'image'` de `detail-view` antes de\n * R4.2: miniatura de 7×7 con enlace a la imagen completa y overlay con el\n * icono de «abrir». El `alt` sigue siendo la etiqueta del campo.\n *\n * El host ya se encarga del valor vacío (pinta `—`), así que acá la URL\n * siempre existe.\n */\n@Component({\n selector: 'app-field-display-image',\n imports: [Badge, LucideExternalLink],\n template: `\n @if (chip()) {\n <!-- Paridad R4.2: la cabecera siempre mostró el valor formateado\n como chip, y para una imagen ese valor era la URL. -->\n <app-badge [label]=\"url()\" />\n } @else {\n <a\n [href]=\"url()\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n class=\"group relative inline-block overflow-hidden rounded-xl border border-neutral/20 shadow-xs transition hover:border-primary\"\n >\n <img\n [src]=\"url()\"\n [alt]=\"field().label\"\n class=\"h-28 w-28 object-cover transition duration-300 group-hover:scale-105\"\n />\n <div\n class=\"absolute inset-0 flex items-center justify-center bg-black/40 opacity-0 transition group-hover:opacity-100\"\n >\n <svg lucideExternalLink size=\"18\" class=\"text-white\" />\n </div>\n </a>\n }\n `,\n})\nexport class FieldDisplayImage {\n readonly field = input.required<FieldSchema>();\n readonly value = input<unknown>(null);\n /** `true` en la cabecera: la URL se pinta como chip compacto. */\n readonly chip = input(false);\n\n protected readonly url = computed(() => String(this.value()));\n}\n"],"mappings":";;;;AA8CA,IAAa,oBAAb,MAAa,kBAAiB;CACnB,QAAQ,MAAM,SAAuB,GAAA,YAAA,CAAA,EAAA,WAAA,QAAA,CAAA,+BAAA,CAAA,CAAA;CACrC,QAAQ,MAAe,MAAK,GAAA,YAAA,CAAA,EAAA,WAAA,QAAA,CAAA,+BAAA,CAAA,CAAA;CAE5B,OAAO,MAAM,OAAM,GAAA,YAAA,CAAA,EAAA,WAAA,OAAA,CAAA,+BAAA,CAAA,CAAA;CAET,MAAM,eAAe,OAAO,KAAK,MAAK,CAAE,GAAE,GAAA,YAAA,CAAA,EAAA,WAAA,MAAA,CAAA,+BAAA,CAAA,CAAA;CANlD,OAAA,OAAA,GAAA,mBAAA;EAAA,YAAA;EAAA,SAAA;EAAA,UAAA;EAAA,MAAA;EAAiB,MAAA,CAAA;EAAA,QAAA,GAAA,gBAAA;CAAA,CAAA;CAAjB,OAAA,OAAA,GAAA,qBAAA;EAAA,YAAA;EAAA,SAAA;EAAA,MAAA;EAAiB,cAAA;EAAA,UAAA;EAAA,QAAA;GAAA,OAAA;IAAA,mBAAA;IAAA,YAAA;IAAA,UAAA;IAAA,YAAA;IAAA,mBAAA;GAAA;GAAA,OAAA;IAAA,mBAAA;IAAA,YAAA;IAAA,UAAA;IAAA,YAAA;IAAA,mBAAA;GAAA;GAAA,MAAA;IAAA,mBAAA;IAAA,YAAA;IAAA,UAAA;IAAA,YAAA;IAAA,mBAAA;GAAA;EAAA;EAAA,UAAA;EAAA,UA1BlB;;;;;;;;;;;;;;;;;;;;;;;;;EAwBT,UAAA;EAAA,cAAA,CAAA;GAAA,MAAA;GAAA,MAzBS;GAAK,UAAA;GAAA,QAAA,CAAA,SAAA,MAAA;EAAA,GAAA;GAAA,MAAA;GAAA,MAAE;GAAkB,UAAA;EAAA,CAAA;CAAA,CAAA;;AA2BxB,GAAA,yBAAA;CAAA,YAAA;CAAA,SAAA;CAAA,UAAA;CAAA,MAAA;CAAiB,YAAA,CAAA;EA7B7B,MAAA;EAAU,MAAA,CAAA;GACT,UAAU;GACV,SAAS,CAAC,OAAO,kBAAkB;GACnC,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;EAyBX,CAAA"}
@@ -0,0 +1,211 @@
1
+ import { t as Badge } from "./tinya-code-gas-admin-ui-badge-EeCA_l-o.mjs";
2
+ import { n as resolveBadgeKind } from "./tinya-code-gas-admin-ui-display-badge-fwk6sDU7.mjs";
3
+ import * as i0 from "@angular/core";
4
+ import { Component, computed, input } from "@angular/core";
5
+ import { LucideClock } from "@lucide/angular";
6
+ const FORMATO_FECHA_HORA = new Intl.DateTimeFormat("es-PE", {
7
+ dateStyle: "medium",
8
+ timeStyle: "short",
9
+ timeZone: "UTC"
10
+ });
11
+ var FieldDisplayList = class FieldDisplayList {
12
+ field = input.required(...ngDevMode ? [{ debugName: "field" }] : /* istanbul ignore next */ []);
13
+ value = input(null, ...ngDevMode ? [{ debugName: "value" }] : /* istanbul ignore next */ []);
14
+ chip = input(false, ...ngDevMode ? [{ debugName: "chip" }] : /* istanbul ignore next */ []);
15
+ items = computed(() => Array.isArray(this.value()) ? this.value() : [], ...ngDevMode ? [{ debugName: "items" }] : /* istanbul ignore next */ []);
16
+ resumen() {
17
+ return `${this.items().length} elementos`;
18
+ }
19
+ fechaHora(valor) {
20
+ if (!valor) return "—";
21
+ const d = new Date(String(valor));
22
+ return Number.isNaN(d.getTime()) ? String(valor) : FORMATO_FECHA_HORA.format(d);
23
+ }
24
+ etiquetaAccion(valor) {
25
+ if (!valor) return "";
26
+ return String(valor).replace(/_/g, " ");
27
+ }
28
+ kindAccion(valor) {
29
+ return resolveBadgeKind(String(valor));
30
+ }
31
+ static ɵfac = i0.ɵɵngDeclareFactory({
32
+ minVersion: "12.0.0",
33
+ version: "22.2.3",
34
+ ngImport: i0,
35
+ type: FieldDisplayList,
36
+ deps: [],
37
+ target: i0.ɵɵFactoryTarget.Component
38
+ });
39
+ static ɵcmp = i0.ɵɵngDeclareComponent({
40
+ minVersion: "17.0.0",
41
+ version: "22.2.3",
42
+ type: FieldDisplayList,
43
+ isStandalone: true,
44
+ selector: "app-field-display-list",
45
+ inputs: {
46
+ field: {
47
+ classPropertyName: "field",
48
+ publicName: "field",
49
+ isSignal: true,
50
+ isRequired: true,
51
+ transformFunction: null
52
+ },
53
+ value: {
54
+ classPropertyName: "value",
55
+ publicName: "value",
56
+ isSignal: true,
57
+ isRequired: false,
58
+ transformFunction: null
59
+ },
60
+ chip: {
61
+ classPropertyName: "chip",
62
+ publicName: "chip",
63
+ isSignal: true,
64
+ isRequired: false,
65
+ transformFunction: null
66
+ }
67
+ },
68
+ ngImport: i0,
69
+ template: `
70
+ @if (chip()) {
71
+ <!-- Paridad R4.2: la cabecera siempre mostró el valor formateado
72
+ como chip, y para una lista ese valor era «N elementos». -->
73
+ <app-badge [label]="resumen()" />
74
+ } @else if (items().length > 0) {
75
+ <div
76
+ class="relative pl-6 space-y-4 before:absolute before:left-2 before:top-2 before:bottom-2 before:w-0.5 before:bg-neutral/20"
77
+ >
78
+ @for (item of items(); track $index) {
79
+ <div class="relative group">
80
+ <span
81
+ class="absolute -left-6 top-1 flex h-4 w-4 items-center justify-center rounded-full bg-primary/20 ring-4 ring-surface"
82
+ >
83
+ <span class="h-1.5 w-1.5 rounded-full bg-primary"></span>
84
+ </span>
85
+ <div
86
+ class="rounded-xl border border-neutral/10 bg-neutral/5 p-3.5 transition hover:border-neutral/20"
87
+ >
88
+ <div class="flex flex-wrap items-center justify-between gap-2 mb-1.5">
89
+ @if (item['action']) {
90
+ <app-badge
91
+ [label]="etiquetaAccion(item['action'])"
92
+ [kind]="kindAccion(item['action'])"
93
+ />
94
+ }
95
+ @if (item['at']) {
96
+ <span class="text-xs text-neutral flex items-center gap-1">
97
+ <svg lucideClock size="12" />
98
+ {{ fechaHora(item['at']) }}
99
+ </span>
100
+ }
101
+ </div>
102
+ @if (item['detail']) {
103
+ <p class="text-sm text-neutral-light">{{ item['detail'] }}</p>
104
+ }
105
+ </div>
106
+ </div>
107
+ }
108
+ </div>
109
+ } @else {
110
+ <p class="text-xs italic text-neutral">No hay registros en el historial.</p>
111
+ }
112
+ `,
113
+ isInline: true,
114
+ dependencies: [{
115
+ kind: "component",
116
+ type: Badge,
117
+ selector: "app-badge",
118
+ inputs: ["label", "kind"]
119
+ }, {
120
+ kind: "component",
121
+ type: LucideClock,
122
+ selector: "svg[lucideClock]"
123
+ }]
124
+ });
125
+ };
126
+ i0.ɵɵngDeclareClassMetadata({
127
+ minVersion: "12.0.0",
128
+ version: "22.2.3",
129
+ ngImport: i0,
130
+ type: FieldDisplayList,
131
+ decorators: [{
132
+ type: Component,
133
+ args: [{
134
+ selector: "app-field-display-list",
135
+ imports: [Badge, LucideClock],
136
+ template: `
137
+ @if (chip()) {
138
+ <!-- Paridad R4.2: la cabecera siempre mostró el valor formateado
139
+ como chip, y para una lista ese valor era «N elementos». -->
140
+ <app-badge [label]="resumen()" />
141
+ } @else if (items().length > 0) {
142
+ <div
143
+ class="relative pl-6 space-y-4 before:absolute before:left-2 before:top-2 before:bottom-2 before:w-0.5 before:bg-neutral/20"
144
+ >
145
+ @for (item of items(); track $index) {
146
+ <div class="relative group">
147
+ <span
148
+ class="absolute -left-6 top-1 flex h-4 w-4 items-center justify-center rounded-full bg-primary/20 ring-4 ring-surface"
149
+ >
150
+ <span class="h-1.5 w-1.5 rounded-full bg-primary"></span>
151
+ </span>
152
+ <div
153
+ class="rounded-xl border border-neutral/10 bg-neutral/5 p-3.5 transition hover:border-neutral/20"
154
+ >
155
+ <div class="flex flex-wrap items-center justify-between gap-2 mb-1.5">
156
+ @if (item['action']) {
157
+ <app-badge
158
+ [label]="etiquetaAccion(item['action'])"
159
+ [kind]="kindAccion(item['action'])"
160
+ />
161
+ }
162
+ @if (item['at']) {
163
+ <span class="text-xs text-neutral flex items-center gap-1">
164
+ <svg lucideClock size="12" />
165
+ {{ fechaHora(item['at']) }}
166
+ </span>
167
+ }
168
+ </div>
169
+ @if (item['detail']) {
170
+ <p class="text-sm text-neutral-light">{{ item['detail'] }}</p>
171
+ }
172
+ </div>
173
+ </div>
174
+ }
175
+ </div>
176
+ } @else {
177
+ <p class="text-xs italic text-neutral">No hay registros en el historial.</p>
178
+ }
179
+ `
180
+ }]
181
+ }],
182
+ propDecorators: {
183
+ field: [{
184
+ type: i0.Input,
185
+ args: [{
186
+ isSignal: true,
187
+ alias: "field",
188
+ required: true
189
+ }]
190
+ }],
191
+ value: [{
192
+ type: i0.Input,
193
+ args: [{
194
+ isSignal: true,
195
+ alias: "value",
196
+ required: false
197
+ }]
198
+ }],
199
+ chip: [{
200
+ type: i0.Input,
201
+ args: [{
202
+ isSignal: true,
203
+ alias: "chip",
204
+ required: false
205
+ }]
206
+ }]
207
+ }
208
+ });
209
+ export { FieldDisplayList };
210
+
211
+ //# sourceMappingURL=tinya-code-gas-admin-ui-display-list-DOEuUbGe.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tinya-code-gas-admin-ui-display-list-DOEuUbGe.mjs","names":[],"sources":["../../../projects/gas-admin-ui/src/lib/fields/display/display-list.ts"],"sourcesContent":["import { Component, computed, input } from '@angular/core';\n\nimport { LucideClock } from '@lucide/angular';\n\nimport { Badge, type BadgeKind } from '../../shared/components/badge/badge';\nimport type { FieldSchema } from '../../core/models/schema.model';\nimport { resolveBadgeKind } from './display-badge';\n\nconst FORMATO_FECHA_HORA = new Intl.DateTimeFormat('es-PE', {\n dateStyle: 'medium',\n timeStyle: 'short',\n timeZone: 'UTC',\n});\n\ntype Item = Record<string, unknown>;\n\n/**\n * Display por defecto de `list` (R4.1 · modo `display`).\n *\n * Es la línea de tiempo del historial: **toda la plantilla de `list` que\n * vivía en `detail-view`** se muda acá, que es lo que R4.2 exige\n * («`detail-view` no tiene plantilla propia de campo»). El agrupador sigue\n * siendo `detail-view`: él decide que este campo va en su bloque con el\n * `<h3>` y el ancho grande; acá sólo se pinta el valor.\n *\n * `itemFields` no participa: el timeline lee `action` / `at` / `detail`\n * directamente, igual que antes.\n */\n@Component({\n selector: 'app-field-display-list',\n imports: [Badge, LucideClock],\n template: `\n @if (chip()) {\n <!-- Paridad R4.2: la cabecera siempre mostró el valor formateado\n como chip, y para una lista ese valor era «N elementos». -->\n <app-badge [label]=\"resumen()\" />\n } @else if (items().length > 0) {\n <div\n class=\"relative pl-6 space-y-4 before:absolute before:left-2 before:top-2 before:bottom-2 before:w-0.5 before:bg-neutral/20\"\n >\n @for (item of items(); track $index) {\n <div class=\"relative group\">\n <span\n class=\"absolute -left-6 top-1 flex h-4 w-4 items-center justify-center rounded-full bg-primary/20 ring-4 ring-surface\"\n >\n <span class=\"h-1.5 w-1.5 rounded-full bg-primary\"></span>\n </span>\n <div\n class=\"rounded-xl border border-neutral/10 bg-neutral/5 p-3.5 transition hover:border-neutral/20\"\n >\n <div class=\"flex flex-wrap items-center justify-between gap-2 mb-1.5\">\n @if (item['action']) {\n <app-badge\n [label]=\"etiquetaAccion(item['action'])\"\n [kind]=\"kindAccion(item['action'])\"\n />\n }\n @if (item['at']) {\n <span class=\"text-xs text-neutral flex items-center gap-1\">\n <svg lucideClock size=\"12\" />\n {{ fechaHora(item['at']) }}\n </span>\n }\n </div>\n @if (item['detail']) {\n <p class=\"text-sm text-neutral-light\">{{ item['detail'] }}</p>\n }\n </div>\n </div>\n }\n </div>\n } @else {\n <p class=\"text-xs italic text-neutral\">No hay registros en el historial.</p>\n }\n `,\n})\nexport class FieldDisplayList {\n readonly field = input.required<FieldSchema>();\n readonly value = input<unknown>(null);\n /** `true` en la cabecera: el resumen «N elementos» va como chip. */\n readonly chip = input(false);\n\n /** El host entrega el valor crudo; sólo un array tiene timeline. */\n protected readonly items = computed<Item[]>(() =>\n Array.isArray(this.value()) ? (this.value() as Item[]) : [],\n );\n\n /** Mismo texto que daba el formateo de detalle previo a R4.2. */\n protected resumen(): string {\n return `${this.items().length} elementos`;\n }\n\n protected fechaHora(valor: unknown): string {\n if (!valor) return '—';\n const d = new Date(String(valor));\n return Number.isNaN(d.getTime()) ? String(valor) : FORMATO_FECHA_HORA.format(d);\n }\n\n protected etiquetaAccion(valor: unknown): string {\n if (!valor) return '';\n return String(valor).replace(/_/g, ' ');\n }\n\n protected kindAccion(valor: unknown): BadgeKind {\n return resolveBadgeKind(String(valor));\n }\n}\n"],"mappings":";;;;;AAQA,MAAM,qBAAqB,IAAI,KAAK,eAAe,SAAS;CAC1D,WAAW;CACX,WAAW;CACX,UAAU;AACX,CAAA;AAgED,IAAa,mBAAb,MAAa,iBAAgB;CAClB,QAAQ,MAAM,SAAuB,GAAA,YAAA,CAAA,EAAA,WAAA,QAAA,CAAA,+BAAA,CAAA,CAAA;CACrC,QAAQ,MAAe,MAAK,GAAA,YAAA,CAAA,EAAA,WAAA,QAAA,CAAA,+BAAA,CAAA,CAAA;CAE5B,OAAO,MAAM,OAAM,GAAA,YAAA,CAAA,EAAA,WAAA,OAAA,CAAA,+BAAA,CAAA,CAAA;CAGT,QAAQ,eACzB,MAAM,QAAQ,KAAK,MAAK,CAAE,IAAK,KAAK,MAAK,IAAgB,CAAA,GAC1D,GAAA,YAAA,CAAA,EAAA,WAAA,QAAA,CAAA,+BAAA,CAAA,CAAA;CAGS,UAAO;EACf,OAAO,GAAG,KAAK,MAAK,CAAE,CAAC,OAAM;CAC/B;CAEU,UAAU,OAAc;EAChC,IAAI,CAAC,OAAO,OAAO;EACnB,MAAM,IAAI,IAAI,KAAK,OAAO,KAAK,CAAC;EAChC,OAAO,OAAO,MAAM,EAAE,QAAO,CAAE,IAAI,OAAO,KAAK,IAAI,mBAAmB,OAAO,CAAC;CAChF;CAEU,eAAe,OAAc;EACrC,IAAI,CAAC,OAAO,OAAO;EACnB,OAAO,OAAO,KAAK,CAAC,CAAC,QAAQ,MAAM,GAAG;CACxC;CAEU,WAAW,OAAc;EACjC,OAAO,iBAAiB,OAAO,KAAK,CAAC;CACvC;CA7BW,OAAA,OAAA,GAAA,mBAAA;EAAA,YAAA;EAAA,SAAA;EAAA,UAAA;EAAA,MAAA;EAAgB,MAAA,CAAA;EAAA,QAAA,GAAA,gBAAA;CAAA,CAAA;CAAhB,OAAA,OAAA,GAAA,qBAAA;EAAA,YAAA;EAAA,SAAA;EAAA,MAAA;EAAgB,cAAA;EAAA,UAAA;EAAA,QAAA;GAAA,OAAA;IAAA,mBAAA;IAAA,YAAA;IAAA,UAAA;IAAA,YAAA;IAAA,mBAAA;GAAA;GAAA,OAAA;IAAA,mBAAA;IAAA,YAAA;IAAA,UAAA;IAAA,YAAA;IAAA,mBAAA;GAAA;GAAA,MAAA;IAAA,mBAAA;IAAA,YAAA;IAAA,UAAA;IAAA,YAAA;IAAA,mBAAA;GAAA;EAAA;EAAA,UAAA;EAAA,UA7CjB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA2CT,UAAA;EAAA,cAAA,CAAA;GAAA,MAAA;GAAA,MA5CS;GAAK,UAAA;GAAA,QAAA,CAAA,SAAA,MAAA;EAAA,GAAA;GAAA,MAAA;GAAA,MAAE;GAAW,UAAA;EAAA,CAAA;CAAA,CAAA;;AA8CjB,GAAA,yBAAA;CAAA,YAAA;CAAA,SAAA;CAAA,UAAA;CAAA,MAAA;CAAgB,YAAA,CAAA;EAhD5B,MAAA;EAAU,MAAA,CAAA;GACT,UAAU;GACV,SAAS,CAAC,OAAO,WAAW;GAC5B,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA4CX,CAAA"}
@@ -0,0 +1,116 @@
1
+ import { t as Badge } from "./tinya-code-gas-admin-ui-badge-EeCA_l-o.mjs";
2
+ import * as i0 from "@angular/core";
3
+ import { Component, computed, input } from "@angular/core";
4
+ const FORMATO_NUMERO = new Intl.NumberFormat("es-PE");
5
+ var FieldDisplayNumber = class FieldDisplayNumber {
6
+ field = input.required(...ngDevMode ? [{ debugName: "field" }] : /* istanbul ignore next */ []);
7
+ value = input(null, ...ngDevMode ? [{ debugName: "value" }] : /* istanbul ignore next */ []);
8
+ chip = input(false, ...ngDevMode ? [{ debugName: "chip" }] : /* istanbul ignore next */ []);
9
+ texto = computed(() => {
10
+ const n = Number(this.value());
11
+ if (!Number.isFinite(n)) return String(this.value());
12
+ return FORMATO_NUMERO.format(n);
13
+ }, ...ngDevMode ? [{ debugName: "texto" }] : /* istanbul ignore next */ []);
14
+ static ɵfac = i0.ɵɵngDeclareFactory({
15
+ minVersion: "12.0.0",
16
+ version: "22.2.3",
17
+ ngImport: i0,
18
+ type: FieldDisplayNumber,
19
+ deps: [],
20
+ target: i0.ɵɵFactoryTarget.Component
21
+ });
22
+ static ɵcmp = i0.ɵɵngDeclareComponent({
23
+ minVersion: "17.0.0",
24
+ version: "22.2.3",
25
+ type: FieldDisplayNumber,
26
+ isStandalone: true,
27
+ selector: "app-field-display-number",
28
+ inputs: {
29
+ field: {
30
+ classPropertyName: "field",
31
+ publicName: "field",
32
+ isSignal: true,
33
+ isRequired: true,
34
+ transformFunction: null
35
+ },
36
+ value: {
37
+ classPropertyName: "value",
38
+ publicName: "value",
39
+ isSignal: true,
40
+ isRequired: false,
41
+ transformFunction: null
42
+ },
43
+ chip: {
44
+ classPropertyName: "chip",
45
+ publicName: "chip",
46
+ isSignal: true,
47
+ isRequired: false,
48
+ transformFunction: null
49
+ }
50
+ },
51
+ ngImport: i0,
52
+ template: `
53
+ @if (chip()) {
54
+ <app-badge [label]="texto()" />
55
+ } @else {
56
+ {{ texto() }}
57
+ }
58
+ `,
59
+ isInline: true,
60
+ dependencies: [{
61
+ kind: "component",
62
+ type: Badge,
63
+ selector: "app-badge",
64
+ inputs: ["label", "kind"]
65
+ }]
66
+ });
67
+ };
68
+ i0.ɵɵngDeclareClassMetadata({
69
+ minVersion: "12.0.0",
70
+ version: "22.2.3",
71
+ ngImport: i0,
72
+ type: FieldDisplayNumber,
73
+ decorators: [{
74
+ type: Component,
75
+ args: [{
76
+ selector: "app-field-display-number",
77
+ imports: [Badge],
78
+ template: `
79
+ @if (chip()) {
80
+ <app-badge [label]="texto()" />
81
+ } @else {
82
+ {{ texto() }}
83
+ }
84
+ `
85
+ }]
86
+ }],
87
+ propDecorators: {
88
+ field: [{
89
+ type: i0.Input,
90
+ args: [{
91
+ isSignal: true,
92
+ alias: "field",
93
+ required: true
94
+ }]
95
+ }],
96
+ value: [{
97
+ type: i0.Input,
98
+ args: [{
99
+ isSignal: true,
100
+ alias: "value",
101
+ required: false
102
+ }]
103
+ }],
104
+ chip: [{
105
+ type: i0.Input,
106
+ args: [{
107
+ isSignal: true,
108
+ alias: "chip",
109
+ required: false
110
+ }]
111
+ }]
112
+ }
113
+ });
114
+ export { FieldDisplayNumber };
115
+
116
+ //# sourceMappingURL=tinya-code-gas-admin-ui-display-number-DDMzr4Hn.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tinya-code-gas-admin-ui-display-number-DDMzr4Hn.mjs","names":[],"sources":["../../../projects/gas-admin-ui/src/lib/fields/display/display-number.ts"],"sourcesContent":["import { Component, computed, input } from '@angular/core';\n\nimport { Badge } from '../../shared/components/badge/badge';\nimport type { FieldSchema } from '../../core/models/schema.model';\n\nconst FORMATO_NUMERO = new Intl.NumberFormat('es-PE');\n\n/**\n * Display por defecto de `number` y `currency` (R4.1 · modo `display`).\n *\n * Los dos tipos compartían rama en `formatValue` y la comparten acá: miles\n * con separador `es-PE` y sin decimales fijos (el schema controla los\n * decimales con `decimals` en el form; en display manda el valor tal cual\n * viene). Si no es número, se pinta el texto crudo — la degradación que ya\n * hacía `detail-view`.\n */\n@Component({\n selector: 'app-field-display-number',\n imports: [Badge],\n template: `\n @if (chip()) {\n <app-badge [label]=\"texto()\" />\n } @else {\n {{ texto() }}\n }\n `,\n})\nexport class FieldDisplayNumber {\n readonly field = input.required<FieldSchema>();\n readonly value = input<unknown>(null);\n /** `true` en la cabecera: el número se pinta como chip compacto. */\n readonly chip = input(false);\n\n protected readonly texto = computed(() => {\n const n = Number(this.value());\n if (!Number.isFinite(n)) {\n return String(this.value());\n }\n return FORMATO_NUMERO.format(n);\n });\n}\n"],"mappings":";;;AAKA,MAAM,iBAAiB,IAAI,KAAK,aAAa,OAAO;AAsBpD,IAAa,qBAAb,MAAa,mBAAkB;CACpB,QAAQ,MAAM,SAAuB,GAAA,YAAA,CAAA,EAAA,WAAA,QAAA,CAAA,+BAAA,CAAA,CAAA;CACrC,QAAQ,MAAe,MAAK,GAAA,YAAA,CAAA,EAAA,WAAA,QAAA,CAAA,+BAAA,CAAA,CAAA;CAE5B,OAAO,MAAM,OAAM,GAAA,YAAA,CAAA,EAAA,WAAA,OAAA,CAAA,+BAAA,CAAA,CAAA;CAET,QAAQ,eAAc;EACvC,MAAM,IAAI,OAAO,KAAK,MAAK,CAAE;EAC7B,IAAI,CAAC,OAAO,SAAS,CAAC,GACpB,OAAO,OAAO,KAAK,MAAK,CAAE;EAE5B,OAAO,eAAe,OAAO,CAAC;CAChC,GAAE,GAAA,YAAA,CAAA,EAAA,WAAA,QAAA,CAAA,+BAAA,CAAA,CAAA;CAZS,OAAA,OAAA,GAAA,mBAAA;EAAA,YAAA;EAAA,SAAA;EAAA,UAAA;EAAA,MAAA;EAAkB,MAAA,CAAA;EAAA,QAAA,GAAA,gBAAA;CAAA,CAAA;CAAlB,OAAA,OAAA,GAAA,qBAAA;EAAA,YAAA;EAAA,SAAA;EAAA,MAAA;EAAkB,cAAA;EAAA,UAAA;EAAA,QAAA;GAAA,OAAA;IAAA,mBAAA;IAAA,YAAA;IAAA,UAAA;IAAA,YAAA;IAAA,mBAAA;GAAA;GAAA,OAAA;IAAA,mBAAA;IAAA,YAAA;IAAA,UAAA;IAAA,YAAA;IAAA,mBAAA;GAAA;GAAA,MAAA;IAAA,mBAAA;IAAA,YAAA;IAAA,UAAA;IAAA,YAAA;IAAA,mBAAA;GAAA;EAAA;EAAA,UAAA;EAAA,UARnB;;;;;;;EAMT,UAAA;EAAA,cAAA,CAAA;GAAA,MAAA;GAAA,MAPS;GAAK,UAAA;GAAA,QAAA,CAAA,SAAA,MAAA;EAAA,CAAA;CAAA,CAAA;;AASJ,GAAA,yBAAA;CAAA,YAAA;CAAA,SAAA;CAAA,UAAA;CAAA,MAAA;CAAkB,YAAA,CAAA;EAX9B,MAAA;EAAU,MAAA,CAAA;GACT,UAAU;GACV,SAAS,CAAC,KAAK;GACf,UAAU;;;;;;;EAOX,CAAA"}