@orbe-agro/client-core 5.6.117 → 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 (105) 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/@types/models/compras/RequisicaoCompra.d.ts +3 -0
  6. package/dist/@types/base/@types/models/compras/RequisicaoCompra.d.ts.map +1 -1
  7. package/dist/@types/base/@types/models/performance/categoria.d.ts +2 -1
  8. package/dist/@types/base/@types/models/performance/categoria.d.ts.map +1 -1
  9. package/dist/@types/base/components/filters/DynamicFilterField.d.ts +23 -0
  10. package/dist/@types/base/components/filters/DynamicFilterField.d.ts.map +1 -0
  11. package/dist/@types/base/components/filters/DynamicFilterPanel.d.ts +30 -0
  12. package/dist/@types/base/components/filters/DynamicFilterPanel.d.ts.map +1 -0
  13. package/dist/@types/base/components/filters/index.d.ts +3 -0
  14. package/dist/@types/base/components/filters/index.d.ts.map +1 -0
  15. package/dist/@types/base/components/index.d.ts +1 -0
  16. package/dist/@types/base/components/index.d.ts.map +1 -1
  17. package/dist/@types/base/configs/endpoints.config/centralNfe/centralNfe.d.ts +4 -0
  18. package/dist/@types/base/configs/endpoints.config/centralNfe/centralNfe.d.ts.map +1 -1
  19. package/dist/@types/base/configs/endpoints.config/centralNfe/config/nfe.d.ts +4 -0
  20. package/dist/@types/base/configs/endpoints.config/centralNfe/config/nfe.d.ts.map +1 -1
  21. package/dist/@types/base/configs/endpoints.config/compras/compras.d.ts +4 -0
  22. package/dist/@types/base/configs/endpoints.config/compras/compras.d.ts.map +1 -1
  23. package/dist/@types/base/configs/endpoints.config/compras/config/cadastroEstrategiaLiberacaoValor.d.ts +4 -0
  24. package/dist/@types/base/configs/endpoints.config/compras/config/cadastroEstrategiaLiberacaoValor.d.ts.map +1 -1
  25. package/dist/@types/base/configs/endpoints.config/endpoints.navigation.d.ts +9 -0
  26. package/dist/@types/base/configs/endpoints.config/endpoints.navigation.d.ts.map +1 -1
  27. package/dist/@types/base/configs/endpoints.config/originacao/config/saldoTicket.d.ts +1 -0
  28. package/dist/@types/base/configs/endpoints.config/originacao/config/saldoTicket.d.ts.map +1 -1
  29. package/dist/@types/base/configs/endpoints.config/originacao/originacao.d.ts +1 -0
  30. package/dist/@types/base/configs/endpoints.config/originacao/originacao.d.ts.map +1 -1
  31. package/dist/@types/base/configs/navigation.config/submenu/performance/cadastros.submenu.d.ts.map +1 -1
  32. package/dist/@types/base/hooks/filters/useFilterMetadata.d.ts +26 -0
  33. package/dist/@types/base/hooks/filters/useFilterMetadata.d.ts.map +1 -0
  34. package/dist/@types/base/hooks/index.d.ts +1 -0
  35. package/dist/@types/base/hooks/index.d.ts.map +1 -1
  36. package/dist/@types/base/services/modules/centralNfe/nfe/NfeService.d.ts +1 -0
  37. package/dist/@types/base/services/modules/centralNfe/nfe/NfeService.d.ts.map +1 -1
  38. package/dist/@types/base/services/modules/compras/cadastroEstrategiaLiberacaoValor/CadastroEstrategiaLiberacaoValorService.d.ts +7 -0
  39. package/dist/@types/base/services/modules/compras/cadastroEstrategiaLiberacaoValor/CadastroEstrategiaLiberacaoValorService.d.ts.map +1 -1
  40. package/dist/@types/base/services/modules/originacao/saldoTicket/saldoTicketService.d.ts +2 -0
  41. package/dist/@types/base/services/modules/originacao/saldoTicket/saldoTicketService.d.ts.map +1 -1
  42. package/dist/@types/base/utils/filters/groupFilterFields.d.ts +15 -0
  43. package/dist/@types/base/utils/filters/groupFilterFields.d.ts.map +1 -0
  44. package/dist/@types/base/utils/index.d.ts +1 -0
  45. package/dist/@types/base/utils/index.d.ts.map +1 -1
  46. package/dist/base/@types/filters/index.js +2 -0
  47. package/dist/base/@types/filters/index.js.map +1 -0
  48. package/dist/base/@types/index.js +1 -0
  49. package/dist/base/@types/index.js.map +1 -1
  50. package/dist/base/components/filters/DynamicFilterField.js +156 -0
  51. package/dist/base/components/filters/DynamicFilterField.js.map +1 -0
  52. package/dist/base/components/filters/DynamicFilterPanel.js +19 -0
  53. package/dist/base/components/filters/DynamicFilterPanel.js.map +1 -0
  54. package/dist/base/components/filters/index.js +7 -0
  55. package/dist/base/components/filters/index.js.map +1 -0
  56. package/dist/base/components/index.js +11 -6
  57. package/dist/base/components/index.js.map +1 -1
  58. package/dist/base/configs/endpoints.config/centralNfe/config/nfe.js +1 -0
  59. package/dist/base/configs/endpoints.config/centralNfe/config/nfe.js.map +1 -1
  60. package/dist/base/configs/endpoints.config/compras/config/cadastroEstrategiaLiberacaoValor.js +2 -1
  61. package/dist/base/configs/endpoints.config/compras/config/cadastroEstrategiaLiberacaoValor.js.map +1 -1
  62. package/dist/base/configs/endpoints.config/originacao/config/saldoTicket.js +2 -1
  63. package/dist/base/configs/endpoints.config/originacao/config/saldoTicket.js.map +1 -1
  64. package/dist/base/configs/navigation.config/submenu/performance/cadastros.submenu.js +0 -2
  65. package/dist/base/configs/navigation.config/submenu/performance/cadastros.submenu.js.map +1 -1
  66. package/dist/base/hooks/filters/useFilterMetadata.js +23 -0
  67. package/dist/base/hooks/filters/useFilterMetadata.js.map +1 -0
  68. package/dist/base/hooks/index.js +2 -0
  69. package/dist/base/hooks/index.js.map +1 -1
  70. package/dist/base/index.js +232 -223
  71. package/dist/base/index.js.map +1 -1
  72. package/dist/base/services/index.js +2 -1
  73. package/dist/base/services/modules/centralNfe/index.js +2 -1
  74. package/dist/base/services/modules/centralNfe/nfe/NfeService.js +7 -0
  75. package/dist/base/services/modules/centralNfe/nfe/NfeService.js.map +1 -1
  76. package/dist/base/services/modules/compras/cadastroEstrategiaLiberacaoValor/CadastroEstrategiaLiberacaoValorService.js +8 -0
  77. package/dist/base/services/modules/compras/cadastroEstrategiaLiberacaoValor/CadastroEstrategiaLiberacaoValorService.js.map +1 -1
  78. package/dist/base/services/modules/compras/index.js +2 -1
  79. package/dist/base/services/modules/index.js +2 -1
  80. package/dist/base/services/modules/originacao/saldoTicket/saldoTicketService.js +7 -0
  81. package/dist/base/services/modules/originacao/saldoTicket/saldoTicketService.js.map +1 -1
  82. package/dist/base/utils/filters/groupFilterFields.js +56 -0
  83. package/dist/base/utils/filters/groupFilterFields.js.map +1 -0
  84. package/dist/base/utils/index.js +2 -0
  85. package/dist/base/utils/index.js.map +1 -1
  86. package/lib/base/@types/filters/index.ts +87 -0
  87. package/lib/base/@types/index.ts +1 -0
  88. package/lib/base/@types/models/compras/RequisicaoCompra.ts +3 -0
  89. package/lib/base/@types/models/performance/categoria.ts +3 -1
  90. package/lib/base/components/filters/DynamicFilterField.tsx +213 -0
  91. package/lib/base/components/filters/DynamicFilterPanel.tsx +50 -0
  92. package/lib/base/components/filters/index.ts +2 -0
  93. package/lib/base/components/index.ts +4 -1
  94. package/lib/base/configs/endpoints.config/centralNfe/config/nfe.ts +1 -0
  95. package/lib/base/configs/endpoints.config/compras/config/cadastroEstrategiaLiberacaoValor.ts +1 -0
  96. package/lib/base/configs/endpoints.config/originacao/config/saldoTicket.ts +2 -1
  97. package/lib/base/configs/navigation.config/submenu/performance/cadastros.submenu.ts +0 -2
  98. package/lib/base/hooks/filters/useFilterMetadata.ts +43 -0
  99. package/lib/base/hooks/index.ts +2 -1
  100. package/lib/base/services/modules/centralNfe/nfe/NfeService.ts +8 -0
  101. package/lib/base/services/modules/compras/cadastroEstrategiaLiberacaoValor/CadastroEstrategiaLiberacaoValorService.ts +8 -0
  102. package/lib/base/services/modules/originacao/saldoTicket/saldoTicketService.ts +8 -0
  103. package/lib/base/utils/filters/groupFilterFields.ts +93 -0
  104. package/lib/base/utils/index.ts +1 -0
  105. package/package.json +1 -1
