@orbe-agro/client-core 5.6.118 → 5.6.119

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 (80) hide show
  1. package/dist/@types/base/@types/filters/index.d.ts +60 -0
  2. package/dist/@types/base/@types/filters/index.d.ts.map +1 -0
  3. package/dist/@types/base/@types/index.d.ts +1 -0
  4. package/dist/@types/base/@types/index.d.ts.map +1 -1
  5. package/dist/@types/base/components/filters/DynamicFilterField.d.ts +23 -0
  6. package/dist/@types/base/components/filters/DynamicFilterField.d.ts.map +1 -0
  7. package/dist/@types/base/components/filters/DynamicFilterPanel.d.ts +30 -0
  8. package/dist/@types/base/components/filters/DynamicFilterPanel.d.ts.map +1 -0
  9. package/dist/@types/base/components/filters/index.d.ts +3 -0
  10. package/dist/@types/base/components/filters/index.d.ts.map +1 -0
  11. package/dist/@types/base/components/index.d.ts +1 -0
  12. package/dist/@types/base/components/index.d.ts.map +1 -1
  13. package/dist/@types/base/configs/endpoints.config/centralNfe/centralNfe.d.ts +4 -0
  14. package/dist/@types/base/configs/endpoints.config/centralNfe/centralNfe.d.ts.map +1 -1
  15. package/dist/@types/base/configs/endpoints.config/centralNfe/config/nfe.d.ts +4 -0
  16. package/dist/@types/base/configs/endpoints.config/centralNfe/config/nfe.d.ts.map +1 -1
  17. package/dist/@types/base/configs/endpoints.config/endpoints.navigation.d.ts +5 -0
  18. package/dist/@types/base/configs/endpoints.config/endpoints.navigation.d.ts.map +1 -1
  19. package/dist/@types/base/configs/endpoints.config/originacao/config/saldoTicket.d.ts +1 -0
  20. package/dist/@types/base/configs/endpoints.config/originacao/config/saldoTicket.d.ts.map +1 -1
  21. package/dist/@types/base/configs/endpoints.config/originacao/originacao.d.ts +1 -0
  22. package/dist/@types/base/configs/endpoints.config/originacao/originacao.d.ts.map +1 -1
  23. package/dist/@types/base/hooks/filters/useFilterMetadata.d.ts +26 -0
  24. package/dist/@types/base/hooks/filters/useFilterMetadata.d.ts.map +1 -0
  25. package/dist/@types/base/hooks/index.d.ts +1 -0
  26. package/dist/@types/base/hooks/index.d.ts.map +1 -1
  27. package/dist/@types/base/services/modules/centralNfe/nfe/NfeService.d.ts +1 -0
  28. package/dist/@types/base/services/modules/centralNfe/nfe/NfeService.d.ts.map +1 -1
  29. package/dist/@types/base/services/modules/originacao/saldoTicket/saldoTicketService.d.ts +2 -0
  30. package/dist/@types/base/services/modules/originacao/saldoTicket/saldoTicketService.d.ts.map +1 -1
  31. package/dist/@types/base/utils/filters/groupFilterFields.d.ts +15 -0
  32. package/dist/@types/base/utils/filters/groupFilterFields.d.ts.map +1 -0
  33. package/dist/@types/base/utils/index.d.ts +1 -0
  34. package/dist/@types/base/utils/index.d.ts.map +1 -1
  35. package/dist/base/@types/filters/index.js +2 -0
  36. package/dist/base/@types/filters/index.js.map +1 -0
  37. package/dist/base/@types/index.js +1 -0
  38. package/dist/base/@types/index.js.map +1 -1
  39. package/dist/base/components/filters/DynamicFilterField.js +156 -0
  40. package/dist/base/components/filters/DynamicFilterField.js.map +1 -0
  41. package/dist/base/components/filters/DynamicFilterPanel.js +19 -0
  42. package/dist/base/components/filters/DynamicFilterPanel.js.map +1 -0
  43. package/dist/base/components/filters/index.js +7 -0
  44. package/dist/base/components/filters/index.js.map +1 -0
  45. package/dist/base/components/index.js +11 -6
  46. package/dist/base/components/index.js.map +1 -1
  47. package/dist/base/configs/endpoints.config/centralNfe/config/nfe.js +1 -0
  48. package/dist/base/configs/endpoints.config/centralNfe/config/nfe.js.map +1 -1
  49. package/dist/base/configs/endpoints.config/originacao/config/saldoTicket.js +2 -1
  50. package/dist/base/configs/endpoints.config/originacao/config/saldoTicket.js.map +1 -1
  51. package/dist/base/hooks/filters/useFilterMetadata.js +23 -0
  52. package/dist/base/hooks/filters/useFilterMetadata.js.map +1 -0
  53. package/dist/base/hooks/index.js +2 -0
  54. package/dist/base/hooks/index.js.map +1 -1
  55. package/dist/base/index.js +230 -222
  56. package/dist/base/index.js.map +1 -1
  57. package/dist/base/services/modules/centralNfe/index.js +2 -1
  58. package/dist/base/services/modules/centralNfe/nfe/NfeService.js +7 -0
  59. package/dist/base/services/modules/centralNfe/nfe/NfeService.js.map +1 -1
  60. package/dist/base/services/modules/originacao/saldoTicket/saldoTicketService.js +7 -0
  61. package/dist/base/services/modules/originacao/saldoTicket/saldoTicketService.js.map +1 -1
  62. package/dist/base/utils/filters/groupFilterFields.js +56 -0
  63. package/dist/base/utils/filters/groupFilterFields.js.map +1 -0
  64. package/dist/base/utils/index.js +2 -0
  65. package/dist/base/utils/index.js.map +1 -1
  66. package/lib/base/@types/filters/index.ts +87 -0
  67. package/lib/base/@types/index.ts +1 -0
  68. package/lib/base/components/filters/DynamicFilterField.tsx +213 -0
  69. package/lib/base/components/filters/DynamicFilterPanel.tsx +50 -0
  70. package/lib/base/components/filters/index.ts +2 -0
  71. package/lib/base/components/index.ts +4 -1
  72. package/lib/base/configs/endpoints.config/centralNfe/config/nfe.ts +1 -0
  73. package/lib/base/configs/endpoints.config/originacao/config/saldoTicket.ts +2 -1
  74. package/lib/base/hooks/filters/useFilterMetadata.ts +43 -0
  75. package/lib/base/hooks/index.ts +2 -1
  76. package/lib/base/services/modules/centralNfe/nfe/NfeService.ts +8 -0
  77. package/lib/base/services/modules/originacao/saldoTicket/saldoTicketService.ts +8 -0
  78. package/lib/base/utils/filters/groupFilterFields.ts +93 -0
  79. package/lib/base/utils/index.ts +1 -0
  80. package/package.json +1 -1
