acai-ui 1.65.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 (1139) hide show
  1. package/CHANGELOG.md +795 -0
  2. package/README.md +64 -0
  3. package/dist/acai-ui.css +14627 -0
  4. package/dist/components/actions/acai-ui-actions.d.ts +3 -0
  5. package/dist/components/async-select/acai-ui-async-select-interface.d.ts +48 -0
  6. package/dist/components/async-select/acai-ui-async-select-interface.d.ts.map +1 -0
  7. package/dist/components/async-select/acai-ui-async-select.d.ts +3 -0
  8. package/dist/components/badge/acai-ui-badge-interface.d.ts +20 -0
  9. package/dist/components/badge/acai-ui-badge-interface.d.ts.map +1 -0
  10. package/dist/components/badge/acai-ui-badge.d.ts +3 -0
  11. package/dist/components/banner/acai-ui-banner-interface.d.ts +16 -0
  12. package/dist/components/banner/acai-ui-banner-interface.d.ts.map +1 -0
  13. package/dist/components/banner/acai-ui-banner.d.ts +3 -0
  14. package/dist/components/button/acai-ui-button-interface.d.ts +21 -0
  15. package/dist/components/button/acai-ui-button-interface.d.ts.map +1 -0
  16. package/dist/components/button/acai-ui-button.d.ts +3 -0
  17. package/dist/components/card/acai-ui-card-interface.d.ts +14 -0
  18. package/dist/components/card/acai-ui-card-interface.d.ts.map +1 -0
  19. package/dist/components/card/acai-ui-card.d.ts +3 -0
  20. package/dist/components/chart/acai-ui-chart-interface.d.ts +190 -0
  21. package/dist/components/chart/acai-ui-chart-interface.d.ts.map +1 -0
  22. package/dist/components/chart/acai-ui-chart.d.ts +3 -0
  23. package/dist/components/chart/chart-a11y.d.ts +40 -0
  24. package/dist/components/chart/chart-a11y.d.ts.map +1 -0
  25. package/dist/components/chart/chart-caminhos.d.ts +91 -0
  26. package/dist/components/chart/chart-caminhos.d.ts.map +1 -0
  27. package/dist/components/chart/chart-cartesiano.d.ts +3 -0
  28. package/dist/components/chart/chart-dados.d.ts +74 -0
  29. package/dist/components/chart/chart-dados.d.ts.map +1 -0
  30. package/dist/components/chart/chart-escalas.d.ts +45 -0
  31. package/dist/components/chart/chart-escalas.d.ts.map +1 -0
  32. package/dist/components/chart/chart-formatar.d.ts +21 -0
  33. package/dist/components/chart/chart-formatar.d.ts.map +1 -0
  34. package/dist/components/chart/chart-gauge.d.ts +3 -0
  35. package/dist/components/chart/chart-headless.d.ts +29 -0
  36. package/dist/components/chart/chart-headless.d.ts.map +1 -0
  37. package/dist/components/chart/chart-imagem.d.ts +51 -0
  38. package/dist/components/chart/chart-imagem.d.ts.map +1 -0
  39. package/dist/components/chart/chart-layout.d.ts +59 -0
  40. package/dist/components/chart/chart-layout.d.ts.map +1 -0
  41. package/dist/components/chart/chart-legenda.d.ts +3 -0
  42. package/dist/components/chart/chart-pizza.d.ts +3 -0
  43. package/dist/components/chart/chart-plano.d.ts +201 -0
  44. package/dist/components/chart/chart-plano.d.ts.map +1 -0
  45. package/dist/components/chart/chart-rotulos.d.ts +10 -0
  46. package/dist/components/chart/chart-rotulos.d.ts.map +1 -0
  47. package/dist/components/chart/chart-tabela.d.ts +3 -0
  48. package/dist/components/chart/chart-ticks.d.ts +35 -0
  49. package/dist/components/chart/chart-ticks.d.ts.map +1 -0
  50. package/dist/components/checkbox/acai-ui-checkbox-interface.d.ts +16 -0
  51. package/dist/components/checkbox/acai-ui-checkbox-interface.d.ts.map +1 -0
  52. package/dist/components/checkbox/acai-ui-checkbox.d.ts +3 -0
  53. package/dist/components/chip/acai-ui-chip-interface.d.ts +17 -0
  54. package/dist/components/chip/acai-ui-chip-interface.d.ts.map +1 -0
  55. package/dist/components/chip/acai-ui-chip.d.ts +3 -0
  56. package/dist/components/code/acai-ui-code-interface.d.ts +44 -0
  57. package/dist/components/code/acai-ui-code-interface.d.ts.map +1 -0
  58. package/dist/components/code/acai-ui-code.d.ts +3 -0
  59. package/dist/components/code/dobras-json.d.ts +14 -0
  60. package/dist/components/code/dobras-json.d.ts.map +1 -0
  61. package/dist/components/confirm/acai-ui-confirm.d.ts +3 -0
  62. package/dist/components/container/acai-ui-container-interface.d.ts +29 -0
  63. package/dist/components/container/acai-ui-container-interface.d.ts.map +1 -0
  64. package/dist/components/container/acai-ui-container.d.ts +3 -0
  65. package/dist/components/date/acai-ui-date-interface.d.ts +19 -0
  66. package/dist/components/date/acai-ui-date-interface.d.ts.map +1 -0
  67. package/dist/components/date/acai-ui-date.d.ts +3 -0
  68. package/dist/components/date-range/acai-ui-date-range-interface.d.ts +27 -0
  69. package/dist/components/date-range/acai-ui-date-range-interface.d.ts.map +1 -0
  70. package/dist/components/date-range/acai-ui-date-range.d.ts +3 -0
  71. package/dist/components/datetime/acai-ui-datetime-interface.d.ts +10 -0
  72. package/dist/components/datetime/acai-ui-datetime-interface.d.ts.map +1 -0
  73. package/dist/components/datetime/acai-ui-datetime.d.ts +3 -0
  74. package/dist/components/dialog/acai-ui-dialog-interface.d.ts +17 -0
  75. package/dist/components/dialog/acai-ui-dialog-interface.d.ts.map +1 -0
  76. package/dist/components/dialog/acai-ui-dialog.d.ts +3 -0
  77. package/dist/components/divider/acai-ui-divider-interface.d.ts +5 -0
  78. package/dist/components/divider/acai-ui-divider-interface.d.ts.map +1 -0
  79. package/dist/components/divider/acai-ui-divider.d.ts +3 -0
  80. package/dist/components/drawer/acai-ui-drawer-interface.d.ts +97 -0
  81. package/dist/components/drawer/acai-ui-drawer-interface.d.ts.map +1 -0
  82. package/dist/components/drawer/acai-ui-drawer.d.ts +3 -0
  83. package/dist/components/drawer/drawer-sidebar-helper.d.ts +4 -0
  84. package/dist/components/drawer/drawer-sidebar-helper.d.ts.map +1 -0
  85. package/dist/components/dropdown/acai-ui-dropdown-interface.d.ts +35 -0
  86. package/dist/components/dropdown/acai-ui-dropdown-interface.d.ts.map +1 -0
  87. package/dist/components/dropdown/acai-ui-dropdown-item.d.ts +3 -0
  88. package/dist/components/dropdown/acai-ui-dropdown.d.ts +3 -0
  89. package/dist/components/error-log/acai-ui-error-log-interface.d.ts +59 -0
  90. package/dist/components/error-log/acai-ui-error-log-interface.d.ts.map +1 -0
  91. package/dist/components/error-log/acai-ui-error-log-json-tree.d.ts +3 -0
  92. package/dist/components/error-log/acai-ui-error-log-redigir.d.ts +28 -0
  93. package/dist/components/error-log/acai-ui-error-log-redigir.d.ts.map +1 -0
  94. package/dist/components/error-log/acai-ui-error-log.d.ts +3 -0
  95. package/dist/components/file/acai-ui-file-interface.d.ts +13 -0
  96. package/dist/components/file/acai-ui-file-interface.d.ts.map +1 -0
  97. package/dist/components/file/acai-ui-file.d.ts +3 -0
  98. package/dist/components/form/acai-ui-form-interface.d.ts +37 -0
  99. package/dist/components/form/acai-ui-form-interface.d.ts.map +1 -0
  100. package/dist/components/form/acai-ui-form.d.ts +3 -0
  101. package/dist/components/help/acai-ui-help-interface.d.ts +184 -0
  102. package/dist/components/help/acai-ui-help-interface.d.ts.map +1 -0
  103. package/dist/components/help/acai-ui-help.d.ts +3 -0
  104. package/dist/components/help/acai-ui-tour.d.ts +3 -0
  105. package/dist/components/help/tour-escolha.d.ts +62 -0
  106. package/dist/components/help/tour-escolha.d.ts.map +1 -0
  107. package/dist/components/help/tour-posicionar.d.ts +39 -0
  108. package/dist/components/help/tour-posicionar.d.ts.map +1 -0
  109. package/dist/components/help/tour-registry.d.ts +54 -0
  110. package/dist/components/help/tour-registry.d.ts.map +1 -0
  111. package/dist/components/help/use-tour-visto.d.ts +11 -0
  112. package/dist/components/help/use-tour-visto.d.ts.map +1 -0
  113. package/dist/components/icon/acai-ui-icon-interface.d.ts +12 -0
  114. package/dist/components/icon/acai-ui-icon-interface.d.ts.map +1 -0
  115. package/dist/components/icon/acai-ui-icon.d.ts +3 -0
  116. package/dist/components/index.d.ts +89 -0
  117. package/dist/components/index.d.ts.map +1 -0
  118. package/dist/components/input/acai-ui-input-interface.d.ts +20 -0
  119. package/dist/components/input/acai-ui-input-interface.d.ts.map +1 -0
  120. package/dist/components/input/acai-ui-input.d.ts +3 -0
  121. package/dist/components/modal/acai-ui-modal-interface.d.ts +16 -0
  122. package/dist/components/modal/acai-ui-modal-interface.d.ts.map +1 -0
  123. package/dist/components/modal/acai-ui-modal.d.ts +3 -0
  124. package/dist/components/pagination/acai-ui-pagination-interface.d.ts +9 -0
  125. package/dist/components/pagination/acai-ui-pagination-interface.d.ts.map +1 -0
  126. package/dist/components/pagination/acai-ui-pagination.d.ts +3 -0
  127. package/dist/components/preferences/acai-ui-preferences-interface.d.ts +5 -0
  128. package/dist/components/preferences/acai-ui-preferences-interface.d.ts.map +1 -0
  129. package/dist/components/preferences/acai-ui-preferences.d.ts +3 -0
  130. package/dist/components/progress/acai-ui-progress-interface.d.ts +18 -0
  131. package/dist/components/progress/acai-ui-progress-interface.d.ts.map +1 -0
  132. package/dist/components/progress/acai-ui-progress.d.ts +3 -0
  133. package/dist/components/radio/acai-ui-radio-interface.d.ts +13 -0
  134. package/dist/components/radio/acai-ui-radio-interface.d.ts.map +1 -0
  135. package/dist/components/radio/acai-ui-radio.d.ts +3 -0
  136. package/dist/components/section/acai-ui-section.d.ts +3 -0
  137. package/dist/components/select/acai-ui-select-interface.d.ts +18 -0
  138. package/dist/components/select/acai-ui-select-interface.d.ts.map +1 -0
  139. package/dist/components/select/acai-ui-select.d.ts +3 -0
  140. package/dist/components/session-clock/acai-ui-session-clock.d.ts +3 -0
  141. package/dist/components/stepper/acai-ui-step-interface.d.ts +18 -0
  142. package/dist/components/stepper/acai-ui-step-interface.d.ts.map +1 -0
  143. package/dist/components/stepper/acai-ui-step.d.ts +3 -0
  144. package/dist/components/stepper/acai-ui-stepper-interface.d.ts +53 -0
  145. package/dist/components/stepper/acai-ui-stepper-interface.d.ts.map +1 -0
  146. package/dist/components/stepper/acai-ui-stepper.d.ts +3 -0
  147. package/dist/components/swagger/acai-ui-swagger-interface.d.ts +53 -0
  148. package/dist/components/swagger/acai-ui-swagger-interface.d.ts.map +1 -0
  149. package/dist/components/swagger/acai-ui-swagger-operacao.d.ts +3 -0
  150. package/dist/components/swagger/acai-ui-swagger-requisicao.d.ts +76 -0
  151. package/dist/components/swagger/acai-ui-swagger-requisicao.d.ts.map +1 -0
  152. package/dist/components/swagger/acai-ui-swagger-schema.d.ts +3 -0
  153. package/dist/components/swagger/acai-ui-swagger.d.ts +3 -0
  154. package/dist/components/swagger/openapi-normalizar.d.ts +51 -0
  155. package/dist/components/swagger/openapi-normalizar.d.ts.map +1 -0
  156. package/dist/components/swagger/openapi-tipos.d.ts +167 -0
  157. package/dist/components/swagger/openapi-tipos.d.ts.map +1 -0
  158. package/dist/components/table/acai-ui-table-interface.d.ts +47 -0
  159. package/dist/components/table/acai-ui-table-interface.d.ts.map +1 -0
  160. package/dist/components/table/acai-ui-table-justificativa.d.ts +3 -0
  161. package/dist/components/table/acai-ui-table.d.ts +3 -0
  162. package/dist/components/tabs/acai-ui-tab.d.ts +3 -0
  163. package/dist/components/tabs/acai-ui-tabs-interface.d.ts +32 -0
  164. package/dist/components/tabs/acai-ui-tabs-interface.d.ts.map +1 -0
  165. package/dist/components/tabs/acai-ui-tabs.d.ts +3 -0
  166. package/dist/components/time/acai-ui-time-interface.d.ts +15 -0
  167. package/dist/components/time/acai-ui-time-interface.d.ts.map +1 -0
  168. package/dist/components/time/acai-ui-time.d.ts +3 -0
  169. package/dist/components/toggle/acai-ui-toggle-interface.d.ts +12 -0
  170. package/dist/components/toggle/acai-ui-toggle-interface.d.ts.map +1 -0
  171. package/dist/components/toggle/acai-ui-toggle.d.ts +3 -0
  172. package/dist/components/tooltip/acai-ui-tooltip-interface.d.ts +9 -0
  173. package/dist/components/tooltip/acai-ui-tooltip-interface.d.ts.map +1 -0
  174. package/dist/components/tooltip/acai-ui-tooltip.d.ts +3 -0
  175. package/dist/components/user-menu/acai-ui-user-menu-interface.d.ts +14 -0
  176. package/dist/components/user-menu/acai-ui-user-menu-interface.d.ts.map +1 -0
  177. package/dist/components/user-menu/acai-ui-user-menu.d.ts +3 -0
  178. package/dist/components/validation/acai-ui-validation.d.ts +3 -0
  179. package/dist/constants/chart-paleta.d.ts +47 -0
  180. package/dist/constants/chart-paleta.d.ts.map +1 -0
  181. package/dist/constants/efeitos.d.ts +22 -0
  182. package/dist/constants/efeitos.d.ts.map +1 -0
  183. package/dist/constants/index.d.ts +13 -0
  184. package/dist/constants/index.d.ts.map +1 -0
  185. package/dist/constants/lista-icons.d.ts +156 -0
  186. package/dist/constants/lista-icons.d.ts.map +1 -0
  187. package/dist/constants/medidas-espacos.d.ts +15 -0
  188. package/dist/constants/medidas-espacos.d.ts.map +1 -0
  189. package/dist/constants/radius.d.ts +15 -0
  190. package/dist/constants/radius.d.ts.map +1 -0
  191. package/dist/constants/status-badge.d.ts +17 -0
  192. package/dist/constants/status-badge.d.ts.map +1 -0
  193. package/dist/hooks/filtros-url-internos.d.ts +121 -0
  194. package/dist/hooks/filtros-url-internos.d.ts.map +1 -0
  195. package/dist/hooks/index.d.ts +18 -0
  196. package/dist/hooks/index.d.ts.map +1 -0
  197. package/dist/hooks/notify.d.ts +8 -0
  198. package/dist/hooks/notify.d.ts.map +1 -0
  199. package/dist/hooks/use-contador-sessao.d.ts +22 -0
  200. package/dist/hooks/use-contador-sessao.d.ts.map +1 -0
  201. package/dist/hooks/use-filtros-na-url.d.ts +110 -0
  202. package/dist/hooks/use-filtros-na-url.d.ts.map +1 -0
  203. package/dist/hooks/use-leitura-voz.d.ts +60 -0
  204. package/dist/hooks/use-leitura-voz.d.ts.map +1 -0
  205. package/dist/hooks/use-listagem-na-url.d.ts +185 -0
  206. package/dist/hooks/use-listagem-na-url.d.ts.map +1 -0
  207. package/dist/hooks/use-preferencias.d.ts +60 -0
  208. package/dist/hooks/use-preferencias.d.ts.map +1 -0
  209. package/dist/hooks/use-repasse-quasar.d.ts +42 -0
  210. package/dist/hooks/use-repasse-quasar.d.ts.map +1 -0
  211. package/dist/hooks/use-tamanho-elemento.d.ts +26 -0
  212. package/dist/hooks/use-tamanho-elemento.d.ts.map +1 -0
  213. package/dist/hooks/use-tela.d.ts +84 -0
  214. package/dist/hooks/use-tela.d.ts.map +1 -0
  215. package/dist/hooks/use-validacao-visual.d.ts +40 -0
  216. package/dist/hooks/use-validacao-visual.d.ts.map +1 -0
  217. package/dist/index.cjs +249 -0
  218. package/dist/index.cjs.map +1 -0
  219. package/dist/index.d.ts +8 -0
  220. package/dist/index.d.ts.map +1 -0
  221. package/dist/index.mjs +249 -0
  222. package/dist/index.mjs.map +1 -0
  223. package/dist/index10.cjs +24 -0
  224. package/dist/index10.cjs.map +1 -0
  225. package/dist/index10.mjs +25 -0
  226. package/dist/index10.mjs.map +1 -0
  227. package/dist/index100.cjs +51 -0
  228. package/dist/index100.cjs.map +1 -0
  229. package/dist/index100.mjs +51 -0
  230. package/dist/index100.mjs.map +1 -0
  231. package/dist/index101.cjs +143 -0
  232. package/dist/index101.cjs.map +1 -0
  233. package/dist/index101.mjs +143 -0
  234. package/dist/index101.mjs.map +1 -0
  235. package/dist/index102.cjs +137 -0
  236. package/dist/index102.cjs.map +1 -0
  237. package/dist/index102.mjs +138 -0
  238. package/dist/index102.mjs.map +1 -0
  239. package/dist/index104.cjs +10 -0
  240. package/dist/index104.cjs.map +1 -0
  241. package/dist/index104.mjs +11 -0
  242. package/dist/index104.mjs.map +1 -0
  243. package/dist/index105.cjs +5 -0
  244. package/dist/index105.cjs.map +1 -0
  245. package/dist/index105.mjs +6 -0
  246. package/dist/index105.mjs.map +1 -0
  247. package/dist/index106.cjs +5 -0
  248. package/dist/index106.cjs.map +1 -0
  249. package/dist/index106.mjs +6 -0
  250. package/dist/index106.mjs.map +1 -0
  251. package/dist/index107.cjs +86 -0
  252. package/dist/index107.cjs.map +1 -0
  253. package/dist/index107.mjs +87 -0
  254. package/dist/index107.mjs.map +1 -0
  255. package/dist/index109.cjs +123 -0
  256. package/dist/index109.cjs.map +1 -0
  257. package/dist/index109.mjs +124 -0
  258. package/dist/index109.mjs.map +1 -0
  259. package/dist/index111.cjs +121 -0
  260. package/dist/index111.cjs.map +1 -0
  261. package/dist/index111.mjs +122 -0
  262. package/dist/index111.mjs.map +1 -0
  263. package/dist/index113.cjs +72 -0
  264. package/dist/index113.cjs.map +1 -0
  265. package/dist/index113.mjs +73 -0
  266. package/dist/index113.mjs.map +1 -0
  267. package/dist/index115.cjs +5 -0
  268. package/dist/index115.cjs.map +1 -0
  269. package/dist/index115.mjs +6 -0
  270. package/dist/index115.mjs.map +1 -0
  271. package/dist/index116.cjs +56 -0
  272. package/dist/index116.cjs.map +1 -0
  273. package/dist/index116.mjs +57 -0
  274. package/dist/index116.mjs.map +1 -0
  275. package/dist/index118.cjs +5 -0
  276. package/dist/index118.cjs.map +1 -0
  277. package/dist/index118.mjs +6 -0
  278. package/dist/index118.mjs.map +1 -0
  279. package/dist/index119.cjs +210 -0
  280. package/dist/index119.cjs.map +1 -0
  281. package/dist/index119.mjs +211 -0
  282. package/dist/index119.mjs.map +1 -0
  283. package/dist/index12.cjs +606 -0
  284. package/dist/index12.cjs.map +1 -0
  285. package/dist/index12.mjs +607 -0
  286. package/dist/index12.mjs.map +1 -0
  287. package/dist/index121.cjs +170 -0
  288. package/dist/index121.cjs.map +1 -0
  289. package/dist/index121.mjs +171 -0
  290. package/dist/index121.mjs.map +1 -0
  291. package/dist/index123.cjs +109 -0
  292. package/dist/index123.cjs.map +1 -0
  293. package/dist/index123.mjs +110 -0
  294. package/dist/index123.mjs.map +1 -0
  295. package/dist/index125.cjs +5 -0
  296. package/dist/index125.cjs.map +1 -0
  297. package/dist/index125.mjs +6 -0
  298. package/dist/index125.mjs.map +1 -0
  299. package/dist/index126.cjs +4 -0
  300. package/dist/index126.cjs.map +1 -0
  301. package/dist/index126.mjs +5 -0
  302. package/dist/index126.mjs.map +1 -0
  303. package/dist/index127.cjs +300 -0
  304. package/dist/index127.cjs.map +1 -0
  305. package/dist/index127.mjs +301 -0
  306. package/dist/index127.mjs.map +1 -0
  307. package/dist/index130.cjs +5 -0
  308. package/dist/index130.cjs.map +1 -0
  309. package/dist/index130.mjs +6 -0
  310. package/dist/index130.mjs.map +1 -0
  311. package/dist/index131.cjs +5 -0
  312. package/dist/index131.cjs.map +1 -0
  313. package/dist/index131.mjs +6 -0
  314. package/dist/index131.mjs.map +1 -0
  315. package/dist/index132.cjs +128 -0
  316. package/dist/index132.cjs.map +1 -0
  317. package/dist/index132.mjs +129 -0
  318. package/dist/index132.mjs.map +1 -0
  319. package/dist/index134.cjs +4 -0
  320. package/dist/index134.cjs.map +1 -0
  321. package/dist/index134.mjs +5 -0
  322. package/dist/index134.mjs.map +1 -0
  323. package/dist/index135.cjs +180 -0
  324. package/dist/index135.cjs.map +1 -0
  325. package/dist/index135.mjs +181 -0
  326. package/dist/index135.mjs.map +1 -0
  327. package/dist/index137.cjs +83 -0
  328. package/dist/index137.cjs.map +1 -0
  329. package/dist/index137.mjs +84 -0
  330. package/dist/index137.mjs.map +1 -0
  331. package/dist/index139.cjs +284 -0
  332. package/dist/index139.cjs.map +1 -0
  333. package/dist/index139.mjs +285 -0
  334. package/dist/index139.mjs.map +1 -0
  335. package/dist/index14.cjs +124 -0
  336. package/dist/index14.cjs.map +1 -0
  337. package/dist/index14.mjs +125 -0
  338. package/dist/index14.mjs.map +1 -0
  339. package/dist/index141.cjs +58 -0
  340. package/dist/index141.cjs.map +1 -0
  341. package/dist/index141.mjs +59 -0
  342. package/dist/index141.mjs.map +1 -0
  343. package/dist/index143.cjs +5 -0
  344. package/dist/index143.cjs.map +1 -0
  345. package/dist/index143.mjs +6 -0
  346. package/dist/index143.mjs.map +1 -0
  347. package/dist/index144.cjs +399 -0
  348. package/dist/index144.cjs.map +1 -0
  349. package/dist/index144.mjs +400 -0
  350. package/dist/index144.mjs.map +1 -0
  351. package/dist/index146.cjs +305 -0
  352. package/dist/index146.cjs.map +1 -0
  353. package/dist/index146.mjs +306 -0
  354. package/dist/index146.mjs.map +1 -0
  355. package/dist/index149.cjs +109 -0
  356. package/dist/index149.cjs.map +1 -0
  357. package/dist/index149.mjs +110 -0
  358. package/dist/index149.mjs.map +1 -0
  359. package/dist/index152.cjs +5 -0
  360. package/dist/index152.cjs.map +1 -0
  361. package/dist/index152.mjs +6 -0
  362. package/dist/index152.mjs.map +1 -0
  363. package/dist/index153.cjs +5 -0
  364. package/dist/index153.cjs.map +1 -0
  365. package/dist/index153.mjs +6 -0
  366. package/dist/index153.mjs.map +1 -0
  367. package/dist/index154.cjs +4 -0
  368. package/dist/index154.cjs.map +1 -0
  369. package/dist/index154.mjs +5 -0
  370. package/dist/index154.mjs.map +1 -0
  371. package/dist/index155.cjs +5 -0
  372. package/dist/index155.cjs.map +1 -0
  373. package/dist/index155.mjs +6 -0
  374. package/dist/index155.mjs.map +1 -0
  375. package/dist/index156.cjs +5 -0
  376. package/dist/index156.cjs.map +1 -0
  377. package/dist/index156.mjs +6 -0
  378. package/dist/index156.mjs.map +1 -0
  379. package/dist/index157.cjs +5 -0
  380. package/dist/index157.cjs.map +1 -0
  381. package/dist/index157.mjs +6 -0
  382. package/dist/index157.mjs.map +1 -0
  383. package/dist/index158.cjs +4 -0
  384. package/dist/index158.cjs.map +1 -0
  385. package/dist/index158.mjs +5 -0
  386. package/dist/index158.mjs.map +1 -0
  387. package/dist/index159.cjs +59 -0
  388. package/dist/index159.cjs.map +1 -0
  389. package/dist/index159.mjs +60 -0
  390. package/dist/index159.mjs.map +1 -0
  391. package/dist/index16.cjs +89 -0
  392. package/dist/index16.cjs.map +1 -0
  393. package/dist/index16.mjs +90 -0
  394. package/dist/index16.mjs.map +1 -0
  395. package/dist/index161.cjs +5 -0
  396. package/dist/index161.cjs.map +1 -0
  397. package/dist/index161.mjs +6 -0
  398. package/dist/index161.mjs.map +1 -0
  399. package/dist/index162.cjs +119 -0
  400. package/dist/index162.cjs.map +1 -0
  401. package/dist/index162.mjs +120 -0
  402. package/dist/index162.mjs.map +1 -0
  403. package/dist/index164.cjs +33 -0
  404. package/dist/index164.cjs.map +1 -0
  405. package/dist/index164.mjs +34 -0
  406. package/dist/index164.mjs.map +1 -0
  407. package/dist/index166.cjs +5 -0
  408. package/dist/index166.cjs.map +1 -0
  409. package/dist/index166.mjs +6 -0
  410. package/dist/index166.mjs.map +1 -0
  411. package/dist/index167.cjs +324 -0
  412. package/dist/index167.cjs.map +1 -0
  413. package/dist/index167.mjs +325 -0
  414. package/dist/index167.mjs.map +1 -0
  415. package/dist/index17.cjs +419 -0
  416. package/dist/index17.cjs.map +1 -0
  417. package/dist/index17.mjs +420 -0
  418. package/dist/index17.mjs.map +1 -0
  419. package/dist/index170.cjs +38 -0
  420. package/dist/index170.cjs.map +1 -0
  421. package/dist/index170.mjs +39 -0
  422. package/dist/index170.mjs.map +1 -0
  423. package/dist/index172.cjs +5 -0
  424. package/dist/index172.cjs.map +1 -0
  425. package/dist/index172.mjs +6 -0
  426. package/dist/index172.mjs.map +1 -0
  427. package/dist/index173.cjs +202 -0
  428. package/dist/index173.cjs.map +1 -0
  429. package/dist/index173.mjs +203 -0
  430. package/dist/index173.mjs.map +1 -0
  431. package/dist/index175.cjs +5 -0
  432. package/dist/index175.cjs.map +1 -0
  433. package/dist/index175.mjs +6 -0
  434. package/dist/index175.mjs.map +1 -0
  435. package/dist/index176.cjs +53 -0
  436. package/dist/index176.cjs.map +1 -0
  437. package/dist/index176.mjs +54 -0
  438. package/dist/index176.mjs.map +1 -0
  439. package/dist/index178.cjs +13 -0
  440. package/dist/index178.cjs.map +1 -0
  441. package/dist/index178.mjs +13 -0
  442. package/dist/index178.mjs.map +1 -0
  443. package/dist/index179.cjs +18 -0
  444. package/dist/index179.cjs.map +1 -0
  445. package/dist/index179.mjs +18 -0
  446. package/dist/index179.mjs.map +1 -0
  447. package/dist/index180.cjs +262 -0
  448. package/dist/index180.cjs.map +1 -0
  449. package/dist/index180.mjs +262 -0
  450. package/dist/index180.mjs.map +1 -0
  451. package/dist/index181.cjs +108 -0
  452. package/dist/index181.cjs.map +1 -0
  453. package/dist/index181.mjs +109 -0
  454. package/dist/index181.mjs.map +1 -0
  455. package/dist/index182.cjs +73 -0
  456. package/dist/index182.cjs.map +1 -0
  457. package/dist/index182.mjs +73 -0
  458. package/dist/index182.mjs.map +1 -0
  459. package/dist/index183.cjs +37 -0
  460. package/dist/index183.cjs.map +1 -0
  461. package/dist/index183.mjs +37 -0
  462. package/dist/index183.mjs.map +1 -0
  463. package/dist/index184.cjs +16 -0
  464. package/dist/index184.cjs.map +1 -0
  465. package/dist/index184.mjs +16 -0
  466. package/dist/index184.mjs.map +1 -0
  467. package/dist/index185.cjs +31 -0
  468. package/dist/index185.cjs.map +1 -0
  469. package/dist/index185.mjs +31 -0
  470. package/dist/index185.mjs.map +1 -0
  471. package/dist/index186.cjs +460 -0
  472. package/dist/index186.cjs.map +1 -0
  473. package/dist/index186.mjs +461 -0
  474. package/dist/index186.mjs.map +1 -0
  475. package/dist/index187.cjs +154 -0
  476. package/dist/index187.cjs.map +1 -0
  477. package/dist/index187.mjs +154 -0
  478. package/dist/index187.mjs.map +1 -0
  479. package/dist/index188.cjs +40 -0
  480. package/dist/index188.cjs.map +1 -0
  481. package/dist/index188.mjs +40 -0
  482. package/dist/index188.mjs.map +1 -0
  483. package/dist/index189.cjs +66 -0
  484. package/dist/index189.cjs.map +1 -0
  485. package/dist/index189.mjs +66 -0
  486. package/dist/index189.mjs.map +1 -0
  487. package/dist/index19.cjs +135 -0
  488. package/dist/index19.cjs.map +1 -0
  489. package/dist/index19.mjs +136 -0
  490. package/dist/index19.mjs.map +1 -0
  491. package/dist/index190.cjs +142 -0
  492. package/dist/index190.cjs.map +1 -0
  493. package/dist/index190.mjs +143 -0
  494. package/dist/index190.mjs.map +1 -0
  495. package/dist/index191.cjs +7 -0
  496. package/dist/index191.cjs.map +1 -0
  497. package/dist/index191.mjs +8 -0
  498. package/dist/index191.mjs.map +1 -0
  499. package/dist/index192.cjs +7 -0
  500. package/dist/index192.cjs.map +1 -0
  501. package/dist/index192.mjs +8 -0
  502. package/dist/index192.mjs.map +1 -0
  503. package/dist/index193.cjs +7 -0
  504. package/dist/index193.cjs.map +1 -0
  505. package/dist/index193.mjs +8 -0
  506. package/dist/index193.mjs.map +1 -0
  507. package/dist/index194.cjs +7 -0
  508. package/dist/index194.cjs.map +1 -0
  509. package/dist/index194.mjs +8 -0
  510. package/dist/index194.mjs.map +1 -0
  511. package/dist/index195.cjs +7 -0
  512. package/dist/index195.cjs.map +1 -0
  513. package/dist/index195.mjs +8 -0
  514. package/dist/index195.mjs.map +1 -0
  515. package/dist/index196.cjs +100 -0
  516. package/dist/index196.cjs.map +1 -0
  517. package/dist/index196.mjs +100 -0
  518. package/dist/index196.mjs.map +1 -0
  519. package/dist/index197.cjs +226 -0
  520. package/dist/index197.cjs.map +1 -0
  521. package/dist/index197.mjs +226 -0
  522. package/dist/index197.mjs.map +1 -0
  523. package/dist/index198.cjs +66 -0
  524. package/dist/index198.cjs.map +1 -0
  525. package/dist/index198.mjs +66 -0
  526. package/dist/index198.mjs.map +1 -0
  527. package/dist/index199.cjs +399 -0
  528. package/dist/index199.cjs.map +1 -0
  529. package/dist/index199.mjs +399 -0
  530. package/dist/index199.mjs.map +1 -0
  531. package/dist/index200.cjs +83 -0
  532. package/dist/index200.cjs.map +1 -0
  533. package/dist/index200.mjs +83 -0
  534. package/dist/index200.mjs.map +1 -0
  535. package/dist/index201.cjs +4 -0
  536. package/dist/index201.cjs.map +1 -0
  537. package/dist/index201.mjs +5 -0
  538. package/dist/index201.mjs.map +1 -0
  539. package/dist/index202.cjs +5 -0
  540. package/dist/index202.cjs.map +1 -0
  541. package/dist/index202.mjs +6 -0
  542. package/dist/index202.mjs.map +1 -0
  543. package/dist/index203.cjs +216 -0
  544. package/dist/index203.cjs.map +1 -0
  545. package/dist/index203.mjs +217 -0
  546. package/dist/index203.mjs.map +1 -0
  547. package/dist/index205.cjs +112 -0
  548. package/dist/index205.cjs.map +1 -0
  549. package/dist/index205.mjs +113 -0
  550. package/dist/index205.mjs.map +1 -0
  551. package/dist/index207.cjs +112 -0
  552. package/dist/index207.cjs.map +1 -0
  553. package/dist/index207.mjs +113 -0
  554. package/dist/index207.mjs.map +1 -0
  555. package/dist/index209.cjs +64 -0
  556. package/dist/index209.cjs.map +1 -0
  557. package/dist/index209.mjs +65 -0
  558. package/dist/index209.mjs.map +1 -0
  559. package/dist/index21.cjs +268 -0
  560. package/dist/index21.cjs.map +1 -0
  561. package/dist/index21.mjs +269 -0
  562. package/dist/index21.mjs.map +1 -0
  563. package/dist/index211.cjs +45 -0
  564. package/dist/index211.cjs.map +1 -0
  565. package/dist/index211.mjs +46 -0
  566. package/dist/index211.mjs.map +1 -0
  567. package/dist/index213.cjs +241 -0
  568. package/dist/index213.cjs.map +1 -0
  569. package/dist/index213.mjs +241 -0
  570. package/dist/index213.mjs.map +1 -0
  571. package/dist/index214.cjs +63 -0
  572. package/dist/index214.cjs.map +1 -0
  573. package/dist/index214.mjs +63 -0
  574. package/dist/index214.mjs.map +1 -0
  575. package/dist/index215.cjs +53 -0
  576. package/dist/index215.cjs.map +1 -0
  577. package/dist/index215.mjs +53 -0
  578. package/dist/index215.mjs.map +1 -0
  579. package/dist/index216.cjs +53 -0
  580. package/dist/index216.cjs.map +1 -0
  581. package/dist/index216.mjs +53 -0
  582. package/dist/index216.mjs.map +1 -0
  583. package/dist/index217.cjs +4 -0
  584. package/dist/index217.cjs.map +1 -0
  585. package/dist/index217.mjs +5 -0
  586. package/dist/index217.mjs.map +1 -0
  587. package/dist/index218.cjs +29 -0
  588. package/dist/index218.cjs.map +1 -0
  589. package/dist/index218.mjs +30 -0
  590. package/dist/index218.mjs.map +1 -0
  591. package/dist/index219.cjs +4 -0
  592. package/dist/index219.cjs.map +1 -0
  593. package/dist/index219.mjs +5 -0
  594. package/dist/index219.mjs.map +1 -0
  595. package/dist/index23.cjs +41 -0
  596. package/dist/index23.cjs.map +1 -0
  597. package/dist/index23.mjs +42 -0
  598. package/dist/index23.mjs.map +1 -0
  599. package/dist/index24.cjs +117 -0
  600. package/dist/index24.cjs.map +1 -0
  601. package/dist/index24.mjs +118 -0
  602. package/dist/index24.mjs.map +1 -0
  603. package/dist/index26.cjs +127 -0
  604. package/dist/index26.cjs.map +1 -0
  605. package/dist/index26.mjs +128 -0
  606. package/dist/index26.mjs.map +1 -0
  607. package/dist/index28.cjs +39 -0
  608. package/dist/index28.cjs.map +1 -0
  609. package/dist/index28.mjs +40 -0
  610. package/dist/index28.mjs.map +1 -0
  611. package/dist/index29.cjs +176 -0
  612. package/dist/index29.cjs.map +1 -0
  613. package/dist/index29.mjs +177 -0
  614. package/dist/index29.mjs.map +1 -0
  615. package/dist/index3.cjs +110 -0
  616. package/dist/index3.cjs.map +1 -0
  617. package/dist/index3.mjs +110 -0
  618. package/dist/index3.mjs.map +1 -0
  619. package/dist/index31.cjs +361 -0
  620. package/dist/index31.cjs.map +1 -0
  621. package/dist/index31.mjs +362 -0
  622. package/dist/index31.mjs.map +1 -0
  623. package/dist/index33.cjs +20 -0
  624. package/dist/index33.cjs.map +1 -0
  625. package/dist/index33.mjs +21 -0
  626. package/dist/index33.mjs.map +1 -0
  627. package/dist/index34.cjs +311 -0
  628. package/dist/index34.cjs.map +1 -0
  629. package/dist/index34.mjs +312 -0
  630. package/dist/index34.mjs.map +1 -0
  631. package/dist/index36.cjs +132 -0
  632. package/dist/index36.cjs.map +1 -0
  633. package/dist/index36.mjs +133 -0
  634. package/dist/index36.mjs.map +1 -0
  635. package/dist/index38.cjs +80 -0
  636. package/dist/index38.cjs.map +1 -0
  637. package/dist/index38.mjs +81 -0
  638. package/dist/index38.mjs.map +1 -0
  639. package/dist/index4.cjs +612 -0
  640. package/dist/index4.cjs.map +1 -0
  641. package/dist/index4.mjs +613 -0
  642. package/dist/index4.mjs.map +1 -0
  643. package/dist/index40.cjs +600 -0
  644. package/dist/index40.cjs.map +1 -0
  645. package/dist/index40.mjs +601 -0
  646. package/dist/index40.mjs.map +1 -0
  647. package/dist/index42.cjs +160 -0
  648. package/dist/index42.cjs.map +1 -0
  649. package/dist/index42.mjs +160 -0
  650. package/dist/index42.mjs.map +1 -0
  651. package/dist/index43.cjs +26 -0
  652. package/dist/index43.cjs.map +1 -0
  653. package/dist/index43.mjs +27 -0
  654. package/dist/index43.mjs.map +1 -0
  655. package/dist/index44.cjs +20 -0
  656. package/dist/index44.cjs.map +1 -0
  657. package/dist/index44.mjs +21 -0
  658. package/dist/index44.mjs.map +1 -0
  659. package/dist/index45.cjs +104 -0
  660. package/dist/index45.cjs.map +1 -0
  661. package/dist/index45.mjs +104 -0
  662. package/dist/index45.mjs.map +1 -0
  663. package/dist/index46.cjs +8 -0
  664. package/dist/index46.cjs.map +1 -0
  665. package/dist/index46.mjs +9 -0
  666. package/dist/index46.mjs.map +1 -0
  667. package/dist/index47.cjs +7 -0
  668. package/dist/index47.cjs.map +1 -0
  669. package/dist/index47.mjs +8 -0
  670. package/dist/index47.mjs.map +1 -0
  671. package/dist/index48.cjs +7 -0
  672. package/dist/index48.cjs.map +1 -0
  673. package/dist/index48.mjs +8 -0
  674. package/dist/index48.mjs.map +1 -0
  675. package/dist/index49.cjs +7 -0
  676. package/dist/index49.cjs.map +1 -0
  677. package/dist/index49.mjs +8 -0
  678. package/dist/index49.mjs.map +1 -0
  679. package/dist/index50.cjs +7 -0
  680. package/dist/index50.cjs.map +1 -0
  681. package/dist/index50.mjs +8 -0
  682. package/dist/index50.mjs.map +1 -0
  683. package/dist/index51.cjs +7 -0
  684. package/dist/index51.cjs.map +1 -0
  685. package/dist/index51.mjs +8 -0
  686. package/dist/index51.mjs.map +1 -0
  687. package/dist/index52.cjs +7 -0
  688. package/dist/index52.cjs.map +1 -0
  689. package/dist/index52.mjs +8 -0
  690. package/dist/index52.mjs.map +1 -0
  691. package/dist/index53.cjs +7 -0
  692. package/dist/index53.cjs.map +1 -0
  693. package/dist/index53.mjs +8 -0
  694. package/dist/index53.mjs.map +1 -0
  695. package/dist/index54.cjs +7 -0
  696. package/dist/index54.cjs.map +1 -0
  697. package/dist/index54.mjs +8 -0
  698. package/dist/index54.mjs.map +1 -0
  699. package/dist/index55.cjs +7 -0
  700. package/dist/index55.cjs.map +1 -0
  701. package/dist/index55.mjs +8 -0
  702. package/dist/index55.mjs.map +1 -0
  703. package/dist/index56.cjs +7 -0
  704. package/dist/index56.cjs.map +1 -0
  705. package/dist/index56.mjs +8 -0
  706. package/dist/index56.mjs.map +1 -0
  707. package/dist/index57.cjs +7 -0
  708. package/dist/index57.cjs.map +1 -0
  709. package/dist/index57.mjs +8 -0
  710. package/dist/index57.mjs.map +1 -0
  711. package/dist/index58.cjs +7 -0
  712. package/dist/index58.cjs.map +1 -0
  713. package/dist/index58.mjs +8 -0
  714. package/dist/index58.mjs.map +1 -0
  715. package/dist/index59.cjs +8 -0
  716. package/dist/index59.cjs.map +1 -0
  717. package/dist/index59.mjs +9 -0
  718. package/dist/index59.mjs.map +1 -0
  719. package/dist/index6.cjs +578 -0
  720. package/dist/index6.cjs.map +1 -0
  721. package/dist/index6.mjs +579 -0
  722. package/dist/index6.mjs.map +1 -0
  723. package/dist/index60.cjs +7 -0
  724. package/dist/index60.cjs.map +1 -0
  725. package/dist/index60.mjs +8 -0
  726. package/dist/index60.mjs.map +1 -0
  727. package/dist/index61.cjs +7 -0
  728. package/dist/index61.cjs.map +1 -0
  729. package/dist/index61.mjs +8 -0
  730. package/dist/index61.mjs.map +1 -0
  731. package/dist/index62.cjs +7 -0
  732. package/dist/index62.cjs.map +1 -0
  733. package/dist/index62.mjs +8 -0
  734. package/dist/index62.mjs.map +1 -0
  735. package/dist/index63.cjs +7 -0
  736. package/dist/index63.cjs.map +1 -0
  737. package/dist/index63.mjs +8 -0
  738. package/dist/index63.mjs.map +1 -0
  739. package/dist/index64.cjs +7 -0
  740. package/dist/index64.cjs.map +1 -0
  741. package/dist/index64.mjs +8 -0
  742. package/dist/index64.mjs.map +1 -0
  743. package/dist/index65.cjs +8 -0
  744. package/dist/index65.cjs.map +1 -0
  745. package/dist/index65.mjs +9 -0
  746. package/dist/index65.mjs.map +1 -0
  747. package/dist/index66.cjs +7 -0
  748. package/dist/index66.cjs.map +1 -0
  749. package/dist/index66.mjs +8 -0
  750. package/dist/index66.mjs.map +1 -0
  751. package/dist/index67.cjs +7 -0
  752. package/dist/index67.cjs.map +1 -0
  753. package/dist/index67.mjs +8 -0
  754. package/dist/index67.mjs.map +1 -0
  755. package/dist/index68.cjs +7 -0
  756. package/dist/index68.cjs.map +1 -0
  757. package/dist/index68.mjs +8 -0
  758. package/dist/index68.mjs.map +1 -0
  759. package/dist/index69.cjs +8 -0
  760. package/dist/index69.cjs.map +1 -0
  761. package/dist/index69.mjs +9 -0
  762. package/dist/index69.mjs.map +1 -0
  763. package/dist/index70.cjs +7 -0
  764. package/dist/index70.cjs.map +1 -0
  765. package/dist/index70.mjs +8 -0
  766. package/dist/index70.mjs.map +1 -0
  767. package/dist/index71.cjs +38 -0
  768. package/dist/index71.cjs.map +1 -0
  769. package/dist/index71.mjs +38 -0
  770. package/dist/index71.mjs.map +1 -0
  771. package/dist/index72.cjs +22 -0
  772. package/dist/index72.cjs.map +1 -0
  773. package/dist/index72.mjs +22 -0
  774. package/dist/index72.mjs.map +1 -0
  775. package/dist/index73.cjs +40 -0
  776. package/dist/index73.cjs.map +1 -0
  777. package/dist/index73.mjs +40 -0
  778. package/dist/index73.mjs.map +1 -0
  779. package/dist/index74.cjs +80 -0
  780. package/dist/index74.cjs.map +1 -0
  781. package/dist/index74.mjs +80 -0
  782. package/dist/index74.mjs.map +1 -0
  783. package/dist/index75.cjs +29 -0
  784. package/dist/index75.cjs.map +1 -0
  785. package/dist/index75.mjs +29 -0
  786. package/dist/index75.mjs.map +1 -0
  787. package/dist/index76.cjs +157 -0
  788. package/dist/index76.cjs.map +1 -0
  789. package/dist/index76.mjs +157 -0
  790. package/dist/index76.mjs.map +1 -0
  791. package/dist/index77.cjs +16 -0
  792. package/dist/index77.cjs.map +1 -0
  793. package/dist/index77.mjs +16 -0
  794. package/dist/index77.mjs.map +1 -0
  795. package/dist/index78.cjs +87 -0
  796. package/dist/index78.cjs.map +1 -0
  797. package/dist/index78.mjs +87 -0
  798. package/dist/index78.mjs.map +1 -0
  799. package/dist/index79.cjs +16 -0
  800. package/dist/index79.cjs.map +1 -0
  801. package/dist/index79.mjs +16 -0
  802. package/dist/index79.mjs.map +1 -0
  803. package/dist/index8.cjs +130 -0
  804. package/dist/index8.cjs.map +1 -0
  805. package/dist/index8.mjs +131 -0
  806. package/dist/index8.mjs.map +1 -0
  807. package/dist/index80.cjs +65 -0
  808. package/dist/index80.cjs.map +1 -0
  809. package/dist/index80.mjs +65 -0
  810. package/dist/index80.mjs.map +1 -0
  811. package/dist/index81.cjs +69 -0
  812. package/dist/index81.cjs.map +1 -0
  813. package/dist/index81.mjs +69 -0
  814. package/dist/index81.mjs.map +1 -0
  815. package/dist/index82.cjs +30 -0
  816. package/dist/index82.cjs.map +1 -0
  817. package/dist/index82.mjs +30 -0
  818. package/dist/index82.mjs.map +1 -0
  819. package/dist/index83.cjs +86 -0
  820. package/dist/index83.cjs.map +1 -0
  821. package/dist/index83.mjs +86 -0
  822. package/dist/index83.mjs.map +1 -0
  823. package/dist/index84.cjs +102 -0
  824. package/dist/index84.cjs.map +1 -0
  825. package/dist/index84.mjs +102 -0
  826. package/dist/index84.mjs.map +1 -0
  827. package/dist/index85.cjs +20 -0
  828. package/dist/index85.cjs.map +1 -0
  829. package/dist/index85.mjs +20 -0
  830. package/dist/index85.mjs.map +1 -0
  831. package/dist/index86.cjs +21 -0
  832. package/dist/index86.cjs.map +1 -0
  833. package/dist/index86.mjs +21 -0
  834. package/dist/index86.mjs.map +1 -0
  835. package/dist/index87.cjs +191 -0
  836. package/dist/index87.cjs.map +1 -0
  837. package/dist/index87.mjs +191 -0
  838. package/dist/index87.mjs.map +1 -0
  839. package/dist/index88.cjs +67 -0
  840. package/dist/index88.cjs.map +1 -0
  841. package/dist/index88.mjs +67 -0
  842. package/dist/index88.mjs.map +1 -0
  843. package/dist/index89.cjs +312 -0
  844. package/dist/index89.cjs.map +1 -0
  845. package/dist/index89.mjs +312 -0
  846. package/dist/index89.mjs.map +1 -0
  847. package/dist/index90.cjs +10 -0
  848. package/dist/index90.cjs.map +1 -0
  849. package/dist/index90.mjs +10 -0
  850. package/dist/index90.mjs.map +1 -0
  851. package/dist/index91.cjs +15 -0
  852. package/dist/index91.cjs.map +1 -0
  853. package/dist/index91.mjs +15 -0
  854. package/dist/index91.mjs.map +1 -0
  855. package/dist/index92.cjs +8 -0
  856. package/dist/index92.cjs.map +1 -0
  857. package/dist/index92.mjs +8 -0
  858. package/dist/index92.mjs.map +1 -0
  859. package/dist/index93.cjs +81 -0
  860. package/dist/index93.cjs.map +1 -0
  861. package/dist/index93.mjs +81 -0
  862. package/dist/index93.mjs.map +1 -0
  863. package/dist/index94.cjs +124 -0
  864. package/dist/index94.cjs.map +1 -0
  865. package/dist/index94.mjs +124 -0
  866. package/dist/index94.mjs.map +1 -0
  867. package/dist/index95.cjs +68 -0
  868. package/dist/index95.cjs.map +1 -0
  869. package/dist/index95.mjs +68 -0
  870. package/dist/index95.mjs.map +1 -0
  871. package/dist/index96.cjs +29 -0
  872. package/dist/index96.cjs.map +1 -0
  873. package/dist/index96.mjs +29 -0
  874. package/dist/index96.mjs.map +1 -0
  875. package/dist/index97.cjs +184 -0
  876. package/dist/index97.cjs.map +1 -0
  877. package/dist/index97.mjs +184 -0
  878. package/dist/index97.mjs.map +1 -0
  879. package/dist/index98.cjs +78 -0
  880. package/dist/index98.cjs.map +1 -0
  881. package/dist/index98.mjs +78 -0
  882. package/dist/index98.mjs.map +1 -0
  883. package/dist/index99.cjs +55 -0
  884. package/dist/index99.cjs.map +1 -0
  885. package/dist/index99.mjs +55 -0
  886. package/dist/index99.mjs.map +1 -0
  887. package/dist/plugin.d.ts +37 -0
  888. package/dist/plugin.d.ts.map +1 -0
  889. package/dist/scss/_badge.scss +12 -0
  890. package/dist/scss/_breakpoints.scss +102 -0
  891. package/dist/scss/_color-utilities.scss +105 -0
  892. package/dist/scss/_controls.scss +135 -0
  893. package/dist/scss/_ds-input-base.scss +302 -0
  894. package/dist/scss/_ds-picker-m3.scss +179 -0
  895. package/dist/scss/_effects.scss +42 -0
  896. package/dist/scss/_overlays.scss +13 -0
  897. package/dist/scss/_radius.scss +24 -0
  898. package/dist/scss/_reset.scss +60 -0
  899. package/dist/scss/_scrollbar.scss +78 -0
  900. package/dist/scss/_spacing.scss +15 -0
  901. package/dist/scss/_themes.scss +493 -0
  902. package/dist/scss/_typography.scss +50 -0
  903. package/dist/scss/_utilities.scss +75 -0
  904. package/dist/scss/_variables.scss +143 -0
  905. package/dist/scss/api.scss +77 -0
  906. package/dist/scss/tokens.scss +13 -0
  907. package/dist/utils/date-utils.d.ts +48 -0
  908. package/dist/utils/date-utils.d.ts.map +1 -0
  909. package/dist/utils/dialog-utils.d.ts +17 -0
  910. package/dist/utils/dialog-utils.d.ts.map +1 -0
  911. package/dist/utils/file-utils.d.ts +20 -0
  912. package/dist/utils/file-utils.d.ts.map +1 -0
  913. package/dist/utils/filtro-input.d.ts +19 -0
  914. package/dist/utils/filtro-input.d.ts.map +1 -0
  915. package/dist/utils/form-rules.d.ts +74 -0
  916. package/dist/utils/form-rules.d.ts.map +1 -0
  917. package/dist/utils/formatadores.d.ts +15 -0
  918. package/dist/utils/formatadores.d.ts.map +1 -0
  919. package/dist/utils/gerador-id.d.ts +3 -0
  920. package/dist/utils/gerador-id.d.ts.map +1 -0
  921. package/dist/utils/hint-mensagem.d.ts +11 -0
  922. package/dist/utils/hint-mensagem.d.ts.map +1 -0
  923. package/dist/utils/index.d.ts +15 -0
  924. package/dist/utils/index.d.ts.map +1 -0
  925. package/dist/utils/limpar-campos.d.ts +6 -0
  926. package/dist/utils/limpar-campos.d.ts.map +1 -0
  927. package/dist/utils/masks.d.ts +16 -0
  928. package/dist/utils/masks.d.ts.map +1 -0
  929. package/dist/utils/medidas-util.d.ts +3 -0
  930. package/dist/utils/medidas-util.d.ts.map +1 -0
  931. package/dist/utils/normalizar-label.d.ts +2 -0
  932. package/dist/utils/normalizar-label.d.ts.map +1 -0
  933. package/dist/utils/scroll-elemento.d.ts +16 -0
  934. package/dist/utils/scroll-elemento.d.ts.map +1 -0
  935. package/dist/utils/validar-campo.d.ts +7 -0
  936. package/dist/utils/validar-campo.d.ts.map +1 -0
  937. package/dist/utils/validar-documentos.d.ts +12 -0
  938. package/dist/utils/validar-documentos.d.ts.map +1 -0
  939. package/dist/utils/vnode-slot.d.ts +43 -0
  940. package/dist/utils/vnode-slot.d.ts.map +1 -0
  941. package/package.json +100 -0
  942. package/src/components/actions/acai-ui-actions.vue +225 -0
  943. package/src/components/async-select/acai-ui-async-select-interface.ts +49 -0
  944. package/src/components/async-select/acai-ui-async-select.vue +409 -0
  945. package/src/components/badge/acai-ui-badge-interface.ts +19 -0
  946. package/src/components/badge/acai-ui-badge.vue +40 -0
  947. package/src/components/banner/acai-ui-banner-interface.ts +17 -0
  948. package/src/components/banner/acai-ui-banner-styles.scss +47 -0
  949. package/src/components/banner/acai-ui-banner.vue +85 -0
  950. package/src/components/button/acai-ui-button-interface.ts +21 -0
  951. package/src/components/button/acai-ui-button.vue +378 -0
  952. package/src/components/card/acai-ui-card-interface.ts +14 -0
  953. package/src/components/card/acai-ui-card-styles.scss +94 -0
  954. package/src/components/card/acai-ui-card.vue +148 -0
  955. package/src/components/chart/acai-ui-chart-interface.ts +226 -0
  956. package/src/components/chart/acai-ui-chart-styles.scss +141 -0
  957. package/src/components/chart/acai-ui-chart.vue +679 -0
  958. package/src/components/chart/chart-a11y.ts +184 -0
  959. package/src/components/chart/chart-caminhos.ts +466 -0
  960. package/src/components/chart/chart-cartesiano.vue +247 -0
  961. package/src/components/chart/chart-dados.ts +381 -0
  962. package/src/components/chart/chart-escalas.ts +141 -0
  963. package/src/components/chart/chart-formatar.ts +98 -0
  964. package/src/components/chart/chart-gauge.vue +152 -0
  965. package/src/components/chart/chart-headless.ts +130 -0
  966. package/src/components/chart/chart-imagem.ts +247 -0
  967. package/src/components/chart/chart-layout.ts +184 -0
  968. package/src/components/chart/chart-legenda.vue +103 -0
  969. package/src/components/chart/chart-pizza.vue +134 -0
  970. package/src/components/chart/chart-plano.ts +818 -0
  971. package/src/components/chart/chart-rotulos.ts +75 -0
  972. package/src/components/chart/chart-tabela.vue +116 -0
  973. package/src/components/chart/chart-ticks.ts +116 -0
  974. package/src/components/checkbox/acai-ui-checkbox-interface.ts +17 -0
  975. package/src/components/checkbox/acai-ui-checkbox.vue +114 -0
  976. package/src/components/chip/acai-ui-chip-interface.ts +19 -0
  977. package/src/components/chip/acai-ui-chip.vue +61 -0
  978. package/src/components/code/acai-ui-code-interface.ts +43 -0
  979. package/src/components/code/acai-ui-code-styles.scss +407 -0
  980. package/src/components/code/acai-ui-code.vue +595 -0
  981. package/src/components/code/dobras-json.ts +52 -0
  982. package/src/components/confirm/acai-ui-confirm.vue +230 -0
  983. package/src/components/container/acai-ui-container-interface.ts +34 -0
  984. package/src/components/container/acai-ui-container-styles.scss +122 -0
  985. package/src/components/container/acai-ui-container.vue +140 -0
  986. package/src/components/date/acai-ui-date-interface.ts +18 -0
  987. package/src/components/date/acai-ui-date.vue +191 -0
  988. package/src/components/date-range/acai-ui-date-range-interface.ts +27 -0
  989. package/src/components/date-range/acai-ui-date-range.vue +300 -0
  990. package/src/components/datetime/acai-ui-datetime-interface.ts +10 -0
  991. package/src/components/datetime/acai-ui-datetime.vue +203 -0
  992. package/src/components/datetime/data-hora-styles.scss +18 -0
  993. package/src/components/dialog/acai-ui-dialog-interface.ts +18 -0
  994. package/src/components/dialog/acai-ui-dialog.vue +168 -0
  995. package/src/components/divider/acai-ui-divider-interface.ts +4 -0
  996. package/src/components/divider/acai-ui-divider-styles.scss +42 -0
  997. package/src/components/divider/acai-ui-divider.vue +20 -0
  998. package/src/components/drawer/acai-ui-drawer-interface.ts +99 -0
  999. package/src/components/drawer/acai-ui-drawer-styles.scss +586 -0
  1000. package/src/components/drawer/acai-ui-drawer.vue +802 -0
  1001. package/src/components/drawer/drawer-sidebar-helper.ts +117 -0
  1002. package/src/components/dropdown/acai-ui-dropdown-interface.ts +41 -0
  1003. package/src/components/dropdown/acai-ui-dropdown-item.vue +36 -0
  1004. package/src/components/dropdown/acai-ui-dropdown-styles.scss +90 -0
  1005. package/src/components/dropdown/acai-ui-dropdown.vue +77 -0
  1006. package/src/components/error-log/acai-ui-error-log-interface.ts +59 -0
  1007. package/src/components/error-log/acai-ui-error-log-json-tree.vue +426 -0
  1008. package/src/components/error-log/acai-ui-error-log-redigir.ts +74 -0
  1009. package/src/components/error-log/acai-ui-error-log-styles.scss +137 -0
  1010. package/src/components/error-log/acai-ui-error-log.vue +318 -0
  1011. package/src/components/file/acai-ui-file-interface.ts +28 -0
  1012. package/src/components/file/acai-ui-file.vue +85 -0
  1013. package/src/components/file/arquivo-styles.scss +109 -0
  1014. package/src/components/form/acai-ui-form-grid.scss +145 -0
  1015. package/src/components/form/acai-ui-form-interface.ts +37 -0
  1016. package/src/components/form/acai-ui-form-styles.scss +159 -0
  1017. package/src/components/form/acai-ui-form-validation-modal.vue +216 -0
  1018. package/src/components/form/acai-ui-form.vue +410 -0
  1019. package/src/components/help/acai-ui-help-interface.ts +200 -0
  1020. package/src/components/help/acai-ui-help-styles.scss +209 -0
  1021. package/src/components/help/acai-ui-help.vue +259 -0
  1022. package/src/components/help/acai-ui-tour-styles.scss +292 -0
  1023. package/src/components/help/acai-ui-tour.vue +766 -0
  1024. package/src/components/help/tour-escolha.ts +139 -0
  1025. package/src/components/help/tour-posicionar.ts +148 -0
  1026. package/src/components/help/tour-registry.ts +177 -0
  1027. package/src/components/help/use-tour-visto.ts +81 -0
  1028. package/src/components/icon/acai-ui-icon-interface.ts +12 -0
  1029. package/src/components/icon/acai-ui-icon.vue +33 -0
  1030. package/src/components/index.ts +149 -0
  1031. package/src/components/input/acai-ui-input-interface.ts +20 -0
  1032. package/src/components/input/acai-ui-input.vue +146 -0
  1033. package/src/components/modal/acai-ui-modal-interface.ts +19 -0
  1034. package/src/components/modal/acai-ui-modal-styles.scss +131 -0
  1035. package/src/components/modal/acai-ui-modal.vue +83 -0
  1036. package/src/components/pagination/acai-ui-pagination-interface.ts +8 -0
  1037. package/src/components/pagination/acai-ui-pagination.vue +36 -0
  1038. package/src/components/preferences/acai-ui-preferences-interface.ts +4 -0
  1039. package/src/components/preferences/acai-ui-preferences-styles.scss +387 -0
  1040. package/src/components/preferences/acai-ui-preferences.vue +349 -0
  1041. package/src/components/progress/acai-ui-progress-interface.ts +20 -0
  1042. package/src/components/progress/acai-ui-progress.vue +124 -0
  1043. package/src/components/radio/acai-ui-radio-interface.ts +14 -0
  1044. package/src/components/radio/acai-ui-radio.vue +78 -0
  1045. package/src/components/section/acai-ui-section-styles.scss +93 -0
  1046. package/src/components/section/acai-ui-section.vue +134 -0
  1047. package/src/components/select/acai-ui-select-interface.ts +18 -0
  1048. package/src/components/select/acai-ui-select.vue +322 -0
  1049. package/src/components/session-clock/acai-ui-session-clock.vue +111 -0
  1050. package/src/components/stepper/acai-ui-step-interface.ts +18 -0
  1051. package/src/components/stepper/acai-ui-step.vue +37 -0
  1052. package/src/components/stepper/acai-ui-stepper-interface.ts +56 -0
  1053. package/src/components/stepper/acai-ui-stepper-styles.scss +222 -0
  1054. package/src/components/stepper/acai-ui-stepper.vue +231 -0
  1055. package/src/components/swagger/acai-ui-swagger-interface.ts +54 -0
  1056. package/src/components/swagger/acai-ui-swagger-operacao.vue +372 -0
  1057. package/src/components/swagger/acai-ui-swagger-requisicao.ts +272 -0
  1058. package/src/components/swagger/acai-ui-swagger-schema.vue +36 -0
  1059. package/src/components/swagger/acai-ui-swagger-styles.scss +883 -0
  1060. package/src/components/swagger/acai-ui-swagger.vue +349 -0
  1061. package/src/components/swagger/openapi-normalizar.ts +514 -0
  1062. package/src/components/swagger/openapi-tipos.ts +198 -0
  1063. package/src/components/table/acai-ui-table-interface.ts +60 -0
  1064. package/src/components/table/acai-ui-table-justificativa.vue +135 -0
  1065. package/src/components/table/acai-ui-table-styles.scss +293 -0
  1066. package/src/components/table/acai-ui-table.vue +340 -0
  1067. package/src/components/tabs/acai-ui-tab.vue +10 -0
  1068. package/src/components/tabs/acai-ui-tabs-interface.ts +48 -0
  1069. package/src/components/tabs/acai-ui-tabs-styles.scss +78 -0
  1070. package/src/components/tabs/acai-ui-tabs.vue +137 -0
  1071. package/src/components/time/acai-ui-time-interface.ts +14 -0
  1072. package/src/components/time/acai-ui-time.vue +86 -0
  1073. package/src/components/toggle/acai-ui-toggle-interface.ts +13 -0
  1074. package/src/components/toggle/acai-ui-toggle.vue +162 -0
  1075. package/src/components/tooltip/acai-ui-tooltip-interface.ts +11 -0
  1076. package/src/components/tooltip/acai-ui-tooltip-styles.scss +104 -0
  1077. package/src/components/tooltip/acai-ui-tooltip.vue +90 -0
  1078. package/src/components/user-menu/acai-ui-user-menu-interface.ts +13 -0
  1079. package/src/components/user-menu/acai-ui-user-menu-styles.scss +125 -0
  1080. package/src/components/user-menu/acai-ui-user-menu.vue +139 -0
  1081. package/src/components/validation/acai-ui-validation.vue +236 -0
  1082. package/src/constants/chart-paleta.ts +162 -0
  1083. package/src/constants/efeitos.ts +24 -0
  1084. package/src/constants/index.ts +24 -0
  1085. package/src/constants/lista-icons.ts +156 -0
  1086. package/src/constants/medidas-espacos.ts +15 -0
  1087. package/src/constants/radius.ts +15 -0
  1088. package/src/constants/status-badge.ts +44 -0
  1089. package/src/env.d.ts +7 -0
  1090. package/src/hooks/filtros-url-internos.ts +497 -0
  1091. package/src/hooks/index.ts +22 -0
  1092. package/src/hooks/notify.ts +18 -0
  1093. package/src/hooks/use-contador-sessao.ts +95 -0
  1094. package/src/hooks/use-filtros-na-url.ts +174 -0
  1095. package/src/hooks/use-leitura-voz.ts +346 -0
  1096. package/src/hooks/use-listagem-na-url.ts +614 -0
  1097. package/src/hooks/use-preferencias.ts +152 -0
  1098. package/src/hooks/use-repasse-quasar.ts +63 -0
  1099. package/src/hooks/use-tamanho-elemento.ts +107 -0
  1100. package/src/hooks/use-tela.ts +114 -0
  1101. package/src/hooks/use-validacao-visual.ts +189 -0
  1102. package/src/index.ts +30 -0
  1103. package/src/plugin.ts +134 -0
  1104. package/src/scss/_badge.scss +12 -0
  1105. package/src/scss/_breakpoints.scss +102 -0
  1106. package/src/scss/_color-utilities.scss +105 -0
  1107. package/src/scss/_controls.scss +135 -0
  1108. package/src/scss/_ds-input-base.scss +302 -0
  1109. package/src/scss/_ds-picker-m3.scss +179 -0
  1110. package/src/scss/_effects.scss +42 -0
  1111. package/src/scss/_overlays.scss +13 -0
  1112. package/src/scss/_radius.scss +24 -0
  1113. package/src/scss/_reset.scss +60 -0
  1114. package/src/scss/_scrollbar.scss +78 -0
  1115. package/src/scss/_spacing.scss +15 -0
  1116. package/src/scss/_themes.scss +493 -0
  1117. package/src/scss/_typography.scss +50 -0
  1118. package/src/scss/_utilities.scss +75 -0
  1119. package/src/scss/_variables.scss +143 -0
  1120. package/src/scss/api.scss +77 -0
  1121. package/src/scss/tokens.scss +13 -0
  1122. package/src/styles-global.scss +30 -0
  1123. package/src/utils/date-utils.ts +128 -0
  1124. package/src/utils/dialog-utils.ts +59 -0
  1125. package/src/utils/file-utils.ts +85 -0
  1126. package/src/utils/filtro-input.ts +41 -0
  1127. package/src/utils/form-rules.ts +202 -0
  1128. package/src/utils/formatadores.ts +97 -0
  1129. package/src/utils/gerador-id.ts +29 -0
  1130. package/src/utils/hint-mensagem.ts +25 -0
  1131. package/src/utils/index.ts +32 -0
  1132. package/src/utils/limpar-campos.ts +94 -0
  1133. package/src/utils/masks.ts +19 -0
  1134. package/src/utils/medidas-util.ts +5 -0
  1135. package/src/utils/normalizar-label.ts +9 -0
  1136. package/src/utils/scroll-elemento.ts +34 -0
  1137. package/src/utils/validar-campo.ts +27 -0
  1138. package/src/utils/validar-documentos.ts +86 -0
  1139. package/src/utils/vnode-slot.ts +74 -0
