@credithub/harlan-components 1.23.1 → 1.24.0

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.
@@ -20,6 +20,7 @@ import ContactLikeDislikeSection from './contactLikeDislikeSection';
20
20
  import ContatoIcon from '../../assets/icones/contato';
21
21
  import Button from '../common/button';
22
22
  import styled from 'styled-components';
23
+ import { useConsultaRfb } from '../../hooks/useConsultaRfb';
23
24
  export var ContactType;
24
25
  (function (ContactType) {
25
26
  ContactType["TELEFONE"] = "Telefone";
@@ -29,17 +30,24 @@ var BtnWrapper = styled.div(templateObject_1 || (templateObject_1 = __makeTempla
29
30
  var Contacts = function (_a) {
30
31
  var onClickConsultarEmail = _a.onClickConsultarEmail;
31
32
  var ctx = useContext(Queries.Finder);
33
+ var rfbResponse = useConsultaRfb().rfbResponse;
32
34
  var Section = ctx.Section;
33
35
  return (React.createElement(Section, { ctx: ctx, title: "Contato", subtitle: "Informa\u00E7\u00F5es de contato do documento pesquisado.", description: "(Telefone, e-mail e outros)", minimized: false, icon: ContatoIcon, onSuccess: function (data) {
36
+ var _a;
34
37
  var document = XPathUtils.select('string(//cpf|//cnpj)', data);
35
38
  var telefones = __spreadArray(__spreadArray([], (XPathUtils.selectArray('//telefones/fixos/fixos', data) || []), true), (XPathUtils.selectArray('//telefones/moveis/moveis', data) || []), true).map(function (telefone) { return ({
36
39
  type: 'Telefone',
37
40
  value: phoneMask(XPathUtils.select('string(./telefone)', telefone))
38
41
  }); });
39
- var emails = XPathUtils.selectArray('//emails/emails', data).map(function (email) { return ({
42
+ var emails = __spreadArray([
43
+ {
44
+ type: 'Email',
45
+ value: (_a = XPathUtils.select('string(//RFB/email)', rfbResponse)) === null || _a === void 0 ? void 0 : _a.toLowerCase()
46
+ }
47
+ ], XPathUtils.selectArray('//emails/emails', data).map(function (email) { return ({
40
48
  type: 'Email',
41
49
  value: XPathUtils.select('string(./email)', email)
42
- }); });
50
+ }); }), true).filter(function (e) { return e.value; });
43
51
  var children = (React.createElement(Result, { resultContentStriped: false },
44
52
  React.createElement(ResultContent, { desktop: "1fr 1fr 1fr", tablet: "1fr 1fr", mobile: "1fr 1fr" }, telefones.map(function (_a, key) {
45
53
  var type = _a.type, value = _a.value;
@@ -1,11 +1,15 @@
1
+ import React from 'react';
1
2
  declare const useCardsAndProducts: ({ finderResponse, rfbResponse }: {
2
3
  finderResponse?: Document | undefined;
3
4
  rfbResponse?: Document | undefined;
4
5
  }) => {
5
- cards: {
6
+ cards: ({
6
7
  title: string | false;
7
8
  header: string;
8
- }[];
9
+ } | {
10
+ title: React.JSX.Element[];
11
+ header: string;
12
+ })[];
9
13
  products: ({
10
14
  title: string;
11
15
  onClick: () => void;
@@ -9,7 +9,8 @@ var __assign = (this && this.__assign) || function () {
9
9
  };
10
10
  return __assign.apply(this, arguments);
11
11
  };
12
- import { getField, getFieldRfb, getProductsPrices } from './utils';
12
+ import React from 'react';
13
+ import { getAtividadesEconomicasSecundarias, getField, getFieldRfb, getProductsPrices } from './utils';
13
14
  import { useConsultasComplementares } from '../../../hooks/useConsultasComplementares';
14
15
  import { formatMoney } from '../../../utils/number';
15
16
  import XPathUtils from '../../../utils/xpath';
@@ -131,6 +132,13 @@ var useCardsAndProducts = function (_a) {
131
132
  getFieldRfb('atividade-economica', rfbResponse),
132
133
  header: 'Atividade Econômica'
133
134
  },
135
+ {
136
+ title: getAtividadesEconomicasSecundarias(rfbResponse).map(function (e) { return (React.createElement(React.Fragment, null,
137
+ e,
138
+ ".",
139
+ React.createElement("br", null))); }),
140
+ header: 'Atividades Econômicas Secundárias'
141
+ },
134
142
  {
135
143
  title: getField('naturezaJuridica', finderResponse),
136
144
  header: 'Natureza Jurídica'
@@ -1,5 +1,6 @@
1
1
  export declare const getField: (path: string, response?: Document, formatter?: ((value: string | number) => string) | undefined) => string;
2
2
  export declare const getFieldRfb: (path: string, response?: Document | null, formatter?: ((value: string | number) => string) | undefined) => string;
3
+ export declare const getAtividadesEconomicasSecundarias: (response?: Document | null) => string[];
3
4
  export declare const getProductsPrices: (isPF: boolean) => {
4
5
  refinBoaVista: number;
5
6
  scoreBoaVista: number;
@@ -19,6 +19,16 @@ export var getFieldRfb = function (path, response, formatter) {
19
19
  var value = XPathUtils.select("string(".concat(path, ")"), rfb);
20
20
  return formatter ? formatter(value) : value;
21
21
  };
22
+ export var getAtividadesEconomicasSecundarias = function (response) {
23
+ var _a;
24
+ if (!response)
25
+ return [];
26
+ var rfb = (_a = XPathUtils.selectArray('//RFB', response)) === null || _a === void 0 ? void 0 : _a[0];
27
+ if (!rfb)
28
+ return [];
29
+ var values = XPathUtils.selectArray('//atividade-secundaria', rfb);
30
+ return values.map(function (value) { var _a; return (_a = value.firstChild) === null || _a === void 0 ? void 0 : _a.nodeValue; });
31
+ };
22
32
  export var getProductsPrices = function (isPF) { return ({
23
33
  refinBoaVista: isPF ? 1.2 : 2.7,
24
34
  scoreBoaVista: isPF ? 3 : 6,
@@ -1,8 +1,8 @@
1
1
  import { Client } from '@credithub/webservice';
2
- import React, { PropsWithChildren, FC } from 'react';
2
+ import React, { FC, PropsWithChildren } from 'react';
3
3
  import Header from './interface/header';
4
- import { ProcessoJuridicoResponse } from './processos-juridicos/types';
5
4
  import { LiminarResponse } from './liminar/types';
5
+ import { ProcessoJuridicoResponse } from './processos-juridicos/types';
6
6
  export declare const WebService: React.Context<Client.WebService>;
7
7
  export declare const WebServiceProvider: FC<PropsWithChildren<{
8
8
  credential: string;
@@ -21,6 +21,7 @@ export type RequestContext<T> = {
21
21
  data?: Client.Form;
22
22
  urlData?: Client.Form;
23
23
  Section: ISection<T>;
24
+ refetch: () => void;
24
25
  } & ({
25
26
  type: RequestStatus.Empty;
26
27
  } | {
@@ -28,17 +28,18 @@ var _a;
28
28
  /* eslint-disable react-hooks/exhaustive-deps */
29
29
  /* eslint-disable @typescript-eslint/no-explicit-any */
30
30
  /* eslint-disable react-hooks/rules-of-hooks */
31
- import { Client } from '@credithub/webservice';
32
- import React, { createContext, useState, useContext, useEffect, useMemo, useCallback } from 'react';
33
- import Header from './interface/header';
34
- import cn from 'classnames';
35
- import StatusMessage from './interface/statusMessage';
36
31
  import BtnWrapper from '../assets/btn/btnWrapper';
37
- import useToggle from '../hooks/useToggle';
38
- import ChevronUp from '../assets/btn/chevronUp';
39
32
  import ChevronDown from '../assets/btn/chevronDown';
33
+ import ChevronUp from '../assets/btn/chevronUp';
34
+ import useToggle from '../hooks/useToggle';
35
+ import { Client } from '@credithub/webservice';
36
+ import cn from 'classnames';
37
+ import React, { createContext, useCallback, useContext, useEffect, useMemo, useState } from 'react';
40
38
  import styled from 'styled-components';
39
+ import Button from './common/button';
41
40
  import { PrintSectionWrapper } from './common/printSectionWrapper';
41
+ import Header from './interface/header';
42
+ import StatusMessage from './interface/statusMessage';
42
43
  export var WebService = createContext(new Client.WebService());
43
44
  export var WebServiceProvider = function (_a) {
44
45
  var credential = _a.credential, children = _a.children;
@@ -58,7 +59,9 @@ function CustomProvider(Provider, query) {
58
59
  var abortController = useMemo(function () { return new AbortController(); }, []);
59
60
  var _b = useState(null), response = _b[0], setResponse = _b[1];
60
61
  var _c = useState(null), error = _c[0], setError = _c[1];
61
- useEffect(function () {
62
+ var fetchData = useCallback(function () {
63
+ setError(null);
64
+ setResponse(null);
62
65
  client
63
66
  .request(query, data, urlData, abortController.signal)
64
67
  .then(function (response) {
@@ -73,8 +76,11 @@ function CustomProvider(Provider, query) {
73
76
  ? requestError
74
77
  : new Error(requestError));
75
78
  });
79
+ }, [client, query, data, urlData, abortController.signal]);
80
+ useEffect(function () {
81
+ fetchData();
76
82
  return function () { return abortController.abort(); };
77
- }, []);
83
+ }, [fetchData]);
78
84
  var value = {
79
85
  type: error
80
86
  ? RequestStatus.Error
@@ -88,8 +94,9 @@ function CustomProvider(Provider, query) {
88
94
  document: response === null || response === void 0 ? void 0 : response.document,
89
95
  Section: function (_a) {
90
96
  var props = __rest(_a, []);
91
- return React.createElement(Section, __assign({}, props, { ctx: value }));
92
- }
97
+ return (React.createElement(Section, __assign({}, props, { ctx: value })));
98
+ },
99
+ refetch: fetchData
93
100
  };
94
101
  return React.createElement(Provider.Provider, { value: value }, children);
95
102
  };
@@ -167,7 +174,8 @@ export function query(query) {
167
174
  Section: function (_a) {
168
175
  var props = __rest(_a, []);
169
176
  return React.createElement(Section, __assign({}, props));
170
- }
177
+ },
178
+ refetch: function () { }
171
179
  });
172
180
  return Object.assign(RequestContext, {
173
181
  Request: CustomProvider(RequestContext, query)
@@ -184,9 +192,12 @@ export var Queries = {
184
192
  GraficosAnaliticos: query("SELECT FROM 'DOCUMENTHISTORY'.'BASICHISTORY'")
185
193
  };
186
194
  var Section = function (_a) {
187
- var onSuccess = _a.onSuccess, _b = _a.isError, isError = _b === void 0 ? function (err) { return ({
195
+ var onSuccess = _a.onSuccess, _b = _a.isError, isError = _b === void 0 ? function (err, ctx) { return ({
188
196
  children: React.createElement(React.Fragment, null),
189
- description: React.createElement(StatusMessage, { type: "warning" }, err.message)
197
+ description: (React.createElement(React.Fragment, null,
198
+ React.createElement(StatusMessage, { type: "warning" }, err.message))),
199
+ actions: (React.createElement(React.Fragment, null,
200
+ React.createElement(Button, { onClick: function () { return ctx.refetch(); } }, "Tentar Novamente")))
190
201
  }); } : _b, _c = _a.onLoading, onLoading = _c === void 0 ? function () { return React.createElement(React.Fragment, null); } : _c, ctx = _a.ctx, children = _a.children, className = _a.className, _d = _a.hideHeader, hideHeader = _d === void 0 ? false : _d, _e = _a.minimized, minimized = _e === void 0 ? true : _e, headerProps = __rest(_a, ["onSuccess", "isError", "onLoading", "ctx", "children", "className", "hideHeader", "minimized"]);
191
202
  var _f = useToggle(!minimized), isOpen = _f[0], toggleOpen = _f[1];
192
203
  if (!ctx)
@@ -195,15 +206,15 @@ var Section = function (_a) {
195
206
  var renderResponse = useCallback(function () {
196
207
  switch (type) {
197
208
  case RequestStatus.Success:
198
- return onSuccess === null || onSuccess === void 0 ? void 0 : onSuccess(ctx === null || ctx === void 0 ? void 0 : ctx.document, ctx);
209
+ return onSuccess === null || onSuccess === void 0 ? void 0 : onSuccess(ctx.document, ctx);
199
210
  case RequestStatus.Error:
200
- return isError === null || isError === void 0 ? void 0 : isError(ctx === null || ctx === void 0 ? void 0 : ctx.error, ctx);
211
+ return isError(ctx.error, ctx);
201
212
  case RequestStatus.Loading:
202
- return onLoading === null || onLoading === void 0 ? void 0 : onLoading(ctx);
213
+ return onLoading(ctx);
203
214
  default:
204
- return children;
215
+ return null;
205
216
  }
206
- }, [type]);
217
+ }, [type, onSuccess, isError, onLoading, null, ctx]);
207
218
  var renderedResponse = renderResponse();
208
219
  var defaultHeaderActions = useMemo(function () { return (React.createElement(BtnWrapper, { hidden: type === RequestStatus.Loading, onClick: toggleOpen }, isOpen ? React.createElement(ChevronUp, null) : React.createElement(ChevronDown, null))); }, [type, isOpen, toggleOpen]);
209
220
  var renderHeader = function (props) { return (React.createElement(Header, __assign({ printBar: renderedResponse !== null && isOpen }, props, { className: cn(className, headerStatus[type], props.className), variant: type === RequestStatus.Loading ? 'loading' : props.variant, actions: React.createElement(React.Fragment, null,
@@ -220,7 +231,7 @@ var Section = function (_a) {
220
231
  !hideHeader && renderHeader(headerPropsUnified),
221
232
  React.createElement(ShowRenderedChildren, { isOpen: isOpen }, renderedChildren)));
222
233
  };
223
- var ShowRenderedChildren = styled.div(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n display: ", ";\n\n /* @media print {\n display: block;\n } */\n"], ["\n display: ", ";\n\n /* @media print {\n display: block;\n } */\n"])), function (props) { return (props.isOpen ? 'block' : 'none'); });
234
+ var ShowRenderedChildren = styled.div(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n display: ", ";\n"], ["\n display: ", ";\n"])), function (props) { return (props.isOpen ? 'block' : 'none'); });
224
235
  export var headerStatus = (_a = {},
225
236
  _a[RequestStatus.Loading] = 'external-source loading',
226
237
  _a[RequestStatus.Success] = 'success',