@plumile/backoffice-core 0.1.105 → 0.1.106
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/lib/esm/base64.d.ts.map +1 -1
- package/lib/esm/base64.js +12 -1
- package/lib/esm/billing.d.ts +25 -0
- package/lib/esm/billing.d.ts.map +1 -0
- package/lib/esm/billing.js +34 -0
- package/lib/esm/config/columns.d.ts +15 -0
- package/lib/esm/config/columns.d.ts.map +1 -0
- package/lib/esm/config/columns.js +163 -0
- package/lib/esm/config/detail.d.ts +43 -0
- package/lib/esm/config/detail.d.ts.map +1 -0
- package/lib/esm/config/detail.js +122 -0
- package/lib/esm/config/filters.d.ts +41 -0
- package/lib/esm/config/filters.d.ts.map +1 -0
- package/lib/esm/config/filters.js +98 -0
- package/lib/esm/config/list.d.ts +2 -0
- package/lib/esm/config/list.d.ts.map +1 -0
- package/lib/esm/config/list.js +14 -0
- package/lib/esm/config/record.d.ts +10 -0
- package/lib/esm/config/record.d.ts.map +1 -0
- package/lib/esm/config/record.js +147 -0
- package/lib/esm/config/sorts.d.ts +8 -0
- package/lib/esm/config/sorts.d.ts.map +1 -0
- package/lib/esm/config/sorts.js +10 -0
- package/lib/esm/index.d.ts +8 -0
- package/lib/esm/index.d.ts.map +1 -1
- package/lib/esm/index.js +9 -1
- package/lib/esm/taskState.d.ts +15 -0
- package/lib/esm/taskState.d.ts.map +1 -0
- package/lib/esm/taskState.js +22 -0
- package/lib/tsconfig.esm.tsbuildinfo +1 -1
- package/lib/types/base64.d.ts.map +1 -1
- package/lib/types/billing.d.ts +25 -0
- package/lib/types/billing.d.ts.map +1 -0
- package/lib/types/config/columns.d.ts +15 -0
- package/lib/types/config/columns.d.ts.map +1 -0
- package/lib/types/config/detail.d.ts +43 -0
- package/lib/types/config/detail.d.ts.map +1 -0
- package/lib/types/config/filters.d.ts +41 -0
- package/lib/types/config/filters.d.ts.map +1 -0
- package/lib/types/config/list.d.ts +2 -0
- package/lib/types/config/list.d.ts.map +1 -0
- package/lib/types/config/record.d.ts +10 -0
- package/lib/types/config/record.d.ts.map +1 -0
- package/lib/types/config/sorts.d.ts +8 -0
- package/lib/types/config/sorts.d.ts.map +1 -0
- package/lib/types/index.d.ts +8 -0
- package/lib/types/index.d.ts.map +1 -1
- package/lib/types/taskState.d.ts +15 -0
- package/lib/types/taskState.d.ts.map +1 -0
- package/package.json +12 -2
package/lib/esm/base64.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base64.d.ts","sourceRoot":"","sources":["../../src/base64.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"base64.d.ts","sourceRoot":"","sources":["../../src/base64.ts"],"names":[],"mappings":"AAsBA,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAqBxD;AAKD,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAoBxD"}
|
package/lib/esm/base64.js
CHANGED
|
@@ -1,7 +1,14 @@
|
|
|
1
|
+
function getGlobalBuffer() {
|
|
2
|
+
return globalThis.Buffer;
|
|
3
|
+
}
|
|
1
4
|
export function encodeUtf8ToBase64(value) {
|
|
2
5
|
if (typeof value !== 'string') {
|
|
3
6
|
throw new TypeError('encodeUtf8ToBase64 expects a string input.');
|
|
4
7
|
}
|
|
8
|
+
const NodeBuffer = getGlobalBuffer();
|
|
9
|
+
if (NodeBuffer != null) {
|
|
10
|
+
return NodeBuffer.from(value, 'utf-8').toString('base64');
|
|
11
|
+
}
|
|
5
12
|
if (typeof globalThis.btoa === 'function') {
|
|
6
13
|
const utf8 = encodeURIComponent(value).replace(/%([0-9A-F]{2})/g, (_, code) => {
|
|
7
14
|
return String.fromCharCode(Number.parseInt(code, 16));
|
|
@@ -14,6 +21,10 @@ export function decodeBase64ToUtf8(value) {
|
|
|
14
21
|
if (typeof value !== 'string') {
|
|
15
22
|
throw new TypeError('decodeBase64ToUtf8 expects a string input.');
|
|
16
23
|
}
|
|
24
|
+
const NodeBuffer = getGlobalBuffer();
|
|
25
|
+
if (NodeBuffer != null) {
|
|
26
|
+
return NodeBuffer.from(value, 'base64').toString('utf-8');
|
|
27
|
+
}
|
|
17
28
|
if (typeof globalThis.atob === 'function') {
|
|
18
29
|
const binary = globalThis.atob(value);
|
|
19
30
|
const percentEncoded = Array.from(binary, (char) => {
|
|
@@ -24,4 +35,4 @@ export function decodeBase64ToUtf8(value) {
|
|
|
24
35
|
}
|
|
25
36
|
throw new Error('No base64 decoder is available in this environment.');
|
|
26
37
|
}
|
|
27
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
38
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZTY0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2Jhc2U2NC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFlQSxTQUFTLGVBQWU7SUFDdEIsT0FBUSxVQUF3QyxDQUFDLE1BQU0sQ0FBQztBQUMxRCxDQUFDO0FBS0QsTUFBTSxVQUFVLGtCQUFrQixDQUFDLEtBQWE7SUFDOUMsSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLEVBQUUsQ0FBQztRQUM5QixNQUFNLElBQUksU0FBUyxDQUFDLDRDQUE0QyxDQUFDLENBQUM7SUFDcEUsQ0FBQztJQUVELE1BQU0sVUFBVSxHQUFHLGVBQWUsRUFBRSxDQUFDO0lBQ3JDLElBQUksVUFBVSxJQUFJLElBQUksRUFBRSxDQUFDO1FBQ3ZCLE9BQU8sVUFBVSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzVELENBQUM7SUFFRCxJQUFJLE9BQU8sVUFBVSxDQUFDLElBQUksS0FBSyxVQUFVLEVBQUUsQ0FBQztRQUMxQyxNQUFNLElBQUksR0FBRyxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsQ0FBQyxPQUFPLENBQzVDLGlCQUFpQixFQUNqQixDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRTtZQUNWLE9BQU8sTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3hELENBQUMsQ0FDRixDQUFDO1FBQ0YsT0FBTyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFFRCxNQUFNLElBQUksS0FBSyxDQUFDLHFEQUFxRCxDQUFDLENBQUM7QUFDekUsQ0FBQztBQUtELE1BQU0sVUFBVSxrQkFBa0IsQ0FBQyxLQUFhO0lBQzlDLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxFQUFFLENBQUM7UUFDOUIsTUFBTSxJQUFJLFNBQVMsQ0FBQyw0Q0FBNEMsQ0FBQyxDQUFDO0lBQ3BFLENBQUM7SUFFRCxNQUFNLFVBQVUsR0FBRyxlQUFlLEVBQUUsQ0FBQztJQUNyQyxJQUFJLFVBQVUsSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUN2QixPQUFPLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLFFBQVEsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUM1RCxDQUFDO0lBRUQsSUFBSSxPQUFPLFVBQVUsQ0FBQyxJQUFJLEtBQUssVUFBVSxFQUFFLENBQUM7UUFDMUMsTUFBTSxNQUFNLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN0QyxNQUFNLGNBQWMsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFO1lBQ2pELE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7WUFDOUQsT0FBTyxJQUFJLElBQUksRUFBRSxDQUFDO1FBQ3BCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNaLE9BQU8sa0JBQWtCLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUVELE1BQU0sSUFBSSxLQUFLLENBQUMscURBQXFELENBQUMsQ0FBQztBQUN6RSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBFbmNvZGUgYSBVVEYtOCBzdHJpbmcgaW50byBhIGJhc2U2NCBzdHJpbmcuXG4gKi9cbnR5cGUgR2xvYmFsQnVmZmVyID0ge1xuICBmcm9tOiAoXG4gICAgdmFsdWU6IHN0cmluZyxcbiAgICBlbmNvZGluZzogc3RyaW5nLFxuICApID0+IHtcbiAgICB0b1N0cmluZzogKGVuY29kaW5nOiBzdHJpbmcpID0+IHN0cmluZztcbiAgfTtcbn07XG5cbi8qKlxuICpcbiAqL1xuZnVuY3Rpb24gZ2V0R2xvYmFsQnVmZmVyKCk6IEdsb2JhbEJ1ZmZlciB8IHVuZGVmaW5lZCB7XG4gIHJldHVybiAoZ2xvYmFsVGhpcyBhcyB7IEJ1ZmZlcj86IEdsb2JhbEJ1ZmZlciB9KS5CdWZmZXI7XG59XG5cbi8qKlxuICpcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGVuY29kZVV0ZjhUb0Jhc2U2NCh2YWx1ZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgaWYgKHR5cGVvZiB2YWx1ZSAhPT0gJ3N0cmluZycpIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdlbmNvZGVVdGY4VG9CYXNlNjQgZXhwZWN0cyBhIHN0cmluZyBpbnB1dC4nKTtcbiAgfVxuXG4gIGNvbnN0IE5vZGVCdWZmZXIgPSBnZXRHbG9iYWxCdWZmZXIoKTtcbiAgaWYgKE5vZGVCdWZmZXIgIT0gbnVsbCkge1xuICAgIHJldHVybiBOb2RlQnVmZmVyLmZyb20odmFsdWUsICd1dGYtOCcpLnRvU3RyaW5nKCdiYXNlNjQnKTtcbiAgfVxuXG4gIGlmICh0eXBlb2YgZ2xvYmFsVGhpcy5idG9hID09PSAnZnVuY3Rpb24nKSB7XG4gICAgY29uc3QgdXRmOCA9IGVuY29kZVVSSUNvbXBvbmVudCh2YWx1ZSkucmVwbGFjZShcbiAgICAgIC8lKFswLTlBLUZdezJ9KS9nLFxuICAgICAgKF8sIGNvZGUpID0+IHtcbiAgICAgICAgcmV0dXJuIFN0cmluZy5mcm9tQ2hhckNvZGUoTnVtYmVyLnBhcnNlSW50KGNvZGUsIDE2KSk7XG4gICAgICB9LFxuICAgICk7XG4gICAgcmV0dXJuIGdsb2JhbFRoaXMuYnRvYSh1dGY4KTtcbiAgfVxuXG4gIHRocm93IG5ldyBFcnJvcignTm8gYmFzZTY0IGVuY29kZXIgaXMgYXZhaWxhYmxlIGluIHRoaXMgZW52aXJvbm1lbnQuJyk7XG59XG5cbi8qKlxuICogRGVjb2RlIGEgYmFzZTY0IHN0cmluZyBpbnRvIGEgVVRGLTggc3RyaW5nLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZGVjb2RlQmFzZTY0VG9VdGY4KHZhbHVlOiBzdHJpbmcpOiBzdHJpbmcge1xuICBpZiAodHlwZW9mIHZhbHVlICE9PSAnc3RyaW5nJykge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ2RlY29kZUJhc2U2NFRvVXRmOCBleHBlY3RzIGEgc3RyaW5nIGlucHV0LicpO1xuICB9XG5cbiAgY29uc3QgTm9kZUJ1ZmZlciA9IGdldEdsb2JhbEJ1ZmZlcigpO1xuICBpZiAoTm9kZUJ1ZmZlciAhPSBudWxsKSB7XG4gICAgcmV0dXJuIE5vZGVCdWZmZXIuZnJvbSh2YWx1ZSwgJ2Jhc2U2NCcpLnRvU3RyaW5nKCd1dGYtOCcpO1xuICB9XG5cbiAgaWYgKHR5cGVvZiBnbG9iYWxUaGlzLmF0b2IgPT09ICdmdW5jdGlvbicpIHtcbiAgICBjb25zdCBiaW5hcnkgPSBnbG9iYWxUaGlzLmF0b2IodmFsdWUpO1xuICAgIGNvbnN0IHBlcmNlbnRFbmNvZGVkID0gQXJyYXkuZnJvbShiaW5hcnksIChjaGFyKSA9PiB7XG4gICAgICBjb25zdCBjb2RlID0gY2hhci5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KS5wYWRTdGFydCgyLCAnMCcpO1xuICAgICAgcmV0dXJuIGAlJHtjb2RlfWA7XG4gICAgfSkuam9pbignJyk7XG4gICAgcmV0dXJuIGRlY29kZVVSSUNvbXBvbmVudChwZXJjZW50RW5jb2RlZCk7XG4gIH1cblxuICB0aHJvdyBuZXcgRXJyb3IoJ05vIGJhc2U2NCBkZWNvZGVyIGlzIGF2YWlsYWJsZSBpbiB0aGlzIGVudmlyb25tZW50LicpO1xufVxuIl19
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
export type BillingLedgerDirectionLike = 'CREDIT' | 'DEBIT';
|
|
2
|
+
export declare function resolveBillingLedgerDirection<Kind extends string, Direction extends BillingLedgerDirectionLike = BillingLedgerDirectionLike>(params: {
|
|
3
|
+
kind: Kind;
|
|
4
|
+
deltaAmount: number;
|
|
5
|
+
usageDebitKind?: Kind;
|
|
6
|
+
creditTopUpKind?: Kind;
|
|
7
|
+
creditDirection?: Direction;
|
|
8
|
+
debitDirection?: Direction;
|
|
9
|
+
}): Direction;
|
|
10
|
+
export type MoneyAmountLike<Currency extends string = string> = {
|
|
11
|
+
readonly amount: number;
|
|
12
|
+
readonly currency: Currency;
|
|
13
|
+
};
|
|
14
|
+
export type BillingScopeUsageLike = {
|
|
15
|
+
readonly eventsCount?: number | null;
|
|
16
|
+
};
|
|
17
|
+
export type FormatMoneyAmountOptions = {
|
|
18
|
+
readonly locale?: string | readonly string[];
|
|
19
|
+
readonly maximumFractionDigits?: number;
|
|
20
|
+
readonly minimumFractionDigits?: number;
|
|
21
|
+
};
|
|
22
|
+
export declare function normalizeSignedZero(value: number): number;
|
|
23
|
+
export declare function hasBillingScopeUsage(total: BillingScopeUsageLike | null | undefined): boolean;
|
|
24
|
+
export declare function formatMoneyAmount(amount: MoneyAmountLike, options?: FormatMoneyAmountOptions): string;
|
|
25
|
+
//# sourceMappingURL=billing.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"billing.d.ts","sourceRoot":"","sources":["../../src/billing.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,0BAA0B,GAAG,QAAQ,GAAG,OAAO,CAAC;AAK5D,wBAAgB,6BAA6B,CAC3C,IAAI,SAAS,MAAM,EACnB,SAAS,SAAS,0BAA0B,GAAG,0BAA0B,EACzE,MAAM,EAAE;IACR,IAAI,EAAE,IAAI,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,IAAI,CAAC;IACtB,eAAe,CAAC,EAAE,IAAI,CAAC;IACvB,eAAe,CAAC,EAAE,SAAS,CAAC;IAC5B,cAAc,CAAC,EAAE,SAAS,CAAC;CAC5B,GAAG,SAAS,CAgBZ;AAED,MAAM,MAAM,eAAe,CAAC,QAAQ,SAAS,MAAM,GAAG,MAAM,IAAI;IAC9D,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;CAC7B,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAClC,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACtC,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG;IACrC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,CAAC;IAC7C,QAAQ,CAAC,qBAAqB,CAAC,EAAE,MAAM,CAAC;IACxC,QAAQ,CAAC,qBAAqB,CAAC,EAAE,MAAM,CAAC;CACzC,CAAC;AAKF,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAKzD;AAKD,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,qBAAqB,GAAG,IAAI,GAAG,SAAS,GAC9C,OAAO,CAET;AAKD,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,eAAe,EACvB,OAAO,GAAE,wBAA6B,GACrC,MAAM,CAOR"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
export function resolveBillingLedgerDirection(params) {
|
|
2
|
+
const usageDebitKind = params.usageDebitKind ?? 'USAGE_DEBIT';
|
|
3
|
+
const creditTopUpKind = params.creditTopUpKind ?? 'CREDIT_TOP_UP';
|
|
4
|
+
const creditDirection = params.creditDirection ?? 'CREDIT';
|
|
5
|
+
const debitDirection = params.debitDirection ?? 'DEBIT';
|
|
6
|
+
if (params.kind === usageDebitKind) {
|
|
7
|
+
return debitDirection;
|
|
8
|
+
}
|
|
9
|
+
if (params.kind === creditTopUpKind) {
|
|
10
|
+
return creditDirection;
|
|
11
|
+
}
|
|
12
|
+
if (params.deltaAmount < 0) {
|
|
13
|
+
return debitDirection;
|
|
14
|
+
}
|
|
15
|
+
return creditDirection;
|
|
16
|
+
}
|
|
17
|
+
export function normalizeSignedZero(value) {
|
|
18
|
+
if (Object.is(value, -0)) {
|
|
19
|
+
return 0;
|
|
20
|
+
}
|
|
21
|
+
return value;
|
|
22
|
+
}
|
|
23
|
+
export function hasBillingScopeUsage(total) {
|
|
24
|
+
return total != null && (total.eventsCount ?? 0) > 0;
|
|
25
|
+
}
|
|
26
|
+
export function formatMoneyAmount(amount, options = {}) {
|
|
27
|
+
return new Intl.NumberFormat(options.locale, {
|
|
28
|
+
style: 'currency',
|
|
29
|
+
currency: amount.currency,
|
|
30
|
+
maximumFractionDigits: options.maximumFractionDigits ?? 6,
|
|
31
|
+
minimumFractionDigits: options.minimumFractionDigits,
|
|
32
|
+
}).format(normalizeSignedZero(amount.amount));
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmlsbGluZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9iaWxsaW5nLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUtBLE1BQU0sVUFBVSw2QkFBNkIsQ0FHM0MsTUFPRDtJQUNDLE1BQU0sY0FBYyxHQUFHLE1BQU0sQ0FBQyxjQUFjLElBQUssYUFBc0IsQ0FBQztJQUN4RSxNQUFNLGVBQWUsR0FBRyxNQUFNLENBQUMsZUFBZSxJQUFLLGVBQXdCLENBQUM7SUFDNUUsTUFBTSxlQUFlLEdBQUcsTUFBTSxDQUFDLGVBQWUsSUFBSyxRQUFzQixDQUFDO0lBQzFFLE1BQU0sY0FBYyxHQUFHLE1BQU0sQ0FBQyxjQUFjLElBQUssT0FBcUIsQ0FBQztJQUV2RSxJQUFJLE1BQU0sQ0FBQyxJQUFJLEtBQUssY0FBYyxFQUFFLENBQUM7UUFDbkMsT0FBTyxjQUFjLENBQUM7SUFDeEIsQ0FBQztJQUNELElBQUksTUFBTSxDQUFDLElBQUksS0FBSyxlQUFlLEVBQUUsQ0FBQztRQUNwQyxPQUFPLGVBQWUsQ0FBQztJQUN6QixDQUFDO0lBQ0QsSUFBSSxNQUFNLENBQUMsV0FBVyxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQzNCLE9BQU8sY0FBYyxDQUFDO0lBQ3hCLENBQUM7SUFDRCxPQUFPLGVBQWUsQ0FBQztBQUN6QixDQUFDO0FBb0JELE1BQU0sVUFBVSxtQkFBbUIsQ0FBQyxLQUFhO0lBQy9DLElBQUksTUFBTSxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ3pCLE9BQU8sQ0FBQyxDQUFDO0lBQ1gsQ0FBQztJQUNELE9BQU8sS0FBSyxDQUFDO0FBQ2YsQ0FBQztBQUtELE1BQU0sVUFBVSxvQkFBb0IsQ0FDbEMsS0FBK0M7SUFFL0MsT0FBTyxLQUFLLElBQUksSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDdkQsQ0FBQztBQUtELE1BQU0sVUFBVSxpQkFBaUIsQ0FDL0IsTUFBdUIsRUFDdkIsVUFBb0MsRUFBRTtJQUV0QyxPQUFPLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFO1FBQzNDLEtBQUssRUFBRSxVQUFVO1FBQ2pCLFFBQVEsRUFBRSxNQUFNLENBQUMsUUFBUTtRQUN6QixxQkFBcUIsRUFBRSxPQUFPLENBQUMscUJBQXFCLElBQUksQ0FBQztRQUN6RCxxQkFBcUIsRUFBRSxPQUFPLENBQUMscUJBQXFCO0tBQ3JELENBQUMsQ0FBQyxNQUFNLENBQUMsbUJBQW1CLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7QUFDaEQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB0eXBlIEJpbGxpbmdMZWRnZXJEaXJlY3Rpb25MaWtlID0gJ0NSRURJVCcgfCAnREVCSVQnO1xuXG4vKipcbiAqXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZXNvbHZlQmlsbGluZ0xlZGdlckRpcmVjdGlvbjxcbiAgS2luZCBleHRlbmRzIHN0cmluZyxcbiAgRGlyZWN0aW9uIGV4dGVuZHMgQmlsbGluZ0xlZGdlckRpcmVjdGlvbkxpa2UgPSBCaWxsaW5nTGVkZ2VyRGlyZWN0aW9uTGlrZSxcbj4ocGFyYW1zOiB7XG4gIGtpbmQ6IEtpbmQ7XG4gIGRlbHRhQW1vdW50OiBudW1iZXI7XG4gIHVzYWdlRGViaXRLaW5kPzogS2luZDtcbiAgY3JlZGl0VG9wVXBLaW5kPzogS2luZDtcbiAgY3JlZGl0RGlyZWN0aW9uPzogRGlyZWN0aW9uO1xuICBkZWJpdERpcmVjdGlvbj86IERpcmVjdGlvbjtcbn0pOiBEaXJlY3Rpb24ge1xuICBjb25zdCB1c2FnZURlYml0S2luZCA9IHBhcmFtcy51c2FnZURlYml0S2luZCA/PyAoJ1VTQUdFX0RFQklUJyBhcyBLaW5kKTtcbiAgY29uc3QgY3JlZGl0VG9wVXBLaW5kID0gcGFyYW1zLmNyZWRpdFRvcFVwS2luZCA/PyAoJ0NSRURJVF9UT1BfVVAnIGFzIEtpbmQpO1xuICBjb25zdCBjcmVkaXREaXJlY3Rpb24gPSBwYXJhbXMuY3JlZGl0RGlyZWN0aW9uID8/ICgnQ1JFRElUJyBhcyBEaXJlY3Rpb24pO1xuICBjb25zdCBkZWJpdERpcmVjdGlvbiA9IHBhcmFtcy5kZWJpdERpcmVjdGlvbiA/PyAoJ0RFQklUJyBhcyBEaXJlY3Rpb24pO1xuXG4gIGlmIChwYXJhbXMua2luZCA9PT0gdXNhZ2VEZWJpdEtpbmQpIHtcbiAgICByZXR1cm4gZGViaXREaXJlY3Rpb247XG4gIH1cbiAgaWYgKHBhcmFtcy5raW5kID09PSBjcmVkaXRUb3BVcEtpbmQpIHtcbiAgICByZXR1cm4gY3JlZGl0RGlyZWN0aW9uO1xuICB9XG4gIGlmIChwYXJhbXMuZGVsdGFBbW91bnQgPCAwKSB7XG4gICAgcmV0dXJuIGRlYml0RGlyZWN0aW9uO1xuICB9XG4gIHJldHVybiBjcmVkaXREaXJlY3Rpb247XG59XG5cbmV4cG9ydCB0eXBlIE1vbmV5QW1vdW50TGlrZTxDdXJyZW5jeSBleHRlbmRzIHN0cmluZyA9IHN0cmluZz4gPSB7XG4gIHJlYWRvbmx5IGFtb3VudDogbnVtYmVyO1xuICByZWFkb25seSBjdXJyZW5jeTogQ3VycmVuY3k7XG59O1xuXG5leHBvcnQgdHlwZSBCaWxsaW5nU2NvcGVVc2FnZUxpa2UgPSB7XG4gIHJlYWRvbmx5IGV2ZW50c0NvdW50PzogbnVtYmVyIHwgbnVsbDtcbn07XG5cbmV4cG9ydCB0eXBlIEZvcm1hdE1vbmV5QW1vdW50T3B0aW9ucyA9IHtcbiAgcmVhZG9ubHkgbG9jYWxlPzogc3RyaW5nIHwgcmVhZG9ubHkgc3RyaW5nW107XG4gIHJlYWRvbmx5IG1heGltdW1GcmFjdGlvbkRpZ2l0cz86IG51bWJlcjtcbiAgcmVhZG9ubHkgbWluaW11bUZyYWN0aW9uRGlnaXRzPzogbnVtYmVyO1xufTtcblxuLyoqXG4gKlxuICovXG5leHBvcnQgZnVuY3Rpb24gbm9ybWFsaXplU2lnbmVkWmVybyh2YWx1ZTogbnVtYmVyKTogbnVtYmVyIHtcbiAgaWYgKE9iamVjdC5pcyh2YWx1ZSwgLTApKSB7XG4gICAgcmV0dXJuIDA7XG4gIH1cbiAgcmV0dXJuIHZhbHVlO1xufVxuXG4vKipcbiAqXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBoYXNCaWxsaW5nU2NvcGVVc2FnZShcbiAgdG90YWw6IEJpbGxpbmdTY29wZVVzYWdlTGlrZSB8IG51bGwgfCB1bmRlZmluZWQsXG4pOiBib29sZWFuIHtcbiAgcmV0dXJuIHRvdGFsICE9IG51bGwgJiYgKHRvdGFsLmV2ZW50c0NvdW50ID8/IDApID4gMDtcbn1cblxuLyoqXG4gKlxuICovXG5leHBvcnQgZnVuY3Rpb24gZm9ybWF0TW9uZXlBbW91bnQoXG4gIGFtb3VudDogTW9uZXlBbW91bnRMaWtlLFxuICBvcHRpb25zOiBGb3JtYXRNb25leUFtb3VudE9wdGlvbnMgPSB7fSxcbik6IHN0cmluZyB7XG4gIHJldHVybiBuZXcgSW50bC5OdW1iZXJGb3JtYXQob3B0aW9ucy5sb2NhbGUsIHtcbiAgICBzdHlsZTogJ2N1cnJlbmN5JyxcbiAgICBjdXJyZW5jeTogYW1vdW50LmN1cnJlbmN5LFxuICAgIG1heGltdW1GcmFjdGlvbkRpZ2l0czogb3B0aW9ucy5tYXhpbXVtRnJhY3Rpb25EaWdpdHMgPz8gNixcbiAgICBtaW5pbXVtRnJhY3Rpb25EaWdpdHM6IG9wdGlvbnMubWluaW11bUZyYWN0aW9uRGlnaXRzLFxuICB9KS5mb3JtYXQobm9ybWFsaXplU2lnbmVkWmVybyhhbW91bnQuYW1vdW50KSk7XG59XG4iXX0=
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { BackofficeColumnSpec, BackofficeFieldSize, I18nLabel } from '../types.js';
|
|
2
|
+
export type BackofficeColumnDefinition<RowView, ColumnId extends keyof RowView & string> = {
|
|
3
|
+
key: ColumnId;
|
|
4
|
+
size: BackofficeFieldSize;
|
|
5
|
+
header: I18nLabel;
|
|
6
|
+
copy?: BackofficeColumnSpec<RowView>['copy'];
|
|
7
|
+
cell?: BackofficeColumnSpec<RowView>['cell'];
|
|
8
|
+
visibility?: BackofficeColumnSpec<RowView>['visibility'];
|
|
9
|
+
};
|
|
10
|
+
export type DefineBackofficeColumnsOptions = {
|
|
11
|
+
entity: string;
|
|
12
|
+
defaultCell?: 'auto' | 'none';
|
|
13
|
+
};
|
|
14
|
+
export declare const defineColumns: <RowView extends object>() => <ColumnId extends keyof RowView & string>(columns: readonly BackofficeColumnDefinition<RowView, ColumnId>[], options: DefineBackofficeColumnsOptions) => readonly BackofficeColumnSpec<RowView>[];
|
|
15
|
+
//# sourceMappingURL=columns.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"columns.d.ts","sourceRoot":"","sources":["../../../src/config/columns.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,oBAAoB,EACpB,mBAAmB,EACnB,SAAS,EACV,MAAM,aAAa,CAAC;AAoIrB,MAAM,MAAM,0BAA0B,CACpC,OAAO,EACP,QAAQ,SAAS,MAAM,OAAO,GAAG,MAAM,IACrC;IACF,GAAG,EAAE,QAAQ,CAAC;IACd,IAAI,EAAE,mBAAmB,CAAC;IAC1B,MAAM,EAAE,SAAS,CAAC;IAClB,IAAI,CAAC,EAAE,oBAAoB,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC;IAC7C,IAAI,CAAC,EAAE,oBAAoB,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC;IAC7C,UAAU,CAAC,EAAE,oBAAoB,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,CAAC;CAC1D,CAAC;AAEF,MAAM,MAAM,8BAA8B,GAAG;IAC3C,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CAC/B,CAAC;AAsCF,eAAO,MAAM,aAAa,GAAI,OAAO,SAAS,MAAM,QAC1C,QAAQ,SAAS,MAAM,OAAO,GAAG,MAAM,EAC7C,SAAS,SAAS,0BAA0B,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE,EACjE,SAAS,8BAA8B,KACtC,SAAS,oBAAoB,CAAC,OAAO,CAAC,EA8B1C,CAAC"}
|
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
const isDateColumn = (key) => {
|
|
2
|
+
return key.endsWith('At') || key.endsWith('Date');
|
|
3
|
+
};
|
|
4
|
+
const TECHNICAL_KEY_PARTS = [
|
|
5
|
+
'id',
|
|
6
|
+
'sha',
|
|
7
|
+
'hash',
|
|
8
|
+
'token',
|
|
9
|
+
'payload',
|
|
10
|
+
'json',
|
|
11
|
+
'raw',
|
|
12
|
+
'credential',
|
|
13
|
+
'fingerprint',
|
|
14
|
+
'cloneUrl',
|
|
15
|
+
];
|
|
16
|
+
const STATUS_KEY_PARTS = [
|
|
17
|
+
'status',
|
|
18
|
+
'state',
|
|
19
|
+
'kind',
|
|
20
|
+
'level',
|
|
21
|
+
'locked',
|
|
22
|
+
'risk',
|
|
23
|
+
];
|
|
24
|
+
const RELATION_KEY_PARTS = [
|
|
25
|
+
'organization',
|
|
26
|
+
'group',
|
|
27
|
+
'project',
|
|
28
|
+
'initiative',
|
|
29
|
+
'task',
|
|
30
|
+
'user',
|
|
31
|
+
'conversation',
|
|
32
|
+
'account',
|
|
33
|
+
];
|
|
34
|
+
const METRIC_KEY_PARTS = [
|
|
35
|
+
'count',
|
|
36
|
+
'amount',
|
|
37
|
+
'total',
|
|
38
|
+
'billing',
|
|
39
|
+
'cost',
|
|
40
|
+
'quantity',
|
|
41
|
+
'category',
|
|
42
|
+
];
|
|
43
|
+
const matchesKeyPart = (key, parts) => {
|
|
44
|
+
const normalized = key.toLowerCase();
|
|
45
|
+
return parts.some((part) => {
|
|
46
|
+
return normalized.includes(part.toLowerCase());
|
|
47
|
+
});
|
|
48
|
+
};
|
|
49
|
+
const resolveDefaultVisibility = (key, index) => {
|
|
50
|
+
if (index === 0) {
|
|
51
|
+
return {
|
|
52
|
+
priority: 'primary',
|
|
53
|
+
mobile: 'title',
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
if (matchesKeyPart(key, TECHNICAL_KEY_PARTS)) {
|
|
57
|
+
return {
|
|
58
|
+
priority: 'debug',
|
|
59
|
+
mobile: 'hidden',
|
|
60
|
+
minVisibleAt: 'lg',
|
|
61
|
+
debugOnly: true,
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
if (matchesKeyPart(key, STATUS_KEY_PARTS)) {
|
|
65
|
+
return {
|
|
66
|
+
priority: 'important',
|
|
67
|
+
mobile: 'status',
|
|
68
|
+
minVisibleAt: 'sm',
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
if (matchesKeyPart(key, METRIC_KEY_PARTS) || isDateColumn(key)) {
|
|
72
|
+
return {
|
|
73
|
+
priority: 'secondary',
|
|
74
|
+
align: 'right',
|
|
75
|
+
mobile: 'meta',
|
|
76
|
+
minVisibleAt: 'md',
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
if (matchesKeyPart(key, RELATION_KEY_PARTS)) {
|
|
80
|
+
return {
|
|
81
|
+
priority: 'important',
|
|
82
|
+
mobile: 'subtitle',
|
|
83
|
+
minVisibleAt: 'md',
|
|
84
|
+
};
|
|
85
|
+
}
|
|
86
|
+
return {
|
|
87
|
+
priority: 'secondary',
|
|
88
|
+
mobile: 'meta',
|
|
89
|
+
minVisibleAt: 'lg',
|
|
90
|
+
};
|
|
91
|
+
};
|
|
92
|
+
const readColumnValue = (row, columnId) => {
|
|
93
|
+
const direct = row[columnId];
|
|
94
|
+
if (typeof direct === 'string' || typeof direct === 'number') {
|
|
95
|
+
return direct;
|
|
96
|
+
}
|
|
97
|
+
if (Array.isArray(direct)) {
|
|
98
|
+
return direct.length;
|
|
99
|
+
}
|
|
100
|
+
if (columnId.endsWith('s')) {
|
|
101
|
+
const countKey = `${columnId.slice(0, -1)}Count`;
|
|
102
|
+
const countValue = row[countKey];
|
|
103
|
+
if (typeof countValue === 'number') {
|
|
104
|
+
return countValue;
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
return null;
|
|
108
|
+
};
|
|
109
|
+
const buildDefaultCell = (columnId) => {
|
|
110
|
+
if (columnId === 'id') {
|
|
111
|
+
return {
|
|
112
|
+
type: 'text',
|
|
113
|
+
value: () => {
|
|
114
|
+
return '';
|
|
115
|
+
},
|
|
116
|
+
};
|
|
117
|
+
}
|
|
118
|
+
if (isDateColumn(columnId)) {
|
|
119
|
+
return {
|
|
120
|
+
type: 'dateTime',
|
|
121
|
+
value: (row) => {
|
|
122
|
+
const value = row[columnId];
|
|
123
|
+
if (typeof value === 'string' || typeof value === 'number') {
|
|
124
|
+
return value;
|
|
125
|
+
}
|
|
126
|
+
return null;
|
|
127
|
+
},
|
|
128
|
+
};
|
|
129
|
+
}
|
|
130
|
+
return {
|
|
131
|
+
type: 'text',
|
|
132
|
+
value: (row) => {
|
|
133
|
+
return readColumnValue(row, columnId);
|
|
134
|
+
},
|
|
135
|
+
};
|
|
136
|
+
};
|
|
137
|
+
export const defineColumns = () => {
|
|
138
|
+
return (columns, options) => {
|
|
139
|
+
const defaultCell = options.defaultCell ?? 'auto';
|
|
140
|
+
const filteredColumns = columns.filter((column) => {
|
|
141
|
+
return column.key !== 'id';
|
|
142
|
+
});
|
|
143
|
+
return filteredColumns.map((column, index) => {
|
|
144
|
+
const { cell: columnCell, copy, header, key, size, visibility } = column;
|
|
145
|
+
let cell = columnCell ?? null;
|
|
146
|
+
if (cell == null && defaultCell === 'auto') {
|
|
147
|
+
cell = buildDefaultCell(key);
|
|
148
|
+
}
|
|
149
|
+
if (cell == null) {
|
|
150
|
+
throw new Error(`Missing cell definition for column "${key}" in ${options.entity}.`);
|
|
151
|
+
}
|
|
152
|
+
return {
|
|
153
|
+
key,
|
|
154
|
+
size,
|
|
155
|
+
header,
|
|
156
|
+
copy,
|
|
157
|
+
cell,
|
|
158
|
+
visibility: visibility ?? resolveDefaultVisibility(key, index),
|
|
159
|
+
};
|
|
160
|
+
});
|
|
161
|
+
};
|
|
162
|
+
};
|
|
163
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sdW1ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb25maWcvY29sdW1ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFNQSxNQUFNLFlBQVksR0FBRyxDQUFDLEdBQVcsRUFBVyxFQUFFO0lBQzVDLE9BQU8sR0FBRyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQ3BELENBQUMsQ0FBQztBQUVGLE1BQU0sbUJBQW1CLEdBQUc7SUFDMUIsSUFBSTtJQUNKLEtBQUs7SUFDTCxNQUFNO0lBQ04sT0FBTztJQUNQLFNBQVM7SUFDVCxNQUFNO0lBQ04sS0FBSztJQUNMLFlBQVk7SUFDWixhQUFhO0lBQ2IsVUFBVTtDQUNGLENBQUM7QUFFWCxNQUFNLGdCQUFnQixHQUFHO0lBQ3ZCLFFBQVE7SUFDUixPQUFPO0lBQ1AsTUFBTTtJQUNOLE9BQU87SUFDUCxRQUFRO0lBQ1IsTUFBTTtDQUNFLENBQUM7QUFFWCxNQUFNLGtCQUFrQixHQUFHO0lBQ3pCLGNBQWM7SUFDZCxPQUFPO0lBQ1AsU0FBUztJQUNULFlBQVk7SUFDWixNQUFNO0lBQ04sTUFBTTtJQUNOLGNBQWM7SUFDZCxTQUFTO0NBQ0QsQ0FBQztBQUVYLE1BQU0sZ0JBQWdCLEdBQUc7SUFDdkIsT0FBTztJQUNQLFFBQVE7SUFDUixPQUFPO0lBQ1AsU0FBUztJQUNULE1BQU07SUFDTixVQUFVO0lBQ1YsVUFBVTtDQUNGLENBQUM7QUFFWCxNQUFNLGNBQWMsR0FBRyxDQUFDLEdBQVcsRUFBRSxLQUF3QixFQUFXLEVBQUU7SUFDeEUsTUFBTSxVQUFVLEdBQUcsR0FBRyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3JDLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO1FBQ3pCLE9BQU8sVUFBVSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMs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SSxHQUFHLGdCQUFnQixDQUFvQixHQUFHLENBQUMsQ0FBQztZQUNsRCxDQUFDO1lBRUQsSUFBSSxJQUFJLElBQUksSUFBSSxFQUFFLENBQUM7Z0JBQ2pCLE1BQU0sSUFBSSxLQUFLLENBQ2IsdUNBQXVDLEdBQUcsUUFBUSxPQUFPLENBQUMsTUFBTSxHQUFHLENBQ3BFLENBQUM7WUFDSixDQUFDO1lBRUQsT0FBTztnQkFDTCxHQUFHO2dCQUNILElBQUk7Z0JBQ0osTUFBTTtnQkFDTixJQUFJO2dCQUNKLElBQUk7Z0JBQ0osVUFBVSxFQUFFLFVBQVUsSUFBSSx3QkFBd0IsQ0FBVSxHQUFHLEVBQUUsS0FBSyxDQUFDO2FBQ3hFLENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQztBQUNKLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHtcbiAgQmFja29mZmljZUNvbHVtblNwZWMsXG4gIEJhY2tvZmZpY2VGaWVsZFNpemUsXG4gIEkxOG5MYWJlbCxcbn0gZnJvbSAnLi4vdHlwZXMuanMnO1xuXG5jb25zdCBpc0RhdGVDb2x1bW4gPSAoa2V5OiBzdHJpbmcpOiBib29sZWFuID0+IHtcbiAgcmV0dXJuIGtleS5lbmRzV2l0aCgnQXQnKSB8fCBrZXkuZW5kc1dpdGgoJ0RhdGUnKTtcbn07XG5cbmNvbnN0IFRFQ0hOSUNBTF9LRVlfUEFSVFMgPSBbXG4gICdpZCcsXG4gICdzaGEnLFxuICAnaGFzaCcsXG4gICd0b2tlbicsXG4gICdwYXlsb2FkJyxcbiAgJ2pzb24nLFxuICAncmF3JyxcbiAgJ2NyZWRlbnRpYWwnLFxuICAnZmluZ2VycHJpbnQnLFxuICAnY2xvbmVVcmwnLFxuXSBhcyBjb25zdDtcblxuY29uc3QgU1RBVFVTX0tFWV9QQVJUUyA9IFtcbiAgJ3N0YXR1cycsXG4gICdzdGF0ZScsXG4gICdraW5kJyxcbiAgJ2xldmVsJyxcbiAgJ2xvY2tlZCcsXG4gICdyaXNrJyxcbl0gYXMgY29uc3Q7XG5cbmNvbnN0IFJFTEFUSU9OX0tFWV9QQVJUUyA9IFtcbiAgJ29yZ2FuaXphdGlvbicsXG4gICdncm91cCcsXG4gICdwcm9qZWN0JyxcbiAgJ2luaXRpYXRpdmUnLFxuICAndGFzaycsXG4gICd1c2VyJyxcbiAgJ2NvbnZlcnNhdGlvbicsXG4gICdhY2NvdW50Jyxcbl0gYXMgY29uc3Q7XG5cbmNvbnN0IE1FVFJJQ19LRVlfUEFSVFMgPSBbXG4gICdjb3VudCcsXG4gICdhbW91bnQnLFxuICAndG90YWwnLFxuICAnYmlsbGluZycsXG4gICdjb3N0JyxcbiAgJ3F1YW50aXR5JyxcbiAgJ2NhdGVnb3J5Jyxcbl0gYXMgY29uc3Q7XG5cbmNvbnN0IG1hdGNoZXNLZXlQYXJ0ID0gKGtleTogc3RyaW5nLCBwYXJ0czogcmVhZG9ubHkgc3RyaW5nW10pOiBib29sZWFuID0+IHtcbiAgY29uc3Qgbm9ybWFsaXplZCA9IGtleS50b0xvd2VyQ2FzZSgpO1xuICByZXR1cm4gcGFydHMuc29tZSgocGFydCkgPT4ge1xuICAgIHJldHVybiBub3JtYWxpemVkLmluY2x1ZGVzKHBhcnQudG9Mb3dlckNhc2UoKSk7XG4gIH0pO1xufTtcblxuY29uc3QgcmVzb2x2ZURlZmF1bHRWaXNpYmlsaXR5ID0gPFJvd1ZpZXcgZXh0ZW5kcyBvYmplY3Q+KFxuICBrZXk6IHN0cmluZyxcbiAgaW5kZXg6IG51bWJlcixcbik6IEJhY2tvZmZpY2VDb2x1bW5TcGVjPFJvd1ZpZXc+Wyd2aXNpYmlsaXR5J10gPT4ge1xuICBpZiAoaW5kZXggPT09IDApIHtcbiAgICByZXR1cm4ge1xuICAgICAgcHJpb3JpdHk6ICdwcmltYXJ5JyxcbiAgICAgIG1vYmlsZTogJ3RpdGxlJyxcbiAgICB9O1xuICB9XG5cbiAgaWYgKG1hdGNoZXNLZXlQYXJ0KGtleSwgVEVDSE5JQ0FMX0tFWV9QQVJUUykpIHtcbiAgICByZXR1cm4ge1xuICAgICAgcHJpb3JpdHk6ICdkZWJ1ZycsXG4gICAgICBtb2JpbGU6ICdoaWRkZW4nLFxuICAgICAgbWluVmlzaWJsZUF0OiAnbGcnLFxuICAgICAgZGVidWdPbmx5OiB0cnVlLFxuICAgIH07XG4gIH1cblxuICBpZiAobWF0Y2hlc0tleVBhcnQoa2V5LCBTVEFUVVNfS0VZX1BBUlRTKSkge1xuICAgIHJldHVybiB7XG4gICAgICBwcmlvcml0eTogJ2ltcG9ydGFudCcsXG4gICAgICBtb2JpbGU6ICdzdGF0dXMnLFxuICAgICAgbWluVmlzaWJsZUF0OiAnc20nLFxuICAgIH07XG4gIH1cblxuICBpZiAobWF0Y2hlc0tleVBhcnQoa2V5LCBNRVRSSUNfS0VZX1BBUlRTKSB8fCBpc0RhdGVDb2x1bW4oa2V5KSkge1xuICAgIHJldHVybiB7XG4gICAgICBwcmlvcml0eTogJ3NlY29uZGFyeScsXG4gICAgICBhbGlnbjogJ3JpZ2h0JyxcbiAgICAgIG1vYmlsZTogJ21ldGEnLFxuICAgICAgbWluVmlzaWJsZUF0OiAnbWQnLFxuICAgIH07XG4gIH1cblxuICBpZiAobWF0Y2hlc0tleVBhcnQoa2V5LCBSRUxBVElPTl9LRVlfUEFSVFMpKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHByaW9yaXR5OiAnaW1wb3J0YW50JyxcbiAgICAgIG1vYmlsZTogJ3N1YnRpdGxlJyxcbiAgICAgIG1pblZpc2libGVBdDogJ21kJyxcbiAgICB9O1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBwcmlvcml0eTogJ3NlY29uZGFyeScsXG4gICAgbW9iaWxlOiAnbWV0YScsXG4gICAgbWluVmlzaWJsZUF0OiAnbGcnLFxuICB9O1xufTtcblxuY29uc3QgcmVhZENvbHVtblZhbHVlID0gPFxuICBSb3dWaWV3IGV4dGVuZHMgb2JqZWN0LFxuICBDb2x1bW5JZCBleHRlbmRzIGtleW9mIFJvd1ZpZXcgJiBzdHJpbmcsXG4+KFxuICByb3c6IFJvd1ZpZXcsXG4gIGNvbHVtbklkOiBDb2x1bW5JZCxcbik6IHN0cmluZyB8IG51bWJlciB8IG51bGwgPT4ge1xuICBjb25zdCBkaXJlY3QgPSByb3dbY29sdW1uSWRdO1xuICBpZiAodHlwZW9mIGRpcmVjdCA9PT0gJ3N0cmluZycgfHwgdHlwZW9mIGRpcmVjdCA9PT0gJ251bWJlcicpIHtcbiAgICByZXR1cm4gZGlyZWN0O1xuICB9XG4gIGlmIChBcnJheS5pc0FycmF5KGRpcmVjdCkpIHtcbiAgICByZXR1cm4gZGlyZWN0Lmxlbmd0aDtcbiAgfVxuICBpZiAoY29sdW1uSWQuZW5kc1dpdGgoJ3MnKSkge1xuICAgIGNvbnN0IGNvdW50S2V5ID0gYCR7Y29sdW1uSWQuc2xpY2UoMCwgLTEpfUNvdW50YCBhcyBrZXlvZiBSb3dWaWV3ICYgc3RyaW5nO1xuICAgIGNvbnN0IGNvdW50VmFsdWUgPSByb3dbY291bnRLZXldO1xuICAgIGlmICh0eXBlb2YgY291bnRWYWx1ZSA9PT0gJ251bWJlcicpIHtcbiAgICAgIHJldHVybiBjb3VudFZhbHVlO1xuICAgIH1cbiAgfVxuICByZXR1cm4gbnVsbDtcbn07XG5cbmV4cG9ydCB0eXBlIEJhY2tvZmZpY2VDb2x1bW5EZWZpbml0aW9uPFxuICBSb3dWaWV3LFxuICBDb2x1bW5JZCBleHRlbmRzIGtleW9mIFJvd1ZpZXcgJiBzdHJpbmcsXG4+ID0ge1xuICBrZXk6IENvbHVtbklkO1xuICBzaXplOiBCYWNrb2ZmaWNlRmllbGRTaXplO1xuICBoZWFkZXI6IEkxOG5MYWJlbDtcbiAgY29weT86IEJhY2tvZmZpY2VDb2x1bW5TcGVjPFJvd1ZpZXc+Wydjb3B5J107XG4gIGNlbGw/OiBCYWNrb2ZmaWNlQ29sdW1uU3BlYzxSb3dWaWV3PlsnY2VsbCddO1xuICB2aXNpYmlsaXR5PzogQmFja29mZmljZUNvbHVtblNwZWM8Um93Vmlldz5bJ3Zpc2liaWxpdHknXTtcbn07XG5cbmV4cG9ydCB0eXBlIERlZmluZUJhY2tvZmZpY2VDb2x1bW5zT3B0aW9ucyA9IHtcbiAgZW50aXR5OiBzdHJpbmc7XG4gIGRlZmF1bHRDZWxsPzogJ2F1dG8nIHwgJ25vbmUnO1xufTtcblxuY29uc3QgYnVpbGREZWZhdWx0Q2VsbCA9IDxcbiAgUm93VmlldyBleHRlbmRzIG9iamVjdCxcbiAgQ29sdW1uSWQgZXh0ZW5kcyBrZXlvZiBSb3dWaWV3ICYgc3RyaW5nLFxuPihcbiAgY29sdW1uSWQ6IENvbHVtbklkLFxuKTogQmFja29mZmljZUNvbHVtblNwZWM8Um93Vmlldz5bJ2NlbGwnXSA9PiB7XG4gIGlmIChjb2x1bW5JZCA9PT0gJ2lkJykge1xuICAgIHJldHVybiB7XG4gICAgICB0eXBlOiAndGV4dCcsXG4gICAgICB2YWx1ZTogKCkgPT4ge1xuICAgICAgICByZXR1cm4gJyc7XG4gICAgICB9LFxuICAgIH07XG4gIH1cblxuICBpZiAoaXNEYXRlQ29sdW1uKGNvbHVtbklkKSkge1xuICAgIHJldHVybiB7XG4gICAgICB0eXBlOiAnZGF0ZVRpbWUnLFxuICAgICAgdmFsdWU6IChyb3cpID0+IHtcbiAgICAgICAgY29uc3QgdmFsdWUgPSByb3dbY29sdW1uSWRdO1xuICAgICAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJyB8fCB0eXBlb2YgdmFsdWUgPT09ICdudW1iZXInKSB7XG4gICAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfSxcbiAgICB9O1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICB0eXBlOiAndGV4dCcsXG4gICAgdmFsdWU6IChyb3cpID0+IHtcbiAgICAgIHJldHVybiByZWFkQ29sdW1uVmFsdWUocm93LCBjb2x1bW5JZCk7XG4gICAgfSxcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCBkZWZpbmVDb2x1bW5zID0gPFJvd1ZpZXcgZXh0ZW5kcyBvYmplY3Q+KCkgPT4ge1xuICByZXR1cm4gPENvbHVtbklkIGV4dGVuZHMga2V5b2YgUm93VmlldyAmIHN0cmluZz4oXG4gICAgY29sdW1uczogcmVhZG9ubHkgQmFja29mZmljZUNvbHVtbkRlZmluaXRpb248Um93VmlldywgQ29sdW1uSWQ+W10sXG4gICAgb3B0aW9uczogRGVmaW5lQmFja29mZmljZUNvbHVtbnNPcHRpb25zLFxuICApOiByZWFkb25seSBCYWNrb2ZmaWNlQ29sdW1uU3BlYzxSb3dWaWV3PltdID0+IHtcbiAgICBjb25zdCBkZWZhdWx0Q2VsbCA9IG9wdGlvbnMuZGVmYXVsdENlbGwgPz8gJ2F1dG8nO1xuICAgIGNvbnN0IGZpbHRlcmVkQ29sdW1ucyA9IGNvbHVtbnMuZmlsdGVyKChjb2x1bW4pID0+IHtcbiAgICAgIHJldHVybiBjb2x1bW4ua2V5ICE9PSAnaWQnO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIGZpbHRlcmVkQ29sdW1ucy5tYXAoKGNvbHVtbiwgaW5kZXgpID0+IHtcbiAgICAgIGNvbnN0IHsgY2VsbDogY29sdW1uQ2VsbCwgY29weSwgaGVhZGVyLCBrZXksIHNpemUsIHZpc2liaWxpdHkgfSA9IGNvbHVtbjtcbiAgICAgIGxldCBjZWxsID0gY29sdW1uQ2VsbCA/PyBudWxsO1xuXG4gICAgICBpZiAoY2VsbCA9PSBudWxsICYmIGRlZmF1bHRDZWxsID09PSAnYXV0bycpIHtcbiAgICAgICAgY2VsbCA9IGJ1aWxkRGVmYXVsdENlbGw8Um93VmlldywgQ29sdW1uSWQ+KGtleSk7XG4gICAgICB9XG5cbiAgICAgIGlmIChjZWxsID09IG51bGwpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgIGBNaXNzaW5nIGNlbGwgZGVmaW5pdGlvbiBmb3IgY29sdW1uIFwiJHtrZXl9XCIgaW4gJHtvcHRpb25zLmVudGl0eX0uYCxcbiAgICAgICAgKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAga2V5LFxuICAgICAgICBzaXplLFxuICAgICAgICBoZWFkZXIsXG4gICAgICAgIGNvcHksXG4gICAgICAgIGNlbGwsXG4gICAgICAgIHZpc2liaWxpdHk6IHZpc2liaWxpdHkgPz8gcmVzb2x2ZURlZmF1bHRWaXNpYmlsaXR5PFJvd1ZpZXc+KGtleSwgaW5kZXgpLFxuICAgICAgfTtcbiAgICB9KTtcbiAgfTtcbn07XG4iXX0=
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import type { BackofficeDetailContentSpec, BackofficeDetailFieldSpec, BackofficeDetailHeaderConfig, I18nLabel } from '../types.js';
|
|
2
|
+
type DetailNodeTimestamps = {
|
|
3
|
+
createdAt?: string | number | null;
|
|
4
|
+
updatedAt?: string | number | null;
|
|
5
|
+
created?: {
|
|
6
|
+
at?: string | number | null;
|
|
7
|
+
} | null;
|
|
8
|
+
updated?: {
|
|
9
|
+
at?: string | number | null;
|
|
10
|
+
} | null;
|
|
11
|
+
};
|
|
12
|
+
export declare const resolveNodeFromQuery: <NodeRef>(data: {
|
|
13
|
+
node?: NodeRef | null;
|
|
14
|
+
}) => NodeRef | null;
|
|
15
|
+
export declare const readNodeId: <Node extends {
|
|
16
|
+
id: string;
|
|
17
|
+
}>(node: Node) => string | null;
|
|
18
|
+
export declare const readNodeTitle: <Node extends object>(node: Node) => string | null;
|
|
19
|
+
export declare const readNodeTimestamp: <Node extends DetailNodeTimestamps>(node: Node, key: "createdAt" | "updatedAt") => string | number | null;
|
|
20
|
+
export declare const buildBasicDetailFields: <Node extends {
|
|
21
|
+
id: string;
|
|
22
|
+
} & DetailNodeTimestamps>(options?: {
|
|
23
|
+
includeTimestamps?: boolean;
|
|
24
|
+
}) => readonly BackofficeDetailFieldSpec<Node>[];
|
|
25
|
+
export declare const buildBasicDetailContent: <Node extends {
|
|
26
|
+
id: string;
|
|
27
|
+
} & DetailNodeTimestamps>(title: I18nLabel, extraFields?: readonly BackofficeDetailFieldSpec<Node>[]) => readonly BackofficeDetailContentSpec<Node>[];
|
|
28
|
+
export declare const buildGenericDetailHeader: <Node extends {
|
|
29
|
+
id: string;
|
|
30
|
+
} & DetailNodeTimestamps>(options: {
|
|
31
|
+
title: I18nLabel;
|
|
32
|
+
subtitle?: I18nLabel;
|
|
33
|
+
}) => BackofficeDetailHeaderConfig<Node>;
|
|
34
|
+
export declare const resolveNodeFromConnection: <Row extends {
|
|
35
|
+
id: string;
|
|
36
|
+
}>(data: Record<string, unknown>, detailId: string | undefined, getConnection: (data: Record<string, unknown>) => {
|
|
37
|
+
edges: readonly {
|
|
38
|
+
node: Row;
|
|
39
|
+
}[];
|
|
40
|
+
}) => Row | null;
|
|
41
|
+
export declare const buildPayloadBlockLabel: () => I18nLabel;
|
|
42
|
+
export {};
|
|
43
|
+
//# sourceMappingURL=detail.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"detail.d.ts","sourceRoot":"","sources":["../../../src/config/detail.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,2BAA2B,EAC3B,yBAAyB,EACzB,4BAA4B,EAC5B,SAAS,EACV,MAAM,aAAa,CAAC;AAsBrB,KAAK,oBAAoB,GAAG;IAC1B,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IACnC,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IACnC,OAAO,CAAC,EAAE;QAAE,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAA;KAAE,GAAG,IAAI,CAAC;IACjD,OAAO,CAAC,EAAE;QAAE,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAA;KAAE,GAAG,IAAI,CAAC;CAClD,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAAI,OAAO,EAAE,MAAM;IAClD,IAAI,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;CACvB,KAAG,OAAO,GAAG,IAUb,CAAC;AAEF,eAAO,MAAM,UAAU,GAAI,IAAI,SAAS;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,EACpD,MAAM,IAAI,KACT,MAAM,GAAG,IAMX,CAAC;AAEF,eAAO,MAAM,aAAa,GAAI,IAAI,SAAS,MAAM,EAC/C,MAAM,IAAI,KACT,MAAM,GAAG,IAMX,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAAI,IAAI,SAAS,oBAAoB,EACjE,MAAM,IAAI,EACV,KAAK,WAAW,GAAG,WAAW,KAC7B,MAAM,GAAG,MAAM,GAAG,IAiBpB,CAAC;AAEF,eAAO,MAAM,sBAAsB,GACjC,IAAI,SAAS;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,GAAG,oBAAoB,EAClD,UAAU;IACV,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B,KAAG,SAAS,yBAAyB,CAAC,IAAI,CAAC,EAyB3C,CAAC;AAEF,eAAO,MAAM,uBAAuB,GAClC,IAAI,SAAS;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,GAAG,oBAAoB,EAElD,OAAO,SAAS,EAChB,cAAa,SAAS,yBAAyB,CAAC,IAAI,CAAC,EAAO,KAC3D,SAAS,2BAA2B,CAAC,IAAI,CAAC,EAQ5C,CAAC;AAEF,eAAO,MAAM,wBAAwB,GACnC,IAAI,SAAS;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,GAAG,oBAAoB,EAClD,SAAS;IACT,KAAK,EAAE,SAAS,CAAC;IACjB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB,KAAG,4BAA4B,CAAC,IAAI,CAWpC,CAAC;AAEF,eAAO,MAAM,yBAAyB,GAAI,GAAG,SAAS;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,EAClE,MAAM,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,UAAU,MAAM,GAAG,SAAS,EAC5B,eAAe,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK;IAChD,KAAK,EAAE,SAAS;QAAE,IAAI,EAAE,GAAG,CAAA;KAAE,EAAE,CAAC;CACjC,KACA,GAAG,GAAG,IAWR,CAAC;AAEF,eAAO,MAAM,sBAAsB,QAAO,SAIzC,CAAC"}
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
import RelayRuntime from 'relay-runtime';
|
|
2
|
+
import { readRecordValueByKeys } from './record.js';
|
|
3
|
+
const { FRAGMENTS_KEY } = RelayRuntime;
|
|
4
|
+
const CREATED_AT_LABEL = (t) => {
|
|
5
|
+
return t('backoffice.columns.createdAt');
|
|
6
|
+
};
|
|
7
|
+
const UPDATED_AT_LABEL = (t) => {
|
|
8
|
+
return t('backoffice.columns.updatedAt');
|
|
9
|
+
};
|
|
10
|
+
const TITLE_KEYS = [
|
|
11
|
+
'name',
|
|
12
|
+
'title',
|
|
13
|
+
'label',
|
|
14
|
+
'slug',
|
|
15
|
+
'fullSlug',
|
|
16
|
+
'email',
|
|
17
|
+
'tokenId',
|
|
18
|
+
'key',
|
|
19
|
+
];
|
|
20
|
+
export const resolveNodeFromQuery = (data) => {
|
|
21
|
+
const { node } = data;
|
|
22
|
+
if (node == null || typeof node !== 'object') {
|
|
23
|
+
return null;
|
|
24
|
+
}
|
|
25
|
+
const { [FRAGMENTS_KEY]: fragmentMap } = node;
|
|
26
|
+
if (fragmentMap == null || typeof fragmentMap !== 'object') {
|
|
27
|
+
return null;
|
|
28
|
+
}
|
|
29
|
+
return node;
|
|
30
|
+
};
|
|
31
|
+
export const readNodeId = (node) => {
|
|
32
|
+
const value = node.id;
|
|
33
|
+
if (value.trim() !== '') {
|
|
34
|
+
return value;
|
|
35
|
+
}
|
|
36
|
+
return null;
|
|
37
|
+
};
|
|
38
|
+
export const readNodeTitle = (node) => {
|
|
39
|
+
const value = readRecordValueByKeys(node, TITLE_KEYS);
|
|
40
|
+
if (value == null) {
|
|
41
|
+
return null;
|
|
42
|
+
}
|
|
43
|
+
return String(value);
|
|
44
|
+
};
|
|
45
|
+
export const readNodeTimestamp = (node, key) => {
|
|
46
|
+
const direct = node[key];
|
|
47
|
+
if (typeof direct === 'string' || typeof direct === 'number') {
|
|
48
|
+
return direct;
|
|
49
|
+
}
|
|
50
|
+
let nestedKey = 'updated';
|
|
51
|
+
if (key === 'createdAt') {
|
|
52
|
+
nestedKey = 'created';
|
|
53
|
+
}
|
|
54
|
+
const nested = node[nestedKey];
|
|
55
|
+
if (nested != null && typeof nested === 'object') {
|
|
56
|
+
const { at } = nested;
|
|
57
|
+
if (typeof at === 'string' || typeof at === 'number') {
|
|
58
|
+
return at;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
return null;
|
|
62
|
+
};
|
|
63
|
+
export const buildBasicDetailFields = (options) => {
|
|
64
|
+
const fields = [];
|
|
65
|
+
if (options?.includeTimestamps ?? true) {
|
|
66
|
+
fields.push({
|
|
67
|
+
type: 'dateTime',
|
|
68
|
+
size: 'm',
|
|
69
|
+
label: CREATED_AT_LABEL,
|
|
70
|
+
value: (node) => {
|
|
71
|
+
return readNodeTimestamp(node, 'createdAt');
|
|
72
|
+
},
|
|
73
|
+
}, {
|
|
74
|
+
type: 'dateTime',
|
|
75
|
+
size: 'm',
|
|
76
|
+
label: UPDATED_AT_LABEL,
|
|
77
|
+
value: (node) => {
|
|
78
|
+
return readNodeTimestamp(node, 'updatedAt');
|
|
79
|
+
},
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
return fields;
|
|
83
|
+
};
|
|
84
|
+
export const buildBasicDetailContent = (title, extraFields = []) => {
|
|
85
|
+
return [
|
|
86
|
+
{
|
|
87
|
+
kind: 'section',
|
|
88
|
+
title,
|
|
89
|
+
fields: [...extraFields, ...buildBasicDetailFields()],
|
|
90
|
+
},
|
|
91
|
+
];
|
|
92
|
+
};
|
|
93
|
+
export const buildGenericDetailHeader = (options) => {
|
|
94
|
+
return {
|
|
95
|
+
title: options.title,
|
|
96
|
+
subtitle: options.subtitle ?? options.title,
|
|
97
|
+
titleValue: (node) => {
|
|
98
|
+
return readNodeTitle(node);
|
|
99
|
+
},
|
|
100
|
+
id: (node) => {
|
|
101
|
+
return readNodeId(node);
|
|
102
|
+
},
|
|
103
|
+
};
|
|
104
|
+
};
|
|
105
|
+
export const resolveNodeFromConnection = (data, detailId, getConnection) => {
|
|
106
|
+
const connection = getConnection(data);
|
|
107
|
+
const { edges } = connection;
|
|
108
|
+
if (detailId == null || detailId.trim() === '') {
|
|
109
|
+
return edges[0]?.node ?? null;
|
|
110
|
+
}
|
|
111
|
+
const match = edges.find((edge) => {
|
|
112
|
+
const id = readNodeId(edge.node);
|
|
113
|
+
return id === detailId;
|
|
114
|
+
});
|
|
115
|
+
return match?.node ?? null;
|
|
116
|
+
};
|
|
117
|
+
export const buildPayloadBlockLabel = () => {
|
|
118
|
+
return (t) => {
|
|
119
|
+
return t('backoffice.tools.output');
|
|
120
|
+
};
|
|
121
|
+
};
|
|
122
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGV0YWlsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbmZpZy9kZXRhaWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxZQUFZLE1BQU0sZUFBZSxDQUFDO0FBUXpDLE9BQU8sRUFBRSxxQkFBcUIsRUFBc0IsTUFBTSxhQUFhLENBQUM7QUFFeEUsTUFBTSxFQUFFLGFBQWEsRUFBRSxHQUFHLFlBQVksQ0FBQztBQUV2QyxNQUFNLGdCQUFnQixHQUFjLENBQUMsQ0FBQyxFQUFFLEVBQUU7SUFDeEMsT0FBTyxDQUFDLENBQUMsOEJBQThCLENBQUMsQ0FBQztBQUMzQyxDQUFDLENBQUM7QUFDRixNQUFNLGdCQUFnQixHQUFjLENBQUMsQ0FBQyxFQUFFLEVBQUU7SUFDeEMsT0FBTyxDQUFDLENBQUMsOEJBQThCLENBQUMsQ0FBQztBQUMzQyxDQUFDLENBQUM7QUFDRixNQUFNLFVBQVUsR0FBRztJQUNqQixNQUFNO0lBQ04sT0FBTztJQUNQLE9BQU87SUFDUCxNQUFNO0lBQ04sVUFBVTtJQUNWLE9BQU87SUFDUCxTQUFTO0lBQ1QsS0FBSztDQUNHLENBQUM7QUFTWCxNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBRyxDQUFVLElBRTdDLEVBQWtCLEVBQUU7SUFDbkIsTUFBTSxFQUFFLElBQUksRUFBRSxHQUFHLElBQUksQ0FBQztJQUN0QixJQUFJLElBQUksSUFBSSxJQUFJLElBQUksT0FBTyxJQUFJLEtBQUssUUFBUSxFQUFFLENBQUM7UUFDN0MsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBQ0QsTUFBTSxFQUFFLENBQUMsYUFBYSxDQUFDLEVBQUUsV0FBVyxFQUFFLEdBQUcsSUFBK0IsQ0FBQztJQUN6RSxJQUFJLFdBQVcsSUFBSSxJQUFJLElBQUksT0FBTyxXQUFXLEtBQUssUUFBUSxFQUFFLENBQUM7UUFDM0QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBQ0QsT0FBTyxJQUFJLENBQUM7QUFDZCxD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RTtJQUNwRCxPQUFPLENBQUMsQ0FBQyxFQUFFLEVBQUU7UUFDWCxPQUFPLENBQUMsQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO0lBQ3RDLENBQUMsQ0FBQztBQUNKLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWxheVJ1bnRpbWUgZnJvbSAncmVsYXktcnVudGltZSc7XG5cbmltcG9ydCB0eXBlIHtcbiAgQmFja29mZmljZURldGFpbENvbnRlbnRTcGVjLFxuICBCYWNrb2ZmaWNlRGV0YWlsRmllbGRTcGVjLFxuICBCYWNrb2ZmaWNlRGV0YWlsSGVhZGVyQ29uZmlnLFxuICBJMThuTGFiZWwsXG59IGZyb20gJy4uL3R5cGVzLmpzJztcbmltcG9ydCB7IHJlYWRSZWNvcmRWYWx1ZUJ5S2V5cywgdHlwZSBVbmtub3duUmVjb3JkIH0gZnJvbSAnLi9yZWNvcmQuanMnO1xuXG5jb25zdCB7IEZSQUdNRU5UU19LRVkgfSA9IFJlbGF5UnVudGltZTtcblxuY29uc3QgQ1JFQVRFRF9BVF9MQUJFTDogSTE4bkxhYmVsID0gKHQpID0+IHtcbiAgcmV0dXJuIHQoJ2JhY2tvZmZpY2UuY29sdW1ucy5jcmVhdGVkQXQnKTtcbn07XG5jb25zdCBVUERBVEVEX0FUX0xBQkVMOiBJMThuTGFiZWwgPSAodCkgPT4ge1xuICByZXR1cm4gdCgnYmFja29mZmljZS5jb2x1bW5zLnVwZGF0ZWRBdCcpO1xufTtcbmNvbnN0IFRJVExFX0tFWVMgPSBbXG4gICduYW1lJyxcbiAgJ3RpdGxlJyxcbiAgJ2xhYmVsJyxcbiAgJ3NsdWcnLFxuICAnZnVsbFNsdWcnLFxuICAnZW1haWwnLFxuICAndG9rZW5JZCcsXG4gICdrZXknLFxuXSBhcyBjb25zdDtcblxudHlwZSBEZXRhaWxOb2RlVGltZXN0YW1wcyA9IHtcbiAgY3JlYXRlZEF0Pzogc3RyaW5nIHwgbnVtYmVyIHwgbnVsbDtcbiAgdXBkYXRlZEF0Pzogc3RyaW5nIHwgbnVtYmVyIHwgbnVsbDtcbiAgY3JlYXRlZD86IHsgYXQ/OiBzdHJpbmcgfCBudW1iZXIgfCBudWxsIH0gfCBudWxsO1xuICB1cGRhdGVkPzogeyBhdD86IHN0cmluZyB8IG51bWJlciB8IG51bGwgfSB8IG51bGw7XG59O1xuXG5leHBvcnQgY29uc3QgcmVzb2x2ZU5vZGVGcm9tUXVlcnkgPSA8Tm9kZVJlZj4oZGF0YToge1xuICBub2RlPzogTm9kZVJlZiB8IG51bGw7XG59KTogTm9kZVJlZiB8IG51bGwgPT4ge1xuICBjb25zdCB7IG5vZGUgfSA9IGRhdGE7XG4gIGlmIChub2RlID09IG51bGwgfHwgdHlwZW9mIG5vZGUgIT09ICdvYmplY3QnKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbiAgY29uc3QgeyBbRlJBR01FTlRTX0tFWV06IGZyYWdtZW50TWFwIH0gPSBub2RlIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuICBpZiAoZnJhZ21lbnRNYXAgPT0gbnVsbCB8fCB0eXBlb2YgZnJhZ21lbnRNYXAgIT09ICdvYmplY3QnKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbiAgcmV0dXJuIG5vZGU7XG59O1xuXG5leHBvcnQgY29uc3QgcmVhZE5vZGVJZCA9IDxOb2RlIGV4dGVuZHMgeyBpZDogc3RyaW5nIH0+KFxuICBub2RlOiBOb2RlLFxuKTogc3RyaW5nIHwgbnVsbCA9PiB7XG4gIGNvbnN0IHZhbHVlID0gbm9kZS5pZDtcbiAgaWYgKHZhbHVlLnRyaW0oKSAhPT0gJycpIHtcbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cbiAgcmV0dXJuIG51bGw7XG59O1xuXG5leHBvcnQgY29uc3QgcmVhZE5vZGVUaXRsZSA9IDxOb2RlIGV4dGVuZHMgb2JqZWN0PihcbiAgbm9kZTogTm9kZSxcbik6IHN0cmluZyB8IG51bGwgPT4ge1xuICBjb25zdCB2YWx1ZSA9IHJlYWRSZWNvcmRWYWx1ZUJ5S2V5cyhub2RlIGFzIFVua25vd25SZWNvcmQsIFRJVExFX0tFWVMpO1xuICBpZiAodmFsdWUgPT0gbnVsbCkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG4gIHJldHVybiBTdHJpbmcodmFsdWUpO1xufTtcblxuZXhwb3J0IGNvbnN0IHJlYWROb2RlVGltZXN0YW1wID0gPE5vZGUgZXh0ZW5kcyBEZXRhaWxOb2RlVGltZXN0YW1wcz4oXG4gIG5vZGU6IE5vZGUsXG4gIGtleTogJ2NyZWF0ZWRBdCcgfCAndXBkYXRlZEF0Jyxcbik6IHN0cmluZyB8IG51bWJlciB8IG51bGwgPT4ge1xuICBjb25zdCBkaXJlY3QgPSBub2RlW2tleV07XG4gIGlmICh0eXBlb2YgZGlyZWN0ID09PSAnc3RyaW5nJyB8fCB0eXBlb2YgZGlyZWN0ID09PSAnbnVtYmVyJykge1xuICAgIHJldHVybiBkaXJlY3Q7XG4gIH1cbiAgbGV0IG5lc3RlZEtleTogJ2NyZWF0ZWQnIHwgJ3VwZGF0ZWQnID0gJ3VwZGF0ZWQnO1xuICBpZiAoa2V5ID09PSAnY3JlYXRlZEF0Jykge1xuICAgIG5lc3RlZEtleSA9ICdjcmVhdGVkJztcbiAgfVxuICBjb25zdCBuZXN0ZWQgPSBub2RlW25lc3RlZEtleV07XG4gIGlmIChuZXN0ZWQgIT0gbnVsbCAmJiB0eXBlb2YgbmVzdGVkID09PSAnb2JqZWN0Jykge1xuICAgIGNvbnN0IHsgYXQgfSA9IG5lc3RlZCBhcyBVbmtub3duUmVjb3JkO1xuICAgIGlmICh0eXBlb2YgYXQgPT09ICdzdHJpbmcnIHx8IHR5cGVvZiBhdCA9PT0gJ251bWJlcicpIHtcbiAgICAgIHJldHVybiBhdDtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIG51bGw7XG59O1xuXG5leHBvcnQgY29uc3QgYnVpbGRCYXNpY0RldGFpbEZpZWxkcyA9IDxcbiAgTm9kZSBleHRlbmRzIHsgaWQ6IHN0cmluZyB9ICYgRGV0YWlsTm9kZVRpbWVzdGFtcHMsXG4+KG9wdGlvbnM/OiB7XG4gIGluY2x1ZGVUaW1lc3RhbXBzPzogYm9vbGVhbjtcbn0pOiByZWFkb25seSBCYWNrb2ZmaWNlRGV0YWlsRmllbGRTcGVjPE5vZGU+W10gPT4ge1xuICBjb25zdCBmaWVsZHM6IEJhY2tvZmZpY2VEZXRhaWxGaWVsZFNwZWM8Tm9kZT5bXSA9IFtdO1xuXG4gIGlmIChvcHRpb25zPy5pbmNsdWRlVGltZXN0YW1wcyA/PyB0cnVlKSB7XG4gICAgZmllbGRzLnB1c2goXG4gICAgICB7XG4gICAgICAgIHR5cGU6ICdkYXRlVGltZScsXG4gICAgICAgIHNpemU6ICdtJyxcbiAgICAgICAgbGFiZWw6IENSRUFURURfQVRfTEFCRUwsXG4gICAgICAgIHZhbHVlOiAobm9kZSkgPT4ge1xuICAgICAgICAgIHJldHVybiByZWFkTm9kZVRpbWVzdGFtcChub2RlLCAnY3JlYXRlZEF0Jyk7XG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICB0eXBlOiAnZGF0ZVRpbWUnLFxuICAgICAgICBzaXplOiAnbScsXG4gICAgICAgIGxhYmVsOiBVUERBVEVEX0FUX0xBQkVMLFxuICAgICAgICB2YWx1ZTogKG5vZGUpID0+IHtcbiAgICAgICAgICByZXR1cm4gcmVhZE5vZGVUaW1lc3RhbXAobm9kZSwgJ3VwZGF0ZWRBdCcpO1xuICAgICAgICB9LFxuICAgICAgfSxcbiAgICApO1xuICB9XG5cbiAgcmV0dXJuIGZpZWxkcztcbn07XG5cbmV4cG9ydCBjb25zdCBidWlsZEJhc2ljRGV0YWlsQ29udGVudCA9IDxcbiAgTm9kZSBleHRlbmRzIHsgaWQ6IHN0cmluZyB9ICYgRGV0YWlsTm9kZVRpbWVzdGFtcHMsXG4+KFxuICB0aXRsZTogSTE4bkxhYmVsLFxuICBleHRyYUZpZWxkczogcmVhZG9ubHkgQmFja29mZmljZURldGFpbEZpZWxkU3BlYzxOb2RlPltdID0gW10sXG4pOiByZWFkb25seSBCYWNrb2ZmaWNlRGV0YWlsQ29udGVudFNwZWM8Tm9kZT5bXSA9PiB7XG4gIHJldHVybiBbXG4gICAge1xuICAgICAga2luZDogJ3NlY3Rpb24nLFxuICAgICAgdGl0bGUsXG4gICAgICBmaWVsZHM6IFsuLi5leHRyYUZpZWxkcywgLi4uYnVpbGRCYXNpY0RldGFpbEZpZWxkczxOb2RlPigpXSxcbiAgICB9LFxuICBdO1xufTtcblxuZXhwb3J0IGNvbnN0IGJ1aWxkR2VuZXJpY0RldGFpbEhlYWRlciA9IDxcbiAgTm9kZSBleHRlbmRzIHsgaWQ6IHN0cmluZyB9ICYgRGV0YWlsTm9kZVRpbWVzdGFtcHMsXG4+KG9wdGlvbnM6IHtcbiAgdGl0bGU6IEkxOG5MYWJlbDtcbiAgc3VidGl0bGU/OiBJMThuTGFiZWw7XG59KTogQmFja29mZmljZURldGFpbEhlYWRlckNvbmZpZzxOb2RlPiA9PiB7XG4gIHJldHVybiB7XG4gICAgdGl0bGU6IG9wdGlvbnMudGl0bGUsXG4gICAgc3VidGl0bGU6IG9wdGlvbnMuc3VidGl0bGUgPz8gb3B0aW9ucy50aXRsZSxcbiAgICB0aXRsZVZhbHVlOiAobm9kZSkgPT4ge1xuICAgICAgcmV0dXJuIHJlYWROb2RlVGl0bGUobm9kZSk7XG4gICAgfSxcbiAgICBpZDogKG5vZGUpID0+IHtcbiAgICAgIHJldHVybiByZWFkTm9kZUlkKG5vZGUpO1xuICAgIH0sXG4gIH07XG59O1xuXG5leHBvcnQgY29uc3QgcmVzb2x2ZU5vZGVGcm9tQ29ubmVjdGlvbiA9IDxSb3cgZXh0ZW5kcyB7IGlkOiBzdHJpbmcgfT4oXG4gIGRhdGE6IFJlY29yZDxzdHJpbmcsIHVua25vd24+LFxuICBkZXRhaWxJZDogc3RyaW5nIHwgdW5kZWZpbmVkLFxuICBnZXRDb25uZWN0aW9uOiAoZGF0YTogUmVjb3JkPHN0cmluZywgdW5rbm93bj4pID0+IHtcbiAgICBlZGdlczogcmVhZG9ubHkgeyBub2RlOiBSb3cgfVtdO1xuICB9LFxuKTogUm93IHwgbnVsbCA9PiB7XG4gIGNvbnN0IGNvbm5lY3Rpb24gPSBnZXRDb25uZWN0aW9uKGRhdGEpO1xuICBjb25zdCB7IGVkZ2VzIH0gPSBjb25uZWN0aW9uO1xuICBpZiAoZGV0YWlsSWQgPT0gbnVsbCB8fCBkZXRhaWxJZC50cmltKCkgPT09ICcnKSB7XG4gICAgcmV0dXJuIGVkZ2VzWzBdPy5ub2RlID8/IG51bGw7XG4gIH1cbiAgY29uc3QgbWF0Y2ggPSBlZGdlcy5maW5kKChlZGdlKSA9PiB7XG4gICAgY29uc3QgaWQgPSByZWFkTm9kZUlkKGVkZ2Uubm9kZSk7XG4gICAgcmV0dXJuIGlkID09PSBkZXRhaWxJZDtcbiAgfSk7XG4gIHJldHVybiBtYXRjaD8ubm9kZSA/PyBudWxsO1xufTtcblxuZXhwb3J0IGNvbnN0IGJ1aWxkUGF5bG9hZEJsb2NrTGFiZWwgPSAoKTogSTE4bkxhYmVsID0+IHtcbiAgcmV0dXJuICh0KSA9PiB7XG4gICAgcmV0dXJuIHQoJ2JhY2tvZmZpY2UudG9vbHMub3V0cHV0Jyk7XG4gIH07XG59O1xuIl19
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import type { BackofficeFilterSpec, I18nLabel } from '../types.js';
|
|
2
|
+
export type BackofficeLegacyFilterOption = {
|
|
3
|
+
id: string;
|
|
4
|
+
value: string;
|
|
5
|
+
label: I18nLabel;
|
|
6
|
+
};
|
|
7
|
+
type BackofficeLegacyFilterBase<Where> = {
|
|
8
|
+
id: string;
|
|
9
|
+
label: I18nLabel;
|
|
10
|
+
whereKey?: Extract<keyof Where, string>;
|
|
11
|
+
path?: readonly string[];
|
|
12
|
+
placement?: 'quick' | 'drawer' | 'both';
|
|
13
|
+
};
|
|
14
|
+
export type BackofficeLegacyFilterSpec<Where> = (BackofficeLegacyFilterBase<Where> & {
|
|
15
|
+
kind: 'textContains';
|
|
16
|
+
placeholderLabel?: I18nLabel;
|
|
17
|
+
placeholderText?: I18nLabel;
|
|
18
|
+
}) | (BackofficeLegacyFilterBase<Where> & {
|
|
19
|
+
kind: 'datetime';
|
|
20
|
+
mode?: 'from' | 'to' | 'exact';
|
|
21
|
+
placeholderLabel?: I18nLabel;
|
|
22
|
+
placeholderText?: I18nLabel;
|
|
23
|
+
}) | (BackofficeLegacyFilterBase<Where> & {
|
|
24
|
+
kind: 'number';
|
|
25
|
+
placeholderLabel?: I18nLabel;
|
|
26
|
+
placeholderText?: I18nLabel;
|
|
27
|
+
inputMode?: 'numeric' | 'decimal';
|
|
28
|
+
}) | (BackofficeLegacyFilterBase<Where> & {
|
|
29
|
+
kind: 'select';
|
|
30
|
+
options: readonly BackofficeLegacyFilterOption[];
|
|
31
|
+
}) | (BackofficeLegacyFilterBase<Where> & {
|
|
32
|
+
kind: 'boolean';
|
|
33
|
+
trueLabel?: I18nLabel;
|
|
34
|
+
falseLabel?: I18nLabel;
|
|
35
|
+
}) | (BackofficeLegacyFilterBase<Where> & {
|
|
36
|
+
kind: 'entityId';
|
|
37
|
+
entity: string;
|
|
38
|
+
});
|
|
39
|
+
export declare function mapFilters<Where extends Record<string, unknown>>(filters: readonly BackofficeLegacyFilterSpec<Where>[]): readonly BackofficeFilterSpec<Where>[];
|
|
40
|
+
export {};
|
|
41
|
+
//# sourceMappingURL=filters.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"filters.d.ts","sourceRoot":"","sources":["../../../src/config/filters.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,oBAAoB,EAEpB,SAAS,EACV,MAAM,aAAa,CAAC;AAGrB,MAAM,MAAM,4BAA4B,GAAG;IACzC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,SAAS,CAAC;CAClB,CAAC;AAEF,KAAK,0BAA0B,CAAC,KAAK,IAAI;IACvC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,SAAS,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC,MAAM,KAAK,EAAE,MAAM,CAAC,CAAC;IACxC,IAAI,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACzB,SAAS,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAC;CACzC,CAAC;AAEF,MAAM,MAAM,0BAA0B,CAAC,KAAK,IACxC,CAAC,0BAA0B,CAAC,KAAK,CAAC,GAAG;IACnC,IAAI,EAAE,cAAc,CAAC;IACrB,gBAAgB,CAAC,EAAE,SAAS,CAAC;IAC7B,eAAe,CAAC,EAAE,SAAS,CAAC;CAC7B,CAAC,GACF,CAAC,0BAA0B,CAAC,KAAK,CAAC,GAAG;IACnC,IAAI,EAAE,UAAU,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC;IAC/B,gBAAgB,CAAC,EAAE,SAAS,CAAC;IAC7B,eAAe,CAAC,EAAE,SAAS,CAAC;CAC7B,CAAC,GACF,CAAC,0BAA0B,CAAC,KAAK,CAAC,GAAG;IACnC,IAAI,EAAE,QAAQ,CAAC;IACf,gBAAgB,CAAC,EAAE,SAAS,CAAC;IAC7B,eAAe,CAAC,EAAE,SAAS,CAAC;IAC5B,SAAS,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC;CACnC,CAAC,GACF,CAAC,0BAA0B,CAAC,KAAK,CAAC,GAAG;IACnC,IAAI,EAAE,QAAQ,CAAC;IACf,OAAO,EAAE,SAAS,4BAA4B,EAAE,CAAC;CAClD,CAAC,GACF,CAAC,0BAA0B,CAAC,KAAK,CAAC,GAAG;IACnC,IAAI,EAAE,SAAS,CAAC;IAChB,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,UAAU,CAAC,EAAE,SAAS,CAAC;CACxB,CAAC,GACF,CAAC,0BAA0B,CAAC,KAAK,CAAC,GAAG;IACnC,IAAI,EAAE,UAAU,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC,CAAC;AAwCP,wBAAgB,UAAU,CAAC,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9D,OAAO,EAAE,SAAS,0BAA0B,CAAC,KAAK,CAAC,EAAE,GACpD,SAAS,oBAAoB,CAAC,KAAK,CAAC,EAAE,CAwExC"}
|