@zydon/common 2.9.29 → 2.9.30

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.
@@ -7,15 +7,15 @@ import '../../../chunk-Z6YXPKWP.js';
7
7
  import { useCallback, useMemo } from 'react';
8
8
  import { useFormContext, useFieldArray } from 'react-hook-form';
9
9
  import w from '@mui/material/Divider';
10
- import x from '@mui/material/IconButton';
10
+ import B from '@mui/material/IconButton';
11
11
  import F from '@mui/material/InputAdornment';
12
12
  import n from '@mui/material/Stack';
13
13
  import M from '@mui/material/Typography';
14
- import W from '@mui/material/Alert';
14
+ import x from '@mui/material/Alert';
15
15
  import { styled, alpha } from '@mui/material/styles';
16
16
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
17
17
 
18
- var u=[{label:"XML",value:"XML"},{label:"JSON",value:"JSON"},{label:"BYTEA",value:"BYTEA"}],T=[{label:"GET",value:"GET"},{label:"POST",value:"POST"},{label:"DELETE",value:"DELETE"},{label:"PUT",value:"PUT"}];var y=styled(x)(({theme:o})=>({svg:{color:`${o.palette.primary.main} !important`}})),h=styled(M)(()=>({textDecoration:"underline",fontWeight:"600",cursor:"pointer"})),f=styled(W)(({theme:o})=>({backgroundColor:`${alpha(o.palette.primary.main,.03)}`,border:`1px solid ${alpha(o.palette.primary.main,.4)}`,flexDirection:"row",alignItems:"center",padding:"2px 12px",gap:8,borderRadius:8,marginBottom:16,"& svg":{color:o.palette.primary.main}}));var N=()=>{let o=()=>{let a="https://ajuda.zydon.com.br/pt-BR/articles/9180603-sobre-webhooks";window.open(a,"_blank");};return jsx(f,{severity:"info",children:jsxs(M,{color:"grey",variant:"caption",children:["Webhooks permitem que servi\xE7os externos sejam notificados quando determinados eventos acontecem. Saiba mais"," ",jsx(h,{variant:"caption",color:"primary",onClick:()=>o(),children:"acessando a documenta\xE7\xE3o do Webhook"})]})})},v=N;var G={required:{value:!0,message:"Campo Tipo de conte\xFAdo \xE9 obrigat\xF3rio"}},J={required:{value:!0,message:"Campo M\xE9todo HTTP \xE9 obrigat\xF3rio"}},X={required:{value:!0,message:"Url \xE9 obrigat\xF3rio"}},z={required:{value:!0,message:""}},K=({webhookData:o,isEditing:a$4=!1,haveTip:k=!1,hasFilter:C=!0,hasType:A=!0})=>{let{control:P}=useFormContext(),{fields:I,append:d,remove:O}=useFieldArray({name:"headers",control:P}),_=useCallback(()=>{d({value:"",name:""});},[d]),m=useCallback(()=>{o?.resource_id&&navigator.clipboard.writeText(o.resource_id).catch(()=>{});},[o?.resource_id]),L=useMemo(()=>({endAdornment:jsx(F,{position:"end",children:jsx(y,{"aria-label":"Copiar ID origem",onClick:m,children:jsx(a,{className:"copyIcon",icon:"COPY_CONTENT"})})})}),[m]);return jsxs(Fragment,{children:[k&&jsx(v,{}),a$4&&jsx(a$1,{name:"name",label:"Nome do webhook"}),jsxs(n,{direction:"row",gap:2,children:[jsx(a$1,{name:"url",label:"URL de endpoint",rules:X}),C&&jsx(a$1,{name:"filter",label:"Filtro"})]}),a$4&&o&&jsxs(Fragment,{children:[jsx(a$1,{variant:"filled",name:"solution",label:"Solu\xE7\xE3o",disabled:!0}),jsxs(n,{direction:"row",gap:2,children:[jsx(a$1,{variant:"filled",name:"resource",label:"Origem",disabled:!0}),jsx(a$1,{variant:"filled",name:"resource_id",label:"ID origem",disabled:!0,InputProps:L}),jsx(a$1,{variant:"filled",name:"event",label:"Evento",disabled:!0})]})]}),jsxs(n,{direction:"row",gap:2,alignItems:"center",children:[A&&jsx(a$2,{fullWidth:!0,options:u,name:"content_type",label:"Tipo de conte\xFAdo",required:!0,rules:G}),jsx(a$2,{fullWidth:!0,options:T,name:"http_method",label:"M\xE9todo HTTP",required:!0,rules:J})]}),jsx(M,{variant:"overline",color:"grey",children:"Cabe\xE7alho"}),I?.map((B,l)=>jsxs(n,{direction:"row",gap:2,alignItems:"center",children:[jsx(a$1,{name:`headers.${l}.name`,label:"Chave",required:!0,rules:z}),jsx(a$1,{name:`headers.${l}.value`,label:"Valor"}),jsx(x,{"aria-label":"Remover cabe\xE7alho",color:"error",onClick:()=>O(l),children:jsx(a,{icon:"DELETE_MARK_BUTTON_02"})})]},B.id)),jsx(a$3,{actionType:"NEW",size:"large",variant:"outlined",color:"inherit",fullWidth:!0,onClick:_,children:"Adicionar novo cabe\xE7alho"}),jsx(w,{})]})},Ee=K;
18
+ var u=[{label:"XML",value:"XML"},{label:"JSON",value:"JSON"},{label:"BYTEA",value:"BYTEA"}],T=[{label:"GET",value:"GET"},{label:"POST",value:"POST"},{label:"DELETE",value:"DELETE"},{label:"PUT",value:"PUT"}];var y=styled(B)(({theme:o})=>({svg:{color:`${o.palette.primary.main} !important`}})),h=styled(M)(()=>({textDecoration:"underline",fontWeight:"600",cursor:"pointer"})),f=styled(x)(({theme:o})=>({backgroundColor:`${alpha(o.palette.primary.main,.03)}`,border:`1px solid ${alpha(o.palette.primary.main,.4)}`,flexDirection:"row",alignItems:"center",padding:"2px 12px",gap:8,borderRadius:8,marginBottom:16,"& svg":{color:o.palette.primary.main}}));var N=()=>{let o=()=>{let a="https://ajuda.zydon.com.br/sobre-webhooks";window.open(a,"_blank");};return jsx(f,{severity:"info",children:jsxs(M,{color:"grey",variant:"caption",children:["Webhooks permitem que servi\xE7os externos sejam notificados quando determinados eventos acontecem. Saiba mais"," ",jsx(h,{variant:"caption",color:"primary",onClick:()=>o(),children:"acessando a documenta\xE7\xE3o do Webhook"})]})})},v=N;var G={required:{value:!0,message:"Campo Tipo de conte\xFAdo \xE9 obrigat\xF3rio"}},J={required:{value:!0,message:"Campo M\xE9todo HTTP \xE9 obrigat\xF3rio"}},X={required:{value:!0,message:"Url \xE9 obrigat\xF3rio"}},z={required:{value:!0,message:""}},K=({webhookData:o,isEditing:a$4=!1,haveTip:k=!1,hasFilter:C=!0,hasType:A=!0})=>{let{control:P}=useFormContext(),{fields:I,append:d,remove:O}=useFieldArray({name:"headers",control:P}),_=useCallback(()=>{d({value:"",name:""});},[d]),m=useCallback(()=>{o?.resource_id&&navigator.clipboard.writeText(o.resource_id).catch(()=>{});},[o?.resource_id]),L=useMemo(()=>({endAdornment:jsx(F,{position:"end",children:jsx(y,{"aria-label":"Copiar ID origem",onClick:m,children:jsx(a,{className:"copyIcon",icon:"COPY_CONTENT"})})})}),[m]);return jsxs(Fragment,{children:[k&&jsx(v,{}),a$4&&jsx(a$1,{name:"name",label:"Nome do webhook"}),jsxs(n,{direction:"row",gap:2,children:[jsx(a$1,{name:"url",label:"URL de endpoint",rules:X}),C&&jsx(a$1,{name:"filter",label:"Filtro"})]}),a$4&&o&&jsxs(Fragment,{children:[jsx(a$1,{variant:"filled",name:"solution",label:"Solu\xE7\xE3o",disabled:!0}),jsxs(n,{direction:"row",gap:2,children:[jsx(a$1,{variant:"filled",name:"resource",label:"Origem",disabled:!0}),jsx(a$1,{variant:"filled",name:"resource_id",label:"ID origem",disabled:!0,InputProps:L}),jsx(a$1,{variant:"filled",name:"event",label:"Evento",disabled:!0})]})]}),jsxs(n,{direction:"row",gap:2,alignItems:"center",children:[A&&jsx(a$2,{fullWidth:!0,options:u,name:"content_type",label:"Tipo de conte\xFAdo",required:!0,rules:G}),jsx(a$2,{fullWidth:!0,options:T,name:"http_method",label:"M\xE9todo HTTP",required:!0,rules:J})]}),jsx(M,{variant:"overline",color:"grey",children:"Cabe\xE7alho"}),I?.map((W,l)=>jsxs(n,{direction:"row",gap:2,alignItems:"center",children:[jsx(a$1,{name:`headers.${l}.name`,label:"Chave",required:!0,rules:z}),jsx(a$1,{name:`headers.${l}.value`,label:"Valor"}),jsx(B,{"aria-label":"Remover cabe\xE7alho",color:"error",onClick:()=>O(l),children:jsx(a,{icon:"DELETE_MARK_BUTTON_02"})})]},W.id)),jsx(a$3,{actionType:"NEW",size:"large",variant:"outlined",color:"inherit",fullWidth:!0,onClick:_,children:"Adicionar novo cabe\xE7alho"}),jsx(w,{})]})},Ee=K;
19
19
 
