wca-designsystem 1.0.102 → 1.0.104

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.
package/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "1.0.102",
2
+ "version": "1.0.104",
3
3
  "license": "MIT",
4
4
  "main": "dist/index.js",
5
5
  "typings": "dist/index.d.ts",
@@ -1,4 +1,5 @@
1
1
  import React, { useState, memo, useMemo, useEffect } from 'react';
2
+ import { Tooltip } from '@mantine/core';
2
3
  import { Collapse } from '@mantine/core';
3
4
  import Icone from '../Icone';
4
5
  import Arrow from '../../../assets/imagens/icons/NavDireita.svg';
@@ -54,7 +55,7 @@ const LinkNavbar = ({
54
55
  }
55
56
  }, [navHoverIsOpen]);
56
57
 
57
- return (
58
+ const content = (
58
59
  <>
59
60
  <S.LinksControl
60
61
  data-active={navHoverIsOpen}
@@ -68,10 +69,11 @@ const LinkNavbar = ({
68
69
  <S.LinkSvg data-active={navHoverIsOpen}>
69
70
  <Icone fill={color} width={25} height={25} svg={icon} />
70
71
  </S.LinkSvg>
72
+
71
73
  <p>{label}</p>
72
74
  </S.LinkWrapper>
73
75
 
74
- {hasLinks && (
76
+ {hasLinks && navHoverIsOpen && (
75
77
  <Icone
76
78
  svg={Arrow}
77
79
  className="chevron"
@@ -83,9 +85,36 @@ const LinkNavbar = ({
83
85
  />
84
86
  )}
85
87
  </S.LinksControl>
88
+
86
89
  {hasLinks ? <Collapse in={opened}>{items}</Collapse> : null}
87
90
  </>
88
91
  );
92
+
93
+ return navHoverIsOpen ? (
94
+ content
95
+ ) : (
96
+ <Tooltip
97
+ label={label}
98
+ position="right"
99
+ withArrow
100
+ offset={12}
101
+ transitionProps={{ transition: 'fade', duration: 150 }}
102
+ styles={{
103
+ tooltip: {
104
+ backgroundColor: '#fff',
105
+ color: '#1a1a1a',
106
+ boxShadow: '0 4px 12px rgba(0,0,0,0.15)',
107
+ fontSize: '14px',
108
+ fontWeight: 500,
109
+ },
110
+ arrow: {
111
+ backgroundColor: '#fff',
112
+ },
113
+ }}
114
+ >
115
+ <div>{content}</div>
116
+ </Tooltip>
117
+ );
89
118
  };
90
119
 
91
120
  export default memo(LinkNavbar);
@@ -12,10 +12,7 @@ export const LinksControl = styled(Link)`
12
12
  cursor: pointer;
13
13
  border: none;
14
14
  padding: 0;
15
- box-shadow: 0px 2px 0px 0px #c2dff9;
16
-
17
-
18
-
15
+
19
16
  :hover {
20
17
  opacity: 0.7;
21
18
  }
@@ -31,6 +28,7 @@ export const LinkWrapper = styled.div`
31
28
  display: block;
32
29
  width: 100%;
33
30
 
31
+
34
32
  p {
35
33
  font-size: ${theme.sizes.small};
36
34
  font-weight: 400;
@@ -91,8 +89,6 @@ export const Links = styled(Link)`
91
89
  font-weight: 400;
92
90
  color: ${theme.colors.blackSti};
93
91
  margin-left: 20px;
94
- border-left: 2px solid #c2dff9;
95
- border-bottom: 2px solid #c2dff9;
96
92
  text-align: start;
97
93
  color: ${theme.colors.blackWca};
98
94
  background-color: ${theme.colors.white};
@@ -105,7 +101,6 @@ export const Links = styled(Link)`
105
101
  }
106
102
 
107
103
  &[data-active='true'] {
108
- background-color: ${theme.colors.blue};
109
104
  color: ${theme.colors.white};
110
105
 
111
106
  svg {
@@ -1,4 +1,4 @@
1
- import React from 'react'
1
+ import React, { useState } from 'react'
2
2
  import { Container } from '@mantine/core'
3
3
  import * as S from './styles'
4
4
  import Navbar from '../Navbar'
@@ -13,7 +13,7 @@ type ConchaAplicacaolType = {
13
13
  notificacoes: NotificationsProps
14
14
  links?: LinksProps[]
15
15
  modulo: string
16
- isNavHover: boolean
16
+ // isNavHover: boolean
17
17
  navbarRef?: React.RefObject<HTMLDivElement>
18
18
  temNotificacoes?: boolean
19
19
  temChatBot?: boolean
@@ -34,7 +34,7 @@ export function ConchaAplicacao({
34
34
  temNotificacoes,
35
35
  temChatBot,
36
36
  openChatBot,
37
- isNavHover,
37
+ // isNavHover,
38
38
  icone,
39
39
  info,
40
40
  subTitulo,
@@ -47,6 +47,8 @@ export function ConchaAplicacao({
47
47
  links,
48
48
  navbarRef,
49
49
  }: ConchaAplicacaolType) {
50
+ const [isNavHover, setisNavHover] = useState(true);
51
+
50
52
  return (
51
53
  <S.ConchaAplicacaoWrapper
52
54
  data-testid="app-shell-wrapper"
@@ -69,6 +71,7 @@ export function ConchaAplicacao({
69
71
  temChatBot={temChatBot}
70
72
  openChatBot={openChatBot}
71
73
  onTrocarModulos={onTrocarModulos!}
74
+ setisNavHover={setisNavHover}
72
75
  />
73
76
  </S.NavbarWrapper>
74
77
 
@@ -9,7 +9,7 @@ export default {
9
9
  } as Meta
10
10
 
11
11
  const props = {
12
- isHover: true,
12
+ isHover: false,
13
13
  links: LinksDinamicosMock,
14
14
  temChatBot: true,
15
15
  module: 'Exemplo',
@@ -24,6 +24,7 @@ export type NavbarType = {
24
24
  temChatBot?: boolean
25
25
  openChatBot?: () => void
26
26
  onTrocarModulos?: (() => void) | undefined
27
+ setisNavHover: (prev: boolean | any) => void;
27
28
  }
28
29
  const Navbar = ({
29
30
  isHover,
@@ -31,6 +32,7 @@ const Navbar = ({
31
32
  links,
32
33
  onTrocarModulos,
33
34
  openChatBot,
35
+ setisNavHover,
34
36
  temChatBot = false,
35
37
  modulo,
36
38
  activeLink,
@@ -46,12 +48,34 @@ const Navbar = ({
46
48
  >
47
49
  <div>
48
50
  <S.NavbarHeader className={isHover ? 'nav-hover' : ''}>
49
- <Icone
50
- svg={LogoHeader}
51
- className="logo"
52
- width={isHover ? 200 : 50}
53
- height={80}
54
- />
51
+ <Tooltip
52
+ label={isHover ? 'Fechar menu' : 'Abrir menu'}
53
+ position="right"
54
+ withArrow
55
+ offset={10}
56
+ styles={{
57
+ tooltip: {
58
+ backgroundColor: '#fff',
59
+ color: '#1a1a1a',
60
+ boxShadow: '0 4px 12px rgba(0,0,0,0.15)',
61
+ fontSize: '14px',
62
+ fontWeight: 500,
63
+ },
64
+ arrow: {
65
+ backgroundColor: '#fff',
66
+ },
67
+ }}
68
+ >
69
+ <div>
70
+ <Icone
71
+ svg={LogoHeader}
72
+ className="logo"
73
+ width={isHover ? 200 : 50}
74
+ height={80}
75
+ onClick={() => setisNavHover((prev: boolean) => !prev)}
76
+ />
77
+ </div>
78
+ </Tooltip>
55
79
 
56
80
  <IconeBotao
57
81
  tipo="round"
@@ -81,6 +105,7 @@ const Navbar = ({
81
105
  modulo={modulo}
82
106
  icon={CiclosEncerrados}
83
107
  />
108
+
84
109
  <GrupoDeLinks
85
110
  color={color}
86
111
  activeLink={activeLink}
@@ -19,11 +19,7 @@ export const NavbarWrapper = styled.div<NavbarWrapperProps>`
19
19
  flex-direction: column;
20
20
 
21
21
  .logo {
22
- margin: 30px 0;
23
-
24
- &[data-active='true'] {
25
- border-right: 5px solid ${color};
26
- }
22
+ cursor: pointer;
27
23
  }
28
24
  `}
29
25
  `
@@ -36,7 +36,9 @@ const GrupoDeLinks = ({
36
36
  </S.LinkActive>
37
37
  ));
38
38
 
39
- return <S.LinkGroupWrapper color={color}>{LinkToRender}</S.LinkGroupWrapper>;
39
+ return <S.LinkGroupWrapper color={color}>
40
+ {LinkToRender}
41
+ </S.LinkGroupWrapper>;
40
42
  };
41
43
 
42
44
  export default GrupoDeLinks;
@@ -6,6 +6,9 @@ type LinkProps = {
6
6
 
7
7
  export const LinkGroupWrapper = styled.div<LinkProps>`
8
8
  ${({ theme, color }) => css`
9
+
10
+ padding: 10px;
11
+
9
12
  .link {
10
13
  p {
11
14
  color: ${theme.colors.white};
@@ -16,8 +19,19 @@ export const LinkGroupWrapper = styled.div<LinkProps>`
16
19
  }
17
20
 
18
21
  &[data-active] {
19
- background-color: ${theme.colors.white};
20
- border-right: 5px solid ${color};
22
+ color: ${theme.colors.white};
23
+ background-color: #ffffff0d;
24
+ box-shadow: rgba(0, 0, 0, 0.12) 0px 1px 3px, rgba(0, 0, 0, 0.24) 0px 1px 2px;
25
+ border-radius: 8px;
26
+
27
+ svg {
28
+ fill: white !important;
29
+ }
30
+
31
+ p {
32
+ color: white !important;
33
+
34
+ }
21
35
 
22
36
  p {
23
37
  color: ${color};
@@ -32,6 +46,8 @@ export const LinkGroupWrapper = styled.div<LinkProps>`
32
46
  .link.nav-hover {
33
47
  background-color: ${theme.colors.white};
34
48
 
49
+
50
+
35
51
  p {
36
52
  color: ${color};
37
53
  }
@@ -41,15 +57,14 @@ export const LinkGroupWrapper = styled.div<LinkProps>`
41
57
  }
42
58
 
43
59
  &[data-active] {
44
- background-color: ${color};
45
- border-right: 5px solid ${theme.colors.white};
46
-
60
+ background-color: #ffffff0d !important;
61
+
47
62
  p {
48
- color: ${theme.colors.white};
63
+ color: ${color} !important;
49
64
  }
50
65
 
51
66
  svg {
52
- fill: ${theme.colors.white};
67
+ fill: ${color} !important;
53
68
  }
54
69
  }
55
70
  }
@@ -59,7 +74,8 @@ export const LinkGroupWrapper = styled.div<LinkProps>`
59
74
  export const LinkActive = styled.div<LinkProps>`
60
75
  ${({ color }) => css`
61
76
  background-color: ${color};
62
- border-left: 5px solid ${color};
63
- padding: 3px 0;
77
+ padding: 2px 0;
78
+ margin-top: 2px;
79
+
64
80
  `}
65
81
  `;
@@ -9,60 +9,69 @@ export default {
9
9
  } as Meta
10
10
 
11
11
  const passos: PassoProps[] = [
12
- {
13
- titulo: 'Execução do Desdobramento',
14
- subTitulo: 'Duas linhas de resumo sobre este passo.',
15
- id: 0,
16
- desabilitado: false,
17
- },
18
- {
19
- titulo: 'Execução do Desdobramento',
20
- subTitulo: 'Duas linhas de resumo sobre este passo.',
21
- id: 1,
22
- desabilitado: false,
23
- },
24
- {
25
- titulo: 'Execução do Desdobramento',
26
- subTitulo: 'Duas linhas de resumo sobre este passo.',
27
- id: 2,
28
- desabilitado: false,
29
- },
30
- {
31
- titulo: 'Execução do Desdobramento',
32
- subTitulo: 'Duas linhas de resumo sobre este passo.',
33
- id: 3,
34
- desabilitado: false,
35
- },
36
- {
37
- titulo: 'Execução do Desdobramento',
38
- subTitulo: 'Duas linhas de resumo sobre este passo.',
39
- id: 4,
40
- desabilitado: false,
41
- },
42
- {
43
- titulo: 'Execução do Desdobramento',
44
- subTitulo: 'Duas linhas de resumo sobre este passo.',
45
- id: 5,
46
- desabilitado: false,
47
- },
48
- {
49
- titulo: 'Execução do Desdobramento',
50
- subTitulo: 'Duas linhas de resumo sobre este passo.',
51
- id: 6,
52
- desabilitado: false,
53
- },
54
- {
55
- titulo: 'Execução do Desdobramento',
56
- subTitulo: 'Duas linhas de resumo sobre este passo.',
57
- id: 7,
58
- desabilitado: true,
59
- },
60
- {
61
- titulo: 'Execução do Desdobramento',
62
- subTitulo: 'Duas linhas de resumo sobre este passo.',
63
- id: 8,
64
- desabilitado: true,
65
- },
12
+ {
13
+ titulo: "Configuração Cálculos",
14
+ subTitulo: "Configurações básicas para execução do cálculo de desdobramento de metas.",
15
+ id: 0,
16
+ desabilitado: false,
17
+ configurado: false
18
+ },
19
+ {
20
+ titulo: "Configuração de Histórico Referência",
21
+ subTitulo: "Configure produtos de referência para os materiais que não possuem histórico de vendas nos meses considerados na configuração do cálculo de representatividade histórica.",
22
+ id: 1,
23
+ desabilitado: false,
24
+ configurado: true
25
+ },
26
+ {
27
+ titulo: "Meta Mínima Obrigatória",
28
+ subTitulo: "Defina os materiais (ou família de produto) que precisam estar em todos os clientes, independente do histórico de vendas real ou fictício, e configure o valor mínimo obrigatório.",
29
+ id: 2,
30
+ desabilitado: false,
31
+ configurado: false
32
+ },
33
+ {
34
+ titulo: "Execução Desdobramento",
35
+ subTitulo: "Inicie o processamento dos cálculos configurados, acompanhe e confira os resultados gerados.",
36
+ id: 3,
37
+ desabilitado: false,
38
+ configurado: true
39
+ },
40
+ {
41
+ titulo: "Meta Fixa",
42
+ subTitulo: "Bloqueie materiais ou famílias que tem metas desdobradas para qualquer movimentação durante a execução crítica.",
43
+ id: 4,
44
+ desabilitado: false,
45
+ configurado: true
46
+ },
47
+ {
48
+ titulo: "Bloqueio Filial",
49
+ subTitulo: "Configure regras de bloqueio filial para restringir a movimentação de volume entre elas. Ainda que o executor de crítica seja hierarquicamente responsável pelas filiais, a movimentação vai respeitar o bloqueio configurado.",
50
+ id: 5,
51
+ desabilitado: false,
52
+ configurado: true
53
+ },
54
+ {
55
+ titulo: "Trava Movimentação",
56
+ subTitulo: "Configure limites para a retirada e alocação dos volumes pelos usuários executores de crítica.",
57
+ id: 6,
58
+ desabilitado: false,
59
+ configurado: false
60
+ },
61
+ {
62
+ titulo: "Trava Segmentação",
63
+ subTitulo: "Configure grupos de segmentação tática para restringir a movimentação entre eles durante a execução crítica.",
64
+ id: 7,
65
+ desabilitado: false,
66
+ configurado: false
67
+ },
68
+ {
69
+ titulo: "Agenda da Crítica",
70
+ subTitulo: "Defina os períodos de execução das críticas por nível hierárquico e exceções específicas pessoa, controlando a liberação e encerramento de críticas dentro de um ciclo.",
71
+ id: 8,
72
+ desabilitado: false,
73
+ configurado: false
74
+ }
66
75
  ]
67
76
 
68
77
  // Template com state funcional
@@ -1,5 +1,5 @@
1
1
  import React, { useEffect } from 'react'
2
- import { ActionIcon, Stepper, StepperProps, Tooltip } from '@mantine/core'
2
+ import { ActionIcon, CheckIcon, Stepper, StepperProps, Tooltip } from '@mantine/core'
3
3
  import * as S from './styles'
4
4
  import Icone from '../../atomos/Icone'
5
5
  import proximo from '../../../assets/imagens/icons/NavDireita.svg'
@@ -16,6 +16,13 @@ export type PassoProps = {
16
16
  subTitulo: string
17
17
  id: number
18
18
  desabilitado?: boolean
19
+ configurado?: boolean
20
+ }
21
+
22
+ export interface HoverPopUpProps {
23
+ texto: string;
24
+ children: React.ReactNode;
25
+ disabled?: boolean;
19
26
  }
20
27
 
21
28
  export interface PassosProps extends Omit<StepperProps, 'children' | 'active'> {
@@ -48,7 +55,7 @@ function Passos({
48
55
  onClickSteep,
49
56
  passoDisabled,
50
57
  moreButtons,
51
- color = theme.colors.blue,
58
+ color = theme.colors.purpleSec,
52
59
  ...props
53
60
  }: PassosProps) {
54
61
  const carrouselRef = useRef<HTMLDivElement>(null)
@@ -60,20 +67,18 @@ function Passos({
60
67
  }, []); */
61
68
 
62
69
  const steepClasseChanger = useCallback(
63
- (passoId: number, passoDesabilitado: boolean) => {
70
+ (passoId: number, passoDesabilitado: boolean, configurado: boolean) => {
64
71
  const classes = {
65
72
  desabilitado: 'desabilitado',
66
73
  ativo: 'ativo',
74
+ configurado: 'configurado',
67
75
  completo: 'completo',
68
76
  }
69
77
 
70
- if (passoId === passo) {
71
- return classes.ativo
72
- }
78
+ if (passoId === passo) return classes.ativo
79
+ if (passoDesabilitado) return classes.desabilitado
80
+ if (configurado) return classes.configurado
73
81
 
74
- if (passoDesabilitado) {
75
- return classes.desabilitado
76
- }
77
82
  return classes.completo
78
83
  },
79
84
  [passo]
@@ -122,13 +127,14 @@ function Passos({
122
127
  disabled={passoMap.desabilitado}
123
128
  className={steepClasseChanger(
124
129
  passoMap.id,
125
- passoMap?.desabilitado!
130
+ passoMap.desabilitado!,
131
+ passoMap.configurado!
126
132
  )}
127
133
  label={
128
- <HoverPopUp
129
- texto={passoMap.titulo}
134
+ <HoverPopUp
135
+ texto={passoMap.titulo}
130
136
  key={passoMap.id}
131
- disabled={passo === passoMap.id}
137
+ // disabled={passo === passoMap.id}
132
138
  >
133
139
  <h2
134
140
  className={passo === passoMap.id ? 'label-fixo' : ''}
@@ -108,7 +108,10 @@ export const BotaoEsquerda = styled.div`
108
108
  `}
109
109
  `
110
110
 
111
- export const PassoSteep = styled(Stepper)<PassosWrapperProps>`
111
+ const COLOR_CONFIGURADO = "#B18BFF";
112
+ const COLOR_PULADO = "#FFD666";
113
+
114
+ export const PassoSteep = styled(Stepper) <PassosWrapperProps>`
112
115
  ${({ theme, color }) => css`
113
116
  padding: 0;
114
117
  margin-left: -55px;
@@ -178,26 +181,35 @@ export const PassoSteep = styled(Stepper)<PassosWrapperProps>`
178
181
  font-size: ${theme.sizes.xSmall};
179
182
  }
180
183
 
181
- .ativo {
182
- .mantine-Stepper-stepIcon {
183
- background-color: ${color};
184
- color: ${theme.colors.white};
185
- }
186
- }
184
+ .configurado {
185
+ .mantine-Stepper-stepIcon {
186
+ background-color: #b499ff;
187
+ color: white;
188
+ }
189
+ }
187
190
 
188
- .desabilitado {
189
- cursor: not-allowed;
190
- .mantine-Stepper-stepIcon {
191
- background-color: ${theme.colors.gray['500']};
192
- }
193
- }
191
+ .completo {
192
+ .mantine-Stepper-stepIcon {
193
+ background-color: ${theme.colors.yellowWca};
194
+ color: white;
195
+ }
196
+ }
197
+
198
+ .desabilitado {
199
+ cursor: not-allowed;
200
+ .mantine-Stepper-stepIcon {
201
+ background-color: ${theme.colors.gray['500']};
202
+ color: white;
203
+ }
204
+ }
205
+
206
+ .ativo {
207
+ .mantine-Stepper-stepIcon {
208
+ background-color: ${color};
209
+ color: white;
210
+ }
211
+ }
194
212
 
195
- .completo {
196
- .mantine-Stepper-stepIcon {
197
- background-color: ${theme.colors.yellowWca};
198
- color: ${theme.colors.white};
199
- }
200
- }
201
213
  `}
202
214
  `
203
215