@plasmicpkgs/plasmic-rich-components 1.0.83 → 1.0.84

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../node_modules/tslib/tslib.es6.js","../src/utils.ts","../src/field-mappings.tsx","../src/queries.ts","../src/formatting.tsx","../src/rich-details/RichDetails.tsx","../src/rich-details/index.tsx","../src/common.ts","../src/rich-layout/RichLayout.tsx","../src/rich-layout/index.tsx","../src/rich-table/RichTable.tsx","../src/rich-table/index.tsx","../src/index.tsx"],"sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n","import {\n ComponentMeta,\n default as registerComponent,\n} from \"@plasmicapp/host/registerComponent\";\nimport {\n default as registerGlobalContext,\n GlobalContextMeta,\n} from \"@plasmicapp/host/registerGlobalContext\";\nimport { default as registerToken } from \"@plasmicapp/host/registerToken\";\nimport React from \"react\";\n\nexport type Registerable = {\n registerComponent: typeof registerComponent;\n registerGlobalContext: typeof registerGlobalContext;\n registerToken: typeof registerToken;\n};\n\nexport function makeRegisterComponent<T extends React.ComponentType<any>>(\n component: T,\n meta: ComponentMeta<React.ComponentProps<T>>\n) {\n return function (loader?: Registerable) {\n registerComponentHelper(loader, component, meta);\n };\n}\n\nexport function makeRegisterGlobalContext<T extends React.ComponentType<any>>(\n component: T,\n meta: GlobalContextMeta<React.ComponentProps<T>>\n) {\n return function (loader?: Registerable) {\n if (loader) {\n loader.registerGlobalContext(component, meta);\n } else {\n registerGlobalContext(component, meta);\n }\n };\n}\n\nexport function registerComponentHelper<T extends React.ComponentType<any>>(\n loader: Registerable | undefined,\n component: T,\n meta: ComponentMeta<React.ComponentProps<T>>\n) {\n if (loader) {\n loader.registerComponent(component, meta);\n } else {\n registerComponent(component, meta);\n }\n}\n\ntype ReactElt = {\n children: ReactElt | ReactElt[];\n props: {\n children: ReactElt | ReactElt[];\n [prop: string]: any;\n } | null;\n type: React.ComponentType<any> | null;\n key: string | null;\n} | null;\n\nexport function traverseReactEltTree(\n children: React.ReactNode,\n callback: (elt: ReactElt) => void\n) {\n const rec = (elts: ReactElt | ReactElt[] | null) => {\n (Array.isArray(elts) ? elts : [elts]).forEach((elt) => {\n if (elt) {\n callback(elt);\n if (elt.children) {\n rec(elt.children);\n }\n if (elt.props?.children && elt.props.children !== elt.children) {\n rec(elt.props.children);\n }\n }\n });\n };\n rec(children as any);\n}\n\nexport function asArray<T>(x: T[] | T | undefined | null) {\n if (Array.isArray(x)) {\n return x;\n } else if (x == null) {\n return [];\n } else {\n return [x];\n }\n}\n\nexport function ensureNumber(x: number | string): number {\n return x as number;\n}\n\nexport function isOneOf<T, U extends T>(elem: T, arr: readonly U[]): elem is U {\n return arr.includes(elem as any);\n}\n","import { TableFieldSchema, TableSchema } from \"@plasmicapp/data-sources\";\nimport { ControlExtras, PropType } from \"@plasmicapp/host/registerComponent\";\nimport { QueryResult } from \"./queries\";\nimport { ensureNumber, isOneOf } from \"./utils\";\n\nexport const tuple = <T extends any[]>(...args: T): T => args;\n\nexport interface HasId {\n id: string;\n}\n\nexport function mkIdMap<T extends HasId>(xs: ReadonlyArray<T>): Map<string, T> {\n return new Map(xs.map((x) => tuple(x.id, x) as [string, T]));\n}\n\nexport const mkShortId = () => `${Math.random()}`;\n\nfunction withoutNils<T>(xs: Array<T | undefined | null>): T[] {\n return xs.filter((x): x is T => x != null);\n}\n\nexport interface AutoSettings {\n dataType: \"auto\";\n}\n\ninterface _SharedNumberSettings {\n notation?: \"standard\" | \"scientific\" | \"engineering\" | \"compact\";\n signDisplay?: \"auto\" | \"always\" | \"exceptZero\";\n maximumFractionDigits?: number;\n minimumFractionDigits?: number;\n locale?: string;\n}\nexport interface DecimalSettings extends _SharedNumberSettings {\n dataType: \"number\";\n}\nexport interface PercentSettings extends _SharedNumberSettings {\n dataType: \"percent\";\n}\nexport interface CurrencySettings extends _SharedNumberSettings {\n dataType: \"currency\";\n currency?: string;\n currencyDisplay?: \"symbol\" | \"narrowSymbol\" | \"code\" | \"name\";\n}\nexport const DEFAULT_CURRENCY_SETTINGS: CurrencySettings = {\n dataType: \"currency\",\n currency: \"USD\",\n currencyDisplay: \"narrowSymbol\",\n};\n\nexport type NumberSettings =\n | DecimalSettings\n | PercentSettings\n | CurrencySettings;\nexport const NUMBER_TYPES = [\"number\", \"percent\", \"currency\"] as const;\n\nexport interface DateTimeSettings {\n dataType: \"datetime\";\n locale?: string;\n dateStyle?: \"none\" | \"full\" | \"long\" | \"medium\" | \"short\";\n timeStyle?: \"none\" | \"full\" | \"long\" | \"medium\" | \"short\";\n hour12?: boolean;\n timeZone?: string;\n}\nexport const DEFAULT_DATETIME_SETTINGS: DateTimeSettings = {\n dataType: \"datetime\",\n locale: \"en-US\",\n dateStyle: \"short\",\n timeStyle: \"short\",\n hour12: true,\n};\n\nexport interface RelativeDateTimeSettings {\n dataType: \"relative-datetime\";\n locale?: string;\n numeric?: \"always\" | \"auto\";\n style?: \"long\" | \"short\" | \"narrow\";\n unit?: \"year\" | \"month\" | \"week\" | \"day\" | \"hour\" | \"minute\" | \"second\";\n}\nexport const DEFAULT_RELATIVE_DATETIME_SETTINGS: RelativeDateTimeSettings = {\n dataType: \"relative-datetime\",\n locale: \"en-US\",\n numeric: \"always\",\n style: \"long\",\n unit: \"day\",\n};\nexport const DATETIME_TYPES = [\"datetime\", \"relative-datetime\"] as const;\n\nexport interface BooleanSettings {\n dataType: \"boolean\";\n showAs?: \"text\" | \"checkbox\" | \"switch\";\n}\nexport const DEFAULT_BOOLEAN_SETTINGS: BooleanSettings = {\n dataType: \"boolean\",\n showAs: \"checkbox\",\n};\n\nexport interface StringSettings {\n dataType: \"string\";\n}\n\nexport type RowFunc<Result> = (row: Record<string, unknown>) => Result;\nexport type CellFunc<Result> = (\n row: Record<string, unknown>,\n value: unknown\n) => Result;\n\n/**\n * Exprs are for things that can must re-evaluate from row to row.\n *\n * Literal values are for things that are column-level. (But in Plasmic Studio, as with all props, you can still use a dynamic value.)\n */\n\ninterface _BaseColumnConfig {\n key: string;\n fieldId?: string;\n title?: string;\n isHidden: boolean;\n expr?: CellFunc<any>;\n}\n\nexport type BaseColumnConfig = _BaseColumnConfig &\n (\n | AutoSettings\n | NumberSettings\n | StringSettings\n | BooleanSettings\n | DateTimeSettings\n | RelativeDateTimeSettings\n );\n\nexport function deriveFieldConfigs<ColumnConfig extends BaseColumnConfig>(\n specifiedFieldsPartial: Partial<ColumnConfig>[],\n schema: TableSchema | undefined,\n makeDefaultConfig: (field: TableFieldSchema | undefined) => ColumnConfig\n): {\n mergedFields: ColumnConfig[];\n minimalFullLengthFields: Partial<ColumnConfig>[];\n} {\n const schemaFields = schema?.fields ?? [];\n const fieldById = mkIdMap(schemaFields);\n const specifiedFieldIds = new Set(\n withoutNils(specifiedFieldsPartial.map((f) => f.fieldId))\n );\n const keptSpecifiedFields = specifiedFieldsPartial.flatMap(\n (f, index): ColumnConfig[] => {\n const fieldId = f.fieldId;\n if (!fieldId) {\n return [\n { ...makeDefaultConfig(undefined), key: index, ...f },\n ] as ColumnConfig[];\n }\n const field = fieldById.get(fieldId);\n\n // Drop configs with fieldIds no longer in the data.\n if (!field) {\n return [];\n }\n\n return [\n {\n ...makeDefaultConfig(field),\n ...f,\n },\n ] as ColumnConfig[];\n }\n );\n const newVirtualFields = schemaFields\n .filter((f) => !specifiedFieldIds.has(f.id))\n .map(\n (f): ColumnConfig => ({\n ...makeDefaultConfig(f),\n })\n );\n const mergedFields = [...keptSpecifiedFields, ...newVirtualFields];\n const minimalFullLengthFields: Partial<ColumnConfig>[] = [\n ...specifiedFieldsPartial,\n ...newVirtualFields.map((f) => ({ key: f.key, fieldId: f.fieldId })),\n ] as Partial<ColumnConfig>[];\n return { mergedFields, minimalFullLengthFields };\n}\n\nexport function deriveValueType(cconfig: BaseColumnConfig) {\n return cconfig.dataType === \"auto\"\n ? undefined\n : cconfig.dataType === \"string\"\n ? \"text\"\n : cconfig.dataType === \"number\"\n ? \"digit\"\n : cconfig.dataType === \"boolean\"\n ? \"switch\"\n : undefined;\n}\n\nexport interface ControlContextData<ColumnConfig extends BaseColumnConfig> {\n data: unknown[];\n schema?: TableSchema;\n mergedFields: ColumnConfig[];\n minimalFullLengthFields: Partial<ColumnConfig>[];\n}\n\nexport interface FieldfulProps<ColumnConfig extends BaseColumnConfig> {\n className?: string;\n data?: QueryResult;\n fields?: Partial<ColumnConfig>[];\n setControlContextData?: (ctx: ControlContextData<ColumnConfig>) => void;\n}\n\nexport function buildFieldsPropType<\n ColumnConfig extends BaseColumnConfig,\n Props extends FieldfulProps<ColumnConfig>\n>(opts: { fieldTypes?: Record<string, PropType<any>> }): PropType<Props> {\n function getDefaultValueHint(field: keyof ColumnConfig) {\n return (\n _props: any,\n contextData: ControlContextData<ColumnConfig> | null,\n { item }: any\n ): any => {\n if (item.fieldId) {\n const fieldSetting = contextData?.mergedFields.find(\n (f) => f.fieldId === item.fieldId\n );\n return fieldSetting?.[field];\n }\n return undefined;\n };\n }\n\n const rowDataType = (displayName: string, control?: any) =>\n ({\n type: \"function\" as any,\n displayName,\n control,\n argNames: [\"currentItem\", \"currentValue\"],\n argValues: (_props: any, ctx: any, { item }: any) => {\n const row = ctx?.data?.[0];\n const cell = item.fieldId ? row?.[item.fieldId] : undefined;\n return [row, cell];\n },\n } as any);\n\n return {\n type: \"array\",\n hidden: (ps) => !ps.data,\n unstable__keyFunc: (x) => x.key,\n unstable__minimalValue: (_props, contextData) =>\n contextData?.minimalFullLengthFields,\n unstable__canDelete: (ps, _props, ctx, { item }) => {\n if (!ctx?.schema) {\n // still loading...\n return false;\n }\n if (\n item.fieldId &&\n ctx.schema.fields.some((f) => f.id === item.fieldId)\n ) {\n return false;\n }\n return true;\n },\n itemType: {\n type: \"object\",\n nameFunc: (_item: any) => {\n return _item.title ?? _item.fieldId;\n },\n fields: {\n key: {\n type: \"string\",\n hidden: () => true,\n },\n fieldId: {\n type: \"choice\",\n displayName: \"Field name\",\n readOnly: true,\n options: (_props, ctx) =>\n (ctx?.schema?.fields ?? []).map((f) => f.id),\n hidden: (_props, ctx, { path: _controlPath }) =>\n !(_controlPath.slice(-1)[0] in (ctx?.schema?.fields ?? {})),\n },\n title: {\n type: \"string\",\n displayName: \"Title\",\n defaultValueHint: getDefaultValueHint(\"title\"),\n },\n expr: rowDataType(\"Customize cell data\"),\n isHidden: {\n type: \"boolean\",\n displayName: \"Is hidden\",\n defaultValueHint: getDefaultValueHint(\"isHidden\"),\n },\n dataType: {\n type: \"choice\",\n displayName: \"Data type\",\n options: [\n {\n value: \"auto\",\n label: \"Auto\",\n },\n {\n value: \"number\",\n label: \"Number\",\n },\n {\n value: \"percent\",\n label: \"Percentage\",\n },\n {\n value: \"currency\",\n label: \"Currency\",\n },\n {\n value: \"string\",\n label: \"String\",\n },\n {\n value: \"boolean\",\n label: \"Boolean\",\n },\n {\n value: \"datetime\",\n label: \"Date / Time\",\n },\n {\n value: \"relative-datetime\",\n label: \"Date / Time relative to now\",\n },\n ],\n defaultValueHint: getDefaultValueHint(\"dataType\"),\n },\n currency: {\n displayName: \"Currency\",\n description: \"Must be a valid currency code\",\n type: \"string\",\n defaultValueHint: \"USD\",\n hidden: (ps, ctx, { item }) => item.dataType !== \"currency\",\n },\n locale: {\n displayName: \"Locale\",\n description: \"Must be a valid locale code\",\n type: \"string\",\n defaultValueHint: \"en-US\",\n hidden: (ps, ctx, { item }) =>\n !isOneOf(item.dataType, NUMBER_TYPES) &&\n !isOneOf(item.dataType, DATETIME_TYPES),\n },\n notation: {\n displayName: \"Notation\",\n type: \"choice\",\n options: [\n {\n value: \"standard\",\n label: \"Standard\",\n },\n {\n value: \"scientific\",\n label: \"Scientific notation (like 1E3)\",\n },\n {\n value: \"compact\",\n label: \"Compact (like 10K)\",\n },\n ],\n defaultValueHint: \"standard\",\n hidden: (ps, ctx, { item }) => !isOneOf(item.dataType, NUMBER_TYPES),\n },\n signDisplay: {\n type: \"choice\",\n displayName: \"Number sign\",\n options: [\n {\n value: \"auto\",\n label: \"Only for negative numbers (10, -10)\",\n },\n {\n value: \"exceptZero\",\n label: \"Positive or negative (+10, -10)\",\n },\n ],\n defaultValueHint: \"auto\",\n hidden: (ps, ctx, { item }) => !isOneOf(item.dataType, NUMBER_TYPES),\n },\n maximumFractionDigits: {\n type: \"number\",\n displayName: \"Max decimal places\",\n defaultValueHint: 3,\n min: 0,\n max: 20,\n hidden: (ps, ctx, { item }) => !isOneOf(item.dataType, NUMBER_TYPES),\n },\n minimumFractionDigits: {\n type: \"number\",\n displayName: \"Min decimal places\",\n defaultValueHint: 0,\n min: 0,\n max: 20,\n hidden: (ps, ctx, { item }) => !isOneOf(item.dataType, NUMBER_TYPES),\n },\n showAs: {\n type: \"choice\",\n options: [\n {\n value: \"checkbox\",\n label: \"Checkboxes\",\n },\n {\n value: \"switch\",\n label: \"Toggle switches\",\n },\n {\n value: \"text\",\n label: \"Text\",\n },\n ],\n displayName: \"Show as\",\n defaultValueHint: \"checkbox\",\n hidden: (ps, ctx, { item }) => item.dataType !== \"boolean\",\n },\n dateStyle: {\n displayName: \"Date style\",\n type: \"choice\",\n options: [\n {\n value: \"none\",\n label: \"None (don't display date)\",\n },\n {\n value: \"short\",\n label: \"Short (like 12/25/2023)\",\n },\n {\n value: \"medium\",\n label: \"Medium (like Dec 25, 2023)\",\n },\n {\n value: \"long\",\n label: \"Long (like December 25, 2023)\",\n },\n {\n value: \"full\",\n label: \"Full (like Monday, December 25, 2023)\",\n },\n ],\n defaultValueHint: DEFAULT_DATETIME_SETTINGS.dateStyle,\n hidden: (ps, ctx, { item }) => item.dataType !== \"datetime\",\n },\n timeStyle: {\n displayName: \"Time style\",\n type: \"choice\",\n options: [\n {\n value: \"none\",\n label: \"None (don't display time)\",\n },\n {\n value: \"short\",\n label: \"Short (like 4:00 PM)\",\n },\n {\n value: \"medium\",\n label: \"Medium (like 4:00:00 PM)\",\n },\n {\n value: \"long\",\n label: \"Long (like 4:00:00 PM PST)\",\n },\n {\n value: \"full\",\n label: \"Full (like 4:00:00 PM Pacific Standard Time)\",\n },\n ],\n defaultValueHint: DEFAULT_DATETIME_SETTINGS.timeStyle,\n hidden: (ps, ctx, { item }) => item.dataType !== \"datetime\",\n },\n hour12: {\n displayName: \"Use AM/PM?\",\n description: \"Whether to use AM/PM or 24-hour clock\",\n type: \"boolean\",\n defaultValueHint: DEFAULT_DATETIME_SETTINGS.hour12,\n hidden: (ps, ctx, { item }) => item.dataType !== \"datetime\",\n },\n numeric: {\n type: \"choice\",\n displayName: \"Use numbers?\",\n options: [\n { value: \"always\", label: \"Always use numbers\" },\n {\n value: \"auto\",\n label: \"Use words like 'Yesterday' or 'Tomorrow'\",\n },\n ],\n defaultValueHint: DEFAULT_RELATIVE_DATETIME_SETTINGS.numeric,\n hidden: (ps, ctx, { item }) => item.dataType !== \"relative-datetime\",\n },\n unit: {\n type: \"choice\",\n displayName: \"Time unit\",\n options: [\n {\n value: \"second\",\n label: \"Seconds\",\n },\n {\n value: \"minute\",\n label: \"Minutes\",\n },\n {\n value: \"hour\",\n label: \"Hours\",\n },\n {\n value: \"day\",\n label: \"Days\",\n },\n {\n value: \"week\",\n label: \"Weeks\",\n },\n {\n value: \"month\",\n label: \"Months\",\n },\n {\n value: \"year\",\n label: \"Years\",\n },\n ],\n defaultValueHint: DEFAULT_RELATIVE_DATETIME_SETTINGS.unit,\n hidden: (ps, ctx, { item }) => item.dataType !== \"relative-datetime\",\n },\n ...opts.fieldTypes,\n },\n },\n };\n}\n","import {\n ManyRowsResult,\n TableFieldType,\n TableSchema,\n} from \"@plasmicapp/data-sources\";\n\nexport type QueryResult = Partial<ManyRowsResult<any>> & {\n error?: any;\n isLoading?: boolean;\n};\n\nexport interface NormalizedData {\n data: Record<string, unknown>[];\n schema?: TableSchema;\n}\n\nexport function normalizeData(rawData: unknown): NormalizedData | undefined {\n if (!rawData) {\n return undefined;\n }\n\n const dataArray = tryGetDataArray(rawData);\n if (!dataArray) {\n return undefined;\n }\n const schema = (rawData as any).schema ?? tryGetSchema(dataArray);\n if (!schema) {\n return undefined;\n }\n return { data: dataArray, schema };\n}\n\nfunction tryGetDataArray(rawData: unknown): any[] | undefined {\n if (!rawData || typeof rawData !== \"object\") {\n return undefined;\n }\n\n if (Array.isArray(rawData)) {\n if (isArrayOfObjects(rawData)) {\n return rawData;\n } else {\n // TODO: array of primitives? Maybe we can wrap this?\n return undefined;\n }\n }\n\n if (\"data\" in rawData && Array.isArray(rawData.data)) {\n if (isArrayOfObjects(rawData.data)) {\n return rawData.data;\n } else {\n return undefined;\n }\n }\n\n if (\"isLoading\" in rawData || \"error\" in rawData) {\n return undefined;\n }\n\n // Maybe a singleton record?\n return [rawData];\n}\n\nfunction isArrayOfObjects(arr: unknown[]) {\n return arr.every((x) => typeof x === \"object\" && !Array.isArray(x));\n}\n\nfunction tryGetSchema(data: any[]): TableSchema | undefined {\n const fieldMap: Record<string, TableFieldType> = {};\n data.forEach((entry: any) => {\n if (entry && typeof entry === \"object\") {\n Array.from(Object.entries(entry)).forEach(([k, v]) => {\n const inferredType: TableFieldType =\n typeof v === \"string\"\n ? \"string\"\n : typeof v === \"boolean\"\n ? \"boolean\"\n : typeof v === \"number\"\n ? \"number\"\n : \"unknown\";\n if (fieldMap[k] && fieldMap[k] !== inferredType) {\n fieldMap[k] = \"unknown\";\n } else {\n fieldMap[k] = inferredType;\n }\n });\n }\n });\n return {\n id: \"inferred\",\n fields: Object.entries(fieldMap).map(([f, t]) => ({\n id: f,\n type: t,\n readOnly: false,\n })),\n };\n}\n","import React from \"react\";\nimport { Checkbox, Switch } from \"antd\";\nimport {\n BaseColumnConfig,\n BooleanSettings,\n DEFAULT_BOOLEAN_SETTINGS,\n DEFAULT_DATETIME_SETTINGS,\n DEFAULT_CURRENCY_SETTINGS,\n DateTimeSettings,\n NUMBER_TYPES,\n NumberSettings,\n RelativeDateTimeSettings,\n DEFAULT_RELATIVE_DATETIME_SETTINGS,\n DATETIME_TYPES,\n} from \"./field-mappings\";\nimport { isOneOf } from \"./utils\";\n\nexport function renderValue(\n value: any,\n record: any,\n cconfig: BaseColumnConfig\n) {\n if (cconfig.expr) {\n value = cconfig.expr(record, value);\n }\n\n if (value == null) {\n return \"\";\n }\n\n if (cconfig.dataType === \"auto\") {\n return renderAuto(value);\n } else {\n const coerced = coerceValue(value, cconfig.dataType);\n if (\n isOneOf(cconfig.dataType, NUMBER_TYPES) &&\n typeof coerced === \"number\"\n ) {\n return renderNumber(coerced, cconfig as NumberSettings);\n } else if (cconfig.dataType === \"boolean\" && typeof coerced === \"boolean\") {\n return renderBoolean(coerced, cconfig);\n } else if (cconfig.dataType === \"datetime\" && coerced instanceof Date) {\n return renderDate(coerced, cconfig);\n } else if (\n cconfig.dataType === \"relative-datetime\" &&\n coerced instanceof Date\n ) {\n return renderRelativeDate(coerced, cconfig);\n }\n return asString(value);\n }\n}\n\nfunction renderAuto(value: unknown): React.ReactNode {\n if (typeof value === \"number\") {\n return renderNumber(value, { dataType: \"number\" });\n } else if (typeof value === \"boolean\") {\n return renderBoolean(value, DEFAULT_BOOLEAN_SETTINGS);\n } else if (value instanceof Date) {\n return renderDate(value, DEFAULT_DATETIME_SETTINGS);\n } else {\n const coerced = tryCoerceAuto(value);\n if (coerced === CANNOT_COERCE) {\n return asString(value);\n } else {\n return renderAuto(coerced);\n }\n }\n}\n\nfunction tryCoerceAuto(value: unknown) {\n for (const dataType of [\n \"number\",\n \"datetime\",\n ] as BaseColumnConfig[\"dataType\"][]) {\n const coerced = coerceValue(value, dataType);\n if (coerced !== CANNOT_COERCE) {\n return coerced;\n }\n }\n return CANNOT_COERCE;\n}\n\nfunction renderNumber(value: number, cconfig: NumberSettings) {\n if (cconfig.dataType === \"number\") {\n return new Intl.NumberFormat(cconfig.locale, cconfig).format(value);\n } else if (cconfig.dataType === \"percent\") {\n return new Intl.NumberFormat(cconfig.locale, {\n ...cconfig,\n style: \"percent\",\n }).format(value);\n } else if (cconfig.dataType === \"currency\") {\n return new Intl.NumberFormat(cconfig.locale, {\n ...DEFAULT_CURRENCY_SETTINGS,\n ...cconfig,\n style: \"currency\",\n }).format(value);\n } else {\n throw new Error(`Unexpected dataType ${(cconfig as any).dataType}`);\n }\n}\n\nfunction renderDate(value: Date, cconfig: DateTimeSettings) {\n const opts = {\n ...DEFAULT_DATETIME_SETTINGS,\n ...cconfig,\n };\n if (opts.dateStyle === \"none\") {\n delete opts[\"dateStyle\"];\n }\n if (opts.timeStyle === \"none\") {\n delete opts[\"timeStyle\"];\n }\n return new Intl.DateTimeFormat(cconfig.locale, opts as any).format(value);\n}\n\nconst SECOND_MS = 1000;\nconst MINUTE_MS = 60 * SECOND_MS;\nconst HOUR_MS = 60 * MINUTE_MS;\nconst DAY_MS = 24 * HOUR_MS;\nconst WEEK_MS = 7 * DAY_MS;\nconst UNIT_TO_MS = {\n second: SECOND_MS,\n minute: MINUTE_MS,\n hour: HOUR_MS,\n day: DAY_MS,\n week: WEEK_MS,\n} as const;\nconst UNITS_BY_MS = Object.keys(UNIT_TO_MS) as (keyof typeof UNIT_TO_MS)[];\n\nfunction renderRelativeDate(value: Date, cconfig: RelativeDateTimeSettings) {\n const opts = {\n ...DEFAULT_RELATIVE_DATETIME_SETTINGS,\n ...cconfig,\n };\n const unit = cconfig.unit ?? \"day\";\n const formatter = new Intl.RelativeTimeFormat(cconfig.locale, opts);\n if (isOneOf(unit, UNITS_BY_MS)) {\n // for \"exact\" units, we can do it by just calcluating the difference\n // by ms\n const diff = value.getTime() - new Date().getTime();\n return formatter.format(Math.round(diff / UNIT_TO_MS[unit]), unit);\n } else {\n // otherwise we need to calculate by the specific unit\n if (unit === \"year\") {\n const diff = value.getFullYear() - new Date().getFullYear();\n return formatter.format(diff, unit);\n } else if (unit === \"month\") {\n const months = (d: Date) => d.getFullYear() * 12 + d.getMonth() + 1;\n const diff = months(value) - months(new Date());\n return formatter.format(diff, unit);\n } else {\n throw new Error(`Unexpected relative time unit ${unit}`);\n }\n }\n}\n\nfunction renderBoolean(value: boolean, cconfig: BooleanSettings) {\n const showAs = cconfig.showAs ?? DEFAULT_BOOLEAN_SETTINGS.showAs;\n if (showAs === \"checkbox\") {\n return <Checkbox checked={value} />;\n } else if (showAs === \"switch\") {\n return <Switch checked={value} />;\n } else {\n return value ? \"true\" : \"false\";\n }\n}\n\nconst CANNOT_COERCE = Symbol(\"plasmic-cannot-coerce\");\nfunction coerceValue(value: unknown, dataType: BaseColumnConfig[\"dataType\"]) {\n if (value == null) {\n return null;\n }\n try {\n if (isOneOf(dataType, NUMBER_TYPES)) {\n if (typeof value === \"number\") {\n return value;\n } else if (typeof value === \"string\") {\n const maybeNumber = +value;\n if (!isNaN(maybeNumber)) {\n return maybeNumber;\n }\n }\n } else if (isOneOf(dataType, DATETIME_TYPES)) {\n if (value instanceof Date) {\n return value;\n } else if (typeof value === \"number\") {\n return new Date(value);\n } else if (typeof value === \"string\") {\n const maybeDate = new Date(value);\n if (!isNaN(maybeDate.getTime())) {\n return maybeDate;\n }\n }\n } else if (dataType === \"boolean\") {\n if (value === true || value === false) {\n return value;\n } else if (typeof value === \"number\") {\n return value !== 0;\n } else if (typeof value === \"string\") {\n return value.toLowerCase() === \"true\";\n }\n } else if (dataType === \"string\") {\n return asString(value);\n } else if (dataType === \"auto\") {\n return value;\n }\n } catch (err) {\n // Ignore error; just fail to coerce\n }\n\n return CANNOT_COERCE;\n}\n\nfunction asString(value: unknown) {\n if (value == null) {\n return \"\";\n } else if (typeof value === \"string\") {\n return value;\n } else if (typeof value === \"object\") {\n if (\"toString\" in value && typeof value.toString === \"function\") {\n return value.toString();\n } else {\n return JSON.stringify(value);\n }\n } else {\n return `${value}`;\n }\n}\n","import {\n ProDescriptions,\n ProDescriptionsItemProps,\n} from \"@ant-design/pro-components\";\nimport React from \"react\";\nimport {\n BaseColumnConfig,\n FieldfulProps,\n deriveFieldConfigs,\n deriveValueType,\n mkShortId,\n} from \"../field-mappings\";\nimport { NormalizedData, normalizeData } from \"../queries\";\nimport { Empty } from \"antd\";\nimport { renderValue } from \"../formatting\";\n\nexport interface RichDetailsProps extends FieldfulProps<DetailsColumnConfig> {\n size?: \"small\" | \"middle\" | \"default\";\n bordered?: boolean;\n layout?: \"horizontal\" | \"vertical\";\n column?: number;\n}\n\nexport function RichDetails(props: RichDetailsProps) {\n const {\n className,\n data: rawData,\n size,\n bordered,\n layout,\n column = 2,\n } = props;\n const data = normalizeData(rawData);\n const { columnDefinitions } = useColumnDefinitions(data, props);\n if (!data) {\n return <Empty className={className} />;\n }\n return (\n <ProDescriptions\n className={className}\n dataSource={data?.data?.[0]}\n columns={columnDefinitions}\n size={size}\n bordered={bordered}\n layout={layout}\n column={{\n xs: 1,\n sm: 1,\n md: column,\n }}\n />\n );\n}\n\nexport type DetailsColumnConfig = BaseColumnConfig & {\n span?: number;\n};\n\nfunction useColumnDefinitions(\n data: NormalizedData | undefined,\n props: React.ComponentProps<typeof RichDetails>\n) {\n const { fields, setControlContextData } = props;\n return React.useMemo(() => {\n const schema = data?.schema;\n if (!data || !schema) {\n return { normalized: [], columnDefinitions: [] };\n }\n const { mergedFields, minimalFullLengthFields } =\n deriveFieldConfigs<DetailsColumnConfig>(\n fields ?? [],\n schema,\n (field) => ({\n key: mkShortId(),\n isHidden: false,\n dataType: \"auto\" as const,\n ...(field && {\n key: field.id,\n fieldId: field.id,\n title: field.label || field.id,\n expr: (currentItem) => currentItem[field.id],\n }),\n })\n );\n setControlContextData?.({ ...data, mergedFields, minimalFullLengthFields });\n const normalized = mergedFields;\n const columnDefinitions = normalized\n .filter((cconfig) => !cconfig.isHidden)\n .map((cconfig, _columnIndex, _columnsArray) => {\n const columnDefinition: ProDescriptionsItemProps<any> = {\n dataIndex: cconfig.fieldId,\n title: cconfig.title,\n key: cconfig.key,\n valueType: deriveValueType(cconfig),\n span: cconfig.span,\n\n // To come later\n copyable: false,\n ellipsis: false,\n tip: undefined,\n formItemProps: {\n rules: [],\n },\n valueEnum: undefined,\n renderFormItem: (_, { defaultRender }) => {\n return defaultRender(_);\n },\n\n render: (value: any, record: any, rowIndex: any) => {\n const cellValue = cconfig.fieldId\n ? record[cconfig.fieldId]\n : undefined;\n return renderValue(cellValue, record, cconfig);\n },\n };\n\n return columnDefinition;\n });\n return { normalized, columnDefinitions };\n }, [fields, data, setControlContextData]);\n}\n","import { buildFieldsPropType } from \"../field-mappings\";\nimport { Registerable, registerComponentHelper } from \"../utils\";\nimport {\n DetailsColumnConfig,\n RichDetails,\n RichDetailsProps,\n} from \"./RichDetails\";\n\nexport * from \"./RichDetails\";\n\nexport function registerRichDetails(loader?: Registerable) {\n registerComponentHelper(loader, RichDetails, {\n name: \"hostless-rich-details\",\n displayName: \"Data details\",\n defaultStyles: {\n width: \"stretch\",\n maxHeight: \"100%\",\n },\n props: {\n data: {\n type: \"dataSourceOpData\" as any,\n description: \"The data to display\",\n },\n fields: buildFieldsPropType<DetailsColumnConfig, RichDetailsProps>({\n fieldTypes: {\n span: {\n type: \"number\",\n displayName: \"Number of columns to span\",\n defaultValueHint: 1,\n },\n },\n }),\n layout: {\n displayName: \"Layout\",\n type: \"choice\",\n options: [\n { value: \"horizontal\", label: \"Horizontal\" },\n { value: \"vertical\", label: \"Vertical\" },\n ],\n defaultValueHint: \"horizontal\",\n },\n column: {\n displayName: \"Items per row\",\n type: \"number\",\n description: \"Number of items to display per row\",\n defaultValueHint: 2,\n },\n size: {\n displayName: \"Spacing\",\n type: \"choice\",\n options: [\n { value: \"small\", label: \"Small\" },\n { value: \"middle\", label: \"Medium\" },\n { value: \"default\", label: \"Large\" },\n ],\n defaultValueHint: \"default\",\n },\n bordered: {\n displayName: \"Show borders?\",\n type: \"boolean\",\n defaultValueHint: false,\n },\n },\n importPath: \"@plasmicpkgs/plasmic-rich-components\",\n importName: \"RichDetails\",\n });\n}\n","import { useEffect, useState } from \"react\";\nimport { tinycolor } from \"@ctrl/tinycolor\";\n\nexport function useIsClient() {\n const [loaded, setLoaded] = useState(false);\n useEffect(() => {\n setLoaded(true);\n });\n return loaded;\n}\n\nexport function capitalize(text: string) {\n return text.slice(0, 1).toUpperCase() + text.slice(1);\n}\n\nexport function isLight(color: string) {\n const { r, g, b } = tinycolor(color).toRgb();\n return r * 0.299 + g * 0.587 + b * 0.114 > 186;\n}\n","import { LogoutOutlined } from \"@ant-design/icons\";\nimport type { MenuDataItem, ProLayoutProps } from \"@ant-design/pro-components\";\nimport { ProConfigProvider, ProLayout } from \"@ant-design/pro-components\";\nimport { ConfigProvider, Dropdown, theme } from \"antd\";\nimport React, { ReactNode, useEffect, useState } from \"react\";\nimport { isLight, useIsClient } from \"../common\";\n\nfunction omitUndefined(x: object) {\n return Object.fromEntries(\n Object.entries(x).filter(([k, v]) => v !== undefined)\n );\n}\n\ninterface NavMenuItem extends Omit<MenuDataItem, \"routes\"> {\n routes?: NavMenuItem[];\n}\n\nexport interface SimpleNavTheme {\n scheme?: \"default\" | \"light\" | \"dark\" | \"custom\" | \"primary\";\n customBgColor?: string;\n}\n\nexport interface RichLayoutProps extends ProLayoutProps {\n navMenuItems?: NavMenuItem[];\n rootUrl?: string;\n actionsChildren?: ReactNode;\n footerChildren?: ReactNode;\n avatarLabel?: string;\n avatarImage?: string;\n showAvatarMenu?: boolean;\n simpleNavTheme?: SimpleNavTheme;\n}\n\nconst baseStyles = `\n.ant-pro-layout-bg-list {\n display: none;\n}\n.ant-pro-layout {\n display: flex;\n}\n`;\n\nexport function RichLayout({\n children,\n navMenuItems,\n rootUrl = \"/\",\n actionsChildren,\n footerChildren,\n avatarLabel,\n avatarImage,\n showAvatarMenu,\n className,\n simpleNavTheme,\n ...layoutProps\n}: RichLayoutProps) {\n const isClient = useIsClient();\n const [pathname, setPathname] = useState<string | undefined>(undefined);\n useEffect(() => {\n if (typeof location !== \"undefined\") {\n setPathname(location.pathname);\n }\n }, []);\n const { token } = theme.useToken();\n const origTextColor = token.colorTextBase;\n function getNavBgColor(): string {\n const scheme = simpleNavTheme?.scheme ?? \"default\";\n switch (scheme) {\n case \"primary\":\n return token.colorPrimary;\n case \"dark\":\n // Ant default dark blue Menu color.\n return \"#011528\";\n case \"custom\":\n return simpleNavTheme?.customBgColor ?? token.colorBgBase;\n case \"light\":\n // Just use this sorta ugly gray if using 'light' scheme in 'dark' mode.\n // Otherwise using light scheme in light mode.\n return \"#fff\";\n case \"default\":\n return token.colorBgBase || \"#fff\";\n }\n }\n const navBgColor = getNavBgColor();\n // Dynamically determine whether we need to change the text to black/white or not, based on background color.\n // We don't want light-on-light or dark-on-dark, so if both isNavBgLight and isOrigTextLight are the same, then need to change.\n // If no need to change, we leave text color as is.\n const isNavBgLight = isLight(navBgColor);\n const isOrigTextLight = isLight(origTextColor);\n // Ant will interpret \"\" as defaulting to \"#fff\" for dark mode and \"#000\" in light mode.\n const navTextColor = isNavBgLight !== isOrigTextLight ? undefined : \"\";\n if (!isClient) {\n return null;\n }\n return (\n <div className={className} style={{ display: \"flex\" }}>\n {/* Remove the always-on fixed gradient background layer. */}\n <style>{baseStyles}</style>\n <ProLayout\n {...layoutProps}\n // Theme just the header. If you simply pass in navTheme=realDark, it affects all main content as well.\n //\n // What we're doing is telling Ant to use the dark mode algorithm. However, dark mode algorithm doesn't change\n // the seed tokens for colorTextBase and colorBgBase - it only fills in #fff and #000 for these if they are\n // unset (\"\"). So that's why further up we may be setting the text color to \"\".\n //\n // I think it doesn't matter too much what is the colorBgBase, since we are setting (Pro-specific) `tokens`\n // further down for actually setting the fill of the nav sections. What matters is the text color - if we're\n // showing a dark background, then we want the text to be white.\n //\n // We could specify darkAlgorithm to ConfigProvider, but IIRC Pro might be setting some of its own tokens\n // based on whether dark is being specified to the ProConfigProvider. So that's why we need that.\n //\n // ProConfigProvider does first read/inherit the theme/tokens from the surrounding ConfigProvider.\n headerRender={(_props, defaultDom) => (\n <ConfigProvider\n theme={{ token: omitUndefined({ colorTextBase: navTextColor }) }}\n >\n <ProConfigProvider dark={!isNavBgLight}>\n {defaultDom}\n </ProConfigProvider>\n </ConfigProvider>\n )}\n token={{\n header: omitUndefined({\n colorBgHeader: navBgColor,\n }),\n // Ideally, we'd do something similar to headerRender above, and just specify general dark mode to specify\n // whether all components/text should be light.\n // But for some reason it doesn't work, causing the bg color to be ignored (just the default dark Menu color),\n // *and* the text is just dark as well.\n // Haven't yet been able to unravel the pro components code to figure out the proper way to do this, so just\n // bluntly specifying tokens here, as recommended in some GitHub issue.\n sider: isNavBgLight\n ? undefined\n : {\n colorBgCollapsedButton: navBgColor,\n colorTextCollapsedButtonHover: \"rgba(255,255,255,0.85)\",\n colorTextCollapsedButton: \"rgba(255,255,255,0.65)\",\n colorMenuBackground: navBgColor,\n colorBgMenuItemCollapsedHover: \"rgba(0,0,0,0.06)\",\n colorBgMenuItemCollapsedSelected: \"rgba(0,0,0,0.15)\",\n colorBgMenuItemCollapsedElevated: \"rgba(0,0,0,0.85)\",\n colorMenuItemDivider: \"rgba(255,255,255,0.15)\",\n colorBgMenuItemHover: \"rgba(0,0,0,0.06)\",\n colorBgMenuItemSelected: \"rgba(0,0,0,0.15)\",\n colorTextMenuSelected: \"#fff\",\n colorTextMenuItemHover: \"rgba(255,255,255,0.75)\",\n colorTextMenu: \"rgba(255,255,255,0.75)\",\n colorTextMenuSecondary: \"rgba(255,255,255,0.65)\",\n colorTextMenuTitle: \"rgba(255,255,255,0.95)\",\n colorTextMenuActive: \"rgba(255,255,255,0.95)\",\n colorTextSubMenuSelected: \"#fff\",\n },\n }}\n // Tweak defaults. ProLayout is janky and has terrible docs!\n layout={layoutProps.layout ?? \"top\"}\n fixedHeader={layoutProps.fixedHeader ?? false}\n fixSiderbar={\n // Doesn't stretch full height if you set this to false and you're in mix mode.\n layoutProps.layout === \"mix\"\n ? undefined\n : layoutProps.fixSiderbar ?? false\n }\n // This is always needed if you want layout mix to have effect and look any different from layout side - not clear why this should ever be false.\n splitMenus={layoutProps.layout === \"mix\"}\n route={{\n path: rootUrl,\n routes: navMenuItems,\n }}\n location={{\n pathname,\n }}\n menu={{\n // collapsedShowGroupTitle: true,\n defaultOpenAll: true,\n // hideMenuWhenCollapsed: true,\n }}\n avatarProps={\n showAvatarMenu\n ? {\n src: avatarImage,\n size: \"small\",\n title: avatarLabel,\n render: (_props, dom) => {\n return (\n <Dropdown\n menu={{\n items: [\n {\n key: \"logout\",\n icon: <LogoutOutlined />,\n label: \"Sign out\",\n },\n ],\n }}\n >\n {dom}\n </Dropdown>\n );\n },\n }\n : undefined\n }\n actionsRender={(_props) => {\n return [actionsChildren];\n }}\n menuFooterRender={(props) => {\n if (props?.collapsed) return undefined;\n return footerChildren;\n }}\n onMenuHeaderClick={(e) => console.log(e)}\n menuItemRender={(item, dom) => <a href={item.path}>{dom}</a>}\n headerTitleRender={(logo, title, _) => {\n return (\n <a href={rootUrl}>\n {logo}\n {title}\n </a>\n );\n }}\n >\n {children}\n </ProLayout>\n </div>\n );\n}\n","import {\n ComponentMeta,\n JSONLikeType,\n} from \"@plasmicapp/host/registerComponent\";\nimport { capitalize } from \"../common\";\nimport { Registerable, registerComponentHelper } from \"../utils\";\nimport { RichLayout, RichLayoutProps } from \"./RichLayout\";\n\nexport * from \"./RichLayout\";\nexport default RichLayout;\n\nfunction generateNavMenuType(\n remainingDepth: number,\n displayName?: string,\n defaultValue?: any[]\n): object & JSONLikeType<any> {\n return {\n displayName: displayName ? displayName : \"Nested items\",\n type: \"array\",\n defaultValue,\n itemType: {\n type: \"object\",\n nameFunc: (item: any) =>\n item.name || (!displayName ? \"Unnamed nested item\" : \"Unnamed item\"),\n fields: {\n path: \"href\",\n name: \"string\",\n ...(remainingDepth === 0\n ? {}\n : {\n routes: generateNavMenuType(remainingDepth - 1),\n }),\n },\n },\n } as const;\n}\n\nconst richLayoutMeta: ComponentMeta<RichLayoutProps> = {\n name: \"hostless-rich-layout\",\n displayName: \"Rich App Layout\",\n props: {\n children: {\n type: \"slot\",\n unstable__isMainContentSlot: true,\n },\n actionsChildren: {\n type: \"slot\",\n hidePlaceholder: true,\n },\n title: {\n displayName: \"Title\",\n type: \"string\",\n defaultValue: \"App title\",\n },\n logo: {\n displayName: \"Logo\",\n type: \"imageUrl\",\n defaultValue: \"https://www.plasmic.app/favicon.ico\",\n },\n navMenuItems: generateNavMenuType(2, \"Nav menu items\", [\n {\n path: \"/\",\n name: \"Link 1\",\n },\n {\n path: \"/\",\n name: \"Link 2\",\n },\n ]),\n\n layout: {\n displayName: \"Layout\",\n type: \"choice\",\n options: [\"side\", \"top\", \"mix\"].map((value) => ({\n value,\n label: capitalize(value),\n })),\n defaultValueHint: \"top\",\n },\n\n simpleNavTheme: {\n displayName: \"Theme\",\n type: \"object\",\n fields: {\n scheme: {\n type: \"choice\",\n options: [\"default\", \"primary\", \"light\", \"dark\", \"custom\"].map(\n (v) => ({\n label: capitalize(v),\n value: v,\n })\n ),\n defaultValueHint: \"default\",\n },\n customBgColor: {\n type: \"color\",\n displayName: \"Custom color\",\n hidden: (props) => !(props.simpleNavTheme?.scheme === \"custom\"),\n defaultValue: \"#D73B58\",\n },\n },\n },\n\n // Advanced, show later\n /*\n siderMenuType: {\n displayName: \"Sidebar mode\",\n type: \"choice\",\n options: [\"sub\", \"group\"].map((value) => ({\n value,\n label: capitalize(value),\n })),\n defaultValue: \"sub\",\n },\n contentWidth: {\n displayName: \"Content width\",\n type: \"choice\",\n options: [\"Fluid\", \"Fixed\"],\n defaultValueHint: \"Fluid\",\n },\n */\n fixedHeader: {\n displayName: \"Sticky header\",\n type: \"boolean\",\n hidden: (ps) => (ps.layout ?? \"top\") !== \"top\",\n defaultValueHint: false,\n },\n fixSiderbar: {\n displayName: \"Sticky sidebar\",\n type: \"boolean\",\n hidden: (ps) => (ps.layout ?? \"top\") !== \"side\",\n defaultValueHint: false,\n },\n /*\n showAvatarMenu: {\n displayName: \"Show avatar\",\n type: \"boolean\",\n defaultValue: true,\n },\n avatarLabel: {\n displayName: \"Avatar label\",\n type: \"string\",\n defaultValue: \"User Name\",\n },\n avatarImage: {\n displayName: \"Avatar image\",\n type: \"imageUrl\",\n defaultValue:\n \"https://gw.alipayobjects.com/zos/antfincdn/efFD%24IOql2/weixintupian_20170331104822.jpg\",\n },\n */\n menu: {\n displayName: \"Menu\",\n type: \"object\",\n fields: {\n defaultOpenAll: {\n displayName: \"Default open all\",\n type: \"boolean\",\n },\n hideMenuWhenCollapsed: {\n // displayName: \"\",\n type: \"boolean\",\n },\n },\n },\n },\n\n defaultStyles: {\n width: \"full-bleed\",\n height: \"stretch\",\n minHeight: \"100vh\",\n },\n\n importName: \"RichLayout\",\n importPath: \"@plasmicpkgs/plasmic-rich-components\",\n};\n\nexport function registerRichLayout(loader?: Registerable) {\n registerComponentHelper(loader, RichLayout, richLayoutMeta);\n}\n","import { EllipsisOutlined, PlusOutlined } from \"@ant-design/icons\";\nimport {\n ActionType,\n ProColumns,\n ProTable,\n TableDropdown,\n} from \"@ant-design/pro-components\";\nimport { TableSchema } from \"@plasmicapp/data-sources\";\nimport { Button, Dropdown } from \"antd\";\nimport type { SizeType } from \"antd/es/config-provider/SizeContext\";\nimport type { GetRowKey, SorterResult } from \"antd/es/table/interface\";\nimport { createObjectCsvStringifier } from \"csv-writer-browser\";\nimport fastStringify from \"fast-stringify\";\nimport React, { ReactNode, useRef, useState } from \"react\";\nimport { useIsClient } from \"../common\";\nimport {\n BaseColumnConfig,\n FieldfulProps,\n RowFunc,\n deriveFieldConfigs,\n deriveValueType,\n mkShortId,\n} from \"../field-mappings\";\nimport { NormalizedData, normalizeData } from \"../queries\";\nimport { renderValue } from \"../formatting\";\n\n// Avoid csv-stringify, it doesn't directly work in browser without Buffer polyfill.\n\nexport interface Action {\n type: \"edit\" | \"view\" | \"delete\" | \"custom\";\n label?: string;\n moreMenu?: boolean;\n}\n\nexport interface ControlContextData {\n data: unknown[];\n schema?: TableSchema;\n mergedFields: TableColumnConfig[];\n minimalFullLengthFields: Partial<TableColumnConfig>[];\n}\n\ninterface RowActionItem {\n type: \"item\";\n label: string;\n onClick: (rowKey: string, row: any) => void;\n}\n\ninterface RowActionMenu {\n type: \"menu\";\n label: string;\n children?: RowActionItem[];\n}\n\ntype RowAction = RowActionItem | RowActionMenu;\n\nexport interface RichTableProps extends FieldfulProps<TableColumnConfig> {\n defaultSize?: SizeType;\n pagination?: boolean;\n\n canSelectRows?: \"none\" | \"click\" | \"single\" | \"multiple\";\n\n selectedRowKey?: string | string[];\n onRowSelectionChanged?: (rowKeys: string[], rows: any[]) => void;\n onRowClick?: (rowKey: string, row: any, event: React.MouseEvent) => void;\n\n rowKey?: string | GetRowKey<any>;\n rowActions?: RowAction[];\n\n title?: ReactNode;\n\n addHref?: string;\n\n actions?: Action[];\n customActionChildren?: ReactNode;\n\n pageSize?: number;\n\n hideSearch?: boolean;\n hideDensity?: boolean;\n hideColumnPicker?: boolean;\n hideExports?: boolean;\n hideSelectionBar?: boolean;\n\n scopeClassName?: string;\n themeResetClassName?: string;\n}\n\nexport function RichTable(props: RichTableProps) {\n const {\n className,\n data: rawData = {\n data: [],\n schema: {\n id: \"inferred\",\n fields: [\n {\n id: \"id\",\n type: \"string\",\n readOnly: false,\n },\n ],\n },\n },\n // children,\n pagination = true,\n defaultSize,\n title,\n addHref,\n pageSize = 10,\n hideSearch,\n hideDensity = true,\n hideColumnPicker,\n hideExports,\n hideSelectionBar = true,\n rowKey,\n scopeClassName,\n } = props;\n\n const data = normalizeData(rawData);\n\n const { columnDefinitions, normalized } = useColumnDefinitions(data, props);\n\n const actionRef = useRef<ActionType>();\n\n const { finalData, search, setSearch, setSortState } = useSortedFilteredData(\n data,\n normalized\n );\n\n const rowSelectionProps = useRowSelectionProps(data, props);\n\n const isClient = useIsClient();\n\n if (!isClient) {\n return null;\n }\n\n return (\n <div className={`${className} ${scopeClassName ?? \"\"}`}>\n <ProTable\n rowClassName={\n props.onRowClick || props.canSelectRows === \"click\"\n ? \"plasmic-table-row-clickable\"\n : undefined\n }\n actionRef={actionRef}\n columns={columnDefinitions}\n onChange={(_pagination, _filters, sorter, _extra) => {\n setSortState({ sorter: sorter as any });\n }}\n style={{\n width: \"100%\",\n }}\n cardProps={{\n ghost: true,\n }}\n {...rowSelectionProps}\n dataSource={finalData}\n rowKey={deriveRowKey(data, rowKey)}\n defaultSize={defaultSize}\n editable={{ type: \"multiple\" }}\n search={false}\n options={{\n setting: hideColumnPicker\n ? false\n : {\n listsHeight: 400,\n },\n reload: false,\n density: !hideDensity,\n }}\n pagination={\n pagination\n ? {\n pageSize,\n onChange: (page) => console.log(page),\n showSizeChanger: false,\n }\n : false\n }\n dateFormatter=\"string\"\n headerTitle={title}\n toolbar={{\n search: !hideSearch\n ? {\n value: search,\n onChange: (e) => setSearch(e.target.value),\n onSearch: () => {\n return;\n },\n placeholder: \"Search\",\n }\n : undefined,\n }}\n toolBarRender={() =>\n [\n addHref && (\n <Button\n key=\"button\"\n icon={<PlusOutlined />}\n type=\"primary\"\n href={addHref}\n >\n Add\n </Button>\n ),\n !hideExports && <ExportMenu data={data} />,\n ].filter((x) => !!x)\n }\n />\n {/*Always hide the weird pin left/right buttons for now, which also have render layout issues*/}\n <style\n dangerouslySetInnerHTML={{\n __html: `\n :where(.css-dev-only-do-not-override-1p704s4).ant-pro-table-column-setting-overlay .ant-tree-treenode:hover .ant-pro-table-column-setting-list-item-option {\n display: none;\n }\n :where(.plasmic-table-row-clickable) {\n cursor: pointer;\n }\n .ant-pro-table-list-toolbar-right {\n flex-wrap: initial;\n flex-shrink: 0;\n }\n .ant-pro-table, .ant-pro-table > .ant-pro-card, .ant-pro-table .ant-table-wrapper, .ant-pro-table .ant-spin-nested-loading, .ant-pro-table .ant-table-container {\n height: 100%;\n }\n .ant-pro-table .ant-spin-container {\n height: 100%;\n display: flex;\n flex-direction: column;\n }\n .ant-pro-table .ant-table {\n flex-grow: 1;\n min-height: 0;\n }\n .ant-pro-table .ant-pagination {\n flex-shrink: 0;\n }\n .ant-pro-table .ant-table-content {\n overflow: auto !important;\n height: 100%;\n }\n .ant-pro-table > .ant-pro-card > .ant-pro-card-body {\n display: flex;\n flex-direction: column;\n }\n .ant-pro-table .ant-table-wrapper {\n flex-grow: 1;\n min-height: 0;\n }\n .ant-pro-table .ant-table-thead > tr > th, .ant-pro-table .ant-table-thead > tr > td.ant-table-selection-column {\n position: sticky;\n top: 0;\n z-index: 2;\n }\n .ant-pro-table .ant-table-thead > tr > th.ant-table-cell-fix-left, .ant-pro-table .ant-table-thead > tr > th.ant-table-cell-fix-right {\n z-index: 3;\n }\n .ant-pro-table .ant-table-tbody > tr > td {\n z-index: 0;\n }\n .ant-pro-table .ant-table-tbody > tr > td.ant-table-cell-fix-left,.ant-pro-table .ant-table-tbody > tr > td.ant-table-cell-fix-right {\n z-index: 1;\n }\n ${\n scopeClassName && hideSelectionBar\n ? `\n .${scopeClassName} .ant-pro-table-alert {\n display: none;\n }\n `\n : \"\"\n }\n `,\n }}\n />\n </div>\n );\n}\n\nexport function deriveRowKey(\n data: React.ComponentProps<typeof RichTable>[\"data\"],\n rowKey: React.ComponentProps<typeof RichTable>[\"rowKey\"]\n) {\n if (rowKey) {\n return rowKey;\n }\n const schema = data?.schema;\n if (schema) {\n return schema.fields[0]?.id;\n }\n return undefined;\n}\n\nexport function deriveKeyOfRow(\n row: any,\n rowKey: React.ComponentProps<typeof RichTable>[\"rowKey\"]\n) {\n if (typeof rowKey === \"function\") {\n return rowKey(row);\n } else if (typeof rowKey === \"string\") {\n return row[rowKey];\n } else {\n return undefined;\n }\n}\n\ninterface StyleConfig {\n styles: Record<string, any>;\n align: \"left\" | \"center\" | \"right\";\n freeze: \"off\" | \"left\" | \"right\";\n}\n\nconst defaultColumnConfig = (): TableColumnConfig =>\n ({\n key: mkShortId(),\n isEditableExpr: () => false,\n disableSorting: false,\n sortByExpr: undefined,\n isHidden: false,\n formatting: {\n styles: {},\n align: \"left\",\n freeze: \"off\",\n },\n dataType: \"auto\" as const,\n } as const);\n\nexport type TableColumnConfig = BaseColumnConfig & {\n isEditableExpr: RowFunc<boolean>;\n disableSorting: boolean;\n sortByExpr?: RowFunc<any>;\n formatting: StyleConfig;\n};\n\nfunction useColumnDefinitions(\n data: NormalizedData | undefined,\n props: React.ComponentProps<typeof RichTable>\n) {\n const { fields, setControlContextData, rowActions } = props;\n return React.useMemo(() => {\n const schema = data?.schema;\n if (!data || !schema) {\n return { normalized: [], columnDefinitions: [] };\n }\n const { mergedFields, minimalFullLengthFields } =\n deriveFieldConfigs<TableColumnConfig>(fields ?? [], schema, (field) => ({\n ...defaultColumnConfig(),\n ...(field && {\n key: field.id,\n fieldId: field.id,\n title: field.label || field.id,\n expr: (currentItem) => currentItem[field.id],\n }),\n }));\n setControlContextData?.({ ...data, mergedFields, minimalFullLengthFields });\n const normalized = mergedFields;\n const columnDefinitions: ProColumns<any, any>[] = normalized\n .filter((cconfig) => !cconfig.isHidden)\n .map((cconfig, _columnIndex, _columnsArray) => {\n const columnDefinition: ProColumns<any, any> = {\n dataIndex: cconfig.fieldId,\n title: cconfig.title,\n // dataIndex: cconfig,\n key: cconfig.key,\n valueType: deriveValueType(cconfig),\n\n // To come later\n readonly: false,\n sorter: true,\n copyable: false,\n ellipsis: false,\n tip: undefined,\n formItemProps: {\n rules: [],\n },\n disable: false,\n valueEnum: undefined,\n search: undefined,\n hideInSearch: false,\n renderFormItem: (_, { defaultRender }) => {\n return defaultRender(_);\n },\n\n render: (value: any, record: any, rowIndex: any) => {\n const cellValue = cconfig.fieldId\n ? record[cconfig.fieldId]\n : undefined;\n return renderValue(cellValue, record, cconfig);\n },\n };\n\n return columnDefinition;\n });\n if (rowActions && rowActions.length > 0) {\n columnDefinitions.push({\n title: \"Actions\",\n valueType: \"option\",\n key: \"__plasmicActions\",\n fixed: \"right\",\n className: props.themeResetClassName,\n render: (_text, row) => [\n ...rowActions.map((_action) => {\n if (_action.type === \"item\") {\n return (\n <a\n key={_action.label}\n style={{\n whiteSpace: \"nowrap\",\n }}\n onClick={() =>\n _action.onClick?.(\n deriveKeyOfRow(row, deriveRowKey(data, props.rowKey)),\n row\n )\n }\n >\n {_action.label}\n </a>\n );\n } else {\n return (\n <TableDropdown\n key={_action.label}\n style={{\n whiteSpace: \"nowrap\",\n }}\n menus={(_action.children ?? []).map((child) => ({\n key: child.label,\n name: child.label,\n onClick: () =>\n child.onClick?.(\n deriveKeyOfRow(row, deriveRowKey(data, props.rowKey)),\n row\n ),\n }))}\n >\n {_action.label}\n </TableDropdown>\n );\n }\n }),\n ],\n });\n }\n return { normalized, columnDefinitions };\n }, [fields, data, setControlContextData, rowActions]);\n}\n\nfunction useSortedFilteredData(\n data: NormalizedData | undefined,\n columns: TableColumnConfig[]\n) {\n const [search, setSearch] = useState(\"\");\n const [sortState, setSortState] = useState<\n undefined | { sorter: SorterResult<Record<string, any>> }\n >(undefined);\n const finalData = React.useMemo(() => {\n const filtered = data?.data?.filter((row) =>\n fastStringify(Object.values(row)).toLowerCase().includes(search)\n );\n const sorted = sortState?.sorter.column\n ? // We use .sort() rather than sortBy to use localeCompare\n (() => {\n const cconfig = columns.find(\n (cc) => cc.key === sortState?.sorter.column?.key\n )!;\n const expr = cconfig.expr ?? ((x) => x);\n return (filtered ?? []).sort((aa, bb) => {\n const a =\n expr(aa, cconfig.fieldId ? aa?.[cconfig.fieldId] : null) ??\n null,\n b =\n expr(bb, cconfig.fieldId ? bb?.[cconfig.fieldId] : null) ??\n null;\n // Default nil to '' here because A < null < z which is weird.\n return typeof a === \"string\"\n ? a.localeCompare(b ?? \"\")\n : typeof b === \"string\"\n ? -b.localeCompare(a ?? \"\")\n : a - b;\n });\n })()\n : filtered;\n const reversed =\n sortState?.sorter.order === \"descend\" ? sorted?.reverse() : sorted;\n return reversed;\n }, [data, columns, sortState, search]);\n\n return {\n finalData,\n search,\n setSearch,\n setSortState,\n };\n}\n\nfunction useRowSelectionProps(\n data: NormalizedData | undefined,\n props: React.ComponentProps<typeof RichTable>\n): Partial<React.ComponentProps<typeof ProTable>> {\n const {\n canSelectRows,\n selectedRowKey,\n onRowSelectionChanged,\n rowKey,\n onRowClick,\n } = props;\n const deriveSelectedRowKeys = () => {\n if (\n !canSelectRows ||\n canSelectRows === \"none\" ||\n !deriveRowKey(data, rowKey)\n ) {\n return [];\n }\n\n if (typeof selectedRowKey === \"string\") {\n return [selectedRowKey];\n } else if (Array.isArray(selectedRowKey)) {\n if (canSelectRows === \"single\" || canSelectRows === \"click\") {\n return selectedRowKey.slice(0, 1);\n } else {\n return selectedRowKey;\n }\n } else {\n return [];\n }\n };\n\n const rowSelection: React.ComponentProps<typeof ProTable>[\"rowSelection\"] =\n canSelectRows && canSelectRows !== \"none\"\n ? {\n type:\n canSelectRows === \"single\" || canSelectRows === \"click\"\n ? \"radio\"\n : \"checkbox\",\n selectedRowKeys: deriveSelectedRowKeys(),\n onChange: (rowKeys, rows) => {\n onRowSelectionChanged?.(rowKeys as string[], rows);\n },\n alwaysShowAlert: true,\n ...(canSelectRows === \"click\" && {\n renderCell: () => null,\n columnWidth: 0,\n columnTitle: null,\n hideSelectAll: true,\n }),\n }\n : undefined;\n return {\n rowSelection,\n onRow: (row) => ({\n onClick: (event) => {\n const key = deriveKeyOfRow(row, deriveRowKey(data, rowKey));\n if (key) {\n if (canSelectRows === \"click\") {\n // Some heuristics to avoid selecting a row when\n // the object clicked is interactable -- like button, anchor,\n // input, etc. This won't be bulletproof, so just some\n // heuristics!\n const target = event.target as HTMLElement;\n if (!isInteractable(target)) {\n onRowSelectionChanged?.([key], [row]);\n }\n }\n onRowClick?.(key, row, event);\n }\n },\n }),\n };\n}\n\nfunction isInteractable(target: HTMLElement) {\n if ([\"A\", \"BUTTON\", \"INPUT\", \"TEXTAREA\", \"SELECT\"].includes(target.tagName)) {\n return true;\n }\n if (target.contentEditable === \"true\") {\n return true;\n }\n\n return false;\n}\n\nfunction ExportMenu(props: { data: NormalizedData | undefined }) {\n const { data } = props;\n\n return (\n <Dropdown\n key=\"menu\"\n menu={{\n items: [\n {\n label: \"Download as CSV\",\n key: \"csv\",\n onClick: async () => {\n const writer = createObjectCsvStringifier({\n header:\n data?.schema?.fields.map((f) => ({\n id: f.id,\n title: f.id,\n })) ?? [],\n });\n const dataStr =\n writer.getHeaderString() +\n writer.stringifyRecords(data?.data as any);\n\n // const dataStr = stringify(data?.data as any, {\n // columns:\n // tryGetSchema(data)?.fields.map((f) => f.id) ?? [],\n // header: true,\n // });\n\n const filename = \"data.csv\";\n\n // Adapted from https://stackoverflow.com/a/68771795\n const blob = new Blob([dataStr], {\n type: \"text/csv;charset=utf-8;\",\n });\n if ((navigator as any).msSaveBlob) {\n // In case of IE 10+\n (navigator as any).msSaveBlob(blob, filename);\n } else {\n const link = document.createElement(\"a\");\n if (link.download !== undefined) {\n // Browsers that support HTML5 download attribute\n const url = URL.createObjectURL(blob);\n link.setAttribute(\"href\", url);\n link.setAttribute(\"download\", filename);\n link.style.visibility = \"hidden\";\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\n }\n }\n },\n },\n {\n label: \"Download as JSON\",\n key: \"json\",\n onClick: () => {\n const dataStr = fastStringify(data?.data);\n const dataUri = `data:application/json;charset=utf-8, ${encodeURIComponent(\n dataStr\n )}`;\n\n const exportFileDefaultName = \"data.json\";\n\n const linkElement = document.createElement(\"a\");\n linkElement.setAttribute(\"href\", dataUri);\n linkElement.setAttribute(\"download\", exportFileDefaultName);\n linkElement.click();\n },\n },\n ],\n }}\n >\n <Button>\n <EllipsisOutlined />\n </Button>\n </Dropdown>\n );\n}\n","import { ComponentMeta } from \"@plasmicapp/host/registerComponent\";\nimport { buildFieldsPropType } from \"../field-mappings\";\nimport { Registerable, registerComponentHelper } from \"../utils\";\nimport {\n RichTable,\n RichTableProps,\n TableColumnConfig,\n deriveRowKey,\n} from \"./RichTable\";\n\nexport * from \"./RichTable\";\nexport default RichTable;\n\nexport const tableHelpers = {\n states: {\n selectedRow: {\n onChangeArgsToValue: (rowKeys: string[], rows: any[]) => {\n return rows[0];\n },\n },\n selectedRows: {\n onChangeArgsToValue: (rowKeys: string[], rows: any[]) => {\n return rows;\n },\n },\n selectedRowKey: {\n onChangeArgsToValue: (rowKeys: string[], rows: any[]) => {\n return rowKeys;\n },\n },\n },\n};\n\nconst dataTableMeta: ComponentMeta<RichTableProps> = {\n name: \"hostless-rich-table\",\n displayName: \"Table\",\n defaultStyles: {\n width: \"stretch\",\n padding: \"16px\",\n maxHeight: \"100%\",\n },\n props: {\n data: {\n type: \"dataSourceOpData\" as any,\n description: \"The data to display in the table\",\n },\n\n fields: buildFieldsPropType<TableColumnConfig, RichTableProps>({}),\n\n canSelectRows: {\n type: \"choice\",\n displayName: \"Select rows?\",\n options: [\n { label: \"No\", value: \"none\" },\n { label: \"By clicking a row\", value: \"click\" },\n { label: \"Using radio buttons\", value: \"single\" },\n { label: \"Using checkboxes\", value: \"multiple\" },\n ],\n defaultValueHint: \"none\",\n description:\n \"Lets user select table rows by clicking on a row, or using radio buttons, or checkboxes if multiple rows can be selected together. If you have interactive elements in your row and you don't want clicking on them to select the row, you may use radio buttons instead.\",\n },\n\n rowKey: {\n type: \"string\",\n displayName: \"Row key\",\n helpText:\n \"Column key to use as row key; can also be a function that takes in a row and returns a key value\",\n hidden: (ps) => !ps.canSelectRows || ps.canSelectRows === \"none\",\n defaultValueHint: (ps) => {\n const derivedRowKey = deriveRowKey(ps.data, ps.rowKey);\n return derivedRowKey !== undefined ? `${derivedRowKey}` : undefined;\n },\n },\n\n selectedRowKey: {\n type: \"string\",\n displayName: \"Selected Row Key\",\n hidden: (ps) => ps.canSelectRows !== \"single\",\n advanced: true,\n },\n selectedRowKeys: {\n type: \"array\",\n displayName: \"Selected Row Keys\",\n hidden: (ps) => ps.canSelectRows !== \"multiple\",\n advanced: true,\n },\n onRowSelectionChanged: {\n type: \"eventHandler\",\n displayName: \"On row selection changed\",\n argTypes: [\n { name: \"rowKeys\", type: \"object\" },\n { name: \"rows\", type: \"object\" },\n ],\n },\n onRowClick: {\n type: \"eventHandler\",\n displayName: \"On row clicked\",\n argTypes: [\n { name: \"rowKey\", type: \"string\" },\n { name: \"row\", type: \"object\" },\n { name: \"event\", type: \"object\" },\n ],\n },\n\n rowActions: {\n type: \"array\",\n displayName: \"Row actions\",\n advanced: true,\n itemType: {\n type: \"object\",\n nameFunc: (item) => item.label,\n fields: {\n type: {\n type: \"choice\",\n options: [\"item\", \"menu\"],\n defaultValue: \"item\",\n },\n label: {\n type: \"string\",\n displayName: \"Action label\",\n },\n children: {\n type: \"array\",\n displayName: \"Menu items\",\n itemType: {\n type: \"object\",\n fields: {\n label: {\n type: \"string\",\n displayName: \"Action label\",\n },\n onClick: {\n type: \"eventHandler\",\n argTypes: [\n { name: \"rowKey\", type: \"string\" },\n { name: \"row\", type: \"object\" },\n ],\n },\n },\n },\n hidden: (ps, ctx, { item }) => item.type !== \"menu\",\n },\n onClick: {\n type: \"eventHandler\",\n displayName: \"Action\",\n argTypes: [\n { name: \"rowKey\", type: \"string\" },\n { name: \"row\", type: \"object\" },\n ],\n hidden: (ps, ctx, { item }) => item.type !== \"item\",\n },\n },\n },\n },\n\n defaultSize: {\n displayName: \"Density\",\n type: \"choice\",\n options: [\n {\n value: \"large\",\n label: \"Larger\",\n },\n {\n value: \"middle\",\n label: \"Medium\",\n },\n {\n value: \"small\",\n label: \"Compact\",\n },\n ],\n defaultValueHint: \"large\",\n advanced: true,\n },\n\n pageSize: {\n type: \"number\",\n defaultValueHint: 10,\n advanced: true,\n },\n\n pagination: {\n type: \"boolean\",\n advanced: true,\n defaultValueHint: true,\n },\n\n hideSearch: {\n type: \"boolean\",\n description: \"Hides the search toolbar\",\n advanced: true,\n },\n\n hideExports: {\n type: \"boolean\",\n description: \"Hides the button for exporting table data to CSV\",\n advanced: true,\n },\n\n hideDensity: {\n type: \"boolean\",\n description: \"Hides the control for changing the density of the table\",\n advanced: true,\n defaultValueHint: true,\n },\n\n hideColumnPicker: {\n type: \"boolean\",\n description: \"Hides the control for reordering and pinning columns\",\n advanced: true,\n },\n\n hideSelectionBar: {\n type: \"boolean\",\n description: \"Hides the toolbar that allows the user to clear selection\",\n advanced: true,\n hidden: (ps) => !ps.canSelectRows || ps.canSelectRows === \"none\",\n defaultValueHint: true,\n },\n scopeClassName: {\n type: \"styleScopeClass\",\n scopeName: \"instance\",\n } as any,\n themeResetClassName: {\n type: \"themeResetClass\",\n targetAllTags: true,\n },\n },\n states: {\n selectedRowKey: {\n type: \"writable\",\n valueProp: \"selectedRowKey\",\n onChangeProp: \"onRowSelectionChanged\",\n variableType: \"text\",\n ...tableHelpers.states.selectedRowKey,\n },\n selectedRow: {\n type: \"readonly\",\n onChangeProp: \"onRowSelectionChanged\",\n variableType: \"object\",\n ...tableHelpers.states.selectedRow,\n },\n selectedRows: {\n type: \"readonly\",\n onChangeProp: \"onRowSelectionChanged\",\n variableType: \"array\",\n ...tableHelpers.states.selectedRows,\n },\n },\n componentHelpers: {\n helpers: tableHelpers,\n importName: \"tableHelpers\",\n importPath: \"@plasmicpkgs/plasmic-rich-components\",\n },\n importName: \"RichTable\",\n importPath: \"@plasmicpkgs/plasmic-rich-components\",\n};\n\nexport function registerRichTable(loader?: Registerable) {\n registerComponentHelper(loader, RichTable, dataTableMeta);\n}\n","import { registerRichDetails } from \"./rich-details\";\nimport { registerRichLayout } from \"./rich-layout\";\nimport { registerRichTable } from \"./rich-table\";\nimport { Registerable } from \"./utils\";\n\nexport { RichLayout } from \"./rich-layout\";\nexport { RichTable, tableHelpers } from \"./rich-table\";\nexport { RichDetails } from \"./rich-details\";\n\nexport function registerAll(loader?: Registerable) {\n registerRichLayout(loader);\n registerRichTable(loader);\n registerRichDetails(loader);\n}\n"],"names":["registerComponent","React","Checkbox","Switch","useColumnDefinitions","Empty","ProDescriptions","useState","useEffect","tinycolor","theme","ProLayout","ConfigProvider","ProConfigProvider","Dropdown","LogoutOutlined","useRef","ProTable","Button","PlusOutlined","TableDropdown","fastStringify","createObjectCsvStringifier","EllipsisOutlined"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAiBA;AACO,IAAI,QAAQ,GAAG,WAAW;AACjC,IAAI,QAAQ,GAAG,MAAM,CAAC,MAAM,IAAI,SAAS,QAAQ,CAAC,CAAC,EAAE;AACrD,QAAQ,KAAK,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;AAC7D,YAAY,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;AAC7B,YAAY,KAAK,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACzF,SAAS;AACT,QAAQ,OAAO,CAAC,CAAC;AACjB,MAAK;AACL,IAAI,OAAO,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;AAC3C,EAAC;AACD;AACO,SAAS,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE;AAC7B,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;AACf,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;AACvF,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACpB,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,OAAO,MAAM,CAAC,qBAAqB,KAAK,UAAU;AACvE,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,qBAAqB,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAChF,YAAY,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,SAAS,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1F,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAClC,SAAS;AACT,IAAI,OAAO,CAAC,CAAC;AACb,CAAC;AAgBD;AACO,SAAS,SAAS,CAAC,OAAO,EAAE,UAAU,EAAE,CAAC,EAAE,SAAS,EAAE;AAC7D,IAAI,SAAS,KAAK,CAAC,KAAK,EAAE,EAAE,OAAO,KAAK,YAAY,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC,CAAC,UAAU,OAAO,EAAE,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE;AAChH,IAAI,OAAO,KAAK,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,EAAE,UAAU,OAAO,EAAE,MAAM,EAAE;AAC/D,QAAQ,SAAS,SAAS,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE;AACnG,QAAQ,SAAS,QAAQ,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE;AACtG,QAAQ,SAAS,IAAI,CAAC,MAAM,EAAE,EAAE,MAAM,CAAC,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,EAAE;AACtH,QAAQ,IAAI,CAAC,CAAC,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE,UAAU,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;AAC9E,KAAK,CAAC,CAAC;AACP,CAAC;AACD;AACO,SAAS,WAAW,CAAC,OAAO,EAAE,IAAI,EAAE;AAC3C,IAAI,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AACrH,IAAI,OAAO,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,OAAO,MAAM,KAAK,UAAU,KAAK,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,WAAW,EAAE,OAAO,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AAC7J,IAAI,SAAS,IAAI,CAAC,CAAC,EAAE,EAAE,OAAO,UAAU,CAAC,EAAE,EAAE,OAAO,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE;AACtE,IAAI,SAAS,IAAI,CAAC,EAAE,EAAE;AACtB,QAAQ,IAAI,CAAC,EAAE,MAAM,IAAI,SAAS,CAAC,iCAAiC,CAAC,CAAC;AACtE,QAAQ,OAAO,CAAC,EAAE,IAAI;AACtB,YAAY,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;AACzK,YAAY,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;AACpD,YAAY,QAAQ,EAAE,CAAC,CAAC,CAAC;AACzB,gBAAgB,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,MAAM;AAC9C,gBAAgB,KAAK,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;AACxE,gBAAgB,KAAK,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS;AACjE,gBAAgB,KAAK,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,SAAS;AACjE,gBAAgB;AAChB,oBAAoB,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,EAAE;AAChI,oBAAoB,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE;AAC1G,oBAAoB,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE;AACzF,oBAAoB,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE;AACvF,oBAAoB,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;AAC1C,oBAAoB,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,SAAS;AAC3C,aAAa;AACb,YAAY,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;AACvC,SAAS,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE;AAClE,QAAQ,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;AACzF,KAAK;AACL,CAAC;AA0DD;AACO,SAAS,aAAa,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE;AAC9C,IAAI,IAAI,IAAI,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;AACzF,QAAQ,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,IAAI,CAAC,EAAE;AAChC,YAAY,IAAI,CAAC,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACjE,YAAY,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;AAC5B,SAAS;AACT,KAAK;AACL,IAAI,OAAO,EAAE,CAAC,MAAM,CAAC,EAAE,IAAI,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AAC7D;;SCrIgB,uBAAuB,CACrC,MAAgC,EAChC,SAAY,EACZ,IAA4C,EAAA;AAE5C,IAAA,IAAI,MAAM,EAAE;AACV,QAAA,MAAM,CAAC,iBAAiB,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;AAC3C,KAAA;AAAM,SAAA;AACL,QAAAA,kCAAiB,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;AACpC,KAAA;AACH,CAAC;AA8Ce,SAAA,OAAO,CAAiB,IAAO,EAAE,GAAiB,EAAA;AAChE,IAAA,OAAO,GAAG,CAAC,QAAQ,CAAC,IAAW,CAAC,CAAC;AACnC;;AC5FO,IAAM,KAAK,GAAG,YAAA;IAAkB,IAAU,IAAA,GAAA,EAAA,CAAA;SAAV,IAAU,EAAA,GAAA,CAAA,EAAV,EAAU,GAAA,SAAA,CAAA,MAAA,EAAV,EAAU,EAAA,EAAA;QAAV,IAAU,CAAA,EAAA,CAAA,GAAA,SAAA,CAAA,EAAA,CAAA,CAAA;;AAAQ,IAAA,OAAA,IAAI,CAAA;AAAJ,CAAI,CAAC;AAMxD,SAAU,OAAO,CAAkB,EAAoB,EAAA;IAC3D,OAAO,IAAI,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,UAAC,CAAC,EAAK,EAAA,OAAA,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAgB,CAA7B,EAA6B,CAAC,CAAC,CAAC;AAC/D,CAAC;AAEM,IAAM,SAAS,GAAG,cAAM,OAAA,EAAA,CAAA,MAAA,CAAG,IAAI,CAAC,MAAM,EAAE,CAAE,CAAA,EAAA,CAAC;AAElD,SAAS,WAAW,CAAI,EAA+B,EAAA;AACrD,IAAA,OAAO,EAAE,CAAC,MAAM,CAAC,UAAC,CAAC,EAAA,EAAa,OAAA,CAAC,IAAI,IAAI,CAAT,EAAS,CAAC,CAAC;AAC7C,CAAC;AAwBM,IAAM,yBAAyB,GAAqB;AACzD,IAAA,QAAQ,EAAE,UAAU;AACpB,IAAA,QAAQ,EAAE,KAAK;AACf,IAAA,eAAe,EAAE,cAAc;CAChC,CAAC;AAMK,IAAM,YAAY,GAAG,CAAC,QAAQ,EAAE,SAAS,EAAE,UAAU,CAAU,CAAC;AAUhE,IAAM,yBAAyB,GAAqB;AACzD,IAAA,QAAQ,EAAE,UAAU;AACpB,IAAA,MAAM,EAAE,OAAO;AACf,IAAA,SAAS,EAAE,OAAO;AAClB,IAAA,SAAS,EAAE,OAAO;AAClB,IAAA,MAAM,EAAE,IAAI;CACb,CAAC;AASK,IAAM,kCAAkC,GAA6B;AAC1E,IAAA,QAAQ,EAAE,mBAAmB;AAC7B,IAAA,MAAM,EAAE,OAAO;AACf,IAAA,OAAO,EAAE,QAAQ;AACjB,IAAA,KAAK,EAAE,MAAM;AACb,IAAA,IAAI,EAAE,KAAK;CACZ,CAAC;AACK,IAAM,cAAc,GAAG,CAAC,UAAU,EAAE,mBAAmB,CAAU,CAAC;AAMlE,IAAM,wBAAwB,GAAoB;AACvD,IAAA,QAAQ,EAAE,SAAS;AACnB,IAAA,MAAM,EAAE,UAAU;CACnB,CAAC;SAoCc,kBAAkB,CAChC,sBAA+C,EAC/C,MAA+B,EAC/B,iBAAwE,EAAA;;AAKxE,IAAA,IAAM,YAAY,GAAG,CAAA,EAAA,GAAA,MAAM,KAAN,IAAA,IAAA,MAAM,KAAN,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,MAAM,CAAE,MAAM,MAAI,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAA,EAAE,CAAC;AAC1C,IAAA,IAAM,SAAS,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;IACxC,IAAM,iBAAiB,GAAG,IAAI,GAAG,CAC/B,WAAW,CAAC,sBAAsB,CAAC,GAAG,CAAC,UAAC,CAAC,EAAA,EAAK,OAAA,CAAC,CAAC,OAAO,GAAA,CAAC,CAAC,CAC1D,CAAC;IACF,IAAM,mBAAmB,GAAG,sBAAsB,CAAC,OAAO,CACxD,UAAC,CAAC,EAAE,KAAK,EAAA;AACP,QAAA,IAAM,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC;QAC1B,IAAI,CAAC,OAAO,EAAE;YACZ,OAAO;+CACA,iBAAiB,CAAC,SAAS,CAAC,CAAA,EAAA,EAAE,GAAG,EAAE,KAAK,KAAK,CAAC,CAAA;aAClC,CAAC;AACrB,SAAA;QACD,IAAM,KAAK,GAAG,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;;QAGrC,IAAI,CAAC,KAAK,EAAE;AACV,YAAA,OAAO,EAAE,CAAC;AACX,SAAA;QAED,OAAO;AAEA,YAAA,QAAA,CAAA,QAAA,CAAA,EAAA,EAAA,iBAAiB,CAAC,KAAK,CAAC,CAAA,EACxB,CAAC,CAAA;SAEW,CAAC;AACtB,KAAC,CACF,CAAC;IACF,IAAM,gBAAgB,GAAG,YAAY;AAClC,SAAA,MAAM,CAAC,UAAC,CAAC,EAAK,EAAA,OAAA,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA,EAAA,CAAC;AAC3C,SAAA,GAAG,CACF,UAAC,CAAC,EAAA,EAAmB,QAChB,QAAA,CAAA,EAAA,EAAA,iBAAiB,CAAC,CAAC,CAAC,CAAA,EADJ,EAEnB,CACH,CAAC;AACJ,IAAA,IAAM,YAAY,GAAO,aAAA,CAAA,aAAA,CAAA,EAAA,EAAA,mBAAmB,EAAK,IAAA,CAAA,EAAA,gBAAgB,OAAC,CAAC;AACnE,IAAA,IAAM,uBAAuB,GAA4B,aACpD,CAAA,aAAA,CAAA,EAAA,EAAA,sBAAsB,SACtB,gBAAgB,CAAC,GAAG,CAAC,UAAC,CAAC,EAAK,EAAA,QAAC,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,EAAC,EAAA,CAAC,OAC1C,CAAC;AAC7B,IAAA,OAAO,EAAE,YAAY,EAAA,YAAA,EAAE,uBAAuB,EAAA,uBAAA,EAAE,CAAC;AACnD,CAAC;AAEK,SAAU,eAAe,CAAC,OAAyB,EAAA;AACvD,IAAA,OAAO,OAAO,CAAC,QAAQ,KAAK,MAAM;AAChC,UAAE,SAAS;AACX,UAAE,OAAO,CAAC,QAAQ,KAAK,QAAQ;AAC/B,cAAE,MAAM;AACR,cAAE,OAAO,CAAC,QAAQ,KAAK,QAAQ;AAC/B,kBAAE,OAAO;AACT,kBAAE,OAAO,CAAC,QAAQ,KAAK,SAAS;AAChC,sBAAE,QAAQ;sBACR,SAAS,CAAC;AAChB,CAAC;AAgBK,SAAU,mBAAmB,CAGjC,IAAoD,EAAA;IACpD,SAAS,mBAAmB,CAAC,KAAyB,EAAA;AACpD,QAAA,OAAO,UACL,MAAW,EACX,WAAoD,EACpD,EAAa,EAAA;AAAX,YAAA,IAAA,IAAI,GAAA,EAAA,CAAA,IAAA,CAAA;YAEN,IAAI,IAAI,CAAC,OAAO,EAAE;gBAChB,IAAM,YAAY,GAAG,WAAW,KAAX,IAAA,IAAA,WAAW,KAAX,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,WAAW,CAAE,YAAY,CAAC,IAAI,CACjD,UAAC,CAAC,EAAK,EAAA,OAAA,CAAC,CAAC,OAAO,KAAK,IAAI,CAAC,OAAO,CAAA,EAAA,CAClC,CAAC;gBACF,OAAO,YAAY,aAAZ,YAAY,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAZ,YAAY,CAAG,KAAK,CAAC,CAAC;AAC9B,aAAA;AACD,YAAA,OAAO,SAAS,CAAC;AACnB,SAAC,CAAC;KACH;AAED,IAAA,IAAM,WAAW,GAAG,UAAC,WAAmB,EAAE,OAAa,EAAA;AACrD,QAAA,QAAC;AACC,YAAA,IAAI,EAAE,UAAiB;AACvB,YAAA,WAAW,EAAA,WAAA;AACX,YAAA,OAAO,EAAA,OAAA;AACP,YAAA,QAAQ,EAAE,CAAC,aAAa,EAAE,cAAc,CAAC;AACzC,YAAA,SAAS,EAAE,UAAC,MAAW,EAAE,GAAQ,EAAE,EAAa,EAAA;;AAAX,gBAAA,IAAA,IAAI,GAAA,EAAA,CAAA,IAAA,CAAA;AACvC,gBAAA,IAAM,GAAG,GAAG,CAAA,EAAA,GAAA,GAAG,KAAH,IAAA,IAAA,GAAG,KAAH,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,GAAG,CAAE,IAAI,MAAG,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,CAAC,CAAC,CAAC;gBAC3B,IAAM,IAAI,GAAG,IAAI,CAAC,OAAO,GAAG,GAAG,KAAH,IAAA,IAAA,GAAG,uBAAH,GAAG,CAAG,IAAI,CAAC,OAAO,CAAC,GAAG,SAAS,CAAC;AAC5D,gBAAA,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;aACpB;SACM,EAAA;AAVT,KAUS,CAAC;IAEZ,OAAO;AACL,QAAA,IAAI,EAAE,OAAO;QACb,MAAM,EAAE,UAAC,EAAE,EAAK,EAAA,OAAA,CAAC,EAAE,CAAC,IAAI,CAAA,EAAA;QACxB,iBAAiB,EAAE,UAAC,CAAC,EAAA,EAAK,OAAA,CAAC,CAAC,GAAG,CAAA,EAAA;AAC/B,QAAA,sBAAsB,EAAE,UAAC,MAAM,EAAE,WAAW,EAAA;AAC1C,YAAA,OAAA,WAAW,KAAX,IAAA,IAAA,WAAW,KAAX,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,WAAW,CAAE,uBAAuB,CAAA;SAAA;QACtC,mBAAmB,EAAE,UAAC,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,EAAQ,EAAA;AAAN,YAAA,IAAA,IAAI,GAAA,EAAA,CAAA,IAAA,CAAA;YAC3C,IAAI,EAAC,GAAG,KAAH,IAAA,IAAA,GAAG,uBAAH,GAAG,CAAE,MAAM,CAAA,EAAE;;AAEhB,gBAAA,OAAO,KAAK,CAAC;AACd,aAAA;YACD,IACE,IAAI,CAAC,OAAO;gBACZ,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,UAAC,CAAC,EAAA,EAAK,OAAA,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,OAAO,CAAA,EAAA,CAAC,EACpD;AACA,gBAAA,OAAO,KAAK,CAAC;AACd,aAAA;AACD,YAAA,OAAO,IAAI,CAAC;SACb;AACD,QAAA,QAAQ,EAAE;AACR,YAAA,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,UAAC,KAAU,EAAA;;gBACnB,OAAO,CAAA,EAAA,GAAA,KAAK,CAAC,KAAK,mCAAI,KAAK,CAAC,OAAO,CAAC;aACrC;YACD,MAAM,EAAA,QAAA,CAAA,EACJ,GAAG,EAAE;AACH,oBAAA,IAAI,EAAE,QAAQ;AACd,oBAAA,MAAM,EAAE,YAAA,EAAM,OAAA,IAAI,GAAA;AACnB,iBAAA,EACD,OAAO,EAAE;AACP,oBAAA,IAAI,EAAE,QAAQ;AACd,oBAAA,WAAW,EAAE,YAAY;AACzB,oBAAA,QAAQ,EAAE,IAAI;AACd,oBAAA,OAAO,EAAE,UAAC,MAAM,EAAE,GAAG,gBACnB,OAAA,CAAC,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,GAAG,KAAH,IAAA,IAAA,GAAG,KAAH,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,GAAG,CAAE,MAAM,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,MAAM,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAI,EAAE,EAAE,GAAG,CAAC,UAAC,CAAC,EAAA,EAAK,OAAA,CAAC,CAAC,EAAE,CAAA,EAAA,CAAC,CAAA,EAAA;AAC9C,oBAAA,MAAM,EAAE,UAAC,MAAM,EAAE,GAAG,EAAE,EAAsB,EAAA;;AAAd,wBAAA,IAAA,YAAY,GAAA,EAAA,CAAA,IAAA,CAAA;AACxC,wBAAA,OAAA,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,GAAG,KAAA,IAAA,IAAH,GAAG,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAH,GAAG,CAAE,MAAM,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,MAAM,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAI,EAAE,CAAC,CAAC,CAAA;AAAA,qBAAA;AAC9D,iBAAA,EACD,KAAK,EAAE;AACL,oBAAA,IAAI,EAAE,QAAQ;AACd,oBAAA,WAAW,EAAE,OAAO;AACpB,oBAAA,gBAAgB,EAAE,mBAAmB,CAAC,OAAO,CAAC;iBAC/C,EACD,IAAI,EAAE,WAAW,CAAC,qBAAqB,CAAC,EACxC,QAAQ,EAAE;AACR,oBAAA,IAAI,EAAE,SAAS;AACf,oBAAA,WAAW,EAAE,WAAW;AACxB,oBAAA,gBAAgB,EAAE,mBAAmB,CAAC,UAAU,CAAC;AAClD,iBAAA,EACD,QAAQ,EAAE;AACR,oBAAA,IAAI,EAAE,QAAQ;AACd,oBAAA,WAAW,EAAE,WAAW;AACxB,oBAAA,OAAO,EAAE;AACP,wBAAA;AACE,4BAAA,KAAK,EAAE,MAAM;AACb,4BAAA,KAAK,EAAE,MAAM;AACd,yBAAA;AACD,wBAAA;AACE,4BAAA,KAAK,EAAE,QAAQ;AACf,4BAAA,KAAK,EAAE,QAAQ;AAChB,yBAAA;AACD,wBAAA;AACE,4BAAA,KAAK,EAAE,SAAS;AAChB,4BAAA,KAAK,EAAE,YAAY;AACpB,yBAAA;AACD,wBAAA;AACE,4BAAA,KAAK,EAAE,UAAU;AACjB,4BAAA,KAAK,EAAE,UAAU;AAClB,yBAAA;AACD,wBAAA;AACE,4BAAA,KAAK,EAAE,QAAQ;AACf,4BAAA,KAAK,EAAE,QAAQ;AAChB,yBAAA;AACD,wBAAA;AACE,4BAAA,KAAK,EAAE,SAAS;AAChB,4BAAA,KAAK,EAAE,SAAS;AACjB,yBAAA;AACD,wBAAA;AACE,4BAAA,KAAK,EAAE,UAAU;AACjB,4BAAA,KAAK,EAAE,aAAa;AACrB,yBAAA;AACD,wBAAA;AACE,4BAAA,KAAK,EAAE,mBAAmB;AAC1B,4BAAA,KAAK,EAAE,6BAA6B;AACrC,yBAAA;AACF,qBAAA;AACD,oBAAA,gBAAgB,EAAE,mBAAmB,CAAC,UAAU,CAAC;AAClD,iBAAA,EACD,QAAQ,EAAE;AACR,oBAAA,WAAW,EAAE,UAAU;AACvB,oBAAA,WAAW,EAAE,+BAA+B;AAC5C,oBAAA,IAAI,EAAE,QAAQ;AACd,oBAAA,gBAAgB,EAAE,KAAK;AACvB,oBAAA,MAAM,EAAE,UAAC,EAAE,EAAE,GAAG,EAAE,EAAQ,EAAA;AAAN,wBAAA,IAAA,IAAI,GAAA,EAAA,CAAA,IAAA,CAAA;AAAO,wBAAA,OAAA,IAAI,CAAC,QAAQ,KAAK,UAAU,CAAA;qBAAA;AAC5D,iBAAA,EACD,MAAM,EAAE;AACN,oBAAA,WAAW,EAAE,QAAQ;AACrB,oBAAA,WAAW,EAAE,6BAA6B;AAC1C,oBAAA,IAAI,EAAE,QAAQ;AACd,oBAAA,gBAAgB,EAAE,OAAO;AACzB,oBAAA,MAAM,EAAE,UAAC,EAAE,EAAE,GAAG,EAAE,EAAQ,EAAA;AAAN,wBAAA,IAAA,IAAI,GAAA,EAAA,CAAA,IAAA,CAAA;wBACtB,OAAA,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,YAAY,CAAC;AACrC,4BAAA,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAA;qBAAA;AAC1C,iBAAA,EACD,QAAQ,EAAE;AACR,oBAAA,WAAW,EAAE,UAAU;AACvB,oBAAA,IAAI,EAAE,QAAQ;AACd,oBAAA,OAAO,EAAE;AACP,wBAAA;AACE,4BAAA,KAAK,EAAE,UAAU;AACjB,4BAAA,KAAK,EAAE,UAAU;AAClB,yBAAA;AACD,wBAAA;AACE,4BAAA,KAAK,EAAE,YAAY;AACnB,4BAAA,KAAK,EAAE,gCAAgC;AACxC,yBAAA;AACD,wBAAA;AACE,4BAAA,KAAK,EAAE,SAAS;AAChB,4BAAA,KAAK,EAAE,oBAAoB;AAC5B,yBAAA;AACF,qBAAA;AACD,oBAAA,gBAAgB,EAAE,UAAU;AAC5B,oBAAA,MAAM,EAAE,UAAC,EAAE,EAAE,GAAG,EAAE,EAAQ,EAAA;AAAN,wBAAA,IAAA,IAAI,GAAA,EAAA,CAAA,IAAA,CAAA;wBAAO,OAAA,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAA;qBAAA;AACrE,iBAAA,EACD,WAAW,EAAE;AACX,oBAAA,IAAI,EAAE,QAAQ;AACd,oBAAA,WAAW,EAAE,aAAa;AAC1B,oBAAA,OAAO,EAAE;AACP,wBAAA;AACE,4BAAA,KAAK,EAAE,MAAM;AACb,4BAAA,KAAK,EAAE,qCAAqC;AAC7C,yBAAA;AACD,wBAAA;AACE,4BAAA,KAAK,EAAE,YAAY;AACnB,4BAAA,KAAK,EAAE,iCAAiC;AACzC,yBAAA;AACF,qBAAA;AACD,oBAAA,gBAAgB,EAAE,MAAM;AACxB,oBAAA,MAAM,EAAE,UAAC,EAAE,EAAE,GAAG,EAAE,EAAQ,EAAA;AAAN,wBAAA,IAAA,IAAI,GAAA,EAAA,CAAA,IAAA,CAAA;wBAAO,OAAA,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAA;qBAAA;AACrE,iBAAA,EACD,qBAAqB,EAAE;AACrB,oBAAA,IAAI,EAAE,QAAQ;AACd,oBAAA,WAAW,EAAE,oBAAoB;AACjC,oBAAA,gBAAgB,EAAE,CAAC;AACnB,oBAAA,GAAG,EAAE,CAAC;AACN,oBAAA,GAAG,EAAE,EAAE;AACP,oBAAA,MAAM,EAAE,UAAC,EAAE,EAAE,GAAG,EAAE,EAAQ,EAAA;AAAN,wBAAA,IAAA,IAAI,GAAA,EAAA,CAAA,IAAA,CAAA;wBAAO,OAAA,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAA;qBAAA;AACrE,iBAAA,EACD,qBAAqB,EAAE;AACrB,oBAAA,IAAI,EAAE,QAAQ;AACd,oBAAA,WAAW,EAAE,oBAAoB;AACjC,oBAAA,gBAAgB,EAAE,CAAC;AACnB,oBAAA,GAAG,EAAE,CAAC;AACN,oBAAA,GAAG,EAAE,EAAE;AACP,oBAAA,MAAM,EAAE,UAAC,EAAE,EAAE,GAAG,EAAE,EAAQ,EAAA;AAAN,wBAAA,IAAA,IAAI,GAAA,EAAA,CAAA,IAAA,CAAA;wBAAO,OAAA,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAA;qBAAA;AACrE,iBAAA,EACD,MAAM,EAAE;AACN,oBAAA,IAAI,EAAE,QAAQ;AACd,oBAAA,OAAO,EAAE;AACP,wBAAA;AACE,4BAAA,KAAK,EAAE,UAAU;AACjB,4BAAA,KAAK,EAAE,YAAY;AACpB,yBAAA;AACD,wBAAA;AACE,4BAAA,KAAK,EAAE,QAAQ;AACf,4BAAA,KAAK,EAAE,iBAAiB;AACzB,yBAAA;AACD,wBAAA;AACE,4BAAA,KAAK,EAAE,MAAM;AACb,4BAAA,KAAK,EAAE,MAAM;AACd,yBAAA;AACF,qBAAA;AACD,oBAAA,WAAW,EAAE,SAAS;AACtB,oBAAA,gBAAgB,EAAE,UAAU;AAC5B,oBAAA,MAAM,EAAE,UAAC,EAAE,EAAE,GAAG,EAAE,EAAQ,EAAA;AAAN,wBAAA,IAAA,IAAI,GAAA,EAAA,CAAA,IAAA,CAAA;AAAO,wBAAA,OAAA,IAAI,CAAC,QAAQ,KAAK,SAAS,CAAA;qBAAA;AAC3D,iBAAA,EACD,SAAS,EAAE;AACT,oBAAA,WAAW,EAAE,YAAY;AACzB,oBAAA,IAAI,EAAE,QAAQ;AACd,oBAAA,OAAO,EAAE;AACP,wBAAA;AACE,4BAAA,KAAK,EAAE,MAAM;AACb,4BAAA,KAAK,EAAE,2BAA2B;AACnC,yBAAA;AACD,wBAAA;AACE,4BAAA,KAAK,EAAE,OAAO;AACd,4BAAA,KAAK,EAAE,yBAAyB;AACjC,yBAAA;AACD,wBAAA;AACE,4BAAA,KAAK,EAAE,QAAQ;AACf,4BAAA,KAAK,EAAE,4BAA4B;AACpC,yBAAA;AACD,wBAAA;AACE,4BAAA,KAAK,EAAE,MAAM;AACb,4BAAA,KAAK,EAAE,+BAA+B;AACvC,yBAAA;AACD,wBAAA;AACE,4BAAA,KAAK,EAAE,MAAM;AACb,4BAAA,KAAK,EAAE,uCAAuC;AAC/C,yBAAA;AACF,qBAAA;oBACD,gBAAgB,EAAE,yBAAyB,CAAC,SAAS;AACrD,oBAAA,MAAM,EAAE,UAAC,EAAE,EAAE,GAAG,EAAE,EAAQ,EAAA;AAAN,wBAAA,IAAA,IAAI,GAAA,EAAA,CAAA,IAAA,CAAA;AAAO,wBAAA,OAAA,IAAI,CAAC,QAAQ,KAAK,UAAU,CAAA;qBAAA;AAC5D,iBAAA,EACD,SAAS,EAAE;AACT,oBAAA,WAAW,EAAE,YAAY;AACzB,oBAAA,IAAI,EAAE,QAAQ;AACd,oBAAA,OAAO,EAAE;AACP,wBAAA;AACE,4BAAA,KAAK,EAAE,MAAM;AACb,4BAAA,KAAK,EAAE,2BAA2B;AACnC,yBAAA;AACD,wBAAA;AACE,4BAAA,KAAK,EAAE,OAAO;AACd,4BAAA,KAAK,EAAE,sBAAsB;AAC9B,yBAAA;AACD,wBAAA;AACE,4BAAA,KAAK,EAAE,QAAQ;AACf,4BAAA,KAAK,EAAE,0BAA0B;AAClC,yBAAA;AACD,wBAAA;AACE,4BAAA,KAAK,EAAE,MAAM;AACb,4BAAA,KAAK,EAAE,4BAA4B;AACpC,yBAAA;AACD,wBAAA;AACE,4BAAA,KAAK,EAAE,MAAM;AACb,4BAAA,KAAK,EAAE,8CAA8C;AACtD,yBAAA;AACF,qBAAA;oBACD,gBAAgB,EAAE,yBAAyB,CAAC,SAAS;AACrD,oBAAA,MAAM,EAAE,UAAC,EAAE,EAAE,GAAG,EAAE,EAAQ,EAAA;AAAN,wBAAA,IAAA,IAAI,GAAA,EAAA,CAAA,IAAA,CAAA;AAAO,wBAAA,OAAA,IAAI,CAAC,QAAQ,KAAK,UAAU,CAAA;qBAAA;AAC5D,iBAAA,EACD,MAAM,EAAE;AACN,oBAAA,WAAW,EAAE,YAAY;AACzB,oBAAA,WAAW,EAAE,uCAAuC;AACpD,oBAAA,IAAI,EAAE,SAAS;oBACf,gBAAgB,EAAE,yBAAyB,CAAC,MAAM;AAClD,oBAAA,MAAM,EAAE,UAAC,EAAE,EAAE,GAAG,EAAE,EAAQ,EAAA;AAAN,wBAAA,IAAA,IAAI,GAAA,EAAA,CAAA,IAAA,CAAA;AAAO,wBAAA,OAAA,IAAI,CAAC,QAAQ,KAAK,UAAU,CAAA;qBAAA;AAC5D,iBAAA,EACD,OAAO,EAAE;AACP,oBAAA,IAAI,EAAE,QAAQ;AACd,oBAAA,WAAW,EAAE,cAAc;AAC3B,oBAAA,OAAO,EAAE;AACP,wBAAA,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,oBAAoB,EAAE;AAChD,wBAAA;AACE,4BAAA,KAAK,EAAE,MAAM;AACb,4BAAA,KAAK,EAAE,0CAA0C;AAClD,yBAAA;AACF,qBAAA;oBACD,gBAAgB,EAAE,kCAAkC,CAAC,OAAO;AAC5D,oBAAA,MAAM,EAAE,UAAC,EAAE,EAAE,GAAG,EAAE,EAAQ,EAAA;AAAN,wBAAA,IAAA,IAAI,GAAA,EAAA,CAAA,IAAA,CAAA;AAAO,wBAAA,OAAA,IAAI,CAAC,QAAQ,KAAK,mBAAmB,CAAA;qBAAA;AACrE,iBAAA,EACD,IAAI,EAAE;AACJ,oBAAA,IAAI,EAAE,QAAQ;AACd,oBAAA,WAAW,EAAE,WAAW;AACxB,oBAAA,OAAO,EAAE;AACP,wBAAA;AACE,4BAAA,KAAK,EAAE,QAAQ;AACf,4BAAA,KAAK,EAAE,SAAS;AACjB,yBAAA;AACD,wBAAA;AACE,4BAAA,KAAK,EAAE,QAAQ;AACf,4BAAA,KAAK,EAAE,SAAS;AACjB,yBAAA;AACD,wBAAA;AACE,4BAAA,KAAK,EAAE,MAAM;AACb,4BAAA,KAAK,EAAE,OAAO;AACf,yBAAA;AACD,wBAAA;AACE,4BAAA,KAAK,EAAE,KAAK;AACZ,4BAAA,KAAK,EAAE,MAAM;AACd,yBAAA;AACD,wBAAA;AACE,4BAAA,KAAK,EAAE,MAAM;AACb,4BAAA,KAAK,EAAE,OAAO;AACf,yBAAA;AACD,wBAAA;AACE,4BAAA,KAAK,EAAE,OAAO;AACd,4BAAA,KAAK,EAAE,QAAQ;AAChB,yBAAA;AACD,wBAAA;AACE,4BAAA,KAAK,EAAE,MAAM;AACb,4BAAA,KAAK,EAAE,OAAO;AACf,yBAAA;AACF,qBAAA;oBACD,gBAAgB,EAAE,kCAAkC,CAAC,IAAI;AACzD,oBAAA,MAAM,EAAE,UAAC,EAAE,EAAE,GAAG,EAAE,EAAQ,EAAA;AAAN,wBAAA,IAAA,IAAI,GAAA,EAAA,CAAA,IAAA,CAAA;AAAO,wBAAA,OAAA,IAAI,CAAC,QAAQ,KAAK,mBAAmB,CAAA;qBAAA;iBACrE,EACE,EAAA,IAAI,CAAC,UAAU,CACnB;AACF,SAAA;KACF,CAAC;AACJ;;ACpgBM,SAAU,aAAa,CAAC,OAAgB,EAAA;;IAC5C,IAAI,CAAC,OAAO,EAAE;AACZ,QAAA,OAAO,SAAS,CAAC;AAClB,KAAA;AAED,IAAA,IAAM,SAAS,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;IAC3C,IAAI,CAAC,SAAS,EAAE;AACd,QAAA,OAAO,SAAS,CAAC;AAClB,KAAA;IACD,IAAM,MAAM,GAAG,CAAA,EAAA,GAAC,OAAe,CAAC,MAAM,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAI,YAAY,CAAC,SAAS,CAAC,CAAC;IAClE,IAAI,CAAC,MAAM,EAAE;AACX,QAAA,OAAO,SAAS,CAAC;AAClB,KAAA;IACD,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAA,MAAA,EAAE,CAAC;AACrC,CAAC;AAED,SAAS,eAAe,CAAC,OAAgB,EAAA;AACvC,IAAA,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;AAC3C,QAAA,OAAO,SAAS,CAAC;AAClB,KAAA;AAED,IAAA,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;AAC1B,QAAA,IAAI,gBAAgB,CAAC,OAAO,CAAC,EAAE;AAC7B,YAAA,OAAO,OAAO,CAAC;AAChB,SAAA;AAAM,aAAA;;AAEL,YAAA,OAAO,SAAS,CAAC;AAClB,SAAA;AACF,KAAA;AAED,IAAA,IAAI,MAAM,IAAI,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;AACpD,QAAA,IAAI,gBAAgB,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YAClC,OAAO,OAAO,CAAC,IAAI,CAAC;AACrB,SAAA;AAAM,aAAA;AACL,YAAA,OAAO,SAAS,CAAC;AAClB,SAAA;AACF,KAAA;AAED,IAAA,IAAI,WAAW,IAAI,OAAO,IAAI,OAAO,IAAI,OAAO,EAAE;AAChD,QAAA,OAAO,SAAS,CAAC;AAClB,KAAA;;IAGD,OAAO,CAAC,OAAO,CAAC,CAAC;AACnB,CAAC;AAED,SAAS,gBAAgB,CAAC,GAAc,EAAA;IACtC,OAAO,GAAG,CAAC,KAAK,CAAC,UAAC,CAAC,EAAA,EAAK,OAAA,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA,EAAA,CAAC,CAAC;AACtE,CAAC;AAED,SAAS,YAAY,CAAC,IAAW,EAAA;IAC/B,IAAM,QAAQ,GAAmC,EAAE,CAAC;AACpD,IAAA,IAAI,CAAC,OAAO,CAAC,UAAC,KAAU,EAAA;AACtB,QAAA,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AACtC,YAAA,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,UAAC,EAAM,EAAA;oBAAL,CAAC,GAAA,EAAA,CAAA,CAAA,CAAA,EAAE,CAAC,GAAA,EAAA,CAAA,CAAA,CAAA,CAAA;AAC9C,gBAAA,IAAM,YAAY,GAChB,OAAO,CAAC,KAAK,QAAQ;AACnB,sBAAE,QAAQ;AACV,sBAAE,OAAO,CAAC,KAAK,SAAS;AACxB,0BAAE,SAAS;AACX,0BAAE,OAAO,CAAC,KAAK,QAAQ;AACvB,8BAAE,QAAQ;8BACR,SAAS,CAAC;gBAChB,IAAI,QAAQ,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,YAAY,EAAE;AAC/C,oBAAA,QAAQ,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;AACzB,iBAAA;AAAM,qBAAA;AACL,oBAAA,QAAQ,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC;AAC5B,iBAAA;AACH,aAAC,CAAC,CAAC;AACJ,SAAA;AACH,KAAC,CAAC,CAAC;IACH,OAAO;AACL,QAAA,EAAE,EAAE,UAAU;QACd,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,UAAC,EAAM,EAAA;gBAAL,CAAC,GAAA,EAAA,CAAA,CAAA,CAAA,EAAE,CAAC,GAAA,EAAA,CAAA,CAAA,CAAA,CAAA;AAAM,YAAA,QAAC;AAChD,gBAAA,EAAE,EAAE,CAAC;AACL,gBAAA,IAAI,EAAE,CAAC;AACP,gBAAA,QAAQ,EAAE,KAAK;aAChB,EAAC;AAJ+C,SAI/C,CAAC;KACJ,CAAC;AACJ;;SC9EgB,WAAW,CACzB,KAAU,EACV,MAAW,EACX,OAAyB,EAAA;IAEzB,IAAI,OAAO,CAAC,IAAI,EAAE;QAChB,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AACrC,KAAA;IAED,IAAI,KAAK,IAAI,IAAI,EAAE;AACjB,QAAA,OAAO,EAAE,CAAC;AACX,KAAA;AAED,IAAA,IAAI,OAAO,CAAC,QAAQ,KAAK,MAAM,EAAE;AAC/B,QAAA,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC;AAC1B,KAAA;AAAM,SAAA;QACL,IAAM,OAAO,GAAG,WAAW,CAAC,KAAK,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;AACrD,QAAA,IACE,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,YAAY,CAAC;YACvC,OAAO,OAAO,KAAK,QAAQ,EAC3B;AACA,YAAA,OAAO,YAAY,CAAC,OAAO,EAAE,OAAyB,CAAC,CAAC;AACzD,SAAA;aAAM,IAAI,OAAO,CAAC,QAAQ,KAAK,SAAS,IAAI,OAAO,OAAO,KAAK,SAAS,EAAE;AACzE,YAAA,OAAO,aAAa,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;AACxC,SAAA;aAAM,IAAI,OAAO,CAAC,QAAQ,KAAK,UAAU,IAAI,OAAO,YAAY,IAAI,EAAE;AACrE,YAAA,OAAO,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;AACrC,SAAA;AAAM,aAAA,IACL,OAAO,CAAC,QAAQ,KAAK,mBAAmB;YACxC,OAAO,YAAY,IAAI,EACvB;AACA,YAAA,OAAO,kBAAkB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;AAC7C,SAAA;AACD,QAAA,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC;AACxB,KAAA;AACH,CAAC;AAED,SAAS,UAAU,CAAC,KAAc,EAAA;AAChC,IAAA,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;QAC7B,OAAO,YAAY,CAAC,KAAK,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC;AACpD,KAAA;AAAM,SAAA,IAAI,OAAO,KAAK,KAAK,SAAS,EAAE;AACrC,QAAA,OAAO,aAAa,CAAC,KAAK,EAAE,wBAAwB,CAAC,CAAC;AACvD,KAAA;SAAM,IAAI,KAAK,YAAY,IAAI,EAAE;AAChC,QAAA,OAAO,UAAU,CAAC,KAAK,EAAE,yBAAyB,CAAC,CAAC;AACrD,KAAA;AAAM,SAAA;AACL,QAAA,IAAM,OAAO,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;QACrC,IAAI,OAAO,KAAK,aAAa,EAAE;AAC7B,YAAA,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC;AACxB,SAAA;AAAM,aAAA;AACL,YAAA,OAAO,UAAU,CAAC,OAAO,CAAC,CAAC;AAC5B,SAAA;AACF,KAAA;AACH,CAAC;AAED,SAAS,aAAa,CAAC,KAAc,EAAA;IACnC,KAAuB,IAAA,EAAA,GAAA,CAGY,EAHZ,EAAA,GAAA;QACrB,QAAQ;QACR,UAAU;KACuB,EAHZ,EAAA,GAAA,EAAA,CAAA,MAGY,EAHZ,EAAA,EAGY,EAAE;AAHhC,QAAA,IAAM,QAAQ,GAAA,EAAA,CAAA,EAAA,CAAA,CAAA;QAIjB,IAAM,OAAO,GAAG,WAAW,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QAC7C,IAAI,OAAO,KAAK,aAAa,EAAE;AAC7B,YAAA,OAAO,OAAO,CAAC;AAChB,SAAA;AACF,KAAA;AACD,IAAA,OAAO,aAAa,CAAC;AACvB,CAAC;AAED,SAAS,YAAY,CAAC,KAAa,EAAE,OAAuB,EAAA;AAC1D,IAAA,IAAI,OAAO,CAAC,QAAQ,KAAK,QAAQ,EAAE;AACjC,QAAA,OAAO,IAAI,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AACrE,KAAA;AAAM,SAAA,IAAI,OAAO,CAAC,QAAQ,KAAK,SAAS,EAAE;QACzC,OAAO,IAAI,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,MAAM,EACtC,QAAA,CAAA,QAAA,CAAA,EAAA,EAAA,OAAO,KACV,KAAK,EAAE,SAAS,EAChB,CAAA,CAAA,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAClB,KAAA;AAAM,SAAA,IAAI,OAAO,CAAC,QAAQ,KAAK,UAAU,EAAE;QAC1C,OAAO,IAAI,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,MAAM,EAAA,QAAA,CAAA,QAAA,CAAA,QAAA,CAAA,EAAA,EACtC,yBAAyB,CAAA,EACzB,OAAO,CACV,EAAA,EAAA,KAAK,EAAE,UAAU,EAAA,CAAA,CACjB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAClB,KAAA;AAAM,SAAA;QACL,MAAM,IAAI,KAAK,CAAC,sBAAA,CAAA,MAAA,CAAwB,OAAe,CAAC,QAAQ,CAAE,CAAC,CAAC;AACrE,KAAA;AACH,CAAC;AAED,SAAS,UAAU,CAAC,KAAW,EAAE,OAAyB,EAAA;AACxD,IAAA,IAAM,IAAI,GACL,QAAA,CAAA,QAAA,CAAA,EAAA,EAAA,yBAAyB,CACzB,EAAA,OAAO,CACX,CAAC;AACF,IAAA,IAAI,IAAI,CAAC,SAAS,KAAK,MAAM,EAAE;AAC7B,QAAA,OAAO,IAAI,CAAC,WAAW,CAAC,CAAC;AAC1B,KAAA;AACD,IAAA,IAAI,IAAI,CAAC,SAAS,KAAK,MAAM,EAAE;AAC7B,QAAA,OAAO,IAAI,CAAC,WAAW,CAAC,CAAC;AAC1B,KAAA;AACD,IAAA,OAAO,IAAI,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,MAAM,EAAE,IAAW,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC5E,CAAC;AAED,IAAM,SAAS,GAAG,IAAI,CAAC;AACvB,IAAM,SAAS,GAAG,EAAE,GAAG,SAAS,CAAC;AACjC,IAAM,OAAO,GAAG,EAAE,GAAG,SAAS,CAAC;AAC/B,IAAM,MAAM,GAAG,EAAE,GAAG,OAAO,CAAC;AAC5B,IAAM,OAAO,GAAG,CAAC,GAAG,MAAM,CAAC;AAC3B,IAAM,UAAU,GAAG;AACjB,IAAA,MAAM,EAAE,SAAS;AACjB,IAAA,MAAM,EAAE,SAAS;AACjB,IAAA,IAAI,EAAE,OAAO;AACb,IAAA,GAAG,EAAE,MAAM;AACX,IAAA,IAAI,EAAE,OAAO;CACL,CAAC;AACX,IAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAgC,CAAC;AAE3E,SAAS,kBAAkB,CAAC,KAAW,EAAE,OAAiC,EAAA;;AACxE,IAAA,IAAM,IAAI,GACL,QAAA,CAAA,QAAA,CAAA,EAAA,EAAA,kCAAkC,CAClC,EAAA,OAAO,CACX,CAAC;IACF,IAAM,IAAI,GAAG,CAAA,EAAA,GAAA,OAAO,CAAC,IAAI,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAI,KAAK,CAAC;AACnC,IAAA,IAAM,SAAS,GAAG,IAAI,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AACpE,IAAA,IAAI,OAAO,CAAC,IAAI,EAAE,WAAW,CAAC,EAAE;;;AAG9B,QAAA,IAAM,IAAI,GAAG,KAAK,CAAC,OAAO,EAAE,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;AACpD,QAAA,OAAO,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;AACpE,KAAA;AAAM,SAAA;;QAEL,IAAI,IAAI,KAAK,MAAM,EAAE;AACnB,YAAA,IAAM,IAAI,GAAG,KAAK,CAAC,WAAW,EAAE,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;YAC5D,OAAO,SAAS,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AACrC,SAAA;aAAM,IAAI,IAAI,KAAK,OAAO,EAAE;YAC3B,IAAM,MAAM,GAAG,UAAC,CAAO,IAAK,OAAA,CAAC,CAAC,WAAW,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAvC,EAAuC,CAAC;AACpE,YAAA,IAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;YAChD,OAAO,SAAS,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AACrC,SAAA;AAAM,aAAA;AACL,YAAA,MAAM,IAAI,KAAK,CAAC,wCAAiC,IAAI,CAAE,CAAC,CAAC;AAC1D,SAAA;AACF,KAAA;AACH,CAAC;AAED,SAAS,aAAa,CAAC,KAAc,EAAE,OAAwB,EAAA;;IAC7D,IAAM,MAAM,GAAG,CAAA,EAAA,GAAA,OAAO,CAAC,MAAM,MAAI,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAA,wBAAwB,CAAC,MAAM,CAAC;IACjE,IAAI,MAAM,KAAK,UAAU,EAAE;AACzB,QAAA,OAAOC,qCAACC,aAAQ,EAAA,EAAC,OAAO,EAAE,KAAK,GAAI,CAAC;AACrC,KAAA;SAAM,IAAI,MAAM,KAAK,QAAQ,EAAE;AAC9B,QAAA,OAAOD,qCAACE,WAAM,EAAA,EAAC,OAAO,EAAE,KAAK,GAAI,CAAC;AACnC,KAAA;AAAM,SAAA;QACL,OAAO,KAAK,GAAG,MAAM,GAAG,OAAO,CAAC;AACjC,KAAA;AACH,CAAC;AAED,IAAM,aAAa,GAAG,MAAM,CAAC,uBAAuB,CAAC,CAAC;AACtD,SAAS,WAAW,CAAC,KAAc,EAAE,QAAsC,EAAA;IACzE,IAAI,KAAK,IAAI,IAAI,EAAE;AACjB,QAAA,OAAO,IAAI,CAAC;AACb,KAAA;IACD,IAAI;AACF,QAAA,IAAI,OAAO,CAAC,QAAQ,EAAE,YAAY,CAAC,EAAE;AACnC,YAAA,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AAC7B,gBAAA,OAAO,KAAK,CAAC;AACd,aAAA;AAAM,iBAAA,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AACpC,gBAAA,IAAM,WAAW,GAAG,CAAC,KAAK,CAAC;AAC3B,gBAAA,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE;AACvB,oBAAA,OAAO,WAAW,CAAC;AACpB,iBAAA;AACF,aAAA;AACF,SAAA;AAAM,aAAA,IAAI,OAAO,CAAC,QAAQ,EAAE,cAAc,CAAC,EAAE;YAC5C,IAAI,KAAK,YAAY,IAAI,EAAE;AACzB,gBAAA,OAAO,KAAK,CAAC;AACd,aAAA;AAAM,iBAAA,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AACpC,gBAAA,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC;AACxB,aAAA;AAAM,iBAAA,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AACpC,gBAAA,IAAM,SAAS,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC;gBAClC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,EAAE;AAC/B,oBAAA,OAAO,SAAS,CAAC;AAClB,iBAAA;AACF,aAAA;AACF,SAAA;aAAM,IAAI,QAAQ,KAAK,SAAS,EAAE;AACjC,YAAA,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,KAAK,EAAE;AACrC,gBAAA,OAAO,KAAK,CAAC;AACd,aAAA;AAAM,iBAAA,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;gBACpC,OAAO,KAAK,KAAK,CAAC,CAAC;AACpB,aAAA;AAAM,iBAAA,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AACpC,gBAAA,OAAO,KAAK,CAAC,WAAW,EAAE,KAAK,MAAM,CAAC;AACvC,aAAA;AACF,SAAA;aAAM,IAAI,QAAQ,KAAK,QAAQ,EAAE;AAChC,YAAA,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC;AACxB,SAAA;aAAM,IAAI,QAAQ,KAAK,MAAM,EAAE;AAC9B,YAAA,OAAO,KAAK,CAAC;AACd,SAAA;AACF,KAAA;AAAC,IAAA,OAAO,GAAG,EAAE;;AAEb,KAAA;AAED,IAAA,OAAO,aAAa,CAAC;AACvB,CAAC;AAED,SAAS,QAAQ,CAAC,KAAc,EAAA;IAC9B,IAAI,KAAK,IAAI,IAAI,EAAE;AACjB,QAAA,OAAO,EAAE,CAAC;AACX,KAAA;AAAM,SAAA,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AACpC,QAAA,OAAO,KAAK,CAAC;AACd,KAAA;AAAM,SAAA,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;QACpC,IAAI,UAAU,IAAI,KAAK,IAAI,OAAO,KAAK,CAAC,QAAQ,KAAK,UAAU,EAAE;AAC/D,YAAA,OAAO,KAAK,CAAC,QAAQ,EAAE,CAAC;AACzB,SAAA;AAAM,aAAA;AACL,YAAA,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AAC9B,SAAA;AACF,KAAA;AAAM,SAAA;QACL,OAAO,EAAA,CAAA,MAAA,CAAG,KAAK,CAAE,CAAC;AACnB,KAAA;AACH;;AC7MM,SAAU,WAAW,CAAC,KAAuB,EAAA;;AAE/C,IAAA,IAAA,SAAS,GAMP,KAAK,CAAA,SANE,EACH,OAAO,GAKX,KAAK,CAAA,IALM,EACb,IAAI,GAIF,KAAK,KAJH,EACJ,QAAQ,GAGN,KAAK,CAHC,QAAA,EACR,MAAM,GAEJ,KAAK,CAFD,MAAA,EACN,EACE,GAAA,KAAK,OADG,EAAV,MAAM,GAAG,EAAA,KAAA,KAAA,CAAA,GAAA,CAAC,KAAA,CACF;AACV,IAAA,IAAM,IAAI,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;IAC5B,IAAA,iBAAiB,GAAKC,sBAAoB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA,iBAAtC,CAAuC;IAChE,IAAI,CAAC,IAAI,EAAE;AACT,QAAA,OAAOH,qCAACI,UAAK,EAAA,EAAC,SAAS,EAAE,SAAS,GAAI,CAAC;AACxC,KAAA;AACD,IAAA,QACEJ,sBAAC,CAAA,aAAA,CAAAK,6BAAe,EACd,EAAA,SAAS,EAAE,SAAS,EACpB,UAAU,EAAE,MAAA,IAAI,KAAA,IAAA,IAAJ,IAAI,KAAJ,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,IAAI,CAAE,IAAI,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAG,CAAC,CAAC,EAC3B,OAAO,EAAE,iBAAiB,EAC1B,IAAI,EAAE,IAAI,EACV,QAAQ,EAAE,QAAQ,EAClB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE;AACN,YAAA,EAAE,EAAE,CAAC;AACL,YAAA,EAAE,EAAE,CAAC;AACL,YAAA,EAAE,EAAE,MAAM;AACX,SAAA,EAAA,CACD,EACF;AACJ,CAAC;AAMD,SAASF,sBAAoB,CAC3B,IAAgC,EAChC,KAA+C,EAAA;IAEvC,IAAA,MAAM,GAA4B,KAAK,CAAA,MAAjC,EAAE,qBAAqB,GAAK,KAAK,CAAA,qBAAV,CAAW;IAChD,OAAOH,sBAAK,CAAC,OAAO,CAAC,YAAA;QACnB,IAAM,MAAM,GAAG,IAAI,KAAA,IAAA,IAAJ,IAAI,KAAJ,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,IAAI,CAAE,MAAM,CAAC;AAC5B,QAAA,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,EAAE;YACpB,OAAO,EAAE,UAAU,EAAE,EAAE,EAAE,iBAAiB,EAAE,EAAE,EAAE,CAAC;AAClD,SAAA;AACK,QAAA,IAAA,EACJ,GAAA,kBAAkB,CAChB,MAAM,aAAN,MAAM,KAAA,KAAA,CAAA,GAAN,MAAM,GAAI,EAAE,EACZ,MAAM,EACN,UAAC,KAAK,EAAA,EAAK,QAAA,QAAA,CAAA,EACT,GAAG,EAAE,SAAS,EAAE,EAChB,QAAQ,EAAE,KAAK,EACf,QAAQ,EAAE,MAAe,EACtB,GAAC,KAAK,IAAI;YACX,GAAG,EAAE,KAAK,CAAC,EAAE;YACb,OAAO,EAAE,KAAK,CAAC,EAAE;AACjB,YAAA,KAAK,EAAE,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,EAAE;AAC9B,YAAA,IAAI,EAAE,UAAC,WAAW,EAAA,EAAK,OAAA,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA,EAAA;SAC7C,EAAC,EATO,EAUT,CACH,EAfK,YAAY,GAAA,EAAA,CAAA,YAAA,EAAE,uBAAuB,GAAA,EAAA,CAAA,uBAe1C,CAAC;AACJ,QAAA,qBAAqB,KAArB,IAAA,IAAA,qBAAqB,KAArB,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,qBAAqB,CAAQ,QAAA,CAAA,QAAA,CAAA,EAAA,EAAA,IAAI,CAAE,EAAA,EAAA,YAAY,EAAA,YAAA,EAAE,uBAAuB,EAAA,uBAAA,IAAG,CAAC;QAC5E,IAAM,UAAU,GAAG,YAAY,CAAC;QAChC,IAAM,iBAAiB,GAAG,UAAU;aACjC,MAAM,CAAC,UAAC,OAAO,EAAK,EAAA,OAAA,CAAC,OAAO,CAAC,QAAQ,CAAjB,EAAiB,CAAC;AACtC,aAAA,GAAG,CAAC,UAAC,OAAO,EAAE,YAAY,EAAE,aAAa,EAAA;AACxC,YAAA,IAAM,gBAAgB,GAAkC;gBACtD,SAAS,EAAE,OAAO,CAAC,OAAO;gBAC1B,KAAK,EAAE,OAAO,CAAC,KAAK;gBACpB,GAAG,EAAE,OAAO,CAAC,GAAG;AAChB,gBAAA,SAAS,EAAE,eAAe,CAAC,OAAO,CAAC;gBACnC,IAAI,EAAE,OAAO,CAAC,IAAI;;AAGlB,gBAAA,QAAQ,EAAE,KAAK;AACf,gBAAA,QAAQ,EAAE,KAAK;AACf,gBAAA,GAAG,EAAE,SAAS;AACd,gBAAA,aAAa,EAAE;AACb,oBAAA,KAAK,EAAE,EAAE;AACV,iBAAA;AACD,gBAAA,SAAS,EAAE,SAAS;AACpB,gBAAA,cAAc,EAAE,UAAC,CAAC,EAAE,EAAiB,EAAA;AAAf,oBAAA,IAAA,aAAa,GAAA,EAAA,CAAA,aAAA,CAAA;AACjC,oBAAA,OAAO,aAAa,CAAC,CAAC,CAAC,CAAC;iBACzB;AAED,gBAAA,MAAM,EAAE,UAAC,KAAU,EAAE,MAAW,EAAE,QAAa,EAAA;AAC7C,oBAAA,IAAM,SAAS,GAAG,OAAO,CAAC,OAAO;AAC/B,0BAAE,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC;0BACvB,SAAS,CAAC;oBACd,OAAO,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;iBAChD;aACF,CAAC;AAEF,YAAA,OAAO,gBAAgB,CAAC;AAC1B,SAAC,CAAC,CAAC;AACL,QAAA,OAAO,EAAE,UAAU,EAAA,UAAA,EAAE,iBAAiB,EAAA,iBAAA,EAAE,CAAC;KAC1C,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,qBAAqB,CAAC,CAAC,CAAC;AAC5C;;AC9GM,SAAU,mBAAmB,CAAC,MAAqB,EAAA;AACvD,IAAA,uBAAuB,CAAC,MAAM,EAAE,WAAW,EAAE;AAC3C,QAAA,IAAI,EAAE,uBAAuB;AAC7B,QAAA,WAAW,EAAE,cAAc;AAC3B,QAAA,aAAa,EAAE;AACb,YAAA,KAAK,EAAE,SAAS;AAChB,YAAA,SAAS,EAAE,MAAM;AAClB,SAAA;AACD,QAAA,KAAK,EAAE;AACL,YAAA,IAAI,EAAE;AACJ,gBAAA,IAAI,EAAE,kBAAyB;AAC/B,gBAAA,WAAW,EAAE,qBAAqB;AACnC,aAAA;YACD,MAAM,EAAE,mBAAmB,CAAwC;AACjE,gBAAA,UAAU,EAAE;AACV,oBAAA,IAAI,EAAE;AACJ,wBAAA,IAAI,EAAE,QAAQ;AACd,wBAAA,WAAW,EAAE,2BAA2B;AACxC,wBAAA,gBAAgB,EAAE,CAAC;AACpB,qBAAA;AACF,iBAAA;aACF,CAAC;AACF,YAAA,MAAM,EAAE;AACN,gBAAA,WAAW,EAAE,QAAQ;AACrB,gBAAA,IAAI,EAAE,QAAQ;AACd,gBAAA,OAAO,EAAE;AACP,oBAAA,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,YAAY,EAAE;AAC5C,oBAAA,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE;AACzC,iBAAA;AACD,gBAAA,gBAAgB,EAAE,YAAY;AAC/B,aAAA;AACD,YAAA,MAAM,EAAE;AACN,gBAAA,WAAW,EAAE,eAAe;AAC5B,gBAAA,IAAI,EAAE,QAAQ;AACd,gBAAA,WAAW,EAAE,oCAAoC;AACjD,gBAAA,gBAAgB,EAAE,CAAC;AACpB,aAAA;AACD,YAAA,IAAI,EAAE;AACJ,gBAAA,WAAW,EAAE,SAAS;AACtB,gBAAA,IAAI,EAAE,QAAQ;AACd,gBAAA,OAAO,EAAE;AACP,oBAAA,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE;AAClC,oBAAA,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE;AACpC,oBAAA,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE;AACrC,iBAAA;AACD,gBAAA,gBAAgB,EAAE,SAAS;AAC5B,aAAA;AACD,YAAA,QAAQ,EAAE;AACR,gBAAA,WAAW,EAAE,eAAe;AAC5B,gBAAA,IAAI,EAAE,SAAS;AACf,gBAAA,gBAAgB,EAAE,KAAK;AACxB,aAAA;AACF,SAAA;AACD,QAAA,UAAU,EAAE,sCAAsC;AAClD,QAAA,UAAU,EAAE,aAAa;AAC1B,KAAA,CAAC,CAAC;AACL;;SC/DgB,WAAW,GAAA;IACnB,IAAA,EAAA,GAAsBM,cAAQ,CAAC,KAAK,CAAC,EAApC,MAAM,GAAA,EAAA,CAAA,CAAA,CAAA,EAAE,SAAS,GAAA,EAAA,CAAA,CAAA,CAAmB,CAAC;AAC5C,IAAAC,eAAS,CAAC,YAAA;QACR,SAAS,CAAC,IAAI,CAAC,CAAC;AAClB,KAAC,CAAC,CAAC;AACH,IAAA,OAAO,MAAM,CAAC;AAChB,CAAC;AAEK,SAAU,UAAU,CAAC,IAAY,EAAA;AACrC,IAAA,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACxD,CAAC;AAEK,SAAU,OAAO,CAAC,KAAa,EAAA;AAC7B,IAAA,IAAA,KAAcC,mBAAS,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAApC,CAAC,OAAA,EAAE,CAAC,OAAA,EAAE,CAAC,OAA6B,CAAC;AAC7C,IAAA,OAAO,CAAC,GAAG,KAAK,GAAG,CAAC,GAAG,KAAK,GAAG,CAAC,GAAG,KAAK,GAAG,GAAG,CAAC;AACjD;;ACXA,SAAS,aAAa,CAAC,CAAS,EAAA;AAC9B,IAAA,OAAO,MAAM,CAAC,WAAW,CACvB,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,UAAC,EAAM,EAAA;QAAJ,EAAA,CAAA,CAAA,CAAA,CAAE,KAAA,CAAC,GAAA,EAAA,CAAA,CAAA,EAAA;QAAM,OAAA,CAAC,KAAK,SAAS,CAAA;KAAA,CAAC,CACtD,CAAC;AACJ,CAAC;AAsBD,IAAM,UAAU,GAAG,4FAOlB,CAAC;AAEI,SAAU,UAAU,CAAC,EAYT,EAAA;;AAXhB,IAAA,IAAA,QAAQ,GAAA,EAAA,CAAA,QAAA,EACR,YAAY,GAAA,EAAA,CAAA,YAAA,EACZ,EAAa,GAAA,EAAA,CAAA,OAAA,EAAb,OAAO,GAAA,EAAA,KAAA,KAAA,CAAA,GAAG,GAAG,GAAA,EAAA,EACb,eAAe,GAAA,EAAA,CAAA,eAAA,EACf,cAAc,GAAA,EAAA,CAAA,cAAA,EACd,WAAW,iBAAA,EACX,WAAW,GAAA,EAAA,CAAA,WAAA,EACX,cAAc,GAAA,EAAA,CAAA,cAAA,EACd,SAAS,GAAA,EAAA,CAAA,SAAA,EACT,cAAc,GAAA,EAAA,CAAA,cAAA,EACX,WAAW,GAAA,MAAA,CAAA,EAAA,EAXW,2JAY1B,CADe,CAAA;AAEd,IAAA,IAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;IACzB,IAAA,EAAA,GAA0BF,cAAQ,CAAqB,SAAS,CAAC,EAAhE,QAAQ,GAAA,EAAA,CAAA,CAAA,CAAA,EAAE,WAAW,GAAA,EAAA,CAAA,CAAA,CAA2C,CAAC;AACxE,IAAAC,eAAS,CAAC,YAAA;AACR,QAAA,IAAI,OAAO,QAAQ,KAAK,WAAW,EAAE;AACnC,YAAA,WAAW,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;AAChC,SAAA;KACF,EAAE,EAAE,CAAC,CAAC;AACC,IAAA,IAAA,KAAK,GAAKE,UAAK,CAAC,QAAQ,EAAE,MAArB,CAAsB;AACnC,IAAA,IAAM,aAAa,GAAG,KAAK,CAAC,aAAa,CAAC;AAC1C,IAAA,SAAS,aAAa,GAAA;;AACpB,QAAA,IAAM,MAAM,GAAG,CAAA,EAAA,GAAA,cAAc,KAAd,IAAA,IAAA,cAAc,KAAd,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,cAAc,CAAE,MAAM,MAAI,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAA,SAAS,CAAC;AACnD,QAAA,QAAQ,MAAM;AACZ,YAAA,KAAK,SAAS;gBACZ,OAAO,KAAK,CAAC,YAAY,CAAC;AAC5B,YAAA,KAAK,MAAM;;AAET,gBAAA,OAAO,SAAS,CAAC;AACnB,YAAA,KAAK,QAAQ;AACX,gBAAA,OAAO,CAAA,EAAA,GAAA,cAAc,KAAd,IAAA,IAAA,cAAc,KAAd,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,cAAc,CAAE,aAAa,MAAI,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAA,KAAK,CAAC,WAAW,CAAC;AAC5D,YAAA,KAAK,OAAO;;;AAGV,gBAAA,OAAO,MAAM,CAAC;AAChB,YAAA,KAAK,SAAS;AACZ,gBAAA,OAAO,KAAK,CAAC,WAAW,IAAI,MAAM,CAAC;AACtC,SAAA;KACF;AACD,IAAA,IAAM,UAAU,GAAG,aAAa,EAAE,CAAC;;;;AAInC,IAAA,IAAM,YAAY,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AACzC,IAAA,IAAM,eAAe,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;;AAE/C,IAAA,IAAM,YAAY,GAAG,YAAY,KAAK,eAAe,GAAG,SAAS,GAAG,EAAE,CAAC;IACvE,IAAI,CAAC,QAAQ,EAAE;AACb,QAAA,OAAO,IAAI,CAAC;AACb,KAAA;AACD,IAAA,QACET,sBAAA,CAAA,aAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,EAAA;AAEnD,QAAAA,sBAAA,CAAA,aAAA,CAAA,OAAA,EAAA,IAAA,EAAQ,UAAU,CAAS;QAC3BA,sBAAC,CAAA,aAAA,CAAAU,uBAAS,eACJ,WAAW,EAAA;;;;;;;;;;;;;;;YAef,YAAY,EAAE,UAAC,MAAM,EAAE,UAAU,IAAK,QACpCV,sBAAC,CAAA,aAAA,CAAAW,mBAAc,EACb,EAAA,KAAK,EAAE,EAAE,KAAK,EAAE,aAAa,CAAC,EAAE,aAAa,EAAE,YAAY,EAAE,CAAC,EAAE,EAAA;AAEhE,gBAAAX,sBAAA,CAAA,aAAA,CAACY,+BAAiB,EAAA,EAAC,IAAI,EAAE,CAAC,YAAY,EAAA,EACnC,UAAU,CACO,CACL,EAClB,EAAA,EACD,KAAK,EAAE;gBACL,MAAM,EAAE,aAAa,CAAC;AACpB,oBAAA,aAAa,EAAE,UAAU;iBAC1B,CAAC;;;;;;;AAOF,gBAAA,KAAK,EAAE,YAAY;AACjB,sBAAE,SAAS;AACX,sBAAE;AACE,wBAAA,sBAAsB,EAAE,UAAU;AAClC,wBAAA,6BAA6B,EAAE,wBAAwB;AACvD,wBAAA,wBAAwB,EAAE,wBAAwB;AAClD,wBAAA,mBAAmB,EAAE,UAAU;AAC/B,wBAAA,6BAA6B,EAAE,kBAAkB;AACjD,wBAAA,gCAAgC,EAAE,kBAAkB;AACpD,wBAAA,gCAAgC,EAAE,kBAAkB;AACpD,wBAAA,oBAAoB,EAAE,wBAAwB;AAC9C,wBAAA,oBAAoB,EAAE,kBAAkB;AACxC,wBAAA,uBAAuB,EAAE,kBAAkB;AAC3C,wBAAA,qBAAqB,EAAE,MAAM;AAC7B,wBAAA,sBAAsB,EAAE,wBAAwB;AAChD,wBAAA,aAAa,EAAE,wBAAwB;AACvC,wBAAA,sBAAsB,EAAE,wBAAwB;AAChD,wBAAA,kBAAkB,EAAE,wBAAwB;AAC5C,wBAAA,mBAAmB,EAAE,wBAAwB;AAC7C,wBAAA,wBAAwB,EAAE,MAAM;AACjC,qBAAA;AACN,aAAA;;AAED,YAAA,MAAM,EAAE,CAAA,EAAA,GAAA,WAAW,CAAC,MAAM,mCAAI,KAAK,EACnC,WAAW,EAAE,MAAA,WAAW,CAAC,WAAW,MAAI,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAA,KAAK,EAC7C,WAAW;;YAET,WAAW,CAAC,MAAM,KAAK,KAAK;AAC1B,kBAAE,SAAS;AACX,kBAAE,CAAA,EAAA,GAAA,WAAW,CAAC,WAAW,mCAAI,KAAK;;YAGtC,UAAU,EAAE,WAAW,CAAC,MAAM,KAAK,KAAK,EACxC,KAAK,EAAE;AACL,gBAAA,IAAI,EAAE,OAAO;AACb,gBAAA,MAAM,EAAE,YAAY;AACrB,aAAA,EACD,QAAQ,EAAE;AACR,gBAAA,QAAQ,EAAA,QAAA;AACT,aAAA,EACD,IAAI,EAAE;;AAEJ,gBAAA,cAAc,EAAE,IAAI;;aAErB,EACD,WAAW,EACT,cAAc;AACZ,kBAAE;AACE,oBAAA,GAAG,EAAE,WAAW;AAChB,oBAAA,IAAI,EAAE,OAAO;AACb,oBAAA,KAAK,EAAE,WAAW;AAClB,oBAAA,MAAM,EAAE,UAAC,MAAM,EAAE,GAAG,EAAA;AAClB,wBAAA,QACEZ,sBAAA,CAAA,aAAA,CAACa,aAAQ,EAAA,EACP,IAAI,EAAE;AACJ,gCAAA,KAAK,EAAE;AACL,oCAAA;AACE,wCAAA,GAAG,EAAE,QAAQ;wCACb,IAAI,EAAEb,sBAAC,CAAA,aAAA,CAAAc,oBAAc,EAAG,IAAA,CAAA;AACxB,wCAAA,KAAK,EAAE,UAAU;AAClB,qCAAA;AACF,iCAAA;6BACF,EAEA,EAAA,GAAG,CACK,EACX;qBACH;AACF,iBAAA;AACH,kBAAE,SAAS,EAEf,aAAa,EAAE,UAAC,MAAM,EAAA;gBACpB,OAAO,CAAC,eAAe,CAAC,CAAC;AAC3B,aAAC,EACD,gBAAgB,EAAE,UAAC,KAAK,EAAA;AACtB,gBAAA,IAAI,KAAK,KAAL,IAAA,IAAA,KAAK,KAAL,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,KAAK,CAAE,SAAS;AAAE,oBAAA,OAAO,SAAS,CAAC;AACvC,gBAAA,OAAO,cAAc,CAAC;AACxB,aAAC,EACD,iBAAiB,EAAE,UAAC,CAAC,EAAA,EAAK,OAAA,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAd,EAAc,EACxC,cAAc,EAAE,UAAC,IAAI,EAAE,GAAG,EAAK,EAAA,OAAAd,4CAAG,IAAI,EAAE,IAAI,CAAC,IAAI,IAAG,GAAG,CAAK,GAAA,EAC5D,iBAAiB,EAAE,UAAC,IAAI,EAAE,KAAK,EAAE,CAAC,EAAA;AAChC,gBAAA,QACEA,sBAAA,CAAA,aAAA,CAAA,GAAA,EAAA,EAAG,IAAI,EAAE,OAAO,EAAA;oBACb,IAAI;oBACJ,KAAK,CACJ,EACJ;AACJ,aAAC,EAEA,CAAA,EAAA,QAAQ,CACC,CACR,EACN;AACJ;;ACtNA,SAAS,mBAAmB,CAC1B,cAAsB,EACtB,WAAoB,EACpB,YAAoB,EAAA;IAEpB,OAAO;QACL,WAAW,EAAE,WAAW,GAAG,WAAW,GAAG,cAAc;AACvD,QAAA,IAAI,EAAE,OAAO;AACb,QAAA,YAAY,EAAA,YAAA;AACZ,QAAA,QAAQ,EAAE;AACR,YAAA,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,UAAC,IAAS,EAAA;AAClB,gBAAA,OAAA,IAAI,CAAC,IAAI,KAAK,CAAC,WAAW,GAAG,qBAAqB,GAAG,cAAc,CAAC,CAAA;aAAA;AACtE,YAAA,MAAM,EACJ,QAAA,CAAA,EAAA,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,QAAQ,EACX,GAAC,cAAc,KAAK,CAAC;AACtB,kBAAE,EAAE;AACJ,kBAAE;AACE,oBAAA,MAAM,EAAE,mBAAmB,CAAC,cAAc,GAAG,CAAC,CAAC;AAChD,iBAAA,EACN;AACF,SAAA;KACO,CAAC;AACb,CAAC;AAED,IAAM,cAAc,GAAmC;AACrD,IAAA,IAAI,EAAE,sBAAsB;AAC5B,IAAA,WAAW,EAAE,iBAAiB;AAC9B,IAAA,KAAK,EAAE;AACL,QAAA,QAAQ,EAAE;AACR,YAAA,IAAI,EAAE,MAAM;AACZ,YAAA,2BAA2B,EAAE,IAAI;AAClC,SAAA;AACD,QAAA,eAAe,EAAE;AACf,YAAA,IAAI,EAAE,MAAM;AACZ,YAAA,eAAe,EAAE,IAAI;AACtB,SAAA;AACD,QAAA,KAAK,EAAE;AACL,YAAA,WAAW,EAAE,OAAO;AACpB,YAAA,IAAI,EAAE,QAAQ;AACd,YAAA,YAAY,EAAE,WAAW;AAC1B,SAAA;AACD,QAAA,IAAI,EAAE;AACJ,YAAA,WAAW,EAAE,MAAM;AACnB,YAAA,IAAI,EAAE,UAAU;AAChB,YAAA,YAAY,EAAE,qCAAqC;AACpD,SAAA;AACD,QAAA,YAAY,EAAE,mBAAmB,CAAC,CAAC,EAAE,gBAAgB,EAAE;AACrD,YAAA;AACE,gBAAA,IAAI,EAAE,GAAG;AACT,gBAAA,IAAI,EAAE,QAAQ;AACf,aAAA;AACD,YAAA;AACE,gBAAA,IAAI,EAAE,GAAG;AACT,gBAAA,IAAI,EAAE,QAAQ;AACf,aAAA;SACF,CAAC;AAEF,QAAA,MAAM,EAAE;AACN,YAAA,WAAW,EAAE,QAAQ;AACrB,YAAA,IAAI,EAAE,QAAQ;AACd,YAAA,OAAO,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,GAAG,CAAC,UAAC,KAAK,EAAA,EAAK,QAAC;AAC9C,gBAAA,KAAK,EAAA,KAAA;AACL,gBAAA,KAAK,EAAE,UAAU,CAAC,KAAK,CAAC;aACzB,EAAC,EAAA,CAAC;AACH,YAAA,gBAAgB,EAAE,KAAK;AACxB,SAAA;AAED,QAAA,cAAc,EAAE;AACd,YAAA,WAAW,EAAE,OAAO;AACpB,YAAA,IAAI,EAAE,QAAQ;AACd,YAAA,MAAM,EAAE;AACN,gBAAA,MAAM,EAAE;AACN,oBAAA,IAAI,EAAE,QAAQ;AACd,oBAAA,OAAO,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,GAAG,CAC5D,UAAC,CAAC,EAAA,EAAK,QAAC;AACN,wBAAA,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC;AACpB,wBAAA,KAAK,EAAE,CAAC;qBACT,EAAC,EAAA,CACH;AACD,oBAAA,gBAAgB,EAAE,SAAS;AAC5B,iBAAA;AACD,gBAAA,aAAa,EAAE;AACb,oBAAA,IAAI,EAAE,OAAO;AACb,oBAAA,WAAW,EAAE,cAAc;AAC3B,oBAAA,MAAM,EAAE,UAAC,KAAK,YAAK,OAAA,EAAE,CAAA,CAAA,EAAA,GAAA,KAAK,CAAC,cAAc,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,MAAM,MAAK,QAAQ,CAAC,CAAA,EAAA;AAC/D,oBAAA,YAAY,EAAE,SAAS;AACxB,iBAAA;AACF,aAAA;AACF,SAAA;;AAGD;;;;;;;;;;;;;;;;AAgBE;AACF,QAAA,WAAW,EAAE;AACX,YAAA,WAAW,EAAE,eAAe;AAC5B,YAAA,IAAI,EAAE,SAAS;AACf,YAAA,MAAM,EAAE,UAAC,EAAE,EAAK,EAAA,IAAA,EAAA,CAAA,CAAA,OAAA,CAAC,CAAA,EAAA,GAAA,EAAE,CAAC,MAAM,mCAAI,KAAK,MAAM,KAAK,CAAA,EAAA;AAC9C,YAAA,gBAAgB,EAAE,KAAK;AACxB,SAAA;AACD,QAAA,WAAW,EAAE;AACX,YAAA,WAAW,EAAE,gBAAgB;AAC7B,YAAA,IAAI,EAAE,SAAS;AACf,YAAA,MAAM,EAAE,UAAC,EAAE,EAAK,EAAA,IAAA,EAAA,CAAA,CAAA,OAAA,CAAC,CAAA,EAAA,GAAA,EAAE,CAAC,MAAM,mCAAI,KAAK,MAAM,MAAM,CAAA,EAAA;AAC/C,YAAA,gBAAgB,EAAE,KAAK;AACxB,SAAA;AACD;;;;;;;;;;;;;;;;;AAiBG;AACH,QAAA,IAAI,EAAE;AACJ,YAAA,WAAW,EAAE,MAAM;AACnB,YAAA,IAAI,EAAE,QAAQ;AACd,YAAA,MAAM,EAAE;AACN,gBAAA,cAAc,EAAE;AACd,oBAAA,WAAW,EAAE,kBAAkB;AAC/B,oBAAA,IAAI,EAAE,SAAS;AAChB,iBAAA;AACD,gBAAA,qBAAqB,EAAE;;AAErB,oBAAA,IAAI,EAAE,SAAS;AAChB,iBAAA;AACF,aAAA;AACF,SAAA;AACF,KAAA;AAED,IAAA,aAAa,EAAE;AACb,QAAA,KAAK,EAAE,YAAY;AACnB,QAAA,MAAM,EAAE,SAAS;AACjB,QAAA,SAAS,EAAE,OAAO;AACnB,KAAA;AAED,IAAA,UAAU,EAAE,YAAY;AACxB,IAAA,UAAU,EAAE,sCAAsC;CACnD,CAAC;AAEI,SAAU,kBAAkB,CAAC,MAAqB,EAAA;AACtD,IAAA,uBAAuB,CAAC,MAAM,EAAE,UAAU,EAAE,cAAc,CAAC,CAAC;AAC9D;;AC5FM,SAAU,SAAS,CAAC,KAAqB,EAAA;IAE3C,IAAA,SAAS,GA2BP,KAAK,CA3BE,SAAA,EACT,KA0BE,KAAK,CAAA,IAdN,EAZK,OAAO,GAAG,EAAA,KAAA,KAAA,CAAA,GAAA;AACd,QAAA,IAAI,EAAE,EAAE;AACR,QAAA,MAAM,EAAE;AACN,YAAA,EAAE,EAAE,UAAU;AACd,YAAA,MAAM,EAAE;AACN,gBAAA;AACE,oBAAA,EAAE,EAAE,IAAI;AACR,oBAAA,IAAI,EAAE,QAAQ;AACd,oBAAA,QAAQ,EAAE,KAAK;AAChB,iBAAA;AACF,aAAA;AACF,SAAA;KACF,GAAA,EAAA;;AAED,IAAA,EAAA,GAYE,KAAK,CAZU,UAAA;;AAAjB,IAAA,UAAU,GAAG,EAAA,KAAA,KAAA,CAAA,GAAA,IAAI,GAAA,EAAA,EACjB,WAAW,GAWT,KAAK,CAXI,WAAA,EACX,KAAK,GAUH,KAAK,CAAA,KAVF,EACL,OAAO,GASL,KAAK,CAAA,OATA,EACP,EAAA,GAQE,KAAK,CAAA,QARM,EAAb,QAAQ,GAAA,EAAA,KAAA,KAAA,CAAA,GAAG,EAAE,GAAA,EAAA,EACb,UAAU,GAOR,KAAK,CAAA,UAPG,EACV,EAME,GAAA,KAAK,CANW,WAAA,EAAlB,WAAW,GAAA,EAAA,KAAA,KAAA,CAAA,GAAG,IAAI,GAAA,EAAA,EAClB,gBAAgB,GAKd,KAAK,CAAA,gBALS,EAChB,WAAW,GAIT,KAAK,YAJI,EACX,EAAA,GAGE,KAAK,CAAA,gBAHgB,EAAvB,gBAAgB,GAAG,EAAA,KAAA,KAAA,CAAA,GAAA,IAAI,KAAA,EACvB,MAAM,GAEJ,KAAK,OAFD,EACN,cAAc,GACZ,KAAK,eADO,CACN;AAEV,IAAA,IAAM,IAAI,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;AAE9B,IAAA,IAAA,EAAoC,GAAA,oBAAoB,CAAC,IAAI,EAAE,KAAK,CAAC,EAAnE,iBAAiB,GAAA,EAAA,CAAA,iBAAA,EAAE,UAAU,gBAAsC,CAAC;AAE5E,IAAA,IAAM,SAAS,GAAGe,YAAM,EAAc,CAAC;AAEjC,IAAA,IAAA,KAAiD,qBAAqB,CAC1E,IAAI,EACJ,UAAU,CACX,EAHO,SAAS,eAAA,EAAE,MAAM,YAAA,EAAE,SAAS,eAAA,EAAE,YAAY,kBAGjD,CAAC;IAEF,IAAM,iBAAiB,GAAG,oBAAoB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AAE5D,IAAA,IAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;IAE/B,IAAI,CAAC,QAAQ,EAAE;AACb,QAAA,OAAO,IAAI,CAAC;AACb,KAAA;AAED,IAAA,QACEf,sBAAA,CAAA,aAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,UAAG,SAAS,EAAA,GAAA,CAAA,CAAA,MAAA,CAAI,cAAc,KAAA,IAAA,IAAd,cAAc,KAAA,KAAA,CAAA,GAAd,cAAc,GAAI,EAAE,CAAE,EAAA;AACpD,QAAAA,sBAAA,CAAA,aAAA,CAACgB,sBAAQ,EAAA,QAAA,CAAA,EACP,YAAY,EACV,KAAK,CAAC,UAAU,IAAI,KAAK,CAAC,aAAa,KAAK,OAAO;AACjD,kBAAE,6BAA6B;kBAC7B,SAAS,EAEf,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,iBAAiB,EAC1B,QAAQ,EAAE,UAAC,WAAW,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAA;AAC9C,gBAAA,YAAY,CAAC,EAAE,MAAM,EAAE,MAAa,EAAE,CAAC,CAAC;aACzC,EACD,KAAK,EAAE;AACL,gBAAA,KAAK,EAAE,MAAM;AACd,aAAA,EACD,SAAS,EAAE;AACT,gBAAA,KAAK,EAAE,IAAI;AACZ,aAAA,EAAA,EACG,iBAAiB,EAAA,EACrB,UAAU,EAAE,SAAS,EACrB,MAAM,EAAE,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,EAClC,WAAW,EAAE,WAAW,EACxB,QAAQ,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,EAC9B,MAAM,EAAE,KAAK,EACb,OAAO,EAAE;AACP,gBAAA,OAAO,EAAE,gBAAgB;AACvB,sBAAE,KAAK;AACP,sBAAE;AACE,wBAAA,WAAW,EAAE,GAAG;AACjB,qBAAA;AACL,gBAAA,MAAM,EAAE,KAAK;gBACb,OAAO,EAAE,CAAC,WAAW;aACtB,EACD,UAAU,EACR,UAAU;AACR,kBAAE;AACE,oBAAA,QAAQ,EAAA,QAAA;AACR,oBAAA,QAAQ,EAAE,UAAC,IAAI,EAAA,EAAK,OAAA,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA,EAAA;AACrC,oBAAA,eAAe,EAAE,KAAK;AACvB,iBAAA;AACH,kBAAE,KAAK,EAEX,aAAa,EAAC,QAAQ,EACtB,WAAW,EAAE,KAAK,EAClB,OAAO,EAAE;gBACP,MAAM,EAAE,CAAC,UAAU;AACjB,sBAAE;AACE,wBAAA,KAAK,EAAE,MAAM;AACb,wBAAA,QAAQ,EAAE,UAAC,CAAC,EAAA,EAAK,OAAA,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,GAAA;AAC1C,wBAAA,QAAQ,EAAE,YAAA;4BACR,OAAO;yBACR;AACD,wBAAA,WAAW,EAAE,QAAQ;AACtB,qBAAA;AACH,sBAAE,SAAS;AACd,aAAA,EACD,aAAa,EAAE,YAAA;gBACb,OAAA;oBACE,OAAO,KACLhB,sBAAC,CAAA,aAAA,CAAAiB,WAAM,IACL,GAAG,EAAC,QAAQ,EACZ,IAAI,EAAEjB,qCAACkB,kBAAY,EAAA,IAAA,CAAG,EACtB,IAAI,EAAC,SAAS,EACd,IAAI,EAAE,OAAO,EAAA,EAAA,KAAA,CAGN,CACV;oBACD,CAAC,WAAW,IAAIlB,sBAAC,CAAA,aAAA,CAAA,UAAU,IAAC,IAAI,EAAE,IAAI,EAAI,CAAA;iBAC3C,CAAC,MAAM,CAAC,UAAC,CAAC,EAAA,EAAK,OAAA,CAAC,CAAC,CAAC,CAAH,EAAG,CAAC,CAAA;AAZpB,aAYoB,EAEtB,CAAA,CAAA;AAEF,QAAAA,sBAAA,CAAA,aAAA,CAAA,OAAA,EAAA,EACE,uBAAuB,EAAE;AACvB,gBAAA,MAAM,EAAE,2gEAAA,CAAA,MAAA,CAqDN,cAAc,IAAI,gBAAgB;sBAC9B,eACH,CAAA,MAAA,CAAA,cAAc,EAGhB,8EAAA,CAAA;sBACK,EAAE,EAEX,UAAA,CAAA;aACE,EACD,CAAA,CACE,EACN;AACJ,CAAC;AAEe,SAAA,YAAY,CAC1B,IAAoD,EACpD,MAAwD,EAAA;;AAExD,IAAA,IAAI,MAAM,EAAE;AACV,QAAA,OAAO,MAAM,CAAC;AACf,KAAA;IACD,IAAM,MAAM,GAAG,IAAI,KAAA,IAAA,IAAJ,IAAI,KAAJ,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,IAAI,CAAE,MAAM,CAAC;AAC5B,IAAA,IAAI,MAAM,EAAE;QACV,OAAO,CAAA,EAAA,GAAA,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,EAAE,CAAC;AAC7B,KAAA;AACD,IAAA,OAAO,SAAS,CAAC;AACnB,CAAC;AAEe,SAAA,cAAc,CAC5B,GAAQ,EACR,MAAwD,EAAA;AAExD,IAAA,IAAI,OAAO,MAAM,KAAK,UAAU,EAAE;AAChC,QAAA,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;AACpB,KAAA;AAAM,SAAA,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE;AACrC,QAAA,OAAO,GAAG,CAAC,MAAM,CAAC,CAAC;AACpB,KAAA;AAAM,SAAA;AACL,QAAA,OAAO,SAAS,CAAC;AAClB,KAAA;AACH,CAAC;AAQD,IAAM,mBAAmB,GAAG,YAAA;AAC1B,IAAA,QAAC;QACC,GAAG,EAAE,SAAS,EAAE;AAChB,QAAA,cAAc,EAAE,YAAA,EAAM,OAAA,KAAK,GAAA;AAC3B,QAAA,cAAc,EAAE,KAAK;AACrB,QAAA,UAAU,EAAE,SAAS;AACrB,QAAA,QAAQ,EAAE,KAAK;AACf,QAAA,UAAU,EAAE;AACV,YAAA,MAAM,EAAE,EAAE;AACV,YAAA,KAAK,EAAE,MAAM;AACb,YAAA,MAAM,EAAE,KAAK;AACd,SAAA;AACD,QAAA,QAAQ,EAAE,MAAe;KAChB,EAAA;AAZX,CAYW,CAAC;AASd,SAAS,oBAAoB,CAC3B,IAAgC,EAChC,KAA6C,EAAA;AAErC,IAAA,IAAA,MAAM,GAAwC,KAAK,CAAA,MAA7C,EAAE,qBAAqB,GAAiB,KAAK,CAAA,qBAAtB,EAAE,UAAU,GAAK,KAAK,WAAV,CAAW;IAC5D,OAAOA,sBAAK,CAAC,OAAO,CAAC,YAAA;QACnB,IAAM,MAAM,GAAG,IAAI,KAAA,IAAA,IAAJ,IAAI,KAAJ,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,IAAI,CAAE,MAAM,CAAC;AAC5B,QAAA,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,EAAE;YACpB,OAAO,EAAE,UAAU,EAAE,EAAE,EAAE,iBAAiB,EAAE,EAAE,EAAE,CAAC;AAClD,SAAA;QACK,IAAA,EAAA,GACJ,kBAAkB,CAAoB,MAAM,aAAN,MAAM,KAAA,KAAA,CAAA,GAAN,MAAM,GAAI,EAAE,EAAE,MAAM,EAAE,UAAC,KAAK,EAAA,EAAK,QAAA,QAAA,CAAA,QAAA,CAAA,EAAA,EAClE,mBAAmB,EAAE,CAAA,GACpB,KAAK,IAAI;YACX,GAAG,EAAE,KAAK,CAAC,EAAE;YACb,OAAO,EAAE,KAAK,CAAC,EAAE;AACjB,YAAA,KAAK,EAAE,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,EAAE;AAC9B,YAAA,IAAI,EAAE,UAAC,WAAW,EAAA,EAAK,OAAA,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA,EAAA;SAC7C,EAAC,EAPmE,EAQrE,CAAC,EATG,YAAY,GAAA,EAAA,CAAA,YAAA,EAAE,uBAAuB,GAAA,EAAA,CAAA,uBASxC,CAAC;AACN,QAAA,qBAAqB,KAArB,IAAA,IAAA,qBAAqB,KAArB,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,qBAAqB,CAAQ,QAAA,CAAA,QAAA,CAAA,EAAA,EAAA,IAAI,CAAE,EAAA,EAAA,YAAY,EAAA,YAAA,EAAE,uBAAuB,EAAA,uBAAA,IAAG,CAAC;QAC5E,IAAM,UAAU,GAAG,YAAY,CAAC;QAChC,IAAM,iBAAiB,GAA2B,UAAU;aACzD,MAAM,CAAC,UAAC,OAAO,EAAK,EAAA,OAAA,CAAC,OAAO,CAAC,QAAQ,CAAjB,EAAiB,CAAC;AACtC,aAAA,GAAG,CAAC,UAAC,OAAO,EAAE,YAAY,EAAE,aAAa,EAAA;AACxC,YAAA,IAAM,gBAAgB,GAAyB;gBAC7C,SAAS,EAAE,OAAO,CAAC,OAAO;gBAC1B,KAAK,EAAE,OAAO,CAAC,KAAK;;gBAEpB,GAAG,EAAE,OAAO,CAAC,GAAG;AAChB,gBAAA,SAAS,EAAE,eAAe,CAAC,OAAO,CAAC;;AAGnC,gBAAA,QAAQ,EAAE,KAAK;AACf,gBAAA,MAAM,EAAE,IAAI;AACZ,gBAAA,QAAQ,EAAE,KAAK;AACf,gBAAA,QAAQ,EAAE,KAAK;AACf,gBAAA,GAAG,EAAE,SAAS;AACd,gBAAA,aAAa,EAAE;AACb,oBAAA,KAAK,EAAE,EAAE;AACV,iBAAA;AACD,gBAAA,OAAO,EAAE,KAAK;AACd,gBAAA,SAAS,EAAE,SAAS;AACpB,gBAAA,MAAM,EAAE,SAAS;AACjB,gBAAA,YAAY,EAAE,KAAK;AACnB,gBAAA,cAAc,EAAE,UAAC,CAAC,EAAE,EAAiB,EAAA;AAAf,oBAAA,IAAA,aAAa,GAAA,EAAA,CAAA,aAAA,CAAA;AACjC,oBAAA,OAAO,aAAa,CAAC,CAAC,CAAC,CAAC;iBACzB;AAED,gBAAA,MAAM,EAAE,UAAC,KAAU,EAAE,MAAW,EAAE,QAAa,EAAA;AAC7C,oBAAA,IAAM,SAAS,GAAG,OAAO,CAAC,OAAO;AAC/B,0BAAE,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC;0BACvB,SAAS,CAAC;oBACd,OAAO,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;iBAChD;aACF,CAAC;AAEF,YAAA,OAAO,gBAAgB,CAAC;AAC1B,SAAC,CAAC,CAAC;AACL,QAAA,IAAI,UAAU,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;YACvC,iBAAiB,CAAC,IAAI,CAAC;AACrB,gBAAA,KAAK,EAAE,SAAS;AAChB,gBAAA,SAAS,EAAE,QAAQ;AACnB,gBAAA,GAAG,EAAE,kBAAkB;AACvB,gBAAA,KAAK,EAAE,OAAO;gBACd,SAAS,EAAE,KAAK,CAAC,mBAAmB;AACpC,gBAAA,MAAM,EAAE,UAAC,KAAK,EAAE,GAAG,EAAA,EAAK,OACnB,aAAA,CAAA,EAAA,EAAA,UAAU,CAAC,GAAG,CAAC,UAAC,OAAO,EAAA;;AACxB,oBAAA,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,EAAE;wBAC3B,QACEA,4CACE,GAAG,EAAE,OAAO,CAAC,KAAK,EAClB,KAAK,EAAE;AACL,gCAAA,UAAU,EAAE,QAAQ;AACrB,6BAAA,EACD,OAAO,EAAE,YAAA;;gCACP,OAAA,CAAA,EAAA,GAAA,OAAO,CAAC,OAAO,wDACb,cAAc,CAAC,GAAG,EAAE,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,EACrD,GAAG,CACJ,CAAA;AAAA,6BAAA,EAAA,EAGF,OAAO,CAAC,KAAK,CACZ,EACJ;AACH,qBAAA;AAAM,yBAAA;wBACL,QACEA,sBAAC,CAAA,aAAA,CAAAmB,2BAAa,EACZ,EAAA,GAAG,EAAE,OAAO,CAAC,KAAK,EAClB,KAAK,EAAE;AACL,gCAAA,UAAU,EAAE,QAAQ;AACrB,6BAAA,EACD,KAAK,EAAE,CAAC,CAAA,EAAA,GAAA,OAAO,CAAC,QAAQ,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAI,EAAE,EAAE,GAAG,CAAC,UAAC,KAAK,EAAA,EAAK,QAAC;gCAC9C,GAAG,EAAE,KAAK,CAAC,KAAK;gCAChB,IAAI,EAAE,KAAK,CAAC,KAAK;AACjB,gCAAA,OAAO,EAAE,YAAA;;oCACP,OAAA,CAAA,EAAA,GAAA,KAAK,CAAC,OAAO,sDACX,cAAc,CAAC,GAAG,EAAE,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,EACrD,GAAG,CACJ,CAAA;AAAA,iCAAA;6BACJ,EAAC,EAAA,CAAC,EAAA,EAEF,OAAO,CAAC,KAAK,CACA,EAChB;AACH,qBAAA;iBACF,CAAC,UACH;AACF,aAAA,CAAC,CAAC;AACJ,SAAA;AACD,QAAA,OAAO,EAAE,UAAU,EAAA,UAAA,EAAE,iBAAiB,EAAA,iBAAA,EAAE,CAAC;KAC1C,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,qBAAqB,EAAE,UAAU,CAAC,CAAC,CAAC;AACxD,CAAC;AAED,SAAS,qBAAqB,CAC5B,IAAgC,EAChC,OAA4B,EAAA;IAEtB,IAAA,EAAA,GAAsBb,cAAQ,CAAC,EAAE,CAAC,EAAjC,MAAM,GAAA,EAAA,CAAA,CAAA,CAAA,EAAE,SAAS,GAAA,EAAA,CAAA,CAAA,CAAgB,CAAC;IACnC,IAAA,EAAA,GAA4BA,cAAQ,CAExC,SAAS,CAAC,EAFL,SAAS,GAAA,EAAA,CAAA,CAAA,CAAA,EAAE,YAAY,GAAA,EAAA,CAAA,CAAA,CAElB,CAAC;AACb,IAAA,IAAM,SAAS,GAAGN,sBAAK,CAAC,OAAO,CAAC,YAAA;;AAC9B,QAAA,IAAM,QAAQ,GAAG,CAAA,EAAA,GAAA,IAAI,aAAJ,IAAI,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAJ,IAAI,CAAE,IAAI,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,MAAM,CAAC,UAAC,GAAG,EAAA;AACtC,YAAA,OAAAoB,8BAAa,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;AAAhE,SAAgE,CACjE,CAAC;QACF,IAAM,MAAM,GAAG,CAAA,SAAS,KAAA,IAAA,IAAT,SAAS,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAT,SAAS,CAAE,MAAM,CAAC,MAAM;AACrC;gBACE,CAAC,YAAA;;AACC,oBAAA,IAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAC1B,UAAC,EAAE,EAAK,EAAA,IAAA,EAAA,CAAA,CAAA,OAAA,EAAE,CAAC,GAAG,MAAK,CAAA,EAAA,GAAA,SAAS,KAAA,IAAA,IAAT,SAAS,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAT,SAAS,CAAE,MAAM,CAAC,MAAM,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,GAAG,CAAA,CAAA,EAAA,CAChD,CAAC;AACH,oBAAA,IAAM,IAAI,GAAG,CAAA,EAAA,GAAA,OAAO,CAAC,IAAI,MAAI,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,IAAC,UAAC,CAAC,IAAK,OAAA,CAAC,CAAD,EAAC,CAAC,CAAC;AACxC,oBAAA,OAAO,CAAC,QAAQ,KAAR,IAAA,IAAA,QAAQ,cAAR,QAAQ,GAAI,EAAE,EAAE,IAAI,CAAC,UAAC,EAAE,EAAE,EAAE,EAAA;;AAClC,wBAAA,IAAM,CAAC,GACH,CAAA,EAAA,GAAA,IAAI,CAAC,EAAE,EAAE,OAAO,CAAC,OAAO,GAAG,EAAE,KAAF,IAAA,IAAA,EAAE,KAAF,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAE,CAAG,OAAO,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,MACxD,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAA,IAAI,EACN,CAAC,GACC,CAAA,EAAA,GAAA,IAAI,CAAC,EAAE,EAAE,OAAO,CAAC,OAAO,GAAG,EAAE,KAAA,IAAA,IAAF,EAAE,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAF,EAAE,CAAG,OAAO,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GACxD,IAAI,CAAC;;wBAET,OAAO,OAAO,CAAC,KAAK,QAAQ;AAC1B,8BAAE,CAAC,CAAC,aAAa,CAAC,CAAC,KAAD,IAAA,IAAA,CAAC,KAAD,KAAA,CAAA,GAAA,CAAC,GAAI,EAAE,CAAC;AAC1B,8BAAE,OAAO,CAAC,KAAK,QAAQ;AACvB,kCAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,KAAA,IAAA,IAAD,CAAC,KAAA,KAAA,CAAA,GAAD,CAAC,GAAI,EAAE,CAAC;AAC3B,kCAAE,CAAC,GAAG,CAAC,CAAC;AACZ,qBAAC,CAAC,CAAC;AACL,iBAAC,GAAG;cACJ,QAAQ,CAAC;AACb,QAAA,IAAM,QAAQ,GACZ,CAAA,SAAS,KAAT,IAAA,IAAA,SAAS,KAAT,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,SAAS,CAAE,MAAM,CAAC,KAAK,MAAK,SAAS,GAAG,MAAM,KAAN,IAAA,IAAA,MAAM,KAAN,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,MAAM,CAAE,OAAO,EAAE,GAAG,MAAM,CAAC;AACrE,QAAA,OAAO,QAAQ,CAAC;KACjB,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC;IAEvC,OAAO;AACL,QAAA,SAAS,EAAA,SAAA;AACT,QAAA,MAAM,EAAA,MAAA;AACN,QAAA,SAAS,EAAA,SAAA;AACT,QAAA,YAAY,EAAA,YAAA;KACb,CAAC;AACJ,CAAC;AAED,SAAS,oBAAoB,CAC3B,IAAgC,EAChC,KAA6C,EAAA;IAG3C,IAAA,aAAa,GAKX,KAAK,CALM,aAAA,EACb,cAAc,GAIZ,KAAK,CAJO,cAAA,EACd,qBAAqB,GAGnB,KAAK,CAHc,qBAAA,EACrB,MAAM,GAEJ,KAAK,CAAA,MAFD,EACN,UAAU,GACR,KAAK,CAAA,UADG,CACF;AACV,IAAA,IAAM,qBAAqB,GAAG,YAAA;AAC5B,QAAA,IACE,CAAC,aAAa;AACd,YAAA,aAAa,KAAK,MAAM;AACxB,YAAA,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,EAC3B;AACA,YAAA,OAAO,EAAE,CAAC;AACX,SAAA;AAED,QAAA,IAAI,OAAO,cAAc,KAAK,QAAQ,EAAE;YACtC,OAAO,CAAC,cAAc,CAAC,CAAC;AACzB,SAAA;AAAM,aAAA,IAAI,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE;AACxC,YAAA,IAAI,aAAa,KAAK,QAAQ,IAAI,aAAa,KAAK,OAAO,EAAE;gBAC3D,OAAO,cAAc,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACnC,aAAA;AAAM,iBAAA;AACL,gBAAA,OAAO,cAAc,CAAC;AACvB,aAAA;AACF,SAAA;AAAM,aAAA;AACL,YAAA,OAAO,EAAE,CAAC;AACX,SAAA;AACH,KAAC,CAAC;AAEF,IAAA,IAAM,YAAY,GAChB,aAAa,IAAI,aAAa,KAAK,MAAM;UACtC,QAAA,CAAA,EACG,IAAI,EACF,aAAa,KAAK,QAAQ,IAAI,aAAa,KAAK,OAAO;AACrD,kBAAE,OAAO;AACT,kBAAE,UAAU,EAChB,eAAe,EAAE,qBAAqB,EAAE,EACxC,QAAQ,EAAE,UAAC,OAAO,EAAE,IAAI,EAAA;gBACtB,qBAAqB,KAAA,IAAA,IAArB,qBAAqB,KAArB,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,qBAAqB,CAAG,OAAmB,EAAE,IAAI,CAAC,CAAC;aACpD,EACD,eAAe,EAAE,IAAI,KACjB,aAAa,KAAK,OAAO,IAAI;AAC/B,YAAA,UAAU,EAAE,YAAA,EAAM,OAAA,IAAI,GAAA;AACtB,YAAA,WAAW,EAAE,CAAC;AACd,YAAA,WAAW,EAAE,IAAI;AACjB,YAAA,aAAa,EAAE,IAAI;AACpB,SAAA,EAEL,GAAE,SAAS,CAAC;IAChB,OAAO;AACL,QAAA,YAAY,EAAA,YAAA;AACZ,QAAA,KAAK,EAAE,UAAC,GAAG,EAAA,EAAK,QAAC;YACf,OAAO,EAAE,UAAC,KAAK,EAAA;AACb,gBAAA,IAAM,GAAG,GAAG,cAAc,CAAC,GAAG,EAAE,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;AAC5D,gBAAA,IAAI,GAAG,EAAE;oBACP,IAAI,aAAa,KAAK,OAAO,EAAE;;;;;AAK7B,wBAAA,IAAM,MAAM,GAAG,KAAK,CAAC,MAAqB,CAAC;AAC3C,wBAAA,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE;AAC3B,4BAAA,qBAAqB,KAArB,IAAA,IAAA,qBAAqB,KAArB,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,qBAAqB,CAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;AACvC,yBAAA;AACF,qBAAA;oBACD,UAAU,KAAA,IAAA,IAAV,UAAU,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAV,UAAU,CAAG,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;AAC/B,iBAAA;aACF;AACF,SAAA,IAAC;KACH,CAAC;AACJ,CAAC;AAED,SAAS,cAAc,CAAC,MAAmB,EAAA;AACzC,IAAA,IAAI,CAAC,GAAG,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE;AAC3E,QAAA,OAAO,IAAI,CAAC;AACb,KAAA;AACD,IAAA,IAAI,MAAM,CAAC,eAAe,KAAK,MAAM,EAAE;AACrC,QAAA,OAAO,IAAI,CAAC;AACb,KAAA;AAED,IAAA,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,UAAU,CAAC,KAA2C,EAAA;IAA/D,IA8EC,KAAA,GAAA,IAAA,CAAA;AA7ES,IAAA,IAAA,IAAI,GAAK,KAAK,CAAA,IAAV,CAAW;IAEvB,QACEpB,qCAACa,aAAQ,EAAA,EACP,GAAG,EAAC,MAAM,EACV,IAAI,EAAE;AACJ,YAAA,KAAK,EAAE;AACL,gBAAA;AACE,oBAAA,KAAK,EAAE,iBAAiB;AACxB,oBAAA,GAAG,EAAE,KAAK;AACV,oBAAA,OAAO,EAAE,YAAA,EAAA,OAAA,SAAA,CAAA,KAAA,EAAA,KAAA,CAAA,EAAA,KAAA,CAAA,EAAA,YAAA;;;;4BACD,MAAM,GAAGQ,2CAA0B,CAAC;AACxC,gCAAA,MAAM,EACJ,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,IAAI,KAAJ,IAAA,IAAA,IAAI,uBAAJ,IAAI,CAAE,MAAM,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,MAAM,CAAC,GAAG,CAAC,UAAC,CAAC,EAAA,EAAK,QAAC;oCAC/B,EAAE,EAAE,CAAC,CAAC,EAAE;oCACR,KAAK,EAAE,CAAC,CAAC,EAAE;AACZ,iCAAA,EAH+B,EAG9B,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAI,EAAE;AACZ,6BAAA,CAAC,CAAC;AACG,4BAAA,OAAO,GACX,MAAM,CAAC,eAAe,EAAE;gCACxB,MAAM,CAAC,gBAAgB,CAAC,IAAI,KAAA,IAAA,IAAJ,IAAI,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAJ,IAAI,CAAE,IAAW,CAAC,CAAC;4BAQvC,QAAQ,GAAG,UAAU,CAAC;AAGtB,4BAAA,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,OAAO,CAAC,EAAE;AAC/B,gCAAA,IAAI,EAAE,yBAAyB;AAChC,6BAAA,CAAC,CAAC;4BACH,IAAK,SAAiB,CAAC,UAAU,EAAE;;AAEhC,gCAAA,SAAiB,CAAC,UAAU,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;AAC/C,6BAAA;AAAM,iCAAA;AACC,gCAAA,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;AACzC,gCAAA,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,EAAE;AAEzB,oCAAA,GAAG,GAAG,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;AACtC,oCAAA,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAC/B,oCAAA,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;AACxC,oCAAA,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,QAAQ,CAAC;AACjC,oCAAA,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;oCAChC,IAAI,CAAC,KAAK,EAAE,CAAC;AACb,oCAAA,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;AACjC,iCAAA;AACF,6BAAA;;;AACF,qBAAA,CAAA,CAAA,EAAA;AACF,iBAAA;AACD,gBAAA;AACE,oBAAA,KAAK,EAAE,kBAAkB;AACzB,oBAAA,GAAG,EAAE,MAAM;AACX,oBAAA,OAAO,EAAE,YAAA;AACP,wBAAA,IAAM,OAAO,GAAGD,8BAAa,CAAC,IAAI,KAAA,IAAA,IAAJ,IAAI,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAJ,IAAI,CAAE,IAAI,CAAC,CAAC;wBAC1C,IAAM,OAAO,GAAG,uCAAwC,CAAA,MAAA,CAAA,kBAAkB,CACxE,OAAO,CACR,CAAE,CAAC;wBAEJ,IAAM,qBAAqB,GAAG,WAAW,CAAC;wBAE1C,IAAM,WAAW,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;AAChD,wBAAA,WAAW,CAAC,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAC1C,wBAAA,WAAW,CAAC,YAAY,CAAC,UAAU,EAAE,qBAAqB,CAAC,CAAC;wBAC5D,WAAW,CAAC,KAAK,EAAE,CAAC;qBACrB;AACF,iBAAA;AACF,aAAA;AACF,SAAA,EAAA;AAED,QAAApB,sBAAA,CAAA,aAAA,CAACiB,WAAM,EAAA,IAAA;AACL,YAAAjB,sBAAA,CAAA,aAAA,CAACsB,sBAAgB,EAAA,IAAA,CAAG,CACb,CACA,EACX;AACJ;;AC1oBa,IAAA,YAAY,GAAG;AAC1B,IAAA,MAAM,EAAE;AACN,QAAA,WAAW,EAAE;AACX,YAAA,mBAAmB,EAAE,UAAC,OAAiB,EAAE,IAAW,EAAA;AAClD,gBAAA,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC;aAChB;AACF,SAAA;AACD,QAAA,YAAY,EAAE;AACZ,YAAA,mBAAmB,EAAE,UAAC,OAAiB,EAAE,IAAW,EAAA;AAClD,gBAAA,OAAO,IAAI,CAAC;aACb;AACF,SAAA;AACD,QAAA,cAAc,EAAE;AACd,YAAA,mBAAmB,EAAE,UAAC,OAAiB,EAAE,IAAW,EAAA;AAClD,gBAAA,OAAO,OAAO,CAAC;aAChB;AACF,SAAA;AACF,KAAA;EACD;AAEF,IAAM,aAAa,GAAkC;AACnD,IAAA,IAAI,EAAE,qBAAqB;AAC3B,IAAA,WAAW,EAAE,OAAO;AACpB,IAAA,aAAa,EAAE;AACb,QAAA,KAAK,EAAE,SAAS;AAChB,QAAA,OAAO,EAAE,MAAM;AACf,QAAA,SAAS,EAAE,MAAM;AAClB,KAAA;AACD,IAAA,KAAK,EAAE;AACL,QAAA,IAAI,EAAE;AACJ,YAAA,IAAI,EAAE,kBAAyB;AAC/B,YAAA,WAAW,EAAE,kCAAkC;AAChD,SAAA;AAED,QAAA,MAAM,EAAE,mBAAmB,CAAoC,EAAE,CAAC;AAElE,QAAA,aAAa,EAAE;AACb,YAAA,IAAI,EAAE,QAAQ;AACd,YAAA,WAAW,EAAE,cAAc;AAC3B,YAAA,OAAO,EAAE;AACP,gBAAA,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE;AAC9B,gBAAA,EAAE,KAAK,EAAE,mBAAmB,EAAE,KAAK,EAAE,OAAO,EAAE;AAC9C,gBAAA,EAAE,KAAK,EAAE,qBAAqB,EAAE,KAAK,EAAE,QAAQ,EAAE;AACjD,gBAAA,EAAE,KAAK,EAAE,kBAAkB,EAAE,KAAK,EAAE,UAAU,EAAE;AACjD,aAAA;AACD,YAAA,gBAAgB,EAAE,MAAM;AACxB,YAAA,WAAW,EACT,2QAA2Q;AAC9Q,SAAA;AAED,QAAA,MAAM,EAAE;AACN,YAAA,IAAI,EAAE,QAAQ;AACd,YAAA,WAAW,EAAE,SAAS;AACtB,YAAA,QAAQ,EACN,kGAAkG;AACpG,YAAA,MAAM,EAAE,UAAC,EAAE,EAAK,EAAA,OAAA,CAAC,EAAE,CAAC,aAAa,IAAI,EAAE,CAAC,aAAa,KAAK,MAAM,GAAA;YAChE,gBAAgB,EAAE,UAAC,EAAE,EAAA;AACnB,gBAAA,IAAM,aAAa,GAAG,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC;AACvD,gBAAA,OAAO,aAAa,KAAK,SAAS,GAAG,EAAG,CAAA,MAAA,CAAA,aAAa,CAAE,GAAG,SAAS,CAAC;aACrE;AACF,SAAA;AAED,QAAA,cAAc,EAAE;AACd,YAAA,IAAI,EAAE,QAAQ;AACd,YAAA,WAAW,EAAE,kBAAkB;YAC/B,MAAM,EAAE,UAAC,EAAE,EAAK,EAAA,OAAA,EAAE,CAAC,aAAa,KAAK,QAAQ,CAAA,EAAA;AAC7C,YAAA,QAAQ,EAAE,IAAI;AACf,SAAA;AACD,QAAA,eAAe,EAAE;AACf,YAAA,IAAI,EAAE,OAAO;AACb,YAAA,WAAW,EAAE,mBAAmB;YAChC,MAAM,EAAE,UAAC,EAAE,EAAK,EAAA,OAAA,EAAE,CAAC,aAAa,KAAK,UAAU,CAAA,EAAA;AAC/C,YAAA,QAAQ,EAAE,IAAI;AACf,SAAA;AACD,QAAA,qBAAqB,EAAE;AACrB,YAAA,IAAI,EAAE,cAAc;AACpB,YAAA,WAAW,EAAE,0BAA0B;AACvC,YAAA,QAAQ,EAAE;AACR,gBAAA,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE;AACnC,gBAAA,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE;AACjC,aAAA;AACF,SAAA;AACD,QAAA,UAAU,EAAE;AACV,YAAA,IAAI,EAAE,cAAc;AACpB,YAAA,WAAW,EAAE,gBAAgB;AAC7B,YAAA,QAAQ,EAAE;AACR,gBAAA,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE;AAClC,gBAAA,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE;AAC/B,gBAAA,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE;AAClC,aAAA;AACF,SAAA;AAED,QAAA,UAAU,EAAE;AACV,YAAA,IAAI,EAAE,OAAO;AACb,YAAA,WAAW,EAAE,aAAa;AAC1B,YAAA,QAAQ,EAAE,IAAI;AACd,YAAA,QAAQ,EAAE;AACR,gBAAA,IAAI,EAAE,QAAQ;gBACd,QAAQ,EAAE,UAAC,IAAI,EAAA,EAAK,OAAA,IAAI,CAAC,KAAK,CAAA,EAAA;AAC9B,gBAAA,MAAM,EAAE;AACN,oBAAA,IAAI,EAAE;AACJ,wBAAA,IAAI,EAAE,QAAQ;AACd,wBAAA,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;AACzB,wBAAA,YAAY,EAAE,MAAM;AACrB,qBAAA;AACD,oBAAA,KAAK,EAAE;AACL,wBAAA,IAAI,EAAE,QAAQ;AACd,wBAAA,WAAW,EAAE,cAAc;AAC5B,qBAAA;AACD,oBAAA,QAAQ,EAAE;AACR,wBAAA,IAAI,EAAE,OAAO;AACb,wBAAA,WAAW,EAAE,YAAY;AACzB,wBAAA,QAAQ,EAAE;AACR,4BAAA,IAAI,EAAE,QAAQ;AACd,4BAAA,MAAM,EAAE;AACN,gCAAA,KAAK,EAAE;AACL,oCAAA,IAAI,EAAE,QAAQ;AACd,oCAAA,WAAW,EAAE,cAAc;AAC5B,iCAAA;AACD,gCAAA,OAAO,EAAE;AACP,oCAAA,IAAI,EAAE,cAAc;AACpB,oCAAA,QAAQ,EAAE;AACR,wCAAA,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE;AAClC,wCAAA,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE;AAChC,qCAAA;AACF,iCAAA;AACF,6BAAA;AACF,yBAAA;AACD,wBAAA,MAAM,EAAE,UAAC,EAAE,EAAE,GAAG,EAAE,EAAQ,EAAA;AAAN,4BAAA,IAAA,IAAI,GAAA,EAAA,CAAA,IAAA,CAAA;AAAO,4BAAA,OAAA,IAAI,CAAC,IAAI,KAAK,MAAM,CAAA;yBAAA;AACpD,qBAAA;AACD,oBAAA,OAAO,EAAE;AACP,wBAAA,IAAI,EAAE,cAAc;AACpB,wBAAA,WAAW,EAAE,QAAQ;AACrB,wBAAA,QAAQ,EAAE;AACR,4BAAA,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE;AAClC,4BAAA,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE;AAChC,yBAAA;AACD,wBAAA,MAAM,EAAE,UAAC,EAAE,EAAE,GAAG,EAAE,EAAQ,EAAA;AAAN,4BAAA,IAAA,IAAI,GAAA,EAAA,CAAA,IAAA,CAAA;AAAO,4BAAA,OAAA,IAAI,CAAC,IAAI,KAAK,MAAM,CAAA;yBAAA;AACpD,qBAAA;AACF,iBAAA;AACF,aAAA;AACF,SAAA;AAED,QAAA,WAAW,EAAE;AACX,YAAA,WAAW,EAAE,SAAS;AACtB,YAAA,IAAI,EAAE,QAAQ;AACd,YAAA,OAAO,EAAE;AACP,gBAAA;AACE,oBAAA,KAAK,EAAE,OAAO;AACd,oBAAA,KAAK,EAAE,QAAQ;AAChB,iBAAA;AACD,gBAAA;AACE,oBAAA,KAAK,EAAE,QAAQ;AACf,oBAAA,KAAK,EAAE,QAAQ;AAChB,iBAAA;AACD,gBAAA;AACE,oBAAA,KAAK,EAAE,OAAO;AACd,oBAAA,KAAK,EAAE,SAAS;AACjB,iBAAA;AACF,aAAA;AACD,YAAA,gBAAgB,EAAE,OAAO;AACzB,YAAA,QAAQ,EAAE,IAAI;AACf,SAAA;AAED,QAAA,QAAQ,EAAE;AACR,YAAA,IAAI,EAAE,QAAQ;AACd,YAAA,gBAAgB,EAAE,EAAE;AACpB,YAAA,QAAQ,EAAE,IAAI;AACf,SAAA;AAED,QAAA,UAAU,EAAE;AACV,YAAA,IAAI,EAAE,SAAS;AACf,YAAA,QAAQ,EAAE,IAAI;AACd,YAAA,gBAAgB,EAAE,IAAI;AACvB,SAAA;AAED,QAAA,UAAU,EAAE;AACV,YAAA,IAAI,EAAE,SAAS;AACf,YAAA,WAAW,EAAE,0BAA0B;AACvC,YAAA,QAAQ,EAAE,IAAI;AACf,SAAA;AAED,QAAA,WAAW,EAAE;AACX,YAAA,IAAI,EAAE,SAAS;AACf,YAAA,WAAW,EAAE,kDAAkD;AAC/D,YAAA,QAAQ,EAAE,IAAI;AACf,SAAA;AAED,QAAA,WAAW,EAAE;AACX,YAAA,IAAI,EAAE,SAAS;AACf,YAAA,WAAW,EAAE,yDAAyD;AACtE,YAAA,QAAQ,EAAE,IAAI;AACd,YAAA,gBAAgB,EAAE,IAAI;AACvB,SAAA;AAED,QAAA,gBAAgB,EAAE;AAChB,YAAA,IAAI,EAAE,SAAS;AACf,YAAA,WAAW,EAAE,sDAAsD;AACnE,YAAA,QAAQ,EAAE,IAAI;AACf,SAAA;AAED,QAAA,gBAAgB,EAAE;AAChB,YAAA,IAAI,EAAE,SAAS;AACf,YAAA,WAAW,EAAE,2DAA2D;AACxE,YAAA,QAAQ,EAAE,IAAI;AACd,YAAA,MAAM,EAAE,UAAC,EAAE,EAAK,EAAA,OAAA,CAAC,EAAE,CAAC,aAAa,IAAI,EAAE,CAAC,aAAa,KAAK,MAAM,GAAA;AAChE,YAAA,gBAAgB,EAAE,IAAI;AACvB,SAAA;AACD,QAAA,cAAc,EAAE;AACd,YAAA,IAAI,EAAE,iBAAiB;AACvB,YAAA,SAAS,EAAE,UAAU;AACf,SAAA;AACR,QAAA,mBAAmB,EAAE;AACnB,YAAA,IAAI,EAAE,iBAAiB;AACvB,YAAA,aAAa,EAAE,IAAI;AACpB,SAAA;AACF,KAAA;AACD,IAAA,MAAM,EAAE;QACN,cAAc,EAAA,QAAA,CAAA,EACZ,IAAI,EAAE,UAAU,EAChB,SAAS,EAAE,gBAAgB,EAC3B,YAAY,EAAE,uBAAuB,EACrC,YAAY,EAAE,MAAM,EAAA,EACjB,YAAY,CAAC,MAAM,CAAC,cAAc,CACtC;AACD,QAAA,WAAW,aACT,IAAI,EAAE,UAAU,EAChB,YAAY,EAAE,uBAAuB,EACrC,YAAY,EAAE,QAAQ,EACnB,EAAA,YAAY,CAAC,MAAM,CAAC,WAAW,CACnC;AACD,QAAA,YAAY,aACV,IAAI,EAAE,UAAU,EAChB,YAAY,EAAE,uBAAuB,EACrC,YAAY,EAAE,OAAO,EAClB,EAAA,YAAY,CAAC,MAAM,CAAC,YAAY,CACpC;AACF,KAAA;AACD,IAAA,gBAAgB,EAAE;AAChB,QAAA,OAAO,EAAE,YAAY;AACrB,QAAA,UAAU,EAAE,cAAc;AAC1B,QAAA,UAAU,EAAE,sCAAsC;AACnD,KAAA;AACD,IAAA,UAAU,EAAE,WAAW;AACvB,IAAA,UAAU,EAAE,sCAAsC;CACnD,CAAC;AAEI,SAAU,iBAAiB,CAAC,MAAqB,EAAA;AACrD,IAAA,uBAAuB,CAAC,MAAM,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC;AAC5D;;AC7PM,SAAU,WAAW,CAAC,MAAqB,EAAA;IAC/C,kBAAkB,CAAC,MAAM,CAAC,CAAC;IAC3B,iBAAiB,CAAC,MAAM,CAAC,CAAC;IAC1B,mBAAmB,CAAC,MAAM,CAAC,CAAC;AAC9B;;;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":["../../../node_modules/tslib/tslib.es6.js","../src/utils.ts","../src/field-mappings.tsx","../src/queries.ts","../src/formatting.tsx","../src/rich-details/RichDetails.tsx","../src/rich-details/index.tsx","../src/common.ts","../src/rich-layout/RichLayout.tsx","../src/rich-layout/index.tsx","../src/rich-table/RichTable.tsx","../src/rich-table/index.tsx","../src/index.tsx"],"sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n","import {\n ComponentMeta,\n default as registerComponent,\n} from \"@plasmicapp/host/registerComponent\";\nimport {\n default as registerGlobalContext,\n GlobalContextMeta,\n} from \"@plasmicapp/host/registerGlobalContext\";\nimport { default as registerToken } from \"@plasmicapp/host/registerToken\";\nimport React from \"react\";\n\nexport type Registerable = {\n registerComponent: typeof registerComponent;\n registerGlobalContext: typeof registerGlobalContext;\n registerToken: typeof registerToken;\n};\n\nexport function makeRegisterComponent<T extends React.ComponentType<any>>(\n component: T,\n meta: ComponentMeta<React.ComponentProps<T>>\n) {\n return function (loader?: Registerable) {\n registerComponentHelper(loader, component, meta);\n };\n}\n\nexport function makeRegisterGlobalContext<T extends React.ComponentType<any>>(\n component: T,\n meta: GlobalContextMeta<React.ComponentProps<T>>\n) {\n return function (loader?: Registerable) {\n if (loader) {\n loader.registerGlobalContext(component, meta);\n } else {\n registerGlobalContext(component, meta);\n }\n };\n}\n\nexport function registerComponentHelper<T extends React.ComponentType<any>>(\n loader: Registerable | undefined,\n component: T,\n meta: ComponentMeta<React.ComponentProps<T>>\n) {\n if (loader) {\n loader.registerComponent(component, meta);\n } else {\n registerComponent(component, meta);\n }\n}\n\ntype ReactElt = {\n children: ReactElt | ReactElt[];\n props: {\n children: ReactElt | ReactElt[];\n [prop: string]: any;\n } | null;\n type: React.ComponentType<any> | null;\n key: string | null;\n} | null;\n\nexport function traverseReactEltTree(\n children: React.ReactNode,\n callback: (elt: ReactElt) => void\n) {\n const rec = (elts: ReactElt | ReactElt[] | null) => {\n (Array.isArray(elts) ? elts : [elts]).forEach((elt) => {\n if (elt) {\n callback(elt);\n if (elt.children) {\n rec(elt.children);\n }\n if (elt.props?.children && elt.props.children !== elt.children) {\n rec(elt.props.children);\n }\n }\n });\n };\n rec(children as any);\n}\n\nexport function asArray<T>(x: T[] | T | undefined | null) {\n if (Array.isArray(x)) {\n return x;\n } else if (x == null) {\n return [];\n } else {\n return [x];\n }\n}\n\nexport function ensureNumber(x: number | string): number {\n return x as number;\n}\n\nexport function isOneOf<T, U extends T>(elem: T, arr: readonly U[]): elem is U {\n return arr.includes(elem as any);\n}\n","import { TableFieldSchema, TableSchema } from \"@plasmicapp/data-sources\";\nimport { ControlExtras, PropType } from \"@plasmicapp/host/registerComponent\";\nimport { QueryResult } from \"./queries\";\nimport { ensureNumber, isOneOf } from \"./utils\";\n\nexport const tuple = <T extends any[]>(...args: T): T => args;\n\nexport interface HasId {\n id: string;\n}\n\nexport function mkIdMap<T extends HasId>(xs: ReadonlyArray<T>): Map<string, T> {\n return new Map(xs.map((x) => tuple(x.id, x) as [string, T]));\n}\n\nexport const mkShortId = () => `${Math.random()}`;\n\nfunction withoutNils<T>(xs: Array<T | undefined | null>): T[] {\n return xs.filter((x): x is T => x != null);\n}\n\nexport interface AutoSettings {\n dataType: \"auto\";\n}\n\ninterface _SharedNumberSettings {\n notation?: \"standard\" | \"scientific\" | \"engineering\" | \"compact\";\n signDisplay?: \"auto\" | \"always\" | \"exceptZero\";\n maximumFractionDigits?: number;\n minimumFractionDigits?: number;\n locale?: string;\n}\nexport interface DecimalSettings extends _SharedNumberSettings {\n dataType: \"number\";\n}\nexport interface PercentSettings extends _SharedNumberSettings {\n dataType: \"percent\";\n}\nexport interface CurrencySettings extends _SharedNumberSettings {\n dataType: \"currency\";\n currency?: string;\n currencyDisplay?: \"symbol\" | \"narrowSymbol\" | \"code\" | \"name\";\n}\nexport const DEFAULT_CURRENCY_SETTINGS: CurrencySettings = {\n dataType: \"currency\",\n currency: \"USD\",\n currencyDisplay: \"narrowSymbol\",\n};\n\nexport type NumberSettings =\n | DecimalSettings\n | PercentSettings\n | CurrencySettings;\nexport const NUMBER_TYPES = [\"number\", \"percent\", \"currency\"] as const;\n\nexport interface DateTimeSettings {\n dataType: \"datetime\";\n locale?: string;\n dateStyle?: \"none\" | \"full\" | \"long\" | \"medium\" | \"short\";\n timeStyle?: \"none\" | \"full\" | \"long\" | \"medium\" | \"short\";\n hour12?: boolean;\n timeZone?: string;\n}\nexport const DEFAULT_DATETIME_SETTINGS: DateTimeSettings = {\n dataType: \"datetime\",\n locale: \"en-US\",\n dateStyle: \"short\",\n timeStyle: \"short\",\n hour12: true,\n};\n\nexport interface RelativeDateTimeSettings {\n dataType: \"relative-datetime\";\n locale?: string;\n numeric?: \"always\" | \"auto\";\n style?: \"long\" | \"short\" | \"narrow\";\n unit?: \"year\" | \"month\" | \"week\" | \"day\" | \"hour\" | \"minute\" | \"second\";\n}\nexport const DEFAULT_RELATIVE_DATETIME_SETTINGS: RelativeDateTimeSettings = {\n dataType: \"relative-datetime\",\n locale: \"en-US\",\n numeric: \"always\",\n style: \"long\",\n unit: \"day\",\n};\nexport const DATETIME_TYPES = [\"datetime\", \"relative-datetime\"] as const;\n\nexport interface BooleanSettings {\n dataType: \"boolean\";\n showAs?: \"text\" | \"checkbox\" | \"switch\";\n}\nexport const DEFAULT_BOOLEAN_SETTINGS: BooleanSettings = {\n dataType: \"boolean\",\n showAs: \"checkbox\",\n};\n\nexport interface StringSettings {\n dataType: \"string\";\n}\n\nexport type RowFunc<Result> = (row: Record<string, unknown>) => Result;\nexport type CellFunc<Result> = (\n row: Record<string, unknown>,\n value: unknown\n) => Result;\n\n/**\n * Exprs are for things that can must re-evaluate from row to row.\n *\n * Literal values are for things that are column-level. (But in Plasmic Studio, as with all props, you can still use a dynamic value.)\n */\n\ninterface _BaseColumnConfig {\n key: string;\n fieldId?: string;\n title?: string;\n isHidden: boolean;\n expr?: CellFunc<any>;\n}\n\nexport type BaseColumnConfig = _BaseColumnConfig &\n (\n | AutoSettings\n | NumberSettings\n | StringSettings\n | BooleanSettings\n | DateTimeSettings\n | RelativeDateTimeSettings\n );\n\nexport function deriveFieldConfigs<ColumnConfig extends BaseColumnConfig>(\n specifiedFieldsPartial: Partial<ColumnConfig>[],\n schema: TableSchema | undefined,\n makeDefaultConfig: (field: TableFieldSchema | undefined) => ColumnConfig\n): {\n mergedFields: ColumnConfig[];\n minimalFullLengthFields: Partial<ColumnConfig>[];\n} {\n const schemaFields = schema?.fields ?? [];\n const fieldById = mkIdMap(schemaFields);\n const specifiedFieldIds = new Set(\n withoutNils(specifiedFieldsPartial.map((f) => f.fieldId))\n );\n const keptSpecifiedFields = specifiedFieldsPartial.flatMap(\n (f, index): ColumnConfig[] => {\n const fieldId = f.fieldId;\n if (!fieldId) {\n return [\n { ...makeDefaultConfig(undefined), key: index, ...f },\n ] as ColumnConfig[];\n }\n const field = fieldById.get(fieldId);\n\n // Drop configs with fieldIds no longer in the data.\n if (!field) {\n return [];\n }\n\n return [\n {\n ...makeDefaultConfig(field),\n ...f,\n },\n ] as ColumnConfig[];\n }\n );\n const newVirtualFields = schemaFields\n .filter((f) => !specifiedFieldIds.has(f.id))\n .map(\n (f): ColumnConfig => ({\n ...makeDefaultConfig(f),\n })\n );\n const mergedFields = [...keptSpecifiedFields, ...newVirtualFields];\n const minimalFullLengthFields: Partial<ColumnConfig>[] = [\n ...specifiedFieldsPartial,\n ...newVirtualFields.map((f) => ({ key: f.key, fieldId: f.fieldId })),\n ] as Partial<ColumnConfig>[];\n return { mergedFields, minimalFullLengthFields };\n}\n\nexport function deriveValueType(cconfig: BaseColumnConfig) {\n return cconfig.dataType === \"auto\"\n ? undefined\n : cconfig.dataType === \"string\"\n ? \"text\"\n : cconfig.dataType === \"number\"\n ? \"digit\"\n : cconfig.dataType === \"boolean\"\n ? \"switch\"\n : undefined;\n}\n\nexport interface ControlContextData<ColumnConfig extends BaseColumnConfig> {\n data: unknown[];\n schema?: TableSchema;\n mergedFields: ColumnConfig[];\n minimalFullLengthFields: Partial<ColumnConfig>[];\n}\n\nexport interface FieldfulProps<ColumnConfig extends BaseColumnConfig> {\n className?: string;\n data?: QueryResult;\n fields?: Partial<ColumnConfig>[];\n setControlContextData?: (ctx: ControlContextData<ColumnConfig>) => void;\n}\n\nexport function buildFieldsPropType<\n ColumnConfig extends BaseColumnConfig,\n Props extends FieldfulProps<ColumnConfig>\n>(opts: { fieldTypes?: Record<string, PropType<any>> }): PropType<Props> {\n function getDefaultValueHint(field: keyof ColumnConfig) {\n return (\n _props: any,\n contextData: ControlContextData<ColumnConfig> | null,\n { item }: any\n ): any => {\n if (item.fieldId) {\n const fieldSetting = contextData?.mergedFields.find(\n (f) => f.fieldId === item.fieldId\n );\n return fieldSetting?.[field];\n }\n return undefined;\n };\n }\n\n const rowDataType = (displayName: string, control?: any) =>\n ({\n type: \"function\" as any,\n displayName,\n control,\n argNames: [\"currentItem\", \"currentValue\"],\n argValues: (_props: any, ctx: any, { item }: any) => {\n const row = ctx?.data?.[0];\n const cell = item.fieldId ? row?.[item.fieldId] : undefined;\n return [row, cell];\n },\n } as any);\n\n return {\n type: \"array\",\n hidden: (ps) => !ps.data,\n unstable__keyFunc: (x) => x.key,\n unstable__minimalValue: (_props, contextData) =>\n contextData?.minimalFullLengthFields,\n unstable__canDelete: (ps, _props, ctx, { item }) => {\n if (!ctx?.schema) {\n // still loading...\n return false;\n }\n if (\n item.fieldId &&\n ctx.schema.fields.some((f) => f.id === item.fieldId)\n ) {\n return false;\n }\n return true;\n },\n itemType: {\n type: \"object\",\n nameFunc: (_item: any) => {\n return _item.title ?? _item.fieldId;\n },\n fields: {\n key: {\n type: \"string\",\n hidden: () => true,\n },\n fieldId: {\n type: \"choice\",\n displayName: \"Field name\",\n readOnly: true,\n options: (_props, ctx) =>\n (ctx?.schema?.fields ?? []).map((f) => f.id),\n hidden: (_props, ctx, { path: _controlPath }) =>\n !(_controlPath.slice(-1)[0] in (ctx?.schema?.fields ?? {})),\n },\n title: {\n type: \"string\",\n displayName: \"Title\",\n defaultValueHint: getDefaultValueHint(\"title\"),\n },\n expr: rowDataType(\"Customize cell data\"),\n isHidden: {\n type: \"boolean\",\n displayName: \"Is hidden\",\n defaultValueHint: getDefaultValueHint(\"isHidden\"),\n },\n dataType: {\n type: \"choice\",\n displayName: \"Data type\",\n options: [\n {\n value: \"auto\",\n label: \"Auto\",\n },\n {\n value: \"number\",\n label: \"Number\",\n },\n {\n value: \"percent\",\n label: \"Percentage\",\n },\n {\n value: \"currency\",\n label: \"Currency\",\n },\n {\n value: \"string\",\n label: \"String\",\n },\n {\n value: \"boolean\",\n label: \"Boolean\",\n },\n {\n value: \"datetime\",\n label: \"Date / Time\",\n },\n {\n value: \"relative-datetime\",\n label: \"Date / Time relative to now\",\n },\n ],\n defaultValueHint: getDefaultValueHint(\"dataType\"),\n },\n currency: {\n displayName: \"Currency\",\n description: \"Must be a valid currency code\",\n type: \"string\",\n defaultValueHint: \"USD\",\n hidden: (ps, ctx, { item }) => item.dataType !== \"currency\",\n },\n locale: {\n displayName: \"Locale\",\n description: \"Must be a valid locale code\",\n type: \"string\",\n defaultValueHint: \"en-US\",\n hidden: (ps, ctx, { item }) =>\n !isOneOf(item.dataType, NUMBER_TYPES) &&\n !isOneOf(item.dataType, DATETIME_TYPES),\n },\n notation: {\n displayName: \"Notation\",\n type: \"choice\",\n options: [\n {\n value: \"standard\",\n label: \"Standard\",\n },\n {\n value: \"scientific\",\n label: \"Scientific notation (like 1E3)\",\n },\n {\n value: \"compact\",\n label: \"Compact (like 10K)\",\n },\n ],\n defaultValueHint: \"standard\",\n hidden: (ps, ctx, { item }) => !isOneOf(item.dataType, NUMBER_TYPES),\n },\n signDisplay: {\n type: \"choice\",\n displayName: \"Number sign\",\n options: [\n {\n value: \"auto\",\n label: \"Only for negative numbers (10, -10)\",\n },\n {\n value: \"exceptZero\",\n label: \"Positive or negative (+10, -10)\",\n },\n ],\n defaultValueHint: \"auto\",\n hidden: (ps, ctx, { item }) => !isOneOf(item.dataType, NUMBER_TYPES),\n },\n maximumFractionDigits: {\n type: \"number\",\n displayName: \"Max decimal places\",\n defaultValueHint: 3,\n min: 0,\n max: 20,\n hidden: (ps, ctx, { item }) => !isOneOf(item.dataType, NUMBER_TYPES),\n },\n minimumFractionDigits: {\n type: \"number\",\n displayName: \"Min decimal places\",\n defaultValueHint: 0,\n min: 0,\n max: 20,\n hidden: (ps, ctx, { item }) => !isOneOf(item.dataType, NUMBER_TYPES),\n },\n showAs: {\n type: \"choice\",\n options: [\n {\n value: \"checkbox\",\n label: \"Checkboxes\",\n },\n {\n value: \"switch\",\n label: \"Toggle switches\",\n },\n {\n value: \"text\",\n label: \"Text\",\n },\n ],\n displayName: \"Show as\",\n defaultValueHint: \"checkbox\",\n hidden: (ps, ctx, { item }) => item.dataType !== \"boolean\",\n },\n dateStyle: {\n displayName: \"Date style\",\n type: \"choice\",\n options: [\n {\n value: \"none\",\n label: \"None (don't display date)\",\n },\n {\n value: \"short\",\n label: \"Short (like 12/25/2023)\",\n },\n {\n value: \"medium\",\n label: \"Medium (like Dec 25, 2023)\",\n },\n {\n value: \"long\",\n label: \"Long (like December 25, 2023)\",\n },\n {\n value: \"full\",\n label: \"Full (like Monday, December 25, 2023)\",\n },\n ],\n defaultValueHint: DEFAULT_DATETIME_SETTINGS.dateStyle,\n hidden: (ps, ctx, { item }) => item.dataType !== \"datetime\",\n },\n timeStyle: {\n displayName: \"Time style\",\n type: \"choice\",\n options: [\n {\n value: \"none\",\n label: \"None (don't display time)\",\n },\n {\n value: \"short\",\n label: \"Short (like 4:00 PM)\",\n },\n {\n value: \"medium\",\n label: \"Medium (like 4:00:00 PM)\",\n },\n {\n value: \"long\",\n label: \"Long (like 4:00:00 PM PST)\",\n },\n {\n value: \"full\",\n label: \"Full (like 4:00:00 PM Pacific Standard Time)\",\n },\n ],\n defaultValueHint: DEFAULT_DATETIME_SETTINGS.timeStyle,\n hidden: (ps, ctx, { item }) => item.dataType !== \"datetime\",\n },\n hour12: {\n displayName: \"Use AM/PM?\",\n description: \"Whether to use AM/PM or 24-hour clock\",\n type: \"boolean\",\n defaultValueHint: DEFAULT_DATETIME_SETTINGS.hour12,\n hidden: (ps, ctx, { item }) => item.dataType !== \"datetime\",\n },\n numeric: {\n type: \"choice\",\n displayName: \"Use numbers?\",\n options: [\n { value: \"always\", label: \"Always use numbers\" },\n {\n value: \"auto\",\n label: \"Use words like 'Yesterday' or 'Tomorrow'\",\n },\n ],\n defaultValueHint: DEFAULT_RELATIVE_DATETIME_SETTINGS.numeric,\n hidden: (ps, ctx, { item }) => item.dataType !== \"relative-datetime\",\n },\n unit: {\n type: \"choice\",\n displayName: \"Time unit\",\n options: [\n {\n value: \"second\",\n label: \"Seconds\",\n },\n {\n value: \"minute\",\n label: \"Minutes\",\n },\n {\n value: \"hour\",\n label: \"Hours\",\n },\n {\n value: \"day\",\n label: \"Days\",\n },\n {\n value: \"week\",\n label: \"Weeks\",\n },\n {\n value: \"month\",\n label: \"Months\",\n },\n {\n value: \"year\",\n label: \"Years\",\n },\n ],\n defaultValueHint: DEFAULT_RELATIVE_DATETIME_SETTINGS.unit,\n hidden: (ps, ctx, { item }) => item.dataType !== \"relative-datetime\",\n },\n ...opts.fieldTypes,\n },\n },\n };\n}\n","import {\n ManyRowsResult,\n TableFieldType,\n TableSchema,\n} from \"@plasmicapp/data-sources\";\n\nexport type QueryResult = Partial<ManyRowsResult<any>> & {\n error?: any;\n isLoading?: boolean;\n};\n\nexport interface NormalizedData {\n data: Record<string, unknown>[];\n schema?: TableSchema;\n}\n\nexport function normalizeData(rawData: unknown): NormalizedData | undefined {\n if (!rawData) {\n return undefined;\n }\n\n const dataArray = tryGetDataArray(rawData);\n if (!dataArray) {\n return undefined;\n }\n const schema = (rawData as any).schema ?? tryGetSchema(dataArray);\n if (!schema) {\n return undefined;\n }\n return { data: dataArray, schema };\n}\n\nfunction tryGetDataArray(rawData: unknown): any[] | undefined {\n if (!rawData || typeof rawData !== \"object\") {\n return undefined;\n }\n\n if (Array.isArray(rawData)) {\n if (isArrayOfObjects(rawData)) {\n return rawData;\n } else {\n // TODO: array of primitives? Maybe we can wrap this?\n return undefined;\n }\n }\n\n if (\"data\" in rawData && Array.isArray(rawData.data)) {\n if (isArrayOfObjects(rawData.data)) {\n return rawData.data;\n } else {\n return undefined;\n }\n }\n\n if (\"isLoading\" in rawData || \"error\" in rawData) {\n return undefined;\n }\n\n // Maybe a singleton record?\n return [rawData];\n}\n\nfunction isArrayOfObjects(arr: unknown[]) {\n return arr.every((x) => typeof x === \"object\" && !Array.isArray(x));\n}\n\nfunction tryGetSchema(data: any[]): TableSchema | undefined {\n const fieldMap: Record<string, TableFieldType> = {};\n data.forEach((entry: any) => {\n if (entry && typeof entry === \"object\") {\n Array.from(Object.entries(entry)).forEach(([k, v]) => {\n const inferredType: TableFieldType =\n typeof v === \"string\"\n ? \"string\"\n : typeof v === \"boolean\"\n ? \"boolean\"\n : typeof v === \"number\"\n ? \"number\"\n : \"unknown\";\n if (fieldMap[k] && fieldMap[k] !== inferredType) {\n fieldMap[k] = \"unknown\";\n } else {\n fieldMap[k] = inferredType;\n }\n });\n }\n });\n return {\n id: \"inferred\",\n fields: Object.entries(fieldMap).map(([f, t]) => ({\n id: f,\n type: t,\n readOnly: false,\n })),\n };\n}\n","import React from \"react\";\nimport { Checkbox, Switch } from \"antd\";\nimport {\n BaseColumnConfig,\n BooleanSettings,\n DEFAULT_BOOLEAN_SETTINGS,\n DEFAULT_DATETIME_SETTINGS,\n DEFAULT_CURRENCY_SETTINGS,\n DateTimeSettings,\n NUMBER_TYPES,\n NumberSettings,\n RelativeDateTimeSettings,\n DEFAULT_RELATIVE_DATETIME_SETTINGS,\n DATETIME_TYPES,\n} from \"./field-mappings\";\nimport { isOneOf } from \"./utils\";\n\nexport function renderValue(\n value: any,\n record: any,\n cconfig: BaseColumnConfig\n) {\n if (cconfig.expr) {\n value = cconfig.expr(record, value);\n }\n\n if (value == null) {\n return \"\";\n }\n\n if (cconfig.dataType === \"auto\") {\n return renderAuto(value);\n } else {\n const coerced = coerceValue(value, cconfig.dataType);\n if (\n isOneOf(cconfig.dataType, NUMBER_TYPES) &&\n typeof coerced === \"number\"\n ) {\n return renderNumber(coerced, cconfig as NumberSettings);\n } else if (cconfig.dataType === \"boolean\" && typeof coerced === \"boolean\") {\n return renderBoolean(coerced, cconfig);\n } else if (cconfig.dataType === \"datetime\" && coerced instanceof Date) {\n return renderDate(coerced, cconfig);\n } else if (\n cconfig.dataType === \"relative-datetime\" &&\n coerced instanceof Date\n ) {\n return renderRelativeDate(coerced, cconfig);\n }\n return asString(value);\n }\n}\n\nfunction renderAuto(value: unknown): React.ReactNode {\n if (typeof value === \"number\") {\n return renderNumber(value, { dataType: \"number\" });\n } else if (typeof value === \"boolean\") {\n return renderBoolean(value, DEFAULT_BOOLEAN_SETTINGS);\n } else if (value instanceof Date) {\n return renderDate(value, DEFAULT_DATETIME_SETTINGS);\n } else {\n const coerced = tryCoerceAuto(value);\n if (coerced === CANNOT_COERCE) {\n return asString(value);\n } else {\n return renderAuto(coerced);\n }\n }\n}\n\nfunction tryCoerceAuto(value: unknown) {\n for (const dataType of [\n \"number\",\n \"datetime\",\n ] as BaseColumnConfig[\"dataType\"][]) {\n const coerced = coerceValue(value, dataType);\n if (coerced !== CANNOT_COERCE) {\n return coerced;\n }\n }\n return CANNOT_COERCE;\n}\n\nfunction renderNumber(value: number, cconfig: NumberSettings) {\n if (cconfig.dataType === \"number\") {\n return new Intl.NumberFormat(cconfig.locale, cconfig).format(value);\n } else if (cconfig.dataType === \"percent\") {\n return new Intl.NumberFormat(cconfig.locale, {\n ...cconfig,\n style: \"percent\",\n }).format(value);\n } else if (cconfig.dataType === \"currency\") {\n return new Intl.NumberFormat(cconfig.locale, {\n ...DEFAULT_CURRENCY_SETTINGS,\n ...cconfig,\n style: \"currency\",\n }).format(value);\n } else {\n throw new Error(`Unexpected dataType ${(cconfig as any).dataType}`);\n }\n}\n\nfunction renderDate(value: Date, cconfig: DateTimeSettings) {\n const opts = {\n ...DEFAULT_DATETIME_SETTINGS,\n ...cconfig,\n };\n if (opts.dateStyle === \"none\") {\n delete opts[\"dateStyle\"];\n }\n if (opts.timeStyle === \"none\") {\n delete opts[\"timeStyle\"];\n }\n return new Intl.DateTimeFormat(cconfig.locale, opts as any).format(value);\n}\n\nconst SECOND_MS = 1000;\nconst MINUTE_MS = 60 * SECOND_MS;\nconst HOUR_MS = 60 * MINUTE_MS;\nconst DAY_MS = 24 * HOUR_MS;\nconst WEEK_MS = 7 * DAY_MS;\nconst UNIT_TO_MS = {\n second: SECOND_MS,\n minute: MINUTE_MS,\n hour: HOUR_MS,\n day: DAY_MS,\n week: WEEK_MS,\n} as const;\nconst UNITS_BY_MS = Object.keys(UNIT_TO_MS) as (keyof typeof UNIT_TO_MS)[];\n\nfunction renderRelativeDate(value: Date, cconfig: RelativeDateTimeSettings) {\n const opts = {\n ...DEFAULT_RELATIVE_DATETIME_SETTINGS,\n ...cconfig,\n };\n const unit = cconfig.unit ?? \"day\";\n const formatter = new Intl.RelativeTimeFormat(cconfig.locale, opts);\n if (isOneOf(unit, UNITS_BY_MS)) {\n // for \"exact\" units, we can do it by just calcluating the difference\n // by ms\n const diff = value.getTime() - new Date().getTime();\n return formatter.format(Math.round(diff / UNIT_TO_MS[unit]), unit);\n } else {\n // otherwise we need to calculate by the specific unit\n if (unit === \"year\") {\n const diff = value.getFullYear() - new Date().getFullYear();\n return formatter.format(diff, unit);\n } else if (unit === \"month\") {\n const months = (d: Date) => d.getFullYear() * 12 + d.getMonth() + 1;\n const diff = months(value) - months(new Date());\n return formatter.format(diff, unit);\n } else {\n throw new Error(`Unexpected relative time unit ${unit}`);\n }\n }\n}\n\nfunction renderBoolean(value: boolean, cconfig: BooleanSettings) {\n const showAs = cconfig.showAs ?? DEFAULT_BOOLEAN_SETTINGS.showAs;\n if (showAs === \"checkbox\") {\n return <Checkbox checked={value} />;\n } else if (showAs === \"switch\") {\n return <Switch checked={value} />;\n } else {\n return value ? \"true\" : \"false\";\n }\n}\n\nconst CANNOT_COERCE = Symbol(\"plasmic-cannot-coerce\");\nfunction coerceValue(value: unknown, dataType: BaseColumnConfig[\"dataType\"]) {\n if (value == null) {\n return null;\n }\n try {\n if (isOneOf(dataType, NUMBER_TYPES)) {\n if (typeof value === \"number\") {\n return value;\n } else if (typeof value === \"string\") {\n const maybeNumber = +value;\n if (!isNaN(maybeNumber)) {\n return maybeNumber;\n }\n }\n } else if (isOneOf(dataType, DATETIME_TYPES)) {\n if (value instanceof Date) {\n return value;\n } else if (typeof value === \"number\") {\n return new Date(value);\n } else if (typeof value === \"string\") {\n const maybeDate = new Date(value);\n if (!isNaN(maybeDate.getTime())) {\n return maybeDate;\n }\n }\n } else if (dataType === \"boolean\") {\n if (value === true || value === false) {\n return value;\n } else if (typeof value === \"number\") {\n return value !== 0;\n } else if (typeof value === \"string\") {\n return value.toLowerCase() === \"true\";\n }\n } else if (dataType === \"string\") {\n return asString(value);\n } else if (dataType === \"auto\") {\n return value;\n }\n } catch (err) {\n // Ignore error; just fail to coerce\n }\n\n return CANNOT_COERCE;\n}\n\nfunction asString(value: unknown) {\n if (value == null) {\n return \"\";\n } else if (typeof value === \"string\") {\n return value;\n } else if (typeof value === \"object\") {\n if (\"toString\" in value && typeof value.toString === \"function\") {\n return value.toString();\n } else {\n return JSON.stringify(value);\n }\n } else {\n return `${value}`;\n }\n}\n","import {\n ProDescriptions,\n ProDescriptionsItemProps,\n} from \"@ant-design/pro-components\";\nimport React from \"react\";\nimport {\n BaseColumnConfig,\n FieldfulProps,\n deriveFieldConfigs,\n deriveValueType,\n mkShortId,\n} from \"../field-mappings\";\nimport { NormalizedData, normalizeData } from \"../queries\";\nimport { Empty } from \"antd\";\nimport { renderValue } from \"../formatting\";\n\nexport interface RichDetailsProps extends FieldfulProps<DetailsColumnConfig> {\n size?: \"small\" | \"middle\" | \"default\";\n bordered?: boolean;\n layout?: \"horizontal\" | \"vertical\";\n column?: number;\n}\n\nexport function RichDetails(props: RichDetailsProps) {\n const {\n className,\n data: rawData,\n size,\n bordered,\n layout,\n column = 2,\n } = props;\n const data = normalizeData(rawData);\n const { columnDefinitions } = useColumnDefinitions(data, props);\n if (!data) {\n return <Empty className={className} />;\n }\n return (\n <ProDescriptions\n className={className}\n dataSource={data?.data?.[0]}\n columns={columnDefinitions}\n size={size}\n bordered={bordered}\n layout={layout}\n column={{\n xs: 1,\n sm: 1,\n md: column,\n }}\n />\n );\n}\n\nexport type DetailsColumnConfig = BaseColumnConfig & {\n span?: number;\n};\n\nfunction useColumnDefinitions(\n data: NormalizedData | undefined,\n props: React.ComponentProps<typeof RichDetails>\n) {\n const { fields, setControlContextData } = props;\n return React.useMemo(() => {\n const schema = data?.schema;\n if (!data || !schema) {\n return { normalized: [], columnDefinitions: [] };\n }\n const { mergedFields, minimalFullLengthFields } =\n deriveFieldConfigs<DetailsColumnConfig>(\n fields ?? [],\n schema,\n (field) => ({\n key: mkShortId(),\n isHidden: false,\n dataType: \"auto\" as const,\n ...(field && {\n key: field.id,\n fieldId: field.id,\n title: field.label || field.id,\n expr: (currentItem) => currentItem[field.id],\n }),\n })\n );\n setControlContextData?.({ ...data, mergedFields, minimalFullLengthFields });\n const normalized = mergedFields;\n const columnDefinitions = normalized\n .filter((cconfig) => !cconfig.isHidden)\n .map((cconfig, _columnIndex, _columnsArray) => {\n const columnDefinition: ProDescriptionsItemProps<any> = {\n dataIndex: cconfig.fieldId,\n title: cconfig.title,\n key: cconfig.key,\n valueType: deriveValueType(cconfig),\n span: cconfig.span,\n\n // To come later\n copyable: false,\n ellipsis: false,\n tip: undefined,\n formItemProps: {\n rules: [],\n },\n valueEnum: undefined,\n renderFormItem: (_, { defaultRender }) => {\n return defaultRender(_);\n },\n\n render: (value: any, record: any, rowIndex: any) => {\n const cellValue = cconfig.fieldId\n ? record[cconfig.fieldId]\n : undefined;\n return renderValue(cellValue, record, cconfig);\n },\n };\n\n return columnDefinition;\n });\n return { normalized, columnDefinitions };\n }, [fields, data, setControlContextData]);\n}\n","import { buildFieldsPropType } from \"../field-mappings\";\nimport { Registerable, registerComponentHelper } from \"../utils\";\nimport {\n DetailsColumnConfig,\n RichDetails,\n RichDetailsProps,\n} from \"./RichDetails\";\n\nexport * from \"./RichDetails\";\n\nexport function registerRichDetails(loader?: Registerable) {\n registerComponentHelper(loader, RichDetails, {\n name: \"hostless-rich-details\",\n displayName: \"Data details\",\n defaultStyles: {\n width: \"stretch\",\n maxHeight: \"100%\",\n },\n props: {\n data: {\n type: \"dataSourceOpData\" as any,\n description: \"The data to display\",\n },\n fields: buildFieldsPropType<DetailsColumnConfig, RichDetailsProps>({\n fieldTypes: {\n span: {\n type: \"number\",\n displayName: \"Number of columns to span\",\n defaultValueHint: 1,\n },\n },\n }),\n layout: {\n displayName: \"Layout\",\n type: \"choice\",\n options: [\n { value: \"horizontal\", label: \"Horizontal\" },\n { value: \"vertical\", label: \"Vertical\" },\n ],\n defaultValueHint: \"horizontal\",\n },\n column: {\n displayName: \"Items per row\",\n type: \"number\",\n description: \"Number of items to display per row\",\n defaultValueHint: 2,\n },\n size: {\n displayName: \"Spacing\",\n type: \"choice\",\n options: [\n { value: \"small\", label: \"Small\" },\n { value: \"middle\", label: \"Medium\" },\n { value: \"default\", label: \"Large\" },\n ],\n defaultValueHint: \"default\",\n },\n bordered: {\n displayName: \"Show borders?\",\n type: \"boolean\",\n defaultValueHint: false,\n },\n },\n importPath: \"@plasmicpkgs/plasmic-rich-components\",\n importName: \"RichDetails\",\n });\n}\n","import { useEffect, useState } from \"react\";\nimport { tinycolor } from \"@ctrl/tinycolor\";\n\nexport function useIsClient() {\n const [loaded, setLoaded] = useState(false);\n useEffect(() => {\n setLoaded(true);\n });\n return loaded;\n}\n\nexport function capitalize(text: string) {\n return text.slice(0, 1).toUpperCase() + text.slice(1);\n}\n\nexport function isLight(color: string) {\n const { r, g, b } = tinycolor(color).toRgb();\n return r * 0.299 + g * 0.587 + b * 0.114 > 186;\n}\n","import { LogoutOutlined } from \"@ant-design/icons\";\nimport type { MenuDataItem, ProLayoutProps } from \"@ant-design/pro-components\";\nimport { ProConfigProvider, ProLayout } from \"@ant-design/pro-components\";\nimport { ConfigProvider, Dropdown, theme } from \"antd\";\nimport React, { ReactNode, useEffect, useState } from \"react\";\nimport { isLight, useIsClient } from \"../common\";\n\nfunction omitUndefined(x: object) {\n return Object.fromEntries(\n Object.entries(x).filter(([k, v]) => v !== undefined)\n );\n}\n\ninterface NavMenuItem extends Omit<MenuDataItem, \"routes\"> {\n routes?: NavMenuItem[];\n}\n\nexport interface SimpleNavTheme {\n scheme?: \"default\" | \"light\" | \"dark\" | \"custom\" | \"primary\";\n customBgColor?: string;\n}\n\nexport interface RichLayoutProps extends ProLayoutProps {\n navMenuItems?: NavMenuItem[];\n rootUrl?: string;\n actionsChildren?: ReactNode;\n footerChildren?: ReactNode;\n avatarLabel?: string;\n avatarImage?: string;\n showAvatarMenu?: boolean;\n simpleNavTheme?: SimpleNavTheme;\n}\n\nconst baseStyles = `\n.ant-pro-layout-bg-list {\n display: none;\n}\n.ant-pro-layout {\n display: flex;\n}\n`;\n\nexport function RichLayout({\n children,\n navMenuItems,\n rootUrl = \"/\",\n actionsChildren,\n footerChildren,\n avatarLabel,\n avatarImage,\n showAvatarMenu,\n className,\n simpleNavTheme,\n ...layoutProps\n}: RichLayoutProps) {\n const isClient = useIsClient();\n const [pathname, setPathname] = useState<string | undefined>(undefined);\n useEffect(() => {\n if (typeof location !== \"undefined\") {\n setPathname(location.pathname);\n }\n }, []);\n const { token } = theme.useToken();\n const origTextColor = token.colorTextBase;\n function getNavBgColor(): string {\n const scheme = simpleNavTheme?.scheme ?? \"default\";\n switch (scheme) {\n case \"primary\":\n return token.colorPrimary;\n case \"dark\":\n // Ant default dark blue Menu color.\n return \"#011528\";\n case \"custom\":\n return simpleNavTheme?.customBgColor ?? token.colorBgBase;\n case \"light\":\n // Just use this sorta ugly gray if using 'light' scheme in 'dark' mode.\n // Otherwise using light scheme in light mode.\n return \"#fff\";\n case \"default\":\n return token.colorBgBase || \"#fff\";\n }\n }\n const navBgColor = getNavBgColor();\n // Dynamically determine whether we need to change the text to black/white or not, based on background color.\n // We don't want light-on-light or dark-on-dark, so if both isNavBgLight and isOrigTextLight are the same, then need to change.\n // If no need to change, we leave text color as is.\n const isNavBgLight = isLight(navBgColor);\n const isOrigTextLight = isLight(origTextColor);\n // Ant will interpret \"\" as defaulting to \"#fff\" for dark mode and \"#000\" in light mode.\n const navTextColor = isNavBgLight !== isOrigTextLight ? undefined : \"\";\n if (!isClient) {\n return null;\n }\n return (\n <div className={className} style={{ display: \"flex\" }}>\n {/* Remove the always-on fixed gradient background layer. */}\n <style>{baseStyles}</style>\n <ProLayout\n {...layoutProps}\n // Theme just the header. If you simply pass in navTheme=realDark, it affects all main content as well.\n //\n // What we're doing is telling Ant to use the dark mode algorithm. However, dark mode algorithm doesn't change\n // the seed tokens for colorTextBase and colorBgBase - it only fills in #fff and #000 for these if they are\n // unset (\"\"). So that's why further up we may be setting the text color to \"\".\n //\n // I think it doesn't matter too much what is the colorBgBase, since we are setting (Pro-specific) `tokens`\n // further down for actually setting the fill of the nav sections. What matters is the text color - if we're\n // showing a dark background, then we want the text to be white.\n //\n // We could specify darkAlgorithm to ConfigProvider, but IIRC Pro might be setting some of its own tokens\n // based on whether dark is being specified to the ProConfigProvider. So that's why we need that.\n //\n // ProConfigProvider does first read/inherit the theme/tokens from the surrounding ConfigProvider.\n headerRender={(_props, defaultDom) => (\n <ConfigProvider\n theme={{ token: omitUndefined({ colorTextBase: navTextColor }) }}\n >\n <ProConfigProvider dark={!isNavBgLight}>\n {defaultDom}\n </ProConfigProvider>\n </ConfigProvider>\n )}\n token={{\n header: omitUndefined({\n colorBgHeader: navBgColor,\n }),\n // Ideally, we'd do something similar to headerRender above, and just specify general dark mode to specify\n // whether all components/text should be light.\n // But for some reason it doesn't work, causing the bg color to be ignored (just the default dark Menu color),\n // *and* the text is just dark as well.\n // Haven't yet been able to unravel the pro components code to figure out the proper way to do this, so just\n // bluntly specifying tokens here, as recommended in some GitHub issue.\n sider: isNavBgLight\n ? undefined\n : {\n colorBgCollapsedButton: navBgColor,\n colorTextCollapsedButtonHover: \"rgba(255,255,255,0.85)\",\n colorTextCollapsedButton: \"rgba(255,255,255,0.65)\",\n colorMenuBackground: navBgColor,\n colorBgMenuItemCollapsedHover: \"rgba(0,0,0,0.06)\",\n colorBgMenuItemCollapsedSelected: \"rgba(0,0,0,0.15)\",\n colorBgMenuItemCollapsedElevated: \"rgba(0,0,0,0.85)\",\n colorMenuItemDivider: \"rgba(255,255,255,0.15)\",\n colorBgMenuItemHover: \"rgba(0,0,0,0.06)\",\n colorBgMenuItemSelected: \"rgba(0,0,0,0.15)\",\n colorTextMenuSelected: \"#fff\",\n colorTextMenuItemHover: \"rgba(255,255,255,0.75)\",\n colorTextMenu: \"rgba(255,255,255,0.75)\",\n colorTextMenuSecondary: \"rgba(255,255,255,0.65)\",\n colorTextMenuTitle: \"rgba(255,255,255,0.95)\",\n colorTextMenuActive: \"rgba(255,255,255,0.95)\",\n colorTextSubMenuSelected: \"#fff\",\n },\n }}\n // Tweak defaults. ProLayout is janky and has terrible docs!\n layout={layoutProps.layout ?? \"top\"}\n fixedHeader={layoutProps.fixedHeader ?? false}\n fixSiderbar={\n // Doesn't stretch full height if you set this to false and you're in mix mode.\n layoutProps.layout === \"mix\"\n ? undefined\n : layoutProps.fixSiderbar ?? false\n }\n // This is always needed if you want layout mix to have effect and look any different from layout side - not clear why this should ever be false.\n splitMenus={layoutProps.layout === \"mix\"}\n route={{\n path: rootUrl,\n routes: navMenuItems,\n }}\n location={{\n pathname,\n }}\n menu={{\n // collapsedShowGroupTitle: true,\n defaultOpenAll: true,\n // hideMenuWhenCollapsed: true,\n }}\n avatarProps={\n showAvatarMenu\n ? {\n src: avatarImage,\n size: \"small\",\n title: avatarLabel,\n render: (_props, dom) => {\n return (\n <Dropdown\n menu={{\n items: [\n {\n key: \"logout\",\n icon: <LogoutOutlined />,\n label: \"Sign out\",\n },\n ],\n }}\n >\n {dom}\n </Dropdown>\n );\n },\n }\n : undefined\n }\n actionsRender={(_props) => {\n return [actionsChildren];\n }}\n menuFooterRender={(props) => {\n if (props?.collapsed) return undefined;\n return footerChildren;\n }}\n onMenuHeaderClick={(e) => console.log(e)}\n menuItemRender={(item, dom) => <a href={item.path}>{dom}</a>}\n headerTitleRender={(logo, title, _) => {\n return (\n <a href={rootUrl}>\n {logo}\n {title}\n </a>\n );\n }}\n >\n {children}\n </ProLayout>\n </div>\n );\n}\n","import {\n ComponentMeta,\n JSONLikeType,\n} from \"@plasmicapp/host/registerComponent\";\nimport { capitalize } from \"../common\";\nimport { Registerable, registerComponentHelper } from \"../utils\";\nimport { RichLayout, RichLayoutProps } from \"./RichLayout\";\n\nexport * from \"./RichLayout\";\nexport default RichLayout;\n\nfunction generateNavMenuType(\n remainingDepth: number,\n displayName?: string,\n defaultValue?: any[]\n): object & JSONLikeType<any> {\n return {\n displayName: displayName ? displayName : \"Nested items\",\n type: \"array\",\n defaultValue,\n itemType: {\n type: \"object\",\n nameFunc: (item: any) =>\n item.name || (!displayName ? \"Unnamed nested item\" : \"Unnamed item\"),\n fields: {\n path: \"href\",\n name: \"string\",\n ...(remainingDepth === 0\n ? {}\n : {\n routes: generateNavMenuType(remainingDepth - 1),\n }),\n },\n },\n } as const;\n}\n\nconst richLayoutMeta: ComponentMeta<RichLayoutProps> = {\n name: \"hostless-rich-layout\",\n displayName: \"Rich App Layout\",\n props: {\n children: {\n type: \"slot\",\n unstable__isMainContentSlot: true,\n },\n actionsChildren: {\n type: \"slot\",\n hidePlaceholder: true,\n },\n title: {\n displayName: \"Title\",\n type: \"string\",\n defaultValue: \"App title\",\n },\n logo: {\n displayName: \"Logo\",\n type: \"imageUrl\",\n defaultValue: \"https://www.plasmic.app/favicon.ico\",\n },\n navMenuItems: generateNavMenuType(2, \"Nav menu items\", [\n {\n path: \"/\",\n name: \"Link 1\",\n },\n {\n path: \"/\",\n name: \"Link 2\",\n },\n ]),\n\n layout: {\n displayName: \"Layout\",\n type: \"choice\",\n options: [\"side\", \"top\", \"mix\"].map((value) => ({\n value,\n label: capitalize(value),\n })),\n defaultValueHint: \"top\",\n },\n\n simpleNavTheme: {\n displayName: \"Theme\",\n type: \"object\",\n fields: {\n scheme: {\n type: \"choice\",\n options: [\"default\", \"primary\", \"light\", \"dark\", \"custom\"].map(\n (v) => ({\n label: capitalize(v),\n value: v,\n })\n ),\n defaultValueHint: \"default\",\n },\n customBgColor: {\n type: \"color\",\n displayName: \"Custom color\",\n hidden: (props) => !(props.simpleNavTheme?.scheme === \"custom\"),\n defaultValue: \"#D73B58\",\n },\n },\n },\n\n // Advanced, show later\n /*\n siderMenuType: {\n displayName: \"Sidebar mode\",\n type: \"choice\",\n options: [\"sub\", \"group\"].map((value) => ({\n value,\n label: capitalize(value),\n })),\n defaultValue: \"sub\",\n },\n contentWidth: {\n displayName: \"Content width\",\n type: \"choice\",\n options: [\"Fluid\", \"Fixed\"],\n defaultValueHint: \"Fluid\",\n },\n */\n fixedHeader: {\n displayName: \"Sticky header\",\n type: \"boolean\",\n hidden: (ps) => (ps.layout ?? \"top\") !== \"top\",\n defaultValueHint: false,\n },\n fixSiderbar: {\n displayName: \"Sticky sidebar\",\n type: \"boolean\",\n hidden: (ps) => (ps.layout ?? \"top\") !== \"side\",\n defaultValueHint: false,\n },\n /*\n showAvatarMenu: {\n displayName: \"Show avatar\",\n type: \"boolean\",\n defaultValue: true,\n },\n avatarLabel: {\n displayName: \"Avatar label\",\n type: \"string\",\n defaultValue: \"User Name\",\n },\n avatarImage: {\n displayName: \"Avatar image\",\n type: \"imageUrl\",\n defaultValue:\n \"https://gw.alipayobjects.com/zos/antfincdn/efFD%24IOql2/weixintupian_20170331104822.jpg\",\n },\n */\n menu: {\n displayName: \"Menu\",\n type: \"object\",\n fields: {\n defaultOpenAll: {\n displayName: \"Default open all\",\n type: \"boolean\",\n },\n hideMenuWhenCollapsed: {\n // displayName: \"\",\n type: \"boolean\",\n },\n },\n },\n },\n\n defaultStyles: {\n width: \"full-bleed\",\n height: \"stretch\",\n minHeight: \"100vh\",\n },\n\n importName: \"RichLayout\",\n importPath: \"@plasmicpkgs/plasmic-rich-components\",\n};\n\nexport function registerRichLayout(loader?: Registerable) {\n registerComponentHelper(loader, RichLayout, richLayoutMeta);\n}\n","import { EllipsisOutlined, PlusOutlined } from \"@ant-design/icons\";\nimport {\n ActionType,\n ProColumns,\n ProTable,\n TableDropdown,\n} from \"@ant-design/pro-components\";\nimport { TableSchema } from \"@plasmicapp/data-sources\";\nimport { Button, Dropdown } from \"antd\";\nimport type { SizeType } from \"antd/es/config-provider/SizeContext\";\nimport type { GetRowKey, SorterResult } from \"antd/es/table/interface\";\nimport { createObjectCsvStringifier } from \"csv-writer-browser\";\nimport fastStringify from \"fast-stringify\";\nimport React, { ReactNode, useRef, useState } from \"react\";\nimport { useIsClient } from \"../common\";\nimport {\n BaseColumnConfig,\n FieldfulProps,\n RowFunc,\n deriveFieldConfigs,\n deriveValueType,\n mkShortId,\n} from \"../field-mappings\";\nimport { NormalizedData, normalizeData } from \"../queries\";\nimport { renderValue } from \"../formatting\";\n\n// Avoid csv-stringify, it doesn't directly work in browser without Buffer polyfill.\n\nexport interface Action {\n type: \"edit\" | \"view\" | \"delete\" | \"custom\";\n label?: string;\n moreMenu?: boolean;\n}\n\nexport interface ControlContextData {\n data: unknown[];\n schema?: TableSchema;\n mergedFields: TableColumnConfig[];\n minimalFullLengthFields: Partial<TableColumnConfig>[];\n}\n\ninterface RowActionItem {\n type: \"item\";\n label: string;\n onClick: (rowKey: string, row: any) => void;\n}\n\ninterface RowActionMenu {\n type: \"menu\";\n label: string;\n children?: RowActionItem[];\n}\n\ntype RowAction = RowActionItem | RowActionMenu;\n\nexport interface RichTableProps extends FieldfulProps<TableColumnConfig> {\n defaultSize?: SizeType;\n pagination?: boolean;\n\n canSelectRows?: \"none\" | \"click\" | \"single\" | \"multiple\";\n\n selectedRowKey?: string | string[];\n onRowSelectionChanged?: (rowKeys: string[], rows: any[]) => void;\n onRowClick?: (rowKey: string, row: any, event: React.MouseEvent) => void;\n\n rowKey?: string | GetRowKey<any>;\n rowActions?: RowAction[];\n\n title?: ReactNode;\n\n addHref?: string;\n\n actions?: Action[];\n customActionChildren?: ReactNode;\n\n pageSize?: number;\n\n hideSearch?: boolean;\n hideDensity?: boolean;\n hideColumnPicker?: boolean;\n hideExports?: boolean;\n hideSelectionBar?: boolean;\n\n scopeClassName?: string;\n themeResetClassName?: string;\n}\n\nexport function RichTable(props: RichTableProps) {\n const {\n className,\n data: rawData = {\n data: [],\n schema: {\n id: \"inferred\",\n fields: [\n {\n id: \"id\",\n type: \"string\",\n readOnly: false,\n },\n ],\n },\n },\n // children,\n pagination = true,\n defaultSize,\n title,\n addHref,\n pageSize = 10,\n hideSearch,\n hideDensity = true,\n hideColumnPicker,\n hideExports,\n hideSelectionBar = true,\n rowKey,\n scopeClassName,\n } = props;\n\n const data = normalizeData(rawData);\n\n const { columnDefinitions, normalized } = useColumnDefinitions(data, props);\n\n const actionRef = useRef<ActionType>();\n\n const { finalData, search, setSearch, setSortState } = useSortedFilteredData(\n data,\n normalized\n );\n\n const rowSelectionProps = useRowSelectionProps(data, props);\n\n const isClient = useIsClient();\n\n if (!isClient) {\n return null;\n }\n\n return (\n <div className={`${className} ${scopeClassName ?? \"\"}`}>\n <ProTable\n rowClassName={\n props.onRowClick || props.canSelectRows === \"click\"\n ? \"plasmic-table-row-clickable\"\n : undefined\n }\n actionRef={actionRef}\n columns={columnDefinitions}\n onChange={(_pagination, _filters, sorter, _extra) => {\n setSortState({ sorter: sorter as any });\n }}\n style={{\n width: \"100%\",\n }}\n cardProps={{\n ghost: true,\n }}\n {...rowSelectionProps}\n dataSource={finalData}\n rowKey={deriveRowKey(data, rowKey)}\n defaultSize={defaultSize}\n editable={{ type: \"multiple\" }}\n search={false}\n options={{\n setting: hideColumnPicker\n ? false\n : {\n listsHeight: 400,\n },\n reload: false,\n density: !hideDensity,\n }}\n pagination={\n pagination\n ? {\n pageSize,\n onChange: (page) => console.log(page),\n showSizeChanger: false,\n }\n : false\n }\n dateFormatter=\"string\"\n headerTitle={title}\n toolbar={{\n search: !hideSearch\n ? {\n value: search,\n onChange: (e) => setSearch(e.target.value),\n onSearch: () => {\n return;\n },\n placeholder: \"Search\",\n }\n : undefined,\n }}\n toolBarRender={() =>\n [\n addHref && (\n <Button\n key=\"button\"\n icon={<PlusOutlined />}\n type=\"primary\"\n href={addHref}\n >\n Add\n </Button>\n ),\n !hideExports && <ExportMenu data={data} />,\n ].filter((x) => !!x)\n }\n />\n {/*Always hide the weird pin left/right buttons for now, which also have render layout issues*/}\n <style\n dangerouslySetInnerHTML={{\n __html: `\n :where(.css-dev-only-do-not-override-1p704s4).ant-pro-table-column-setting-overlay .ant-tree-treenode:hover .ant-pro-table-column-setting-list-item-option {\n display: none;\n }\n :where(.plasmic-table-row-clickable) {\n cursor: pointer;\n }\n .ant-pro-table-list-toolbar-right {\n flex-wrap: initial;\n flex-shrink: 0;\n }\n .ant-pro-table, .ant-pro-table > .ant-pro-card, .ant-pro-table .ant-table-wrapper, .ant-pro-table .ant-spin-nested-loading, .ant-pro-table .ant-table-container {\n height: 100%;\n }\n .ant-pro-table .ant-spin-container {\n height: 100%;\n display: flex;\n flex-direction: column;\n }\n .ant-pro-table .ant-table {\n flex-grow: 1;\n min-height: 0;\n }\n .ant-pro-table .ant-pagination {\n flex-shrink: 0;\n }\n .ant-pro-table .ant-table-content {\n overflow: auto !important;\n height: 100%;\n }\n .ant-pro-table > .ant-pro-card > .ant-pro-card-body {\n display: flex;\n flex-direction: column;\n }\n .ant-pro-table .ant-table-wrapper {\n flex-grow: 1;\n min-height: 0;\n }\n .ant-pro-table .ant-table-thead > tr > th, .ant-pro-table .ant-table-thead > tr > td.ant-table-selection-column {\n position: sticky;\n top: 0;\n z-index: 2;\n }\n .ant-pro-table .ant-table-thead > tr > th.ant-table-cell-fix-left, .ant-pro-table .ant-table-thead > tr > th.ant-table-cell-fix-right {\n z-index: 3;\n }\n .ant-pro-table .ant-table-tbody > tr > td {\n z-index: 0;\n }\n .ant-pro-table .ant-table-tbody > tr > td.ant-table-cell-fix-left,.ant-pro-table .ant-table-tbody > tr > td.ant-table-cell-fix-right {\n z-index: 1;\n }\n ${\n scopeClassName && hideSelectionBar\n ? `\n .${scopeClassName} .ant-pro-table-alert {\n display: none;\n }\n `\n : \"\"\n }\n `,\n }}\n />\n </div>\n );\n}\n\nexport function deriveRowKey(\n data: React.ComponentProps<typeof RichTable>[\"data\"],\n rowKey: React.ComponentProps<typeof RichTable>[\"rowKey\"]\n) {\n if (rowKey) {\n return rowKey;\n }\n const schema = data?.schema;\n if (schema) {\n return schema.fields[0]?.id;\n }\n return undefined;\n}\n\nexport function deriveKeyOfRow(\n row: any,\n rowKey: React.ComponentProps<typeof RichTable>[\"rowKey\"]\n) {\n if (typeof rowKey === \"function\") {\n return rowKey(row);\n } else if (typeof rowKey === \"string\") {\n return row[rowKey];\n } else {\n return undefined;\n }\n}\n\ninterface StyleConfig {\n styles: Record<string, any>;\n align: \"left\" | \"center\" | \"right\";\n freeze: \"off\" | \"left\" | \"right\";\n}\n\nconst defaultColumnConfig = (): TableColumnConfig =>\n ({\n key: mkShortId(),\n isEditableExpr: () => false,\n disableSorting: false,\n sortByExpr: undefined,\n isHidden: false,\n formatting: {\n styles: {},\n align: \"left\",\n freeze: \"off\",\n },\n dataType: \"auto\" as const,\n } as const);\n\nexport type TableColumnConfig = BaseColumnConfig & {\n isEditableExpr: RowFunc<boolean>;\n disableSorting: boolean;\n sortByExpr?: RowFunc<any>;\n formatting: StyleConfig;\n};\n\nfunction useColumnDefinitions(\n data: NormalizedData | undefined,\n props: React.ComponentProps<typeof RichTable>\n) {\n const { fields, setControlContextData, rowActions } = props;\n return React.useMemo(() => {\n const schema = data?.schema;\n if (!data || !schema) {\n return { normalized: [], columnDefinitions: [] };\n }\n const { mergedFields, minimalFullLengthFields } =\n deriveFieldConfigs<TableColumnConfig>(fields ?? [], schema, (field) => ({\n ...defaultColumnConfig(),\n ...(field && {\n key: field.id,\n fieldId: field.id,\n title: field.label || field.id,\n expr: (currentItem) => currentItem[field.id],\n }),\n }));\n setControlContextData?.({ ...data, mergedFields, minimalFullLengthFields });\n const normalized = mergedFields;\n const columnDefinitions: ProColumns<any, any>[] = normalized\n .filter((cconfig) => !cconfig.isHidden)\n .map((cconfig, _columnIndex, _columnsArray) => {\n const columnDefinition: ProColumns<any, any> = {\n dataIndex: cconfig.fieldId,\n title: cconfig.title,\n // dataIndex: cconfig,\n key: cconfig.key,\n valueType: deriveValueType(cconfig),\n\n // To come later\n readonly: false,\n sorter: true,\n copyable: false,\n ellipsis: false,\n tip: undefined,\n formItemProps: {\n rules: [],\n },\n disable: false,\n valueEnum: undefined,\n search: undefined,\n hideInSearch: false,\n renderFormItem: (_, { defaultRender }) => {\n return defaultRender(_);\n },\n\n render: (value: any, record: any, rowIndex: any) => {\n const cellValue = cconfig.fieldId\n ? record[cconfig.fieldId]\n : undefined;\n return renderValue(cellValue, record, cconfig);\n },\n };\n\n return columnDefinition;\n });\n if (rowActions && rowActions.length > 0) {\n columnDefinitions.push({\n title: \"Actions\",\n valueType: \"option\",\n key: \"__plasmicActions\",\n fixed: \"right\",\n className: props.themeResetClassName,\n render: (_text, row) => [\n ...rowActions.map((_action) => {\n if (_action.type === \"item\") {\n return (\n <a\n key={_action.label}\n style={{\n whiteSpace: \"nowrap\",\n }}\n onClick={() =>\n _action.onClick?.(\n deriveKeyOfRow(row, deriveRowKey(data, props.rowKey)),\n row\n )\n }\n >\n {_action.label}\n </a>\n );\n } else {\n return (\n <TableDropdown\n key={_action.label}\n style={{\n whiteSpace: \"nowrap\",\n }}\n menus={(_action.children ?? []).map((child) => ({\n key: child.label,\n name: child.label,\n onClick: () =>\n child.onClick?.(\n deriveKeyOfRow(row, deriveRowKey(data, props.rowKey)),\n row\n ),\n }))}\n >\n {_action.label}\n </TableDropdown>\n );\n }\n }),\n ],\n });\n }\n return { normalized, columnDefinitions };\n }, [fields, data, setControlContextData, rowActions]);\n}\n\nfunction useSortedFilteredData(\n data: NormalizedData | undefined,\n columns: TableColumnConfig[]\n) {\n const [search, setSearch] = useState(\"\");\n const [sortState, setSortState] = useState<\n undefined | { sorter: SorterResult<Record<string, any>> }\n >(undefined);\n const finalData = React.useMemo(() => {\n const filtered = data?.data?.filter((row) =>\n fastStringify(Object.values(row)).toLowerCase().includes(search)\n );\n const sorted = sortState?.sorter.column\n ? // We use .sort() rather than sortBy to use localeCompare\n (() => {\n const cconfig = columns.find(\n (cc) => cc.key === sortState?.sorter.column?.key\n )!;\n const expr = cconfig.expr ?? ((x) => x);\n return (filtered ?? []).sort((aa, bb) => {\n const a =\n expr(aa, cconfig.fieldId ? aa?.[cconfig.fieldId] : null) ??\n null,\n b =\n expr(bb, cconfig.fieldId ? bb?.[cconfig.fieldId] : null) ??\n null;\n // Default nil to '' here because A < null < z which is weird.\n return typeof a === \"string\"\n ? a.localeCompare(b ?? \"\")\n : typeof b === \"string\"\n ? -b.localeCompare(a ?? \"\")\n : a - b;\n });\n })()\n : filtered;\n const reversed =\n sortState?.sorter.order === \"descend\" ? sorted?.reverse() : sorted;\n return reversed;\n }, [data, columns, sortState, search]);\n\n return {\n finalData,\n search,\n setSearch,\n setSortState,\n };\n}\n\nfunction useRowSelectionProps(\n data: NormalizedData | undefined,\n props: React.ComponentProps<typeof RichTable>\n): Partial<React.ComponentProps<typeof ProTable>> {\n const {\n canSelectRows,\n selectedRowKey,\n onRowSelectionChanged,\n rowKey,\n onRowClick,\n } = props;\n const deriveSelectedRowKeys = () => {\n if (\n !canSelectRows ||\n canSelectRows === \"none\" ||\n !deriveRowKey(data, rowKey)\n ) {\n return [];\n }\n\n if (typeof selectedRowKey === \"string\") {\n return [selectedRowKey];\n } else if (Array.isArray(selectedRowKey)) {\n if (canSelectRows === \"single\" || canSelectRows === \"click\") {\n return selectedRowKey.slice(0, 1);\n } else {\n return selectedRowKey;\n }\n } else {\n return [];\n }\n };\n\n const rowSelection: React.ComponentProps<typeof ProTable>[\"rowSelection\"] =\n canSelectRows && canSelectRows !== \"none\"\n ? {\n type:\n canSelectRows === \"single\" || canSelectRows === \"click\"\n ? \"radio\"\n : \"checkbox\",\n selectedRowKeys: deriveSelectedRowKeys(),\n onChange: (rowKeys, rows) => {\n onRowSelectionChanged?.(rowKeys as string[], rows);\n },\n alwaysShowAlert: true,\n ...(canSelectRows === \"click\" && {\n renderCell: () => null,\n columnWidth: 0,\n columnTitle: null,\n hideSelectAll: true,\n }),\n }\n : undefined;\n return {\n rowSelection,\n onRow: (row) => ({\n onClick: (event) => {\n const key = deriveKeyOfRow(row, deriveRowKey(data, rowKey));\n if (key != null) {\n if (canSelectRows === \"click\") {\n // Some heuristics to avoid selecting a row when\n // the object clicked is interactable -- like button, anchor,\n // input, etc. This won't be bulletproof, so just some\n // heuristics!\n const target = event.target as HTMLElement;\n if (!isInteractable(target)) {\n onRowSelectionChanged?.([key], [row]);\n }\n }\n onRowClick?.(key, row, event);\n }\n },\n }),\n };\n}\n\nfunction isInteractable(target: HTMLElement) {\n if ([\"A\", \"BUTTON\", \"INPUT\", \"TEXTAREA\", \"SELECT\"].includes(target.tagName)) {\n return true;\n }\n if (target.contentEditable === \"true\") {\n return true;\n }\n\n return false;\n}\n\nfunction ExportMenu(props: { data: NormalizedData | undefined }) {\n const { data } = props;\n\n return (\n <Dropdown\n key=\"menu\"\n menu={{\n items: [\n {\n label: \"Download as CSV\",\n key: \"csv\",\n onClick: async () => {\n const writer = createObjectCsvStringifier({\n header:\n data?.schema?.fields.map((f) => ({\n id: f.id,\n title: f.id,\n })) ?? [],\n });\n const dataStr =\n writer.getHeaderString() +\n writer.stringifyRecords(data?.data as any);\n\n // const dataStr = stringify(data?.data as any, {\n // columns:\n // tryGetSchema(data)?.fields.map((f) => f.id) ?? [],\n // header: true,\n // });\n\n const filename = \"data.csv\";\n\n // Adapted from https://stackoverflow.com/a/68771795\n const blob = new Blob([dataStr], {\n type: \"text/csv;charset=utf-8;\",\n });\n if ((navigator as any).msSaveBlob) {\n // In case of IE 10+\n (navigator as any).msSaveBlob(blob, filename);\n } else {\n const link = document.createElement(\"a\");\n if (link.download !== undefined) {\n // Browsers that support HTML5 download attribute\n const url = URL.createObjectURL(blob);\n link.setAttribute(\"href\", url);\n link.setAttribute(\"download\", filename);\n link.style.visibility = \"hidden\";\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\n }\n }\n },\n },\n {\n label: \"Download as JSON\",\n key: \"json\",\n onClick: () => {\n const dataStr = fastStringify(data?.data);\n const dataUri = `data:application/json;charset=utf-8, ${encodeURIComponent(\n dataStr\n )}`;\n\n const exportFileDefaultName = \"data.json\";\n\n const linkElement = document.createElement(\"a\");\n linkElement.setAttribute(\"href\", dataUri);\n linkElement.setAttribute(\"download\", exportFileDefaultName);\n linkElement.click();\n },\n },\n ],\n }}\n >\n <Button>\n <EllipsisOutlined />\n </Button>\n </Dropdown>\n );\n}\n","import { ComponentMeta } from \"@plasmicapp/host/registerComponent\";\nimport { buildFieldsPropType } from \"../field-mappings\";\nimport { Registerable, registerComponentHelper } from \"../utils\";\nimport {\n RichTable,\n RichTableProps,\n TableColumnConfig,\n deriveRowKey,\n} from \"./RichTable\";\n\nexport * from \"./RichTable\";\nexport default RichTable;\n\nexport const tableHelpers = {\n states: {\n selectedRow: {\n onChangeArgsToValue: (rowKeys: string[], rows: any[]) => {\n return rows[0];\n },\n },\n selectedRows: {\n onChangeArgsToValue: (rowKeys: string[], rows: any[]) => {\n return rows;\n },\n },\n selectedRowKey: {\n onChangeArgsToValue: (rowKeys: string[], rows: any[]) => {\n return rowKeys;\n },\n },\n },\n};\n\nconst dataTableMeta: ComponentMeta<RichTableProps> = {\n name: \"hostless-rich-table\",\n displayName: \"Table\",\n defaultStyles: {\n width: \"stretch\",\n padding: \"16px\",\n maxHeight: \"100%\",\n },\n props: {\n data: {\n type: \"dataSourceOpData\" as any,\n description: \"The data to display in the table\",\n },\n\n fields: buildFieldsPropType<TableColumnConfig, RichTableProps>({}),\n\n canSelectRows: {\n type: \"choice\",\n displayName: \"Select rows?\",\n options: [\n { label: \"No\", value: \"none\" },\n { label: \"By clicking a row\", value: \"click\" },\n { label: \"Using radio buttons\", value: \"single\" },\n { label: \"Using checkboxes\", value: \"multiple\" },\n ],\n defaultValueHint: \"none\",\n description:\n \"Lets user select table rows by clicking on a row, or using radio buttons, or checkboxes if multiple rows can be selected together. If you have interactive elements in your row and you don't want clicking on them to select the row, you may use radio buttons instead.\",\n },\n\n rowKey: {\n type: \"string\",\n displayName: \"Row key\",\n helpText:\n \"Column key to use as row key; can also be a function that takes in a row and returns a key value\",\n hidden: (ps) => !ps.canSelectRows || ps.canSelectRows === \"none\",\n defaultValueHint: (ps) => {\n const derivedRowKey = deriveRowKey(ps.data, ps.rowKey);\n return derivedRowKey !== undefined ? `${derivedRowKey}` : undefined;\n },\n },\n\n selectedRowKey: {\n type: \"string\",\n displayName: \"Selected Row Key\",\n hidden: (ps) => ps.canSelectRows !== \"single\",\n advanced: true,\n },\n selectedRowKeys: {\n type: \"array\",\n displayName: \"Selected Row Keys\",\n hidden: (ps) => ps.canSelectRows !== \"multiple\",\n advanced: true,\n },\n onRowSelectionChanged: {\n type: \"eventHandler\",\n displayName: \"On row selection changed\",\n argTypes: [\n { name: \"rowKeys\", type: \"object\" },\n { name: \"rows\", type: \"object\" },\n ],\n },\n onRowClick: {\n type: \"eventHandler\",\n displayName: \"On row clicked\",\n argTypes: [\n { name: \"rowKey\", type: \"string\" },\n { name: \"row\", type: \"object\" },\n { name: \"event\", type: \"object\" },\n ],\n },\n\n rowActions: {\n type: \"array\",\n displayName: \"Row actions\",\n advanced: true,\n itemType: {\n type: \"object\",\n nameFunc: (item) => item.label,\n fields: {\n type: {\n type: \"choice\",\n options: [\"item\", \"menu\"],\n defaultValue: \"item\",\n },\n label: {\n type: \"string\",\n displayName: \"Action label\",\n },\n children: {\n type: \"array\",\n displayName: \"Menu items\",\n itemType: {\n type: \"object\",\n fields: {\n label: {\n type: \"string\",\n displayName: \"Action label\",\n },\n onClick: {\n type: \"eventHandler\",\n argTypes: [\n { name: \"rowKey\", type: \"string\" },\n { name: \"row\", type: \"object\" },\n ],\n },\n },\n },\n hidden: (ps, ctx, { item }) => item.type !== \"menu\",\n },\n onClick: {\n type: \"eventHandler\",\n displayName: \"Action\",\n argTypes: [\n { name: \"rowKey\", type: \"string\" },\n { name: \"row\", type: \"object\" },\n ],\n hidden: (ps, ctx, { item }) => item.type !== \"item\",\n },\n },\n },\n },\n\n defaultSize: {\n displayName: \"Density\",\n type: \"choice\",\n options: [\n {\n value: \"large\",\n label: \"Larger\",\n },\n {\n value: \"middle\",\n label: \"Medium\",\n },\n {\n value: \"small\",\n label: \"Compact\",\n },\n ],\n defaultValueHint: \"large\",\n advanced: true,\n },\n\n pageSize: {\n type: \"number\",\n defaultValueHint: 10,\n advanced: true,\n },\n\n pagination: {\n type: \"boolean\",\n advanced: true,\n defaultValueHint: true,\n },\n\n hideSearch: {\n type: \"boolean\",\n description: \"Hides the search toolbar\",\n advanced: true,\n },\n\n hideExports: {\n type: \"boolean\",\n description: \"Hides the button for exporting table data to CSV\",\n advanced: true,\n },\n\n hideDensity: {\n type: \"boolean\",\n description: \"Hides the control for changing the density of the table\",\n advanced: true,\n defaultValueHint: true,\n },\n\n hideColumnPicker: {\n type: \"boolean\",\n description: \"Hides the control for reordering and pinning columns\",\n advanced: true,\n },\n\n hideSelectionBar: {\n type: \"boolean\",\n description: \"Hides the toolbar that allows the user to clear selection\",\n advanced: true,\n hidden: (ps) => !ps.canSelectRows || ps.canSelectRows === \"none\",\n defaultValueHint: true,\n },\n scopeClassName: {\n type: \"styleScopeClass\",\n scopeName: \"instance\",\n } as any,\n themeResetClassName: {\n type: \"themeResetClass\",\n targetAllTags: true,\n },\n },\n states: {\n selectedRowKey: {\n type: \"writable\",\n valueProp: \"selectedRowKey\",\n onChangeProp: \"onRowSelectionChanged\",\n variableType: \"text\",\n ...tableHelpers.states.selectedRowKey,\n },\n selectedRow: {\n type: \"readonly\",\n onChangeProp: \"onRowSelectionChanged\",\n variableType: \"object\",\n ...tableHelpers.states.selectedRow,\n },\n selectedRows: {\n type: \"readonly\",\n onChangeProp: \"onRowSelectionChanged\",\n variableType: \"array\",\n ...tableHelpers.states.selectedRows,\n },\n },\n componentHelpers: {\n helpers: tableHelpers,\n importName: \"tableHelpers\",\n importPath: \"@plasmicpkgs/plasmic-rich-components\",\n },\n importName: \"RichTable\",\n importPath: \"@plasmicpkgs/plasmic-rich-components\",\n};\n\nexport function registerRichTable(loader?: Registerable) {\n registerComponentHelper(loader, RichTable, dataTableMeta);\n}\n","import { registerRichDetails } from \"./rich-details\";\nimport { registerRichLayout } from \"./rich-layout\";\nimport { registerRichTable } from \"./rich-table\";\nimport { Registerable } from \"./utils\";\n\nexport { RichLayout } from \"./rich-layout\";\nexport { RichTable, tableHelpers } from \"./rich-table\";\nexport { RichDetails } from \"./rich-details\";\n\nexport function registerAll(loader?: Registerable) {\n registerRichLayout(loader);\n registerRichTable(loader);\n registerRichDetails(loader);\n}\n"],"names":["registerComponent","React","Checkbox","Switch","useColumnDefinitions","Empty","ProDescriptions","useState","useEffect","tinycolor","theme","ProLayout","ConfigProvider","ProConfigProvider","Dropdown","LogoutOutlined","useRef","ProTable","Button","PlusOutlined","TableDropdown","fastStringify","createObjectCsvStringifier","EllipsisOutlined"],"mappings":"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"}