@orbe-agro/client-core 5.6.128 → 5.6.130

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 (22) hide show
  1. package/dist/@ecme/components/template/VerticalMenuContent/VerticalMenuContent.js +17 -13
  2. package/dist/@ecme/components/template/VerticalMenuContent/VerticalMenuContent.js.map +1 -1
  3. package/dist/@ecme/components/template/VerticalMenuContent/VerticalMenuContent.stories.js +57 -1
  4. package/dist/@ecme/components/template/VerticalMenuContent/VerticalMenuContent.stories.js.map +1 -1
  5. package/dist/@types/@ecme/components/template/VerticalMenuContent/VerticalMenuContent.d.ts.map +1 -1
  6. package/dist/@types/@ecme/components/template/VerticalMenuContent/VerticalMenuContent.stories.d.ts +2 -0
  7. package/dist/@types/@ecme/components/template/VerticalMenuContent/VerticalMenuContent.stories.d.ts.map +1 -1
  8. package/dist/@types/base/@types/api/response/bayer/types.d.ts +1 -0
  9. package/dist/@types/base/@types/api/response/bayer/types.d.ts.map +1 -1
  10. package/dist/@types/base/configs/navigation.config/submenu/ticket/cadastros.submenu.d.ts.map +1 -1
  11. package/dist/@types/base/configs/navigation.config/submenu/ticket/relatorios.submenu.d.ts.map +1 -1
  12. package/dist/base/@types/api/response/bayer/types.js.map +1 -1
  13. package/dist/base/configs/navigation.config/submenu/ticket/cadastros.submenu.js +19 -7
  14. package/dist/base/configs/navigation.config/submenu/ticket/cadastros.submenu.js.map +1 -1
  15. package/dist/base/configs/navigation.config/submenu/ticket/relatorios.submenu.js +13 -1
  16. package/dist/base/configs/navigation.config/submenu/ticket/relatorios.submenu.js.map +1 -1
  17. package/lib/@ecme/components/template/VerticalMenuContent/VerticalMenuContent.stories.tsx +67 -0
  18. package/lib/@ecme/components/template/VerticalMenuContent/VerticalMenuContent.tsx +23 -16
  19. package/lib/base/@types/api/response/bayer/types.ts +1 -0
  20. package/lib/base/configs/navigation.config/submenu/ticket/cadastros.submenu.ts +19 -7
  21. package/lib/base/configs/navigation.config/submenu/ticket/relatorios.submenu.ts +13 -0
  22. package/package.json +1 -1
@@ -44,20 +44,24 @@ const filterNavigationByAuthority = (navTree, userAuthority) => {
44
44
  return acc;
45
45
  }, []);
46
46
  };
47
+ const compareNavigationOrder = (a, b) => {
48
+ const orderA = a.sortOrder ?? Number.MAX_SAFE_INTEGER;
49
+ const orderB = b.sortOrder ?? Number.MAX_SAFE_INTEGER;
50
+ if (orderA !== orderB) {
51
+ return orderA - orderB;
52
+ }
53
+ const titleCompare = a.title.localeCompare(b.title, "pt-BR");
54
+ if (titleCompare !== 0) {
55
+ return titleCompare;
56
+ }
57
+ return a.key.localeCompare(b.key, "pt-BR");
58
+ };
59
+ const sortNavigationNodeList = (navTree) => [...navTree].sort(compareNavigationOrder);
47
60
  const sortNavigationRecursively = (navTree) => {
48
- return [...navTree].map((nav) => ({
61
+ return sortNavigationNodeList(navTree).map((nav) => ({
49
62
  ...nav,
50
63
  subMenu: nav.subMenu ? sortNavigationRecursively(nav.subMenu) : nav.subMenu
51
- })).sort((a, b) => {
52
- if (a.sortOrder !== void 0 || b.sortOrder !== void 0) {
53
- const orderA = a.sortOrder ?? Number.MAX_SAFE_INTEGER;
54
- const orderB = b.sortOrder ?? Number.MAX_SAFE_INTEGER;
55
- if (orderA !== orderB) {
56
- return orderA - orderB;
57
- }
58
- }
59
- return a.title.localeCompare(b.title, "pt-BR");
60
- });
64
+ }));
61
65
  };
62
66
  const VerticalMenuContent = (props) => {
63
67
  const {
@@ -79,7 +83,6 @@ const VerticalMenuContent = (props) => {
79
83
  );
80
84
  return sortNavigationRecursively(filteredTree);
81
85
  }, [navigationTree, userAuthority]);
82
- console.log("Filtered Navigation Tree:", filteredNavigationTree);
83
86
  const { activedRoute } = useMenuActive(filteredNavigationTree, routeKey);