20
20
  export { Ee as default };
21
21
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/form/Webhook/index.tsx","../../../../src/components/form/Webhook/props.ts","../../../../src/components/form/Webhook/styles.ts","../../../../src/components/form/Webhook/WebhookAlert.tsx"],"names":["useCallback","useMemo","useFieldArray","useFormContext","Divider","IconButton","InputAdornment","Stack","Typography","ContentTypeOptions","HttpMethodOptions","Alert","alpha","styled","SyledIconButton","theme","StyledTypography","StyledAlert","jsx","jsxs","WebhookAlert","handleLinkClick","url","WebhookAlert_default","Fragment","CONTENT_TYPE_RULES","HTTP_METHOD_RULES","URL_RULES","HEADER_KEY_RULES","Webhook","webhookData","isEditing","haveTip","hasFilter","hasType","control","headers","append","remove","handleCreateField","handleCopyResourceId","resourceIdInputProps","Icon_default","Field_default","Autocomplete_default","item","index","ActionButton_default","Webhook_default"],"mappings":"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","sourcesContent":["import { useCallback, useMemo } from 'react';\nimport { useFieldArray, useFormContext } from 'react-hook-form';\nimport Divider from '@mui/material/Divider';\nimport IconButton from '@mui/material/IconButton';\nimport InputAdornment from '@mui/material/InputAdornment';\nimport Stack from '@mui/material/Stack';\nimport Typography from '@mui/material/Typography';\n\nimport ActionButton from 'components/ActionButton';\nimport Icon from 'components/Icon';\n\nimport Autocomplete from '../Autocomplete';\nimport Field from '../Field';\n\nimport { ContentTypeOptions, HttpMethodOptions, WebhookProps } from './props';\nimport { SyledIconButton } from './styles';\nimport WebhookAlert from './WebhookAlert';\n\nconst CONTENT_TYPE_RULES = {\n required: { value: true, message: 'Campo Tipo de conteúdo é obrigatório' },\n} as const;\n\nconst HTTP_METHOD_RULES = {\n required: { value: true, message: 'Campo Método HTTP é obrigatório' },\n} as const;\n\nconst URL_RULES = {\n required: { value: true, message: 'Url é obrigatório' },\n} as const;\n\nconst HEADER_KEY_RULES = {\n required: { value: true, message: '' },\n} as const;\n\nconst Webhook = ({\n webhookData,\n isEditing = false,\n haveTip = false,\n hasFilter = true,\n hasType = true,\n}: WebhookProps) => {\n const { control } = useFormContext();\n\n const {\n fields: headers,\n append,\n remove,\n } = useFieldArray({\n name: 'headers',\n control,\n });\n\n const handleCreateField = useCallback(() => {\n append({ value: '', name: '' });\n }, [append]);\n\n const handleCopyResourceId = useCallback(() => {\n if (!webhookData?.resource_id) return;\n navigator.clipboard\n .writeText(webhookData.resource_id)\n .catch(() => undefined);\n }, [webhookData?.resource_id]);\n\n const resourceIdInputProps = useMemo(\n () => ({\n endAdornment: (\n <InputAdornment position=\"end\">\n <SyledIconButton\n aria-label=\"Copiar ID origem\"\n onClick={handleCopyResourceId}\n >\n <Icon className=\"copyIcon\" icon=\"COPY_CONTENT\" />\n </SyledIconButton>\n </InputAdornment>\n ),\n }),\n [handleCopyResourceId],\n );\n\n return (\n <>\n {haveTip && <WebhookAlert />}\n {isEditing && <Field name=\"name\" label=\"Nome do webhook\" />}\n <Stack direction=\"row\" gap={2}>\n <Field name=\"url\" label=\"URL de endpoint\" rules={URL_RULES} />\n {hasFilter && <Field name=\"filter\" label=\"Filtro\" />}\n </Stack>\n {isEditing && webhookData && (\n <>\n <Field variant=\"filled\" name=\"solution\" label=\"Solução\" disabled />\n <Stack direction=\"row\" gap={2}>\n <Field variant=\"filled\" name=\"resource\" label=\"Origem\" disabled />\n <Field\n variant=\"filled\"\n name=\"resource_id\"\n label=\"ID origem\"\n disabled\n InputProps={resourceIdInputProps}\n />\n <Field variant=\"filled\" name=\"event\" label=\"Evento\" disabled />\n </Stack>\n </>\n )}\n <Stack direction=\"row\" gap={2} alignItems=\"center\">\n {hasType && (\n <Autocomplete\n fullWidth\n options={ContentTypeOptions}\n name=\"content_type\"\n label=\"Tipo de conteúdo\"\n required\n rules={CONTENT_TYPE_RULES}\n />\n )}\n <Autocomplete\n fullWidth\n options={HttpMethodOptions}\n name=\"http_method\"\n label=\"Método HTTP\"\n required\n rules={HTTP_METHOD_RULES}\n />\n </Stack>\n <Typography variant=\"overline\" color=\"grey\">\n Cabeçalho\n </Typography>\n {headers?.map((item, index) => (\n <Stack key={item.id} direction=\"row\" gap={2} alignItems=\"center\">\n <Field\n name={`headers.${index}.name`}\n label=\"Chave\"\n required\n rules={HEADER_KEY_RULES}\n />\n <Field name={`headers.${index}.value`} label=\"Valor\" />\n <IconButton\n aria-label=\"Remover cabeçalho\"\n color=\"error\"\n onClick={() => remove(index)}\n >\n <Icon icon=\"DELETE_MARK_BUTTON_02\" />\n </IconButton>\n </Stack>\n ))}\n <ActionButton\n actionType=\"NEW\"\n size=\"large\"\n variant=\"outlined\"\n color=\"inherit\"\n fullWidth\n onClick={handleCreateField}\n >\n Adicionar novo cabeçalho\n </ActionButton>\n <Divider />\n </>\n );\n};\n\nexport default Webhook;\n","import { WebhookType } from 'types/webhook';\n\nexport interface WebhookProps {\n webhookData?: WebhookType;\n isEditing?: boolean;\n haveTip?: boolean;\n hasFilter?: boolean;\n hasType?: boolean;\n}\nexport enum ContentTypeStatus {\n XML = 'XML',\n JSON = 'JSON',\n BYTEA = 'BYTEA',\n}\n\nexport enum HttpMethodStatus {\n GET = 'GET',\n POST = 'POST',\n PATCH = 'PATCH',\n DELETE = 'DELETE',\n PUT = 'PUT',\n}\n\nexport const ContentTypeOptions = [\n {\n label: ContentTypeStatus.XML,\n value: ContentTypeStatus.XML,\n },\n {\n label: ContentTypeStatus.JSON,\n value: ContentTypeStatus.JSON,\n },\n {\n label: ContentTypeStatus.BYTEA,\n value: ContentTypeStatus.BYTEA,\n },\n];\n\nexport const HttpMethodOptions = [\n {\n label: HttpMethodStatus.GET,\n value: HttpMethodStatus.GET,\n },\n {\n label: HttpMethodStatus.POST,\n value: HttpMethodStatus.POST,\n },\n {\n label: HttpMethodStatus.DELETE,\n value: HttpMethodStatus.DELETE,\n },\n {\n label: HttpMethodStatus.PUT,\n value: HttpMethodStatus.PUT,\n },\n];\n","import Alert from '@mui/material/Alert';\nimport IconButton from '@mui/material/IconButton';\nimport { alpha, styled } from '@mui/material/styles';\nimport Typography from '@mui/material/Typography';\n\nexport const SyledIconButton = styled(IconButton)(({ theme }) => ({\n svg: {\n color: `${theme.palette.primary.main} !important`,\n },\n}));\n\nexport const StyledTypography = styled(Typography)(() => ({\n textDecoration: 'underline',\n fontWeight: '600',\n cursor: 'pointer',\n}));\n\nexport const StyledAlert = styled(Alert)(({ theme }) => ({\n backgroundColor: `${alpha(theme.palette.primary.main, 0.03)}`,\n border: `1px solid ${alpha(theme.palette.primary.main, 0.4)}`,\n flexDirection: 'row',\n alignItems: 'center',\n padding: '2px 12px',\n gap: 8,\n borderRadius: 8,\n marginBottom: 16,\n\n '& svg': {\n color: theme.palette.primary.main,\n },\n}));\n","import Typography from '@mui/material/Typography';\n\nimport { StyledAlert, StyledTypography } from './styles';\n\nconst WebhookAlert = () => {\n const handleLinkClick = () => {\n const url =\n 'https://ajuda.zydon.com.br/pt-BR/articles/9180603-sobre-webhooks';\n window.open(url, '_blank');\n };\n\n return (\n <StyledAlert severity=\"info\">\n <Typography color=\"grey\" variant=\"caption\">\n Webhooks permitem que serviços externos sejam notificados quando\n determinados eventos acontecem. Saiba mais{' '}\n <StyledTypography\n variant=\"caption\"\n color=\"primary\"\n onClick={() => handleLinkClick()}\n >\n acessando a documentação do Webhook\n </StyledTypography>\n </Typography>\n </StyledAlert>\n );\n};\n\nexport default WebhookAlert;\n"]}
1
+ {"version":3,"sources":["../../../../src/components/form/Webhook/index.tsx","../../../../src/components/form/Webhook/props.ts","../../../../src/components/form/Webhook/styles.ts","../../../../src/components/form/Webhook/WebhookAlert.tsx"],"names":["useCallback","useMemo","useFieldArray","useFormContext","Divider","IconButton","InputAdornment","Stack","Typography","ContentTypeOptions","HttpMethodOptions","Alert","alpha","styled","SyledIconButton","theme","StyledTypography","StyledAlert","jsx","jsxs","WebhookAlert","handleLinkClick","url","WebhookAlert_default","Fragment","CONTENT_TYPE_RULES","HTTP_METHOD_RULES","URL_RULES","HEADER_KEY_RULES","Webhook","webhookData","isEditing","haveTip","hasFilter","hasType","control","headers","append","remove","handleCreateField","handleCopyResourceId","resourceIdInputProps","Icon_default","Field_default","Autocomplete_default","item","index","ActionButton_default","Webhook_default"],"mappings":"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","sourcesContent":["import { useCallback, useMemo } from 'react';\nimport { useFieldArray, useFormContext } from 'react-hook-form';\nimport Divider from '@mui/material/Divider';\nimport IconButton from '@mui/material/IconButton';\nimport InputAdornment from '@mui/material/InputAdornment';\nimport Stack from '@mui/material/Stack';\nimport Typography from '@mui/material/Typography';\n\nimport ActionButton from 'components/ActionButton';\nimport Icon from 'components/Icon';\n\nimport Autocomplete from '../Autocomplete';\nimport Field from '../Field';\n\nimport { ContentTypeOptions, HttpMethodOptions, WebhookProps } from './props';\nimport { SyledIconButton } from './styles';\nimport WebhookAlert from './WebhookAlert';\n\nconst CONTENT_TYPE_RULES = {\n required: { value: true, message: 'Campo Tipo de conteúdo é obrigatório' },\n} as const;\n\nconst HTTP_METHOD_RULES = {\n required: { value: true, message: 'Campo Método HTTP é obrigatório' },\n} as const;\n\nconst URL_RULES = {\n required: { value: true, message: 'Url é obrigatório' },\n} as const;\n\nconst HEADER_KEY_RULES = {\n required: { value: true, message: '' },\n} as const;\n\nconst Webhook = ({\n webhookData,\n isEditing = false,\n haveTip = false,\n hasFilter = true,\n hasType = true,\n}: WebhookProps) => {\n const { control } = useFormContext();\n\n const {\n fields: headers,\n append,\n remove,\n } = useFieldArray({\n name: 'headers',\n control,\n });\n\n const handleCreateField = useCallback(() => {\n append({ value: '', name: '' });\n }, [append]);\n\n const handleCopyResourceId = useCallback(() => {\n if (!webhookData?.resource_id) return;\n navigator.clipboard\n .writeText(webhookData.resource_id)\n .catch(() => undefined);\n }, [webhookData?.resource_id]);\n\n const resourceIdInputProps = useMemo(\n () => ({\n endAdornment: (\n <InputAdornment position=\"end\">\n <SyledIconButton\n aria-label=\"Copiar ID origem\"\n onClick={handleCopyResourceId}\n >\n <Icon className=\"copyIcon\" icon=\"COPY_CONTENT\" />\n </SyledIconButton>\n </InputAdornment>\n ),\n }),\n [handleCopyResourceId],\n );\n\n return (\n <>\n {haveTip && <WebhookAlert />}\n {isEditing && <Field name=\"name\" label=\"Nome do webhook\" />}\n <Stack direction=\"row\" gap={2}>\n <Field name=\"url\" label=\"URL de endpoint\" rules={URL_RULES} />\n {hasFilter && <Field name=\"filter\" label=\"Filtro\" />}\n </Stack>\n {isEditing && webhookData && (\n <>\n <Field variant=\"filled\" name=\"solution\" label=\"Solução\" disabled />\n <Stack direction=\"row\" gap={2}>\n <Field variant=\"filled\" name=\"resource\" label=\"Origem\" disabled />\n <Field\n variant=\"filled\"\n name=\"resource_id\"\n label=\"ID origem\"\n disabled\n InputProps={resourceIdInputProps}\n />\n <Field variant=\"filled\" name=\"event\" label=\"Evento\" disabled />\n </Stack>\n </>\n )}\n <Stack direction=\"row\" gap={2} alignItems=\"center\">\n {hasType && (\n <Autocomplete\n fullWidth\n options={ContentTypeOptions}\n name=\"content_type\"\n label=\"Tipo de conteúdo\"\n required\n rules={CONTENT_TYPE_RULES}\n />\n )}\n <Autocomplete\n fullWidth\n options={HttpMethodOptions}\n name=\"http_method\"\n label=\"Método HTTP\"\n required\n rules={HTTP_METHOD_RULES}\n />\n </Stack>\n <Typography variant=\"overline\" color=\"grey\">\n Cabeçalho\n </Typography>\n {headers?.map((item, index) => (\n <Stack key={item.id} direction=\"row\" gap={2} alignItems=\"center\">\n <Field\n name={`headers.${index}.name`}\n label=\"Chave\"\n required\n rules={HEADER_KEY_RULES}\n />\n <Field name={`headers.${index}.value`} label=\"Valor\" />\n <IconButton\n aria-label=\"Remover cabeçalho\"\n color=\"error\"\n onClick={() => remove(index)}\n >\n <Icon icon=\"DELETE_MARK_BUTTON_02\" />\n </IconButton>\n </Stack>\n ))}\n <ActionButton\n actionType=\"NEW\"\n size=\"large\"\n variant=\"outlined\"\n color=\"inherit\"\n fullWidth\n onClick={handleCreateField}\n >\n Adicionar novo cabeçalho\n </ActionButton>\n <Divider />\n </>\n );\n};\n\nexport default Webhook;\n","import { WebhookType } from 'types/webhook';\n\nexport interface WebhookProps {\n webhookData?: WebhookType;\n isEditing?: boolean;\n haveTip?: boolean;\n hasFilter?: boolean;\n hasType?: boolean;\n}\nexport enum ContentTypeStatus {\n XML = 'XML',\n JSON = 'JSON',\n BYTEA = 'BYTEA',\n}\n\nexport enum HttpMethodStatus {\n GET = 'GET',\n POST = 'POST',\n PATCH = 'PATCH',\n DELETE = 'DELETE',\n PUT = 'PUT',\n}\n\nexport const ContentTypeOptions = [\n {\n label: ContentTypeStatus.XML,\n value: ContentTypeStatus.XML,\n },\n {\n label: ContentTypeStatus.JSON,\n value: ContentTypeStatus.JSON,\n },\n {\n label: ContentTypeStatus.BYTEA,\n value: ContentTypeStatus.BYTEA,\n },\n];\n\nexport const HttpMethodOptions = [\n {\n label: HttpMethodStatus.GET,\n value: HttpMethodStatus.GET,\n },\n {\n label: HttpMethodStatus.POST,\n value: HttpMethodStatus.POST,\n },\n {\n label: HttpMethodStatus.DELETE,\n value: HttpMethodStatus.DELETE,\n },\n {\n label: HttpMethodStatus.PUT,\n value: HttpMethodStatus.PUT,\n },\n];\n","import Alert from '@mui/material/Alert';\nimport IconButton from '@mui/material/IconButton';\nimport { alpha, styled } from '@mui/material/styles';\nimport Typography from '@mui/material/Typography';\n\nexport const SyledIconButton = styled(IconButton)(({ theme }) => ({\n svg: {\n color: `${theme.palette.primary.main} !important`,\n },\n}));\n\nexport const StyledTypography = styled(Typography)(() => ({\n textDecoration: 'underline',\n fontWeight: '600',\n cursor: 'pointer',\n}));\n\nexport const StyledAlert = styled(Alert)(({ theme }) => ({\n backgroundColor: `${alpha(theme.palette.primary.main, 0.03)}`,\n border: `1px solid ${alpha(theme.palette.primary.main, 0.4)}`,\n flexDirection: 'row',\n alignItems: 'center',\n padding: '2px 12px',\n gap: 8,\n borderRadius: 8,\n marginBottom: 16,\n\n '& svg': {\n color: theme.palette.primary.main,\n },\n}));\n","import Typography from '@mui/material/Typography';\n\nimport { StyledAlert, StyledTypography } from './styles';\n\nconst WebhookAlert = () => {\n const handleLinkClick = () => {\n const url =\n 'https://ajuda.zydon.com.br/sobre-webhooks';\n window.open(url, '_blank');\n };\n\n return (\n <StyledAlert severity=\"info\">\n <Typography color=\"grey\" variant=\"caption\">\n Webhooks permitem que serviços externos sejam notificados quando\n determinados eventos acontecem. Saiba mais{' '}\n <StyledTypography\n variant=\"caption\"\n color=\"primary\"\n onClick={() => handleLinkClick()}\n >\n acessando a documentação do Webhook\n </StyledTypography>\n </Typography>\n </StyledAlert>\n );\n};\n\nexport default WebhookAlert;\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zydon/common",
3
- "version": "2.9.29",
3
+ "version": "2.9.30",
4
4
  "license": "MIT",
5
5
  "type": "module",
6
6
  "module": "./dist/index.js",