@@ -0,0 +1,93 @@
1
+ import type {
2
+ IFilterFieldDescriptor,
3
+ IFilterRangeGroup,
4
+ TFilterRenderItem,
5
+ IFilterStandaloneField,
6
+ } from '@base/@types/filters'
7
+
8
+ /**
9
+ * Agrupa IFilterFieldDescriptors em itens renderizáveis.
10
+ *
11
+ * - Campos com o mesmo rangeGroup não-nulo são fundidos em um único IFilterRangeGroup.
12
+ * - Todos os demais campos se tornam IFilterStandaloneField.
13
+ * - A ordem da lista original é preservada: o grupo aparece na posição do seu primeiro campo.
14
+ * - Se um rangeGroup tiver menos de 2 campos, cada um é tratado como standalone (fallback seguro).
15
+ *
16
+ * @example
17
+ * // dataEnvioDe + dataEnvioAte (mesmo rangeGroup) → IFilterRangeGroup { startField, endField }
18
+ * // id, operacao, businessPartnerId → IFilterStandaloneField[]
19
+ */
20
+ export function groupFilterFields(fields: IFilterFieldDescriptor[]): TFilterRenderItem[] {
21
+ // Primeiro passo: coletar todos os campos de cada rangeGroup
22
+ const rangeGroupMap = new Map<string, IFilterFieldDescriptor[]>()
23
+ for (const field of fields) {
24
+ if (field.rangeGroup) {
25
+ if (!rangeGroupMap.has(field.rangeGroup)) {
26
+ rangeGroupMap.set(field.rangeGroup, [])
27
+ }
28
+ rangeGroupMap.get(field.rangeGroup)!.push(field)
29
+ }
30
+ }
31
+
32
+ // Segundo passo: percorrer os campos mantendo a ordem, inserindo o grupo
33
+ // na posição do seu primeiro membro
34
+ const result: TFilterRenderItem[] = []
35
+ const rangeGroupInserted = new Set<string>()
36
+
37
+ for (const field of fields) {
38
+ if (field.rangeGroup) {
39
+ // Apenas insere o grupo uma vez (na posição do primeiro campo)
40
+ if (!rangeGroupInserted.has(field.rangeGroup)) {
41
+ rangeGroupInserted.add(field.rangeGroup)
42
+ const groupFields = rangeGroupMap.get(field.rangeGroup)!
43
+
44
+ // Fallback seguro: se o backend enviar apenas um campo do par, trata como standalone
45
+ if (groupFields.length < 2) {
46
+ result.push({ kind: 'standalone', descriptor: groupFields[0] })
47
+ continue
48
+ }
49
+
50
+ // Garante que o campo "De" (início) vem antes de "Ate"/"Até" (fim).
51
+ // Não pode usar localeCompare simples pois "Ate" < "De" alfabeticamente.
52
+ const sorted = [...groupFields].sort((a, b) => {
53
+ const aIsDe = /De$/i.test(a.field)
54
+ const bIsDe = /De$/i.test(b.field)
55
+ if (aIsDe && !bIsDe) return -1
56
+ if (!aIsDe && bIsDe) return 1
57
+ return a.field.localeCompare(b.field)
58
+ })
59
+
60
+ const rangeGroup: IFilterRangeGroup = {
61
+ kind: 'range',
62
+ rangeGroup: field.rangeGroup,
63
+ label: deriveRangeLabel(sorted),
64
+ startField: sorted[0],
65
+ endField: sorted[1],
66
+ }
67
+ result.push(rangeGroup)
68
+ }
69
+ } else {
70
+ const standalone: IFilterStandaloneField = {
71
+ kind: 'standalone',
72
+ descriptor: field,
73
+ }
74
+ result.push(standalone)
75
+ }
76
+ }
77
+
78
+ return result
79
+ }
80
+
81
+ /**
82
+ * Deriva um label legível para o grupo de range.
83
+ * Remove sufixos "De", "Até" e "Ate" do label do primeiro campo.
84
+ *
85
+ * @example
86
+ * // "Data Envio De" → "Data Envio"
87
+ * // "Data Envio Até" → "Data Envio"
88
+ */
89
+ function deriveRangeLabel(fields: IFilterFieldDescriptor[]): string {
90
+ if (fields.length === 0) return ''
91
+ const raw = fields[0].label
92
+ return raw.replace(/\s+(De|Até|Ate)$/i, '').trim() || raw
93
+ }
@@ -1,4 +1,5 @@
1
1
  // Utils exports from base
2
2
  export * from './logo';
3
3
  export * from './validateEmail/validateEmail';
4
+ export * from './filters/groupFilterFields';
4
5
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@orbe-agro/client-core",
3
- "version": "5.6.118",
3
+ "version": "5.6.119",
4
4
  "description": "Biblioteca principal de componentes e utilidades para os microfrontends do Orbe Agro.",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",