@driveflux/pdf 1.6.64 → 1.6.65
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/__mocks__/quotation.js +11 -10
- package/dist/__mocks__/subscription.d.ts +2 -0
- package/dist/__mocks__/subscription.d.ts.map +1 -1
- package/dist/__mocks__/subscription.js +148 -399
- package/dist/__mocks__/subscription.js.map +1 -1
- package/dist/__mocks__/tou.js +10 -9
- package/dist/components/FluxLogo.js +3 -62
- package/dist/components/StandardPage.js +8 -97
- package/dist/debug.js +30 -221
- package/dist/debug.js.map +1 -1
- package/dist/index.js +1 -0
- package/dist/templates/QuotationPdf/CustomerSubscriptionSection.js +27 -145
- package/dist/templates/QuotationPdf/GFV.js +12 -49
- package/dist/templates/QuotationPdf/Header.js +5 -63
- package/dist/templates/QuotationPdf/Pricing.js +201 -573
- package/dist/templates/QuotationPdf/QuotationPdfPage.js +3 -23
- package/dist/templates/QuotationPdf/SectionBoxNew.js +4 -34
- package/dist/templates/QuotationPdf/TermsSection.js +5 -42
- package/dist/templates/QuotationPdf/VehiclePhotos.js +24 -54
- package/dist/templates/QuotationPdf/index.js +11 -198
- package/dist/templates/QuotationPdf/translations.js +22 -34
- package/dist/templates/QuotationPdf/utils.js +29 -59
- package/dist/templates/SubscriptionAgreement/Confirmation.d.ts +2 -0
- package/dist/templates/SubscriptionAgreement/Confirmation.d.ts.map +1 -1
- package/dist/templates/SubscriptionAgreement/Confirmation.js +11 -66
- package/dist/templates/SubscriptionAgreement/Confirmation.js.map +1 -1
- package/dist/templates/SubscriptionAgreement/CoverPage.js +10 -77
- package/dist/templates/SubscriptionAgreement/CoverPageSection.js +5 -16
- package/dist/templates/SubscriptionAgreement/Details.js +43 -69
- package/dist/templates/SubscriptionAgreement/Footer.js +6 -48
- package/dist/templates/SubscriptionAgreement/Header.js +5 -35
- package/dist/templates/SubscriptionAgreement/LabelValue.js +3 -25
- package/dist/templates/SubscriptionAgreement/SubscriptionAgreementPage.js +3 -26
- package/dist/templates/SubscriptionAgreement/TermsOfUseSubSection.js +9 -97
- package/dist/templates/SubscriptionAgreement/index.d.ts +3 -1
- package/dist/templates/SubscriptionAgreement/index.d.ts.map +1 -1
- package/dist/templates/SubscriptionAgreement/index.js +4 -4
- package/dist/templates/SubscriptionAgreement/index.js.map +1 -1
- package/dist/templates/SubscriptionAgreement/translations.js +193 -194
- package/dist/templates/SubscriptionAgreement/types.js +2 -1
- package/dist/templates/SubscriptionAgreement/utils.js +5 -3
- package/dist/templates/index.js +1 -0
- package/dist/theme/colors.js +63 -44
- package/dist/theme/index.js +1 -0
- package/dist/types.js +2 -1
- package/dist/utils.js +16 -166
- package/dist/watch.js +4 -3
- package/package.json +1 -1
|
@@ -2,45 +2,15 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
2
2
|
import { Link, Text, View } from '@react-pdf/renderer';
|
|
3
3
|
import FluxLogo from '../../components/FluxLogo.js';
|
|
4
4
|
import { colors } from '../../theme/colors.js';
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
return /*#__PURE__*/ _jsxs(View, {
|
|
8
|
-
fixed: true,
|
|
9
|
-
style: {
|
|
5
|
+
const Header = ({ tTitle, userId, subscriptionId }) => {
|
|
6
|
+
return (_jsxs(View, { fixed: true, style: {
|
|
10
7
|
flexDirection: 'row',
|
|
11
8
|
justifyContent: 'space-between',
|
|
12
9
|
alignItems: 'center',
|
|
13
10
|
paddingBottom: 40,
|
|
14
11
|
// to not get pushed by the content
|
|
15
|
-
minHeight: 69
|
|
16
|
-
},
|
|
17
|
-
children: [
|
|
18
|
-
/*#__PURE__*/ _jsx(Link, {
|
|
19
|
-
src: "https://driveflux.com",
|
|
20
|
-
children: /*#__PURE__*/ _jsx(FluxLogo, {})
|
|
21
|
-
}),
|
|
22
|
-
/*#__PURE__*/ _jsxs(View, {
|
|
23
|
-
style: {
|
|
24
|
-
rowGap: 4,
|
|
25
|
-
fontSize: 8,
|
|
26
|
-
alignItems: 'flex-end'
|
|
27
|
-
},
|
|
28
|
-
children: [
|
|
29
|
-
/*#__PURE__*/ _jsx(Text, {
|
|
30
|
-
style: {
|
|
31
|
-
fontWeight: 'bold'
|
|
32
|
-
},
|
|
33
|
-
children: tTitle
|
|
34
|
-
}),
|
|
35
|
-
/*#__PURE__*/ _jsx(Text, {
|
|
36
|
-
style: {
|
|
37
|
-
color: colors.primary2
|
|
38
|
-
},
|
|
39
|
-
children: "FLUX-".concat(userId, "-").concat(subscriptionId)
|
|
40
|
-
})
|
|
41
|
-
]
|
|
42
|
-
})
|
|
43
|
-
]
|
|
44
|
-
});
|
|
12
|
+
minHeight: 69,
|
|
13
|
+
}, children: [_jsx(Link, { src: "https://driveflux.com", children: _jsx(FluxLogo, {}) }), _jsxs(View, { style: { rowGap: 4, fontSize: 8, alignItems: 'flex-end' }, children: [_jsx(Text, { style: { fontWeight: 'bold' }, children: tTitle }), _jsx(Text, { style: { color: colors.primary2 }, children: `FLUX-${userId}-${subscriptionId}` })] })] }));
|
|
45
14
|
};
|
|
46
15
|
export default Header;
|
|
16
|
+
//# sourceMappingURL=Header.js.map
|
|
@@ -1,29 +1,7 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { Text, View } from '@react-pdf/renderer';
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
return /*#__PURE__*/ _jsxs(View, {
|
|
6
|
-
style: {
|
|
7
|
-
flexDirection: 'row'
|
|
8
|
-
},
|
|
9
|
-
children: [
|
|
10
|
-
/*#__PURE__*/ _jsx(Text, {
|
|
11
|
-
style: {
|
|
12
|
-
minWidth: 120,
|
|
13
|
-
textTransform: 'capitalize'
|
|
14
|
-
},
|
|
15
|
-
children: label
|
|
16
|
-
}),
|
|
17
|
-
/*#__PURE__*/ _jsx(Text, {
|
|
18
|
-
children: ':'
|
|
19
|
-
}),
|
|
20
|
-
/*#__PURE__*/ _jsx(Text, {
|
|
21
|
-
style: {
|
|
22
|
-
paddingLeft: 16
|
|
23
|
-
},
|
|
24
|
-
children: value ? "".concat(value) : '-'
|
|
25
|
-
})
|
|
26
|
-
]
|
|
27
|
-
});
|
|
3
|
+
const LabelValue = ({ label, value }) => {
|
|
4
|
+
return (_jsxs(View, { style: { flexDirection: 'row' }, children: [_jsx(Text, { style: { minWidth: 120, textTransform: 'capitalize' }, children: label }), _jsx(Text, { children: ':' }), _jsx(Text, { style: { paddingLeft: 16 }, children: value ? `${value}` : '-' })] }));
|
|
28
5
|
};
|
|
29
6
|
export default LabelValue;
|
|
7
|
+
//# sourceMappingURL=LabelValue.js.map
|
|
@@ -3,31 +3,8 @@ import { View } from '@react-pdf/renderer';
|
|
|
3
3
|
import StandardPage from '../../components/StandardPage.js';
|
|
4
4
|
import Footer from './Footer.js';
|
|
5
5
|
import Header from './Header.js';
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
return /*#__PURE__*/ _jsxs(StandardPage, {
|
|
9
|
-
style: {
|
|
10
|
-
padding: 40,
|
|
11
|
-
fontSize: 10
|
|
12
|
-
},
|
|
13
|
-
children: [
|
|
14
|
-
/*#__PURE__*/ _jsx(Header, {
|
|
15
|
-
tTitle: t.title,
|
|
16
|
-
userId: userId,
|
|
17
|
-
subscriptionId: subscriptionId
|
|
18
|
-
}),
|
|
19
|
-
/*#__PURE__*/ _jsx(View, {
|
|
20
|
-
style: {
|
|
21
|
-
flex: 1
|
|
22
|
-
},
|
|
23
|
-
children: children
|
|
24
|
-
}),
|
|
25
|
-
/*#__PURE__*/ _jsx(Footer, {
|
|
26
|
-
tComputerGenerated: t.computerGenerated,
|
|
27
|
-
tPage: t.page,
|
|
28
|
-
tOf: t.of
|
|
29
|
-
})
|
|
30
|
-
]
|
|
31
|
-
});
|
|
6
|
+
const SubscriptionAgreementPage = ({ t, userId, subscriptionId, children, }) => {
|
|
7
|
+
return (_jsxs(StandardPage, { style: { padding: 40, fontSize: 10 }, children: [_jsx(Header, { tTitle: t.title, userId: userId, subscriptionId: subscriptionId }), _jsx(View, { style: { flex: 1 }, children: children }), _jsx(Footer, { tComputerGenerated: t.computerGenerated, tPage: t.page, tOf: t.of })] }));
|
|
32
8
|
};
|
|
33
9
|
export default SubscriptionAgreementPage;
|
|
10
|
+
//# sourceMappingURL=SubscriptionAgreementPage.js.map
|
|
@@ -1,102 +1,14 @@
|
|
|
1
|
-
function _array_like_to_array(arr, len) {
|
|
2
|
-
if (len == null || len > arr.length) len = arr.length;
|
|
3
|
-
for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
|
|
4
|
-
return arr2;
|
|
5
|
-
}
|
|
6
|
-
function _array_without_holes(arr) {
|
|
7
|
-
if (Array.isArray(arr)) return _array_like_to_array(arr);
|
|
8
|
-
}
|
|
9
|
-
function _iterable_to_array(iter) {
|
|
10
|
-
if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
|
|
11
|
-
}
|
|
12
|
-
function _non_iterable_spread() {
|
|
13
|
-
throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
|
|
14
|
-
}
|
|
15
|
-
function _to_consumable_array(arr) {
|
|
16
|
-
return _array_without_holes(arr) || _iterable_to_array(arr) || _unsupported_iterable_to_array(arr) || _non_iterable_spread();
|
|
17
|
-
}
|
|
18
|
-
function _unsupported_iterable_to_array(o, minLen) {
|
|
19
|
-
if (!o) return;
|
|
20
|
-
if (typeof o === "string") return _array_like_to_array(o, minLen);
|
|
21
|
-
var n = Object.prototype.toString.call(o).slice(8, -1);
|
|
22
|
-
if (n === "Object" && o.constructor) n = o.constructor.name;
|
|
23
|
-
if (n === "Map" || n === "Set") return Array.from(n);
|
|
24
|
-
if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array(o, minLen);
|
|
25
|
-
}
|
|
26
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
27
2
|
import { Text, View } from '@react-pdf/renderer';
|
|
28
3
|
import { useMemo } from 'react';
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
};
|
|
38
|
-
}, [
|
|
39
|
-
indices.length,
|
|
40
|
-
indices.reduce
|
|
41
|
-
]), indicesString = _useMemo.indicesString, paddingLeft = _useMemo.paddingLeft;
|
|
42
|
-
return typeof subSection === 'string' ? /*#__PURE__*/ _jsxs(View, {
|
|
43
|
-
style: {
|
|
44
|
-
flexDirection: 'row',
|
|
45
|
-
paddingLeft: paddingLeft,
|
|
46
|
-
columnGap: 16
|
|
47
|
-
},
|
|
48
|
-
children: [
|
|
49
|
-
/*#__PURE__*/ _jsx(Text, {
|
|
50
|
-
style: {
|
|
51
|
-
fontWeight: 'bold'
|
|
52
|
-
},
|
|
53
|
-
children: indicesString
|
|
54
|
-
}),
|
|
55
|
-
/*#__PURE__*/ _jsx(Text, {
|
|
56
|
-
style: {
|
|
57
|
-
textAlign: 'justify',
|
|
58
|
-
flex: 1
|
|
59
|
-
},
|
|
60
|
-
children: subSection
|
|
61
|
-
})
|
|
62
|
-
]
|
|
63
|
-
}, indicesString) : 'subSections' in subSection ? /*#__PURE__*/ _jsxs(View, {
|
|
64
|
-
style: {
|
|
65
|
-
gap: 16
|
|
66
|
-
},
|
|
67
|
-
children: [
|
|
68
|
-
/*#__PURE__*/ _jsxs(View, {
|
|
69
|
-
style: {
|
|
70
|
-
flexDirection: 'row',
|
|
71
|
-
paddingLeft: paddingLeft,
|
|
72
|
-
columnGap: 16
|
|
73
|
-
},
|
|
74
|
-
children: [
|
|
75
|
-
/*#__PURE__*/ _jsx(Text, {
|
|
76
|
-
style: {
|
|
77
|
-
fontWeight: 'bold'
|
|
78
|
-
},
|
|
79
|
-
children: indicesString
|
|
80
|
-
}),
|
|
81
|
-
/*#__PURE__*/ _jsx(Text, {
|
|
82
|
-
style: {
|
|
83
|
-
textAlign: 'justify',
|
|
84
|
-
flex: 1
|
|
85
|
-
},
|
|
86
|
-
children: subSection.paragraph
|
|
87
|
-
})
|
|
88
|
-
]
|
|
89
|
-
}, indicesString),
|
|
90
|
-
subSection.subSections.map(function(subSection, i) {
|
|
91
|
-
return /*#__PURE__*/ _jsx(TermsOfUseSubSection, {
|
|
92
|
-
indices: _to_consumable_array(indices).concat([
|
|
93
|
-
i + 1
|
|
94
|
-
]),
|
|
95
|
-
subSection: subSection
|
|
96
|
-
}, "".// biome-ignore lint/suspicious/noArrayIndexKey: <explanation>
|
|
97
|
-
concat(indices, ".").concat(i));
|
|
98
|
-
})
|
|
99
|
-
]
|
|
100
|
-
}, indicesString) : null;
|
|
4
|
+
const TermsOfUseSubSection = ({ indices, subSection }) => {
|
|
5
|
+
const { indicesString, paddingLeft } = useMemo(() => ({
|
|
6
|
+
indicesString: indices.reduce((prev, curr, i) => `${prev}${curr}${i === indices.length - 1 ? '' : '.'}`, ''),
|
|
7
|
+
paddingLeft: Math.max(indices.length - 2, 0) * 16,
|
|
8
|
+
}), [indices.length, indices.reduce]);
|
|
9
|
+
return typeof subSection === 'string' ? (_jsxs(View, { style: { flexDirection: 'row', paddingLeft, columnGap: 16 }, children: [_jsx(Text, { style: { fontWeight: 'bold' }, children: indicesString }), _jsx(Text, { style: { textAlign: 'justify', flex: 1 }, children: subSection })] }, indicesString)) : 'subSections' in subSection ? (_jsxs(View, { style: { gap: 16 }, children: [_jsxs(View, { style: { flexDirection: 'row', paddingLeft, columnGap: 16 }, children: [_jsx(Text, { style: { fontWeight: 'bold' }, children: indicesString }), _jsx(Text, { style: { textAlign: 'justify', flex: 1 }, children: subSection.paragraph })] }, indicesString), subSection.subSections.map((subSection, i) => (_jsx(TermsOfUseSubSection, { indices: [...indices, i + 1], subSection: subSection }, `${indices}.${
|
|
10
|
+
// biome-ignore lint/suspicious/noArrayIndexKey: <explanation>
|
|
11
|
+
i}`)))] }, indicesString)) : null;
|
|
101
12
|
};
|
|
102
13
|
export default TermsOfUseSubSection;
|
|
14
|
+
//# sourceMappingURL=TermsOfUseSubSection.js.map
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { SubscriptionSignature } from '@driveflux/db';
|
|
1
2
|
import type { TermsOfUseSettings } from '@driveflux/db/types/helpers';
|
|
2
3
|
import type { PdfTemplatesSupportedLocales } from '../../types.js';
|
|
3
4
|
import type { SubscriptionForAgreement } from './types.js';
|
|
@@ -5,7 +6,8 @@ type Options = {
|
|
|
5
6
|
locale?: PdfTemplatesSupportedLocales;
|
|
6
7
|
subscription: SubscriptionForAgreement;
|
|
7
8
|
termsOfUse: TermsOfUseSettings;
|
|
9
|
+
signature: SubscriptionSignature;
|
|
8
10
|
};
|
|
9
|
-
export declare const generateSubscriptionAgreementPdf: ({ locale, subscription, termsOfUse }: Options, fileName?: string) => Promise<Buffer<ArrayBufferLike>>;
|
|
11
|
+
export declare const generateSubscriptionAgreementPdf: ({ locale, subscription, termsOfUse, signature }: Options, fileName?: string) => Promise<Buffer<ArrayBufferLike>>;
|
|
10
12
|
export {};
|
|
11
13
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/templates/SubscriptionAgreement/index.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/templates/SubscriptionAgreement/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAA;AAC1D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAA;AAGrE,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,gBAAgB,CAAA;AAQlE,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAA;AAE1D,KAAK,OAAO,GAAG;IACd,MAAM,CAAC,EAAE,4BAA4B,CAAA;IACrC,YAAY,EAAE,wBAAwB,CAAA;IACtC,UAAU,EAAE,kBAAkB,CAAA;IAC9B,SAAS,EAAE,qBAAqB,CAAA;CAChC,CAAA;AAED,eAAO,MAAM,gCAAgC,GAC5C,iDAAwD,OAAO,EAC/D,WAAW,MAAM,qCAcjB,CAAA"}
|
|
@@ -8,11 +8,11 @@ import Details from './Details.js';
|
|
|
8
8
|
import SubscriptionAgreementPage from './SubscriptionAgreementPage.js';
|
|
9
9
|
import TermsOfUse from './TermsOfUse.js';
|
|
10
10
|
import { useTranslations } from './translations.js';
|
|
11
|
-
export const generateSubscriptionAgreementPdf = async ({ locale = 'en', subscription, termsOfUse }, fileName) => {
|
|
12
|
-
if (!
|
|
11
|
+
export const generateSubscriptionAgreementPdf = async ({ locale = 'en', subscription, termsOfUse, signature }, fileName) => {
|
|
12
|
+
if (!signature) {
|
|
13
13
|
throw new Error('Signature not found');
|
|
14
14
|
}
|
|
15
|
-
return await toPdf(_jsx(SubscriptionAgreement, { locale: locale, signature:
|
|
15
|
+
return await toPdf(_jsx(SubscriptionAgreement, { locale: locale, signature: signature, subscription: subscription, termsOfUse: termsOfUse }), fileName);
|
|
16
16
|
};
|
|
17
17
|
const SubscriptionAgreement = ({ locale = 'en', signature, subscription, termsOfUse, }) => {
|
|
18
18
|
if (!signature.signedAt) {
|
|
@@ -27,6 +27,6 @@ const SubscriptionAgreement = ({ locale = 'en', signature, subscription, termsOf
|
|
|
27
27
|
};
|
|
28
28
|
}, [subscription.userId, subscription.id, useT]);
|
|
29
29
|
const { t } = pageProps;
|
|
30
|
-
return (_jsxs(Document, { title: t.title, language: locale, children: [_jsx(SubscriptionAgreementPage, { ...pageProps, children: _jsx(CoverPage, { tTitle: t.title, tCover: t.cover, signedAt: signature.signedAt, user: subscription.user }) }), _jsx(SubscriptionAgreementPage, { ...pageProps, children: _jsx(TermsOfUse, { termsOfUse: termsOfUse }) }), _jsxs(SubscriptionAgreementPage, { ...pageProps, children: [_jsx(Details, { tDetails: t.details, subscription: subscription }), _jsx(Confirmation, { tConfirmation: t.confirmation, subscription: subscription })] })] }));
|
|
30
|
+
return (_jsxs(Document, { title: t.title, language: locale, children: [_jsx(SubscriptionAgreementPage, { ...pageProps, children: _jsx(CoverPage, { tTitle: t.title, tCover: t.cover, signedAt: signature.signedAt, user: subscription.user }) }), _jsx(SubscriptionAgreementPage, { ...pageProps, children: _jsx(TermsOfUse, { termsOfUse: termsOfUse }) }), _jsxs(SubscriptionAgreementPage, { ...pageProps, children: [_jsx(Details, { tDetails: t.details, subscription: subscription }), _jsx(Confirmation, { tConfirmation: t.confirmation, subscription: subscription, signature: signature })] })] }));
|
|
31
31
|
};
|
|
32
32
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/templates/SubscriptionAgreement/index.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAA;AAC9C,OAAO,EAAW,OAAO,EAAE,MAAM,OAAO,CAAA;AAExC,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAA;AACtC,OAAO,YAAY,MAAM,mBAAmB,CAAA;AAC5C,OAAO,SAAS,MAAM,gBAAgB,CAAA;AACtC,OAAO,OAAO,MAAM,cAAc,CAAA;AAClC,OAAO,yBAAyB,MAAM,gCAAgC,CAAA;AACtE,OAAO,UAAU,MAAM,iBAAiB,CAAA;AACxC,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/templates/SubscriptionAgreement/index.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAA;AAC9C,OAAO,EAAW,OAAO,EAAE,MAAM,OAAO,CAAA;AAExC,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAA;AACtC,OAAO,YAAY,MAAM,mBAAmB,CAAA;AAC5C,OAAO,SAAS,MAAM,gBAAgB,CAAA;AACtC,OAAO,OAAO,MAAM,cAAc,CAAA;AAClC,OAAO,yBAAyB,MAAM,gCAAgC,CAAA;AACtE,OAAO,UAAU,MAAM,iBAAiB,CAAA;AACxC,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAUnD,MAAM,CAAC,MAAM,gCAAgC,GAAG,KAAK,EACpD,EAAE,MAAM,GAAG,IAAI,EAAE,YAAY,EAAE,UAAU,EAAE,SAAS,EAAW,EAC/D,QAAiB,EAChB,EAAE;IACH,IAAI,CAAC,SAAS,EAAE,CAAC;QAChB,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAA;IACvC,CAAC;IACD,OAAO,MAAM,KAAK,CACjB,KAAC,qBAAqB,IACrB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,SAAS,EACpB,YAAY,EAAE,YAAY,EAC1B,UAAU,EAAE,UAAU,GACrB,EACF,QAAQ,CACR,CAAA;AACF,CAAC,CAAA;AASD,MAAM,qBAAqB,GAAc,CAAC,EACzC,MAAM,GAAG,IAAI,EACb,SAAS,EACT,YAAY,EACZ,UAAU,GACV,EAAE,EAAE;IACJ,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;QACzB,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAA;IAChD,CAAC;IACD,MAAM,IAAI,GAAG,eAAe,CAAC,MAAM,CAAC,CAAA;IACpC,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,EAAE;QAC9B,OAAO;YACN,CAAC,EAAE,IAAI;YACP,MAAM,EAAE,YAAY,CAAC,MAAM;YAC3B,cAAc,EAAE,YAAY,CAAC,EAAE;SAC/B,CAAA;IACF,CAAC,EAAE,CAAC,YAAY,CAAC,MAAM,EAAE,YAAY,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,CAAA;IAChD,MAAM,EAAE,CAAC,EAAE,GAAG,SAAS,CAAA;IACvB,OAAO,CACN,MAAC,QAAQ,IAAC,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,aACzC,KAAC,yBAAyB,OAAK,SAAS,YACvC,KAAC,SAAS,IACT,MAAM,EAAE,CAAC,CAAC,KAAK,EACf,MAAM,EAAE,CAAC,CAAC,KAAK,EACf,QAAQ,EAAE,SAAS,CAAC,QAAQ,EAC5B,IAAI,EAAE,YAAY,CAAC,IAAI,GACtB,GACyB,EAC5B,KAAC,yBAAyB,OAAK,SAAS,YACvC,KAAC,UAAU,IAAC,UAAU,EAAE,UAAU,GAAI,GACX,EAC5B,MAAC,yBAAyB,OAAK,SAAS,aACvC,KAAC,OAAO,IAAC,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,YAAY,EAAE,YAAY,GAAI,EAC5D,KAAC,YAAY,IACZ,aAAa,EAAE,CAAC,CAAC,YAAY,EAC7B,YAAY,EAAE,YAAY,EAC1B,SAAS,EAAE,SAAS,GACnB,IACyB,IAClB,CACX,CAAA;AACF,CAAC,CAAA"}
|