@greatapps/common 1.1.595 → 1.1.596
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/dist/components/navigation/subcomponents/BottomLinks.mjs +36 -15
- package/dist/components/navigation/subcomponents/BottomLinks.mjs.map +1 -1
- package/dist/modules/charges/types/charge.type.mjs +4 -4
- package/dist/modules/charges/types/charge.type.mjs.map +1 -1
- package/package.json +1 -1
- package/src/components/navigation/subcomponents/BottomLinks.tsx +44 -16
- package/src/modules/charges/types/charge.type.ts +4 -4
|
@@ -1,12 +1,19 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
3
|
-
import { IconHelp, IconBulb } from "@tabler/icons-react";
|
|
3
|
+
import { IconHelp, IconBulb, IconSparkles } from "@tabler/icons-react";
|
|
4
4
|
import { useIsDefaultWhitelabel, useWhitelabel } from "../../../providers/whitelabel.provider";
|
|
5
5
|
function BottomLinks() {
|
|
6
6
|
const { whitelabel } = useWhitelabel();
|
|
7
7
|
const isMainWhitelabel = useIsDefaultWhitelabel();
|
|
8
8
|
const helpUrl = whitelabel?.url_help || "https://ajuda.greatsoftwares.com.br/pt-br/";
|
|
9
9
|
const links = [
|
|
10
|
+
...isMainWhitelabel ? [
|
|
11
|
+
{
|
|
12
|
+
label: "Novidades",
|
|
13
|
+
icon: IconSparkles,
|
|
14
|
+
className: "novidades"
|
|
15
|
+
}
|
|
16
|
+
] : [],
|
|
10
17
|
{
|
|
11
18
|
label: "Central de ajuda",
|
|
12
19
|
icon: IconHelp,
|
|
@@ -20,20 +27,34 @@ function BottomLinks() {
|
|
|
20
27
|
}
|
|
21
28
|
] : []
|
|
22
29
|
];
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
30
|
+
const baseClassName = "rounded-md flex items-center gap-2 p-3 cursor-pointer transition-colors no-underline bg-white hover:bg-gray-100 active:bg-gray-50";
|
|
31
|
+
return /* @__PURE__ */ jsx("div", { className: "flex flex-col", children: links.map(
|
|
32
|
+
(link) => link.href ? /* @__PURE__ */ jsxs(
|
|
33
|
+
"a",
|
|
34
|
+
{
|
|
35
|
+
href: link.href,
|
|
36
|
+
target: "_blank",
|
|
37
|
+
rel: "noopener noreferrer",
|
|
38
|
+
className: `${baseClassName}${link.className ? ` ${link.className}` : ""}`,
|
|
39
|
+
children: [
|
|
40
|
+
/* @__PURE__ */ jsx(link.icon, { size: 20, className: "text-gray-400" }),
|
|
41
|
+
/* @__PURE__ */ jsx("span", { className: "paragraph-small-medium text-gray-500", children: link.label })
|
|
42
|
+
]
|
|
43
|
+
},
|
|
44
|
+
link.label
|
|
45
|
+
) : /* @__PURE__ */ jsxs(
|
|
46
|
+
"button",
|
|
47
|
+
{
|
|
48
|
+
type: "button",
|
|
49
|
+
className: `${baseClassName} text-left${link.className ? ` ${link.className}` : ""}`,
|
|
50
|
+
children: [
|
|
51
|
+
/* @__PURE__ */ jsx(link.icon, { size: 20, className: "text-gray-400" }),
|
|
52
|
+
/* @__PURE__ */ jsx("span", { className: "paragraph-small-medium text-gray-500", children: link.label })
|
|
53
|
+
]
|
|
54
|
+
},
|
|
55
|
+
link.label
|
|
56
|
+
)
|
|
57
|
+
) });
|
|
37
58
|
}
|
|
38
59
|
export {
|
|
39
60
|
BottomLinks
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/navigation/subcomponents/BottomLinks.tsx"],"sourcesContent":["'use client';\n\nimport { IconHelp, IconBulb } from '@tabler/icons-react';\nimport { useIsDefaultWhitelabel, useWhitelabel } from '../../../providers/whitelabel.provider';\n\nexport function BottomLinks() {\n const { whitelabel } = useWhitelabel();\n const isMainWhitelabel = useIsDefaultWhitelabel();\n\n const helpUrl = whitelabel?.url_help || 'https://ajuda.greatsoftwares.com.br/pt-br/';\n\n const links = [\n {\n label: 'Central de ajuda',\n icon: IconHelp,\n href: helpUrl,\n },\n ...(isMainWhitelabel\n ? [\n {\n label: 'Enviar sugestões',\n icon: IconBulb,\n href: 'https://ideias.greatpages.com.br/b/y0geg1ve/feature-ideas',\n },\n ]\n : []),\n ];\n\n return (\n <div className=\"flex flex-col\">\n {links.map((link)
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/navigation/subcomponents/BottomLinks.tsx"],"sourcesContent":["'use client';\n\nimport { IconHelp, IconBulb, IconSparkles, type TablerIcon } from '@tabler/icons-react';\nimport { useIsDefaultWhitelabel, useWhitelabel } from '../../../providers/whitelabel.provider';\n\ninterface BottomLink {\n label: string;\n icon: TablerIcon;\n href?: string;\n className?: string;\n}\n\nexport function BottomLinks() {\n const { whitelabel } = useWhitelabel();\n const isMainWhitelabel = useIsDefaultWhitelabel();\n\n const helpUrl = whitelabel?.url_help || 'https://ajuda.greatsoftwares.com.br/pt-br/';\n\n const links: BottomLink[] = [\n ...(isMainWhitelabel\n ? [\n {\n label: 'Novidades',\n icon: IconSparkles,\n className: 'novidades',\n },\n ]\n : []),\n {\n label: 'Central de ajuda',\n icon: IconHelp,\n href: helpUrl,\n },\n ...(isMainWhitelabel\n ? [\n {\n label: 'Enviar sugestões',\n icon: IconBulb,\n href: 'https://ideias.greatpages.com.br/b/y0geg1ve/feature-ideas',\n },\n ]\n : []),\n ];\n\n const baseClassName =\n 'rounded-md flex items-center gap-2 p-3 cursor-pointer transition-colors no-underline bg-white hover:bg-gray-100 active:bg-gray-50';\n\n return (\n <div className=\"flex flex-col\">\n {links.map((link) =>\n link.href ? (\n <a\n key={link.label}\n href={link.href}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className={`${baseClassName}${link.className ? ` ${link.className}` : ''}`}\n >\n <link.icon size={20} className=\"text-gray-400\" />\n <span className=\"paragraph-small-medium text-gray-500\">{link.label}</span>\n </a>\n ) : (\n <button\n key={link.label}\n type=\"button\"\n className={`${baseClassName} text-left${link.className ? ` ${link.className}` : ''}`}\n >\n <link.icon size={20} className=\"text-gray-400\" />\n <span className=\"paragraph-small-medium text-gray-500\">{link.label}</span>\n </button>\n )\n )}\n </div>\n );\n}\n"],"mappings":";AAmDU,SAOE,KAPF;AAjDV,SAAS,UAAU,UAAU,oBAAqC;AAClE,SAAS,wBAAwB,qBAAqB;AAS/C,SAAS,cAAc;AAC5B,QAAM,EAAE,WAAW,IAAI,cAAc;AACrC,QAAM,mBAAmB,uBAAuB;AAEhD,QAAM,UAAU,YAAY,YAAY;AAExC,QAAM,QAAsB;AAAA,IAC1B,GAAI,mBACA;AAAA,MACE;AAAA,QACE,OAAO;AAAA,QACP,MAAM;AAAA,QACN,WAAW;AAAA,MACb;AAAA,IACF,IACA,CAAC;AAAA,IACL;AAAA,MACE,OAAO;AAAA,MACP,MAAM;AAAA,MACN,MAAM;AAAA,IACR;AAAA,IACA,GAAI,mBACA;AAAA,MACE;AAAA,QACE,OAAO;AAAA,QACP,MAAM;AAAA,QACN,MAAM;AAAA,MACR;AAAA,IACF,IACA,CAAC;AAAA,EACP;AAEA,QAAM,gBACJ;AAEF,SACE,oBAAC,SAAI,WAAU,iBACZ,gBAAM;AAAA,IAAI,CAAC,SACV,KAAK,OACH;AAAA,MAAC;AAAA;AAAA,QAEC,MAAM,KAAK;AAAA,QACX,QAAO;AAAA,QACP,KAAI;AAAA,QACJ,WAAW,GAAG,aAAa,GAAG,KAAK,YAAY,IAAI,KAAK,SAAS,KAAK,EAAE;AAAA,QAExE;AAAA,8BAAC,KAAK,MAAL,EAAU,MAAM,IAAI,WAAU,iBAAgB;AAAA,UAC/C,oBAAC,UAAK,WAAU,wCAAwC,eAAK,OAAM;AAAA;AAAA;AAAA,MAP9D,KAAK;AAAA,IAQZ,IAEA;AAAA,MAAC;AAAA;AAAA,QAEC,MAAK;AAAA,QACL,WAAW,GAAG,aAAa,aAAa,KAAK,YAAY,IAAI,KAAK,SAAS,KAAK,EAAE;AAAA,QAElF;AAAA,8BAAC,KAAK,MAAL,EAAU,MAAM,IAAI,WAAU,iBAAgB;AAAA,UAC/C,oBAAC,UAAK,WAAU,wCAAwC,eAAK,OAAM;AAAA;AAAA;AAAA,MAL9D,KAAK;AAAA,IAMZ;AAAA,EAEJ,GACF;AAEJ;","names":[]}
|
|
@@ -15,12 +15,12 @@ const ChargeSchema = z.object({
|
|
|
15
15
|
title: z.string().nullable().optional(),
|
|
16
16
|
id_subscription: z.union([z.number(), z.string()]).nullable().optional(),
|
|
17
17
|
id_account: z.coerce.number(),
|
|
18
|
-
status: z.number().nullable().optional().
|
|
18
|
+
status: z.coerce.number().nullable().optional().transform((val) => val ?? 0),
|
|
19
19
|
description: z.string().nullable().optional(),
|
|
20
20
|
date_due: z.coerce.date().nullable().optional(),
|
|
21
21
|
date_payment: z.coerce.date().nullable().optional(),
|
|
22
22
|
payment_method: z.number().nullable().optional(),
|
|
23
|
-
value: z.number().nullable().optional().
|
|
23
|
+
value: z.coerce.number().nullable().optional().transform((val) => val ?? 0),
|
|
24
24
|
type: z.number().nullable().optional(),
|
|
25
25
|
periodicity: z.number().nullable().optional(),
|
|
26
26
|
id_gateway: z.number().nullable().optional(),
|
|
@@ -31,11 +31,11 @@ const ChargeSchema = z.object({
|
|
|
31
31
|
invoice_url: z.string().nullable().optional(),
|
|
32
32
|
invoice_pdf: z.string().nullable().optional(),
|
|
33
33
|
date_created: z.coerce.date().nullable().optional(),
|
|
34
|
-
deleted: z.number().transform((val) => val === 1)
|
|
34
|
+
deleted: z.coerce.number().nullable().optional().transform((val) => val === 1),
|
|
35
35
|
datetime_alt: z.coerce.date().nullable().optional(),
|
|
36
36
|
datetime_del: z.coerce.date().nullable().optional(),
|
|
37
37
|
datetime_add: z.coerce.date().nullable().optional(),
|
|
38
|
-
line_descriptions: z.array(z.string()).nullable().optional().
|
|
38
|
+
line_descriptions: z.array(z.string()).nullable().optional().transform((val) => val ?? []),
|
|
39
39
|
payment_details: PaymentDetailsSchema
|
|
40
40
|
});
|
|
41
41
|
const FindChargesParamsSchema = z.object({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/modules/charges/types/charge.type.ts"],"sourcesContent":["import { PaginationParamsSchema, SearchParamsSchema, SortParamsSchema } from '../../../infra/api/types';\nimport z from 'zod';\n\nconst BoletoPaymentDetailsSchema = z.object({\n type: z.literal('boleto'),\n barcode: z.string().nullable().optional(),\n expiration_date: z.number().nullable().optional(),\n hosted_voucher_url: z.string().nullable().optional(),\n pdf: z.string().nullable().optional(),\n});\n\nconst PaymentDetailsSchema = z.union([BoletoPaymentDetailsSchema, z.record(z.string(), z.unknown())]).nullable().optional();\n\nexport const ChargeSchema = z.object({\n id: z.coerce.number(),\n id_wl: z.number(),\n id_product: z.number().nullable().optional(),\n title: z.string().nullable().optional(),\n id_subscription: z.union([z.number(), z.string()]).nullable().optional(),\n id_account: z.coerce.number(),\n status: z.number().nullable().optional().
|
|
1
|
+
{"version":3,"sources":["../../../../src/modules/charges/types/charge.type.ts"],"sourcesContent":["import { PaginationParamsSchema, SearchParamsSchema, SortParamsSchema } from '../../../infra/api/types';\nimport z from 'zod';\n\nconst BoletoPaymentDetailsSchema = z.object({\n type: z.literal('boleto'),\n barcode: z.string().nullable().optional(),\n expiration_date: z.number().nullable().optional(),\n hosted_voucher_url: z.string().nullable().optional(),\n pdf: z.string().nullable().optional(),\n});\n\nconst PaymentDetailsSchema = z.union([BoletoPaymentDetailsSchema, z.record(z.string(), z.unknown())]).nullable().optional();\n\nexport const ChargeSchema = z.object({\n id: z.coerce.number(),\n id_wl: z.number(),\n id_product: z.number().nullable().optional(),\n title: z.string().nullable().optional(),\n id_subscription: z.union([z.number(), z.string()]).nullable().optional(),\n id_account: z.coerce.number(),\n status: z.coerce.number().nullable().optional().transform((val) => val ?? 0),\n description: z.string().nullable().optional(),\n date_due: z.coerce.date().nullable().optional(),\n date_payment: z.coerce.date().nullable().optional(),\n payment_method: z.number().nullable().optional(),\n value: z.coerce.number().nullable().optional().transform((val) => val ?? 0),\n type: z.number().nullable().optional(),\n periodicity: z.number().nullable().optional(),\n id_gateway: z.number().nullable().optional(),\n gateway_invoice: z.string().nullable().optional(),\n gateway_billet: z.string().nullable().optional(),\n invoice_id: z.string().nullable().optional(),\n invoice_service: z.string().nullable().optional(),\n invoice_url: z.string().nullable().optional(),\n invoice_pdf: z.string().nullable().optional(),\n date_created: z.coerce.date().nullable().optional(),\n deleted: z.coerce.number().nullable().optional().transform((val) => val === 1),\n datetime_alt: z.coerce.date().nullable().optional(),\n datetime_del: z.coerce.date().nullable().optional(),\n datetime_add: z.coerce.date().nullable().optional(),\n line_descriptions: z.array(z.string()).nullable().optional().transform((val) => val ?? []),\n payment_details: PaymentDetailsSchema,\n});\n\nexport type Charge = z.infer<typeof ChargeSchema>;\n\nexport const FindChargesParamsSchema = z\n .object({\n date_start: z.date(),\n date_end: z.date(),\n date_payment_start: z.date(),\n date_payment_end: z.date(),\n status: z.array(z.number()).optional(),\n })\n .extend(PaginationParamsSchema.shape)\n .extend(SortParamsSchema.shape)\n .extend(SearchParamsSchema.shape);\n\nexport const PayChargeInputSchema = z.object({\n chargeId: z.union([z.number(), z.string()]),\n paymentMethod: z.number(),\n paymentMethodId: z.string().optional(),\n});\n\nexport type PayChargeInput = z.infer<typeof PayChargeInputSchema>;\n\nexport type FindChargesParams = z.infer<typeof FindChargesParamsSchema>;\n"],"mappings":"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","names":[]}
|
package/package.json
CHANGED
|
@@ -1,15 +1,31 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
|
|
3
|
-
import { IconHelp, IconBulb } from '@tabler/icons-react';
|
|
3
|
+
import { IconHelp, IconBulb, IconSparkles, type TablerIcon } from '@tabler/icons-react';
|
|
4
4
|
import { useIsDefaultWhitelabel, useWhitelabel } from '../../../providers/whitelabel.provider';
|
|
5
5
|
|
|
6
|
+
interface BottomLink {
|
|
7
|
+
label: string;
|
|
8
|
+
icon: TablerIcon;
|
|
9
|
+
href?: string;
|
|
10
|
+
className?: string;
|
|
11
|
+
}
|
|
12
|
+
|
|
6
13
|
export function BottomLinks() {
|
|
7
14
|
const { whitelabel } = useWhitelabel();
|
|
8
15
|
const isMainWhitelabel = useIsDefaultWhitelabel();
|
|
9
16
|
|
|
10
17
|
const helpUrl = whitelabel?.url_help || 'https://ajuda.greatsoftwares.com.br/pt-br/';
|
|
11
18
|
|
|
12
|
-
const links = [
|
|
19
|
+
const links: BottomLink[] = [
|
|
20
|
+
...(isMainWhitelabel
|
|
21
|
+
? [
|
|
22
|
+
{
|
|
23
|
+
label: 'Novidades',
|
|
24
|
+
icon: IconSparkles,
|
|
25
|
+
className: 'novidades',
|
|
26
|
+
},
|
|
27
|
+
]
|
|
28
|
+
: []),
|
|
13
29
|
{
|
|
14
30
|
label: 'Central de ajuda',
|
|
15
31
|
icon: IconHelp,
|
|
@@ -26,22 +42,34 @@ export function BottomLinks() {
|
|
|
26
42
|
: []),
|
|
27
43
|
];
|
|
28
44
|
|
|
45
|
+
const baseClassName =
|
|
46
|
+
'rounded-md flex items-center gap-2 p-3 cursor-pointer transition-colors no-underline bg-white hover:bg-gray-100 active:bg-gray-50';
|
|
47
|
+
|
|
29
48
|
return (
|
|
30
49
|
<div className="flex flex-col">
|
|
31
|
-
{links.map((link) =>
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
{link.label}
|
|
42
|
-
</
|
|
43
|
-
|
|
44
|
-
|
|
50
|
+
{links.map((link) =>
|
|
51
|
+
link.href ? (
|
|
52
|
+
<a
|
|
53
|
+
key={link.label}
|
|
54
|
+
href={link.href}
|
|
55
|
+
target="_blank"
|
|
56
|
+
rel="noopener noreferrer"
|
|
57
|
+
className={`${baseClassName}${link.className ? ` ${link.className}` : ''}`}
|
|
58
|
+
>
|
|
59
|
+
<link.icon size={20} className="text-gray-400" />
|
|
60
|
+
<span className="paragraph-small-medium text-gray-500">{link.label}</span>
|
|
61
|
+
</a>
|
|
62
|
+
) : (
|
|
63
|
+
<button
|
|
64
|
+
key={link.label}
|
|
65
|
+
type="button"
|
|
66
|
+
className={`${baseClassName} text-left${link.className ? ` ${link.className}` : ''}`}
|
|
67
|
+
>
|
|
68
|
+
<link.icon size={20} className="text-gray-400" />
|
|
69
|
+
<span className="paragraph-small-medium text-gray-500">{link.label}</span>
|
|
70
|
+
</button>
|
|
71
|
+
)
|
|
72
|
+
)}
|
|
45
73
|
</div>
|
|
46
74
|
);
|
|
47
75
|
}
|
|
@@ -18,12 +18,12 @@ export const ChargeSchema = z.object({
|
|
|
18
18
|
title: z.string().nullable().optional(),
|
|
19
19
|
id_subscription: z.union([z.number(), z.string()]).nullable().optional(),
|
|
20
20
|
id_account: z.coerce.number(),
|
|
21
|
-
status: z.number().nullable().optional().
|
|
21
|
+
status: z.coerce.number().nullable().optional().transform((val) => val ?? 0),
|
|
22
22
|
description: z.string().nullable().optional(),
|
|
23
23
|
date_due: z.coerce.date().nullable().optional(),
|
|
24
24
|
date_payment: z.coerce.date().nullable().optional(),
|
|
25
25
|
payment_method: z.number().nullable().optional(),
|
|
26
|
-
value: z.number().nullable().optional().
|
|
26
|
+
value: z.coerce.number().nullable().optional().transform((val) => val ?? 0),
|
|
27
27
|
type: z.number().nullable().optional(),
|
|
28
28
|
periodicity: z.number().nullable().optional(),
|
|
29
29
|
id_gateway: z.number().nullable().optional(),
|
|
@@ -34,11 +34,11 @@ export const ChargeSchema = z.object({
|
|
|
34
34
|
invoice_url: z.string().nullable().optional(),
|
|
35
35
|
invoice_pdf: z.string().nullable().optional(),
|
|
36
36
|
date_created: z.coerce.date().nullable().optional(),
|
|
37
|
-
deleted: z.number().transform((val) => val === 1)
|
|
37
|
+
deleted: z.coerce.number().nullable().optional().transform((val) => val === 1),
|
|
38
38
|
datetime_alt: z.coerce.date().nullable().optional(),
|
|
39
39
|
datetime_del: z.coerce.date().nullable().optional(),
|
|
40
40
|
datetime_add: z.coerce.date().nullable().optional(),
|
|
41
|
-
line_descriptions: z.array(z.string()).nullable().optional().
|
|
41
|
+
line_descriptions: z.array(z.string()).nullable().optional().transform((val) => val ?? []),
|
|
42
42
|
payment_details: PaymentDetailsSchema,
|
|
43
43
|
});
|
|
44
44
|
|