@@ -0,0 +1,156 @@
1
+ import { jsx } from "react/jsx-runtime";
2
+ import { useFormContext, Controller } from "react-hook-form";
3
+ import "../../../@ecme/components/ui/index.js";
4
+ import DatePickerRange from "../../../@ecme/components/ui/DatePicker/DatePickerRange.js";
5
+ import FormItem from "../../../@ecme/components/ui/Form/FormItem.js";
6
+ import Select from "../../../@ecme/components/ui/Select/Select.js";
7
+ import { DatePicker } from "../../../@ecme/components/ui/DatePicker/index.js";
8
+ import Input from "../../../@ecme/components/ui/Input/Input.js";
9
+ const DynamicFilterField = ({ item, lookupRegistry }) => {
10
+ if (item.kind === "range") {
11
+ return /* @__PURE__ */ jsx(RangeField, { item });
12
+ }
13
+ return /* @__PURE__ */ jsx(StandaloneField, { item, lookupRegistry });
14
+ };
15
+ const RangeField = ({ item }) => {
16
+ const { setValue, watch } = useFormContext();
17
+ const startValue = watch(item.startField.field);
18
+ const endValue = watch(item.endField.field);
19
+ const rangeValue = [
20
+ startValue ? /* @__PURE__ */ new Date(`${startValue}T00:00:00`) : null,
21
+ endValue ? /* @__PURE__ */ new Date(`${endValue}T00:00:00`) : null
22
+ ];
23
+ const handleChange = (value) => {
24
+ const [start, end] = value ?? [null, null];
25
+ setValue(item.startField.field, start ? formatDate(start) : null, { shouldDirty: true });
26
+ setValue(item.endField.field, end ? formatDate(end) : null, { shouldDirty: true });
27
+ };
28
+ return /* @__PURE__ */ jsx(FormItem, { className: "text-xs", label: item.label, children: /* @__PURE__ */ jsx(
29
+ DatePickerRange,
30
+ {
31
+ size: "sm",
32
+ value: rangeValue,
33
+ onChange: handleChange
34
+ }
35
+ ) });
36
+ };
37
+ const StandaloneField = ({ item, lookupRegistry }) => {
38
+ const { descriptor } = item;
39
+ const { control } = useFormContext();
40
+ if (descriptor.lookup) {
41
+ const LookupComponent = lookupRegistry?.[descriptor.lookup.resource];
42
+ if (LookupComponent) {
43
+ return /* @__PURE__ */ jsx(
44
+ LookupComponent,
45
+ {
46
+ name: descriptor.field,
47
+ label: descriptor.label
48
+ }
49
+ );
50
+ }
51
+ console.warn(
52
+ `[DynamicFilterField] lookup resource "${descriptor.lookup.resource}" não encontrado no registry. Renderizando como input de texto para o campo "${descriptor.field}".`
53
+ );
54
+ }
55
+ if (descriptor.allowedValues && descriptor.allowedValues.length > 0) {
56
+ const options = descriptor.allowedValues.map((opt) => ({
57
+ value: opt.value,
58
+ label: opt.label
59
+ }));
60
+ return /* @__PURE__ */ jsx(
61
+ Controller,
62
+ {
63
+ name: descriptor.field,
64
+ control,
65
+ render: ({ field, fieldState: { error } }) => /* @__PURE__ */ jsx(
66
+ FormItem,
67
+ {
68
+ className: "text-xs",
69
+ label: descriptor.label,
70
+ invalid: !!error,
71
+ errorMessage: error?.message,
72
+ children: /* @__PURE__ */ jsx(
73
+ Select,
74
+ {
75
+ isClearable: true,
76
+ size: "sm",
77
+ placeholder: "Selecione uma opção",
78
+ options,
79
+ value: options.find((o) => o.value === field.value) ?? null,
80
+ onChange: (opt) => field.onChange(opt?.value ?? null),
81
+ onBlur: field.onBlur
82
+ }
83
+ )
84
+ }
85
+ )
86
+ }
87
+ );
88
+ }
89
+ if (descriptor.dataType === "DATE") {
90
+ return /* @__PURE__ */ jsx(
91
+ Controller,
92
+ {
93
+ name: descriptor.field,
94
+ control,
95
+ render: ({ field, fieldState: { error } }) => /* @__PURE__ */ jsx(
96
+ FormItem,
97
+ {
98
+ className: "text-xs",
99
+ label: descriptor.label,
100
+ invalid: !!error,
101
+ errorMessage: error?.message,
102
+ children: /* @__PURE__ */ jsx(
103
+ DatePicker,
104
+ {
105
+ size: "sm",
106
+ className: "text-xs",
107
+ placeholder: "Selecione uma data",
108
+ value: field.value ? /* @__PURE__ */ new Date(`${field.value}T00:00:00`) : null,
109
+ onChange: (date) => field.onChange(date ? formatDate(date) : null),
110
+ onBlur: field.onBlur
111
+ }
112
+ )
113
+ }
114
+ )
115
+ }
116
+ );
117
+ }
118
+ const inputType = descriptor.dataType === "NUMBER" ? "number" : "text";
119
+ return /* @__PURE__ */ jsx(
120
+ Controller,
121
+ {
122
+ name: descriptor.field,
123
+ control,
124
+ render: ({ field, fieldState: { error } }) => /* @__PURE__ */ jsx(
125
+ FormItem,
126
+ {
127
+ className: "text-xs",
128
+ label: descriptor.label,
129
+ invalid: !!error,
130
+ errorMessage: error?.message,
131
+ children: /* @__PURE__ */ jsx(
132
+ Input,
133
+ {
134
+ ...field,
135
+ size: "sm",
136
+ type: inputType,
137
+ placeholder: `${descriptor.label}`,
138
+ value: field.value ?? "",
139
+ onChange: (e) => field.onChange(e.target.value || null)
140
+ }
141
+ )
142
+ }
143
+ )
144
+ }
145
+ );
146
+ };
147
+ function formatDate(date) {
148
+ const y = date.getFullYear();
149
+ const m = String(date.getMonth() + 1).padStart(2, "0");
150
+ const d = String(date.getDate()).padStart(2, "0");
151
+ return `${y}-${m}-${d}`;
152
+ }
153
+ export {
154
+ DynamicFilterField as default
155
+ };
156
+ //# sourceMappingURL=DynamicFilterField.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DynamicFilterField.js","sources":["../../../../lib/base/components/filters/DynamicFilterField.tsx"],"sourcesContent":["import React from 'react'\nimport { Controller, useFormContext } from 'react-hook-form'\nimport { DatePicker, FormItem, Input, Select } from '@/components/ui'\nimport DatePickerRange from '@/components/ui/DatePicker/DatePickerRange'\nimport type {\n TFilterRenderItem,\n IFilterStandaloneField,\n IFilterRangeGroup,\n TLookupComponentRegistry,\n} from '@base/@types/filters'\n\ninterface DynamicFilterFieldProps {\n item: TFilterRenderItem\n lookupRegistry?: TLookupComponentRegistry\n}\n\n/**\n * Renderiza o componente de formulário correto para um TFilterRenderItem.\n *\n * Regras de renderização:\n * - `kind === 'range'` → DatePickerRange (dois campos DATE+BETWEEN fundidos)\n * - `kind === 'standalone'`:\n * - `lookup != null` → componente do lookupRegistry (async select)\n * - `allowedValues != null` → Select com opções fixas (ENUM)\n * - `dataType === 'DATE'` → DatePicker\n * - `dataType === 'NUMBER'` → Input type=\"number\"\n * - `dataType === 'STRING'` → Input type=\"text\"\n *\n * Deve ser usado DENTRO de um FormProvider.\n */\nconst DynamicFilterField: React.FC<DynamicFilterFieldProps> = ({ item, lookupRegistry }) => {\n if (item.kind === 'range') {\n return <RangeField item={item} />\n }\n return <StandaloneField item={item} lookupRegistry={lookupRegistry} />\n}\n\n// ---------------------------------------------------------------------------\n// Range field: DatePickerRange gerenciando dois campos reais no form\n// ---------------------------------------------------------------------------\n\ninterface RangeFieldProps {\n item: IFilterRangeGroup\n}\n\nconst RangeField: React.FC<RangeFieldProps> = ({ item }) => {\n const { setValue, watch } = useFormContext()\n\n const startValue = watch(item.startField.field)\n const endValue = watch(item.endField.field)\n\n // Reconstrói o tuple [Date|null, Date|null] a partir das strings armazenadas.\n // Usa 'T00:00:00' para forçar parse em horário local (sem isso, 'YYYY-MM-DD'\n // é interpretado como UTC midnight e exibe um dia anterior no fuso UTC-3).\n const rangeValue: [Date | null, Date | null] = [\n startValue ? new Date(`${startValue}T00:00:00`) : null,\n endValue ? new Date(`${endValue}T00:00:00`) : null,\n ]\n\n const handleChange = (value: [Date | null, Date | null]) => {\n const [start, end] = value ?? [null, null]\n setValue(item.startField.field, start ? formatDate(start) : null, { shouldDirty: true })\n setValue(item.endField.field, end ? formatDate(end) : null, { shouldDirty: true })\n }\n\n return (\n <FormItem className=\"text-xs\" label={item.label}>\n <DatePickerRange\n size=\"sm\"\n value={rangeValue}\n onChange={handleChange}\n />\n </FormItem>\n )\n}\n\n// ---------------------------------------------------------------------------\n// Standalone field: delega para lookup registry ou input genérico\n// ---------------------------------------------------------------------------\n\ninterface StandaloneFieldProps {\n item: IFilterStandaloneField\n lookupRegistry?: TLookupComponentRegistry\n}\n\nconst StandaloneField: React.FC<StandaloneFieldProps> = ({ item, lookupRegistry }) => {\n const { descriptor } = item\n const { control } = useFormContext()\n\n // Lookup: delega para o componente registrado no microfrontend\n if (descriptor.lookup) {\n const LookupComponent = lookupRegistry?.[descriptor.lookup.resource]\n if (LookupComponent) {\n return (\n <LookupComponent\n name={descriptor.field}\n label={descriptor.label}\n />\n )\n }\n // Fallback: lookup não registrado no registry → input de texto simples\n console.warn(\n `[DynamicFilterField] lookup resource \"${descriptor.lookup.resource}\" não encontrado no registry. ` +\n `Renderizando como input de texto para o campo \"${descriptor.field}\".`\n )\n // Continua para renderizar o input de texto (fallback seguro)\n }\n\n // ENUM: select com opções fixas vindas dos metadados\n if (descriptor.allowedValues && descriptor.allowedValues.length > 0) {\n const options = descriptor.allowedValues.map((opt) => ({\n value: opt.value,\n label: opt.label,\n }))\n\n return (\n <Controller\n name={descriptor.field}\n control={control}\n render={({ field, fieldState: { error } }) => (\n <FormItem\n className=\"text-xs\"\n label={descriptor.label}\n invalid={!!error}\n errorMessage={error?.message}\n >\n <Select\n isClearable\n size=\"sm\"\n placeholder=\"Selecione uma opção\"\n options={options}\n value={options.find((o) => o.value === field.value) ?? null}\n onChange={(opt: { value: string; label: string } | null) =>\n field.onChange(opt?.value ?? null)\n }\n onBlur={field.onBlur}\n />\n </FormItem>\n )}\n />\n )\n }\n\n // DATE com operator EQUALS: DatePicker simples\n if (descriptor.dataType === 'DATE') {\n return (\n <Controller\n name={descriptor.field}\n control={control}\n render={({ field, fieldState: { error } }) => (\n <FormItem\n className=\"text-xs\"\n label={descriptor.label}\n invalid={!!error}\n errorMessage={error?.message}\n >\n <DatePicker\n size=\"sm\"\n className=\"text-xs\"\n placeholder=\"Selecione uma data\"\n value={field.value ? new Date(`${field.value}T00:00:00`) : null}\n onChange={(date: Date | null) =>\n field.onChange(date ? formatDate(date) : null)\n }\n onBlur={field.onBlur}\n />\n </FormItem>\n )}\n />\n )\n }\n\n // NUMBER ou STRING (inclui fallback de lookup não registrado)\n const inputType = descriptor.dataType === 'NUMBER' ? 'number' : 'text'\n\n return (\n <Controller\n name={descriptor.field}\n control={control}\n render={({ field, fieldState: { error } }) => (\n <FormItem\n className=\"text-xs\"\n label={descriptor.label}\n invalid={!!error}\n errorMessage={error?.message}\n >\n <Input\n {...field}\n size=\"sm\"\n type={inputType}\n placeholder={`${descriptor.label}`}\n value={field.value ?? ''}\n onChange={(e) => field.onChange(e.target.value || null)}\n />\n </FormItem>\n )}\n />\n )\n}\n\n// ---------------------------------------------------------------------------\n// Utilitário\n// ---------------------------------------------------------------------------\n\n/** Formata uma Date para 'YYYY-MM-DD' sem dependências externas */\nfunction formatDate(date: Date): string {\n const y = date.getFullYear()\n const m = String(date.getMonth() + 1).padStart(2, '0')\n const d = String(date.getDate()).padStart(2, '0')\n return `${y}-${m}-${d}`\n}\n\nexport default DynamicFilterField\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ import { jsx, Fragment } from "react/jsx-runtime";
2
+ import { useMemo } from "react";
3
+ import { groupFilterFields } from "../../utils/filters/groupFilterFields.js";
4
+ import DynamicFilterField from "./DynamicFilterField.js";
5
+ const DynamicFilterPanel = ({ fields, lookupRegistry }) => {
6
+ const renderItems = useMemo(() => groupFilterFields(fields), [fields]);
7
+ return /* @__PURE__ */ jsx(Fragment, { children: renderItems.map((item) => /* @__PURE__ */ jsx(
8
+ DynamicFilterField,
9
+ {
10
+ item,
11
+ lookupRegistry
12
+ },
13
+ item.kind === "range" ? `range__${item.rangeGroup}` : item.descriptor.field
14
+ )) });
15
+ };
16
+ export {
17
+ DynamicFilterPanel as default
18
+ };
19
+ //# sourceMappingURL=DynamicFilterPanel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DynamicFilterPanel.js","sources":["../../../../lib/base/components/filters/DynamicFilterPanel.tsx"],"sourcesContent":["import React, { useMemo } from 'react'\nimport type { IFilterFieldDescriptor, TLookupComponentRegistry } from '@base/@types/filters'\nimport { groupFilterFields } from '@base/utils/filters/groupFilterFields'\nimport DynamicFilterField from './DynamicFilterField'\n\ninterface DynamicFilterPanelProps {\n /** Metadados de filtros vindos do endpoint /filter-metadata */\n fields: IFilterFieldDescriptor[]\n /**\n * Mapa de resource → componente de lookup.\n * Definido pelo microfrontend consumidor — permite que cada app\n * registre os seus próprios componentes de async select.\n */\n lookupRegistry?: TLookupComponentRegistry\n}\n\n/**\n * Renderiza todos os campos de filtro dinamicamente a partir dos metadados do backend.\n *\n * - Agrupa automaticamente campos de range (mesmo rangeGroup + BETWEEN) em um DatePickerRange.\n * - Delega a renderização individual para DynamicFilterField.\n * - Deve ser usado DENTRO de um FormProvider.\n *\n * @example\n * <FormProvider {...methods}>\n * <DynamicFilterPanel\n * fields={metadataFields}\n * lookupRegistry={saldoTicketLookupRegistry}\n * />\n * </FormProvider>\n */\nconst DynamicFilterPanel: React.FC<DynamicFilterPanelProps> = ({ fields, lookupRegistry }) => {\n // groupFilterFields é uma função pura — o useMemo garante que o agrupamento\n // só recalcula quando `fields` muda (na prática, apenas uma vez por sessão)\n const renderItems = useMemo(() => groupFilterFields(fields), [fields])\n\n return (\n <>\n {renderItems.map((item) => (\n <DynamicFilterField\n key={item.kind === 'range' ? `range__${item.rangeGroup}` : item.descriptor.field}\n item={item}\n lookupRegistry={lookupRegistry}\n />\n ))}\n </>\n )\n}\n\nexport default DynamicFilterPanel\n"],"names":[],"mappings":";;;;AA+BA,MAAM,qBAAwD,CAAC,EAAE,QAAQ,qBAAqB;AAG1F,QAAM,cAAc,QAAQ,MAAM,kBAAkB,MAAM,GAAG,CAAC,MAAM,CAAC;AAErE,SACI,oBAAA,UAAA,EACK,UAAA,YAAY,IAAI,CAAC,SACd;AAAA,IAAC;AAAA,IAAA;AAAA,MAEG;AAAA,MACA;AAAA,IAAA;AAAA,IAFK,KAAK,SAAS,UAAU,UAAU,KAAK,UAAU,KAAK,KAAK,WAAW;AAAA,EAAA,CAIlF,GACL;AAER;"}
@@ -0,0 +1,7 @@
1
+ import { default as default2 } from "./DynamicFilterField.js";
2
+ import { default as default3 } from "./DynamicFilterPanel.js";
3
+ export {
4
+ default2 as DynamicFilterField,
5
+ default3 as DynamicFilterPanel
6
+ };
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;"}
@@ -2,14 +2,19 @@ import "./routes/index.js";
2
2
  import "./table/index.js";
