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,241 @@
1
+ const CASAS = 2;
2
+ const n = (valor) => Number(valor.toFixed(CASAS)).toString();
3
+ function segmentar(pontos) {
4
+ const segmentos = [];
5
+ let atual = [];
6
+ for (const ponto of pontos) {
7
+ if (ponto && Number.isFinite(ponto.x) && Number.isFinite(ponto.y)) {
8
+ atual.push(ponto);
9
+ } else if (atual.length > 0) {
10
+ segmentos.push(atual);
11
+ atual = [];
12
+ }
13
+ }
14
+ if (atual.length > 0) segmentos.push(atual);
15
+ return segmentos;
16
+ }
17
+ function tangentes(p) {
18
+ const total = p.length;
19
+ const dx = [];
20
+ const inclinacoes = [];
21
+ for (let i = 0; i < total - 1; i++) {
22
+ const passoX = p[i + 1].x - p[i].x;
23
+ dx.push(passoX);
24
+ inclinacoes.push(passoX === 0 ? 0 : (p[i + 1].y - p[i].y) / passoX);
25
+ }
26
+ const t = new Array(total);
27
+ t[0] = inclinacoes[0] ?? 0;
28
+ t[total - 1] = inclinacoes[total - 2] ?? 0;
29
+ for (let i = 1; i < total - 1; i++) {
30
+ const anterior = inclinacoes[i - 1];
31
+ const proxima = inclinacoes[i];
32
+ if (anterior * proxima <= 0) {
33
+ t[i] = 0;
34
+ continue;
35
+ }
36
+ const p1 = 2 * dx[i] + dx[i - 1];
37
+ const p2 = dx[i] + 2 * dx[i - 1];
38
+ t[i] = (p1 + p2) / (p1 / anterior + p2 / proxima);
39
+ }
40
+ return t;
41
+ }
42
+ function segmentoParaD(pontos, curva) {
43
+ const primeiro = pontos[0];
44
+ if (pontos.length === 1) {
45
+ return `M ${n(primeiro.x)} ${n(primeiro.y)}`;
46
+ }
47
+ const partes = [`M ${n(primeiro.x)} ${n(primeiro.y)}`];
48
+ if (curva !== "smooth" || pontos.length === 2) {
49
+ for (let i = 1; i < pontos.length; i++) {
50
+ const ponto = pontos[i];
51
+ partes.push(`L ${n(ponto.x)} ${n(ponto.y)}`);
52
+ }
53
+ return partes.join(" ");
54
+ }
55
+ const t = tangentes(pontos);
56
+ for (let i = 0; i < pontos.length - 1; i++) {
57
+ const a = pontos[i];
58
+ const b = pontos[i + 1];
59
+ const terco = (b.x - a.x) / 3;
60
+ partes.push(
61
+ `C ${n(a.x + terco)} ${n(a.y + t[i] * terco)} ${n(b.x - terco)} ${n(b.y - t[i + 1] * terco)} ${n(b.x)} ${n(b.y)}`
62
+ );
63
+ }
64
+ return partes.join(" ");
65
+ }
66
+ function caminhoLinha(pontos, curva = "linear") {
67
+ return segmentar(pontos).map((s) => segmentoParaD(s, curva)).join(" ");
68
+ }
69
+ function caminhoArea(pontos, yBase, curva = "linear") {
70
+ return segmentar(pontos).filter((s) => s.length > 1).map((s) => {
71
+ const inicio = s[0];
72
+ const fim = s[s.length - 1];
73
+ return `${segmentoParaD(s, curva)} L ${n(fim.x)} ${n(yBase)} L ${n(inicio.x)} ${n(yBase)} Z`;
74
+ }).join(" ");
75
+ }
76
+ function retanguloArredondado(x, y, largura, altura, raios) {
77
+ const limite = Math.max(0, Math.min(largura, altura) / 2);
78
+ const [a, b, c, d] = raios.map((r) => Math.max(0, Math.min(r, limite)));
79
+ return [
80
+ `M ${n(x + a)} ${n(y)}`,
81
+ `L ${n(x + largura - b)} ${n(y)}`,
82
+ b > 0 ? `A ${n(b)} ${n(b)} 0 0 1 ${n(x + largura)} ${n(y + b)}` : "",
83
+ `L ${n(x + largura)} ${n(y + altura - c)}`,
84
+ c > 0 ? `A ${n(c)} ${n(c)} 0 0 1 ${n(x + largura - c)} ${n(y + altura)}` : "",
85
+ `L ${n(x + d)} ${n(y + altura)}`,
86
+ d > 0 ? `A ${n(d)} ${n(d)} 0 0 1 ${n(x)} ${n(y + altura - d)}` : "",
87
+ `L ${n(x)} ${n(y + a)}`,
88
+ a > 0 ? `A ${n(a)} ${n(a)} 0 0 1 ${n(x + a)} ${n(y)}` : "",
89
+ "Z"
90
+ ].filter(Boolean).join(" ");
91
+ }
92
+ function caminhoBarra(x, y, largura, altura, raio = 0, ponta = "topo") {
93
+ const larg = Math.max(0, largura);
94
+ const alt = Math.max(0, altura);
95
+ const cantos = {
96
+ topo: [raio, raio, 0, 0],
97
+ base: [0, 0, raio, raio],
98
+ direita: [0, raio, raio, 0],
99
+ esquerda: [raio, 0, 0, raio],
100
+ nenhuma: [0, 0, 0, 0]
101
+ };
102
+ return retanguloArredondado(x, y, larg, alt, cantos[ponta]);
103
+ }
104
+ function pontoNoArco(cx, cy, raio, anguloGraus) {
105
+ const rad = anguloGraus * Math.PI / 180;
106
+ return { x: cx + raio * Math.cos(rad), y: cy + raio * Math.sin(rad) };
107
+ }
108
+ const VOLTA_COMPLETA = 359.999;
109
+ function caminhoSetor(cx, cy, raioExterno, raioInterno, anguloInicio, anguloFim) {
110
+ const re = Math.max(0, raioExterno);
111
+ const ri = Math.max(0, Math.min(raioInterno, re));
112
+ const varredura = anguloFim - anguloInicio;
113
+ if (varredura <= 0) return "";
114
+ const p = (raio, graus) => {
115
+ const { x, y } = pontoNoArco(cx, cy, raio, graus);
116
+ return `${n(x)} ${n(y)}`;
117
+ };
118
+ if (varredura >= VOLTA_COMPLETA) {
119
+ const meio = anguloInicio + 180;
120
+ const externo = `M ${p(re, anguloInicio)} A ${n(re)} ${n(re)} 0 1 1 ${p(re, meio)} A ${n(re)} ${n(re)} 0 1 1 ${p(re, anguloInicio)} Z`;
121
+ if (ri <= 0) return externo;
122
+ const interno = `M ${p(ri, anguloInicio)} A ${n(ri)} ${n(ri)} 0 1 0 ${p(ri, meio)} A ${n(ri)} ${n(ri)} 0 1 0 ${p(ri, anguloInicio)} Z`;
123
+ return `${externo} ${interno}`;
124
+ }
125
+ const arcoGrande = varredura > 180 ? 1 : 0;
126
+ if (ri <= 0) {
127
+ return [
128
+ `M ${n(cx)} ${n(cy)}`,
129
+ `L ${p(re, anguloInicio)}`,
130
+ `A ${n(re)} ${n(re)} 0 ${arcoGrande} 1 ${p(re, anguloFim)}`,
131
+ "Z"
132
+ ].join(" ");
133
+ }
134
+ return [
135
+ `M ${p(re, anguloInicio)}`,
136
+ `A ${n(re)} ${n(re)} 0 ${arcoGrande} 1 ${p(re, anguloFim)}`,
137
+ `L ${p(ri, anguloFim)}`,
138
+ `A ${n(ri)} ${n(ri)} 0 ${arcoGrande} 0 ${p(ri, anguloInicio)}`,
139
+ "Z"
140
+ ].join(" ");
141
+ }
142
+ function caminhoArco(cx, cy, raio, anguloInicio, anguloFim) {
143
+ const r = Math.max(0, raio);
144
+ const varredura = anguloFim - anguloInicio;
145
+ if (r === 0 || varredura <= 0) return "";
146
+ const p = (graus) => {
147
+ const { x, y } = pontoNoArco(cx, cy, r, graus);
148
+ return `${n(x)} ${n(y)}`;
149
+ };
150
+ if (varredura >= VOLTA_COMPLETA) {
151
+ const meio = anguloInicio + 180;
152
+ return `M ${p(anguloInicio)} A ${n(r)} ${n(r)} 0 1 1 ${p(meio)} A ${n(r)} ${n(r)} 0 1 1 ${p(anguloInicio)}`;
153
+ }
154
+ return `M ${p(anguloInicio)} A ${n(r)} ${n(r)} 0 ${varredura > 180 ? 1 : 0} 1 ${p(anguloFim)}`;
155
+ }
156
+ function caixaDoArco(anguloInicio, anguloFim) {
157
+ const amostras = [
158
+ { x: 0, y: 0 },
159
+ pontoNoArco(0, 0, 1, anguloInicio),
160
+ pontoNoArco(0, 0, 1, anguloFim)
161
+ ];
162
+ const primeiroEixo = Math.ceil(anguloInicio / 90) * 90;
163
+ for (let a = primeiroEixo; a < anguloFim; a += 90) {
164
+ amostras.push(pontoNoArco(0, 0, 1, a));
165
+ }
166
+ const xs = amostras.map((p) => p.x);
167
+ const ys = amostras.map((p) => p.y);
168
+ return {
169
+ minX: Math.min(...xs),
170
+ maxX: Math.max(...xs),
171
+ minY: Math.min(...ys),
172
+ maxY: Math.max(...ys)
173
+ };
174
+ }
175
+ function fatiasPizza(valores, opcoes = {}) {
176
+ const inicioBase = opcoes.anguloInicioGraus ?? -90;
177
+ const espaco = Math.max(0, opcoes.espacoGraus ?? 0);
178
+ const limpos = valores.map((v) => Number.isFinite(v) && v > 0 ? v : 0);
179
+ const total = limpos.reduce((soma, v) => soma + v, 0);
180
+ if (total <= 0) return [];
181
+ const naoVazias = limpos.filter((v) => v > 0).length;
182
+ const vaoTotal = naoVazias > 1 ? espaco * naoVazias : 0;
183
+ const disponivel = 360 - vaoTotal;
184
+ let cursor = inicioBase;
185
+ return limpos.map((valor, indice) => {
186
+ const fracao = valor / total;
187
+ const varredura = fracao * disponivel;
188
+ const fatia = {
189
+ indice,
190
+ valor,
191
+ fracao,
192
+ anguloInicio: cursor,
193
+ anguloFim: cursor + varredura
194
+ };
195
+ cursor = fatia.anguloFim + (valor > 0 && naoVazias > 1 ? espaco : 0);
196
+ return fatia;
197
+ });
198
+ }
199
+ function caminhoMarcador(tipo, cx, cy, tamanho) {
200
+ const r = Math.max(0, tamanho) / 2;
201
+ if (r === 0 || tipo === "none") return "";
202
+ switch (tipo) {
203
+ case "square":
204
+ return `M ${n(cx - r)} ${n(cy - r)} H ${n(cx + r)} V ${n(cy + r)} H ${n(cx - r)} Z`;
205
+ case "triangle":
206
+ return `M ${n(cx)} ${n(cy - r)} L ${n(cx + r)} ${n(cy + r)} L ${n(cx - r)} ${n(cy + r)} Z`;
207
+ case "diamond":
208
+ return `M ${n(cx)} ${n(cy - r)} L ${n(cx + r)} ${n(cy)} L ${n(cx)} ${n(cy + r)} L ${n(cx - r)} ${n(cy)} Z`;
209
+ case "cross": {
210
+ const b = r / 2.5;
211
+ return `M ${n(cx - b)} ${n(cy - r)} H ${n(cx + b)} V ${n(cy - b)} H ${n(cx + r)} V ${n(cy + b)} H ${n(cx + b)} V ${n(cy + r)} H ${n(cx - b)} V ${n(cy + b)} H ${n(cx - r)} V ${n(cy - b)} H ${n(cx - b)} Z`;
212
+ }
213
+ case "circle":
214
+ default:
215
+ return `M ${n(cx - r)} ${n(cy)} A ${n(r)} ${n(r)} 0 1 0 ${n(cx + r)} ${n(cy)} A ${n(r)} ${n(r)} 0 1 0 ${n(cx - r)} ${n(cy)} Z`;
216
+ }
217
+ }
218
+ const CICLO_MARCADORES = [
219
+ "circle",
220
+ "square",
221
+ "triangle",
222
+ "diamond",
223
+ "cross"
224
+ ];
225
+ function marcadorDaSerie(indice) {
226
+ if (indice < 0) return "circle";
227
+ return CICLO_MARCADORES[indice % CICLO_MARCADORES.length];
228
+ }
229
+ export {
230
+ caixaDoArco,
231
+ caminhoArco,
232
+ caminhoArea,
233
+ caminhoBarra,
234
+ caminhoLinha,
235
+ caminhoMarcador,
236
+ caminhoSetor,
237
+ fatiasPizza,
238
+ marcadorDaSerie,
239
+ pontoNoArco
240
+ };
241
+ //# sourceMappingURL=index213.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index213.mjs","sources":["../src/components/chart/chart-caminhos.ts"],"sourcesContent":["// Geração de `d` de SVG — linha, área, barra, setor e marcador.\n//\n// Tudo aqui é aritmética pura, sem DOM: é o que permite testar as armadilhas de\n// geometria (arco de 100% que não desenha, largeArcFlag, buraco na série, raio\n// maior que a barra) sem montar componente. Mesmo modelo do `tour-posicionar.ts`.\n\nexport interface Ponto {\n x: number\n y: number\n}\n\nexport type CurvaLinha = 'linear' | 'smooth'\n\nexport type MarcadorSerie = 'circle' | 'square' | 'triangle' | 'diamond' | 'cross' | 'none'\n\n/** Quanto arredondar antes de virar string. Evita `d` com 15 casas decimais. */\nconst CASAS = 2\nconst n = (valor: number): string => Number(valor.toFixed(CASAS)).toString()\n\n// ── linha e área ───────────────────────────────────────────────────────────\n\n/**\n * Quebra a lista em segmentos contínuos. `null` INTERROMPE a linha — não\n * interpola. Ligar por cima de um buraco inventa dado que não existe: se\n * fevereiro não tem medição, a linha não pode atravessar fevereiro.\n */\nfunction segmentar(pontos: ReadonlyArray<Ponto | null>): Ponto[][] {\n const segmentos: Ponto[][] = []\n let atual: Ponto[] = []\n\n for (const ponto of pontos) {\n if (ponto && Number.isFinite(ponto.x) && Number.isFinite(ponto.y)) {\n atual.push(ponto)\n } else if (atual.length > 0) {\n segmentos.push(atual)\n atual = []\n }\n }\n if (atual.length > 0) segmentos.push(atual)\n\n return segmentos\n}\n\n/**\n * Tangentes de Fritsch-Carlson — interpolação cúbica MONOTÔNICA.\n *\n * Por que não Catmull-Rom/Bézier solto: eles produzem *overshoot*. Numa série\n * que vai 0 → 100 → 0, a curva solta desce abaixo de zero entre os pontos, e o\n * leitor vê valor negativo que nunca existiu. Em gráfico isso não é estética,\n * é correção: a curva não pode sair da faixa dos dados vizinhos.\n */\nfunction tangentes(p: readonly Ponto[]): number[] {\n const total = p.length\n const dx: number[] = []\n const inclinacoes: number[] = []\n\n for (let i = 0; i < total - 1; i++) {\n const passoX = (p[i + 1] as Ponto).x - (p[i] as Ponto).x\n dx.push(passoX)\n inclinacoes.push(passoX === 0 ? 0 : ((p[i + 1] as Ponto).y - (p[i] as Ponto).y) / passoX)\n }\n\n const t: number[] = new Array<number>(total)\n t[0] = inclinacoes[0] ?? 0\n t[total - 1] = inclinacoes[total - 2] ?? 0\n\n for (let i = 1; i < total - 1; i++) {\n const anterior = inclinacoes[i - 1] as number\n const proxima = inclinacoes[i] as number\n\n // Troca de sinal (ou platô) = extremo local. Tangente zero prende a curva\n // no ponto e é justamente o que impede o overshoot.\n if (anterior * proxima <= 0) {\n t[i] = 0\n continue\n }\n const p1 = 2 * (dx[i] as number) + (dx[i - 1] as number)\n const p2 = (dx[i] as number) + 2 * (dx[i - 1] as number)\n t[i] = (p1 + p2) / (p1 / anterior + p2 / proxima)\n }\n\n return t\n}\n\nfunction segmentoParaD(pontos: readonly Ponto[], curva: CurvaLinha): string {\n const primeiro = pontos[0] as Ponto\n if (pontos.length === 1) {\n // Ponto solto entre dois buracos: sem um `L` o path não pinta nada e o dado\n // some. O marcador é quem o torna visível; o path só precisa existir.\n return `M ${n(primeiro.x)} ${n(primeiro.y)}`\n }\n\n const partes = [`M ${n(primeiro.x)} ${n(primeiro.y)}`]\n\n if (curva !== 'smooth' || pontos.length === 2) {\n for (let i = 1; i < pontos.length; i++) {\n const ponto = pontos[i] as Ponto\n partes.push(`L ${n(ponto.x)} ${n(ponto.y)}`)\n }\n return partes.join(' ')\n }\n\n const t = tangentes(pontos)\n for (let i = 0; i < pontos.length - 1; i++) {\n const a = pontos[i] as Ponto\n const b = pontos[i + 1] as Ponto\n const terco = (b.x - a.x) / 3\n partes.push(\n `C ${n(a.x + terco)} ${n(a.y + (t[i] as number) * terco)}` +\n ` ${n(b.x - terco)} ${n(b.y - (t[i + 1] as number) * terco)}` +\n ` ${n(b.x)} ${n(b.y)}`,\n )\n }\n\n return partes.join(' ')\n}\n\n/** Caminho da linha. Cada trecho contínuo vira um `M` novo (buraco = corte). */\nexport function caminhoLinha(\n pontos: ReadonlyArray<Ponto | null>,\n curva: CurvaLinha = 'linear',\n): string {\n return segmentar(pontos)\n .map((s) => segmentoParaD(s, curva))\n .join(' ')\n}\n\n/**\n * Caminho da área. Mesmo traçado da linha, fechado contra `yBase`.\n * Cada segmento fecha sozinho — senão o preenchimento atravessaria o buraco.\n */\nexport function caminhoArea(\n pontos: ReadonlyArray<Ponto | null>,\n yBase: number,\n curva: CurvaLinha = 'linear',\n): string {\n return segmentar(pontos)\n .filter((s) => s.length > 1)\n .map((s) => {\n const inicio = s[0] as Ponto\n const fim = s[s.length - 1] as Ponto\n return `${segmentoParaD(s, curva)} L ${n(fim.x)} ${n(yBase)} L ${n(inicio.x)} ${n(yBase)} Z`\n })\n .join(' ')\n}\n\n// ── barra ──────────────────────────────────────────────────────────────────\n\n/** De que lado a barra tem a ponta arredondada (a ponta do DADO, não a base). */\nexport type PontaBarra = 'topo' | 'base' | 'direita' | 'esquerda' | 'nenhuma'\n\n/** Retângulo com raio por canto: [sup-esq, sup-dir, inf-dir, inf-esq]. */\nfunction retanguloArredondado(\n x: number,\n y: number,\n largura: number,\n altura: number,\n raios: readonly [number, number, number, number],\n): string {\n // Raio maior que a metade do lado inverte a curva e desenha uma gravatinha.\n const limite = Math.max(0, Math.min(largura, altura) / 2)\n const [a, b, c, d] = raios.map((r) => Math.max(0, Math.min(r, limite))) as [\n number,\n number,\n number,\n number,\n ]\n\n return [\n `M ${n(x + a)} ${n(y)}`,\n `L ${n(x + largura - b)} ${n(y)}`,\n b > 0 ? `A ${n(b)} ${n(b)} 0 0 1 ${n(x + largura)} ${n(y + b)}` : '',\n `L ${n(x + largura)} ${n(y + altura - c)}`,\n c > 0 ? `A ${n(c)} ${n(c)} 0 0 1 ${n(x + largura - c)} ${n(y + altura)}` : '',\n `L ${n(x + d)} ${n(y + altura)}`,\n d > 0 ? `A ${n(d)} ${n(d)} 0 0 1 ${n(x)} ${n(y + altura - d)}` : '',\n `L ${n(x)} ${n(y + a)}`,\n a > 0 ? `A ${n(a)} ${n(a)} 0 0 1 ${n(x + a)} ${n(y)}` : '',\n 'Z',\n ]\n .filter(Boolean)\n .join(' ')\n}\n\n/**\n * Barra com arredondamento só na ponta do dado. A base fica reta porque encosta\n * no eixo — arredondar os dois lados faz a barra parecer flutuar.\n */\nexport function caminhoBarra(\n x: number,\n y: number,\n largura: number,\n altura: number,\n raio = 0,\n ponta: PontaBarra = 'topo',\n): string {\n // Valor zero (ou quase) ainda precisa ocupar uma linha: barra de altura 0 some\n // e o leitor não distingue \"zero\" de \"sem dado\".\n const larg = Math.max(0, largura)\n const alt = Math.max(0, altura)\n\n const cantos: Record<PontaBarra, [number, number, number, number]> = {\n topo: [raio, raio, 0, 0],\n base: [0, 0, raio, raio],\n direita: [0, raio, raio, 0],\n esquerda: [raio, 0, 0, raio],\n nenhuma: [0, 0, 0, 0],\n }\n\n return retanguloArredondado(x, y, larg, alt, cantos[ponta])\n}\n\n// ── arco, pizza e rosca ────────────────────────────────────────────────────\n\n/** Ponto na circunferência. 0° aponta para a direita; cresce no sentido horário. */\nexport function pontoNoArco(cx: number, cy: number, raio: number, anguloGraus: number): Ponto {\n const rad = (anguloGraus * Math.PI) / 180\n return { x: cx + raio * Math.cos(rad), y: cy + raio * Math.sin(rad) }\n}\n\n/** Acima disso tratamos como volta completa (ver armadilha no `caminhoSetor`). */\nconst VOLTA_COMPLETA = 359.999\n\n/**\n * Setor de pizza (`raioInterno = 0`) ou anel de rosca (`raioInterno > 0`).\n *\n * ⚠️ Armadilha do 100%: um arco cujo ponto inicial coincide com o final NÃO\n * desenha nada em SVG — uma única categoria sumiria da tela, sem erro. Por isso\n * a volta completa é emitida como DOIS arcos de 180°.\n *\n * ⚠️ `largeArcFlag` precisa ser 1 acima de 180°, senão o arco vai pelo lado\n * curto e a fatia dominante aparece invertida.\n */\nexport function caminhoSetor(\n cx: number,\n cy: number,\n raioExterno: number,\n raioInterno: number,\n anguloInicio: number,\n anguloFim: number,\n): string {\n const re = Math.max(0, raioExterno)\n const ri = Math.max(0, Math.min(raioInterno, re))\n const varredura = anguloFim - anguloInicio\n\n if (varredura <= 0) return ''\n\n const p = (raio: number, graus: number): string => {\n const { x, y } = pontoNoArco(cx, cy, raio, graus)\n return `${n(x)} ${n(y)}`\n }\n\n if (varredura >= VOLTA_COMPLETA) {\n const meio = anguloInicio + 180\n const externo =\n `M ${p(re, anguloInicio)} A ${n(re)} ${n(re)} 0 1 1 ${p(re, meio)}` +\n ` A ${n(re)} ${n(re)} 0 1 1 ${p(re, anguloInicio)} Z`\n if (ri <= 0) return externo\n // Subcaminho interno no sentido CONTRÁRIO: com fill-rule nonzero é isso que\n // abre o furo da rosca.\n const interno =\n `M ${p(ri, anguloInicio)} A ${n(ri)} ${n(ri)} 0 1 0 ${p(ri, meio)}` +\n ` A ${n(ri)} ${n(ri)} 0 1 0 ${p(ri, anguloInicio)} Z`\n return `${externo} ${interno}`\n }\n\n const arcoGrande = varredura > 180 ? 1 : 0\n\n if (ri <= 0) {\n return [\n `M ${n(cx)} ${n(cy)}`,\n `L ${p(re, anguloInicio)}`,\n `A ${n(re)} ${n(re)} 0 ${arcoGrande} 1 ${p(re, anguloFim)}`,\n 'Z',\n ].join(' ')\n }\n\n return [\n `M ${p(re, anguloInicio)}`,\n `A ${n(re)} ${n(re)} 0 ${arcoGrande} 1 ${p(re, anguloFim)}`,\n `L ${p(ri, anguloFim)}`,\n `A ${n(ri)} ${n(ri)} 0 ${arcoGrande} 0 ${p(ri, anguloInicio)}`,\n 'Z',\n ].join(' ')\n}\n\n/**\n * Arco ABERTO — só a linha, sem fechar contra o centro. É o traçado do medidor:\n * a espessura vem do `stroke-width` e a ponta redonda do `stroke-linecap`, o que\n * o `caminhoSetor` (preenchido) não consegue dar.\n *\n * Convenção igual à do `pontoNoArco`: 0° à direita, crescendo no sentido\n * horário. `anguloFim > anguloInicio` varre no horário.\n *\n * ⚠️ Mesma armadilha do setor de 100%: início coincidindo com o fim não desenha\n * nada. Aqui a volta completa sai em dois arcos de 180°.\n */\nexport function caminhoArco(\n cx: number,\n cy: number,\n raio: number,\n anguloInicio: number,\n anguloFim: number,\n): string {\n const r = Math.max(0, raio)\n const varredura = anguloFim - anguloInicio\n if (r === 0 || varredura <= 0) return ''\n\n const p = (graus: number): string => {\n const { x, y } = pontoNoArco(cx, cy, r, graus)\n return `${n(x)} ${n(y)}`\n }\n\n if (varredura >= VOLTA_COMPLETA) {\n const meio = anguloInicio + 180\n return (\n `M ${p(anguloInicio)} A ${n(r)} ${n(r)} 0 1 1 ${p(meio)}` +\n ` A ${n(r)} ${n(r)} 0 1 1 ${p(anguloInicio)}`\n )\n }\n\n return `M ${p(anguloInicio)} A ${n(r)} ${n(r)} 0 ${varredura > 180 ? 1 : 0} 1 ${p(anguloFim)}`\n}\n\n/**\n * Caixa que um arco de raio 1 centrado na origem ocupa.\n *\n * Existe porque o medidor NÃO é um círculo inteiro: um semicírculo de 180° usa\n * só a metade de cima, e centrar pelo círculo completo desperdiçaria metade da\n * altura — o arco sairia pequeno com uma faixa vazia embaixo. Amostrar os\n * extremos e os cruzamentos de eixo dentro da varredura dá a caixa REAL, e o\n * mesmo cálculo serve pra 180°, 270° ou volta completa.\n *\n * A origem entra na caixa de propósito: é onde mora o número no meio do medidor.\n */\nexport function caixaDoArco(\n anguloInicio: number,\n anguloFim: number,\n): { minX: number; maxX: number; minY: number; maxY: number } {\n const amostras: Ponto[] = [\n { x: 0, y: 0 },\n pontoNoArco(0, 0, 1, anguloInicio),\n pontoNoArco(0, 0, 1, anguloFim),\n ]\n\n // Os extremos de x e y de um arco só podem cair nas pontas ou onde ele cruza\n // um dos quatro eixos.\n const primeiroEixo = Math.ceil(anguloInicio / 90) * 90\n for (let a = primeiroEixo; a < anguloFim; a += 90) {\n amostras.push(pontoNoArco(0, 0, 1, a))\n }\n\n const xs = amostras.map((p) => p.x)\n const ys = amostras.map((p) => p.y)\n return {\n minX: Math.min(...xs),\n maxX: Math.max(...xs),\n minY: Math.min(...ys),\n maxY: Math.max(...ys),\n }\n}\n\nexport interface Fatia {\n indice: number\n valor: number\n /** Participação no total, 0..1. É o que o rótulo mostra como percentual. */\n fracao: number\n anguloInicio: number\n anguloFim: number\n}\n\n/**\n * Converte valores em ângulos. Começa no topo (-90°) porque é onde o olho\n * entra num gráfico circular.\n *\n * Valor negativo é ignorado: não existe fatia negativa, e somá-lo ao total\n * distorceria todas as outras em silêncio.\n */\nexport function fatiasPizza(\n valores: readonly number[],\n opcoes: { anguloInicioGraus?: number; espacoGraus?: number } = {},\n): Fatia[] {\n const inicioBase = opcoes.anguloInicioGraus ?? -90\n const espaco = Math.max(0, opcoes.espacoGraus ?? 0)\n\n const limpos = valores.map((v) => (Number.isFinite(v) && v > 0 ? v : 0))\n const total = limpos.reduce((soma, v) => soma + v, 0)\n if (total <= 0) return []\n\n // O vão entre fatias sai do total, senão a soma passa de 360°.\n const naoVazias = limpos.filter((v) => v > 0).length\n const vaoTotal = naoVazias > 1 ? espaco * naoVazias : 0\n const disponivel = 360 - vaoTotal\n\n let cursor = inicioBase\n return limpos.map((valor, indice) => {\n const fracao = valor / total\n const varredura = fracao * disponivel\n const fatia: Fatia = {\n indice,\n valor,\n fracao,\n anguloInicio: cursor,\n anguloFim: cursor + varredura,\n }\n cursor = fatia.anguloFim + (valor > 0 && naoVazias > 1 ? espaco : 0)\n return fatia\n })\n}\n\n// ── marcador ───────────────────────────────────────────────────────────────\n\n/**\n * Marcador do ponto, como `path` (e não `<circle>`/`<rect>`) para a legenda\n * poder reaproveitar exatamente a mesma forma do gráfico.\n *\n * A forma é o SEGUNDO canal de codificação, além da cor: é o que mantém as\n * séries distinguíveis em impressão P&B e para quem não vê cor (eMAG 4.2).\n */\nexport function caminhoMarcador(\n tipo: MarcadorSerie,\n cx: number,\n cy: number,\n tamanho: number,\n): string {\n const r = Math.max(0, tamanho) / 2\n if (r === 0 || tipo === 'none') return ''\n\n switch (tipo) {\n case 'square':\n return `M ${n(cx - r)} ${n(cy - r)} H ${n(cx + r)} V ${n(cy + r)} H ${n(cx - r)} Z`\n case 'triangle':\n return `M ${n(cx)} ${n(cy - r)} L ${n(cx + r)} ${n(cy + r)} L ${n(cx - r)} ${n(cy + r)} Z`\n case 'diamond':\n return `M ${n(cx)} ${n(cy - r)} L ${n(cx + r)} ${n(cy)} L ${n(cx)} ${n(cy + r)} L ${n(cx - r)} ${n(cy)} Z`\n case 'cross': {\n const b = r / 2.5\n return (\n `M ${n(cx - b)} ${n(cy - r)} H ${n(cx + b)} V ${n(cy - b)} H ${n(cx + r)}` +\n ` V ${n(cy + b)} H ${n(cx + b)} V ${n(cy + r)} H ${n(cx - b)}` +\n ` V ${n(cy + b)} H ${n(cx - r)} V ${n(cy - b)} H ${n(cx - b)} Z`\n )\n }\n case 'circle':\n default:\n // Círculo em dois arcos pelo mesmo motivo do setor de 100%.\n return (\n `M ${n(cx - r)} ${n(cy)} A ${n(r)} ${n(r)} 0 1 0 ${n(cx + r)} ${n(cy)}` +\n ` A ${n(r)} ${n(r)} 0 1 0 ${n(cx - r)} ${n(cy)} Z`\n )\n }\n}\n\n/** Marcador do índice da série. Ciclo de 5, alinhado com os 5 slots de cor. */\nconst CICLO_MARCADORES: readonly MarcadorSerie[] = [\n 'circle',\n 'square',\n 'triangle',\n 'diamond',\n 'cross',\n]\n\nexport function marcadorDaSerie(indice: number): MarcadorSerie {\n if (indice < 0) return 'circle'\n return CICLO_MARCADORES[indice % CICLO_MARCADORES.length] as MarcadorSerie\n}\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,63 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ function escalaLinear(dominio, faixa) {
4
+ const [d0, d1] = dominio;
5
+ const [f0, f1] = faixa;
6
+ const amplitude = d1 - d0;
7
+ const degenerado = amplitude === 0 || !Number.isFinite(amplitude);
8
+ const escala = ((valor) => {
9
+ if (degenerado) return (f0 + f1) / 2;
10
+ if (!Number.isFinite(valor)) return NaN;
11
+ return f0 + (valor - d0) / amplitude * (f1 - f0);
12
+ });
13
+ return Object.assign(escala, {
14
+ inverter(px) {
15
+ if (degenerado || f1 === f0) return d0;
16
+ return d0 + (px - f0) / (f1 - f0) * amplitude;
17
+ },
18
+ dominio,
19
+ faixa
20
+ });
21
+ }
22
+ function escalaBanda(quantidade, faixa, opcoes = {}) {
23
+ const espacoInterno = Math.min(0.95, Math.max(0, opcoes.espacoInterno ?? 0.2));
24
+ const espacoExterno = Math.max(0, opcoes.espacoExterno ?? 0.1);
25
+ const [f0, f1] = faixa;
26
+ const n = Math.max(0, Math.floor(quantidade));
27
+ if (n === 0) {
28
+ const vazia = ((_indice) => f0);
29
+ return Object.assign(vazia, {
30
+ larguraBanda: 0,
31
+ passo: 0,
32
+ quantidade: 0,
33
+ centro: (_indice) => f0,
34
+ indiceEm: (_px) => 0
35
+ });
36
+ }
37
+ const passo = (f1 - f0) / Math.max(1, n - espacoInterno + espacoExterno * 2);
38
+ const larguraBanda = passo * (1 - espacoInterno);
39
+ const inicio = f0 + (f1 - f0 - passo * (n - espacoInterno)) / 2;
40
+ const escala = ((indice) => inicio + passo * indice);
41
+ return Object.assign(escala, {
42
+ larguraBanda,
43
+ passo,
44
+ quantidade: n,
45
+ centro: (indice) => inicio + passo * indice + larguraBanda / 2,
46
+ indiceEm(px) {
47
+ if (passo === 0) return 0;
48
+ const cru = Math.floor((px - inicio) / passo);
49
+ return Math.min(n - 1, Math.max(0, cru));
50
+ }
51
+ });
52
+ }
53
+ function escalaSubBanda(banda, quantidadeSeries, espacoInterno = 0.1) {
54
+ const vao = quantidadeSeries <= 1 ? 0 : espacoInterno;
55
+ return escalaBanda(quantidadeSeries, [0, banda.larguraBanda], {
56
+ espacoInterno: vao,
57
+ espacoExterno: 0
58
+ });
59
+ }
60
+ exports.escalaBanda = escalaBanda;
61
+ exports.escalaLinear = escalaLinear;
62
+ exports.escalaSubBanda = escalaSubBanda;
63
+ //# sourceMappingURL=index214.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index214.cjs","sources":["../src/components/chart/chart-escalas.ts"],"sourcesContent":["// Escalas — a ponte entre o VALOR do dado e o PIXEL do SVG.\n//\n// Duas famílias, como em qualquer gramática de gráfico:\n// • linear — valor contínuo → posição (eixo de valor);\n// • banda — índice de categoria → faixa (eixo de categoria).\n// A sub-banda é o que permite barra AGRUPADA: dentro da banda de \"Janeiro\",\n// cada série ganha a sua própria fatia.\n//\n// Livre de DOM. Todas devolvem função CHAMÁVEL com metadados anexados, pra o\n// código de desenho ficar `x(valor)` em vez de `escala.aplicar(valor)`.\n\nexport interface EscalaLinear {\n (valor: number): number\n /** Pixel → valor. Usado pelo tooltip e pelo crosshair. */\n inverter(px: number): number\n readonly dominio: readonly [number, number]\n readonly faixa: readonly [number, number]\n}\n\n/**\n * Escala contínua. A `faixa` normalmente vem INVERTIDA no eixo Y\n * (`[base, topo]` = `[150, 10]`), porque em SVG o y cresce para baixo.\n */\nexport function escalaLinear(\n dominio: readonly [number, number],\n faixa: readonly [number, number],\n): EscalaLinear {\n const [d0, d1] = dominio\n const [f0, f1] = faixa\n const amplitude = d1 - d0\n\n // Domínio degenerado (série constante que escapou do dominioBonito, ou dado\n // vazio): devolve o MEIO da faixa em vez de NaN. Um NaN aqui vira `d=\"M NaN\"`\n // e o SVG some inteiro, sem erro no console — o pior tipo de bug.\n const degenerado = amplitude === 0 || !Number.isFinite(amplitude)\n\n const escala = ((valor: number): number => {\n if (degenerado) return (f0 + f1) / 2\n if (!Number.isFinite(valor)) return NaN\n return f0 + ((valor - d0) / amplitude) * (f1 - f0)\n }) as EscalaLinear\n\n return Object.assign(escala, {\n inverter(px: number): number {\n if (degenerado || f1 === f0) return d0\n return d0 + ((px - f0) / (f1 - f0)) * amplitude\n },\n dominio,\n faixa,\n })\n}\n\nexport interface EscalaBanda {\n /** Início (x ou y) da banda `indice`. */\n (indice: number): number\n /** Largura útil de uma banda (já descontado o espaço interno). */\n readonly larguraBanda: number\n /** Distância entre inícios de bandas consecutivas. */\n readonly passo: number\n readonly quantidade: number\n /** Centro da banda — onde vai o rótulo do eixo e o ponto da linha. */\n centro(indice: number): number\n /** Índice da banda sob a coordenada, já limitado às pontas. Para tooltip/teclado. */\n indiceEm(px: number): number\n}\n\nexport interface OpcoesBanda {\n /** Fração do passo virando vão ENTRE bandas (0..1). Default 0.2. */\n espacoInterno?: number\n /** Fração do passo virando vão nas PONTAS (0..1). Default 0.1. */\n espacoExterno?: number\n}\n\n/**\n * Escala de categoria. Mesmo cálculo do d3-scale-band: o passo absorve os vãos\n * interno e externo, e o conjunto fica centrado na faixa.\n */\nexport function escalaBanda(\n quantidade: number,\n faixa: readonly [number, number],\n opcoes: OpcoesBanda = {},\n): EscalaBanda {\n const espacoInterno = Math.min(0.95, Math.max(0, opcoes.espacoInterno ?? 0.2))\n const espacoExterno = Math.max(0, opcoes.espacoExterno ?? 0.1)\n const [f0, f1] = faixa\n const n = Math.max(0, Math.floor(quantidade))\n\n // Sem categorias não há divisão possível — e `n` no denominador viraria /0,\n // devolvendo Infinity pra toda posição.\n if (n === 0) {\n const vazia = ((_indice: number): number => f0) as EscalaBanda\n return Object.assign(vazia, {\n larguraBanda: 0,\n passo: 0,\n quantidade: 0,\n centro: (_indice: number): number => f0,\n indiceEm: (_px: number): number => 0,\n })\n }\n\n const passo = (f1 - f0) / Math.max(1, n - espacoInterno + espacoExterno * 2)\n const larguraBanda = passo * (1 - espacoInterno)\n const inicio = f0 + (f1 - f0 - passo * (n - espacoInterno)) / 2\n\n const escala = ((indice: number): number => inicio + passo * indice) as EscalaBanda\n\n return Object.assign(escala, {\n larguraBanda,\n passo,\n quantidade: n,\n centro: (indice: number): number => inicio + passo * indice + larguraBanda / 2,\n indiceEm(px: number): number {\n if (passo === 0) return 0\n const cru = Math.floor((px - inicio) / passo)\n return Math.min(n - 1, Math.max(0, cru))\n },\n })\n}\n\n/**\n * Sub-bandas DENTRO de uma banda — é o que faz barra agrupada.\n *\n * Devolve posições RELATIVAS ao início da banda-mãe, então o desenho fica\n * `banda(i) + sub(s)`. Sem espaço externo de propósito: o vão nas pontas já é\n * o da banda-mãe, e somar de novo deixaria as barras do grupo espremidas.\n */\nexport function escalaSubBanda(\n banda: EscalaBanda,\n quantidadeSeries: number,\n espacoInterno = 0.1,\n): EscalaBanda {\n // Série única: não existe vão ENTRE séries pra abrir, então o espaço interno\n // vira desperdício puro. Sem esta guarda, o caso mais comum de todos (gráfico\n // de uma série só) sai com a barra ~10% mais estreita do que a banda permite.\n const vao = quantidadeSeries <= 1 ? 0 : espacoInterno\n\n return escalaBanda(quantidadeSeries, [0, banda.larguraBanda], {\n espacoInterno: vao,\n espacoExterno: 0,\n })\n}\n"],"names":[],"mappings":";;AAuBO,SAAS,aACd,SACA,OACc;AACd,QAAM,CAAC,IAAI,EAAE,IAAI;AACjB,QAAM,CAAC,IAAI,EAAE,IAAI;AACjB,QAAM,YAAY,KAAK;AAKvB,QAAM,aAAa,cAAc,KAAK,CAAC,OAAO,SAAS,SAAS;AAEhE,QAAM,UAAU,CAAC,UAA0B;AACzC,QAAI,WAAY,SAAQ,KAAK,MAAM;AACnC,QAAI,CAAC,OAAO,SAAS,KAAK,EAAG,QAAO;AACpC,WAAO,MAAO,QAAQ,MAAM,aAAc,KAAK;AAAA,EACjD;AAEA,SAAO,OAAO,OAAO,QAAQ;AAAA,IAC3B,SAAS,IAAoB;AAC3B,UAAI,cAAc,OAAO,GAAI,QAAO;AACpC,aAAO,MAAO,KAAK,OAAO,KAAK,MAAO;AAAA,IACxC;AAAA,IACA;AAAA,IACA;AAAA,EAAA,CACD;AACH;AA2BO,SAAS,YACd,YACA,OACA,SAAsB,CAAA,GACT;AACb,QAAM,gBAAgB,KAAK,IAAI,MAAM,KAAK,IAAI,GAAG,OAAO,iBAAiB,GAAG,CAAC;AAC7E,QAAM,gBAAgB,KAAK,IAAI,GAAG,OAAO,iBAAiB,GAAG;AAC7D,QAAM,CAAC,IAAI,EAAE,IAAI;AACjB,QAAM,IAAI,KAAK,IAAI,GAAG,KAAK,MAAM,UAAU,CAAC;AAI5C,MAAI,MAAM,GAAG;AACX,UAAM,SAAS,CAAC,YAA4B;AAC5C,WAAO,OAAO,OAAO,OAAO;AAAA,MAC1B,cAAc;AAAA,MACd,OAAO;AAAA,MACP,YAAY;AAAA,MACZ,QAAQ,CAAC,YAA4B;AAAA,MACrC,UAAU,CAAC,QAAwB;AAAA,IAAA,CACpC;AAAA,EACH;AAEA,QAAM,SAAS,KAAK,MAAM,KAAK,IAAI,GAAG,IAAI,gBAAgB,gBAAgB,CAAC;AAC3E,QAAM,eAAe,SAAS,IAAI;AAClC,QAAM,SAAS,MAAM,KAAK,KAAK,SAAS,IAAI,kBAAkB;AAE9D,QAAM,UAAU,CAAC,WAA2B,SAAS,QAAQ;AAE7D,SAAO,OAAO,OAAO,QAAQ;AAAA,IAC3B;AAAA,IACA;AAAA,IACA,YAAY;AAAA,IACZ,QAAQ,CAAC,WAA2B,SAAS,QAAQ,SAAS,eAAe;AAAA,IAC7E,SAAS,IAAoB;AAC3B,UAAI,UAAU,EAAG,QAAO;AACxB,YAAM,MAAM,KAAK,OAAO,KAAK,UAAU,KAAK;AAC5C,aAAO,KAAK,IAAI,IAAI,GAAG,KAAK,IAAI,GAAG,GAAG,CAAC;AAAA,IACzC;AAAA,EAAA,CACD;AACH;AASO,SAAS,eACd,OACA,kBACA,gBAAgB,KACH;AAIb,QAAM,MAAM,oBAAoB,IAAI,IAAI;AAExC,SAAO,YAAY,kBAAkB,CAAC,GAAG,MAAM,YAAY,GAAG;AAAA,IAC5D,eAAe;AAAA,IACf,eAAe;AAAA,EAAA,CAChB;AACH;;;;"}
@@ -0,0 +1,63 @@
1
+ function escalaLinear(dominio, faixa) {
2
+ const [d0, d1] = dominio;
3
+ const [f0, f1] = faixa;
4
+ const amplitude = d1 - d0;
5
+ const degenerado = amplitude === 0 || !Number.isFinite(amplitude);
6
+ const escala = ((valor) => {
7
+ if (degenerado) return (f0 + f1) / 2;
8
+ if (!Number.isFinite(valor)) return NaN;
9
+ return f0 + (valor - d0) / amplitude * (f1 - f0);
10
+ });
11
+ return Object.assign(escala, {
12
+ inverter(px) {
13
+ if (degenerado || f1 === f0) return d0;
14
+ return d0 + (px - f0) / (f1 - f0) * amplitude;
15
+ },
16
+ dominio,
17
+ faixa
18
+ });
19
+ }
20
+ function escalaBanda(quantidade, faixa, opcoes = {}) {
21
+ const espacoInterno = Math.min(0.95, Math.max(0, opcoes.espacoInterno ?? 0.2));
22
+ const espacoExterno = Math.max(0, opcoes.espacoExterno ?? 0.1);
23
+ const [f0, f1] = faixa;
24
+ const n = Math.max(0, Math.floor(quantidade));
25
+ if (n === 0) {
26
+ const vazia = ((_indice) => f0);
27
+ return Object.assign(vazia, {
28
+ larguraBanda: 0,
29
+ passo: 0,
30
+ quantidade: 0,
31
+ centro: (_indice) => f0,
32
+ indiceEm: (_px) => 0
33
+ });
34
+ }
35
+ const passo = (f1 - f0) / Math.max(1, n - espacoInterno + espacoExterno * 2);
36
+ const larguraBanda = passo * (1 - espacoInterno);
37
+ const inicio = f0 + (f1 - f0 - passo * (n - espacoInterno)) / 2;
38
+ const escala = ((indice) => inicio + passo * indice);
39
+ return Object.assign(escala, {
40
+ larguraBanda,
41
+ passo,
42
+ quantidade: n,
43
+ centro: (indice) => inicio + passo * indice + larguraBanda / 2,
44
+ indiceEm(px) {
45
+ if (passo === 0) return 0;
46
+ const cru = Math.floor((px - inicio) / passo);
47
+ return Math.min(n - 1, Math.max(0, cru));
48
+ }
49
+ });
50
+ }
51
+ function escalaSubBanda(banda, quantidadeSeries, espacoInterno = 0.1) {
52
+ const vao = quantidadeSeries <= 1 ? 0 : espacoInterno;
53
+ return escalaBanda(quantidadeSeries, [0, banda.larguraBanda], {
54
+ espacoInterno: vao,
55
+ espacoExterno: 0
56
+ });
57
+ }
58
+ export {
59
+ escalaBanda,
60
+ escalaLinear,
61
+ escalaSubBanda
62
+ };
63
+ //# sourceMappingURL=index214.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index214.mjs","sources":["../src/components/chart/chart-escalas.ts"],"sourcesContent":["// Escalas — a ponte entre o VALOR do dado e o PIXEL do SVG.\n//\n// Duas famílias, como em qualquer gramática de gráfico:\n// • linear — valor contínuo → posição (eixo de valor);\n// • banda — índice de categoria → faixa (eixo de categoria).\n// A sub-banda é o que permite barra AGRUPADA: dentro da banda de \"Janeiro\",\n// cada série ganha a sua própria fatia.\n//\n// Livre de DOM. Todas devolvem função CHAMÁVEL com metadados anexados, pra o\n// código de desenho ficar `x(valor)` em vez de `escala.aplicar(valor)`.\n\nexport interface EscalaLinear {\n (valor: number): number\n /** Pixel → valor. Usado pelo tooltip e pelo crosshair. */\n inverter(px: number): number\n readonly dominio: readonly [number, number]\n readonly faixa: readonly [number, number]\n}\n\n/**\n * Escala contínua. A `faixa` normalmente vem INVERTIDA no eixo Y\n * (`[base, topo]` = `[150, 10]`), porque em SVG o y cresce para baixo.\n */\nexport function escalaLinear(\n dominio: readonly [number, number],\n faixa: readonly [number, number],\n): EscalaLinear {\n const [d0, d1] = dominio\n const [f0, f1] = faixa\n const amplitude = d1 - d0\n\n // Domínio degenerado (série constante que escapou do dominioBonito, ou dado\n // vazio): devolve o MEIO da faixa em vez de NaN. Um NaN aqui vira `d=\"M NaN\"`\n // e o SVG some inteiro, sem erro no console — o pior tipo de bug.\n const degenerado = amplitude === 0 || !Number.isFinite(amplitude)\n\n const escala = ((valor: number): number => {\n if (degenerado) return (f0 + f1) / 2\n if (!Number.isFinite(valor)) return NaN\n return f0 + ((valor - d0) / amplitude) * (f1 - f0)\n }) as EscalaLinear\n\n return Object.assign(escala, {\n inverter(px: number): number {\n if (degenerado || f1 === f0) return d0\n return d0 + ((px - f0) / (f1 - f0)) * amplitude\n },\n dominio,\n faixa,\n })\n}\n\nexport interface EscalaBanda {\n /** Início (x ou y) da banda `indice`. */\n (indice: number): number\n /** Largura útil de uma banda (já descontado o espaço interno). */\n readonly larguraBanda: number\n /** Distância entre inícios de bandas consecutivas. */\n readonly passo: number\n readonly quantidade: number\n /** Centro da banda — onde vai o rótulo do eixo e o ponto da linha. */\n centro(indice: number): number\n /** Índice da banda sob a coordenada, já limitado às pontas. Para tooltip/teclado. */\n indiceEm(px: number): number\n}\n\nexport interface OpcoesBanda {\n /** Fração do passo virando vão ENTRE bandas (0..1). Default 0.2. */\n espacoInterno?: number\n /** Fração do passo virando vão nas PONTAS (0..1). Default 0.1. */\n espacoExterno?: number\n}\n\n/**\n * Escala de categoria. Mesmo cálculo do d3-scale-band: o passo absorve os vãos\n * interno e externo, e o conjunto fica centrado na faixa.\n */\nexport function escalaBanda(\n quantidade: number,\n faixa: readonly [number, number],\n opcoes: OpcoesBanda = {},\n): EscalaBanda {\n const espacoInterno = Math.min(0.95, Math.max(0, opcoes.espacoInterno ?? 0.2))\n const espacoExterno = Math.max(0, opcoes.espacoExterno ?? 0.1)\n const [f0, f1] = faixa\n const n = Math.max(0, Math.floor(quantidade))\n\n // Sem categorias não há divisão possível — e `n` no denominador viraria /0,\n // devolvendo Infinity pra toda posição.\n if (n === 0) {\n const vazia = ((_indice: number): number => f0) as EscalaBanda\n return Object.assign(vazia, {\n larguraBanda: 0,\n passo: 0,\n quantidade: 0,\n centro: (_indice: number): number => f0,\n indiceEm: (_px: number): number => 0,\n })\n }\n\n const passo = (f1 - f0) / Math.max(1, n - espacoInterno + espacoExterno * 2)\n const larguraBanda = passo * (1 - espacoInterno)\n const inicio = f0 + (f1 - f0 - passo * (n - espacoInterno)) / 2\n\n const escala = ((indice: number): number => inicio + passo * indice) as EscalaBanda\n\n return Object.assign(escala, {\n larguraBanda,\n passo,\n quantidade: n,\n centro: (indice: number): number => inicio + passo * indice + larguraBanda / 2,\n indiceEm(px: number): number {\n if (passo === 0) return 0\n const cru = Math.floor((px - inicio) / passo)\n return Math.min(n - 1, Math.max(0, cru))\n },\n })\n}\n\n/**\n * Sub-bandas DENTRO de uma banda — é o que faz barra agrupada.\n *\n * Devolve posições RELATIVAS ao início da banda-mãe, então o desenho fica\n * `banda(i) + sub(s)`. Sem espaço externo de propósito: o vão nas pontas já é\n * o da banda-mãe, e somar de novo deixaria as barras do grupo espremidas.\n */\nexport function escalaSubBanda(\n banda: EscalaBanda,\n quantidadeSeries: number,\n espacoInterno = 0.1,\n): EscalaBanda {\n // Série única: não existe vão ENTRE séries pra abrir, então o espaço interno\n // vira desperdício puro. Sem esta guarda, o caso mais comum de todos (gráfico\n // de uma série só) sai com a barra ~10% mais estreita do que a banda permite.\n const vao = quantidadeSeries <= 1 ? 0 : espacoInterno\n\n return escalaBanda(quantidadeSeries, [0, banda.larguraBanda], {\n espacoInterno: vao,\n espacoExterno: 0,\n })\n}\n"],"names":[],"mappings":"AAuBO,SAAS,aACd,SACA,OACc;AACd,QAAM,CAAC,IAAI,EAAE,IAAI;AACjB,QAAM,CAAC,IAAI,EAAE,IAAI;AACjB,QAAM,YAAY,KAAK;AAKvB,QAAM,aAAa,cAAc,KAAK,CAAC,OAAO,SAAS,SAAS;AAEhE,QAAM,UAAU,CAAC,UAA0B;AACzC,QAAI,WAAY,SAAQ,KAAK,MAAM;AACnC,QAAI,CAAC,OAAO,SAAS,KAAK,EAAG,QAAO;AACpC,WAAO,MAAO,QAAQ,MAAM,aAAc,KAAK;AAAA,EACjD;AAEA,SAAO,OAAO,OAAO,QAAQ;AAAA,IAC3B,SAAS,IAAoB;AAC3B,UAAI,cAAc,OAAO,GAAI,QAAO;AACpC,aAAO,MAAO,KAAK,OAAO,KAAK,MAAO;AAAA,IACxC;AAAA,IACA;AAAA,IACA;AAAA,EAAA,CACD;AACH;AA2BO,SAAS,YACd,YACA,OACA,SAAsB,CAAA,GACT;AACb,QAAM,gBAAgB,KAAK,IAAI,MAAM,KAAK,IAAI,GAAG,OAAO,iBAAiB,GAAG,CAAC;AAC7E,QAAM,gBAAgB,KAAK,IAAI,GAAG,OAAO,iBAAiB,GAAG;AAC7D,QAAM,CAAC,IAAI,EAAE,IAAI;AACjB,QAAM,IAAI,KAAK,IAAI,GAAG,KAAK,MAAM,UAAU,CAAC;AAI5C,MAAI,MAAM,GAAG;AACX,UAAM,SAAS,CAAC,YAA4B;AAC5C,WAAO,OAAO,OAAO,OAAO;AAAA,MAC1B,cAAc;AAAA,MACd,OAAO;AAAA,MACP,YAAY;AAAA,MACZ,QAAQ,CAAC,YAA4B;AAAA,MACrC,UAAU,CAAC,QAAwB;AAAA,IAAA,CACpC;AAAA,EACH;AAEA,QAAM,SAAS,KAAK,MAAM,KAAK,IAAI,GAAG,IAAI,gBAAgB,gBAAgB,CAAC;AAC3E,QAAM,eAAe,SAAS,IAAI;AAClC,QAAM,SAAS,MAAM,KAAK,KAAK,SAAS,IAAI,kBAAkB;AAE9D,QAAM,UAAU,CAAC,WAA2B,SAAS,QAAQ;AAE7D,SAAO,OAAO,OAAO,QAAQ;AAAA,IAC3B;AAAA,IACA;AAAA,IACA,YAAY;AAAA,IACZ,QAAQ,CAAC,WAA2B,SAAS,QAAQ,SAAS,eAAe;AAAA,IAC7E,SAAS,IAAoB;AAC3B,UAAI,UAAU,EAAG,QAAO;AACxB,YAAM,MAAM,KAAK,OAAO,KAAK,UAAU,KAAK;AAC5C,aAAO,KAAK,IAAI,IAAI,GAAG,KAAK,IAAI,GAAG,GAAG,CAAC;AAAA,IACzC;AAAA,EAAA,CACD;AACH;AASO,SAAS,eACd,OACA,kBACA,gBAAgB,KACH;AAIb,QAAM,MAAM,oBAAoB,IAAI,IAAI;AAExC,SAAO,YAAY,kBAAkB,CAAC,GAAG,MAAM,YAAY,GAAG;AAAA,IAC5D,eAAe;AAAA,IACf,eAAe;AAAA,EAAA,CAChB;AACH;"}
@@ -0,0 +1,53 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const RETICENCIAS = "…";
4
+ function truncarRotulo(texto, maxPorLinha) {
5
+ const limpo = String(texto ?? "");
6
+ if (maxPorLinha <= 0) return "";
7
+ if (limpo.length <= maxPorLinha) return limpo;
8
+ return `${limpo.slice(0, Math.max(0, maxPorLinha - 1)).trimEnd()}${RETICENCIAS}`;
9
+ }
10
+ function fatiarPalavra(palavra, maxPorLinha) {
11
+ const pedacos = [];
12
+ for (let i = 0; i < palavra.length; i += maxPorLinha) {
13
+ pedacos.push(palavra.slice(i, i + maxPorLinha));
14
+ }
15
+ return pedacos;
16
+ }
17
+ function quebrarRotulo(texto, maxPorLinha = 16, maxLinhas = 2) {
18
+ const limpo = String(texto ?? "").trim();
19
+ if (!limpo) return [];
20
+ if (maxPorLinha <= 0 || maxLinhas <= 0) return [];
21
+ if (limpo.length <= maxPorLinha) return [limpo];
22
+ const palavras = limpo.split(/\s+/);
23
+ const linhas = [];
24
+ let atual = "";
25
+ for (const palavra of palavras) {
26
+ if (palavra.length > maxPorLinha) {
27
+ if (atual) {
28
+ linhas.push(atual);
29
+ atual = "";
30
+ }
31
+ const pedacos = fatiarPalavra(palavra, maxPorLinha);
32
+ linhas.push(...pedacos.slice(0, -1));
33
+ atual = pedacos[pedacos.length - 1] ?? "";
34
+ continue;
35
+ }
36
+ const tentativa = atual ? `${atual} ${palavra}` : palavra;
37
+ if (tentativa.length <= maxPorLinha) {
38
+ atual = tentativa;
39
+ } else {
40
+ if (atual) linhas.push(atual);
41
+ atual = palavra;
42
+ }
43
+ }
44
+ if (atual) linhas.push(atual);
45
+ if (linhas.length <= maxLinhas) return linhas;
46
+ const cortadas = linhas.slice(0, maxLinhas);
47
+ const ultima = cortadas[maxLinhas - 1];
48
+ cortadas[maxLinhas - 1] = truncarRotulo(`${ultima}${RETICENCIAS}`, maxPorLinha);
49
+ return cortadas;
50
+ }
51
+ exports.quebrarRotulo = quebrarRotulo;
52
+ exports.truncarRotulo = truncarRotulo;
53
+ //# sourceMappingURL=index215.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index215.cjs","sources":["../src/components/chart/chart-rotulos.ts"],"sourcesContent":["// Quebra e truncamento de rótulo de eixo.\n//\n// Diferença importante em relação ao que uma lib de canvas faz: aqui o retorno é\n// um ARRAY de linhas, não uma string com `\\n`. Em SVG cada linha vira um\n// `<tspan dy>` — não existe quebra automática dentro de `<text>`.\n//\n// O problema é real e vem do domínio: nome de município (\"Santa Bárbara do\n// Pará\") e nome de órgão não cabem embaixo de uma barra, e o default de tudo\n// que é lib é sobrepor os rótulos até virar borrão.\n\n/** Marca de corte. Caractere único pra não roubar espaço de 3 letras. */\nconst RETICENCIAS = '…'\n\n/** Corta no limite, com reticências, sem cortar no meio quando dá pra evitar. */\nexport function truncarRotulo(texto: string, maxPorLinha: number): string {\n const limpo = String(texto ?? '')\n if (maxPorLinha <= 0) return ''\n if (limpo.length <= maxPorLinha) return limpo\n return `${limpo.slice(0, Math.max(0, maxPorLinha - 1)).trimEnd()}${RETICENCIAS}`\n}\n\n/** Fatia uma palavra que sozinha já não cabe na linha (URL, código, matrícula). */\nfunction fatiarPalavra(palavra: string, maxPorLinha: number): string[] {\n const pedacos: string[] = []\n for (let i = 0; i < palavra.length; i += maxPorLinha) {\n pedacos.push(palavra.slice(i, i + maxPorLinha))\n }\n return pedacos\n}\n\n/**\n * Quebra por palavra, respeitando um teto de linhas.\n *\n * Estourando `maxLinhas`, a ÚLTIMA linha recebe reticências — o leitor precisa\n * saber que foi cortado. Silenciosamente truncar é pior que não caber.\n */\nexport function quebrarRotulo(texto: string, maxPorLinha = 16, maxLinhas = 2): string[] {\n const limpo = String(texto ?? '').trim()\n if (!limpo) return []\n if (maxPorLinha <= 0 || maxLinhas <= 0) return []\n if (limpo.length <= maxPorLinha) return [limpo]\n\n const palavras = limpo.split(/\\s+/)\n const linhas: string[] = []\n let atual = ''\n\n for (const palavra of palavras) {\n if (palavra.length > maxPorLinha) {\n if (atual) {\n linhas.push(atual)\n atual = ''\n }\n const pedacos = fatiarPalavra(palavra, maxPorLinha)\n linhas.push(...pedacos.slice(0, -1))\n atual = pedacos[pedacos.length - 1] ?? ''\n continue\n }\n\n const tentativa = atual ? `${atual} ${palavra}` : palavra\n if (tentativa.length <= maxPorLinha) {\n atual = tentativa\n } else {\n if (atual) linhas.push(atual)\n atual = palavra\n }\n }\n if (atual) linhas.push(atual)\n\n if (linhas.length <= maxLinhas) return linhas\n\n const cortadas = linhas.slice(0, maxLinhas)\n const ultima = cortadas[maxLinhas - 1] as string\n cortadas[maxLinhas - 1] = truncarRotulo(`${ultima}${RETICENCIAS}`, maxPorLinha)\n return cortadas\n}\n"],"names":[],"mappings":";;AAWA,MAAM,cAAc;AAGb,SAAS,cAAc,OAAe,aAA6B;AACxE,QAAM,QAAQ,OAAO,SAAS,EAAE;AAChC,MAAI,eAAe,EAAG,QAAO;AAC7B,MAAI,MAAM,UAAU,YAAa,QAAO;AACxC,SAAO,GAAG,MAAM,MAAM,GAAG,KAAK,IAAI,GAAG,cAAc,CAAC,CAAC,EAAE,QAAA,CAAS,GAAG,WAAW;AAChF;AAGA,SAAS,cAAc,SAAiB,aAA+B;AACrE,QAAM,UAAoB,CAAA;AAC1B,WAAS,IAAI,GAAG,IAAI,QAAQ,QAAQ,KAAK,aAAa;AACpD,YAAQ,KAAK,QAAQ,MAAM,GAAG,IAAI,WAAW,CAAC;AAAA,EAChD;AACA,SAAO;AACT;AAQO,SAAS,cAAc,OAAe,cAAc,IAAI,YAAY,GAAa;AACtF,QAAM,QAAQ,OAAO,SAAS,EAAE,EAAE,KAAA;AAClC,MAAI,CAAC,MAAO,QAAO,CAAA;AACnB,MAAI,eAAe,KAAK,aAAa,UAAU,CAAA;AAC/C,MAAI,MAAM,UAAU,YAAa,QAAO,CAAC,KAAK;AAE9C,QAAM,WAAW,MAAM,MAAM,KAAK;AAClC,QAAM,SAAmB,CAAA;AACzB,MAAI,QAAQ;AAEZ,aAAW,WAAW,UAAU;AAC9B,QAAI,QAAQ,SAAS,aAAa;AAChC,UAAI,OAAO;AACT,eAAO,KAAK,KAAK;AACjB,gBAAQ;AAAA,MACV;AACA,YAAM,UAAU,cAAc,SAAS,WAAW;AAClD,aAAO,KAAK,GAAG,QAAQ,MAAM,GAAG,EAAE,CAAC;AACnC,cAAQ,QAAQ,QAAQ,SAAS,CAAC,KAAK;AACvC;AAAA,IACF;AAEA,UAAM,YAAY,QAAQ,GAAG,KAAK,IAAI,OAAO,KAAK;AAClD,QAAI,UAAU,UAAU,aAAa;AACnC,cAAQ;AAAA,IACV,OAAO;AACL,UAAI,MAAO,QAAO,KAAK,KAAK;AAC5B,cAAQ;AAAA,IACV;AAAA,EACF;AACA,MAAI,MAAO,QAAO,KAAK,KAAK;AAE5B,MAAI,OAAO,UAAU,UAAW,QAAO;AAEvC,QAAM,WAAW,OAAO,MAAM,GAAG,SAAS;AAC1C,QAAM,SAAS,SAAS,YAAY,CAAC;AACrC,WAAS,YAAY,CAAC,IAAI,cAAc,GAAG,MAAM,GAAG,WAAW,IAAI,WAAW;AAC9E,SAAO;AACT;;;"}
@@ -0,0 +1,53 @@
1
+ const RETICENCIAS = "…";
2
+ function truncarRotulo(texto, maxPorLinha) {
3
+ const limpo = String(texto ?? "");
4
+ if (maxPorLinha <= 0) return "";
5
+ if (limpo.length <= maxPorLinha) return limpo;
6
+ return `${limpo.slice(0, Math.max(0, maxPorLinha - 1)).trimEnd()}${RETICENCIAS}`;
7
+ }
8
+ function fatiarPalavra(palavra, maxPorLinha) {
9
+ const pedacos = [];
10
+ for (let i = 0; i < palavra.length; i += maxPorLinha) {
11
+ pedacos.push(palavra.slice(i, i + maxPorLinha));
12
+ }
13
+ return pedacos;
14
+ }
15
+ function quebrarRotulo(texto, maxPorLinha = 16, maxLinhas = 2) {
16
+ const limpo = String(texto ?? "").trim();
17
+ if (!limpo) return [];
18
+ if (maxPorLinha <= 0 || maxLinhas <= 0) return [];
19
+ if (limpo.length <= maxPorLinha) return [limpo];
20
+ const palavras = limpo.split(/\s+/);
21
+ const linhas = [];
22
+ let atual = "";
23
+ for (const palavra of palavras) {
24
+ if (palavra.length > maxPorLinha) {
25
+ if (atual) {
26
+ linhas.push(atual);
27
+ atual = "";
28
+ }
29
+ const pedacos = fatiarPalavra(palavra, maxPorLinha);
30
+ linhas.push(...pedacos.slice(0, -1));
31
+ atual = pedacos[pedacos.length - 1] ?? "";
32
+ continue;
33
+ }
34
+ const tentativa = atual ? `${atual} ${palavra}` : palavra;
35
+ if (tentativa.length <= maxPorLinha) {
36
+ atual = tentativa;
37
+ } else {
38
+ if (atual) linhas.push(atual);
39
+ atual = palavra;
40
+ }
41
+ }
42
+ if (atual) linhas.push(atual);
43
+ if (linhas.length <= maxLinhas) return linhas;
44
+ const cortadas = linhas.slice(0, maxLinhas);
45
+ const ultima = cortadas[maxLinhas - 1];
46
+ cortadas[maxLinhas - 1] = truncarRotulo(`${ultima}${RETICENCIAS}`, maxPorLinha);
47
+ return cortadas;
48
+ }
49
+ export {
50
+ quebrarRotulo,
51
+ truncarRotulo
52
+ };
53
+ //# sourceMappingURL=index215.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index215.mjs","sources":["../src/components/chart/chart-rotulos.ts"],"sourcesContent":["// Quebra e truncamento de rótulo de eixo.\n//\n// Diferença importante em relação ao que uma lib de canvas faz: aqui o retorno é\n// um ARRAY de linhas, não uma string com `\\n`. Em SVG cada linha vira um\n// `<tspan dy>` — não existe quebra automática dentro de `<text>`.\n//\n// O problema é real e vem do domínio: nome de município (\"Santa Bárbara do\n// Pará\") e nome de órgão não cabem embaixo de uma barra, e o default de tudo\n// que é lib é sobrepor os rótulos até virar borrão.\n\n/** Marca de corte. Caractere único pra não roubar espaço de 3 letras. */\nconst RETICENCIAS = '…'\n\n/** Corta no limite, com reticências, sem cortar no meio quando dá pra evitar. */\nexport function truncarRotulo(texto: string, maxPorLinha: number): string {\n const limpo = String(texto ?? '')\n if (maxPorLinha <= 0) return ''\n if (limpo.length <= maxPorLinha) return limpo\n return `${limpo.slice(0, Math.max(0, maxPorLinha - 1)).trimEnd()}${RETICENCIAS}`\n}\n\n/** Fatia uma palavra que sozinha já não cabe na linha (URL, código, matrícula). */\nfunction fatiarPalavra(palavra: string, maxPorLinha: number): string[] {\n const pedacos: string[] = []\n for (let i = 0; i < palavra.length; i += maxPorLinha) {\n pedacos.push(palavra.slice(i, i + maxPorLinha))\n }\n return pedacos\n}\n\n/**\n * Quebra por palavra, respeitando um teto de linhas.\n *\n * Estourando `maxLinhas`, a ÚLTIMA linha recebe reticências — o leitor precisa\n * saber que foi cortado. Silenciosamente truncar é pior que não caber.\n */\nexport function quebrarRotulo(texto: string, maxPorLinha = 16, maxLinhas = 2): string[] {\n const limpo = String(texto ?? '').trim()\n if (!limpo) return []\n if (maxPorLinha <= 0 || maxLinhas <= 0) return []\n if (limpo.length <= maxPorLinha) return [limpo]\n\n const palavras = limpo.split(/\\s+/)\n const linhas: string[] = []\n let atual = ''\n\n for (const palavra of palavras) {\n if (palavra.length > maxPorLinha) {\n if (atual) {\n linhas.push(atual)\n atual = ''\n }\n const pedacos = fatiarPalavra(palavra, maxPorLinha)\n linhas.push(...pedacos.slice(0, -1))\n atual = pedacos[pedacos.length - 1] ?? ''\n continue\n }\n\n const tentativa = atual ? `${atual} ${palavra}` : palavra\n if (tentativa.length <= maxPorLinha) {\n atual = tentativa\n } else {\n if (atual) linhas.push(atual)\n atual = palavra\n }\n }\n if (atual) linhas.push(atual)\n\n if (linhas.length <= maxLinhas) return linhas\n\n const cortadas = linhas.slice(0, maxLinhas)\n const ultima = cortadas[maxLinhas - 1] as string\n cortadas[maxLinhas - 1] = truncarRotulo(`${ultima}${RETICENCIAS}`, maxPorLinha)\n return cortadas\n}\n"],"names":[],"mappings":"AAWA,MAAM,cAAc;AAGb,SAAS,cAAc,OAAe,aAA6B;AACxE,QAAM,QAAQ,OAAO,SAAS,EAAE;AAChC,MAAI,eAAe,EAAG,QAAO;AAC7B,MAAI,MAAM,UAAU,YAAa,QAAO;AACxC,SAAO,GAAG,MAAM,MAAM,GAAG,KAAK,IAAI,GAAG,cAAc,CAAC,CAAC,EAAE,QAAA,CAAS,GAAG,WAAW;AAChF;AAGA,SAAS,cAAc,SAAiB,aAA+B;AACrE,QAAM,UAAoB,CAAA;AAC1B,WAAS,IAAI,GAAG,IAAI,QAAQ,QAAQ,KAAK,aAAa;AACpD,YAAQ,KAAK,QAAQ,MAAM,GAAG,IAAI,WAAW,CAAC;AAAA,EAChD;AACA,SAAO;AACT;AAQO,SAAS,cAAc,OAAe,cAAc,IAAI,YAAY,GAAa;AACtF,QAAM,QAAQ,OAAO,SAAS,EAAE,EAAE,KAAA;AAClC,MAAI,CAAC,MAAO,QAAO,CAAA;AACnB,MAAI,eAAe,KAAK,aAAa,UAAU,CAAA;AAC/C,MAAI,MAAM,UAAU,YAAa,QAAO,CAAC,KAAK;AAE9C,QAAM,WAAW,MAAM,MAAM,KAAK;AAClC,QAAM,SAAmB,CAAA;AACzB,MAAI,QAAQ;AAEZ,aAAW,WAAW,UAAU;AAC9B,QAAI,QAAQ,SAAS,aAAa;AAChC,UAAI,OAAO;AACT,eAAO,KAAK,KAAK;AACjB,gBAAQ;AAAA,MACV;AACA,YAAM,UAAU,cAAc,SAAS,WAAW;AAClD,aAAO,KAAK,GAAG,QAAQ,MAAM,GAAG,EAAE,CAAC;AACnC,cAAQ,QAAQ,QAAQ,SAAS,CAAC,KAAK;AACvC;AAAA,IACF;AAEA,UAAM,YAAY,QAAQ,GAAG,KAAK,IAAI,OAAO,KAAK;AAClD,QAAI,UAAU,UAAU,aAAa;AACnC,cAAQ;AAAA,IACV,OAAO;AACL,UAAI,MAAO,QAAO,KAAK,KAAK;AAC5B,cAAQ;AAAA,IACV;AAAA,EACF;AACA,MAAI,MAAO,QAAO,KAAK,KAAK;AAE5B,MAAI,OAAO,UAAU,UAAW,QAAO;AAEvC,QAAM,WAAW,OAAO,MAAM,GAAG,SAAS;AAC1C,QAAM,SAAS,SAAS,YAAY,CAAC;AACrC,WAAS,YAAY,CAAC,IAAI,cAAc,GAAG,MAAM,GAAG,WAAW,IAAI,WAAW;AAC9E,SAAO;AACT;"}
@@ -0,0 +1,53 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const DOMINIO_VAZIO = { min: 0, max: 1, ticks: [0, 0.25, 0.5, 0.75, 1] };
4
+ function passoBonito(bruto, paraCima = false) {
5
+ if (!Number.isFinite(bruto) || bruto <= 0) return 1;
6
+ const expoente = Math.floor(Math.log10(bruto));
7
+ const fracao = bruto / Math.pow(10, expoente);
8
+ let bonita;
9
+ if (paraCima) {
10
+ if (fracao < 1.5) bonita = 1;
11
+ else if (fracao < 3) bonita = 2;
12
+ else if (fracao < 7) bonita = 5;
13
+ else bonita = 10;
14
+ } else {
15
+ if (fracao <= 1) bonita = 1;
16
+ else if (fracao <= 2) bonita = 2;
17
+ else if (fracao <= 5) bonita = 5;
18
+ else bonita = 10;
19
+ }
20
+ return bonita * Math.pow(10, expoente);
21
+ }
22
+ function dominioBonito(min, max, opcoes = {}) {
23
+ const alvo = Math.max(2, Math.floor(opcoes.alvo ?? 5));
24
+ if (!Number.isFinite(min) || !Number.isFinite(max)) {
25
+ return { ...DOMINIO_VAZIO, ticks: [...DOMINIO_VAZIO.ticks] };
26
+ }
27
+ let baixo = Math.min(min, max);
28
+ let alto = Math.max(min, max);
29
+ if (opcoes.incluirZero) {
30
+ baixo = Math.min(baixo, 0);
31
+ alto = Math.max(alto, 0);
32
+ }
33
+ if (baixo === alto) {
34
+ if (baixo === 0) return { min: 0, max: 1, ticks: [0, 0.25, 0.5, 0.75, 1] };
35
+ const folga = Math.abs(baixo) * 0.5;
36
+ baixo -= folga;
37
+ alto += folga;
38
+ }
39
+ const amplitude = passoBonito(alto - baixo, false);
40
+ const passo = passoBonito(amplitude / (alvo - 1), true);
41
+ const inicio = Math.floor(baixo / passo) * passo;
42
+ const fim = Math.ceil(alto / passo) * passo;
43
+ const casas = Math.max(0, Math.min(10, -Math.floor(Math.log10(passo)))) + 1;
44
+ const quantidade = Math.round((fim - inicio) / passo);
45
+ const ticks = [];
46
+ for (let i = 0; i <= quantidade; i++) {
47
+ ticks.push(Number((inicio + i * passo).toFixed(casas)));
48
+ }
49
+ return { min: inicio, max: fim, ticks };
50
+ }
51
+ exports.dominioBonito = dominioBonito;
52
+ exports.passoBonito = passoBonito;
53
+ //# sourceMappingURL=index216.cjs.map