@nest-my-admin/core 0.4.1 → 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +27 -0
- package/dist/api/admin-api.service.d.ts +20 -0
- package/dist/api/admin-api.service.js +113 -2
- package/dist/api/admin-api.service.js.map +1 -1
- package/dist/audit/entities.d.ts +4 -0
- package/dist/audit/entities.js.map +1 -1
- package/dist/constants.d.ts +1 -0
- package/dist/constants.js +1 -0
- package/dist/constants.js.map +1 -1
- package/dist/contract.d.ts +13 -0
- package/dist/decorators/admin-print.d.ts +35 -0
- package/dist/decorators/admin-print.js +53 -0
- package/dist/decorators/admin-print.js.map +1 -0
- package/dist/export/export-cells.d.ts +8 -0
- package/dist/export/export-cells.js +45 -0
- package/dist/export/export-cells.js.map +1 -0
- package/dist/export/xlsx.d.ts +23 -0
- package/dist/export/xlsx.js +115 -0
- package/dist/export/xlsx.js.map +1 -0
- package/dist/http/admin-http.server.js +24 -0
- package/dist/http/admin-http.server.js.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/policy/admin-policy.service.d.ts +4 -0
- package/dist/policy/admin-policy.service.js +20 -1
- package/dist/policy/admin-policy.service.js.map +1 -1
- package/dist/policy/catalog.js +2 -1
- package/dist/policy/catalog.js.map +1 -1
- package/dist/print/html.d.ts +16 -0
- package/dist/print/html.js +37 -0
- package/dist/print/html.js.map +1 -0
- package/dist/print/print-page.d.ts +10 -0
- package/dist/print/print-page.js +47 -0
- package/dist/print/print-page.js.map +1 -0
- package/dist/registry/resource-registry.d.ts +8 -0
- package/dist/registry/resource-registry.js +34 -0
- package/dist/registry/resource-registry.js.map +1 -1
- package/dist/resource/admin-resource-base.d.ts +9 -0
- package/dist/resource/admin-resource-base.js.map +1 -1
- package/dist/schema/build-resource-schema.js +1 -0
- package/dist/schema/build-resource-schema.js.map +1 -1
- package/package.json +2 -2
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import 'reflect-metadata';
|
|
2
|
+
import type { PrintSchema } from '../contract.js';
|
|
3
|
+
import { type LocalizedText } from '../i18n/localized-text.js';
|
|
4
|
+
/** Paper sizes by name; any other string is used as the CSS `@page { size }` value. */
|
|
5
|
+
export declare const PAPERS: Record<string, string>;
|
|
6
|
+
export interface AdminPrintOptions {
|
|
7
|
+
/** `'Invoice'` or `{ en: 'Invoice', fa: 'فاکتور' }`. Defaults to the humanized method name. */
|
|
8
|
+
label?: LocalizedText;
|
|
9
|
+
icon?: string;
|
|
10
|
+
/** `A4` (default), `A5`, `label` (100×150 mm) or a CSS `@page` size such as `'80mm 200mm'`. */
|
|
11
|
+
paper?: string;
|
|
12
|
+
/** Also offered on a list selection: one page per record, up to 100. */
|
|
13
|
+
bulk?: boolean;
|
|
14
|
+
}
|
|
15
|
+
/** A print template checked at boot. */
|
|
16
|
+
export interface RegisteredPrint {
|
|
17
|
+
name: string;
|
|
18
|
+
label: LocalizedText;
|
|
19
|
+
icon?: string;
|
|
20
|
+
/** The CSS `@page` size. */
|
|
21
|
+
size: string;
|
|
22
|
+
bulk: boolean;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* A print template of a resource (an invoice, a shipping label): the method `(records, ctx)` returns the body HTML of
|
|
26
|
+
* the printed page, one or more records (`bulk`). Build it with the `html` tag, which escapes every value. The admin
|
|
27
|
+
* wraps it in a page sized for `paper` that prints itself. Printing needs `{resource}.view`, the user's row scopes and
|
|
28
|
+
* `{resource}.print.{name}`; each printed record is written to the audit log. Throw an `HttpException` to refuse.
|
|
29
|
+
*/
|
|
30
|
+
export declare function AdminPrint(options?: AdminPrintOptions): MethodDecorator;
|
|
31
|
+
/** Boot checks of a resource class's print templates; `taken` are names already in use (base methods, actions). */
|
|
32
|
+
export declare function resolvePrints(resourceClass: Function, taken: readonly string[], fail: (message: string) => never): Map<string, RegisteredPrint>;
|
|
33
|
+
/** The permission code of a print template. */
|
|
34
|
+
export declare const printCode: (resource: string, name: string) => string;
|
|
35
|
+
export declare function toPrintSchema(print: RegisteredPrint, locale: string, defaultLocale: string): PrintSchema;
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import 'reflect-metadata';
|
|
2
|
+
import { ADMIN_PRINTS_METADATA } from '../constants.js';
|
|
3
|
+
import { resolveText } from '../i18n/localized-text.js';
|
|
4
|
+
import { humanize } from '../schema/humanize.js';
|
|
5
|
+
/** Paper sizes by name; any other string is used as the CSS `@page { size }` value. */
|
|
6
|
+
export const PAPERS = { A4: 'A4', A5: 'A5', label: '100mm 150mm' };
|
|
7
|
+
/**
|
|
8
|
+
* A print template of a resource (an invoice, a shipping label): the method `(records, ctx)` returns the body HTML of
|
|
9
|
+
* the printed page, one or more records (`bulk`). Build it with the `html` tag, which escapes every value. The admin
|
|
10
|
+
* wraps it in a page sized for `paper` that prints itself. Printing needs `{resource}.view`, the user's row scopes and
|
|
11
|
+
* `{resource}.print.{name}`; each printed record is written to the audit log. Throw an `HttpException` to refuse.
|
|
12
|
+
*/
|
|
13
|
+
export function AdminPrint(options = {}) {
|
|
14
|
+
return (target, propertyKey) => {
|
|
15
|
+
if (typeof propertyKey !== 'string')
|
|
16
|
+
throw new TypeError('@AdminPrint must decorate a method with a string name');
|
|
17
|
+
const owner = target.constructor;
|
|
18
|
+
const inherited = Reflect.getMetadata(ADMIN_PRINTS_METADATA, owner) ?? {};
|
|
19
|
+
Reflect.defineMetadata(ADMIN_PRINTS_METADATA, { ...inherited, [propertyKey]: { ...options, name: propertyKey } }, owner);
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
/** Boot checks of a resource class's print templates; `taken` are names already in use (base methods, actions). */
|
|
23
|
+
export function resolvePrints(resourceClass, taken, fail) {
|
|
24
|
+
const prints = new Map();
|
|
25
|
+
const declared = Reflect.getMetadata(ADMIN_PRINTS_METADATA, resourceClass) ?? {};
|
|
26
|
+
for (const definition of Object.values(declared)) {
|
|
27
|
+
const { name } = definition;
|
|
28
|
+
const where = `@AdminPrint "${name}"`;
|
|
29
|
+
if (taken.includes(name))
|
|
30
|
+
fail(`${where}: the name is taken (a base method or an action); give the method another name`);
|
|
31
|
+
if (!/^[a-z][a-z0-9_]*$/i.test(name))
|
|
32
|
+
fail(`${where}: the method name must be a word (letters, digits, _)`);
|
|
33
|
+
const paper = definition.paper ?? 'A4';
|
|
34
|
+
if (typeof paper !== 'string' || !/^[a-z0-9 .]+$/i.test(paper))
|
|
35
|
+
fail(`${where}: paper must be A4, A5, label or a CSS page size`);
|
|
36
|
+
if (definition.icon !== undefined && typeof definition.icon !== 'string')
|
|
37
|
+
fail(`${where}: icon must be an icon name`);
|
|
38
|
+
prints.set(name, {
|
|
39
|
+
name,
|
|
40
|
+
label: definition.label ?? humanize(name),
|
|
41
|
+
...(definition.icon ? { icon: definition.icon } : {}),
|
|
42
|
+
size: PAPERS[paper] ?? paper,
|
|
43
|
+
bulk: definition.bulk === true,
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
return prints;
|
|
47
|
+
}
|
|
48
|
+
/** The permission code of a print template. */
|
|
49
|
+
export const printCode = (resource, name) => `${resource}.print.${name}`;
|
|
50
|
+
export function toPrintSchema(print, locale, defaultLocale) {
|
|
51
|
+
return { name: print.name, label: resolveText(print.label, locale, defaultLocale), bulk: print.bulk, ...(print.icon ? { icon: print.icon } : {}) };
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=admin-print.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"admin-print.js","sourceRoot":"","sources":["../../src/decorators/admin-print.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAC1B,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAExD,OAAO,EAAE,WAAW,EAAsB,MAAM,2BAA2B,CAAC;AAC5E,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAEjD,uFAAuF;AACvF,MAAM,CAAC,MAAM,MAAM,GAA2B,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC;AAsB3F;;;;;GAKG;AACH,MAAM,UAAU,UAAU,CAAC,OAAO,GAAsB,EAAE;IACxD,OAAO,CAAC,MAAM,EAAE,WAAW,EAAE,EAAE;QAC7B,IAAI,OAAO,WAAW,KAAK,QAAQ;YAAE,MAAM,IAAI,SAAS,CAAC,uDAAuD,CAAC,CAAC;QAClH,MAAM,KAAK,GAAG,MAAM,CAAC,WAAW,CAAC;QACjC,MAAM,SAAS,GAAI,OAAO,CAAC,WAAW,CAAC,qBAAqB,EAAE,KAAK,CAAsE,IAAI,EAAE,CAAC;QAChJ,OAAO,CAAC,cAAc,CAAC,qBAAqB,EAAE,EAAE,GAAG,SAAS,EAAE,CAAC,WAAW,CAAC,EAAE,EAAE,GAAG,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;IAC3H,CAAC,CAAC;AACJ,CAAC;AAED,mHAAmH;AACnH,MAAM,UAAU,aAAa,CAAC,aAAuB,EAAE,KAAwB,EAAE,IAAgC;IAC/G,MAAM,MAAM,GAAG,IAAI,GAAG,EAA2B,CAAC;IAClD,MAAM,QAAQ,GAAI,OAAO,CAAC,WAAW,CAAC,qBAAqB,EAAE,aAAa,CAAsE,IAAI,EAAE,CAAC;IACvJ,KAAK,MAAM,UAAU,IAAI,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;QACjD,MAAM,EAAE,IAAI,EAAE,GAAG,UAAU,CAAC;QAC5B,MAAM,KAAK,GAAG,gBAAgB,IAAI,GAAG,CAAC;QACtC,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC;YAAE,IAAI,CAAC,GAAG,KAAK,gFAAgF,CAAC,CAAC;QACzH,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC;YAAE,IAAI,CAAC,GAAG,KAAK,uDAAuD,CAAC,CAAC;QAC5G,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,IAAI,IAAI,CAAC;QACvC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC;YAAE,IAAI,CAAC,GAAG,KAAK,kDAAkD,CAAC,CAAC;QACjI,IAAI,UAAU,CAAC,IAAI,KAAK,SAAS,IAAI,OAAO,UAAU,CAAC,IAAI,KAAK,QAAQ;YAAE,IAAI,CAAC,GAAG,KAAK,6BAA6B,CAAC,CAAC;QACtH,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE;YACf,IAAI;YACJ,KAAK,EAAE,UAAU,CAAC,KAAK,IAAI,QAAQ,CAAC,IAAI,CAAC;YACzC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACrD,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,IAAI,KAAK;YAC5B,IAAI,EAAE,UAAU,CAAC,IAAI,KAAK,IAAI;SAC/B,CAAC,CAAC;IACL,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,+CAA+C;AAC/C,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,QAAgB,EAAE,IAAY,EAAU,EAAE,CAAC,GAAG,QAAQ,UAAU,IAAI,EAAE,CAAC;AAEjG,MAAM,UAAU,aAAa,CAAC,KAAsB,EAAE,MAAc,EAAE,aAAqB;IACzF,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,WAAW,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;AACrJ,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { FieldSchema } from '../contract.js';
|
|
2
|
+
import type { Cell } from './xlsx.js';
|
|
3
|
+
/**
|
|
4
|
+
* One exported cell from a serialized record value (`serializeRecord`): numbers stay numbers, enums show their labels,
|
|
5
|
+
* relations their titles, booleans yes/no in `locale`, dates real dates. `offset` (minutes east of UTC) shifts
|
|
6
|
+
* date-times to the exporter's clock, since a spreadsheet cell has no time zone.
|
|
7
|
+
*/
|
|
8
|
+
export declare function toCell(value: unknown, field: FieldSchema, locale: string, offset: number): Cell;
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
const YES_NO = { en: ['Yes', 'No'], fa: ['بله', 'خیر'] };
|
|
2
|
+
/** A decimal or bigint string as a number when a double holds it exactly, else the text. */
|
|
3
|
+
function numeric(text) {
|
|
4
|
+
if (!/^-?\d+(\.\d+)?$/.test(text))
|
|
5
|
+
return text;
|
|
6
|
+
const digits = text.replace(/^-/, '').replace('.', '').replace(/^0+/, '');
|
|
7
|
+
return digits.length <= 15 ? Number(text) : text;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* One exported cell from a serialized record value (`serializeRecord`): numbers stay numbers, enums show their labels,
|
|
11
|
+
* relations their titles, booleans yes/no in `locale`, dates real dates. `offset` (minutes east of UTC) shifts
|
|
12
|
+
* date-times to the exporter's clock, since a spreadsheet cell has no time zone.
|
|
13
|
+
*/
|
|
14
|
+
export function toCell(value, field, locale, offset) {
|
|
15
|
+
if (value === null || value === undefined)
|
|
16
|
+
return null;
|
|
17
|
+
if (field.type === 'relation') {
|
|
18
|
+
const refs = (Array.isArray(value) ? value : [value]);
|
|
19
|
+
return refs.map((ref) => ref.title ?? String(ref.id)).join(locale.startsWith('fa') ? '، ' : ', ');
|
|
20
|
+
}
|
|
21
|
+
switch (field.type) {
|
|
22
|
+
case 'number':
|
|
23
|
+
return typeof value === 'number' ? value : String(value);
|
|
24
|
+
case 'decimal':
|
|
25
|
+
case 'bigint':
|
|
26
|
+
return numeric(String(value));
|
|
27
|
+
case 'boolean': {
|
|
28
|
+
const [yes, no] = YES_NO[locale.split('-')[0]] ?? YES_NO.en;
|
|
29
|
+
return value ? yes : no;
|
|
30
|
+
}
|
|
31
|
+
case 'enum':
|
|
32
|
+
return field.enumLabels?.[String(value)] ?? String(value);
|
|
33
|
+
case 'date': {
|
|
34
|
+
const date = new Date(`${String(value).slice(0, 10)}T00:00:00Z`);
|
|
35
|
+
return Number.isNaN(date.getTime()) ? String(value) : { date, time: false };
|
|
36
|
+
}
|
|
37
|
+
case 'datetime': {
|
|
38
|
+
const date = new Date(String(value));
|
|
39
|
+
return Number.isNaN(date.getTime()) ? String(value) : { date: new Date(date.getTime() + offset * 60_000), time: true };
|
|
40
|
+
}
|
|
41
|
+
default:
|
|
42
|
+
return typeof value === 'object' ? JSON.stringify(value) : String(value);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=export-cells.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"export-cells.js","sourceRoot":"","sources":["../../src/export/export-cells.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/** One cell: text, a number, a date (shown as a date, or with `time` as a date and time), or empty. */
|
|
2
|
+
export type Cell = string | number | {
|
|
3
|
+
date: Date;
|
|
4
|
+
time: boolean;
|
|
5
|
+
} | null;
|
|
6
|
+
export declare function crc32(data: Uint8Array): number;
|
|
7
|
+
/** A zip archive of `files` (deflated), the container of an `.xlsx`. */
|
|
8
|
+
export declare function zip(files: Array<{
|
|
9
|
+
name: string;
|
|
10
|
+
data: Uint8Array;
|
|
11
|
+
}>): Buffer;
|
|
12
|
+
/** `A`, …, `Z`, `AA`, … */
|
|
13
|
+
export declare function columnName(index: number): string;
|
|
14
|
+
/**
|
|
15
|
+
* A one-sheet workbook: the header row bold and frozen, then the rows. `rtl` shows the sheet right to left. Dates
|
|
16
|
+
* are written in UTC (callers shift them to the time they want shown).
|
|
17
|
+
*/
|
|
18
|
+
export declare function workbook(input: {
|
|
19
|
+
sheet: string;
|
|
20
|
+
header: string[];
|
|
21
|
+
rows: Cell[][];
|
|
22
|
+
rtl?: boolean;
|
|
23
|
+
}): Buffer;
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
import { deflateRawSync } from 'node:zlib';
|
|
2
|
+
const CRC_TABLE = (() => {
|
|
3
|
+
const table = new Uint32Array(256);
|
|
4
|
+
for (let n = 0; n < 256; n++) {
|
|
5
|
+
let c = n;
|
|
6
|
+
for (let k = 0; k < 8; k++)
|
|
7
|
+
c = c & 1 ? 0xedb88320 ^ (c >>> 1) : c >>> 1;
|
|
8
|
+
table[n] = c >>> 0;
|
|
9
|
+
}
|
|
10
|
+
return table;
|
|
11
|
+
})();
|
|
12
|
+
export function crc32(data) {
|
|
13
|
+
let crc = 0xffffffff;
|
|
14
|
+
for (const byte of data)
|
|
15
|
+
crc = CRC_TABLE[(crc ^ byte) & 0xff] ^ (crc >>> 8);
|
|
16
|
+
return (crc ^ 0xffffffff) >>> 0;
|
|
17
|
+
}
|
|
18
|
+
/** A zip archive of `files` (deflated), the container of an `.xlsx`. */
|
|
19
|
+
export function zip(files) {
|
|
20
|
+
const parts = [];
|
|
21
|
+
const central = [];
|
|
22
|
+
let offset = 0;
|
|
23
|
+
for (const file of files) {
|
|
24
|
+
const name = Buffer.from(file.name, 'utf8');
|
|
25
|
+
const compressed = deflateRawSync(file.data);
|
|
26
|
+
const crc = crc32(file.data);
|
|
27
|
+
const local = Buffer.alloc(30);
|
|
28
|
+
local.writeUInt32LE(0x04034b50, 0);
|
|
29
|
+
local.writeUInt16LE(20, 4); // version needed
|
|
30
|
+
local.writeUInt16LE(0x0800, 6); // UTF-8 names
|
|
31
|
+
local.writeUInt16LE(8, 8); // deflate
|
|
32
|
+
local.writeUInt32LE(0, 10); // time and date: 1980-01-01
|
|
33
|
+
local.writeUInt32LE(crc, 14);
|
|
34
|
+
local.writeUInt32LE(compressed.length, 18);
|
|
35
|
+
local.writeUInt32LE(file.data.length, 22);
|
|
36
|
+
local.writeUInt16LE(name.length, 26);
|
|
37
|
+
local.writeUInt16LE(0, 28);
|
|
38
|
+
parts.push(local, name, compressed);
|
|
39
|
+
const entry = Buffer.alloc(46);
|
|
40
|
+
entry.writeUInt32LE(0x02014b50, 0);
|
|
41
|
+
entry.writeUInt16LE(20, 4);
|
|
42
|
+
entry.writeUInt16LE(20, 6);
|
|
43
|
+
entry.writeUInt16LE(0x0800, 8);
|
|
44
|
+
entry.writeUInt16LE(8, 10);
|
|
45
|
+
entry.writeUInt32LE(0, 12);
|
|
46
|
+
entry.writeUInt32LE(crc, 16);
|
|
47
|
+
entry.writeUInt32LE(compressed.length, 20);
|
|
48
|
+
entry.writeUInt32LE(file.data.length, 24);
|
|
49
|
+
entry.writeUInt16LE(name.length, 28);
|
|
50
|
+
entry.writeUInt32LE(offset, 42);
|
|
51
|
+
central.push(entry, name);
|
|
52
|
+
offset += local.length + name.length + compressed.length;
|
|
53
|
+
}
|
|
54
|
+
const directory = Buffer.concat(central);
|
|
55
|
+
const end = Buffer.alloc(22);
|
|
56
|
+
end.writeUInt32LE(0x06054b50, 0);
|
|
57
|
+
end.writeUInt16LE(files.length, 8);
|
|
58
|
+
end.writeUInt16LE(files.length, 10);
|
|
59
|
+
end.writeUInt32LE(directory.length, 12);
|
|
60
|
+
end.writeUInt32LE(offset, 16);
|
|
61
|
+
return Buffer.concat([...parts, directory, end]);
|
|
62
|
+
}
|
|
63
|
+
const XML_ESCAPES = { '&': '&', '<': '<', '>': '>', '"': '"' };
|
|
64
|
+
/** XML text: escaped, and without the control characters XML 1.0 forbids. */
|
|
65
|
+
const xml = (text) => text.replace(/[\u0000-\u0008\u000b\u000c\u000e-\u001f]/g, '').replace(/[&<>"]/g, (char) => XML_ESCAPES[char]);
|
|
66
|
+
/** `A`, …, `Z`, `AA`, … */
|
|
67
|
+
export function columnName(index) {
|
|
68
|
+
let name = '';
|
|
69
|
+
for (let n = index + 1; n > 0; n = Math.floor((n - 1) / 26))
|
|
70
|
+
name = String.fromCharCode(65 + ((n - 1) % 26)) + name;
|
|
71
|
+
return name;
|
|
72
|
+
}
|
|
73
|
+
/** Days since 1899-12-30 (Excel's serial date), in UTC. */
|
|
74
|
+
const serial = (date) => date.getTime() / 86_400_000 + 25569;
|
|
75
|
+
/** Excel's cell text limit. */
|
|
76
|
+
const MAX_TEXT = 32_767;
|
|
77
|
+
function cellXml(cell, ref, header) {
|
|
78
|
+
if (cell === null || cell === '')
|
|
79
|
+
return '';
|
|
80
|
+
if (typeof cell === 'number')
|
|
81
|
+
return Number.isFinite(cell) ? `<c r="${ref}"><v>${cell}</v></c>` : '';
|
|
82
|
+
if (typeof cell === 'string')
|
|
83
|
+
return `<c r="${ref}" t="inlineStr"${header ? ' s="1"' : ''}><is><t xml:space="preserve">${xml(cell.slice(0, MAX_TEXT))}</t></is></c>`;
|
|
84
|
+
return Number.isNaN(cell.date.getTime()) ? '' : `<c r="${ref}" s="${cell.time ? 3 : 2}"><v>${serial(cell.date)}</v></c>`;
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* A one-sheet workbook: the header row bold and frozen, then the rows. `rtl` shows the sheet right to left. Dates
|
|
88
|
+
* are written in UTC (callers shift them to the time they want shown).
|
|
89
|
+
*/
|
|
90
|
+
export function workbook(input) {
|
|
91
|
+
const width = input.header.length;
|
|
92
|
+
const rows = [input.header, ...input.rows].map((row, r) => {
|
|
93
|
+
const cells = Array.from({ length: width }, (_, c) => cellXml(row[c] ?? null, `${columnName(c)}${r + 1}`, r === 0)).join('');
|
|
94
|
+
return `<row r="${r + 1}">${cells}</row>`;
|
|
95
|
+
});
|
|
96
|
+
const widths = input.header.map((_, c) => `<col min="${c + 1}" max="${c + 1}" width="${columnWidth(input.header[c], input.rows.slice(0, 200).map((row) => row[c] ?? null))}" customWidth="1"/>`).join('');
|
|
97
|
+
const sheet = `<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
|
98
|
+
<worksheet xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main"><sheetViews><sheetView workbookViewId="0"${input.rtl ? ' rightToLeft="1"' : ''}><pane ySplit="1" topLeftCell="A2" activePane="bottomLeft" state="frozen"/></sheetView></sheetViews>${width > 0 ? `<cols>${widths}</cols>` : ''}<sheetData>${rows.join('')}</sheetData></worksheet>`;
|
|
99
|
+
const name = xml(input.sheet.replace(/[\\/?*[\]:]/g, ' ').slice(0, 31) || 'Sheet1');
|
|
100
|
+
const text = (value) => new TextEncoder().encode(value);
|
|
101
|
+
return zip([
|
|
102
|
+
{ name: '[Content_Types].xml', data: text('<?xml version="1.0" encoding="UTF-8" standalone="yes"?>\n<Types xmlns="http://schemas.openxmlformats.org/package/2006/content-types"><Default Extension="rels" ContentType="application/vnd.openxmlformats-package.relationships+xml"/><Default Extension="xml" ContentType="application/xml"/><Override PartName="/xl/workbook.xml" ContentType="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml"/><Override PartName="/xl/worksheets/sheet1.xml" ContentType="application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml"/><Override PartName="/xl/styles.xml" ContentType="application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml"/></Types>') },
|
|
103
|
+
{ name: '_rels/.rels', data: text('<?xml version="1.0" encoding="UTF-8" standalone="yes"?>\n<Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships"><Relationship Id="rId1" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument" Target="xl/workbook.xml"/></Relationships>') },
|
|
104
|
+
{ name: 'xl/workbook.xml', data: text(`<?xml version="1.0" encoding="UTF-8" standalone="yes"?>\n<workbook xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships"><sheets><sheet name="${name}" sheetId="1" r:id="rId1"/></sheets></workbook>`) },
|
|
105
|
+
{ name: 'xl/_rels/workbook.xml.rels', data: text('<?xml version="1.0" encoding="UTF-8" standalone="yes"?>\n<Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships"><Relationship Id="rId1" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/worksheet" Target="worksheets/sheet1.xml"/><Relationship Id="rId2" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles" Target="styles.xml"/></Relationships>') },
|
|
106
|
+
{ name: 'xl/styles.xml', data: text('<?xml version="1.0" encoding="UTF-8" standalone="yes"?>\n<styleSheet xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main"><numFmts count="1"><numFmt numFmtId="164" formatCode="yyyy-mm-dd hh:mm"/></numFmts><fonts count="2"><font><sz val="11"/><name val="Calibri"/></font><font><b/><sz val="11"/><name val="Calibri"/></font></fonts><fills count="2"><fill><patternFill patternType="none"/></fill><fill><patternFill patternType="gray125"/></fill></fills><borders count="1"><border><left/><right/><top/><bottom/><diagonal/></border></borders><cellStyleXfs count="1"><xf numFmtId="0" fontId="0" fillId="0" borderId="0"/></cellStyleXfs><cellXfs count="4"><xf numFmtId="0" fontId="0" fillId="0" borderId="0" xfId="0"/><xf numFmtId="0" fontId="1" fillId="0" borderId="0" xfId="0" applyFont="1"/><xf numFmtId="14" fontId="0" fillId="0" borderId="0" xfId="0" applyNumberFormat="1"/><xf numFmtId="164" fontId="0" fillId="0" borderId="0" xfId="0" applyNumberFormat="1"/></cellXfs></styleSheet>') },
|
|
107
|
+
{ name: 'xl/worksheets/sheet1.xml', data: text(sheet) },
|
|
108
|
+
]);
|
|
109
|
+
}
|
|
110
|
+
/** A column wide enough for its header and the first rows, between 8 and 60 characters. */
|
|
111
|
+
function columnWidth(header, cells) {
|
|
112
|
+
const length = (cell) => (cell === null ? 0 : typeof cell === 'string' ? cell.length : typeof cell === 'number' ? String(cell).length : cell.time ? 16 : 10);
|
|
113
|
+
return Math.min(60, Math.max(8, header.length + 2, ...cells.map((cell) => length(cell) + 2)));
|
|
114
|
+
}
|
|
115
|
+
//# sourceMappingURL=xlsx.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"xlsx.js","sourceRoot":"","sources":["../../src/export/xlsx.ts"],"names":[],"mappings":"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"}
|
|
@@ -228,6 +228,30 @@ let AdminHttpServer = class AdminHttpServer {
|
|
|
228
228
|
.add('GET', '/api/search', async ({ res, url, ctx }) => sendJson(res, 200, await this.api.search(url.searchParams, ctx)))
|
|
229
229
|
.add('GET', '/api/resources/:resource', async ({ res, url, ctx }, p) => sendJson(res, 200, await this.api.list(p.resource, url.searchParams, ctx)))
|
|
230
230
|
.add('GET', '/api/resources/:resource/fields/:field/options', async ({ res, url, ctx }, p) => sendJson(res, 200, await this.api.fieldOptions(p.resource, p.field, url.searchParams, ctx)))
|
|
231
|
+
.add('GET', '/api/resources/:resource/export', async ({ res, url, ctx }, p) => {
|
|
232
|
+
const out = await this.api.export(p.resource, url.searchParams, ctx);
|
|
233
|
+
res.statusCode = 200;
|
|
234
|
+
res.setHeader('Content-Type', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
|
|
235
|
+
res.setHeader('Content-Disposition', `attachment; filename="${out.filename}"`);
|
|
236
|
+
res.setHeader('Cache-Control', 'no-store');
|
|
237
|
+
res.setHeader('X-Content-Type-Options', 'nosniff');
|
|
238
|
+
if (out.truncated)
|
|
239
|
+
res.setHeader('X-Export-Truncated', String(out.rows));
|
|
240
|
+
res.end(out.file);
|
|
241
|
+
})
|
|
242
|
+
.add('GET', '/api/resources/:resource/print/:print', async ({ res, url, ctx }, p) => {
|
|
243
|
+
// Opened in a new tab, the page cannot send the UI's Accept-Language: `lang` names the UI's language.
|
|
244
|
+
const lang = url.searchParams.get('lang');
|
|
245
|
+
if (lang !== null && this.options.locales.includes(lang))
|
|
246
|
+
ctx.locale = lang;
|
|
247
|
+
const page = await this.api.print(p.resource, p.print, url.searchParams.getAll('id'), ctx);
|
|
248
|
+
res.statusCode = 200;
|
|
249
|
+
res.setHeader('Content-Type', 'text/html; charset=utf-8');
|
|
250
|
+
res.setHeader('Cache-Control', 'no-store');
|
|
251
|
+
res.setHeader('Content-Security-Policy', page.csp);
|
|
252
|
+
res.setHeader('X-Content-Type-Options', 'nosniff');
|
|
253
|
+
res.end(page.html);
|
|
254
|
+
})
|
|
231
255
|
.add('GET', '/api/resources/:resource/:id', async ({ res, ctx }, p) => sendJson(res, 200, await this.api.get(p.resource, p.id, ctx)))
|
|
232
256
|
.add('POST', '/api/resources/:resource', async ({ req, res, ctx }, p) => sendJson(res, 201, await this.api.create(p.resource, await readJsonBody(req), ctx)))
|
|
233
257
|
.add('PATCH', '/api/resources/:resource/:id', async ({ req, res, ctx }, p) => sendJson(res, 200, await this.api.update(p.resource, p.id, await readJsonBody(req), ctx, ifMatch(req))))
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"admin-http.server.js","sourceRoot":"","sources":["../../src/http/admin-http.server.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"admin-http.server.js","sourceRoot":"","sources":["../../src/http/admin-http.server.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAqB,MAAM,gBAAgB,CAAC;AAC9F,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAGzC,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EACL,oBAAoB,EACpB,UAAU,EACV,mBAAmB,EACnB,kBAAkB,EAClB,mBAAmB,EACnB,2BAA2B,EAC3B,yBAAyB,EACzB,8BAA8B,EAC9B,oBAAoB,GACrB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AACtE,OAAO,EAAE,eAAe,EAAE,MAAM,qCAAqC,CAAC;AACtE,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AACrE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAGjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACtE,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAEpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACpE,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAqB,MAAM,8BAA8B,CAAC;AACxG,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACrE,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAqB,MAAM,cAAc,CAAC;AACzE,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAWhD,kHAAkH;AAClH,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,CAAC,kBAAkB,EAAE,mBAAmB,CAAC,CAAC,CAAC;AAEzE,kIAAkI;AAClI,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;AAEvD,SAAS,iBAAiB,CAAC,MAA0B;IACnD,OAAO,MAAM,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,WAAW,EAAE,KAAK,kBAAkB,CAAC;AAC5E,CAAC;AAED,mHAAmH;AACnH,SAAS,UAAU,CAAC,KAAc;IAChC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,KAAK,IAAI,EAAE,CAAyC,CAAC;IAC/E,IAAI,IAAI,KAAK,qBAAqB;QAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,gCAAgC,EAAE,CAAC;IAC3H,IAAI,IAAI,KAAK,kBAAkB;QAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,2BAA2B,EAAE,CAAC;IACnH,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,IAAI,GAAG,IAAI,MAAM,GAAG,GAAG,EAAE,CAAC;QAChE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC;IAClH,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;;GAIG;AAEI,IAAM,eAAe,GAArB,MAAM,eAAe;IAOP,WAAW;IACX,GAAG;IACH,QAAQ;IACR,IAAI;IACJ,MAAM;IACN,IAAI;IACJ,KAAK;IACL,KAAK;IAEkB,OAAO;IAC9B,SAAS;IACT,UAAU;IAjBZ,MAAM,GAAG,IAAI,MAAM,CAAC,aAAa,CAAC,CAAC;IACnC,MAAM,GAAG,IAAI,MAAM,EAAgB,CAAC;IAC7C,EAAE,CAAY;IACL,YAAY,GAAG,IAAI,GAAG,EAAkB,CAAC;IAE1D,YACmB,WAA4B,EAC5B,GAAoB,EACpB,QAA0B,EAC1B,IAAsB,EACtB,MAAmB,EACnB,IAAe,EACf,KAAmB,EACnB,KAAiB,EAClC,WAAwB,EACgB,OAA6B,EACpD,SAA2B,EAC3B,UAA2B;2BAX3B,WAAW;mBACX,GAAG;wBACH,QAAQ;oBACR,IAAI;sBACJ,MAAM;oBACN,IAAI;qBACJ,KAAK;qBACL,KAAK;uBAEkB,OAAO;yBAC9B,SAAS;0BACT,UAAU;QAE3B,IAAI,CAAC,MAAM;aACR,GAAG,CAAC,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,EAAE,EAAE;YAC5D,IAAI,CAAC,SAAS;gBAAE,MAAM,IAAI,yBAAyB,EAAE,CAAC;YACtD,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,IAAI,CAAC,eAAe,CAAC,SAAS,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;QACxE,CAAC,CAAC;aACD,GAAG,CAAC,MAAM,EAAE,cAAc,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE;YACvD,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC;YACvC,IAAI,CAAC,KAAK;gBAAE,MAAM,IAAI,kBAAkB,CAAC,6CAA6C,CAAC,CAAC;YACxF,MAAM,IAAI,GAAG,MAAM,YAAY,CAAC,GAAG,CAAC,CAAC;YACrC,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAG,CAAC,IAAI,IAAI,EAAE,CAA8D,CAAC;YAC9G,MAAM,MAAM,GAA6B,EAAE,CAAC;YAC5C,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,QAAQ,CAAC,MAAM,GAAG,GAAG;gBAAE,MAAM,CAAC,QAAQ,GAAG,CAAC,aAAa,CAAC,CAAC;YACvH,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,QAAQ,KAAK,EAAE,IAAI,QAAQ,CAAC,MAAM,GAAG,IAAI;gBAAE,MAAM,CAAC,QAAQ,GAAG,CAAC,aAAa,CAAC,CAAC;YACjH,IAAI,GAAG,KAAK,SAAS,IAAI,CAAC,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC;gBAAE,MAAM,CAAC,GAAG,GAAG,CAAC,gBAAgB,CAAC,CAAC;YACvG,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC;gBAAE,MAAM,IAAI,oBAAoB,CAAC,MAAM,CAAC,CAAC;YAC3E,MAAM,KAAK,GAAG,EAAE,QAAQ,EAAG,QAAmB,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,QAAkB,EAAE,GAAG,CAAC,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;YACpK,IAAI,SAAyB,CAAC;YAC9B,IAAI,CAAC;gBACH,SAAS,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;YACvE,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,wGAAwG;gBACxG,2GAA2G;gBAC3G,kEAAkE;gBAClE,qFAAqF;gBACrF,MAAM,SAAS,GAAG,KAAK,YAAY,2BAA2B,IAAI,KAAK,CAAC,GAAG,KAAK,SAAS,CAAC;gBAC1F,IAAI,KAAK,YAAY,yBAAyB,IAAI,KAAK,YAAY,mBAAmB,IAAI,SAAS,EAAE,CAAC;oBACpG,MAAM,OAAO,GAAG,KAAK,YAAY,mBAAmB,CAAC;oBACrD,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAE,KAAoB,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;gBAChJ,CAAC;gBACD,MAAM,KAAK,CAAC;YACd,CAAC;YACD,MAAM,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,aAAa,EAAE,GAAG,CAAC,aAAa,EAAE,IAAI,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC;YACvI,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,CAAC;QAC5D,CAAC,CAAC;aACD,GAAG,CAAC,QAAQ,EAAE,cAAc,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,EAAE,EAAE;YACpE,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;YAClC,IAAI,CAAC,OAAO,EAAE,MAAM;gBAAE,MAAM,IAAI,kBAAkB,CAAC,4BAA4B,CAAC,CAAC;YACjF,MAAM,OAAO,CAAC,MAAM,CAAC,SAAU,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;YAC/C,MAAM,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,QAAQ,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,aAAa,EAAE,GAAG,CAAC,aAAa,EAAE,IAAI,EAAE,SAAU,CAAC,IAAI,EAAE,CAAC,CAAC;YACzI,GAAG,CAAC,UAAU,GAAG,GAAG,CAAC;YACrB,GAAG,CAAC,GAAG,EAAE,CAAC;QACZ,CAAC,CAAC;aACD,GAAG,CAAC,KAAK,EAAE,uBAAuB,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,SAAS,EAAE,EAAE,EAAE;YAChE,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;YAClC,IAAI,CAAC,OAAO,EAAE,YAAY;gBAAE,MAAM,IAAI,kBAAkB,CAAC,mCAAmC,CAAC,CAAC;YAC9F,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,YAAY,CAAC,SAAU,CAAC,CAAC;YACxD,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE;gBACjB,KAAK,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;oBAChC,EAAE,EAAE,OAAO,CAAC,EAAE;oBACd,OAAO,EAAE,OAAO,CAAC,EAAE,KAAK,SAAU,CAAC,SAAS;oBAC5C,SAAS,EAAE,OAAO,CAAC,SAAS,CAAC,WAAW,EAAE;oBAC1C,UAAU,EAAE,OAAO,CAAC,UAAU,CAAC,WAAW,EAAE;oBAC5C,SAAS,EAAE,OAAO,CAAC,SAAS,CAAC,WAAW,EAAE;oBAC1C,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC9D,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBAC1C,CAAC,CAAC;aACJ,CAAC,CAAC;QACL,CAAC,CAAC;aACD,GAAG,CAAC,QAAQ,EAAE,uBAAuB,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,EAAE,EAAE;YACxE,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;YAClC,IAAI,CAAC,OAAO,EAAE,mBAAmB;gBAAE,MAAM,IAAI,kBAAkB,CAAC,sCAAsC,CAAC,CAAC;YACxG,MAAM,OAAO,CAAC,mBAAmB,CAAC,SAAU,CAAC,CAAC;YAC9C,MAAM,IAAI,CAAC,YAAY,CAAC,uBAAuB,EAAE,SAAU,EAAE,GAAG,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC;YAC1F,GAAG,CAAC,UAAU,GAAG,GAAG,CAAC;YACrB,GAAG,CAAC,GAAG,EAAE,CAAC;QACZ,CAAC,CAAC;aACD,GAAG,CAAC,QAAQ,EAAE,2BAA2B,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE;YAC/E,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;YAClC,IAAI,CAAC,OAAO,EAAE,aAAa;gBAAE,MAAM,IAAI,kBAAkB,CAAC,gCAAgC,CAAC,CAAC;YAC5F,MAAM,OAAO,CAAC,aAAa,CAAC,SAAU,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;YAC9C,MAAM,IAAI,CAAC,YAAY,CAAC,uBAAuB,EAAE,SAAU,EAAE,GAAG,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;YACvF,GAAG,CAAC,UAAU,GAAG,GAAG,CAAC;YACrB,GAAG,CAAC,GAAG,EAAE,CAAC;QACZ,CAAC,CAAC;aACD,GAAG,CAAC,MAAM,EAAE,uBAAuB,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,EAAE,EAAE;YAC3E,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;YAClC,IAAI,CAAC,OAAO,EAAE,cAAc;gBAAE,MAAM,IAAI,kBAAkB,CAAC,oCAAoC,CAAC,CAAC;YACjG,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC,MAAM,YAAY,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAA0C,CAAC;YACrG,MAAM,MAAM,GAA6B,EAAE,CAAC;YAC5C,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,EAAE,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI;gBAAE,MAAM,CAAC,OAAO,GAAG,CAAC,aAAa,CAAC,CAAC;YAC7G,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,EAAE,IAAI,IAAI,CAAC,MAAM,GAAG,IAAI;gBAAE,MAAM,CAAC,IAAI,GAAG,CAAC,aAAa,CAAC,CAAC;YACjG,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC;gBAAE,MAAM,IAAI,oBAAoB,CAAC,MAAM,CAAC,CAAC;YAC3E,MAAM,OAAO,CAAC,cAAc,CAAC,SAAU,EAAE,EAAE,OAAO,EAAE,OAAiB,EAAE,IAAI,EAAE,IAAc,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;YAC7G,MAAM,IAAI,CAAC,YAAY,CAAC,uBAAuB,EAAE,SAAU,EAAE,GAAG,CAAC,CAAC;YAClE,GAAG,CAAC,UAAU,GAAG,GAAG,CAAC;YACrB,GAAG,CAAC,GAAG,EAAE,CAAC;QACZ,CAAC,CAAC;aACD,GAAG,CAAC,KAAK,EAAE,kBAAkB,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,SAAS,EAAE,EAAE,EAAE;YAC3D,MAAM,MAAM,GAA4B,MAAM,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,SAAU,CAAC,CAAC;YACpH,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,iBAAiB,EAAE,MAAM,CAAC,iBAAiB,EAAE,CAAC,CAAC;QAC/F,CAAC,CAAC;aACD,GAAG,CAAC,MAAM,EAAE,wBAAwB,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,SAAS,EAAE,EAAE,EAAE;YAClE,MAAM,KAAK,GAA2B,MAAM,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,SAAU,CAAC,CAAC;YACjH,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC;QAC7E,CAAC,CAAC;aACD,GAAG,CAAC,MAAM,EAAE,0BAA0B,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,EAAE,EAAE;YAC9E,MAAM,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC,MAAM,YAAY,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAuB,CAAC;YACzE,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,IAAI,CAAC,MAAM,GAAG,EAAE;gBAAE,MAAM,IAAI,oBAAoB,CAAC,EAAE,IAAI,EAAE,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;YAClI,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,SAAU,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;YAClI,MAAM,IAAI,CAAC,YAAY,CAAC,yBAAyB,EAAE,SAAU,EAAE,GAAG,CAAC,CAAC;YACpE,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,aAAa,EAAE,CAAC,CAAC;QACxC,CAAC,CAAC;aACD,GAAG,CAAC,MAAM,EAAE,0BAA0B,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,EAAE,EAAE;YAC9E,MAAM,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,SAAU,EAAE,MAAM,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;YACpG,MAAM,IAAI,CAAC,YAAY,CAAC,0BAA0B,EAAE,SAAU,EAAE,GAAG,CAAC,CAAC;YACrE,GAAG,CAAC,UAAU,GAAG,GAAG,CAAC;YACrB,GAAG,CAAC,GAAG,EAAE,CAAC;QACZ,CAAC,CAAC;aACD,GAAG,CAAC,MAAM,EAAE,iCAAiC,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,EAAE,EAAE;YACrF,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;YAClC,IAAI,CAAC,OAAO,EAAE,gBAAgB;gBAAE,MAAM,IAAI,kBAAkB,CAAC,wCAAwC,CAAC,CAAC;YACvG,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,OAAO,CAAC,gBAAgB,CAAC,SAAU,EAAE,MAAM,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;YAC5F,MAAM,IAAI,CAAC,YAAY,CAAC,iCAAiC,EAAE,SAAU,EAAE,GAAG,CAAC,CAAC;YAC5E,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,aAAa,EAAE,CAAC,CAAC;QACxC,CAAC,CAAC;aACD,GAAG,CAAC,KAAK,EAAE,WAAW,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;aAC7F,GAAG,CAAC,KAAK,EAAE,+BAA+B,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;aAClI,GAAG,CAAC,KAAK,EAAE,qCAAqC,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,QAAS,EAAE,GAAG,CAAC,CAAC,CAAC;aAC5I,GAAG,CAAC,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC,CAAC;aACxH,GAAG,CAAC,KAAK,EAAE,0BAA0B,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CACrE,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,EAAE,GAAG,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC,CAC3E;aACA,GAAG,CAAC,KAAK,EAAE,gDAAgD,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAC3F,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,KAAK,EAAE,GAAG,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC,CAC5F;aACA,GAAG,CAAC,KAAK,EAAE,iCAAiC,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE;YAC5E,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,QAAS,EAAE,GAAG,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC;YACtE,GAAG,CAAC,UAAU,GAAG,GAAG,CAAC;YACrB,GAAG,CAAC,SAAS,CAAC,cAAc,EAAE,mEAAmE,CAAC,CAAC;YACnG,GAAG,CAAC,SAAS,CAAC,qBAAqB,EAAE,yBAAyB,GAAG,CAAC,QAAQ,GAAG,CAAC,CAAC;YAC/E,GAAG,CAAC,SAAS,CAAC,eAAe,EAAE,UAAU,CAAC,CAAC;YAC3C,GAAG,CAAC,SAAS,CAAC,wBAAwB,EAAE,SAAS,CAAC,CAAC;YACnD,IAAI,GAAG,CAAC,SAAS;gBAAE,GAAG,CAAC,SAAS,CAAC,oBAAoB,EAAE,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;YACzE,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACpB,CAAC,CAAC;aACD,GAAG,CAAC,KAAK,EAAE,uCAAuC,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE;YAClF,sGAAsG;YACtG,MAAM,IAAI,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YAC1C,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC;gBAAE,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC;YAC5E,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,QAAS,EAAE,CAAC,CAAC,KAAM,EAAE,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;YAC7F,GAAG,CAAC,UAAU,GAAG,GAAG,CAAC;YACrB,GAAG,CAAC,SAAS,CAAC,cAAc,EAAE,0BAA0B,CAAC,CAAC;YAC1D,GAAG,CAAC,SAAS,CAAC,eAAe,EAAE,UAAU,CAAC,CAAC;YAC3C,GAAG,CAAC,SAAS,CAAC,yBAAyB,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;YACnD,GAAG,CAAC,SAAS,CAAC,wBAAwB,EAAE,SAAS,CAAC,CAAC;YACnD,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrB,CAAC,CAAC;aACD,GAAG,CAAC,KAAK,EAAE,8BAA8B,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CACpE,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAC9D;aACA,GAAG,CAAC,MAAM,EAAE,0BAA0B,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CACtE,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,EAAE,MAAM,YAAY,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,CACpF;aACA,GAAG,CAAC,OAAO,EAAE,8BAA8B,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAC3E,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,MAAM,YAAY,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CACxG;aACA,GAAG,CAAC,MAAM,EAAE,sCAAsC,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAClF,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,EAAE,MAAM,YAAY,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,CACxF;aACA,GAAG,CAAC,MAAM,EAAE,sCAAsC,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAC7E,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAClE;YACD,iHAAiH;aAChH,GAAG,CAAC,MAAM,EAAE,0CAA0C,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CACtF,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,MAAM,YAAY,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,CACjG;aACA,GAAG,CAAC,QAAQ,EAAE,8BAA8B,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE;YACjF,MAAM,KAAK,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAC5C,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,MAAM;gBAAE,MAAM,IAAI,oBAAoB,CAAC,oBAAoB,CAAC,CAAC;YAC7F,IAAI,KAAK,KAAK,MAAM;gBAAE,MAAM,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;;gBAC3E,MAAM,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;YAChE,GAAG,CAAC,UAAU,GAAG,GAAG,CAAC;YACrB,GAAG,CAAC,GAAG,EAAE,CAAC;QACZ,CAAC,CAAC,CAAC;QACL,aAAa,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;QAClD,aAAa,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;QAC9C,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,CAAC;QACrD,aAAa,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;QAC9C,kBAAkB,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;QAC/D,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,iBAAiB,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,IAAI,CAAC,UAAU,CAAC,SAAS,CAAE,CAAC,CAAC,MAAM,YAAY,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAA0B,CAAC,MAAM,IAAI,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;QAC7M,aAAa,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;IACnJ,CAAC;IAED;;;OAGG;IACK,YAAY,CAAC,KAAa,EAAE,SAAyB,EAAE,GAAiB,EAAE,IAAI,GAAc,EAAE;QACpG,MAAM,EAAE,IAAI,EAAE,GAAG,SAAS,CAAC;QAC3B,OAAO,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,EAAE,GAAG,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,EAAE,aAAa,EAAE,GAAG,CAAC,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;IACxL,CAAC;IAED,+DAA+D;IACvD,SAAS,CAA2F,IAAO;QACjH,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC;QACzC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS,IAAI,CAAC,MAAM;YAAE,MAAM,IAAI,kBAAkB,CAAC,sCAAsC,CAAC,CAAC;QACvH,OAAO,MAA0C,CAAC;IACpD,CAAC;IAED;;;OAGG;IACK,KAAK,CAAC,MAAM,CAAC,SAAyB,EAAE,MAAyB,EAAE,KAAa,EAAE,GAAiB;QACzG,IAAI,KAAK,KAAK,qBAAqB;YAAE,OAAO,SAAS,CAAC;QACtD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW;YAAE,MAAM,IAAI,mBAAmB,CAAC,oDAAoD,CAAC,CAAC;QACrH,IAAI,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAE,CAAC,UAAU,CAAC,cAAc,CAAC;YAAE,MAAM,IAAI,mBAAmB,CAAC,6DAA6D,CAAC,CAAC;QAClJ,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC;YAAE,MAAM,IAAI,mBAAmB,CAAC,sCAAsC,CAAC,CAAC;QACrG,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;QACtE,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC;QAC3C,IAAI,CAAC,OAAO;YAAE,MAAM,IAAI,kBAAkB,CAAC,iCAAiC,CAAC,CAAC;QAC9E,MAAM,MAAM,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QAC/F,IAAI,CAAC,MAAM;YAAE,MAAM,IAAI,kBAAkB,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;QACpE,MAAM,GAAG,GAAG,GAAG,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC;QAChE,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,yGAAyG;QACzG,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,GAAG,GAAG,SAAS,EAAE,CAAC;YACxD,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YAChC,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;gBACvB,MAAM,KAAK,GAAG,EAAE,KAAK,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,WAAW,EAAE,IAAI,EAAE,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC7H,MAAM,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,KAAK,EAAE,EAAE,aAAa,EAAE,GAAG,CAAC,aAAa,EAAE,IAAI,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC;YAClG,CAAC;;gBAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,iCAAiC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QAChH,CAAC;QACD,GAAG,CAAC,MAAM,GAAG,EAAE,EAAE,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC;QACpC,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,SAAS,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;IAC9F,CAAC;IAEO,KAAK,CAAC,eAAe,CAAC,SAAyB,EAAE,MAA+B;QACtF,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAC9D,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;QAClC,OAAO;YACL,IAAI,EAAE,aAAa,CAAC,SAAS,CAAC,IAAI,CAAC;YACnC,GAAG,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,SAAS,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAClE,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,KAAK,SAAS;YACrC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,YAAY;YAC5B,IAAI,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,WAAW,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,IAAI,WAAW,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE;YACvJ,KAAK,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,WAAW,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE;YACjG,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,CAAC,MAAM,IAAI,WAAW,CAAC,GAAG,CAAC,mBAAmB,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAClJ,kBAAkB,EAAE,IAAI,CAAC,IAAI,CAAC,kBAAkB;YAChD,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAChE,CAAC;IACJ,CAAC;IAED,YAAY;QACV,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC;QAC7C,IAAI,CAAC,OAAO;YAAE,OAAO,CAAC,mDAAmD;QACzE,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;QAC/B,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACvB,MAAM,IAAI,KAAK,CAAC,uBAAuB,IAAI,mEAAmE,CAAC,CAAC;QAClH,CAAC;QACD,IAAI,CAAC,EAAE,GAAG,IAAI,QAAQ,CACpB,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,aAAa,EAAE,EAC1C;YACE,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI;YAC3B,OAAO,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,MAAM;YACnC,KAAK,EAAE,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;YAChF,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM;YAC3B,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO;YAC7B,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,QAA0C;YACjE,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACtE,EACD,EAAE,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAC9B,CAAC;QACF,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,GAAiB,EAAE,GAAmB,EAAE,IAA+B,EAAE,EAAE;YACzG,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;gBACnD,MAAM,aAAa,GAAG,UAAU,EAAE,CAAC;gBACnC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,aAAa,4BAA4B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;gBAC1I,IAAI,GAAG,CAAC,WAAW,EAAE,CAAC;oBACpB,GAAG,CAAC,GAAG,EAAE,CAAC;oBACV,OAAO;gBACT,CAAC;gBACD,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,CAAC,CAAC;YACrF,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QACH,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,KAAc,EAAE,GAAiB,EAAE,GAAmB,EAAE,IAA+B,EAAE,EAAE;YACzH,IAAI,GAAG,CAAC,WAAW,EAAE,CAAC;gBACpB,IAAI,CAAC,KAAK,CAAC,CAAC;gBACZ,OAAO;YACT,CAAC;YACD,MAAM,aAAa,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC,aAAa,CAAC;YAC5D,IAAI,KAAK,YAAY,UAAU,IAAI,KAAK,YAAY,aAAa,EAAE,CAAC;gBAClE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,eAAe,CAAC,KAAK,EAAE,aAAa,EAAE,IAAI,CAAC,MAAM,EAAE,EAAE,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;gBACvH,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;gBAC5B,OAAO;YACT,CAAC;YACD,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;YAChC,IAAI,KAAK,EAAE,CAAC;gBACV,QAAQ,CAAC,GAAG,EAAE,KAAK,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,aAAa,EAAE,CAAC,CAAC;gBACzF,OAAO;YACT,CAAC;YACD,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,eAAe,CAAC,KAAK,EAAE,aAAa,EAAE,IAAI,CAAC,MAAM,EAAE,EAAE,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;YACvH,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;QAC9B,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,oBAAoB,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;IAC3D,CAAC;IAEO,KAAK,CAAC,MAAM,CAAC,GAAiB,EAAE,GAAmB,EAAE,IAA+B;QAC1F,IAAI,GAA6B,CAAC;QAClC,IAAI,YAAgC,CAAC;QACrC,IAAI,CAAC;YACH,GAAG,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC;YAC9B,kGAAkG;YAClG,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,qBAAqB,GAAG,CAAC,GAAG,IAAI,GAAG,EAAE,CAAC,CAAC;YAC3D,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;YACtD,IAAI,QAAQ,KAAK,MAAM,IAAI,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;gBACxD,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,IAAI,KAAK,EAAE,QAAQ,CAAC,CAAC;gBAC/D,IAAI,CAAC,KAAK;oBAAE,MAAM,IAAI,kBAAkB,CAAC,0BAA0B,GAAG,CAAC,MAAM,IAAI,QAAQ,EAAE,CAAC,CAAC;gBAC7F,iHAAiH;gBACjH,2FAA2F;gBAC3F,MAAM,KAAK,GAAG,GAAG,GAAG,CAAC,MAAM,IAAI,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC;gBAC9D,IAAI,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,IAAI,EAAE,CAAC,IAAI,KAAK,KAAK,YAAY,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC;oBACpH,MAAM,IAAI,8BAA8B,CAAC,uCAAuC,CAAC,CAAC;gBACpF,CAAC;gBACD,YAAY,GAAG,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC;gBACrC,mGAAmG;gBACnG,IAAI,SAAqC,CAAC;gBAC1C,IAAI,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC;oBAAE,SAAS,GAAG,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,SAAS,CAAC;;oBACnF,SAAS,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;gBAC9C,IAAI,SAAS,IAAI,GAAG,CAAC,OAAO,CAAC,WAAW,CAAC,KAAK,SAAS;oBAAE,SAAS,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,GAAG,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;gBACxI,GAAG,CAAC,IAAI,GAAG,SAAS,EAAE,IAAI,CAAC;gBAC3B,IAAI,SAAS;oBAAE,GAAG,CAAC,WAAW,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;gBAC3E,uEAAuE;gBACvE,GAAG,CAAC,MAAM,GAAG,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,iBAAiB,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;gBACnG,GAAG,CAAC,SAAS,CAAC,kBAAkB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;gBAC9C,GAAG,CAAC,SAAS,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;gBACzC,MAAM,UAAU,GAAG,GAAG,CAAC,CAAC,8CAA8C;gBACtE,MAAM,iBAAiB,CAAC,UAAU,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,UAAU,EAAE,SAAS,EAAE,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;gBACtH,OAAO;YACT,CAAC;YACD,IAAI,GAAG,CAAC,MAAM,KAAK,KAAK,IAAI,GAAG,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;gBAClD,IAAI,EAAE,CAAC;gBACP,OAAO;YACT,CAAC;YACD,IAAI,CAAC,EAAG,CAAC,KAAK,CAAC,QAAQ,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QACrC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,aAAa,GAAG,GAAG,EAAE,aAAa,IAAI,SAAS,CAAC;YACtD,IAAI,GAAG,CAAC,WAAW,EAAE,CAAC;gBACpB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,aAAa,mCAAmC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;gBACvF,GAAG,CAAC,GAAG,EAAE,CAAC;gBACV,OAAO;YACT,CAAC;YACD,IAAI,KAAK,YAAY,mBAAmB;gBAAE,GAAG,CAAC,SAAS,CAAC,aAAa,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;YACzH,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,eAAe,CAAC,KAAK,EAAE,aAAa,EAAE,IAAI,CAAC,MAAM,EAAE;gBAC1E,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,SAAS;gBAC7E,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,WAAW;gBACrC,QAAQ,EAAE,GAAG,CAAC,MAAM,KAAK,QAAQ;aAClC,CAAC,CAAC;YACH,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC;CACF,CAAA;AAlXY,eAAe;IAD3B,UAAU,EAAE;IAiBR,WAAA,MAAM,CAAC,aAAa,CAAC,CAAA;qCATQ,eAAe;QACvB,eAAe;QACV,gBAAgB;QACpB,gBAAgB;QACd,WAAW;QACb,SAAS;QACR,YAAY;QACZ,UAAU;QACrB,WAAW,UAEI,gBAAgB;QACf,eAAe;GAlBnC,eAAe,CAkX3B;;AAED,yEAAyE;AACzE,KAAK,UAAU,UAAU,CAAC,GAAiB;IACzC,MAAM,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC,MAAM,YAAY,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAA2B,CAAC;IACjF,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,QAAQ,KAAK,EAAE,IAAI,QAAQ,CAAC,MAAM,GAAG,IAAI;QAAE,MAAM,IAAI,oBAAoB,CAAC,EAAE,QAAQ,EAAE,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;IAC7I,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,gGAAgG;AAChG,SAAS,OAAO,CAAC,GAAiB;IAChC,MAAM,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IACvC,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAC3C,MAAM,KAAK,GAAG,gCAAgC,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IACvG,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,oBAAoB,CAAC,6CAA6C,CAAC,CAAC;IAC1F,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1B,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -12,6 +12,8 @@ export type { RegisteredInline } from './inlines/inline-config.js';
|
|
|
12
12
|
export { AdminContext } from './resource/admin-context.js';
|
|
13
13
|
export { AdminCan, AdminScope, type RecordOperation, type ScopeCondition } from './decorators/admin-scope.js';
|
|
14
14
|
export { AdminAction, type ActionOutcome, type AdminActionOptions } from './decorators/admin-action.js';
|
|
15
|
+
export { AdminPrint, type AdminPrintOptions } from './decorators/admin-print.js';
|
|
16
|
+
export { html, raw, escapeHtml, HtmlString } from './print/html.js';
|
|
15
17
|
export { AdminSettingsPage, type AdminSettingsPageOptions, type AdminSettingsSource } from './decorators/admin-settings-page.js';
|
|
16
18
|
export type { FieldRule, ResourceOperation, RoleDefinition, ScopedOperation } from './policy/roles.js';
|
|
17
19
|
export { ADMIN_RBAC_ENTITIES, NmaGroup, NmaGroupMember, NmaGroupRole, NmaRole, NmaUserRole } from './rbac/entities.js';
|
package/dist/index.js
CHANGED
|
@@ -7,6 +7,8 @@ export { AdminField, BADGE_COLORS, WIDGETS } from './decorators/admin-field.js';
|
|
|
7
7
|
export { AdminContext } from './resource/admin-context.js';
|
|
8
8
|
export { AdminCan, AdminScope } from './decorators/admin-scope.js';
|
|
9
9
|
export { AdminAction } from './decorators/admin-action.js';
|
|
10
|
+
export { AdminPrint } from './decorators/admin-print.js';
|
|
11
|
+
export { html, raw, escapeHtml, HtmlString } from './print/html.js';
|
|
10
12
|
export { AdminSettingsPage } from './decorators/admin-settings-page.js';
|
|
11
13
|
export { ADMIN_RBAC_ENTITIES, NmaGroup, NmaGroupMember, NmaGroupRole, NmaRole, NmaUserRole } from './rbac/entities.js';
|
|
12
14
|
export { ADMIN_FILE_ENTITIES, NmaFile } from './files/entities.js';
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAGhD,OAAO,EAAE,gBAAgB,EAAiD,MAAM,iCAAiC,CAAC;AAElH,OAAO,EAAE,UAAU,EAA0B,MAAM,6BAA6B,CAAC;AACjF,OAAO,EAAE,aAAa,EAA6B,MAAM,gCAAgC,CAAC;AAC1F,OAAO,EACL,iBAAiB,GAalB,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,OAAO,EAAmF,MAAM,6BAA6B,CAAC;AAGjK,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EAAE,QAAQ,EAAE,UAAU,EAA6C,MAAM,6BAA6B,CAAC;AAC9G,OAAO,EAAE,WAAW,EAA+C,MAAM,8BAA8B,CAAC;AACxG,OAAO,EAAE,iBAAiB,EAA2D,MAAM,qCAAqC,CAAC;AAEjI,OAAO,EAAE,mBAAmB,EAAE,QAAQ,EAAE,cAAc,EAAE,YAAY,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACvH,OAAO,EAAE,mBAAmB,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,aAAa,EAAkB,MAAM,qBAAqB,CAAC;AAG1F,OAAO,EAAE,UAAU,EAAkD,MAAM,gCAAgC,CAAC;AAE5G,OAAO,EAAE,YAAY,EAA+C,MAAM,oBAAoB,CAAC;AAC/F,OAAO,EAAE,SAAS,EAAyB,MAAM,uBAAuB,CAAC;AACzE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAGlD,OAAO,EACL,oBAAoB,EACpB,kBAAkB,EAClB,UAAU,EACV,eAAe,EACf,mBAAmB,EACnB,yBAAyB,EACzB,kBAAkB,EAClB,mBAAmB,EACnB,2BAA2B,EAC3B,yBAAyB,EACzB,oBAAoB,GACrB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,SAAS,GAYV,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,YAAY,EAAE,eAAe,EAAsB,MAAM,mBAAmB,CAAC;AACxH,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,UAAU,EAAiD,MAAM,uBAAuB,CAAC;AAE3H,OAAO,EAAE,WAAW,EAAmD,MAAM,8BAA8B,CAAC;AAC5G,OAAO,EAAE,sBAAsB,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAGhD,OAAO,EAAE,gBAAgB,EAAiD,MAAM,iCAAiC,CAAC;AAElH,OAAO,EAAE,UAAU,EAA0B,MAAM,6BAA6B,CAAC;AACjF,OAAO,EAAE,aAAa,EAA6B,MAAM,gCAAgC,CAAC;AAC1F,OAAO,EACL,iBAAiB,GAalB,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,OAAO,EAAmF,MAAM,6BAA6B,CAAC;AAGjK,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EAAE,QAAQ,EAAE,UAAU,EAA6C,MAAM,6BAA6B,CAAC;AAC9G,OAAO,EAAE,WAAW,EAA+C,MAAM,8BAA8B,CAAC;AACxG,OAAO,EAAE,UAAU,EAA0B,MAAM,6BAA6B,CAAC;AACjF,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AACpE,OAAO,EAAE,iBAAiB,EAA2D,MAAM,qCAAqC,CAAC;AAEjI,OAAO,EAAE,mBAAmB,EAAE,QAAQ,EAAE,cAAc,EAAE,YAAY,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACvH,OAAO,EAAE,mBAAmB,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,aAAa,EAAkB,MAAM,qBAAqB,CAAC;AAG1F,OAAO,EAAE,UAAU,EAAkD,MAAM,gCAAgC,CAAC;AAE5G,OAAO,EAAE,YAAY,EAA+C,MAAM,oBAAoB,CAAC;AAC/F,OAAO,EAAE,SAAS,EAAyB,MAAM,uBAAuB,CAAC;AACzE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAGlD,OAAO,EACL,oBAAoB,EACpB,kBAAkB,EAClB,UAAU,EACV,eAAe,EACf,mBAAmB,EACnB,yBAAyB,EACzB,kBAAkB,EAClB,mBAAmB,EACnB,2BAA2B,EAC3B,yBAAyB,EACzB,oBAAoB,GACrB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,SAAS,GAYV,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,YAAY,EAAE,eAAe,EAAsB,MAAM,mBAAmB,CAAC;AACxH,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,UAAU,EAAiD,MAAM,uBAAuB,CAAC;AAE3H,OAAO,EAAE,WAAW,EAAmD,MAAM,8BAA8B,CAAC;AAC5G,OAAO,EAAE,sBAAsB,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC"}
|
|
@@ -51,6 +51,10 @@ export declare class AdminPolicy implements OnApplicationBootstrap {
|
|
|
51
51
|
* (`{resource}.*` covers it), and for a record action `{resource}.update` too, since it changes records. Records
|
|
52
52
|
* narrow it (`_perm.actions`).
|
|
53
53
|
*/
|
|
54
|
+
/** Printing a template: the resource reached and viewable, and `<resource>.print.<name>`. */
|
|
55
|
+
canPrint(entry: RegisteredResource, name: string, ctx: AdminContext): boolean;
|
|
56
|
+
/** Exporting the list: `list.export` set, the resource viewable, and `<resource>.export`. */
|
|
57
|
+
canExport(entry: RegisteredResource, ctx: AdminContext): boolean;
|
|
54
58
|
canRunAction(entry: RegisteredResource, action: Pick<RegisteredAction, 'name' | 'target'>, ctx: AdminContext): boolean;
|
|
55
59
|
/** 404 without any access to the resource, 403 without the action (or, for a record action, without `update`). */
|
|
56
60
|
requireAction(entry: RegisteredResource, action: Pick<RegisteredAction, 'name' | 'target'>, label: string, ctx: AdminContext): void;
|
|
@@ -25,6 +25,7 @@ import { ResourceRegistry } from '../registry/resource-registry.js';
|
|
|
25
25
|
import { createAdminContext } from '../resource/admin-context.js';
|
|
26
26
|
import { AdminRbac } from '../rbac/rbac.service.js';
|
|
27
27
|
import { buildCatalog, customCodes } from './catalog.js';
|
|
28
|
+
import { printCode } from '../decorators/admin-print.js';
|
|
28
29
|
import { EffectivePermissions } from './effective.js';
|
|
29
30
|
import { explainPermissions } from './explain.js';
|
|
30
31
|
import { RESOURCE_OPERATIONS, actionCode, checkRoles } from './roles.js';
|
|
@@ -153,6 +154,16 @@ let AdminPolicy = class AdminPolicy {
|
|
|
153
154
|
* (`{resource}.*` covers it), and for a record action `{resource}.update` too, since it changes records. Records
|
|
154
155
|
* narrow it (`_perm.actions`).
|
|
155
156
|
*/
|
|
157
|
+
/** Printing a template: the resource reached and viewable, and `<resource>.print.<name>`. */
|
|
158
|
+
canPrint(entry, name, ctx) {
|
|
159
|
+
const perms = this.permissionsOf(ctx);
|
|
160
|
+
return entry.prints.has(name) && perms.canOn(entry.schema.name, 'view') && perms.can(printCode(entry.schema.name, name));
|
|
161
|
+
}
|
|
162
|
+
/** Exporting the list: `list.export` set, the resource viewable, and `<resource>.export`. */
|
|
163
|
+
canExport(entry, ctx) {
|
|
164
|
+
const perms = this.permissionsOf(ctx);
|
|
165
|
+
return entry.export !== undefined && perms.canOn(entry.schema.name, 'view') && perms.can(`${entry.schema.name}.export`);
|
|
166
|
+
}
|
|
156
167
|
canRunAction(entry, action, ctx) {
|
|
157
168
|
const perms = this.permissionsOf(ctx);
|
|
158
169
|
if (!perms.canReach(entry.schema.name) || !perms.can(actionCode(entry.schema.name, action.name)))
|
|
@@ -273,8 +284,9 @@ let AdminPolicy = class AdminPolicy {
|
|
|
273
284
|
fields: schema.fields.filter((field) => visible(field.name)),
|
|
274
285
|
related: schema.related.filter((related) => perms.canOn(related.resource, 'view')),
|
|
275
286
|
actions: schema.actions.filter((action) => this.canRunAction(entry, action, ctx)),
|
|
287
|
+
prints: schema.prints.filter((print) => this.canPrint(entry, print.name, ctx)),
|
|
276
288
|
list: {
|
|
277
|
-
...schema.list,
|
|
289
|
+
...withoutExport(schema.list, this.canExport(entry, ctx)),
|
|
278
290
|
columns: keep(schema.list.columns, visible),
|
|
279
291
|
sortable: keep(schema.list.sortable, visible),
|
|
280
292
|
// Sorting by a hidden field would reveal its order.
|
|
@@ -662,4 +674,11 @@ export function actionLabel(action, record, locale, defaultLocale) {
|
|
|
662
674
|
const label = action.labelFor(record);
|
|
663
675
|
return label === null ? null : resolveText(label, locale, defaultLocale);
|
|
664
676
|
}
|
|
677
|
+
/** The list without `export`, for a viewer who may not export. */
|
|
678
|
+
function withoutExport(list, keep) {
|
|
679
|
+
if (keep || list.export === undefined)
|
|
680
|
+
return list;
|
|
681
|
+
const { export: _export, ...rest } = list;
|
|
682
|
+
return rest;
|
|
683
|
+
}
|
|
665
684
|
//# sourceMappingURL=admin-policy.service.js.map
|