84
87
  useEffect(() => {
85
88
  if (activedRoute?.key) {
@@ -95,7 +98,8 @@ const VerticalMenuContent = (props) => {
95
98
  };
96
99
  const renderNavigation = (navTree, cascade = 0, indent) => {
97
100
  const nextCascade = cascade + 1;
98
- return /* @__PURE__ */ jsx(Fragment, { children: navTree.map((nav) => /* @__PURE__ */ jsxs(Fragment$1, { children: [
101
+ const orderedNavTree = sortNavigationNodeList(navTree);
102
+ return /* @__PURE__ */ jsx(Fragment, { children: orderedNavTree.map((nav) => /* @__PURE__ */ jsxs(Fragment$1, { children: [
99
103
  nav.type === NAV_ITEM_TYPE_ITEM && /* @__PURE__ */ jsx(
100
104
  VerticalSingleMenuItem,
101
105
  {
@@ -1 +1 @@
1
- {"version":3,"file":"VerticalMenuContent.js","sources":["../../../../../lib/@ecme/components/template/VerticalMenuContent/VerticalMenuContent.tsx"],"sourcesContent":["import { useState, useEffect, useMemo, Fragment } from 'react'\nimport Menu from '@/components/ui/Menu'\nimport VerticalSingleMenuItem from './VerticalSingleMenuItem'\nimport VerticalCollapsedMenuItem from './VerticalCollapsedMenuItem'\nimport { themeConfig } from '@/configs/theme.config'\nimport {\n NAV_ITEM_TYPE_TITLE,\n NAV_ITEM_TYPE_COLLAPSE,\n NAV_ITEM_TYPE_ITEM,\n} from '@/constants/navigation.constant'\nimport useMenuActive from '@/utils/hooks/useMenuActive'\nimport useTranslation from '@/utils/hooks/useTranslation'\nimport { Direction } from '@/@types/theme'\nimport type { NavigationTree } from '@/@types/navigation'\nimport type { TraslationFn } from '@/@types/common'\nimport { LinkRenderer } from '@/components/layouts/Layouts'\n\nexport interface VerticalMenuContentProps {\n collapsed?: boolean\n routeKey: string\n navigationTree?: NavigationTree[]\n onMenuItemClick?: () => void\n direction?: Direction\n translationSetup?: boolean\n userAuthority: string[]\n linkRenderer?: LinkRenderer\n}\n\nconst { MenuGroup } = Menu\n\nconst findAncestorKeys = (\n navTree: NavigationTree[],\n targetKey: string,\n): string[] | null => {\n for (const node of navTree) {\n if (node.key === targetKey) return []\n if (node.subMenu && node.subMenu.length > 0) {\n const found = findAncestorKeys(node.subMenu, targetKey)\n if (found !== null) return [node.key, ...found]\n }\n }\n return null\n}\n\nconst filterNavigationByAuthority = (\n navTree: NavigationTree[],\n userAuthority: string[],\n): NavigationTree[] => {\n return navTree.reduce((acc: NavigationTree[], nav) => {\n // Verifica se deve excluir o item quando o usuário possui alguma funcionalidade específica\n if (nav.excludeWhenHasPaths && nav.excludeWhenHasPaths.length > 0) {\n const shouldExclude = nav.excludeWhenHasPaths.some((path) =>\n userAuthority.includes(path),\n )\n if (shouldExclude) {\n return acc\n }\n }\n\n if (nav.subMenu && nav.subMenu.length > 0) {\n const filteredSubMenu = filterNavigationByAuthority(\n nav.subMenu,\n userAuthority,\n )\n if (filteredSubMenu.length > 0) {\n acc.push({ ...nav, subMenu: filteredSubMenu })\n }\n } else {\n if ((nav.path && userAuthority.includes(nav.path)) || !nav.path) {\n acc.push(nav)\n }\n }\n return acc\n }, [])\n}\n\nconst sortNavigationRecursively = (\n navTree: NavigationTree[],\n): NavigationTree[] => {\n return [...navTree]\n .map((nav) => ({\n ...nav,\n subMenu: nav.subMenu\n ? sortNavigationRecursively(nav.subMenu)\n : nav.subMenu,\n }))\n .sort((a, b) => {\n if (a.sortOrder !== undefined || b.sortOrder !== undefined) {\n const orderA = a.sortOrder ?? Number.MAX_SAFE_INTEGER\n const orderB = b.sortOrder ?? Number.MAX_SAFE_INTEGER\n\n if (orderA !== orderB) {\n return orderA - orderB\n }\n }\n\n return a.title.localeCompare(b.title, 'pt-BR')\n })\n}\n\nconst VerticalMenuContent = (props: VerticalMenuContentProps) => {\n const {\n collapsed,\n routeKey,\n navigationTree = [],\n onMenuItemClick,\n direction = themeConfig.direction,\n translationSetup,\n userAuthority,\n linkRenderer,\n } = props\n\n const { t } = useTranslation(!translationSetup)\n const [defaulExpandKey, setDefaulExpandKey] = useState<string[]>([])\n\n const filteredNavigationTree = useMemo(() => {\n const filteredTree = filterNavigationByAuthority(\n navigationTree,\n userAuthority,\n )\n\n return sortNavigationRecursively(filteredTree)\n }, [navigationTree, userAuthority])\n\n console.log('Filtered Navigation Tree:', filteredNavigationTree)\n\n const { activedRoute } = useMenuActive(filteredNavigationTree, routeKey)\n\n useEffect(() => {\n if (activedRoute?.key) {\n const ancestors = findAncestorKeys(\n filteredNavigationTree,\n activedRoute.key,\n )\n setDefaulExpandKey(ancestors ?? [])\n }\n }, [activedRoute?.key, filteredNavigationTree])\n\n const handleLinkClick = () => {\n onMenuItemClick?.()\n }\n\n const renderNavigation = (\n navTree: NavigationTree[],\n cascade: number = 0,\n indent?: boolean,\n ) => {\n const nextCascade = cascade + 1\n\n return (\n <>\n {navTree.map((nav) => (\n <Fragment key={nav.key}>\n {nav.type === NAV_ITEM_TYPE_ITEM && (\n <VerticalSingleMenuItem\n key={nav.key}\n currentKey={activedRoute?.key}\n parentKeys={defaulExpandKey}\n nav={nav}\n sideCollapsed={collapsed}\n direction={direction}\n indent={indent}\n renderAsIcon={cascade <= 0}\n showIcon={cascade <= 0}\n userAuthority={userAuthority}\n showTitle={\n nav.forceShowTitle ??\n (collapsed ? cascade >= 1 : cascade <= 1)\n }\n t={t as TraslationFn}\n onLinkClick={handleLinkClick}\n linkRenderer={linkRenderer}\n />\n )}\n {nav.type === NAV_ITEM_TYPE_COLLAPSE && (\n <VerticalCollapsedMenuItem\n key={nav.key}\n currentKey={activedRoute?.key}\n parentKeys={defaulExpandKey}\n nav={nav}\n sideCollapsed={collapsed}\n direction={direction}\n indent={nextCascade >= 2}\n dotIndent={nextCascade >= 2}\n renderAsIcon={nextCascade <= 1}\n userAuthority={userAuthority}\n t={t as TraslationFn}\n onLinkClick={onMenuItemClick}\n >\n {nav.subMenu &&\n nav.subMenu.length > 0 &&\n renderNavigation(\n nav.subMenu,\n nextCascade,\n true,\n )}\n </VerticalCollapsedMenuItem>\n )}\n {nav.type === NAV_ITEM_TYPE_TITLE && (\n <MenuGroup\n key={nav.key}\n label={t(nav.translateKey) || nav.title}\n >\n {nav.subMenu &&\n nav.subMenu.length > 0 &&\n renderNavigation(\n nav.subMenu,\n cascade,\n false,\n )}\n </MenuGroup>\n )}\n </Fragment>\n ))}\n </>\n )\n }\n\n return (\n <Menu\n className=\"px-4 pb-4\"\n sideCollapsed={collapsed}\n defaultActiveKeys={activedRoute?.key ? [activedRoute.key] : []}\n defaultExpandedKeys={defaulExpandKey}\n defaultCollapseActiveKeys={\n activedRoute?.parentKey ? [activedRoute.parentKey] : []\n }\n >\n {renderNavigation(filteredNavigationTree, 0)}\n </Menu>\n )\n}\n\nexport default VerticalMenuContent\n"],"names":["Fragment"],"mappings":"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"}
1
+ {"version":3,"file":"VerticalMenuContent.js","sources":["../../../../../lib/@ecme/components/template/VerticalMenuContent/VerticalMenuContent.tsx"],"sourcesContent":["import { useState, useEffect, useMemo, Fragment } from 'react'\nimport Menu from '@/components/ui/Menu'\nimport VerticalSingleMenuItem from './VerticalSingleMenuItem'\nimport VerticalCollapsedMenuItem from './VerticalCollapsedMenuItem'\nimport { themeConfig } from '@/configs/theme.config'\nimport {\n NAV_ITEM_TYPE_TITLE,\n NAV_ITEM_TYPE_COLLAPSE,\n NAV_ITEM_TYPE_ITEM,\n} from '@/constants/navigation.constant'\nimport useMenuActive from '@/utils/hooks/useMenuActive'\nimport useTranslation from '@/utils/hooks/useTranslation'\nimport { Direction } from '@/@types/theme'\nimport type { NavigationTree } from '@/@types/navigation'\nimport type { TraslationFn } from '@/@types/common'\nimport { LinkRenderer } from '@/components/layouts/Layouts'\n\nexport interface VerticalMenuContentProps {\n collapsed?: boolean\n routeKey: string\n navigationTree?: NavigationTree[]\n onMenuItemClick?: () => void\n direction?: Direction\n translationSetup?: boolean\n userAuthority: string[]\n linkRenderer?: LinkRenderer\n}\n\nconst { MenuGroup } = Menu\n\nconst findAncestorKeys = (\n navTree: NavigationTree[],\n targetKey: string,\n): string[] | null => {\n for (const node of navTree) {\n if (node.key === targetKey) return []\n if (node.subMenu && node.subMenu.length > 0) {\n const found = findAncestorKeys(node.subMenu, targetKey)\n if (found !== null) return [node.key, ...found]\n }\n }\n return null\n}\n\nconst filterNavigationByAuthority = (\n navTree: NavigationTree[],\n userAuthority: string[],\n): NavigationTree[] => {\n return navTree.reduce((acc: NavigationTree[], nav) => {\n // Verifica se deve excluir o item quando o usuário possui alguma funcionalidade específica\n if (nav.excludeWhenHasPaths && nav.excludeWhenHasPaths.length > 0) {\n const shouldExclude = nav.excludeWhenHasPaths.some((path) =>\n userAuthority.includes(path),\n )\n if (shouldExclude) {\n return acc\n }\n }\n\n if (nav.subMenu && nav.subMenu.length > 0) {\n const filteredSubMenu = filterNavigationByAuthority(\n nav.subMenu,\n userAuthority,\n )\n if (filteredSubMenu.length > 0) {\n acc.push({ ...nav, subMenu: filteredSubMenu })\n }\n } else {\n if ((nav.path && userAuthority.includes(nav.path)) || !nav.path) {\n acc.push(nav)\n }\n }\n return acc\n }, [])\n}\n\nconst compareNavigationOrder = (a: NavigationTree, b: NavigationTree) => {\n const orderA = a.sortOrder ?? Number.MAX_SAFE_INTEGER\n const orderB = b.sortOrder ?? Number.MAX_SAFE_INTEGER\n\n if (orderA !== orderB) {\n return orderA - orderB\n }\n\n const titleCompare = a.title.localeCompare(b.title, 'pt-BR')\n\n if (titleCompare !== 0) {\n return titleCompare\n }\n\n return a.key.localeCompare(b.key, 'pt-BR')\n}\n\nconst sortNavigationNodeList = (navTree: NavigationTree[]): NavigationTree[] =>\n [...navTree].sort(compareNavigationOrder)\n\nconst sortNavigationRecursively = (\n navTree: NavigationTree[],\n): NavigationTree[] => {\n return sortNavigationNodeList(navTree)\n .map((nav) => ({\n ...nav,\n subMenu: nav.subMenu\n ? sortNavigationRecursively(nav.subMenu)\n : nav.subMenu,\n }))\n}\n\nconst VerticalMenuContent = (props: VerticalMenuContentProps) => {\n const {\n collapsed,\n routeKey,\n navigationTree = [],\n onMenuItemClick,\n direction = themeConfig.direction,\n translationSetup,\n userAuthority,\n linkRenderer,\n } = props\n\n const { t } = useTranslation(!translationSetup)\n const [defaulExpandKey, setDefaulExpandKey] = useState<string[]>([])\n\n const filteredNavigationTree = useMemo(() => {\n const filteredTree = filterNavigationByAuthority(\n navigationTree,\n userAuthority,\n )\n\n return sortNavigationRecursively(filteredTree)\n }, [navigationTree, userAuthority])\n\n const { activedRoute } = useMenuActive(filteredNavigationTree, routeKey)\n\n useEffect(() => {\n if (activedRoute?.key) {\n const ancestors = findAncestorKeys(\n filteredNavigationTree,\n activedRoute.key,\n )\n setDefaulExpandKey(ancestors ?? [])\n }\n }, [activedRoute?.key, filteredNavigationTree])\n\n const handleLinkClick = () => {\n onMenuItemClick?.()\n }\n\n const renderNavigation = (\n navTree: NavigationTree[],\n cascade: number = 0,\n indent?: boolean,\n ) => {\n const nextCascade = cascade + 1\n const orderedNavTree = sortNavigationNodeList(navTree)\n\n return (\n <>\n {orderedNavTree.map((nav) => (\n <Fragment key={nav.key}>\n {nav.type === NAV_ITEM_TYPE_ITEM && (\n <VerticalSingleMenuItem\n key={nav.key}\n currentKey={activedRoute?.key}\n parentKeys={defaulExpandKey}\n nav={nav}\n sideCollapsed={collapsed}\n direction={direction}\n indent={indent}\n renderAsIcon={cascade <= 0}\n showIcon={cascade <= 0}\n userAuthority={userAuthority}\n showTitle={\n nav.forceShowTitle ??\n (collapsed ? cascade >= 1 : cascade <= 1)\n }\n t={t as TraslationFn}\n onLinkClick={handleLinkClick}\n linkRenderer={linkRenderer}\n />\n )}\n {nav.type === NAV_ITEM_TYPE_COLLAPSE && (\n <VerticalCollapsedMenuItem\n key={nav.key}\n currentKey={activedRoute?.key}\n parentKeys={defaulExpandKey}\n nav={nav}\n sideCollapsed={collapsed}\n direction={direction}\n indent={nextCascade >= 2}\n dotIndent={nextCascade >= 2}\n renderAsIcon={nextCascade <= 1}\n userAuthority={userAuthority}\n t={t as TraslationFn}\n onLinkClick={onMenuItemClick}\n >\n {nav.subMenu &&\n nav.subMenu.length > 0 &&\n renderNavigation(\n nav.subMenu,\n nextCascade,\n true,\n )}\n </VerticalCollapsedMenuItem>\n )}\n {nav.type === NAV_ITEM_TYPE_TITLE && (\n <MenuGroup\n key={nav.key}\n label={t(nav.translateKey) || nav.title}\n >\n {nav.subMenu &&\n nav.subMenu.length > 0 &&\n renderNavigation(\n nav.subMenu,\n cascade,\n false,\n )}\n </MenuGroup>\n )}\n </Fragment>\n ))}\n </>\n )\n }\n\n return (\n <Menu\n className=\"px-4 pb-4\"\n sideCollapsed={collapsed}\n defaultActiveKeys={activedRoute?.key ? [activedRoute.key] : []}\n defaultExpandedKeys={defaulExpandKey}\n defaultCollapseActiveKeys={\n activedRoute?.parentKey ? [activedRoute.parentKey] : []\n }\n >\n {renderNavigation(filteredNavigationTree, 0)}\n </Menu>\n )\n}\n\nexport default VerticalMenuContent\n"],"names":["Fragment"],"mappings":"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"}
@@ -1,7 +1,41 @@
1
1
  import { jsx } from "react/jsx-runtime";
2
2
  import { BrowserRouter } from "react-router-dom";
3
3
  import VerticalMenuContent from "./VerticalMenuContent.js";
4
- import { NAV_ITEM_TYPE_ITEM, NAV_ITEM_TYPE_COLLAPSE } from "../../../constants/navigation.constant.js";
4
+ import ticketNavigationConfig from "../../../../base/configs/navigation.config/modules.submenu/Ticket/ticket.navigation.js";
5
+ import { NAV_ITEM_TYPE_TITLE, NAV_ITEM_TYPE_ITEM, NAV_ITEM_TYPE_COLLAPSE } from "../../../constants/navigation.constant.js";
6
+ const collectAuthorityPaths = (navTree) => {
7
+ return navTree.reduce((acc, node) => {
8
+ if (node.path) {
9
+ acc.push(node.path);
10
+ }
11
+ if (node.subMenu?.length) {
12
+ acc.push(...collectAuthorityPaths(node.subMenu));
13
+ }
14
+ return acc;
15
+ }, []);
16
+ };
17
+ const ticketAuthority = Array.from(
18
+ new Set(collectAuthorityPaths(ticketNavigationConfig))
19
+ );
20
+ const ticketSubmenuAllExpanded = ticketNavigationConfig.map(
21
+ (menu) => {
22
+ if (menu.key !== "ticket") {
23
+ return menu;
24
+ }
25
+ return {
26
+ ...menu,
27
+ subMenu: menu.subMenu.map((subMenu) => {
28
+ if (subMenu.key === "ticket.relatorios" || subMenu.key === "ticket.cadastros") {
29
+ return {
30
+ ...subMenu,
31
+ type: NAV_ITEM_TYPE_TITLE
32
+ };
33
+ }
34
+ return subMenu;
35
+ })
36
+ };
37
+ }
38
+ );
5
39
  const mockNavigationTree = [
6
40
  {
7
41
  key: "inicio",
@@ -221,12 +255,34 @@ const WithMenuClick = {
221
255
  onMenuItemClick: () => alert("Menu item clicked!")
222
256
  }
223
257
  };
258
+ const TicketSubmenu = {
259
+ args: {
260
+ collapsed: false,
261
+ routeKey: "ticket",
262
+ navigationTree: ticketNavigationConfig,
263
+ userAuthority: ticketAuthority,
264
+ direction: "ltr",
265
+ translationSetup: true
266
+ }
267
+ };
268
+ const TicketSubmenuSortOrderStable = {
269
+ args: {
270
+ collapsed: false,
271
+ routeKey: "ticket",
272
+ navigationTree: ticketSubmenuAllExpanded,
273
+ userAuthority: ticketAuthority,
274
+ direction: "ltr",
275
+ translationSetup: true
276
+ }
277
+ };
224
278
  export {
225
279
  Collapsed,
226
280
  Default,
227
281
  LimitedAuthority,
228
282
  MinimalNavigation,
229
283
  RTLDirection,
284
+ TicketSubmenu,
285
+ TicketSubmenuSortOrderStable,
230
286
  WithExpandedMenu,
231
287
  WithMenuClick,
232
288
  meta as default
@@ -1 +1 @@
1
- {"version":3,"file":"VerticalMenuContent.stories.js","sources":["../../../../../lib/@ecme/components/template/VerticalMenuContent/VerticalMenuContent.stories.tsx"],"sourcesContent":["import type { Meta, StoryObj } from '@storybook/react'\nimport { BrowserRouter } from 'react-router-dom'\nimport VerticalMenuContent from './VerticalMenuContent'\nimport type { NavigationTree } from '@/@types/navigation'\nimport {\n NAV_ITEM_TYPE_COLLAPSE,\n NAV_ITEM_TYPE_ITEM,\n} from '@/constants/navigation.constant'\n\nconst mockNavigationTree: NavigationTree[] = [\n {\n key: 'inicio',\n path: '/inicio',\n title: 'Início',\n translateKey: 'nav.inicio',\n icon: '',\n type: NAV_ITEM_TYPE_ITEM,\n authority: ['/inicio'],\n subMenu: [],\n },\n {\n key: 'cadastros',\n path: '',\n title: 'Cadastros',\n translateKey: 'nav.cadastros',\n icon: '',\n type: NAV_ITEM_TYPE_COLLAPSE,\n authority: ['/cadastros'],\n subMenu: [\n {\n key: 'clientes',\n path: '/cadastros/clientes',\n title: 'Clientes',\n translateKey: 'nav.clientes',\n icon: '',\n type: NAV_ITEM_TYPE_ITEM,\n authority: ['/cadastros/clientes'],\n subMenu: [],\n },\n {\n key: 'fornecedores',\n path: '/cadastros/fornecedores',\n title: 'Fornecedores',\n translateKey: 'nav.fornecedores',\n icon: '',\n type: NAV_ITEM_TYPE_ITEM,\n authority: ['/cadastros/fornecedores'],\n subMenu: [],\n },\n ],\n },\n {\n key: 'relatorios',\n path: '/relatorios',\n title: 'Relatórios',\n translateKey: 'nav.relatorios',\n icon: 'ChartBarIcon',\n type: NAV_ITEM_TYPE_ITEM,\n authority: ['/relatorios'],\n subMenu: [],\n },\n {\n key: 'configuracoes',\n path: '',\n title: 'Configurações',\n translateKey: 'nav.configuracoes',\n icon: '',\n type: NAV_ITEM_TYPE_COLLAPSE,\n authority: ['/configuracoes'],\n subMenu: [\n {\n key: 'perfil',\n path: '/configuracoes/perfil',\n title: 'Perfil',\n translateKey: 'nav.perfil',\n icon: '',\n type: NAV_ITEM_TYPE_ITEM,\n authority: ['/configuracoes/perfil'],\n subMenu: [],\n },\n {\n key: 'integracoes',\n path: '',\n title: 'Integrações',\n translateKey: 'nav.integracoes',\n icon: '',\n type: NAV_ITEM_TYPE_COLLAPSE,\n authority: ['/configuracoes/integracoes'],\n subMenu: [\n {\n key: 'webhooks',\n path: '/configuracoes/integracoes/webhooks',\n title: 'Webhooks',\n translateKey: 'nav.webhooks',\n icon: 'WebhookIcon',\n type: NAV_ITEM_TYPE_ITEM,\n authority: ['/configuracoes/integracoes/webhooks'],\n subMenu: [],\n },\n {\n key: 'lorem.ipsum',\n path: '/configuracoes/integracoes/lorem-ipsum',\n title: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.',\n translateKey: 'nav.loremIpsum',\n icon: 'LoremIpsumIcon',\n type: NAV_ITEM_TYPE_ITEM,\n authority: ['/configuracoes/integracoes/lorem-ipsum'],\n subMenu: [],\n },\n ],\n },\n ],\n },\n]\n\nconst allUserAuthority = [\n '/inicio',\n '/cadastros/clientes',\n '/cadastros/fornecedores',\n '/relatorios',\n '/configuracoes/perfil',\n '/configuracoes/integracoes/webhooks',\n '/configuracoes/integracoes/lorem-ipsum',\n]\n\nconst meta: Meta<typeof VerticalMenuContent> = {\n title: '@ecme/Template/VerticalMenuContent',\n component: VerticalMenuContent,\n parameters: {\n layout: 'padded',\n },\n tags: ['autodocs'],\n decorators: [\n (Story) => (\n <BrowserRouter>\n <Story />\n </BrowserRouter>\n ),\n ],\n argTypes: {\n collapsed: {\n control: 'boolean',\n },\n direction: {\n control: { type: 'select' },\n options: ['ltr', 'rtl'],\n },\n routeKey: {\n control: 'text',\n },\n },\n}\n\nexport default meta\ntype TStory = StoryObj<typeof VerticalMenuContent>\n\nexport const Default: TStory = {\n args: {\n collapsed: false,\n routeKey: '/inicio',\n navigationTree: mockNavigationTree,\n userAuthority: allUserAuthority,\n direction: 'ltr',\n translationSetup: true,\n },\n}\n\nexport const Collapsed: TStory = {\n args: {\n collapsed: true,\n routeKey: '/cadastros/clientes',\n navigationTree: mockNavigationTree,\n userAuthority: allUserAuthority,\n direction: 'ltr',\n translationSetup: true,\n },\n}\n\nexport const WithExpandedMenu: TStory = {\n args: {\n collapsed: false,\n routeKey: '/configuracoes/integracoes/webhooks',\n navigationTree: mockNavigationTree,\n userAuthority: allUserAuthority,\n direction: 'ltr',\n translationSetup: true,\n },\n}\n\nexport const LimitedAuthority: TStory = {\n args: {\n collapsed: false,\n routeKey: '/inicio',\n navigationTree: mockNavigationTree,\n userAuthority: ['/inicio', '/relatorios'],\n direction: 'ltr',\n translationSetup: true,\n },\n}\n\nexport const RTLDirection: TStory = {\n args: {\n collapsed: false,\n routeKey: '/inicio',\n navigationTree: mockNavigationTree,\n userAuthority: allUserAuthority,\n direction: 'rtl',\n translationSetup: true,\n },\n}\n\nexport const MinimalNavigation: TStory = {\n args: {\n collapsed: false,\n routeKey: '/inicio',\n navigationTree: [\n {\n key: 'inicio',\n path: '/inicio',\n title: 'Início',\n translateKey: 'nav.inicio',\n icon: '',\n type: NAV_ITEM_TYPE_ITEM,\n authority: ['/inicio'],\n subMenu: [],\n },\n ],\n userAuthority: ['/inicio'],\n direction: 'ltr',\n translationSetup: true,\n },\n}\n\nexport const WithMenuClick: TStory = {\n args: {\n collapsed: false,\n routeKey: '/inicio',\n navigationTree: mockNavigationTree,\n userAuthority: allUserAuthority,\n direction: 'ltr',\n translationSetup: true,\n onMenuItemClick: () => alert('Menu item clicked!'),\n },\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"VerticalMenuContent.stories.js","sources":["../../../../../lib/@ecme/components/template/VerticalMenuContent/VerticalMenuContent.stories.tsx"],"sourcesContent":["import type { Meta, StoryObj } from '@storybook/react'\nimport { BrowserRouter } from 'react-router-dom'\nimport VerticalMenuContent from './VerticalMenuContent'\nimport type { NavigationTree } from '@/@types/navigation'\nimport ticketNavigationConfig from '@base/configs/navigation.config/modules.submenu/Ticket/ticket.navigation'\nimport {\n NAV_ITEM_TYPE_COLLAPSE,\n NAV_ITEM_TYPE_ITEM,\n NAV_ITEM_TYPE_TITLE,\n} from '@/constants/navigation.constant'\n\nconst collectAuthorityPaths = (navTree: NavigationTree[]): string[] => {\n return navTree.reduce((acc: string[], node) => {\n if (node.path) {\n acc.push(node.path)\n }\n\n if (node.subMenu?.length) {\n acc.push(...collectAuthorityPaths(node.subMenu))\n }\n\n return acc\n }, [])\n}\n\nconst ticketAuthority = Array.from(\n new Set(collectAuthorityPaths(ticketNavigationConfig)),\n)\n\nconst ticketSubmenuAllExpanded: NavigationTree[] = ticketNavigationConfig.map(\n (menu) => {\n if (menu.key !== 'ticket') {\n return menu\n }\n\n return {\n ...menu,\n subMenu: menu.subMenu.map((subMenu) => {\n if (\n subMenu.key === 'ticket.relatorios' ||\n subMenu.key === 'ticket.cadastros'\n ) {\n return {\n ...subMenu,\n type: NAV_ITEM_TYPE_TITLE,\n }\n }\n\n return subMenu\n }),\n }\n },\n)\n\nconst mockNavigationTree: NavigationTree[] = [\n {\n key: 'inicio',\n path: '/inicio',\n title: 'Início',\n translateKey: 'nav.inicio',\n icon: '',\n type: NAV_ITEM_TYPE_ITEM,\n authority: ['/inicio'],\n subMenu: [],\n },\n {\n key: 'cadastros',\n path: '',\n title: 'Cadastros',\n translateKey: 'nav.cadastros',\n icon: '',\n type: NAV_ITEM_TYPE_COLLAPSE,\n authority: ['/cadastros'],\n subMenu: [\n {\n key: 'clientes',\n path: '/cadastros/clientes',\n title: 'Clientes',\n translateKey: 'nav.clientes',\n icon: '',\n type: NAV_ITEM_TYPE_ITEM,\n authority: ['/cadastros/clientes'],\n subMenu: [],\n },\n {\n key: 'fornecedores',\n path: '/cadastros/fornecedores',\n title: 'Fornecedores',\n translateKey: 'nav.fornecedores',\n icon: '',\n type: NAV_ITEM_TYPE_ITEM,\n authority: ['/cadastros/fornecedores'],\n subMenu: [],\n },\n ],\n },\n {\n key: 'relatorios',\n path: '/relatorios',\n title: 'Relatórios',\n translateKey: 'nav.relatorios',\n icon: 'ChartBarIcon',\n type: NAV_ITEM_TYPE_ITEM,\n authority: ['/relatorios'],\n subMenu: [],\n },\n {\n key: 'configuracoes',\n path: '',\n title: 'Configurações',\n translateKey: 'nav.configuracoes',\n icon: '',\n type: NAV_ITEM_TYPE_COLLAPSE,\n authority: ['/configuracoes'],\n subMenu: [\n {\n key: 'perfil',\n path: '/configuracoes/perfil',\n title: 'Perfil',\n translateKey: 'nav.perfil',\n icon: '',\n type: NAV_ITEM_TYPE_ITEM,\n authority: ['/configuracoes/perfil'],\n subMenu: [],\n },\n {\n key: 'integracoes',\n path: '',\n title: 'Integrações',\n translateKey: 'nav.integracoes',\n icon: '',\n type: NAV_ITEM_TYPE_COLLAPSE,\n authority: ['/configuracoes/integracoes'],\n subMenu: [\n {\n key: 'webhooks',\n path: '/configuracoes/integracoes/webhooks',\n title: 'Webhooks',\n translateKey: 'nav.webhooks',\n icon: 'WebhookIcon',\n type: NAV_ITEM_TYPE_ITEM,\n authority: ['/configuracoes/integracoes/webhooks'],\n subMenu: [],\n },\n {\n key: 'lorem.ipsum',\n path: '/configuracoes/integracoes/lorem-ipsum',\n title: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.',\n translateKey: 'nav.loremIpsum',\n icon: 'LoremIpsumIcon',\n type: NAV_ITEM_TYPE_ITEM,\n authority: ['/configuracoes/integracoes/lorem-ipsum'],\n subMenu: [],\n },\n ],\n },\n ],\n },\n]\n\nconst allUserAuthority = [\n '/inicio',\n '/cadastros/clientes',\n '/cadastros/fornecedores',\n '/relatorios',\n '/configuracoes/perfil',\n '/configuracoes/integracoes/webhooks',\n '/configuracoes/integracoes/lorem-ipsum',\n]\n\nconst meta: Meta<typeof VerticalMenuContent> = {\n title: '@ecme/Template/VerticalMenuContent',\n component: VerticalMenuContent,\n parameters: {\n layout: 'padded',\n },\n tags: ['autodocs'],\n decorators: [\n (Story) => (\n <BrowserRouter>\n <Story />\n </BrowserRouter>\n ),\n ],\n argTypes: {\n collapsed: {\n control: 'boolean',\n },\n direction: {\n control: { type: 'select' },\n options: ['ltr', 'rtl'],\n },\n routeKey: {\n control: 'text',\n },\n },\n}\n\nexport default meta\ntype TStory = StoryObj<typeof VerticalMenuContent>\n\nexport const Default: TStory = {\n args: {\n collapsed: false,\n routeKey: '/inicio',\n navigationTree: mockNavigationTree,\n userAuthority: allUserAuthority,\n direction: 'ltr',\n translationSetup: true,\n },\n}\n\nexport const Collapsed: TStory = {\n args: {\n collapsed: true,\n routeKey: '/cadastros/clientes',\n navigationTree: mockNavigationTree,\n userAuthority: allUserAuthority,\n direction: 'ltr',\n translationSetup: true,\n },\n}\n\nexport const WithExpandedMenu: TStory = {\n args: {\n collapsed: false,\n routeKey: '/configuracoes/integracoes/webhooks',\n navigationTree: mockNavigationTree,\n userAuthority: allUserAuthority,\n direction: 'ltr',\n translationSetup: true,\n },\n}\n\nexport const LimitedAuthority: TStory = {\n args: {\n collapsed: false,\n routeKey: '/inicio',\n navigationTree: mockNavigationTree,\n userAuthority: ['/inicio', '/relatorios'],\n direction: 'ltr',\n translationSetup: true,\n },\n}\n\nexport const RTLDirection: TStory = {\n args: {\n collapsed: false,\n routeKey: '/inicio',\n navigationTree: mockNavigationTree,\n userAuthority: allUserAuthority,\n direction: 'rtl',\n translationSetup: true,\n },\n}\n\nexport const MinimalNavigation: TStory = {\n args: {\n collapsed: false,\n routeKey: '/inicio',\n navigationTree: [\n {\n key: 'inicio',\n path: '/inicio',\n title: 'Início',\n translateKey: 'nav.inicio',\n icon: '',\n type: NAV_ITEM_TYPE_ITEM,\n authority: ['/inicio'],\n subMenu: [],\n },\n ],\n userAuthority: ['/inicio'],\n direction: 'ltr',\n translationSetup: true,\n },\n}\n\nexport const WithMenuClick: TStory = {\n args: {\n collapsed: false,\n routeKey: '/inicio',\n navigationTree: mockNavigationTree,\n userAuthority: allUserAuthority,\n direction: 'ltr',\n translationSetup: true,\n onMenuItemClick: () => alert('Menu item clicked!'),\n },\n}\n\nexport const TicketSubmenu: TStory = {\n args: {\n collapsed: false,\n routeKey: 'ticket',\n navigationTree: ticketNavigationConfig,\n userAuthority: ticketAuthority,\n direction: 'ltr',\n translationSetup: true,\n },\n}\n\nexport const TicketSubmenuSortOrderStable: TStory = {\n args: {\n collapsed: false,\n routeKey: 'ticket',\n navigationTree: ticketSubmenuAllExpanded,\n userAuthority: ticketAuthority,\n direction: 'ltr',\n translationSetup: true,\n },\n}\n"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"VerticalMenuContent.d.ts","sourceRoot":"","sources":["../../../../../../lib/@ecme/components/template/VerticalMenuContent/VerticalMenuContent.tsx"],"names":[],"mappings":"AAYA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC1C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAEzD,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAA;AAE3D,MAAM,WAAW,wBAAwB;IACrC,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,QAAQ,EAAE,MAAM,CAAA;IAChB,cAAc,CAAC,EAAE,cAAc,EAAE,CAAA;IACjC,eAAe,CAAC,EAAE,MAAM,IAAI,CAAA;IAC5B,SAAS,CAAC,EAAE,SAAS,CAAA;IACrB,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,aAAa,EAAE,MAAM,EAAE,CAAA;IACvB,YAAY,CAAC,EAAE,YAAY,CAAA;CAC9B;AA0ED,QAAA,MAAM,mBAAmB,GAAI,OAAO,wBAAwB,4CAmI3D,CAAA;AAED,eAAe,mBAAmB,CAAA"}
1
+ {"version":3,"file":"VerticalMenuContent.d.ts","sourceRoot":"","sources":["../../../../../../lib/@ecme/components/template/VerticalMenuContent/VerticalMenuContent.tsx"],"names":[],"mappings":"AAYA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC1C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAEzD,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAA;AAE3D,MAAM,WAAW,wBAAwB;IACrC,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,QAAQ,EAAE,MAAM,CAAA;IAChB,cAAc,CAAC,EAAE,cAAc,EAAE,CAAA;IACjC,eAAe,CAAC,EAAE,MAAM,IAAI,CAAA;IAC5B,SAAS,CAAC,EAAE,SAAS,CAAA;IACrB,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,aAAa,EAAE,MAAM,EAAE,CAAA;IACvB,YAAY,CAAC,EAAE,YAAY,CAAA;CAC9B;AAkFD,QAAA,MAAM,mBAAmB,GAAI,OAAO,wBAAwB,4CAkI3D,CAAA;AAED,eAAe,mBAAmB,CAAA"}
@@ -10,4 +10,6 @@ export declare const LimitedAuthority: TStory;
10
10
  export declare const RTLDirection: TStory;
11
11
  export declare const MinimalNavigation: TStory;
12
12
  export declare const WithMenuClick: TStory;
13
+ export declare const TicketSubmenu: TStory;
14
+ export declare const TicketSubmenuSortOrderStable: TStory;
13
15
  //# sourceMappingURL=VerticalMenuContent.stories.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"VerticalMenuContent.stories.d.ts","sourceRoot":"","sources":["../../../../../../lib/@ecme/components/template/VerticalMenuContent/VerticalMenuContent.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAEtD,OAAO,mBAAmB,MAAM,uBAAuB,CAAA;AA2HvD,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,mBAAmB,CA0B1C,CAAA;AAED,eAAe,IAAI,CAAA;AACnB,KAAK,MAAM,GAAG,QAAQ,CAAC,OAAO,mBAAmB,CAAC,CAAA;AAElD,eAAO,MAAM,OAAO,EAAE,MASrB,CAAA;AAED,eAAO,MAAM,SAAS,EAAE,MASvB,CAAA;AAED,eAAO,MAAM,gBAAgB,EAAE,MAS9B,CAAA;AAED,eAAO,MAAM,gBAAgB,EAAE,MAS9B,CAAA;AAED,eAAO,MAAM,YAAY,EAAE,MAS1B,CAAA;AAED,eAAO,MAAM,iBAAiB,EAAE,MAoB/B,CAAA;AAED,eAAO,MAAM,aAAa,EAAE,MAU3B,CAAA"}
1
+ {"version":3,"file":"VerticalMenuContent.stories.d.ts","sourceRoot":"","sources":["../../../../../../lib/@ecme/components/template/VerticalMenuContent/VerticalMenuContent.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAEtD,OAAO,mBAAmB,MAAM,uBAAuB,CAAA;AAwKvD,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,mBAAmB,CA0B1C,CAAA;AAED,eAAe,IAAI,CAAA;AACnB,KAAK,MAAM,GAAG,QAAQ,CAAC,OAAO,mBAAmB,CAAC,CAAA;AAElD,eAAO,MAAM,OAAO,EAAE,MASrB,CAAA;AAED,eAAO,MAAM,SAAS,EAAE,MASvB,CAAA;AAED,eAAO,MAAM,gBAAgB,EAAE,MAS9B,CAAA;AAED,eAAO,MAAM,gBAAgB,EAAE,MAS9B,CAAA;AAED,eAAO,MAAM,YAAY,EAAE,MAS1B,CAAA;AAED,eAAO,MAAM,iBAAiB,EAAE,MAoB/B,CAAA;AAED,eAAO,MAAM,aAAa,EAAE,MAU3B,CAAA;AAED,eAAO,MAAM,aAAa,EAAE,MAS3B,CAAA;AAED,eAAO,MAAM,4BAA4B,EAAE,MAS1C,CAAA"}
@@ -58,6 +58,7 @@ export interface FindEntregaResponse {
58
58
  quantidadePendente: number;
59
59
  quantidadeRetida: number;
60
60
  quantidadeBaixadaConsumida: number;
61
+ quantidadeDisponivel?: number;
61
62
  dataEntrega: string;
62
63
  status: 'POSITIVE' | 'NEGATIVE' | 'DECLARED' | 'ORIUNDO';
63
64
  retornoEntrega: TRetornoEntregaResponse;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../../lib/base/@types/api/response/bayer/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../../lib/base/@types/api/response/bayer/types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"cadastros.submenu.d.ts","sourceRoot":"","sources":["../../../../../../../lib/base/configs/navigation.config/submenu/ticket/cadastros.submenu.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AASpD,QAAA,MAAM,gBAAgB,EAAE,cAAc,EAQrC,CAAA;AAED,eAAe,gBAAgB,CAAA"}
1
+ {"version":3,"file":"cadastros.submenu.d.ts","sourceRoot":"","sources":["../../../../../../../lib/base/configs/navigation.config/submenu/ticket/cadastros.submenu.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAepD,QAAA,MAAM,gBAAgB,EAAE,cAAc,EAcrC,CAAA;AAED,eAAe,gBAAgB,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"relatorios.submenu.d.ts","sourceRoot":"","sources":["../../../../../../../lib/base/configs/navigation.config/submenu/ticket/relatorios.submenu.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAQpD,QAAA,MAAM,iBAAiB,EAAE,cAAc,EAMtC,CAAA;AAED,eAAe,iBAAiB,CAAA"}
1
+ {"version":3,"file":"relatorios.submenu.d.ts","sourceRoot":"","sources":["../../../../../../../lib/base/configs/navigation.config/submenu/ticket/relatorios.submenu.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAepD,QAAA,MAAM,iBAAiB,EAAE,cAAc,EAYtC,CAAA;AAED,eAAe,iBAAiB,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sources":["../../../../../../lib/base/@types/api/response/bayer/types.ts"],"sourcesContent":["import { TRetornoEntregaResponse } from \"./TRetornoEntregaResponse\";\n\nexport interface RoyaltiesBusinessPartnerResponse {\n codigoBusinessPartner: string;\n}\n\nexport interface CreateRoyaltiesBusinessPartnerRequest {\n codigoBusinessPartner: string;\n}\n\nexport interface EntregaResponse {\n id: number;\n}\n\nexport interface FindEntregaFilterRequest {\n produtorId: number;\n produtoId: number[];\n dataInicial: string;\n dataFinal: string;\n codigoCentro: string[];\n safraId: number;\n}\n\nexport interface SomatorioEntregaPorGrupoResponse {\n grupo: string;\n totalQuantidadeEntregue: number;\n totalQuantidadeBaixada: number;\n totalQuantidadePendente: number;\n totalQuantidadeRetida: number;\n totalQuantidadeBaixadaConsumida: number;\n}\n\nexport interface SomatorioEntregaResponse {\n somatorios: SomatorioEntregaPorGrupoResponse[];\n}\n\nexport interface SomatorioEntregaExtratoProdutorRequest {\n produtorId: number;\n produtoId: number[];\n dataInicial: string;\n dataFinal: string;\n codigoCentro: string[];\n safraId: number;\n}\n\nexport interface SomatorioEntregaExtratoProdutorResponse {\n transgenia: string;\n totalQuantidadeEntregue: number;\n totalQuantidadeBaixada: number;\n totalQuantidadeBaixadaConsumida: number;\n totalQuantidadePendente: number;\n totalQuantidadeRetida: number;\n}\n\nexport interface FindEntregaResponse {\n id: number;\n saldoEntradaGraosId: number;\n ticketId: number;\n codigoCentro: string;\n codigoDeposito: string;\n produtoId: number;\n safraId: number;\n produtorId: number;\n transgenia: 'INTACTA' | 'NAO_INTACTA' | 'INTACTA_NAO_DECLARADA' | 'ORIUNDO_PARTICIPANTE' | 'INTACTA_ORIUNDO_PARTICIPANTE' | 'SEM_TRANSGENIA';\n quantidadeEntregue: number;\n quantidadeBaixada: number;\n quantidadePendente: number;\n quantidadeRetida: number;\n quantidadeBaixadaConsumida: number;\n dataEntrega: string;\n status: 'POSITIVE' | 'NEGATIVE' | 'DECLARED' | 'ORIUNDO';\n retornoEntrega: TRetornoEntregaResponse;\n}\n\nexport interface ItemQuantidadeConsumidaPorSaldoEntradaGraosRequest {\n saldoEntradaGraosId: number;\n quantidadeConsumida: number;\n}\n\nexport interface QuantidadeConsumidaPorSaldoEntradaGraosRequest {\n itens: ItemQuantidadeConsumidaPorSaldoEntradaGraosRequest[];\n}\n\nexport interface ItemQuantidadeASerRetidaPorSaldoResponse {\n entregaId: number;\n saldoEntradaGraosId: number;\n quantidadeASerRetida: number;\n}\n\nexport interface QuantidadeASerRetidaPorSaldoResponse {\n businessPartnerRoyalties: string;\n itens: ItemQuantidadeASerRetidaPorSaldoResponse[];\n}\n\nexport interface ItemAplicarRetencaoResponse {\n entregaId: number;\n saldoEntradaGraosId: number;\n quantidadeRetida: number;\n fixacaoId: string;\n}\n\nexport interface AplicarRetencaoResponse {\n itens: ItemAplicarRetencaoResponse[];\n}\n\nexport interface AtualizarQuantidadesEntregaRequest {\n quantidadeEntregue: number;\n quantidadeBaixada: number;\n quantidadePendente: number;\n quantidadeRetida: number;\n quantidadeBaixadaConsumida: number;\n}\n\nexport enum StatusTransacaoEntrega {\n CONSUMO = 'CONSUMO',\n ESTORNO = 'ESTORNO',\n}\n\nexport interface TTransacaoEntregaResponse {\n id: number;\n entregaId: number;\n saldoEntradaGraosId: number;\n liquidacaoId: number;\n quantidadeBaixadaConsumida: number;\n quantidadeRetida: number;\n statusTransacaoEntrega: StatusTransacaoEntrega;\n dataTransacao: string;\n}\n"],"names":["StatusTransacaoEntrega"],"mappings":"AAiHO,IAAK,2CAAAA,4BAAL;AACLA,0BAAA,SAAA,IAAU;AACVA,0BAAA,SAAA,IAAU;AAFA,SAAAA;AAAA,GAAA,0BAAA,CAAA,CAAA;"}
1
+ {"version":3,"file":"types.js","sources":["../../../../../../lib/base/@types/api/response/bayer/types.ts"],"sourcesContent":["import { TRetornoEntregaResponse } from \"./TRetornoEntregaResponse\";\n\nexport interface RoyaltiesBusinessPartnerResponse {\n codigoBusinessPartner: string;\n}\n\nexport interface CreateRoyaltiesBusinessPartnerRequest {\n codigoBusinessPartner: string;\n}\n\nexport interface EntregaResponse {\n id: number;\n}\n\nexport interface FindEntregaFilterRequest {\n produtorId: number;\n produtoId: number[];\n dataInicial: string;\n dataFinal: string;\n codigoCentro: string[];\n safraId: number;\n}\n\nexport interface SomatorioEntregaPorGrupoResponse {\n grupo: string;\n totalQuantidadeEntregue: number;\n totalQuantidadeBaixada: number;\n totalQuantidadePendente: number;\n totalQuantidadeRetida: number;\n totalQuantidadeBaixadaConsumida: number;\n}\n\nexport interface SomatorioEntregaResponse {\n somatorios: SomatorioEntregaPorGrupoResponse[];\n}\n\nexport interface SomatorioEntregaExtratoProdutorRequest {\n produtorId: number;\n produtoId: number[];\n dataInicial: string;\n dataFinal: string;\n codigoCentro: string[];\n safraId: number;\n}\n\nexport interface SomatorioEntregaExtratoProdutorResponse {\n transgenia: string;\n totalQuantidadeEntregue: number;\n totalQuantidadeBaixada: number;\n totalQuantidadeBaixadaConsumida: number;\n totalQuantidadePendente: number;\n totalQuantidadeRetida: number;\n}\n\nexport interface FindEntregaResponse {\n id: number;\n saldoEntradaGraosId: number;\n ticketId: number;\n codigoCentro: string;\n codigoDeposito: string;\n produtoId: number;\n safraId: number;\n produtorId: number;\n transgenia: 'INTACTA' | 'NAO_INTACTA' | 'INTACTA_NAO_DECLARADA' | 'ORIUNDO_PARTICIPANTE' | 'INTACTA_ORIUNDO_PARTICIPANTE' | 'SEM_TRANSGENIA';\n quantidadeEntregue: number;\n quantidadeBaixada: number;\n quantidadePendente: number;\n quantidadeRetida: number;\n quantidadeBaixadaConsumida: number;\n quantidadeDisponivel?: number;\n dataEntrega: string;\n status: 'POSITIVE' | 'NEGATIVE' | 'DECLARED' | 'ORIUNDO';\n retornoEntrega: TRetornoEntregaResponse;\n}\n\nexport interface ItemQuantidadeConsumidaPorSaldoEntradaGraosRequest {\n saldoEntradaGraosId: number;\n quantidadeConsumida: number;\n}\n\nexport interface QuantidadeConsumidaPorSaldoEntradaGraosRequest {\n itens: ItemQuantidadeConsumidaPorSaldoEntradaGraosRequest[];\n}\n\nexport interface ItemQuantidadeASerRetidaPorSaldoResponse {\n entregaId: number;\n saldoEntradaGraosId: number;\n quantidadeASerRetida: number;\n}\n\nexport interface QuantidadeASerRetidaPorSaldoResponse {\n businessPartnerRoyalties: string;\n itens: ItemQuantidadeASerRetidaPorSaldoResponse[];\n}\n\nexport interface ItemAplicarRetencaoResponse {\n entregaId: number;\n saldoEntradaGraosId: number;\n quantidadeRetida: number;\n fixacaoId: string;\n}\n\nexport interface AplicarRetencaoResponse {\n itens: ItemAplicarRetencaoResponse[];\n}\n\nexport interface AtualizarQuantidadesEntregaRequest {\n quantidadeEntregue: number;\n quantidadeBaixada: number;\n quantidadePendente: number;\n quantidadeRetida: number;\n quantidadeBaixadaConsumida: number;\n}\n\nexport enum StatusTransacaoEntrega {\n CONSUMO = 'CONSUMO',\n ESTORNO = 'ESTORNO',\n}\n\nexport interface TTransacaoEntregaResponse {\n id: number;\n entregaId: number;\n saldoEntradaGraosId: number;\n liquidacaoId: number;\n quantidadeBaixadaConsumida: number;\n quantidadeRetida: number;\n statusTransacaoEntrega: StatusTransacaoEntrega;\n dataTransacao: string;\n}\n"],"names":["StatusTransacaoEntrega"],"mappings":"AAkHO,IAAK,2CAAAA,4BAAL;AACLA,0BAAA,SAAA,IAAU;AACVA,0BAAA,SAAA,IAAU;AAFA,SAAAA;AAAA,GAAA,0BAAA,CAAA,CAAA;"}
@@ -4,15 +4,27 @@ import vinculoUnidadeMedidaSubmenu from "./config/vinculoUnidadeMedida.submenu.j
4
4
  import vinculoTransgeniaOperacaoSubmenu from "./config/vinculoTransgeniaOperacao.submenu.js";
5
5
  import vinculoProdutoOperacaoSubmenu from "./config/vinculoProdutoOperacao.submenu.js";
6
6
  import vinculoProdutorOperacaoSubmenu from "./config/vinculoProdutorOperacao.submenu.js";
7
+ import motivoCancelamentoSubmenu from "./config/motivoCancelamento.submenu.js";
8
+ import cadastrosOperacaoSubmenu from "./config/cadastrosOperacao.submenu.js";
9
+ import operacoesMovimentacaoGraosSubmenu from "./config/operacoesMovimentacaoGraos.submenu.js";
7
10
  import recebimentoCentroSubmenu from "./config/recebimentoCentro.submenu.js";
11
+ import rotaRomaneioSubmenu from "./config/rotaRomaneio.submenu.js";
12
+ import tabelaBiodieselSubmenu from "./config/tabelaBiodiesel.submenu.js";
13
+ import tabelaClassificacaoSubmenu from "./config/tabelaClassificacao.submenu.js";
8
14
  const cadastrosSubmenu = [
9
- { ...recebimentoCentroSubmenu, sortOrder: 1 },
10
- { ...vinculoSafraOperacaoSubmenu, sortOrder: 2 },
11
- { ...vinculoDepositoOperacaoSubmenu, sortOrder: 3 },
12
- { ...vinculoUnidadeMedidaSubmenu, sortOrder: 4 },
13
- { ...vinculoTransgeniaOperacaoSubmenu, sortOrder: 5 },
14
- { ...vinculoProdutoOperacaoSubmenu, sortOrder: 6 },
15
- { ...vinculoProdutorOperacaoSubmenu, sortOrder: 7 }
15
+ { ...operacoesMovimentacaoGraosSubmenu, sortOrder: 1 },
16
+ { ...recebimentoCentroSubmenu, sortOrder: 2 },
17
+ { ...vinculoSafraOperacaoSubmenu, sortOrder: 3 },
18
+ { ...vinculoDepositoOperacaoSubmenu, sortOrder: 4 },
19
+ { ...vinculoUnidadeMedidaSubmenu, sortOrder: 5 },
20
+ { ...vinculoTransgeniaOperacaoSubmenu, sortOrder: 6 },
21
+ { ...vinculoProdutoOperacaoSubmenu, sortOrder: 7 },
22
+ { ...vinculoProdutorOperacaoSubmenu, sortOrder: 8 },
23
+ { ...motivoCancelamentoSubmenu, sortOrder: 9 },
24
+ { ...cadastrosOperacaoSubmenu, sortOrder: 10 },
25
+ { ...rotaRomaneioSubmenu, sortOrder: 11 },
26
+ { ...tabelaBiodieselSubmenu, sortOrder: 12 },
27
+ { ...tabelaClassificacaoSubmenu, sortOrder: 13 }
16
28
  ];
17
29
  export {
18
30
  cadastrosSubmenu as default
@@ -1 +1 @@
1
- {"version":3,"file":"cadastros.submenu.js","sources":["../../../../../../lib/base/configs/navigation.config/submenu/ticket/cadastros.submenu.ts"],"sourcesContent":["import { NavigationTree } from \"@/@types/navigation\"\nimport vinculoSafraOperacaoSubmenu from \"./config/vinculoSafraOperacao.submenu\"\nimport vinculoDepositoOperacaoSubmenu from \"./config/vinculoDepositoOperacao.submenu\"\nimport vinculoUnidadeMedidaSubmenu from \"./config/vinculoUnidadeMedida.submenu\"\nimport vinculoTransgeniaOperacaoSubmenu from \"./config/vinculoTransgeniaOperacao.submenu\"\nimport vinculoProdutoOperacaoSubmenu from \"./config/vinculoProdutoOperacao.submenu\"\nimport vinculoProdutorOperacaoSubmenu from \"./config/vinculoProdutorOperacao.submenu\"\nimport recebimentoCentroSubmenu from \"./config/recebimentoCentro.submenu\"\n\nconst cadastrosSubmenu: NavigationTree[] = [\n { ...recebimentoCentroSubmenu, sortOrder: 1 },\n { ...vinculoSafraOperacaoSubmenu, sortOrder: 2 },\n { ...vinculoDepositoOperacaoSubmenu, sortOrder: 3 },\n { ...vinculoUnidadeMedidaSubmenu, sortOrder: 4 },\n { ...vinculoTransgeniaOperacaoSubmenu, sortOrder: 5 },\n { ...vinculoProdutoOperacaoSubmenu, sortOrder: 6 },\n { ...vinculoProdutorOperacaoSubmenu, sortOrder: 7 },\n]\n\nexport default cadastrosSubmenu\n"],"names":[],"mappings":";;;;;;;AASA,MAAM,mBAAqC;AAAA,EACvC,EAAE,GAAG,0BAA0B,WAAW,EAAA;AAAA,EAC1C,EAAE,GAAG,6BAA6B,WAAW,EAAA;AAAA,EAC7C,EAAE,GAAG,gCAAgC,WAAW,EAAA;AAAA,EAChD,EAAE,GAAG,6BAA6B,WAAW,EAAA;AAAA,EAC7C,EAAE,GAAG,kCAAkC,WAAW,EAAA;AAAA,EAClD,EAAE,GAAG,+BAA+B,WAAW,EAAA;AAAA,EAC/C,EAAE,GAAG,gCAAgC,WAAW,EAAA;AACpD;"}
1
+ {"version":3,"file":"cadastros.submenu.js","sources":["../../../../../../lib/base/configs/navigation.config/submenu/ticket/cadastros.submenu.ts"],"sourcesContent":["import { NavigationTree } from \"@/@types/navigation\"\nimport vinculoSafraOperacaoSubmenu from \"./config/vinculoSafraOperacao.submenu\"\nimport vinculoDepositoOperacaoSubmenu from \"./config/vinculoDepositoOperacao.submenu\"\nimport vinculoUnidadeMedidaSubmenu from \"./config/vinculoUnidadeMedida.submenu\"\nimport vinculoTransgeniaOperacaoSubmenu from \"./config/vinculoTransgeniaOperacao.submenu\"\nimport vinculoProdutoOperacaoSubmenu from \"./config/vinculoProdutoOperacao.submenu\"\nimport vinculoProdutorOperacaoSubmenu from \"./config/vinculoProdutorOperacao.submenu\"\nimport motivoCancelamentoSubmenu from \"./config/motivoCancelamento.submenu\"\nimport cadastrosOperacaoSubmenu from \"./config/cadastrosOperacao.submenu\"\nimport operacoesMovimentacaoGraosSubmenu from \"./config/operacoesMovimentacaoGraos.submenu\"\nimport recebimentoCentroSubmenu from \"./config/recebimentoCentro.submenu\"\nimport rotaRomaneioSubmenu from \"./config/rotaRomaneio.submenu\"\nimport tabelaBiodieselSubmenu from \"./config/tabelaBiodiesel.submenu\"\nimport tabelaClassificacaoSubmenu from \"./config/tabelaClassificacao.submenu\"\n\nconst cadastrosSubmenu: NavigationTree[] = [\n { ...operacoesMovimentacaoGraosSubmenu, sortOrder: 1 },\n { ...recebimentoCentroSubmenu, sortOrder: 2 },\n { ...vinculoSafraOperacaoSubmenu, sortOrder: 3 },\n { ...vinculoDepositoOperacaoSubmenu, sortOrder: 4 },\n { ...vinculoUnidadeMedidaSubmenu, sortOrder: 5 },\n { ...vinculoTransgeniaOperacaoSubmenu, sortOrder: 6 },\n { ...vinculoProdutoOperacaoSubmenu, sortOrder: 7 },\n { ...vinculoProdutorOperacaoSubmenu, sortOrder: 8 },\n { ...motivoCancelamentoSubmenu, sortOrder: 9 },\n { ...cadastrosOperacaoSubmenu, sortOrder: 10 },\n { ...rotaRomaneioSubmenu, sortOrder: 11 },\n { ...tabelaBiodieselSubmenu, sortOrder: 12 },\n { ...tabelaClassificacaoSubmenu, sortOrder: 13 },\n]\n\nexport default cadastrosSubmenu\n"],"names":[],"mappings":";;;;;;;;;;;;;AAeA,MAAM,mBAAqC;AAAA,EACvC,EAAE,GAAG,mCAAmC,WAAW,EAAA;AAAA,EACnD,EAAE,GAAG,0BAA0B,WAAW,EAAA;AAAA,EAC1C,EAAE,GAAG,6BAA6B,WAAW,EAAA;AAAA,EAC7C,EAAE,GAAG,gCAAgC,WAAW,EAAA;AAAA,EAChD,EAAE,GAAG,6BAA6B,WAAW,EAAA;AAAA,EAC7C,EAAE,GAAG,kCAAkC,WAAW,EAAA;AAAA,EAClD,EAAE,GAAG,+BAA+B,WAAW,EAAA;AAAA,EAC/C,EAAE,GAAG,gCAAgC,WAAW,EAAA;AAAA,EAChD,EAAE,GAAG,2BAA2B,WAAW,EAAA;AAAA,EAC3C,EAAE,GAAG,0BAA0B,WAAW,GAAA;AAAA,EAC1C,EAAE,GAAG,qBAAqB,WAAW,GAAA;AAAA,EACrC,EAAE,GAAG,wBAAwB,WAAW,GAAA;AAAA,EACxC,EAAE,GAAG,4BAA4B,WAAW,GAAA;AAChD;"}
@@ -1,14 +1,26 @@
1
+ import extratoProdutorSubmenu from "./config/extratoProdutor.submenu.js";
2
+ import controleTicketSubmenu from "./config/controleTicket.submenu.js";
1
3
  import motivoCancelamentoSubmenu from "./config/motivoCancelamento.submenu.js";
2
4
  import cadastrosOperacaoSubmenu from "./config/cadastrosOperacao.submenu.js";
3
5
  import operacoesMovimentacaoGraosSubmenu from "./config/operacoesMovimentacaoGraos.submenu.js";
6
+ import relatorioFisicoFiscalSubmenu from "./config/relatorioFisicoFiscal.submenu.js";
7
+ import recebimentoCentroSubmenu from "./config/recebimentoCentro.submenu.js";
4
8
  import rotaRomaneioSubmenu from "./config/rotaRomaneio.submenu.js";
5
9
  import tabelaBiodieselSubmenu from "./config/tabelaBiodiesel.submenu.js";
10
+ import toleranciaDiferencaPrecoSubmenu from "./config/toleranciaDiferencaPreco.submenu.js";
11
+ import relatorioMediaPonderadaSubmenu from "./config/relatorioMediaPonderada.submenu.js";
6
12
  const relatoriosSubmenu = [
7
13
  { ...motivoCancelamentoSubmenu, sortOrder: 1 },
8
14
  { ...cadastrosOperacaoSubmenu, sortOrder: 2 },
9
15
  { ...operacoesMovimentacaoGraosSubmenu, sortOrder: 3 },
10
16
  { ...rotaRomaneioSubmenu, sortOrder: 4 },
11
- { ...tabelaBiodieselSubmenu, sortOrder: 5 }
17
+ { ...tabelaBiodieselSubmenu, sortOrder: 5 },
18
+ { ...extratoProdutorSubmenu, sortOrder: 6 },
19
+ { ...controleTicketSubmenu, sortOrder: 7 },
20
+ { ...relatorioFisicoFiscalSubmenu, sortOrder: 8 },
21
+ { ...relatorioMediaPonderadaSubmenu, sortOrder: 9 },
22
+ { ...recebimentoCentroSubmenu, sortOrder: 10 },
23
+ { ...toleranciaDiferencaPrecoSubmenu, sortOrder: 11 }
12
24
  ];
13
25
  export {
14
26
  relatoriosSubmenu as default
@@ -1 +1 @@
1
- {"version":3,"file":"relatorios.submenu.js","sources":["../../../../../../lib/base/configs/navigation.config/submenu/ticket/relatorios.submenu.ts"],"sourcesContent":["import { NavigationTree } from \"@/@types/navigation\"\nimport motivoCancelamentoSubmenu from \"./config/motivoCancelamento.submenu\"\nimport cadastrosOperacaoSubmenu from \"./config/cadastrosOperacao.submenu\"\nimport operacoesMovimentacaoGraosSubmenu from \"./config/operacoesMovimentacaoGraos.submenu\"\nimport rotaRomaneioSubmenu from \"./config/rotaRomaneio.submenu\"\nimport tabelaBiodieselSubmenu from \"./config/tabelaBiodiesel.submenu\"\n\n\nconst relatoriosSubmenu: NavigationTree[] = [\n { ...motivoCancelamentoSubmenu, sortOrder: 1 },\n { ...cadastrosOperacaoSubmenu, sortOrder: 2 },\n { ...operacoesMovimentacaoGraosSubmenu, sortOrder: 3 },\n { ...rotaRomaneioSubmenu, sortOrder: 4 },\n { ...tabelaBiodieselSubmenu, sortOrder: 5 },\n]\n\nexport default relatoriosSubmenu\n"],"names":[],"mappings":";;;;;AAQA,MAAM,oBAAsC;AAAA,EACxC,EAAE,GAAG,2BAA2B,WAAW,EAAA;AAAA,EAC3C,EAAE,GAAG,0BAA0B,WAAW,EAAA;AAAA,EAC1C,EAAE,GAAG,mCAAmC,WAAW,EAAA;AAAA,EACnD,EAAE,GAAG,qBAAqB,WAAW,EAAA;AAAA,EACrC,EAAE,GAAG,wBAAwB,WAAW,EAAA;AAC5C;"}
1
+ {"version":3,"file":"relatorios.submenu.js","sources":["../../../../../../lib/base/configs/navigation.config/submenu/ticket/relatorios.submenu.ts"],"sourcesContent":["import { NavigationTree } from \"@/@types/navigation\"\nimport extratoProdutorSubmenu from \"./config/extratoProdutor.submenu\"\nimport controleTicketSubmenu from \"./config/controleTicket.submenu\"\nimport motivoCancelamentoSubmenu from \"./config/motivoCancelamento.submenu\"\nimport cadastrosOperacaoSubmenu from \"./config/cadastrosOperacao.submenu\"\nimport operacoesMovimentacaoGraosSubmenu from \"./config/operacoesMovimentacaoGraos.submenu\"\nimport relatorioFisicoFiscalSubmenu from \"./config/relatorioFisicoFiscal.submenu\"\nimport recebimentoCentroSubmenu from \"./config/recebimentoCentro.submenu\"\nimport rotaRomaneioSubmenu from \"./config/rotaRomaneio.submenu\"\nimport tabelaBiodieselSubmenu from \"./config/tabelaBiodiesel.submenu\"\nimport tabelaClassificacaoSubmenu from \"./config/tabelaClassificacao.submenu\"\nimport toleranciaDiferencaPrecoSubmenu from \"./config/toleranciaDiferencaPreco.submenu\"\nimport relatorioMediaPonderadaSubmenu from \"./config/relatorioMediaPonderada.submenu\"\n\n\nconst relatoriosSubmenu: NavigationTree[] = [\n { ...motivoCancelamentoSubmenu, sortOrder: 1 },\n { ...cadastrosOperacaoSubmenu, sortOrder: 2 },\n { ...operacoesMovimentacaoGraosSubmenu, sortOrder: 3 },\n { ...rotaRomaneioSubmenu, sortOrder: 4 },\n { ...tabelaBiodieselSubmenu, sortOrder: 5 },\n { ...extratoProdutorSubmenu, sortOrder: 6 },\n { ...controleTicketSubmenu, sortOrder: 7 },\n { ...relatorioFisicoFiscalSubmenu, sortOrder: 8 },\n { ...relatorioMediaPonderadaSubmenu, sortOrder: 9 },\n { ...recebimentoCentroSubmenu, sortOrder: 10 },\n { ...toleranciaDiferencaPrecoSubmenu, sortOrder: 11 },\n]\n\nexport default relatoriosSubmenu\n"],"names":[],"mappings":";;;;;;;;;;;AAeA,MAAM,oBAAsC;AAAA,EACxC,EAAE,GAAG,2BAA2B,WAAW,EAAA;AAAA,EAC3C,EAAE,GAAG,0BAA0B,WAAW,EAAA;AAAA,EAC1C,EAAE,GAAG,mCAAmC,WAAW,EAAA;AAAA,EACnD,EAAE,GAAG,qBAAqB,WAAW,EAAA;AAAA,EACrC,EAAE,GAAG,wBAAwB,WAAW,EAAA;AAAA,EACxC,EAAE,GAAG,wBAAwB,WAAW,EAAA;AAAA,EACxC,EAAE,GAAG,uBAAuB,WAAW,EAAA;AAAA,EACvC,EAAE,GAAG,8BAA8B,WAAW,EAAA;AAAA,EAC9C,EAAE,GAAG,gCAAgC,WAAW,EAAA;AAAA,EAChD,EAAE,GAAG,0BAA0B,WAAW,GAAA;AAAA,EAC1C,EAAE,GAAG,iCAAiC,WAAW,GAAA;AACrD;"}
@@ -2,11 +2,56 @@ import type { Meta, StoryObj } from '@storybook/react'
2
2
  import { BrowserRouter } from 'react-router-dom'
3
3
  import VerticalMenuContent from './VerticalMenuContent'
4
4
  import type { NavigationTree } from '@/@types/navigation'
5
+ import ticketNavigationConfig from '@base/configs/navigation.config/modules.submenu/Ticket/ticket.navigation'
5
6
  import {
6
7
  NAV_ITEM_TYPE_COLLAPSE,
7
8
  NAV_ITEM_TYPE_ITEM,
9
+ NAV_ITEM_TYPE_TITLE,
8
10
  } from '@/constants/navigation.constant'
9
11
 
12
+ const collectAuthorityPaths = (navTree: NavigationTree[]): string[] => {
13
+ return navTree.reduce((acc: string[], node) => {
14
+ if (node.path) {
15
+ acc.push(node.path)
16
+ }
17
+
18
+ if (node.subMenu?.length) {
19
+ acc.push(...collectAuthorityPaths(node.subMenu))
20
+ }
21
+
22
+ return acc
23
+ }, [])
24
+ }
25
+
26
+ const ticketAuthority = Array.from(
27
+ new Set(collectAuthorityPaths(ticketNavigationConfig)),
28
+ )
29
+
30
+ const ticketSubmenuAllExpanded: NavigationTree[] = ticketNavigationConfig.map(
31
+ (menu) => {
32
+ if (menu.key !== 'ticket') {
33
+ return menu
34
+ }
35
+
36
+ return {
37
+ ...menu,
38
+ subMenu: menu.subMenu.map((subMenu) => {
39
+ if (
40
+ subMenu.key === 'ticket.relatorios' ||
41
+ subMenu.key === 'ticket.cadastros'
42
+ ) {
43
+ return {
44
+ ...subMenu,
45
+ type: NAV_ITEM_TYPE_TITLE,
46
+ }
47
+ }
48
+
49
+ return subMenu
50
+ }),
51
+ }
52
+ },
53
+ )
54
+
10
55
  const mockNavigationTree: NavigationTree[] = [
11
56
  {
12
57
  key: 'inicio',
@@ -242,3 +287,25 @@ export const WithMenuClick: TStory = {
242
287
  onMenuItemClick: () => alert('Menu item clicked!'),
243
288
  },
244
289
  }
290
+
291
+ export const TicketSubmenu: TStory = {
292
+ args: {
293
+ collapsed: false,
294
+ routeKey: 'ticket',
295
+ navigationTree: ticketNavigationConfig,
296
+ userAuthority: ticketAuthority,
297
+ direction: 'ltr',
298
+ translationSetup: true,
299
+ },
300
+ }
301
+
302
+ export const TicketSubmenuSortOrderStable: TStory = {
303
+ args: {
304
+ collapsed: false,
305
+ routeKey: 'ticket',
306
+ navigationTree: ticketSubmenuAllExpanded,
307
+ userAuthority: ticketAuthority,
308
+ direction: 'ltr',
309
+ translationSetup: true,
310
+ },
311
+ }
@@ -74,28 +74,36 @@ const filterNavigationByAuthority = (
74
74
  }, [])
75
75
  }
76
76
 
77
+ const compareNavigationOrder = (a: NavigationTree, b: NavigationTree) => {
78
+ const orderA = a.sortOrder ?? Number.MAX_SAFE_INTEGER
79
+ const orderB = b.sortOrder ?? Number.MAX_SAFE_INTEGER
80
+
81
+ if (orderA !== orderB) {
82
+ return orderA - orderB
83
+ }
84
+
85
+ const titleCompare = a.title.localeCompare(b.title, 'pt-BR')
86
+
87
+ if (titleCompare !== 0) {
88
+ return titleCompare
89
+ }
90
+
91
+ return a.key.localeCompare(b.key, 'pt-BR')
92
+ }
93
+
94
+ const sortNavigationNodeList = (navTree: NavigationTree[]): NavigationTree[] =>
95
+ [...navTree].sort(compareNavigationOrder)
96
+
77
97
  const sortNavigationRecursively = (
78
98
  navTree: NavigationTree[],
79
99
  ): NavigationTree[] => {
80
- return [...navTree]
100
+ return sortNavigationNodeList(navTree)
81
101
  .map((nav) => ({
82
102
  ...nav,
83
103
  subMenu: nav.subMenu
84
104
  ? sortNavigationRecursively(nav.subMenu)
85
105
  : nav.subMenu,
86
106
  }))
87
- .sort((a, b) => {
88
- if (a.sortOrder !== undefined || b.sortOrder !== undefined) {
89
- const orderA = a.sortOrder ?? Number.MAX_SAFE_INTEGER
90
- const orderB = b.sortOrder ?? Number.MAX_SAFE_INTEGER
91
-
92
- if (orderA !== orderB) {
93
- return orderA - orderB
94
- }
95
- }
96
-
97
- return a.title.localeCompare(b.title, 'pt-BR')
98
- })
99
107
  }
100
108
 
101
109
  const VerticalMenuContent = (props: VerticalMenuContentProps) => {
@@ -122,8 +130,6 @@ const VerticalMenuContent = (props: VerticalMenuContentProps) => {
122
130
  return sortNavigationRecursively(filteredTree)
123
131
  }, [navigationTree, userAuthority])
124
132
 
125
- console.log('Filtered Navigation Tree:', filteredNavigationTree)
126
-
127
133
  const { activedRoute } = useMenuActive(filteredNavigationTree, routeKey)
128
134
 
129
135
  useEffect(() => {
@@ -146,10 +152,11 @@ const VerticalMenuContent = (props: VerticalMenuContentProps) => {
146
152
  indent?: boolean,
147
153
  ) => {
148
154
  const nextCascade = cascade + 1
155
+ const orderedNavTree = sortNavigationNodeList(navTree)
149
156
 
150
157
  return (
151
158
  <>
152
- {navTree.map((nav) => (
159
+ {orderedNavTree.map((nav) => (
153
160
  <Fragment key={nav.key}>
154
161
  {nav.type === NAV_ITEM_TYPE_ITEM && (
155
162
  <VerticalSingleMenuItem
@@ -67,6 +67,7 @@ export interface FindEntregaResponse {
67
67
  quantidadePendente: number;
68
68
  quantidadeRetida: number;
69
69
  quantidadeBaixadaConsumida: number;
70
+ quantidadeDisponivel?: number;
70
71
  dataEntrega: string;
71
72
  status: 'POSITIVE' | 'NEGATIVE' | 'DECLARED' | 'ORIUNDO';
72
73
  retornoEntrega: TRetornoEntregaResponse;
@@ -5,16 +5,28 @@ import vinculoUnidadeMedidaSubmenu from "./config/vinculoUnidadeMedida.submenu"
5
5
  import vinculoTransgeniaOperacaoSubmenu from "./config/vinculoTransgeniaOperacao.submenu"
6
6
  import vinculoProdutoOperacaoSubmenu from "./config/vinculoProdutoOperacao.submenu"
7
7
  import vinculoProdutorOperacaoSubmenu from "./config/vinculoProdutorOperacao.submenu"
8
+ import motivoCancelamentoSubmenu from "./config/motivoCancelamento.submenu"
9
+ import cadastrosOperacaoSubmenu from "./config/cadastrosOperacao.submenu"
10
+ import operacoesMovimentacaoGraosSubmenu from "./config/operacoesMovimentacaoGraos.submenu"
8
11
  import recebimentoCentroSubmenu from "./config/recebimentoCentro.submenu"
12
+ import rotaRomaneioSubmenu from "./config/rotaRomaneio.submenu"
13
+ import tabelaBiodieselSubmenu from "./config/tabelaBiodiesel.submenu"
14
+ import tabelaClassificacaoSubmenu from "./config/tabelaClassificacao.submenu"
9
15
 
10
16
  const cadastrosSubmenu: NavigationTree[] = [
11
- { ...recebimentoCentroSubmenu, sortOrder: 1 },
12
- { ...vinculoSafraOperacaoSubmenu, sortOrder: 2 },
13
- { ...vinculoDepositoOperacaoSubmenu, sortOrder: 3 },
14
- { ...vinculoUnidadeMedidaSubmenu, sortOrder: 4 },
15
- { ...vinculoTransgeniaOperacaoSubmenu, sortOrder: 5 },
16
- { ...vinculoProdutoOperacaoSubmenu, sortOrder: 6 },
17
- { ...vinculoProdutorOperacaoSubmenu, sortOrder: 7 },
17
+ { ...operacoesMovimentacaoGraosSubmenu, sortOrder: 1 },
18
+ { ...recebimentoCentroSubmenu, sortOrder: 2 },
19
+ { ...vinculoSafraOperacaoSubmenu, sortOrder: 3 },
20
+ { ...vinculoDepositoOperacaoSubmenu, sortOrder: 4 },
21
+ { ...vinculoUnidadeMedidaSubmenu, sortOrder: 5 },
22
+ { ...vinculoTransgeniaOperacaoSubmenu, sortOrder: 6 },
23
+ { ...vinculoProdutoOperacaoSubmenu, sortOrder: 7 },
24
+ { ...vinculoProdutorOperacaoSubmenu, sortOrder: 8 },
25
+ { ...motivoCancelamentoSubmenu, sortOrder: 9 },
26
+ { ...cadastrosOperacaoSubmenu, sortOrder: 10 },
27
+ { ...rotaRomaneioSubmenu, sortOrder: 11 },
28
+ { ...tabelaBiodieselSubmenu, sortOrder: 12 },
29
+ { ...tabelaClassificacaoSubmenu, sortOrder: 13 },
18
30
  ]
19
31
 
20
32
  export default cadastrosSubmenu
@@ -1,9 +1,16 @@
1
1
  import { NavigationTree } from "@/@types/navigation"
2
+ import extratoProdutorSubmenu from "./config/extratoProdutor.submenu"
3
+ import controleTicketSubmenu from "./config/controleTicket.submenu"
2
4
  import motivoCancelamentoSubmenu from "./config/motivoCancelamento.submenu"
3
5
  import cadastrosOperacaoSubmenu from "./config/cadastrosOperacao.submenu"
4
6
  import operacoesMovimentacaoGraosSubmenu from "./config/operacoesMovimentacaoGraos.submenu"
7
+ import relatorioFisicoFiscalSubmenu from "./config/relatorioFisicoFiscal.submenu"
8
+ import recebimentoCentroSubmenu from "./config/recebimentoCentro.submenu"
5
9
  import rotaRomaneioSubmenu from "./config/rotaRomaneio.submenu"
6
10
  import tabelaBiodieselSubmenu from "./config/tabelaBiodiesel.submenu"
11
+ import tabelaClassificacaoSubmenu from "./config/tabelaClassificacao.submenu"
12
+ import toleranciaDiferencaPrecoSubmenu from "./config/toleranciaDiferencaPreco.submenu"
13
+ import relatorioMediaPonderadaSubmenu from "./config/relatorioMediaPonderada.submenu"
7
14
 
8
15
 
9
16
  const relatoriosSubmenu: NavigationTree[] = [
@@ -12,6 +19,12 @@ const relatoriosSubmenu: NavigationTree[] = [
12
19
  { ...operacoesMovimentacaoGraosSubmenu, sortOrder: 3 },
13
20
  { ...rotaRomaneioSubmenu, sortOrder: 4 },
14
21
  { ...tabelaBiodieselSubmenu, sortOrder: 5 },
22
+ { ...extratoProdutorSubmenu, sortOrder: 6 },
23
+ { ...controleTicketSubmenu, sortOrder: 7 },
24
+ { ...relatorioFisicoFiscalSubmenu, sortOrder: 8 },
25
+ { ...relatorioMediaPonderadaSubmenu, sortOrder: 9 },
26
+ { ...recebimentoCentroSubmenu, sortOrder: 10 },
27
+ { ...toleranciaDiferencaPrecoSubmenu, sortOrder: 11 },
15
28
  ]
16
29
 
17
30
  export default relatoriosSubmenu
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@orbe-agro/client-core",
3
- "version": "5.6.128",
3
+ "version": "5.6.130",
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",