@@ -0,0 +1,399 @@
1
+ import { fatiasPizza, caminhoSetor, caixaDoArco, caminhoArco, pontoNoArco, caminhoMarcador, caminhoBarra, caminhoArea, caminhoLinha } from "./index213.mjs";
2
+ import { resolverCor, corQuasarParaToken, dominioDeSeries, empilhar } from "./index197.mjs";
3
+ import { escalaLinear, escalaBanda, escalaSubBanda } from "./index214.mjs";
4
+ import { calcularLayout, LARGURA_COMPACTA } from "./index200.mjs";
5
+ import { quebrarRotulo } from "./index215.mjs";
6
+ import { dominioBonito } from "./index216.mjs";
7
+ const FRACAO_ROTULO_INTERNO = 0.12;
8
+ const MARGEM_ROTULO = 86;
9
+ function montarPlanoPizza(entrada) {
10
+ const {
11
+ dados,
12
+ largura,
13
+ altura,
14
+ formatar,
15
+ raioInterno = 0,
16
+ colorBy = "series",
17
+ thresholds = []
18
+ } = entrada;
19
+ const compacto = largura < LARGURA_COMPACTA;
20
+ const serie = dados.series.find((s) => !s.oculta);
21
+ const cx = largura / 2;
22
+ const cy = altura / 2;
23
+ const margem = compacto ? 44 : MARGEM_ROTULO;
24
+ const raioExterno = Math.max(
25
+ 0,
26
+ Math.min(largura / 2 - margem, altura / 2 - 16)
27
+ );
28
+ const ri = Math.max(0, Math.min(0.95, raioInterno)) * raioExterno;
29
+ if (!serie || raioExterno <= 0) {
30
+ return { cx, cy, raioExterno: 0, raioInterno: 0, fatias: [], compacto };
31
+ }
32
+ const valores = serie.pontos.map((p) => p.valor === null ? 0 : p.valor);
33
+ const fatiasBase = fatiasPizza(valores, { espacoGraus: valores.length > 1 ? 1 : 0 });
34
+ const fatias = [];
35
+ fatiasBase.forEach((fatia) => {
36
+ if (fatia.valor <= 0) return;
37
+ const ponto = serie.pontos[fatia.indice];
38
+ if (!ponto) return;
39
+ const meio = (fatia.anguloInicio + fatia.anguloFim) / 2;
40
+ const dentro = fatia.fracao >= FRACAO_ROTULO_INTERNO && !compacto;
41
+ const percentual = `${(fatia.fracao * 100).toFixed(fatia.fracao < 0.1 ? 1 : 0).replace(".", ",")}%`;
42
+ let rotuloX;
43
+ let rotuloY;
44
+ let ancora = "middle";
45
+ let linhaGuia = "";
46
+ if (dentro) {
47
+ const raioTexto = ri > 0 ? (raioExterno + ri) / 2 : raioExterno * 0.62;
48
+ const p = pontoNoArco(cx, cy, raioTexto, meio);
49
+ rotuloX = p.x;
50
+ rotuloY = p.y;
51
+ } else {
52
+ const aDireita = Math.cos(meio * Math.PI / 180) >= 0;
53
+ const dobra = pontoNoArco(cx, cy, raioExterno + 10, meio);
54
+ const fim = { x: aDireita ? dobra.x + 14 : dobra.x - 14, y: dobra.y };
55
+ const inicio = pontoNoArco(cx, cy, raioExterno, meio);
56
+ linhaGuia = `M ${inicio.x.toFixed(2)} ${inicio.y.toFixed(2)} L ${dobra.x.toFixed(2)} ${dobra.y.toFixed(2)} L ${fim.x.toFixed(2)} ${fim.y.toFixed(2)}`;
57
+ rotuloX = aDireita ? fim.x + 4 : fim.x - 4;
58
+ rotuloY = fim.y;
59
+ ancora = aDireita ? "start" : "end";
60
+ }
61
+ fatias.push({
62
+ chave: `f-${fatia.indice}`,
63
+ indicePonto: fatia.indice,
64
+ d: caminhoSetor(cx, cy, raioExterno, ri, fatia.anguloInicio, fatia.anguloFim),
65
+ cor: resolverCor(ponto, serie, colorBy, thresholds),
66
+ rotulo: ponto.rotulo,
67
+ valor: fatia.valor,
68
+ percentual,
69
+ valorFormatado: formatar(fatia.valor),
70
+ anguloInicioBruto: fatia.anguloInicio,
71
+ anguloFimBruto: fatia.anguloFim,
72
+ dentro,
73
+ rotuloX,
74
+ rotuloY,
75
+ ancora,
76
+ linhaGuia
77
+ });
78
+ });
79
+ return { cx, cy, raioExterno, raioInterno: ri, fatias, compacto };
80
+ }
81
+ function paraAnguloSvg(anguloPolar) {
82
+ return -anguloPolar;
83
+ }
84
+ const FOLGA_GAUGE = 10;
85
+ const ALTURA_VALOR_GAUGE = 30;
86
+ const ALTURA_LEGENDA_GAUGE = 16;
87
+ function montarPlanoGauge(entrada) {
88
+ const {
89
+ dados,
90
+ largura,
91
+ altura,
92
+ formatar,
93
+ min = 0,
94
+ max = 100,
95
+ anguloInicio = 180,
96
+ anguloFim = 0,
97
+ espessura = 14,
98
+ ponteiro = false,
99
+ bandas = false,
100
+ legenda = "",
101
+ colorBy = "series",
102
+ thresholds = []
103
+ } = entrada;
104
+ const compacto = largura < LARGURA_COMPACTA;
105
+ const baixo = Math.min(min, max);
106
+ const alto = Math.max(min, max);
107
+ const amplitude = alto - baixo;
108
+ const serie = dados.series.find((s) => !s.oculta);
109
+ const ponto = (serie == null ? void 0 : serie.pontos.find((p) => p.valor !== null)) ?? (serie == null ? void 0 : serie.pontos[0]);
110
+ const valor = (ponto == null ? void 0 : ponto.valor) ?? null;
111
+ const fracao = valor === null || amplitude <= 0 ? 0 : clamp((valor - baixo) / amplitude, 0, 1);
112
+ const svgInicio = paraAnguloSvg(anguloInicio);
113
+ const svgFimBruto = paraAnguloSvg(anguloFim);
114
+ const svgFim = svgFimBruto > svgInicio ? svgFimBruto : svgInicio + 360;
115
+ const caixa = caixaDoArco(svgInicio, svgFim);
116
+ const larguraCaixa = Math.max(1e-4, caixa.maxX - caixa.minX);
117
+ const alturaCaixa = Math.max(1e-4, caixa.maxY - caixa.minY);
118
+ const margem = espessura / 2 + FOLGA_GAUGE + (compacto ? 8 : 14);
119
+ const reservaTexto = ponteiro ? ALTURA_VALOR_GAUGE + (legenda ? ALTURA_LEGENDA_GAUGE : 0) : 0;
120
+ const dispX = Math.max(0, largura - margem * 2);
121
+ const dispY = Math.max(0, altura - margem * 2 - reservaTexto);
122
+ const raio = Math.max(0, Math.min(dispX / larguraCaixa, dispY / alturaCaixa));
123
+ const cx = margem + (dispX - larguraCaixa * raio) / 2 - caixa.minX * raio;
124
+ const cy = margem + (dispY - alturaCaixa * raio) / 2 - caixa.minY * raio;
125
+ const anguloDoValor = svgInicio + (svgFim - svgInicio) * fracao;
126
+ const faixas = [];
127
+ if (bandas && thresholds.length > 0 && amplitude > 0) {
128
+ const ordenadas = [...thresholds].sort((a, b) => a.upTo - b.upTo);
129
+ let cursorFracao = 0;
130
+ ordenadas.forEach((faixa, i) => {
131
+ const ate = clamp((faixa.upTo - baixo) / amplitude, 0, 1);
132
+ if (ate <= cursorFracao) return;
133
+ faixas.push({
134
+ chave: `fx-${i}`,
135
+ d: caminhoArco(
136
+ cx,
137
+ cy,
138
+ raio,
139
+ svgInicio + (svgFim - svgInicio) * cursorFracao,
140
+ svgInicio + (svgFim - svgInicio) * ate
141
+ ),
142
+ cor: corQuasarParaToken(faixa.color)
143
+ });
144
+ cursorFracao = ate;
145
+ });
146
+ }
147
+ const dPonteiro = ponteiro ? caminhoPonteiro(cx, cy, raio, espessura, anguloDoValor) : "";
148
+ const baseDoDesenho = cy + caixa.maxY * raio + espessura / 2;
149
+ const marcarValor = faixas.length > 0 && !ponteiro && valor !== null;
150
+ const dMarcadorValor = marcarValor ? caminhoMarcadorRadial(cx, cy, raio, espessura, anguloDoValor) : "";
151
+ return {
152
+ cx,
153
+ cy,
154
+ raio,
155
+ espessura,
156
+ dTrilho: caminhoArco(cx, cy, raio, svgInicio, svgFim),
157
+ dProgresso: valor === null ? "" : caminhoArco(cx, cy, raio, svgInicio, anguloDoValor),
158
+ faixas,
159
+ dPonteiro,
160
+ dEixoPonteiro: ponteiro ? caminhoMarcador("circle", cx, cy, espessura * 0.9) : "",
161
+ dMarcadorValor,
162
+ cor: ponto && serie ? resolverCor(ponto, serie, colorBy, thresholds) : "var(--acai-chart-1)",
163
+ valor,
164
+ valorFormatado: valor === null ? "—" : formatar(valor),
165
+ fracao,
166
+ minFormatado: formatar(baixo),
167
+ maxFormatado: formatar(alto),
168
+ minX: pontoNoArco(cx, cy, raio, svgInicio).x,
169
+ maxX: pontoNoArco(cx, cy, raio, svgFim).x,
170
+ rotulosY: pontoNoArco(cx, cy, raio, svgInicio).y + espessura / 2 + 14,
171
+ mostrarEscala: !compacto && svgFim - svgInicio < 350,
172
+ textoX: cx,
173
+ // Sem agulha: linha de base um pouco ACIMA do centro. Num semicírculo o `cy`
174
+ // é a borda de baixo da caixa, e assentar o número exatamente nela o
175
+ // empurraria pra fora no export (o canvas corta o que o `overflow: visible`
176
+ // do SVG deixa passar na tela).
177
+ // Com agulha: abaixo do ponto mais baixo do desenho, no espaço reservado.
178
+ textoY: ponteiro ? baseDoDesenho + ALTURA_VALOR_GAUGE : cy - 6,
179
+ legendaY: ponteiro ? baseDoDesenho + ALTURA_VALOR_GAUGE + ALTURA_LEGENDA_GAUGE : cy + 12,
180
+ legenda,
181
+ compacto
182
+ };
183
+ }
184
+ function caminhoPonteiro(cx, cy, raio, espessura, anguloSvg) {
185
+ const comprimento = Math.max(0, raio - espessura);
186
+ if (comprimento <= 0) return "";
187
+ const meiaBase = Math.max(2, espessura * 0.28);
188
+ const ponta = pontoNoArco(cx, cy, comprimento, anguloSvg);
189
+ const esquerda = pontoNoArco(cx, cy, meiaBase, anguloSvg - 90);
190
+ const direita = pontoNoArco(cx, cy, meiaBase, anguloSvg + 90);
191
+ const cauda = pontoNoArco(cx, cy, meiaBase * 1.4, anguloSvg + 180);
192
+ const f = (valor) => Number(valor.toFixed(2)).toString();
193
+ return `M ${f(ponta.x)} ${f(ponta.y)} L ${f(esquerda.x)} ${f(esquerda.y)} L ${f(cauda.x)} ${f(cauda.y)} L ${f(direita.x)} ${f(direita.y)} Z`;
194
+ }
195
+ function caminhoMarcadorRadial(cx, cy, raio, espessura, anguloSvg) {
196
+ const sobra = espessura * 0.35;
197
+ const dentro = pontoNoArco(cx, cy, Math.max(0, raio - espessura / 2 - sobra), anguloSvg);
198
+ const fora = pontoNoArco(cx, cy, raio + espessura / 2 + sobra, anguloSvg);
199
+ const f = (valor) => Number(valor.toFixed(2)).toString();
200
+ return `M ${f(dentro.x)} ${f(dentro.y)} L ${f(fora.x)} ${f(fora.y)}`;
201
+ }
202
+ const ALTURA_MINIMA_BARRA = 2;
203
+ function montarPlanoCartesiano(entrada) {
204
+ const {
205
+ dados,
206
+ largura,
207
+ altura,
208
+ formatar,
209
+ horizontal = false,
210
+ empilhado = false,
211
+ percentual = false,
212
+ curva = "linear",
213
+ colorBy = "series",
214
+ thresholds = [],
215
+ tamanhoFontePx = 12,
216
+ raioBarra = 3
217
+ } = entrada;
218
+ const visiveis = dados.series.filter((s) => !s.oculta);
219
+ const temBarra = visiveis.some((s) => s.tipo === "bar");
220
+ const incluirZero = entrada.incluirZero ?? temBarra;
221
+ const [dominioMin, dominioMax] = calcularDominio(dados, {
222
+ empilhado,
223
+ percentual,
224
+ incluirZero,
225
+ min: entrada.min,
226
+ max: entrada.max
227
+ });
228
+ const bonito = dominioBonito(dominioMin, dominioMax, {
229
+ alvo: entrada.ticksAlvo ?? 5,
230
+ incluirZero
231
+ });
232
+ const rotulosValor = bonito.ticks.map(formatar);
233
+ const layout = calcularLayout({
234
+ largura,
235
+ altura,
236
+ rotulosCategoria: dados.rotulos,
237
+ rotulosValor: horizontal ? [] : rotulosValor,
238
+ horizontal,
239
+ temTitulo: entrada.temTitulo === true,
240
+ temLegenda: entrada.temLegenda === true,
241
+ ...entrada.posicaoLegenda ? { posicaoLegenda: entrada.posicaoLegenda } : {},
242
+ tamanhoFontePx
243
+ });
244
+ const { area } = layout;
245
+ const ticksUsados = layout.compacto && bonito.ticks.length > 4 ? bonito.ticks.filter((_, i) => i % 2 === 0) : bonito.ticks;
246
+ const escalaValor = horizontal ? escalaLinear([bonito.min, bonito.max], [area.x, area.x + area.largura]) : escalaLinear([bonito.min, bonito.max], [area.y + area.altura, area.y]);
247
+ const escalaCategoria = horizontal ? escalaBanda(dados.rotulos.length, [area.y, area.y + area.altura]) : escalaBanda(dados.rotulos.length, [area.x, area.x + area.largura]);
248
+ const ticks = ticksUsados.map((valor) => ({
249
+ valor,
250
+ posicao: escalaValor(valor),
251
+ rotulo: formatar(valor)
252
+ }));
253
+ const categorias = dados.rotulos.map((rotulo, i) => ({
254
+ rotulo,
255
+ linhas: layout.rotacao === 0 && !horizontal ? quebrarRotulo(rotulo, Math.max(4, Math.floor(escalaCategoria.larguraBanda / 7)), 2) : [rotulo],
256
+ centro: escalaCategoria.centro(i),
257
+ inicio: escalaCategoria(i),
258
+ largura: escalaCategoria.larguraBanda
259
+ }));
260
+ const zeroBruto = escalaValor(0);
261
+ const dentro = horizontal ? zeroBruto >= area.x && zeroBruto <= area.x + area.largura : zeroBruto >= area.y && zeroBruto <= area.y + area.altura;
262
+ const zero = bonito.min <= 0 && bonito.max >= 0 && dentro ? zeroBruto : null;
263
+ const barras = montarBarras({
264
+ dados,
265
+ visiveis,
266
+ escalaValor,
267
+ escalaCategoria,
268
+ horizontal,
269
+ empilhado,
270
+ percentual,
271
+ colorBy,
272
+ thresholds,
273
+ formatar,
274
+ mostrarValores: entrada.mostrarValores === true,
275
+ raioBarra,
276
+ base: escalaValor(clamp(0, bonito.min, bonito.max))
277
+ });
278
+ const linhas = montarLinhas({
279
+ visiveis,
280
+ escalaValor,
281
+ escalaCategoria,
282
+ horizontal,
283
+ curva,
284
+ base: escalaValor(clamp(0, bonito.min, bonito.max))
285
+ });
286
+ return {
287
+ area,
288
+ horizontal,
289
+ rotacao: layout.rotacao,
290
+ compacto: layout.compacto,
291
+ ticks,
292
+ categorias,
293
+ barras,
294
+ linhas,
295
+ zero
296
+ };
297
+ }
298
+ function clamp(valor, min, max) {
299
+ return Math.min(max, Math.max(min, valor));
300
+ }
301
+ function calcularDominio(dados, opcoes) {
302
+ return dominioDeSeries(dados, {
303
+ empilhado: opcoes.empilhado,
304
+ percentual: opcoes.percentual,
305
+ incluirZero: opcoes.incluirZero,
306
+ ...opcoes.min === void 0 ? {} : { min: opcoes.min },
307
+ ...opcoes.max === void 0 ? {} : { max: opcoes.max }
308
+ });
309
+ }
310
+ function montarBarras(e) {
311
+ const seriesBarra = e.visiveis.filter((s) => s.tipo === "bar");
312
+ if (seriesBarra.length === 0) return [];
313
+ const segmentos = e.empilhado ? empilhar(e.dados, e.percentual) : null;
314
+ const sub = e.empilhado ? null : escalaSubBanda(e.escalaCategoria, seriesBarra.length);
315
+ const barras = [];
316
+ seriesBarra.forEach((serie, ordem) => {
317
+ serie.pontos.forEach((ponto, iPonto) => {
318
+ var _a;
319
+ if (ponto.valor === null) return;
320
+ const inicioBanda = e.escalaCategoria(iPonto);
321
+ const espessura = e.empilhado ? e.escalaCategoria.larguraBanda : sub.larguraBanda;
322
+ const deslocamento = e.empilhado ? 0 : sub(ordem);
323
+ let de;
324
+ let ate;
325
+ if (segmentos) {
326
+ const seg = (_a = segmentos[iPonto]) == null ? void 0 : _a.find((s) => s.indiceSerie === serie.indice);
327
+ if (!seg) return;
328
+ de = e.escalaValor(seg.base);
329
+ ate = e.escalaValor(seg.topo);
330
+ } else {
331
+ de = e.base;
332
+ ate = e.escalaValor(ponto.valor);
333
+ }
334
+ const cor = resolverCor(ponto, serie, e.colorBy, e.thresholds);
335
+ const chave = `b-${serie.indice}-${iPonto}`;
336
+ const texto = ponto.rotuloDireto ?? e.formatar(ponto.valor);
337
+ if (e.horizontal) {
338
+ const x = Math.min(de, ate);
339
+ const comprimento = Math.max(Math.abs(ate - de), ALTURA_MINIMA_BARRA);
340
+ const y = inicioBanda + deslocamento;
341
+ barras.push({
342
+ chave,
343
+ indiceSerie: serie.indice,
344
+ indicePonto: iPonto,
345
+ d: caminhoBarra(x, y, comprimento, espessura, e.raioBarra, ate >= de ? "direita" : "esquerda"),
346
+ cor,
347
+ fantasma: ponto.fantasma,
348
+ rotulo: e.mostrarValores ? texto : "",
349
+ rotuloX: x + comprimento + 4,
350
+ rotuloY: y + espessura / 2
351
+ });
352
+ } else {
353
+ const y = Math.min(de, ate);
354
+ const comprimento = Math.max(Math.abs(ate - de), ALTURA_MINIMA_BARRA);
355
+ const x = inicioBanda + deslocamento;
356
+ barras.push({
357
+ chave,
358
+ indiceSerie: serie.indice,
359
+ indicePonto: iPonto,
360
+ d: caminhoBarra(x, y, espessura, comprimento, e.raioBarra, ate <= de ? "topo" : "base"),
361
+ cor,
362
+ fantasma: ponto.fantasma,
363
+ rotulo: e.mostrarValores ? texto : "",
364
+ rotuloX: x + espessura / 2,
365
+ rotuloY: y - 4
366
+ });
367
+ }
368
+ });
369
+ });
370
+ return barras;
371
+ }
372
+ function montarLinhas(e) {
373
+ const seriesLinha = e.visiveis.filter((s) => s.tipo === "line" || s.tipo === "area");
374
+ return seriesLinha.map((serie) => {
375
+ const pontos = serie.pontos.map((ponto, i) => {
376
+ if (ponto.valor === null) return null;
377
+ const aoLongo = e.escalaCategoria.centro(i);
378
+ const valor = e.escalaValor(ponto.valor);
379
+ return e.horizontal ? { x: valor, y: aoLongo } : { x: aoLongo, y: valor };
380
+ });
381
+ const marcadores = pontos.map((p, i) => p ? { d: caminhoMarcador(serie.marcador, p.x, p.y, 7), indicePonto: i } : null).filter((m) => m !== null);
382
+ return {
383
+ chave: `l-${serie.indice}`,
384
+ indiceSerie: serie.indice,
385
+ d: caminhoLinha(pontos, e.curva),
386
+ dArea: serie.tipo === "area" ? caminhoArea(pontos, e.base, e.curva) : "",
387
+ cor: serie.cor,
388
+ tracejada: serie.tracejada,
389
+ marcadores,
390
+ marcador: serie.marcador
391
+ };
392
+ });
393
+ }
394
+ export {
395
+ montarPlanoCartesiano,
396
+ montarPlanoGauge,
397
+ montarPlanoPizza
398
+ };
399
+ //# sourceMappingURL=index199.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index199.mjs","sources":["../src/components/chart/chart-plano.ts"],"sourcesContent":["// Plano de desenho — transforma dados + caixa em coordenadas prontas.\n//\n// Tudo que é ARITMÉTICA do gráfico mora aqui, e o `.vue` só percorre listas e\n// pinta. Ganho concreto: dá pra testar \"a barra do valor 0 encosta no eixo\",\n// \"o rótulo do tick está no y certo\", \"a linha pula o buraco\" sem montar\n// componente nem medir DOM.\n\nimport {\n caixaDoArco,\n caminhoArco,\n caminhoArea,\n caminhoBarra,\n caminhoLinha,\n caminhoMarcador,\n caminhoSetor,\n fatiasPizza,\n pontoNoArco,\n type MarcadorSerie,\n type Ponto,\n} from './chart-caminhos'\nimport { corQuasarParaToken, dominioDeSeries, empilhar, resolverCor } from './chart-dados'\nimport { escalaBanda, escalaLinear, escalaSubBanda } from './chart-escalas'\nimport {\n LARGURA_COMPACTA,\n calcularLayout,\n type AreaPlotagem,\n type RotacaoRotulo,\n} from './chart-layout'\nimport { quebrarRotulo } from './chart-rotulos'\nimport { dominioBonito } from './chart-ticks'\nimport type {\n ChartColorBy,\n ChartThreshold,\n DadosNormalizados,\n} from './acai-ui-chart-interface'\n\nexport interface TickPlano {\n valor: number\n /** Coordenada no eixo de valor (y em vertical, x em horizontal). */\n posicao: number\n rotulo: string\n}\n\nexport interface CategoriaPlano {\n rotulo: string\n /** Já quebrado em linhas — em SVG cada uma vira um `<tspan>`. */\n linhas: string[]\n centro: number\n inicio: number\n largura: number\n}\n\nexport interface BarraPlano {\n chave: string\n indiceSerie: number\n indicePonto: number\n d: string\n cor: string\n fantasma: boolean\n /** Posição do rótulo direto de valor, quando ligado. */\n rotulo: string\n rotuloX: number\n rotuloY: number\n}\n\nexport interface LinhaPlano {\n chave: string\n indiceSerie: number\n d: string\n dArea: string\n cor: string\n tracejada: boolean\n marcadores: Array<{ d: string; indicePonto: number }>\n marcador: MarcadorSerie\n}\n\nexport interface PlanoCartesiano {\n area: AreaPlotagem\n horizontal: boolean\n rotacao: RotacaoRotulo\n compacto: boolean\n ticks: TickPlano[]\n categorias: CategoriaPlano[]\n barras: BarraPlano[]\n linhas: LinhaPlano[]\n /** Coordenada da linha do zero, quando ela cai dentro da área. */\n zero: number | null\n}\n\n// ── pizza / rosca ──────────────────────────────────────────────────────────\n\nexport interface FatiaPlano {\n chave: string\n indicePonto: number\n d: string\n cor: string\n rotulo: string\n valor: number\n percentual: string\n /** Valor absoluto já formatado. Percentual sozinho esconde a grandeza. */\n valorFormatado: string\n /** Ângulos crus — o hit-test do cursor em pizza é ANGULAR, não por distância. */\n anguloInicioBruto: number\n anguloFimBruto: number\n /** Rótulo cabe DENTRO da fatia; senão vai pra fora com linha-guia. */\n dentro: boolean\n rotuloX: number\n rotuloY: number\n ancora: 'start' | 'middle' | 'end'\n /** Traço ligando a fatia ao rótulo externo. Vazio quando o rótulo é interno. */\n linhaGuia: string\n}\n\nexport interface PlanoPizza {\n cx: number\n cy: number\n raioExterno: number\n raioInterno: number\n fatias: FatiaPlano[]\n compacto: boolean\n}\n\nexport interface EntradaPizza {\n dados: DadosNormalizados\n largura: number\n altura: number\n formatar: (valor: number) => string\n /** 0 = pizza; 0..0.95 = fração do raio virando furo. */\n raioInterno?: number\n colorBy?: ChartColorBy\n thresholds?: readonly ChartThreshold[]\n tamanhoFontePx?: number\n}\n\n/** Abaixo disso o rótulo não cabe dentro da fatia e vai pra fora. */\nconst FRACAO_ROTULO_INTERNO = 0.12\n/** Espaço reservado nas laterais pros rótulos externos. */\nconst MARGEM_ROTULO = 86\n\n/**\n * Monta a pizza/rosca.\n *\n * O rótulo direto NÃO é enfeite: a medição da paleta mostrou que, entre TODOS\n * os pares (e em pizza toda fatia toca todas), só 2 a 4 cores se separam\n * dependendo do modo. Sem o rótulo na fatia, boa parte dos usuários não\n * consegue ler o gráfico — por isso ele é calculado aqui, não opcional.\n */\nexport function montarPlanoPizza(entrada: EntradaPizza): PlanoPizza {\n const {\n dados,\n largura,\n altura,\n formatar,\n raioInterno = 0,\n colorBy = 'series',\n thresholds = [],\n } = entrada\n\n const compacto = largura < LARGURA_COMPACTA\n const serie = dados.series.find((s) => !s.oculta)\n\n const cx = largura / 2\n const cy = altura / 2\n // O raio desconta a margem dos rótulos externos; sem isso o texto sai da\n // caixa e é cortado pelo container.\n const margem = compacto ? 44 : MARGEM_ROTULO\n const raioExterno = Math.max(\n 0,\n Math.min(largura / 2 - margem, altura / 2 - 16),\n )\n const ri = Math.max(0, Math.min(0.95, raioInterno)) * raioExterno\n\n if (!serie || raioExterno <= 0) {\n return { cx, cy, raioExterno: 0, raioInterno: 0, fatias: [], compacto }\n }\n\n const valores = serie.pontos.map((p) => (p.valor === null ? 0 : p.valor))\n const fatiasBase = fatiasPizza(valores, { espacoGraus: valores.length > 1 ? 1 : 0 })\n\n const fatias: FatiaPlano[] = []\n fatiasBase.forEach((fatia) => {\n if (fatia.valor <= 0) return\n const ponto = serie.pontos[fatia.indice]\n if (!ponto) return\n\n const meio = (fatia.anguloInicio + fatia.anguloFim) / 2\n const dentro = fatia.fracao >= FRACAO_ROTULO_INTERNO && !compacto\n const percentual = `${(fatia.fracao * 100).toFixed(fatia.fracao < 0.1 ? 1 : 0).replace('.', ',')}%`\n\n let rotuloX: number\n let rotuloY: number\n let ancora: FatiaPlano['ancora'] = 'middle'\n let linhaGuia = ''\n\n if (dentro) {\n const raioTexto = ri > 0 ? (raioExterno + ri) / 2 : raioExterno * 0.62\n const p = pontoNoArco(cx, cy, raioTexto, meio)\n rotuloX = p.x\n rotuloY = p.y\n } else {\n const aDireita = Math.cos((meio * Math.PI) / 180) >= 0\n const dobra = pontoNoArco(cx, cy, raioExterno + 10, meio)\n const fim = { x: aDireita ? dobra.x + 14 : dobra.x - 14, y: dobra.y }\n const inicio = pontoNoArco(cx, cy, raioExterno, meio)\n linhaGuia = `M ${inicio.x.toFixed(2)} ${inicio.y.toFixed(2)} L ${dobra.x.toFixed(2)} ${dobra.y.toFixed(2)} L ${fim.x.toFixed(2)} ${fim.y.toFixed(2)}`\n rotuloX = aDireita ? fim.x + 4 : fim.x - 4\n rotuloY = fim.y\n ancora = aDireita ? 'start' : 'end'\n }\n\n fatias.push({\n chave: `f-${fatia.indice}`,\n indicePonto: fatia.indice,\n d: caminhoSetor(cx, cy, raioExterno, ri, fatia.anguloInicio, fatia.anguloFim),\n cor: resolverCor(ponto, serie, colorBy, thresholds),\n rotulo: ponto.rotulo,\n valor: fatia.valor,\n percentual,\n valorFormatado: formatar(fatia.valor),\n anguloInicioBruto: fatia.anguloInicio,\n anguloFimBruto: fatia.anguloFim,\n dentro,\n rotuloX,\n rotuloY,\n ancora,\n linhaGuia,\n })\n })\n\n return { cx, cy, raioExterno, raioInterno: ri, fatias, compacto }\n}\n\n// ── medidor (gauge) ────────────────────────────────────────────────────────\n\nexport interface FaixaGaugePlano {\n chave: string\n d: string\n cor: string\n}\n\nexport interface PlanoGauge {\n cx: number\n cy: number\n raio: number\n espessura: number\n /** Arco de fundo — a escala inteira. */\n dTrilho: string\n /** Arco preenchido até o valor. Vazio quando não há valor. */\n dProgresso: string\n /** Trilho fatiado pelas faixas de `thresholds` (só com `bands`). */\n faixas: FaixaGaugePlano[]\n /** Agulha + eixo. Vazios quando `pointer` está desligado. */\n dPonteiro: string\n dEixoPonteiro: string\n /**\n * Traço radial cruzando o arco na posição do valor. Só com `bands` e sem\n * agulha: ali o progresso é fino e da cor da faixa, e sobre um trilho já\n * colorido o olho não acha onde ele termina.\n */\n dMarcadorValor: string\n cor: string\n valor: number | null\n valorFormatado: string\n /** Posição do valor no domínio, 0..1 — já com clamp. */\n fracao: number\n /** Rótulos das pontas da escala. */\n minFormatado: string\n maxFormatado: string\n minX: number\n maxX: number\n rotulosY: number\n /**\n * Se vale desenhar os rótulos das pontas. Em volta completa as duas pontas\n * caem no MESMO ponto: os dois rótulos se empilham um sobre o outro e ainda por\n * cima do arco.\n */\n mostrarEscala: boolean\n /** Âncora do número central (linha de base) e da legenda logo abaixo. */\n textoX: number\n textoY: number\n legendaY: number\n legenda: string\n compacto: boolean\n}\n\nexport interface EntradaGauge {\n dados: DadosNormalizados\n largura: number\n altura: number\n formatar: (valor: number) => string\n min?: number\n max?: number\n anguloInicio?: number\n anguloFim?: number\n espessura?: number\n ponteiro?: boolean\n bandas?: boolean\n legenda?: string\n colorBy?: ChartColorBy\n thresholds?: readonly ChartThreshold[]\n}\n\n/**\n * Converte o ângulo polar do consumidor (0° à direita, crescendo no\n * ANTI-horário, como no echarts) pro sistema do SVG, onde o y cresce pra baixo\n * e o `pontoNoArco` cresce no horário. É só a inversão de sinal, mas explicitar\n * evita a confusão que faria o medidor nascer de cabeça pra baixo.\n */\nfunction paraAnguloSvg(anguloPolar: number): number {\n return -anguloPolar\n}\n\n/** Respiro pros rótulos de mínimo/máximo nas pontas do arco. */\nconst FOLGA_GAUGE = 10\n\n/**\n * Altura reservada pro número quando ele sai do centro.\n *\n * Casa com o `font-size: 1.75rem` do `chart-gauge.vue` (28px) mais um fio de\n * folga. Se aquele tamanho mudar, este número muda junto — é a duplicata\n * inevitável entre o SCSS e a aritmética do layout, igual à dos breakpoints.\n */\nconst ALTURA_VALOR_GAUGE = 30\n\n/** Altura da legenda miúda sob o número. */\nconst ALTURA_LEGENDA_GAUGE = 16\n\n/**\n * Monta o medidor.\n *\n * O número vai DENTRO do SVG, e não num overlay HTML por cima: overlay não entra\n * no export de imagem, e o medidor sem o número exportado viraria um arco\n * colorido sem informação nenhuma no PDF.\n */\nexport function montarPlanoGauge(entrada: EntradaGauge): PlanoGauge {\n const {\n dados,\n largura,\n altura,\n formatar,\n min = 0,\n max = 100,\n anguloInicio = 180,\n anguloFim = 0,\n espessura = 14,\n ponteiro = false,\n bandas = false,\n legenda = '',\n colorBy = 'series',\n thresholds = [],\n } = entrada\n\n const compacto = largura < LARGURA_COMPACTA\n\n // Sem par ordenado não há escala: min == max dividiria por zero e o arco\n // ficaria preso em 0% (ou em NaN, que não desenha e não avisa).\n const baixo = Math.min(min, max)\n const alto = Math.max(min, max)\n const amplitude = alto - baixo\n\n const serie = dados.series.find((s) => !s.oculta)\n const ponto = serie?.pontos.find((p) => p.valor !== null) ?? serie?.pontos[0]\n const valor = ponto?.valor ?? null\n\n const fracao =\n valor === null || amplitude <= 0 ? 0 : clamp((valor - baixo) / amplitude, 0, 1)\n\n // Varredura no sentido do desenho. Ângulos iguais (ou invertidos) viram uma\n // volta completa em vez de um arco de zero grau que não apareceria.\n const svgInicio = paraAnguloSvg(anguloInicio)\n const svgFimBruto = paraAnguloSvg(anguloFim)\n const svgFim = svgFimBruto > svgInicio ? svgFimBruto : svgInicio + 360\n\n const caixa = caixaDoArco(svgInicio, svgFim)\n const larguraCaixa = Math.max(0.0001, caixa.maxX - caixa.minX)\n const alturaCaixa = Math.max(0.0001, caixa.maxY - caixa.minY)\n\n // A borda do traço avança meia espessura pra fora do raio, e o rótulo da ponta\n // pede mais um pouco — descontar isso é o que impede o arco de ser cortado.\n const margem = espessura / 2 + FOLGA_GAUGE + (compacto ? 8 : 14)\n\n // 🔴 Com agulha o número NÃO pode ficar no centro: é exatamente por ali que a\n // agulha e o eixo passam, e o traço corta o algarismo. Então ele desce pra\n // baixo do arco — e o espaço tem que ser reservado ANTES de calcular o raio,\n // senão o arco cresce até a borda e o número fica sem lugar (ou cortado no\n // export, onde o `overflow: visible` do SVG não vale).\n const reservaTexto = ponteiro\n ? ALTURA_VALOR_GAUGE + (legenda ? ALTURA_LEGENDA_GAUGE : 0)\n : 0\n\n const dispX = Math.max(0, largura - margem * 2)\n const dispY = Math.max(0, altura - margem * 2 - reservaTexto)\n const raio = Math.max(0, Math.min(dispX / larguraCaixa, dispY / alturaCaixa))\n\n // Centraliza a CAIXA DO ARCO na área, não o círculo: num semicírculo os dois\n // não coincidem, e usar o círculo deixaria o desenho colado no topo.\n const cx = margem + (dispX - larguraCaixa * raio) / 2 - caixa.minX * raio\n const cy = margem + (dispY - alturaCaixa * raio) / 2 - caixa.minY * raio\n\n const anguloDoValor = svgInicio + (svgFim - svgInicio) * fracao\n\n const faixas: FaixaGaugePlano[] = []\n if (bandas && thresholds.length > 0 && amplitude > 0) {\n const ordenadas = [...thresholds].sort((a, b) => a.upTo - b.upTo)\n let cursorFracao = 0\n ordenadas.forEach((faixa, i) => {\n const ate = clamp((faixa.upTo - baixo) / amplitude, 0, 1)\n if (ate <= cursorFracao) return\n faixas.push({\n chave: `fx-${i}`,\n d: caminhoArco(\n cx,\n cy,\n raio,\n svgInicio + (svgFim - svgInicio) * cursorFracao,\n svgInicio + (svgFim - svgInicio) * ate,\n ),\n cor: corQuasarParaToken(faixa.color),\n })\n cursorFracao = ate\n })\n }\n\n const dPonteiro = ponteiro ? caminhoPonteiro(cx, cy, raio, espessura, anguloDoValor) : ''\n\n /** Y do ponto mais baixo que o arco alcança — onde o número assenta com agulha. */\n const baseDoDesenho = cy + caixa.maxY * raio + espessura / 2\n\n const marcarValor = faixas.length > 0 && !ponteiro && valor !== null\n const dMarcadorValor = marcarValor\n ? caminhoMarcadorRadial(cx, cy, raio, espessura, anguloDoValor)\n : ''\n\n return {\n cx,\n cy,\n raio,\n espessura,\n dTrilho: caminhoArco(cx, cy, raio, svgInicio, svgFim),\n dProgresso: valor === null ? '' : caminhoArco(cx, cy, raio, svgInicio, anguloDoValor),\n faixas,\n dPonteiro,\n dEixoPonteiro: ponteiro ? caminhoMarcador('circle', cx, cy, espessura * 0.9) : '',\n dMarcadorValor,\n cor: ponto && serie ? resolverCor(ponto, serie, colorBy, thresholds) : 'var(--acai-chart-1)',\n valor,\n valorFormatado: valor === null ? '—' : formatar(valor),\n fracao,\n minFormatado: formatar(baixo),\n maxFormatado: formatar(alto),\n minX: pontoNoArco(cx, cy, raio, svgInicio).x,\n maxX: pontoNoArco(cx, cy, raio, svgFim).x,\n rotulosY: pontoNoArco(cx, cy, raio, svgInicio).y + espessura / 2 + 14,\n mostrarEscala: !compacto && svgFim - svgInicio < 350,\n textoX: cx,\n // Sem agulha: linha de base um pouco ACIMA do centro. Num semicírculo o `cy`\n // é a borda de baixo da caixa, e assentar o número exatamente nela o\n // empurraria pra fora no export (o canvas corta o que o `overflow: visible`\n // do SVG deixa passar na tela).\n // Com agulha: abaixo do ponto mais baixo do desenho, no espaço reservado.\n textoY: ponteiro ? baseDoDesenho + ALTURA_VALOR_GAUGE : cy - 6,\n legendaY: ponteiro\n ? baseDoDesenho + ALTURA_VALOR_GAUGE + ALTURA_LEGENDA_GAUGE\n : cy + 12,\n legenda,\n compacto,\n }\n}\n\n/**\n * Agulha em forma de gota: larga no eixo, fina na ponta. Um retângulo fino ficaria\n * ambíguo sobre qual extremidade aponta o valor.\n */\nfunction caminhoPonteiro(\n cx: number,\n cy: number,\n raio: number,\n espessura: number,\n anguloSvg: number,\n): string {\n const comprimento = Math.max(0, raio - espessura)\n if (comprimento <= 0) return ''\n const meiaBase = Math.max(2, espessura * 0.28)\n\n const ponta = pontoNoArco(cx, cy, comprimento, anguloSvg)\n const esquerda = pontoNoArco(cx, cy, meiaBase, anguloSvg - 90)\n const direita = pontoNoArco(cx, cy, meiaBase, anguloSvg + 90)\n const cauda = pontoNoArco(cx, cy, meiaBase * 1.4, anguloSvg + 180)\n\n const f = (valor: number): string => Number(valor.toFixed(2)).toString()\n return (\n `M ${f(ponta.x)} ${f(ponta.y)} L ${f(esquerda.x)} ${f(esquerda.y)}` +\n ` L ${f(cauda.x)} ${f(cauda.y)} L ${f(direita.x)} ${f(direita.y)} Z`\n )\n}\n\n/** Traço radial atravessando a espessura do arco, com uma sobra de cada lado. */\nfunction caminhoMarcadorRadial(\n cx: number,\n cy: number,\n raio: number,\n espessura: number,\n anguloSvg: number,\n): string {\n const sobra = espessura * 0.35\n const dentro = pontoNoArco(cx, cy, Math.max(0, raio - espessura / 2 - sobra), anguloSvg)\n const fora = pontoNoArco(cx, cy, raio + espessura / 2 + sobra, anguloSvg)\n const f = (valor: number): string => Number(valor.toFixed(2)).toString()\n return `M ${f(dentro.x)} ${f(dentro.y)} L ${f(fora.x)} ${f(fora.y)}`\n}\n\nexport interface EntradaPlano {\n dados: DadosNormalizados\n largura: number\n altura: number\n formatar: (valor: number) => string\n horizontal?: boolean\n empilhado?: boolean\n percentual?: boolean\n curva?: 'linear' | 'smooth'\n incluirZero?: boolean\n min?: number | undefined\n max?: number | undefined\n ticksAlvo?: number\n colorBy?: ChartColorBy\n thresholds?: readonly ChartThreshold[]\n mostrarValores?: boolean\n temTitulo?: boolean\n temLegenda?: boolean\n posicaoLegenda?: 'bottom' | 'right'\n tamanhoFontePx?: number\n /** Raio da ponta da barra. 0 desliga. */\n raioBarra?: number\n}\n\n/** Barra de valor exatamente 0 vira um traço: some, e \"zero\" viraria \"sem dado\". */\nconst ALTURA_MINIMA_BARRA = 2\n\nexport function montarPlanoCartesiano(entrada: EntradaPlano): PlanoCartesiano {\n const {\n dados,\n largura,\n altura,\n formatar,\n horizontal = false,\n empilhado = false,\n percentual = false,\n curva = 'linear',\n colorBy = 'series',\n thresholds = [],\n tamanhoFontePx = 12,\n raioBarra = 3,\n } = entrada\n\n const visiveis = dados.series.filter((s) => !s.oculta)\n const temBarra = visiveis.some((s) => s.tipo === 'bar')\n\n // Domínio: barra inclui zero por padrão (a área codifica grandeza, cortar a\n // base infla a diferença); linha não (codifica variação).\n const incluirZero = entrada.incluirZero ?? temBarra\n\n const [dominioMin, dominioMax] = calcularDominio(dados, {\n empilhado,\n percentual,\n incluirZero,\n min: entrada.min,\n max: entrada.max,\n })\n\n const bonito = dominioBonito(dominioMin, dominioMax, {\n alvo: entrada.ticksAlvo ?? 5,\n incluirZero,\n })\n\n const rotulosValor = bonito.ticks.map(formatar)\n\n const layout = calcularLayout({\n largura,\n altura,\n rotulosCategoria: dados.rotulos,\n rotulosValor: horizontal ? [] : rotulosValor,\n horizontal,\n temTitulo: entrada.temTitulo === true,\n temLegenda: entrada.temLegenda === true,\n ...(entrada.posicaoLegenda ? { posicaoLegenda: entrada.posicaoLegenda } : {}),\n tamanhoFontePx,\n })\n\n const { area } = layout\n // Em modo compacto o eixo ganha menos ticks — 5 rótulos num celular viram\n // um borrão.\n const ticksUsados = layout.compacto && bonito.ticks.length > 4\n ? bonito.ticks.filter((_, i) => i % 2 === 0)\n : bonito.ticks\n\n // Eixo de valor: em vertical o y CRESCE pra baixo, então a faixa inverte.\n const escalaValor = horizontal\n ? escalaLinear([bonito.min, bonito.max], [area.x, area.x + area.largura])\n : escalaLinear([bonito.min, bonito.max], [area.y + area.altura, area.y])\n\n const escalaCategoria = horizontal\n ? escalaBanda(dados.rotulos.length, [area.y, area.y + area.altura])\n : escalaBanda(dados.rotulos.length, [area.x, area.x + area.largura])\n\n const ticks: TickPlano[] = ticksUsados.map((valor) => ({\n valor,\n posicao: escalaValor(valor),\n rotulo: formatar(valor),\n }))\n\n const categorias: CategoriaPlano[] = dados.rotulos.map((rotulo, i) => ({\n rotulo,\n linhas:\n layout.rotacao === 0 && !horizontal\n ? quebrarRotulo(rotulo, Math.max(4, Math.floor(escalaCategoria.larguraBanda / 7)), 2)\n : [rotulo],\n centro: escalaCategoria.centro(i),\n inicio: escalaCategoria(i),\n largura: escalaCategoria.larguraBanda,\n }))\n\n const zeroBruto = escalaValor(0)\n const dentro = horizontal\n ? zeroBruto >= area.x && zeroBruto <= area.x + area.largura\n : zeroBruto >= area.y && zeroBruto <= area.y + area.altura\n const zero = bonito.min <= 0 && bonito.max >= 0 && dentro ? zeroBruto : null\n\n const barras = montarBarras({\n dados,\n visiveis,\n escalaValor,\n escalaCategoria,\n horizontal,\n empilhado,\n percentual,\n colorBy,\n thresholds,\n formatar,\n mostrarValores: entrada.mostrarValores === true,\n raioBarra,\n base: escalaValor(clamp(0, bonito.min, bonito.max)),\n })\n\n const linhas = montarLinhas({\n visiveis,\n escalaValor,\n escalaCategoria,\n horizontal,\n curva,\n base: escalaValor(clamp(0, bonito.min, bonito.max)),\n })\n\n return {\n area,\n horizontal,\n rotacao: layout.rotacao,\n compacto: layout.compacto,\n ticks,\n categorias,\n barras,\n linhas,\n zero,\n }\n}\n\nfunction clamp(valor: number, min: number, max: number): number {\n return Math.min(max, Math.max(min, valor))\n}\n\n/**\n * Repassa pro `dominioDeSeries`, montando o objeto sem chaves `undefined` —\n * `exactOptionalPropertyTypes` recusa `{ min: undefined }` numa prop opcional.\n */\nfunction calcularDominio(\n dados: DadosNormalizados,\n opcoes: {\n empilhado: boolean\n percentual: boolean\n incluirZero: boolean\n min: number | undefined\n max: number | undefined\n },\n): [number, number] {\n return dominioDeSeries(dados, {\n empilhado: opcoes.empilhado,\n percentual: opcoes.percentual,\n incluirZero: opcoes.incluirZero,\n ...(opcoes.min === undefined ? {} : { min: opcoes.min }),\n ...(opcoes.max === undefined ? {} : { max: opcoes.max }),\n })\n}\n\ninterface EntradaBarras {\n dados: DadosNormalizados\n visiveis: DadosNormalizados['series']\n escalaValor: ReturnType<typeof escalaLinear>\n escalaCategoria: ReturnType<typeof escalaBanda>\n horizontal: boolean\n empilhado: boolean\n percentual: boolean\n colorBy: ChartColorBy\n thresholds: readonly ChartThreshold[]\n formatar: (valor: number) => string\n mostrarValores: boolean\n raioBarra: number\n base: number\n}\n\nfunction montarBarras(e: EntradaBarras): BarraPlano[] {\n const seriesBarra = e.visiveis.filter((s) => s.tipo === 'bar')\n if (seriesBarra.length === 0) return []\n\n const segmentos = e.empilhado ? empilhar(e.dados, e.percentual) : null\n const sub = e.empilhado\n ? null\n : escalaSubBanda(e.escalaCategoria, seriesBarra.length)\n\n const barras: BarraPlano[] = []\n\n seriesBarra.forEach((serie, ordem) => {\n serie.pontos.forEach((ponto, iPonto) => {\n if (ponto.valor === null) return\n\n const inicioBanda = e.escalaCategoria(iPonto)\n const espessura = e.empilhado ? e.escalaCategoria.larguraBanda : (sub as NonNullable<typeof sub>).larguraBanda\n const deslocamento = e.empilhado ? 0 : (sub as NonNullable<typeof sub>)(ordem)\n\n let de: number\n let ate: number\n if (segmentos) {\n const seg = segmentos[iPonto]?.find((s) => s.indiceSerie === serie.indice)\n if (!seg) return\n de = e.escalaValor(seg.base)\n ate = e.escalaValor(seg.topo)\n } else {\n de = e.base\n ate = e.escalaValor(ponto.valor)\n }\n\n const cor = resolverCor(ponto, serie, e.colorBy, e.thresholds)\n const chave = `b-${serie.indice}-${iPonto}`\n const texto = ponto.rotuloDireto ?? e.formatar(ponto.valor)\n\n if (e.horizontal) {\n const x = Math.min(de, ate)\n const comprimento = Math.max(Math.abs(ate - de), ALTURA_MINIMA_BARRA)\n const y = inicioBanda + deslocamento\n barras.push({\n chave,\n indiceSerie: serie.indice,\n indicePonto: iPonto,\n d: caminhoBarra(x, y, comprimento, espessura, e.raioBarra, ate >= de ? 'direita' : 'esquerda'),\n cor,\n fantasma: ponto.fantasma,\n rotulo: e.mostrarValores ? texto : '',\n rotuloX: x + comprimento + 4,\n rotuloY: y + espessura / 2,\n })\n } else {\n const y = Math.min(de, ate)\n const comprimento = Math.max(Math.abs(ate - de), ALTURA_MINIMA_BARRA)\n const x = inicioBanda + deslocamento\n barras.push({\n chave,\n indiceSerie: serie.indice,\n indicePonto: iPonto,\n d: caminhoBarra(x, y, espessura, comprimento, e.raioBarra, ate <= de ? 'topo' : 'base'),\n cor,\n fantasma: ponto.fantasma,\n rotulo: e.mostrarValores ? texto : '',\n rotuloX: x + espessura / 2,\n rotuloY: y - 4,\n })\n }\n })\n })\n\n return barras\n}\n\ninterface EntradaLinhas {\n visiveis: DadosNormalizados['series']\n escalaValor: ReturnType<typeof escalaLinear>\n escalaCategoria: ReturnType<typeof escalaBanda>\n horizontal: boolean\n curva: 'linear' | 'smooth'\n base: number\n}\n\nfunction montarLinhas(e: EntradaLinhas): LinhaPlano[] {\n const seriesLinha = e.visiveis.filter((s) => s.tipo === 'line' || s.tipo === 'area')\n\n return seriesLinha.map((serie) => {\n const pontos: Array<Ponto | null> = serie.pontos.map((ponto, i) => {\n if (ponto.valor === null) return null\n const aoLongo = e.escalaCategoria.centro(i)\n const valor = e.escalaValor(ponto.valor)\n // Linha sempre no CENTRO da banda: alinhada com o rótulo do eixo e com o\n // grupo de barras, quando os dois convivem no mesmo gráfico.\n return e.horizontal ? { x: valor, y: aoLongo } : { x: aoLongo, y: valor }\n })\n\n const marcadores = pontos\n .map((p, i) => (p ? { d: caminhoMarcador(serie.marcador, p.x, p.y, 7), indicePonto: i } : null))\n .filter((m): m is { d: string; indicePonto: number } => m !== null)\n\n return {\n chave: `l-${serie.indice}`,\n indiceSerie: serie.indice,\n d: caminhoLinha(pontos, e.curva),\n dArea: serie.tipo === 'area' ? caminhoArea(pontos, e.base, e.curva) : '',\n cor: serie.cor,\n tracejada: serie.tracejada,\n marcadores,\n marcador: serie.marcador,\n }\n })\n}\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,83 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const LARGURA_COMPACTA = 480;
4
+ const ESTREITOS = new Set(`iljtIf.,:;'"|!()[]{}-`);
5
+ const LARGOS = new Set("mwMW@%");
6
+ function medirTextoAprox(texto, tamanhoFontePx) {
7
+ if (!texto || tamanhoFontePx <= 0) return 0;
8
+ let avanco = 0;
9
+ for (const c of texto) {
10
+ if (c === " ") avanco += 0.26;
11
+ else if (ESTREITOS.has(c)) avanco += 0.3;
12
+ else if (LARGOS.has(c)) avanco += 0.87;
13
+ else if (c >= "A" && c <= "Z") avanco += 0.64;
14
+ else if (c >= "0" && c <= "9") avanco += 0.56;
15
+ else avanco += 0.52;
16
+ }
17
+ return avanco * tamanhoFontePx;
18
+ }
19
+ function maiorLargura(rotulos, tamanhoFontePx) {
20
+ return rotulos.reduce((max, r) => Math.max(max, medirTextoAprox(r, tamanhoFontePx)), 0);
21
+ }
22
+ function decidirRotacao(rotulos, larguraDisponivel, tamanhoFontePx) {
23
+ if (rotulos.length === 0 || larguraDisponivel <= 0) return 0;
24
+ const porCategoria = larguraDisponivel / rotulos.length;
25
+ const necessaria = maiorLargura(rotulos, tamanhoFontePx) + 6;
26
+ if (necessaria <= porCategoria) return 0;
27
+ if (necessaria * Math.SQRT1_2 <= porCategoria * 1.8) return -45;
28
+ return -90;
29
+ }
30
+ function alturaRotulos(rotulos, rotacao, tamanhoFontePx, maxLinhas = 2) {
31
+ if (rotulos.length === 0) return 0;
32
+ const alturaLinha = tamanhoFontePx * 1.25;
33
+ if (rotacao === 0) return alturaLinha * Math.max(1, Math.min(maxLinhas, 2));
34
+ const largura = maiorLargura(rotulos, tamanhoFontePx);
35
+ if (rotacao === -45) return largura * Math.SQRT1_2 + alturaLinha * 0.5;
36
+ return largura + alturaLinha * 0.25;
37
+ }
38
+ const FOLGA = 8;
39
+ function calcularLayout(entrada) {
40
+ const fonte = entrada.tamanhoFontePx ?? 12;
41
+ const largura = Math.max(0, entrada.largura);
42
+ const altura = Math.max(0, entrada.altura);
43
+ const compacto = largura < LARGURA_COMPACTA;
44
+ const alturaLinha = fonte * 1.25;
45
+ const topo = FOLGA + (entrada.temTitulo ? alturaLinha * 1.6 : 0);
46
+ const legendaDireita = entrada.temLegenda === true && entrada.posicaoLegenda === "right" && !compacto;
47
+ const legendaAbaixo = entrada.temLegenda === true && !legendaDireita;
48
+ const direita = FOLGA + (legendaDireita ? Math.min(largura * 0.28, 160) : 0);
49
+ let esquerda;
50
+ let base;
51
+ let rotacao = 0;
52
+ if (entrada.horizontal) {
53
+ esquerda = FOLGA + Math.min(maiorLargura(entrada.rotulosCategoria, fonte) + 10, largura * 0.4);
54
+ base = FOLGA + alturaLinha;
55
+ } else {
56
+ esquerda = FOLGA + maiorLargura(entrada.rotulosValor, fonte) + 10;
57
+ const larguraEixo = Math.max(0, largura - esquerda - direita);
58
+ rotacao = decidirRotacao(entrada.rotulosCategoria, larguraEixo, fonte);
59
+ base = FOLGA + alturaRotulos(entrada.rotulosCategoria, rotacao, fonte);
60
+ }
61
+ if (legendaAbaixo) base += alturaLinha * 1.8;
62
+ const margens = { topo, direita, base, esquerda };
63
+ const area = {
64
+ x: esquerda,
65
+ y: topo,
66
+ largura: Math.max(0, largura - esquerda - direita),
67
+ altura: Math.max(0, altura - topo - base)
68
+ };
69
+ return { margens, area, rotacao, compacto };
70
+ }
71
+ function alturaAutomatica(quantidadeBarras, opcoes = {}) {
72
+ const n = Math.max(0, Math.floor(quantidadeBarras));
73
+ const alturaBarra = opcoes.alturaBarra ?? 36;
74
+ const margens = opcoes.margens ?? 40;
75
+ return n * alturaBarra + margens;
76
+ }
77
+ exports.LARGURA_COMPACTA = LARGURA_COMPACTA;
78
+ exports.alturaAutomatica = alturaAutomatica;
79
+ exports.alturaRotulos = alturaRotulos;
80
+ exports.calcularLayout = calcularLayout;
81
+ exports.decidirRotacao = decidirRotacao;
82
+ exports.medirTextoAprox = medirTextoAprox;
83
+ //# sourceMappingURL=index200.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index200.cjs","sources":["../src/components/chart/chart-layout.ts"],"sourcesContent":["// Layout — quanto espaço o chrome come e o que sobra pra plotagem.\n//\n// O ponto delicado aqui é medir texto SEM DOM. `canvas.measureText` seria exato,\n// mas exige `document` (morre em SSR), custa um reflow por medição e tornaria\n// esta camada intestável sem navegador. A saída é uma tabela de avanço médio por\n// classe de caractere: erro de ~8%, compensado por folga nas margens. Errar 8%\n// numa margem é invisível; não conseguir testar o layout, não.\n//\n// A responsividade da lib mora aqui: ela é por REGRA (menos ticks, rótulo\n// rotacionado, legenda embaixo), não por escala. Esticar o `viewBox` escalaria\n// o TEXTO junto — a mesma folha em 380px e 1400px teria rótulo de 8px e de\n// 20px, quebrando o eMAG 4.1 e ignorando a preferência de tamanho de fonte.\n\nexport interface Margens {\n topo: number\n direita: number\n base: number\n esquerda: number\n}\n\nexport interface AreaPlotagem {\n x: number\n y: number\n largura: number\n altura: number\n}\n\nexport type RotacaoRotulo = 0 | -45 | -90\n\n/** Abaixo disto o layout entra em modo compacto. Casa com o `S`/`XS` do estudo. */\nexport const LARGURA_COMPACTA = 480\n\n/** Avanço médio por caractere, em múltiplos do tamanho da fonte (stack sans do sistema). */\nconst ESTREITOS = new Set(\"iljtIf.,:;'\\\"|!()[]{}-\")\nconst LARGOS = new Set('mwMW@%')\n\n/**\n * Largura aproximada de um texto, sem tocar no DOM.\n * Alvo de precisão: ±8%. Quem consome soma folga em cima.\n */\nexport function medirTextoAprox(texto: string, tamanhoFontePx: number): number {\n if (!texto || tamanhoFontePx <= 0) return 0\n\n let avanco = 0\n for (const c of texto) {\n if (c === ' ') avanco += 0.26\n else if (ESTREITOS.has(c)) avanco += 0.3\n else if (LARGOS.has(c)) avanco += 0.87\n else if (c >= 'A' && c <= 'Z') avanco += 0.64\n else if (c >= '0' && c <= '9') avanco += 0.56\n else avanco += 0.52\n }\n return avanco * tamanhoFontePx\n}\n\nfunction maiorLargura(rotulos: readonly string[], tamanhoFontePx: number): number {\n return rotulos.reduce((max, r) => Math.max(max, medirTextoAprox(r, tamanhoFontePx)), 0)\n}\n\n/**\n * Rotação necessária pros rótulos do eixo de categoria não se sobreporem.\n *\n * Escalonado de propósito: horizontal é o mais legível, então só sai de 0 quando\n * realmente não cabe. -90 é o último recurso (leitura vertical cansa).\n */\nexport function decidirRotacao(\n rotulos: readonly string[],\n larguraDisponivel: number,\n tamanhoFontePx: number,\n): RotacaoRotulo {\n if (rotulos.length === 0 || larguraDisponivel <= 0) return 0\n\n const porCategoria = larguraDisponivel / rotulos.length\n // 6px de respiro entre rótulos vizinhos: encostados, viram um borrão só.\n const necessaria = maiorLargura(rotulos, tamanhoFontePx) + 6\n\n if (necessaria <= porCategoria) return 0\n // A 45° a projeção horizontal cai por ~cos(45); ainda dá pra ler correndo o olho.\n if (necessaria * Math.SQRT1_2 <= porCategoria * 1.8) return -45\n return -90\n}\n\n/** Altura que a faixa de rótulos vai ocupar abaixo do eixo. */\nexport function alturaRotulos(\n rotulos: readonly string[],\n rotacao: RotacaoRotulo,\n tamanhoFontePx: number,\n maxLinhas = 2,\n): number {\n if (rotulos.length === 0) return 0\n const alturaLinha = tamanhoFontePx * 1.25\n\n if (rotacao === 0) return alturaLinha * Math.max(1, Math.min(maxLinhas, 2))\n const largura = maiorLargura(rotulos, tamanhoFontePx)\n if (rotacao === -45) return largura * Math.SQRT1_2 + alturaLinha * 0.5\n return largura + alturaLinha * 0.25\n}\n\nexport interface EntradaLayout {\n largura: number\n altura: number\n rotulosCategoria: readonly string[]\n /** Rótulos JÁ formatados do eixo de valor — a margem esquerda depende do maior. */\n rotulosValor: readonly string[]\n horizontal?: boolean\n temTitulo?: boolean\n temLegenda?: boolean\n posicaoLegenda?: 'bottom' | 'right'\n tamanhoFontePx?: number\n}\n\nexport interface ResultadoLayout {\n margens: Margens\n area: AreaPlotagem\n rotacao: RotacaoRotulo\n /** Abaixo de LARGURA_COMPACTA: menos ticks, sem rótulo de valor, legenda embaixo. */\n compacto: boolean\n}\n\n/** Respiro mínimo pra o traço da linha e o rótulo de valor não serem cortados. */\nconst FOLGA = 8\n\nexport function calcularLayout(entrada: EntradaLayout): ResultadoLayout {\n const fonte = entrada.tamanhoFontePx ?? 12\n const largura = Math.max(0, entrada.largura)\n const altura = Math.max(0, entrada.altura)\n const compacto = largura < LARGURA_COMPACTA\n const alturaLinha = fonte * 1.25\n\n const topo = FOLGA + (entrada.temTitulo ? alturaLinha * 1.6 : 0)\n\n // Legenda à direita em tela estreita rouba metade da plotagem: força embaixo.\n const legendaDireita =\n entrada.temLegenda === true && entrada.posicaoLegenda === 'right' && !compacto\n const legendaAbaixo = entrada.temLegenda === true && !legendaDireita\n\n const direita = FOLGA + (legendaDireita ? Math.min(largura * 0.28, 160) : 0)\n\n let esquerda: number\n let base: number\n let rotacao: RotacaoRotulo = 0\n\n if (entrada.horizontal) {\n // Barras horizontais invertem os papéis: a categoria vira eixo Y, e o nome\n // do município é MUITO mais largo que um número — daí o teto generoso.\n esquerda = FOLGA + Math.min(maiorLargura(entrada.rotulosCategoria, fonte) + 10, largura * 0.4)\n base = FOLGA + alturaLinha\n } else {\n esquerda = FOLGA + maiorLargura(entrada.rotulosValor, fonte) + 10\n const larguraEixo = Math.max(0, largura - esquerda - direita)\n rotacao = decidirRotacao(entrada.rotulosCategoria, larguraEixo, fonte)\n base = FOLGA + alturaRotulos(entrada.rotulosCategoria, rotacao, fonte)\n }\n\n if (legendaAbaixo) base += alturaLinha * 1.8\n\n const margens: Margens = { topo, direita, base, esquerda }\n\n // Rótulo longo demais poderia comer a área inteira e produzir largura\n // negativa — o SVG aceita e desenha nada, sem erro.\n const area: AreaPlotagem = {\n x: esquerda,\n y: topo,\n largura: Math.max(0, largura - esquerda - direita),\n altura: Math.max(0, altura - topo - base),\n }\n\n return { margens, area, rotacao, compacto }\n}\n\n/**\n * Altura total pra barras horizontais, onde a altura é FUNÇÃO da quantidade de\n * barras (não o contrário): 40 municípios numa caixa de 320px viram traços de\n * 4px. Espelha o `nItens * 36 + 40` que o est-web calculava na mão em cada tela.\n */\nexport function alturaAutomatica(\n quantidadeBarras: number,\n opcoes: { alturaBarra?: number; margens?: number } = {},\n): number {\n const n = Math.max(0, Math.floor(quantidadeBarras))\n const alturaBarra = opcoes.alturaBarra ?? 36\n const margens = opcoes.margens ?? 40\n return n * alturaBarra + margens\n}\n"],"names":[],"mappings":"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"}