3
3
  import "./tools/index.js";
4
4
  import "./views/index.js";
5
+ import "./filters/index.js";
6
+ import { default as default2 } from "./filters/DynamicFilterField.js";
7
+ import { default as default3 } from "./filters/DynamicFilterPanel.js";
5
8
  import { ListColumn } from "./table/ListColumn.js";
6
- import { default as default2 } from "./tools/NavFilter.js";
7
- import { default as default3 } from "./routes/RoutesBase.js";
8
- import { default as default4 } from "./views/ViewsBase.js";
9
+ import { default as default4 } from "./tools/NavFilter.js";
10
+ import { default as default5 } from "./routes/RoutesBase.js";
11
+ import { default as default6 } from "./views/ViewsBase.js";
9
12
  export {
13
+ default2 as DynamicFilterField,
14
+ default3 as DynamicFilterPanel,
10
15
  ListColumn,
11
- default2 as NavFilter,
12
- default3 as RoutesBase,
13
- default4 as ViewsBase
16
+ default4 as NavFilter,
17
+ default5 as RoutesBase,
18
+ default6 as ViewsBase
14
19
  };
15
20
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;"}
@@ -10,6 +10,7 @@ const nfe = {
10
10
  desvincularOrdemCompra: { endpoint: `${NFE_BASE_URL}/desvincular-ordem-compra`, httpMethod: "post" },
11
11
  estornarPedidoCompra: { endpoint: `${NFE_BASE_URL}/estornar-pedido-compra/{numeroPedido}`, httpMethod: "post" },
12
12
  estornarOperacao: { endpoint: `${NFE_BASE_URL}/estornar-operacao?id={id}`, httpMethod: "post" },
13
+ finalizarPedido: { endpoint: `${NFE_BASE_URL}/finalizar-pedido/{numeroPedido}`, httpMethod: "post" },
13
14
  lock: { endpoint: `${NFE_BASE_URL}/lock`, httpMethod: "post" }
14
15
  };
15
16
  export {
@@ -1 +1 @@
1
- {"version":3,"file":"nfe.js","sources":["../../../../../../lib/base/configs/endpoints.config/centralNfe/config/nfe.ts"],"sourcesContent":["const NFE_BASE_URL = '/central-nfe/api/nfe'\n\nconst nfe = {\n findMonitor: { endpoint: `${NFE_BASE_URL}/find-monitor`, httpMethod: 'post' },\n findOne: { endpoint: NFE_BASE_URL, httpMethod: 'get' },\n update: { endpoint: NFE_BASE_URL, httpMethod: 'patch' },\n count: { endpoint: `${NFE_BASE_URL}/count`, httpMethod: 'post' },\n downloadPdfByChaveAcesso: { endpoint: `${NFE_BASE_URL}/download-pdf`, httpMethod: 'get' },\n validacaoImposto: { endpoint: `${NFE_BASE_URL}/{id}/{numeroPedido}/validacao-imposto`, httpMethod: 'post' },\n addLancamentoManual: { endpoint: `${NFE_BASE_URL}/add/lancamento-manual`, httpMethod: 'patch' },\n desvincularOrdemCompra: { endpoint: `${NFE_BASE_URL}/desvincular-ordem-compra`, httpMethod: 'post' },\n estornarPedidoCompra: { endpoint: `${NFE_BASE_URL}/estornar-pedido-compra/{numeroPedido}`, httpMethod: 'post' },\n estornarOperacao: { endpoint: `${NFE_BASE_URL}/estornar-operacao?id={id}`, httpMethod: 'post' },\n lock: { endpoint: `${NFE_BASE_URL}/lock`, httpMethod: 'post' },\n}\n\nexport default nfe"],"names":[],"mappings":"AAAA,MAAM,eAAe;AAErB,MAAM,MAAM;AAAA,EACR,aAAa,EAAE,UAAU,GAAG,YAAY,iBAAiB,YAAY,OAAA;AAAA,EACrE,SAAS,EAAE,UAAU,cAAc,YAAY,MAAA;AAAA,EAC/C,QAAQ,EAAE,UAAU,cAAc,YAAY,QAAA;AAAA,EAC9C,OAAO,EAAE,UAAU,GAAG,YAAY,UAAU,YAAY,OAAA;AAAA,EACxD,0BAA0B,EAAE,UAAU,GAAG,YAAY,iBAAiB,YAAY,MAAA;AAAA,EAClF,kBAAkB,EAAE,UAAU,GAAG,YAAY,0CAA0C,YAAY,OAAA;AAAA,EACnG,qBAAqB,EAAE,UAAU,GAAG,YAAY,0BAA0B,YAAY,QAAA;AAAA,EACtF,wBAAwB,EAAE,UAAU,GAAG,YAAY,6BAA6B,YAAY,OAAA;AAAA,EAC5F,sBAAsB,EAAE,UAAU,GAAG,YAAY,0CAA0C,YAAY,OAAA;AAAA,EACvG,kBAAkB,EAAE,UAAU,GAAG,YAAY,8BAA8B,YAAY,OAAA;AAAA,EACvF,MAAM,EAAE,UAAU,GAAG,YAAY,SAAS,YAAY,OAAA;AAC1D;"}
1
+ {"version":3,"file":"nfe.js","sources":["../../../../../../lib/base/configs/endpoints.config/centralNfe/config/nfe.ts"],"sourcesContent":["const NFE_BASE_URL = '/central-nfe/api/nfe'\n\nconst nfe = {\n findMonitor: { endpoint: `${NFE_BASE_URL}/find-monitor`, httpMethod: 'post' },\n findOne: { endpoint: NFE_BASE_URL, httpMethod: 'get' },\n update: { endpoint: NFE_BASE_URL, httpMethod: 'patch' },\n count: { endpoint: `${NFE_BASE_URL}/count`, httpMethod: 'post' },\n downloadPdfByChaveAcesso: { endpoint: `${NFE_BASE_URL}/download-pdf`, httpMethod: 'get' },\n validacaoImposto: { endpoint: `${NFE_BASE_URL}/{id}/{numeroPedido}/validacao-imposto`, httpMethod: 'post' },\n addLancamentoManual: { endpoint: `${NFE_BASE_URL}/add/lancamento-manual`, httpMethod: 'patch' },\n desvincularOrdemCompra: { endpoint: `${NFE_BASE_URL}/desvincular-ordem-compra`, httpMethod: 'post' },\n estornarPedidoCompra: { endpoint: `${NFE_BASE_URL}/estornar-pedido-compra/{numeroPedido}`, httpMethod: 'post' },\n estornarOperacao: { endpoint: `${NFE_BASE_URL}/estornar-operacao?id={id}`, httpMethod: 'post' },\n finalizarPedido: { endpoint: `${NFE_BASE_URL}/finalizar-pedido/{numeroPedido}`, httpMethod: 'post' },\n lock: { endpoint: `${NFE_BASE_URL}/lock`, httpMethod: 'post' },\n}\n\nexport default nfe"],"names":[],"mappings":"AAAA,MAAM,eAAe;AAErB,MAAM,MAAM;AAAA,EACR,aAAa,EAAE,UAAU,GAAG,YAAY,iBAAiB,YAAY,OAAA;AAAA,EACrE,SAAS,EAAE,UAAU,cAAc,YAAY,MAAA;AAAA,EAC/C,QAAQ,EAAE,UAAU,cAAc,YAAY,QAAA;AAAA,EAC9C,OAAO,EAAE,UAAU,GAAG,YAAY,UAAU,YAAY,OAAA;AAAA,EACxD,0BAA0B,EAAE,UAAU,GAAG,YAAY,iBAAiB,YAAY,MAAA;AAAA,EAClF,kBAAkB,EAAE,UAAU,GAAG,YAAY,0CAA0C,YAAY,OAAA;AAAA,EACnG,qBAAqB,EAAE,UAAU,GAAG,YAAY,0BAA0B,YAAY,QAAA;AAAA,EACtF,wBAAwB,EAAE,UAAU,GAAG,YAAY,6BAA6B,YAAY,OAAA;AAAA,EAC5F,sBAAsB,EAAE,UAAU,GAAG,YAAY,0CAA0C,YAAY,OAAA;AAAA,EACvG,kBAAkB,EAAE,UAAU,GAAG,YAAY,8BAA8B,YAAY,OAAA;AAAA,EACvF,iBAAiB,EAAE,UAAU,GAAG,YAAY,oCAAoC,YAAY,OAAA;AAAA,EAC5F,MAAM,EAAE,UAAU,GAAG,YAAY,SAAS,YAAY,OAAA;AAC1D;"}
@@ -4,7 +4,8 @@ const cadastroEstrategiaLiberacaoValor = {
4
4
  update: { endpoint: CADASTRO_ESTRATEGIA_LIBERACAO_VALOR, httpMethod: "patch" },
5
5
  findMonitor: { endpoint: `${CADASTRO_ESTRATEGIA_LIBERACAO_VALOR}/find-monitor`, httpMethod: "post" },
6
6
  findOne: { endpoint: CADASTRO_ESTRATEGIA_LIBERACAO_VALOR, httpMethod: "get" },
7
- delete: { endpoint: CADASTRO_ESTRATEGIA_LIBERACAO_VALOR, httpMethod: "delete" }
7
+ delete: { endpoint: CADASTRO_ESTRATEGIA_LIBERACAO_VALOR, httpMethod: "delete" },
8
+ findRolesByValor: { endpoint: `${CADASTRO_ESTRATEGIA_LIBERACAO_VALOR}/find-roles-by-valor`, httpMethod: "post" }
8
9
  };
9
10
  export {
10
11
  cadastroEstrategiaLiberacaoValor as default
@@ -1 +1 @@
1
- {"version":3,"file":"cadastroEstrategiaLiberacaoValor.js","sources":["../../../../../../lib/base/configs/endpoints.config/compras/config/cadastroEstrategiaLiberacaoValor.ts"],"sourcesContent":["const CADASTRO_ESTRATEGIA_LIBERACAO_VALOR = '/compras/api/cadastro-estrategia-liberacao-valor'\n\nconst cadastroEstrategiaLiberacaoValor = {\n create: { endpoint: CADASTRO_ESTRATEGIA_LIBERACAO_VALOR, httpMethod: 'post' },\n update: { endpoint: CADASTRO_ESTRATEGIA_LIBERACAO_VALOR, httpMethod: 'patch' },\n findMonitor: { endpoint: `${CADASTRO_ESTRATEGIA_LIBERACAO_VALOR}/find-monitor`, httpMethod: 'post' },\n findOne: { endpoint: CADASTRO_ESTRATEGIA_LIBERACAO_VALOR, httpMethod: 'get' },\n delete: { endpoint: CADASTRO_ESTRATEGIA_LIBERACAO_VALOR, httpMethod: 'delete' },\n}\n\nexport default cadastroEstrategiaLiberacaoValor"],"names":[],"mappings":"AAAA,MAAM,sCAAsC;AAE5C,MAAM,mCAAmC;AAAA,EACrC,QAAQ,EAAE,UAAU,qCAAqC,YAAY,OAAA;AAAA,EACrE,QAAQ,EAAE,UAAU,qCAAqC,YAAY,QAAA;AAAA,EACrE,aAAa,EAAE,UAAU,GAAG,mCAAmC,iBAAiB,YAAY,OAAA;AAAA,EAC5F,SAAS,EAAE,UAAU,qCAAqC,YAAY,MAAA;AAAA,EACtE,QAAQ,EAAE,UAAU,qCAAqC,YAAY,SAAA;AACzE;"}
1
+ {"version":3,"file":"cadastroEstrategiaLiberacaoValor.js","sources":["../../../../../../lib/base/configs/endpoints.config/compras/config/cadastroEstrategiaLiberacaoValor.ts"],"sourcesContent":["const CADASTRO_ESTRATEGIA_LIBERACAO_VALOR = '/compras/api/cadastro-estrategia-liberacao-valor'\n\nconst cadastroEstrategiaLiberacaoValor = {\n create: { endpoint: CADASTRO_ESTRATEGIA_LIBERACAO_VALOR, httpMethod: 'post' },\n update: { endpoint: CADASTRO_ESTRATEGIA_LIBERACAO_VALOR, httpMethod: 'patch' },\n findMonitor: { endpoint: `${CADASTRO_ESTRATEGIA_LIBERACAO_VALOR}/find-monitor`, httpMethod: 'post' },\n findOne: { endpoint: CADASTRO_ESTRATEGIA_LIBERACAO_VALOR, httpMethod: 'get' },\n delete: { endpoint: CADASTRO_ESTRATEGIA_LIBERACAO_VALOR, httpMethod: 'delete' },\n findRolesByValor: { endpoint: `${CADASTRO_ESTRATEGIA_LIBERACAO_VALOR}/find-roles-by-valor`, httpMethod: 'post' },\n}\n\nexport default cadastroEstrategiaLiberacaoValor"],"names":[],"mappings":"AAAA,MAAM,sCAAsC;AAE5C,MAAM,mCAAmC;AAAA,EACrC,QAAQ,EAAE,UAAU,qCAAqC,YAAY,OAAA;AAAA,EACrE,QAAQ,EAAE,UAAU,qCAAqC,YAAY,QAAA;AAAA,EACrE,aAAa,EAAE,UAAU,GAAG,mCAAmC,iBAAiB,YAAY,OAAA;AAAA,EAC5F,SAAS,EAAE,UAAU,qCAAqC,YAAY,MAAA;AAAA,EACtE,QAAQ,EAAE,UAAU,qCAAqC,YAAY,SAAA;AAAA,EACrE,kBAAkB,EAAE,UAAU,GAAG,mCAAmC,wBAAwB,YAAY,OAAA;AAC5G;"}
@@ -4,7 +4,8 @@ const saldoTicket = {
4
4
  historicoById: (id, params) => `/originacao/api/saldo-ticket/${id}/historicos?${params ?? ""}`,
5
5
  buscarSaldoDisponivel: "/originacao/api/saldo-ticket/saldo-disponivel",
6
6
  findAllMetrics: (params) => `/originacao/api/saldo-ticket/metrics?${params ?? ""}`,
7
- updateStatus: (id) => `/originacao/api/saldo-ticket/${id}/forcar-status-saldo`
7
+ updateStatus: (id) => `/originacao/api/saldo-ticket/${id}/forcar-status-saldo`,
8
+ filterMetadata: "/originacao/api/saldo-ticket/filter-metadata"
8
9
  };
9
10
  export {
10
11
  saldoTicket as default
@@ -1 +1 @@
1
- {"version":3,"file":"saldoTicket.js","sources":["../../../../../../lib/base/configs/endpoints.config/originacao/config/saldoTicket.ts"],"sourcesContent":["const saldoTicket = {\n buscarSaldoContrato: (id: string) => `/originacao/api/saldo-ticket/contrato/${id}`,\n findAll: (params?: string) => `/originacao/api/saldo-ticket?${params ?? \"\"}`,\n historicoById: (id: string, params?: string) => `/originacao/api/saldo-ticket/${id}/historicos?${params ?? \"\"}`,\n buscarSaldoDisponivel: '/originacao/api/saldo-ticket/saldo-disponivel',\n findAllMetrics: (params?: string) => `/originacao/api/saldo-ticket/metrics?${params ?? \"\"}`,\n updateStatus: (id: string) => `/originacao/api/saldo-ticket/${id}/forcar-status-saldo`\n};\n\nexport default saldoTicket;"],"names":[],"mappings":"AAAA,MAAM,cAAc;AAAA,EAClB,qBAAqB,CAAC,OAAe,yCAAyC,EAAE;AAAA,EAChF,SAAS,CAAC,WAAoB,gCAAgC,UAAU,EAAE;AAAA,EAC1E,eAAe,CAAC,IAAY,WAAoB,gCAAgC,EAAE,eAAe,UAAU,EAAE;AAAA,EAC7G,uBAAuB;AAAA,EACvB,gBAAgB,CAAC,WAAoB,wCAAwC,UAAU,EAAE;AAAA,EACzF,cAAc,CAAC,OAAe,gCAAgC,EAAE;AAClE;"}
1
+ {"version":3,"file":"saldoTicket.js","sources":["../../../../../../lib/base/configs/endpoints.config/originacao/config/saldoTicket.ts"],"sourcesContent":["const saldoTicket = {\n buscarSaldoContrato: (id: string) => `/originacao/api/saldo-ticket/contrato/${id}`,\n findAll: (params?: string) => `/originacao/api/saldo-ticket?${params ?? \"\"}`,\n historicoById: (id: string, params?: string) => `/originacao/api/saldo-ticket/${id}/historicos?${params ?? \"\"}`,\n buscarSaldoDisponivel: '/originacao/api/saldo-ticket/saldo-disponivel',\n findAllMetrics: (params?: string) => `/originacao/api/saldo-ticket/metrics?${params ?? \"\"}`,\n updateStatus: (id: string) => `/originacao/api/saldo-ticket/${id}/forcar-status-saldo`,\n filterMetadata: '/originacao/api/saldo-ticket/filter-metadata',\n};\n\nexport default saldoTicket;"],"names":[],"mappings":"AAAA,MAAM,cAAc;AAAA,EAClB,qBAAqB,CAAC,OAAe,yCAAyC,EAAE;AAAA,EAChF,SAAS,CAAC,WAAoB,gCAAgC,UAAU,EAAE;AAAA,EAC1E,eAAe,CAAC,IAAY,WAAoB,gCAAgC,EAAE,eAAe,UAAU,EAAE;AAAA,EAC7G,uBAAuB;AAAA,EACvB,gBAAgB,CAAC,WAAoB,wCAAwC,UAAU,EAAE;AAAA,EACzF,cAAc,CAAC,OAAe,gCAAgC,EAAE;AAAA,EAChE,gBAAgB;AAClB;"}
@@ -1,9 +1,7 @@
1
- import modeloNotaSubmenu from "./config/modeloNota.submenu.js";
2
1
  import categoriaSubmenu from "./config/categoria.submenu.js";
3
2
  import areaAtuacaoSubmenu from "./config/areaAtuacao.submenu.js";
4
3
  import modeloAvaliacaoSubmenu from "./config/modeloAvaliacao.submenu.js";
5
4
  const cadastrosSubmenu = [
6
- modeloNotaSubmenu,
7
5
  categoriaSubmenu,
8
6
  areaAtuacaoSubmenu,
9
7
  modeloAvaliacaoSubmenu
@@ -1 +1 @@
1
- {"version":3,"file":"cadastros.submenu.js","sources":["../../../../../../lib/base/configs/navigation.config/submenu/performance/cadastros.submenu.ts"],"sourcesContent":["import { NavigationTree } from '@/@types/navigation'\nimport modeloNotaSubmenu from './config/modeloNota.submenu'\nimport categoriaSubmenu from './config/categoria.submenu'\nimport areaAtuacaoSubmenu from './config/areaAtuacao.submenu'\nimport modeloAvaliacaoSubmenu from './config/modeloAvaliacao.submenu'\n\nconst cadastrosSubmenu: NavigationTree[] = [\n modeloNotaSubmenu,\n categoriaSubmenu,\n areaAtuacaoSubmenu,\n modeloAvaliacaoSubmenu\n]\n\nexport default cadastrosSubmenu\n"],"names":[],"mappings":";;;;AAMA,MAAM,mBAAqC;AAAA,EACvC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACJ;"}
1
+ {"version":3,"file":"cadastros.submenu.js","sources":["../../../../../../lib/base/configs/navigation.config/submenu/performance/cadastros.submenu.ts"],"sourcesContent":["import { NavigationTree } from '@/@types/navigation'\nimport categoriaSubmenu from './config/categoria.submenu'\nimport areaAtuacaoSubmenu from './config/areaAtuacao.submenu'\nimport modeloAvaliacaoSubmenu from './config/modeloAvaliacao.submenu'\n\nconst cadastrosSubmenu: NavigationTree[] = [\n categoriaSubmenu,\n areaAtuacaoSubmenu,\n modeloAvaliacaoSubmenu\n]\n\nexport default cadastrosSubmenu\n"],"names":[],"mappings":";;;AAKA,MAAM,mBAAqC;AAAA,EACvC;AAAA,EACA;AAAA,EACA;AACJ;"}
@@ -0,0 +1,23 @@
1
+ import useSWR from "swr";
2
+ function useFilterMetadata(swrKey, fetcher) {
3
+ const { data, error, isLoading } = useSWR(
4
+ swrKey || null,
5
+ fetcher,
6
+ {
7
+ revalidateOnFocus: false,
8
+ revalidateOnReconnect: false,
9
+ revalidateIfStale: false,
10
+ dedupingInterval: 6e5
11
+ // 10 minutos — metadados são imutáveis por sessão
12
+ }
13
+ );
14
+ return {
15
+ fields: data ?? [],
16
+ isLoading,
17
+ error
18
+ };
19
+ }
20
+ export {
21
+ useFilterMetadata as default
22
+ };
23
+ //# sourceMappingURL=useFilterMetadata.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useFilterMetadata.js","sources":["../../../../lib/base/hooks/filters/useFilterMetadata.ts"],"sourcesContent":["import useSWR from 'swr'\nimport type { IFilterFieldDescriptor } from '@base/@types/filters'\n\n/**\n * Busca e faz cache dos metadados de filtros de um endpoint específico.\n *\n * Usa configurações imutáveis de SWR: os dados são buscados uma única vez\n * por sessão e nunca revalidados automaticamente, pois metadados de filtro são\n * estruturais e não mudam durante o uso da aplicação.\n *\n * O `fetcher` deve ser a função de serviço correspondente ao endpoint,\n * garantindo que a chamada passe pelo ApiService (Axios + token de autenticação).\n *\n * @param swrKey - Chave única de cache SWR (ex: '/originacao/api/saldo-ticket/filter-metadata')\n * @param fetcher - Função que realiza a chamada à API e retorna IFilterFieldDescriptor[]\n *\n * @example\n * const { fields, isLoading, error } = useFilterMetadata(\n * '/originacao/api/saldo-ticket/filter-metadata',\n * apiFindSaldoFilterMetadata,\n * )\n */\nexport default function useFilterMetadata(\n swrKey: string,\n fetcher: () => Promise<IFilterFieldDescriptor[]>,\n) {\n const { data, error, isLoading } = useSWR<IFilterFieldDescriptor[]>(\n swrKey || null,\n fetcher,\n {\n revalidateOnFocus: false,\n revalidateOnReconnect: false,\n revalidateIfStale: false,\n dedupingInterval: 600_000, // 10 minutos — metadados são imutáveis por sessão\n }\n )\n\n return {\n fields: data ?? [],\n isLoading,\n error,\n }\n}\n"],"names":[],"mappings":";AAsBA,SAAwB,kBACpB,QACA,SACF;AACE,QAAM,EAAE,MAAM,OAAO,UAAA,IAAc;AAAA,IAC/B,UAAU;AAAA,IACV;AAAA,IACA;AAAA,MACI,mBAAmB;AAAA,MACnB,uBAAuB;AAAA,MACvB,mBAAmB;AAAA,MACnB,kBAAkB;AAAA;AAAA,IAAA;AAAA,EACtB;AAGJ,SAAO;AAAA,IACH,QAAQ,QAAQ,CAAA;AAAA,IAChB;AAAA,IACA;AAAA,EAAA;AAER;"}
@@ -77,6 +77,7 @@ import { default as default77 } from "./dm/produto/useFindProdutosByDepositoList
77
77
  import { default as default78 } from "./dm/businessPartner/useBusinessPartnerFindMonitorTransportadoraList.js";
78
78
  import { default as default79 } from "./sap/uniaoUtilizacaoLimiteCredito/useSapFindUniaoUtilizacaoLimiteCreditoByCliente.js";
79
79
  import { default as default80 } from "./crm/dadosUnificados/useDadosUnificadosList.js";
80
+ import { default as default81 } from "./filters/useFilterMetadata.js";
80
81
  export {
81
82
  default6 as useAreaById,
82
83
  default7 as useBusinessPartnerById,
@@ -110,6 +111,7 @@ export {
110
111
  default35 as useEquipeVendaListUseMulti,
111
112
  default36 as useEscritorioVendaByCodigoList,
112
113
  default37 as useEscritorioVendaList,
114
+ default81 as useFilterMetadata,
113
115
  default47 as useFindByCodigosProdutoList,
114
116
  default46 as useFindByIdsProdutoList,
115
117
  default40 as useFindFreteByUniqueList,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}