@plasmicpkgs/plasmic-rich-components 1.0.231 → 1.0.232

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.
Files changed (40) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/index.js +16 -8
  3. package/dist/index.js.map +1 -1
  4. package/dist/plasmic-rich-components.esm.js +16 -8
  5. package/dist/plasmic-rich-components.esm.js.map +1 -1
  6. package/dist/utils.d.ts +4 -4
  7. package/package.json +3 -3
  8. package/skinny/{common-prop-types-94b20130.cjs.js → common-prop-types-691f4a06.cjs.js} +3 -3
  9. package/skinny/{common-prop-types-94b20130.cjs.js.map → common-prop-types-691f4a06.cjs.js.map} +1 -1
  10. package/skinny/{common-prop-types-82f3a4ed.esm.js → common-prop-types-758ece78.esm.js} +3 -3
  11. package/skinny/{common-prop-types-82f3a4ed.esm.js.map → common-prop-types-758ece78.esm.js.map} +1 -1
  12. package/skinny/{field-react-utils-c717ec94.cjs.js → field-react-utils-2bbbadc7.cjs.js} +2 -2
  13. package/skinny/{field-react-utils-c717ec94.cjs.js.map → field-react-utils-2bbbadc7.cjs.js.map} +1 -1
  14. package/skinny/{field-react-utils-26fba31e.esm.js → field-react-utils-46bb1f20.esm.js} +2 -2
  15. package/skinny/{field-react-utils-26fba31e.esm.js.map → field-react-utils-46bb1f20.esm.js.map} +1 -1
  16. package/skinny/{formatting-6f22c9d6.esm.js → formatting-b434487b.esm.js} +2 -2
  17. package/skinny/{formatting-6f22c9d6.esm.js.map → formatting-b434487b.esm.js.map} +1 -1
  18. package/skinny/{formatting-939d0aa3.cjs.js → formatting-c37b4133.cjs.js} +2 -2
  19. package/skinny/{formatting-939d0aa3.cjs.js.map → formatting-c37b4133.cjs.js.map} +1 -1
  20. package/skinny/rich-calendar/index.cjs.js +3 -3
  21. package/skinny/rich-calendar/index.esm.js +3 -3
  22. package/skinny/rich-details/index.cjs.js +2 -2
  23. package/skinny/rich-details/index.esm.js +2 -2
  24. package/skinny/rich-layout/index.cjs.js +1 -1
  25. package/skinny/rich-layout/index.cjs.js.map +1 -1
  26. package/skinny/rich-layout/index.esm.js +1 -1
  27. package/skinny/rich-layout/index.esm.js.map +1 -1
  28. package/skinny/rich-list/index.cjs.js +4 -4
  29. package/skinny/rich-list/index.cjs.js.map +1 -1
  30. package/skinny/rich-list/index.esm.js +4 -4
  31. package/skinny/rich-list/index.esm.js.map +1 -1
  32. package/skinny/rich-table/index.cjs.js +4 -4
  33. package/skinny/rich-table/index.esm.js +4 -4
  34. package/skinny/{utils-c32bd7ed.esm.js → utils-546b05e4.esm.js} +17 -9
  35. package/skinny/utils-546b05e4.esm.js.map +1 -0
  36. package/skinny/{utils-65c486f0.cjs.js → utils-da451c58.cjs.js} +17 -9
  37. package/skinny/utils-da451c58.cjs.js.map +1 -0
  38. package/skinny/utils.d.ts +4 -4
  39. package/skinny/utils-65c486f0.cjs.js.map +0 -1
  40. package/skinny/utils-c32bd7ed.esm.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"formatting-939d0aa3.cjs.js","sources":["../src/field-mappings.tsx","../src/formatting.tsx"],"sourcesContent":["import { QueryResult, TableSchema } from \"@plasmicapp/data-sources\";\nimport { ComponentContextConfig } from \"@plasmicapp/host\";\nimport { PropType } from \"@plasmicapp/host/registerComponent\";\nimport deepGet from \"lodash/get\";\nimport { isOneOf, withoutFalsey } from \"./utils\";\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 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\n// Hacky \"unique\" string values\nexport const NoneField = \"||NoneField||\";\nexport const CustomField = \"\";\n\ninterface FieldSubpropsOpts<ColumnConfig extends BaseColumnConfig> {\n fieldTypes?: Record<string, PropType<any>>;\n canChangeField?: boolean;\n canPickNoneField?: boolean;\n noTitle?: boolean;\n noDataType?: boolean;\n hiddenFieldId?: (\n ps: Record<string, unknown>,\n ctx: ControlContextData<ColumnConfig>,\n extras: { path: (string | number)[] }\n ) => boolean;\n}\n\nexport function getFieldSubprops<ColumnConfig extends BaseColumnConfig>(\n opts: FieldSubpropsOpts<ColumnConfig>\n): Record<string, PropType<any>> {\n return {\n key: {\n type: \"string\",\n hidden: () => true,\n },\n fieldId: {\n type: \"choice\",\n displayName: \"Field name\",\n readOnly: !opts.canChangeField,\n options: (_props, ctx: ControlContextData<BaseColumnConfig>) =>\n withoutFalsey([\n opts.canPickNoneField && { value: NoneField, label: \"None\" },\n ...(ctx?.schema?.fields ?? []).map((f) => ({\n value: f.id,\n label: f.label ?? f.id,\n })),\n { value: CustomField, label: \"Custom value\" },\n ]),\n hidden: (\n ps,\n ctx: ControlContextData<ColumnConfig>,\n { path: _controlPath }\n ) => {\n // If this is change-able.\n if (opts.canChangeField) {\n return false;\n }\n return true;\n // If there's a user-set fieldId\n if (deepGet(ps, _controlPath)) {\n return false;\n }\n return opts.hiddenFieldId?.(ps, ctx, { path: _controlPath }) ?? true;\n },\n },\n title: {\n type: \"string\",\n displayName: \"Title\",\n defaultValueHint: getDefaultValueHint(\"title\"),\n hidden: () => !!opts.noTitle,\n },\n expr: {\n ...rowDataType(\"Custom value\"),\n hidden: (\n _ps,\n _ctx: ControlContextData<BaseColumnConfig>,\n { item, path: _controlPath }\n ) => {\n return false;\n // HIDE if this is unset.\n if (!item) {\n return true;\n }\n // SHOW if this is change-able *and* user chose \"Custom\".\n if (opts.canChangeField) {\n return false;\n }\n return true;\n },\n },\n isHidden: {\n type: \"boolean\",\n displayName: \"Is hidden\",\n defaultValueHint: getDefaultValueHint(\"isHidden\"),\n },\n ...(!opts.noDataType\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 }) =>\n !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 }) =>\n !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 }) =>\n !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 }) =>\n !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 }) =>\n 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 }) =>\n item.dataType !== \"relative-datetime\",\n },\n }\n : {}),\n ...opts.fieldTypes,\n };\n}\n\nfunction getDefaultValueHint<ColumnConfig extends BaseColumnConfig>(\n field: keyof ColumnConfig\n) {\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\nconst 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\nexport function buildFieldsPropType<\n ColumnConfig extends BaseColumnConfig,\n Props extends FieldfulProps<ColumnConfig>\n>({\n advanced,\n displayName,\n minimalValue = (_props, contextData) => contextData?.minimalFullLengthFields,\n ...opts\n}: {\n advanced?: boolean;\n displayName?: string;\n minimalValue?: ComponentContextConfig<Props, any>;\n} & FieldSubpropsOpts<ColumnConfig>): PropType<Props> {\n return {\n type: \"array\",\n advanced,\n displayName,\n hidden: (ps) => !ps.data,\n unstable__keyFunc: (x) => x.key,\n unstable__minimalValue: minimalValue,\n unstable__canDelete: (_ps, _props, ctx, { item }) => {\n if (opts.canChangeField) {\n return true;\n }\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 // Prefer to show the field ID when available, since there's no other indication what field you're edtiing if you relabeled it.\n return _item.fieldId || _item.title || \"Custom value\";\n },\n fields: getFieldSubprops(opts),\n },\n };\n}\n","import { parseDate } from \"@plasmicpkgs/luxon-parser\";\nimport { Checkbox, Switch } from \"antd\";\nimport React from \"react\";\nimport {\n BaseColumnConfig,\n BooleanSettings,\n DateTimeSettings,\n DATETIME_TYPES,\n DEFAULT_BOOLEAN_SETTINGS,\n DEFAULT_CURRENCY_SETTINGS,\n DEFAULT_DATETIME_SETTINGS,\n DEFAULT_RELATIVE_DATETIME_SETTINGS,\n NumberSettings,\n NUMBER_TYPES,\n RelativeDateTimeSettings,\n} from \"./field-mappings\";\nimport { isOneOf, maybe } from \"./utils\";\n\nexport function maybeRenderValue(\n record: any,\n cconfig: BaseColumnConfig | undefined\n) {\n return cconfig ? renderValue(record, cconfig) : undefined;\n}\n\nexport function multiRenderValue(\n record: any,\n cconfigs: BaseColumnConfig[] | undefined\n) {\n return cconfigs\n ?.flatMap((cc) =>\n cc.isHidden ? [] : [` • `, <>{renderValue(record, cc)}</>]\n )\n .slice(1);\n}\n\nexport function maybeRenderString(\n record: any,\n cconfig: BaseColumnConfig | undefined\n) {\n return cconfig && !cconfig.isHidden\n ? maybe(getFieldValue(record, cconfig), asString)\n : undefined;\n}\n\nfunction getFieldValue(record: any, cconfig: BaseColumnConfig) {\n let value = cconfig.fieldId ? record[cconfig.fieldId] : undefined;\n\n if (cconfig.expr) {\n value = cconfig.expr(record, value);\n }\n\n return value;\n}\n\nexport function getFieldAggregateValue(\n record: any,\n cconfigs: BaseColumnConfig[] | undefined,\n separator = \", \"\n) {\n if (!cconfigs?.length) return undefined;\n\n return cconfigs?.length\n ? cconfigs.map((item) => getFieldValue(record, item)).join(separator)\n : undefined;\n}\n\nexport function renderValue(record: any, cconfig: BaseColumnConfig) {\n const value = getFieldValue(record, cconfig);\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 // We don't want to simply use Date because it's too loose and varies across platforms.\n // It'll parse even things like \"42\" and \"iPhone 8\" as dates!\n //\n // After a bunch of research, I couldn't find a great simple way to recognize a bunch of common date formats.\n // Closest such resource I could find was this list of formats:\n // https://gist.github.com/brandonjp/ac259099ba95868c4826fc0f58f9e7b4\n // But for now it's probably better to stick to one of the \"standard\" computer formats rather than try to recognize various \"humanized\" date time formats.\n // We could try to expand this in the future.\n //\n // As far as libraries go:\n // dayjs has very buggy and long-neglected support for parsing.\n // Temporal doesn't handle general parsing by format.\n // Luxon is maintained and decent, though it doesn't accept a whole list of formats.\n //\n // Right now we also don't know anything about performance.\n const parsed = parseDate(value);\n return parsed ? parsed : CANNOT_COERCE;\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"],"names":["__spreadValues","withoutFalsey","_a","__spreadProps","isOneOf","React","maybe","Checkbox","Switch","parseDate"],"mappings":"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"}
1
+ {"version":3,"file":"formatting-c37b4133.cjs.js","sources":["../src/field-mappings.tsx","../src/formatting.tsx"],"sourcesContent":["import { QueryResult, TableSchema } from \"@plasmicapp/data-sources\";\nimport { ComponentContextConfig } from \"@plasmicapp/host\";\nimport { PropType } from \"@plasmicapp/host/registerComponent\";\nimport deepGet from \"lodash/get\";\nimport { isOneOf, withoutFalsey } from \"./utils\";\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 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\n// Hacky \"unique\" string values\nexport const NoneField = \"||NoneField||\";\nexport const CustomField = \"\";\n\ninterface FieldSubpropsOpts<ColumnConfig extends BaseColumnConfig> {\n fieldTypes?: Record<string, PropType<any>>;\n canChangeField?: boolean;\n canPickNoneField?: boolean;\n noTitle?: boolean;\n noDataType?: boolean;\n hiddenFieldId?: (\n ps: Record<string, unknown>,\n ctx: ControlContextData<ColumnConfig>,\n extras: { path: (string | number)[] }\n ) => boolean;\n}\n\nexport function getFieldSubprops<ColumnConfig extends BaseColumnConfig>(\n opts: FieldSubpropsOpts<ColumnConfig>\n): Record<string, PropType<any>> {\n return {\n key: {\n type: \"string\",\n hidden: () => true,\n },\n fieldId: {\n type: \"choice\",\n displayName: \"Field name\",\n readOnly: !opts.canChangeField,\n options: (_props, ctx: ControlContextData<BaseColumnConfig>) =>\n withoutFalsey([\n opts.canPickNoneField && { value: NoneField, label: \"None\" },\n ...(ctx?.schema?.fields ?? []).map((f) => ({\n value: f.id,\n label: f.label ?? f.id,\n })),\n { value: CustomField, label: \"Custom value\" },\n ]),\n hidden: (\n ps,\n ctx: ControlContextData<ColumnConfig>,\n { path: _controlPath }\n ) => {\n // If this is change-able.\n if (opts.canChangeField) {\n return false;\n }\n return true;\n // If there's a user-set fieldId\n if (deepGet(ps, _controlPath)) {\n return false;\n }\n return opts.hiddenFieldId?.(ps, ctx, { path: _controlPath }) ?? true;\n },\n },\n title: {\n type: \"string\",\n displayName: \"Title\",\n defaultValueHint: getDefaultValueHint(\"title\"),\n hidden: () => !!opts.noTitle,\n },\n expr: {\n ...rowDataType(\"Custom value\"),\n hidden: (\n _ps,\n _ctx: ControlContextData<BaseColumnConfig>,\n { item, path: _controlPath }\n ) => {\n return false;\n // HIDE if this is unset.\n if (!item) {\n return true;\n }\n // SHOW if this is change-able *and* user chose \"Custom\".\n if (opts.canChangeField) {\n return false;\n }\n return true;\n },\n },\n isHidden: {\n type: \"boolean\",\n displayName: \"Is hidden\",\n defaultValueHint: getDefaultValueHint(\"isHidden\"),\n },\n ...(!opts.noDataType\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 }) =>\n !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 }) =>\n !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 }) =>\n !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 }) =>\n !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 }) =>\n 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 }) =>\n item.dataType !== \"relative-datetime\",\n },\n }\n : {}),\n ...opts.fieldTypes,\n };\n}\n\nfunction getDefaultValueHint<ColumnConfig extends BaseColumnConfig>(\n field: keyof ColumnConfig\n) {\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\nconst 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\nexport function buildFieldsPropType<\n ColumnConfig extends BaseColumnConfig,\n Props extends FieldfulProps<ColumnConfig>\n>({\n advanced,\n displayName,\n minimalValue = (_props, contextData) => contextData?.minimalFullLengthFields,\n ...opts\n}: {\n advanced?: boolean;\n displayName?: string;\n minimalValue?: ComponentContextConfig<Props, any>;\n} & FieldSubpropsOpts<ColumnConfig>): PropType<Props> {\n return {\n type: \"array\",\n advanced,\n displayName,\n hidden: (ps) => !ps.data,\n unstable__keyFunc: (x) => x.key,\n unstable__minimalValue: minimalValue,\n unstable__canDelete: (_ps, _props, ctx, { item }) => {\n if (opts.canChangeField) {\n return true;\n }\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 // Prefer to show the field ID when available, since there's no other indication what field you're edtiing if you relabeled it.\n return _item.fieldId || _item.title || \"Custom value\";\n },\n fields: getFieldSubprops(opts),\n },\n };\n}\n","import { parseDate } from \"@plasmicpkgs/luxon-parser\";\nimport { Checkbox, Switch } from \"antd\";\nimport React from \"react\";\nimport {\n BaseColumnConfig,\n BooleanSettings,\n DateTimeSettings,\n DATETIME_TYPES,\n DEFAULT_BOOLEAN_SETTINGS,\n DEFAULT_CURRENCY_SETTINGS,\n DEFAULT_DATETIME_SETTINGS,\n DEFAULT_RELATIVE_DATETIME_SETTINGS,\n NumberSettings,\n NUMBER_TYPES,\n RelativeDateTimeSettings,\n} from \"./field-mappings\";\nimport { isOneOf, maybe } from \"./utils\";\n\nexport function maybeRenderValue(\n record: any,\n cconfig: BaseColumnConfig | undefined\n) {\n return cconfig ? renderValue(record, cconfig) : undefined;\n}\n\nexport function multiRenderValue(\n record: any,\n cconfigs: BaseColumnConfig[] | undefined\n) {\n return cconfigs\n ?.flatMap((cc) =>\n cc.isHidden ? [] : [` • `, <>{renderValue(record, cc)}</>]\n )\n .slice(1);\n}\n\nexport function maybeRenderString(\n record: any,\n cconfig: BaseColumnConfig | undefined\n) {\n return cconfig && !cconfig.isHidden\n ? maybe(getFieldValue(record, cconfig), asString)\n : undefined;\n}\n\nfunction getFieldValue(record: any, cconfig: BaseColumnConfig) {\n let value = cconfig.fieldId ? record[cconfig.fieldId] : undefined;\n\n if (cconfig.expr) {\n value = cconfig.expr(record, value);\n }\n\n return value;\n}\n\nexport function getFieldAggregateValue(\n record: any,\n cconfigs: BaseColumnConfig[] | undefined,\n separator = \", \"\n) {\n if (!cconfigs?.length) return undefined;\n\n return cconfigs?.length\n ? cconfigs.map((item) => getFieldValue(record, item)).join(separator)\n : undefined;\n}\n\nexport function renderValue(record: any, cconfig: BaseColumnConfig) {\n const value = getFieldValue(record, cconfig);\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 // We don't want to simply use Date because it's too loose and varies across platforms.\n // It'll parse even things like \"42\" and \"iPhone 8\" as dates!\n //\n // After a bunch of research, I couldn't find a great simple way to recognize a bunch of common date formats.\n // Closest such resource I could find was this list of formats:\n // https://gist.github.com/brandonjp/ac259099ba95868c4826fc0f58f9e7b4\n // But for now it's probably better to stick to one of the \"standard\" computer formats rather than try to recognize various \"humanized\" date time formats.\n // We could try to expand this in the future.\n //\n // As far as libraries go:\n // dayjs has very buggy and long-neglected support for parsing.\n // Temporal doesn't handle general parsing by format.\n // Luxon is maintained and decent, though it doesn't accept a whole list of formats.\n //\n // Right now we also don't know anything about performance.\n const parsed = parseDate(value);\n return parsed ? parsed : CANNOT_COERCE;\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"],"names":["__spreadValues","withoutFalsey","_a","__spreadProps","isOneOf","React","maybe","Checkbox","Switch","parseDate"],"mappings":"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"}
@@ -1,14 +1,14 @@
1
1
  'use strict';
2
2
 
3
3
  var dayjs = require('dayjs');
4
- var commonPropTypes = require('../common-prop-types-94b20130.cjs.js');
5
- var utils = require('../utils-65c486f0.cjs.js');
4
+ var commonPropTypes = require('../common-prop-types-691f4a06.cjs.js');
5
+ var utils = require('../utils-da451c58.cjs.js');
6
6
  var dataSources = require('@plasmicapp/data-sources');
7
7
  var luxonParser = require('@plasmicpkgs/luxon-parser');
8
8
  var antd = require('antd');
9
9
  var groupBy = require('lodash/groupBy');
10
10
  var React = require('react');
11
- var formatting = require('../formatting-939d0aa3.cjs.js');
11
+ var formatting = require('../formatting-c37b4133.cjs.js');
12
12
  var localeData = require('dayjs/plugin/localeData');
13
13
  var weekday = require('dayjs/plugin/weekday');
14
14
  require('../common-e1d76791.cjs.js');
@@ -1,12 +1,12 @@
1
1
  import dayjs from 'dayjs';
2
- import { r as roleProp } from '../common-prop-types-82f3a4ed.esm.js';
3
- import { i as isValidIsoDate, a as isLikeDate, b as isLikeColor, e as ensure, m as maybe, c as ensureArray, d as mkShortId, r as registerComponentHelper } from '../utils-c32bd7ed.esm.js';
2
+ import { r as roleProp } from '../common-prop-types-758ece78.esm.js';
3
+ import { i as isValidIsoDate, a as isLikeDate, b as isLikeColor, e as ensure, m as maybe, c as ensureArray, d as mkShortId, r as registerComponentHelper } from '../utils-546b05e4.esm.js';
4
4
  import { useNormalizedData, deriveFieldConfigs } from '@plasmicapp/data-sources';
5
5
  import { parseDate } from '@plasmicpkgs/luxon-parser';
6
6
  import { Calendar, Badge } from 'antd';
7
7
  import groupBy from 'lodash/groupBy';
8
8
  import React, { useMemo } from 'react';
9
- import { g as getFieldAggregateValue } from '../formatting-6f22c9d6.esm.js';
9
+ import { g as getFieldAggregateValue } from '../formatting-b434487b.esm.js';
10
10
  import localeData from 'dayjs/plugin/localeData';
11
11
  import weekday from 'dayjs/plugin/weekday';
12
12
  import '../common-8cca2977.esm.js';
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
- var formatting = require('../formatting-939d0aa3.cjs.js');
4
- var utils = require('../utils-65c486f0.cjs.js');
3
+ var formatting = require('../formatting-c37b4133.cjs.js');
4
+ var utils = require('../utils-da451c58.cjs.js');
5
5
  var dataSources = require('@plasmicapp/data-sources');
6
6
  var antd = require('antd');
7
7
  var React = require('react');
@@ -1,5 +1,5 @@
1
- import { r as renderValue, b as buildFieldsPropType } from '../formatting-6f22c9d6.esm.js';
2
- import { d as mkShortId, r as registerComponentHelper } from '../utils-c32bd7ed.esm.js';
1
+ import { r as renderValue, b as buildFieldsPropType } from '../formatting-b434487b.esm.js';
2
+ import { d as mkShortId, r as registerComponentHelper } from '../utils-546b05e4.esm.js';
3
3
  import { useNormalizedData, deriveFieldConfigs } from '@plasmicapp/data-sources';
4
4
  import { Empty, Descriptions } from 'antd';
5
5
  import React from 'react';
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var common = require('../common-e1d76791.cjs.js');
6
- var utils = require('../utils-65c486f0.cjs.js');
6
+ var utils = require('../utils-da451c58.cjs.js');
7
7
  var icons = require('@ant-design/icons');
8
8
  var proComponents = require('@ant-design/pro-components');
9
9
  var host = require('@plasmicapp/host');
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs.js","sources":["../../src/widgets.tsx","../../src/rich-layout/RichLayout.tsx","../../src/rich-layout/index.tsx"],"sourcesContent":["import React from \"react\";\nexport const AnchorLink = React.forwardRef(function AnchorLink(\n props: React.ComponentProps<\"a\">,\n ref: React.Ref<HTMLAnchorElement>\n) {\n return <a {...props} ref={ref} />;\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 { useDataEnv, usePlasmicLink } from \"@plasmicapp/host\";\nimport { ConfigProvider, Dropdown, theme } from \"antd\";\nimport React, { ReactNode, useEffect, useRef, useState } from \"react\";\nimport { isLight, useIsClient } from \"../common\";\nimport { AnchorLink } from \"../widgets\";\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\n/**\n * Filter items by condition, and add missing paths so that any added items are visible.\n */\nfunction processNavItems(navMenuItems: NavMenuItem[]): NavMenuItem[] {\n return navMenuItems\n .filter((item) => item.condition === undefined || item.condition)\n .map((item) => ({\n ...item,\n // We fill a default path because otherwise the item doesn't appear at all.\n path: item.path || \"/\",\n routes: item.routes ? processNavItems(item.routes) : undefined,\n }));\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 logoElement?: ReactNode;\n}\n\n// width: 100% needed because parent is display: flex, which is needed for the min-height behavior.\nconst baseStyles = `\n.ant-pro-layout-bg-list {\n display: none;\n}\n.ant-pro-layout {\n display: flex;\n width: 100%;\n}\n.ant-pro-layout .ant-pro-layout-content {\n padding: 0;\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 logo,\n logoElement,\n ...layoutProps\n}: RichLayoutProps) {\n const $ctx = useDataEnv();\n const ref = useRef<HTMLDivElement>(null);\n const isClient = useIsClient();\n const [pathname, setPathname] = useState<string | undefined>(undefined);\n const [openKeys, setOpenKeys] = useState<string[]>([]);\n const [ready, setReady] = useState(false);\n useEffect(() => {\n setTimeout(() => {\n setReady(true);\n }, 500);\n\n if (typeof location !== \"undefined\") {\n setPathname(location.pathname);\n }\n }, []);\n\n useEffect(() => {\n if (!ready) {\n return;\n }\n if (!ref.current) {\n return;\n }\n // open selected submenu (only opens the last one in the list!)\n const selectedSubmenus: string[] =\n (Array.from(\n ref.current.querySelectorAll(\n \"ul > li.ant-menu-submenu.ant-menu-submenu-selected > div\"\n )\n )\n .map((el) => el.getAttribute(\"data-menu-id\")?.split(\"/\").pop())\n .filter((i) => i)\n .map((i) => `/${i}`) as string[]) || [];\n setOpenKeys(selectedSubmenus);\n }, [ready]);\n\n // The usePlasmicLink function may be undefined, if host is not up to date\n const PlasmicLink = usePlasmicLink?.() ?? AnchorLink;\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\n const layoutColorOverrides = 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 return (\n <div ref={ref} className={className} style={{ display: \"flex\" }}>\n {/* Remove the always-on fixed gradient background layer. */}\n <style>{baseStyles}</style>\n <ProLayout\n {...layoutProps}\n // This prevents setting a document title. Normally tries to set to either app title or page title (from routes meta).\n pageTitleRender={() => \"\"}\n logo={logo ?? logoElement}\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 ...layoutColorOverrides,\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: omitUndefined({\n colorMenuBackground: navBgColor,\n ...layoutColorOverrides,\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 ? processNavItems(navMenuItems) : undefined,\n }}\n location={{\n pathname,\n }}\n menu={{\n // collapsedShowGroupTitle: true,\n defaultOpenAll: false,\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) {\n return undefined;\n }\n return footerChildren;\n }}\n onMenuHeaderClick={(e) => console.log(e)}\n openKeys={openKeys}\n onOpenChange={(keys) =>\n keys === false || !ready ? [] : setOpenKeys(keys)\n }\n selectedKeys={[$ctx?.pagePath]}\n menuItemRender={(item, dom) => (\n <PlasmicLink href={item.path}>{dom}</PlasmicLink>\n )}\n headerTitleRender={(logoEl, title, _) => {\n return (\n <PlasmicLink href={rootUrl}>\n {logoEl}\n {title}\n </PlasmicLink>\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 isNested: boolean,\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 advanced: isNested,\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 condition: {\n advanced: true,\n displayName: \"Show only if\",\n type: \"exprEditor\" as any,\n },\n ...(remainingDepth === 0\n ? {}\n : {\n routes: generateNavMenuType(true, 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 hidden: (ps) => !ps.logo,\n },\n logoElement: {\n type: \"slot\",\n displayName: \"Logo\",\n defaultValue: {\n type: \"img\",\n src: \"https://static1.plasmic.app/fake-logo.svg\",\n },\n hidden: (ps) => !!ps.logo,\n },\n navMenuItems: generateNavMenuType(false, 2, \"Nav menu items\", [\n {\n path: \"/\",\n name: \"Home\",\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/skinny/rich-layout\",\n};\n\nexport function registerRichLayout(loader?: Registerable) {\n registerComponentHelper(loader, RichLayout, richLayoutMeta);\n}\n"],"names":["React","AnchorLink","__spreadProps","__spreadValues","_a","_b","useDataEnv","useRef","useIsClient","useState","useEffect","usePlasmicLink","theme","isLight","ProLayout","ConfigProvider","ProConfigProvider","Dropdown","LogoutOutlined","capitalize","registerComponentHelper"],"mappings":"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"}
1
+ {"version":3,"file":"index.cjs.js","sources":["../../src/widgets.tsx","../../src/rich-layout/RichLayout.tsx","../../src/rich-layout/index.tsx"],"sourcesContent":["import React from \"react\";\nexport const AnchorLink = React.forwardRef(function AnchorLink(\n props: React.ComponentProps<\"a\">,\n ref: React.Ref<HTMLAnchorElement>\n) {\n return <a {...props} ref={ref} />;\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 { useDataEnv, usePlasmicLink } from \"@plasmicapp/host\";\nimport { ConfigProvider, Dropdown, theme } from \"antd\";\nimport React, { ReactNode, useEffect, useRef, useState } from \"react\";\nimport { isLight, useIsClient } from \"../common\";\nimport { AnchorLink } from \"../widgets\";\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\n/**\n * Filter items by condition, and add missing paths so that any added items are visible.\n */\nfunction processNavItems(navMenuItems: NavMenuItem[]): NavMenuItem[] {\n return navMenuItems\n .filter((item) => item.condition === undefined || item.condition)\n .map((item) => ({\n ...item,\n // We fill a default path because otherwise the item doesn't appear at all.\n path: item.path || \"/\",\n routes: item.routes ? processNavItems(item.routes) : undefined,\n }));\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 logoElement?: ReactNode;\n}\n\n// width: 100% needed because parent is display: flex, which is needed for the min-height behavior.\nconst baseStyles = `\n.ant-pro-layout-bg-list {\n display: none;\n}\n.ant-pro-layout {\n display: flex;\n width: 100%;\n}\n.ant-pro-layout .ant-pro-layout-content {\n padding: 0;\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 logo,\n logoElement,\n ...layoutProps\n}: RichLayoutProps) {\n const $ctx = useDataEnv();\n const ref = useRef<HTMLDivElement>(null);\n const isClient = useIsClient();\n const [pathname, setPathname] = useState<string | undefined>(undefined);\n const [openKeys, setOpenKeys] = useState<string[]>([]);\n const [ready, setReady] = useState(false);\n useEffect(() => {\n setTimeout(() => {\n setReady(true);\n }, 500);\n\n if (typeof location !== \"undefined\") {\n setPathname(location.pathname);\n }\n }, []);\n\n useEffect(() => {\n if (!ready) {\n return;\n }\n if (!ref.current) {\n return;\n }\n // open selected submenu (only opens the last one in the list!)\n const selectedSubmenus: string[] =\n (Array.from(\n ref.current.querySelectorAll(\n \"ul > li.ant-menu-submenu.ant-menu-submenu-selected > div\"\n )\n )\n .map((el) => el.getAttribute(\"data-menu-id\")?.split(\"/\").pop())\n .filter((i) => i)\n .map((i) => `/${i}`) as string[]) || [];\n setOpenKeys(selectedSubmenus);\n }, [ready]);\n\n // The usePlasmicLink function may be undefined, if host is not up to date\n const PlasmicLink = usePlasmicLink?.() ?? AnchorLink;\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\n const layoutColorOverrides = 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 return (\n <div ref={ref} className={className} style={{ display: \"flex\" }}>\n {/* Remove the always-on fixed gradient background layer. */}\n <style>{baseStyles}</style>\n <ProLayout\n {...layoutProps}\n // This prevents setting a document title. Normally tries to set to either app title or page title (from routes meta).\n pageTitleRender={() => \"\"}\n logo={logo ?? logoElement}\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 ...layoutColorOverrides,\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: omitUndefined({\n colorMenuBackground: navBgColor,\n ...layoutColorOverrides,\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 ? processNavItems(navMenuItems) : undefined,\n }}\n location={{\n pathname,\n }}\n menu={{\n // collapsedShowGroupTitle: true,\n defaultOpenAll: false,\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) {\n return undefined;\n }\n return footerChildren;\n }}\n onMenuHeaderClick={(e) => console.log(e)}\n openKeys={openKeys}\n onOpenChange={(keys) =>\n keys === false || !ready ? [] : setOpenKeys(keys)\n }\n selectedKeys={[$ctx?.pagePath]}\n menuItemRender={(item, dom) => (\n <PlasmicLink href={item.path}>{dom}</PlasmicLink>\n )}\n headerTitleRender={(logoEl, title, _) => {\n return (\n <PlasmicLink href={rootUrl}>\n {logoEl}\n {title}\n </PlasmicLink>\n );\n }}\n >\n {children}\n </ProLayout>\n </div>\n );\n}\n","import {\n CodeComponentMeta,\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 isNested: boolean,\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 advanced: isNested,\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 condition: {\n advanced: true,\n displayName: \"Show only if\",\n type: \"exprEditor\" as any,\n },\n ...(remainingDepth === 0\n ? {}\n : {\n routes: generateNavMenuType(true, remainingDepth - 1),\n }),\n },\n },\n } as const;\n}\n\nconst richLayoutMeta: CodeComponentMeta<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 hidden: (ps) => !ps.logo,\n },\n logoElement: {\n type: \"slot\",\n displayName: \"Logo\",\n defaultValue: {\n type: \"img\",\n src: \"https://static1.plasmic.app/fake-logo.svg\",\n },\n hidden: (ps) => !!ps.logo,\n },\n navMenuItems: generateNavMenuType(false, 2, \"Nav menu items\", [\n {\n path: \"/\",\n name: \"Home\",\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/skinny/rich-layout\",\n};\n\nexport function registerRichLayout(loader?: Registerable) {\n registerComponentHelper(loader, RichLayout, richLayoutMeta);\n}\n"],"names":["React","AnchorLink","__spreadProps","__spreadValues","_a","_b","useDataEnv","useRef","useIsClient","useState","useEffect","usePlasmicLink","theme","isLight","ProLayout","ConfigProvider","ProConfigProvider","Dropdown","LogoutOutlined","capitalize","registerComponentHelper"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { u as useIsClient, i as isLight, c as capitalize } from '../common-8cca2977.esm.js';
2
- import { r as registerComponentHelper } from '../utils-c32bd7ed.esm.js';
2
+ import { r as registerComponentHelper } from '../utils-546b05e4.esm.js';
3
3
  import { LogoutOutlined } from '@ant-design/icons';
4
4
  import { ProLayout, ProConfigProvider } from '@ant-design/pro-components';
5
5
  import { useDataEnv, usePlasmicLink } from '@plasmicapp/host';
@@ -1 +1 @@
1
- {"version":3,"file":"index.esm.js","sources":["../../src/widgets.tsx","../../src/rich-layout/RichLayout.tsx","../../src/rich-layout/index.tsx"],"sourcesContent":["import React from \"react\";\nexport const AnchorLink = React.forwardRef(function AnchorLink(\n props: React.ComponentProps<\"a\">,\n ref: React.Ref<HTMLAnchorElement>\n) {\n return <a {...props} ref={ref} />;\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 { useDataEnv, usePlasmicLink } from \"@plasmicapp/host\";\nimport { ConfigProvider, Dropdown, theme } from \"antd\";\nimport React, { ReactNode, useEffect, useRef, useState } from \"react\";\nimport { isLight, useIsClient } from \"../common\";\nimport { AnchorLink } from \"../widgets\";\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\n/**\n * Filter items by condition, and add missing paths so that any added items are visible.\n */\nfunction processNavItems(navMenuItems: NavMenuItem[]): NavMenuItem[] {\n return navMenuItems\n .filter((item) => item.condition === undefined || item.condition)\n .map((item) => ({\n ...item,\n // We fill a default path because otherwise the item doesn't appear at all.\n path: item.path || \"/\",\n routes: item.routes ? processNavItems(item.routes) : undefined,\n }));\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 logoElement?: ReactNode;\n}\n\n// width: 100% needed because parent is display: flex, which is needed for the min-height behavior.\nconst baseStyles = `\n.ant-pro-layout-bg-list {\n display: none;\n}\n.ant-pro-layout {\n display: flex;\n width: 100%;\n}\n.ant-pro-layout .ant-pro-layout-content {\n padding: 0;\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 logo,\n logoElement,\n ...layoutProps\n}: RichLayoutProps) {\n const $ctx = useDataEnv();\n const ref = useRef<HTMLDivElement>(null);\n const isClient = useIsClient();\n const [pathname, setPathname] = useState<string | undefined>(undefined);\n const [openKeys, setOpenKeys] = useState<string[]>([]);\n const [ready, setReady] = useState(false);\n useEffect(() => {\n setTimeout(() => {\n setReady(true);\n }, 500);\n\n if (typeof location !== \"undefined\") {\n setPathname(location.pathname);\n }\n }, []);\n\n useEffect(() => {\n if (!ready) {\n return;\n }\n if (!ref.current) {\n return;\n }\n // open selected submenu (only opens the last one in the list!)\n const selectedSubmenus: string[] =\n (Array.from(\n ref.current.querySelectorAll(\n \"ul > li.ant-menu-submenu.ant-menu-submenu-selected > div\"\n )\n )\n .map((el) => el.getAttribute(\"data-menu-id\")?.split(\"/\").pop())\n .filter((i) => i)\n .map((i) => `/${i}`) as string[]) || [];\n setOpenKeys(selectedSubmenus);\n }, [ready]);\n\n // The usePlasmicLink function may be undefined, if host is not up to date\n const PlasmicLink = usePlasmicLink?.() ?? AnchorLink;\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\n const layoutColorOverrides = 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 return (\n <div ref={ref} className={className} style={{ display: \"flex\" }}>\n {/* Remove the always-on fixed gradient background layer. */}\n <style>{baseStyles}</style>\n <ProLayout\n {...layoutProps}\n // This prevents setting a document title. Normally tries to set to either app title or page title (from routes meta).\n pageTitleRender={() => \"\"}\n logo={logo ?? logoElement}\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 ...layoutColorOverrides,\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: omitUndefined({\n colorMenuBackground: navBgColor,\n ...layoutColorOverrides,\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 ? processNavItems(navMenuItems) : undefined,\n }}\n location={{\n pathname,\n }}\n menu={{\n // collapsedShowGroupTitle: true,\n defaultOpenAll: false,\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) {\n return undefined;\n }\n return footerChildren;\n }}\n onMenuHeaderClick={(e) => console.log(e)}\n openKeys={openKeys}\n onOpenChange={(keys) =>\n keys === false || !ready ? [] : setOpenKeys(keys)\n }\n selectedKeys={[$ctx?.pagePath]}\n menuItemRender={(item, dom) => (\n <PlasmicLink href={item.path}>{dom}</PlasmicLink>\n )}\n headerTitleRender={(logoEl, title, _) => {\n return (\n <PlasmicLink href={rootUrl}>\n {logoEl}\n {title}\n </PlasmicLink>\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 isNested: boolean,\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 advanced: isNested,\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 condition: {\n advanced: true,\n displayName: \"Show only if\",\n type: \"exprEditor\" as any,\n },\n ...(remainingDepth === 0\n ? {}\n : {\n routes: generateNavMenuType(true, 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 hidden: (ps) => !ps.logo,\n },\n logoElement: {\n type: \"slot\",\n displayName: \"Logo\",\n defaultValue: {\n type: \"img\",\n src: \"https://static1.plasmic.app/fake-logo.svg\",\n },\n hidden: (ps) => !!ps.logo,\n },\n navMenuItems: generateNavMenuType(false, 2, \"Nav menu items\", [\n {\n path: \"/\",\n name: \"Home\",\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/skinny/rich-layout\",\n};\n\nexport function registerRichLayout(loader?: Registerable) {\n registerComponentHelper(loader, RichLayout, richLayoutMeta);\n}\n"],"names":["AnchorLink","__spreadProps","__spreadValues","_a","_b"],"mappings":"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"}
1
+ {"version":3,"file":"index.esm.js","sources":["../../src/widgets.tsx","../../src/rich-layout/RichLayout.tsx","../../src/rich-layout/index.tsx"],"sourcesContent":["import React from \"react\";\nexport const AnchorLink = React.forwardRef(function AnchorLink(\n props: React.ComponentProps<\"a\">,\n ref: React.Ref<HTMLAnchorElement>\n) {\n return <a {...props} ref={ref} />;\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 { useDataEnv, usePlasmicLink } from \"@plasmicapp/host\";\nimport { ConfigProvider, Dropdown, theme } from \"antd\";\nimport React, { ReactNode, useEffect, useRef, useState } from \"react\";\nimport { isLight, useIsClient } from \"../common\";\nimport { AnchorLink } from \"../widgets\";\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\n/**\n * Filter items by condition, and add missing paths so that any added items are visible.\n */\nfunction processNavItems(navMenuItems: NavMenuItem[]): NavMenuItem[] {\n return navMenuItems\n .filter((item) => item.condition === undefined || item.condition)\n .map((item) => ({\n ...item,\n // We fill a default path because otherwise the item doesn't appear at all.\n path: item.path || \"/\",\n routes: item.routes ? processNavItems(item.routes) : undefined,\n }));\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 logoElement?: ReactNode;\n}\n\n// width: 100% needed because parent is display: flex, which is needed for the min-height behavior.\nconst baseStyles = `\n.ant-pro-layout-bg-list {\n display: none;\n}\n.ant-pro-layout {\n display: flex;\n width: 100%;\n}\n.ant-pro-layout .ant-pro-layout-content {\n padding: 0;\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 logo,\n logoElement,\n ...layoutProps\n}: RichLayoutProps) {\n const $ctx = useDataEnv();\n const ref = useRef<HTMLDivElement>(null);\n const isClient = useIsClient();\n const [pathname, setPathname] = useState<string | undefined>(undefined);\n const [openKeys, setOpenKeys] = useState<string[]>([]);\n const [ready, setReady] = useState(false);\n useEffect(() => {\n setTimeout(() => {\n setReady(true);\n }, 500);\n\n if (typeof location !== \"undefined\") {\n setPathname(location.pathname);\n }\n }, []);\n\n useEffect(() => {\n if (!ready) {\n return;\n }\n if (!ref.current) {\n return;\n }\n // open selected submenu (only opens the last one in the list!)\n const selectedSubmenus: string[] =\n (Array.from(\n ref.current.querySelectorAll(\n \"ul > li.ant-menu-submenu.ant-menu-submenu-selected > div\"\n )\n )\n .map((el) => el.getAttribute(\"data-menu-id\")?.split(\"/\").pop())\n .filter((i) => i)\n .map((i) => `/${i}`) as string[]) || [];\n setOpenKeys(selectedSubmenus);\n }, [ready]);\n\n // The usePlasmicLink function may be undefined, if host is not up to date\n const PlasmicLink = usePlasmicLink?.() ?? AnchorLink;\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\n const layoutColorOverrides = 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 return (\n <div ref={ref} className={className} style={{ display: \"flex\" }}>\n {/* Remove the always-on fixed gradient background layer. */}\n <style>{baseStyles}</style>\n <ProLayout\n {...layoutProps}\n // This prevents setting a document title. Normally tries to set to either app title or page title (from routes meta).\n pageTitleRender={() => \"\"}\n logo={logo ?? logoElement}\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 ...layoutColorOverrides,\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: omitUndefined({\n colorMenuBackground: navBgColor,\n ...layoutColorOverrides,\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 ? processNavItems(navMenuItems) : undefined,\n }}\n location={{\n pathname,\n }}\n menu={{\n // collapsedShowGroupTitle: true,\n defaultOpenAll: false,\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) {\n return undefined;\n }\n return footerChildren;\n }}\n onMenuHeaderClick={(e) => console.log(e)}\n openKeys={openKeys}\n onOpenChange={(keys) =>\n keys === false || !ready ? [] : setOpenKeys(keys)\n }\n selectedKeys={[$ctx?.pagePath]}\n menuItemRender={(item, dom) => (\n <PlasmicLink href={item.path}>{dom}</PlasmicLink>\n )}\n headerTitleRender={(logoEl, title, _) => {\n return (\n <PlasmicLink href={rootUrl}>\n {logoEl}\n {title}\n </PlasmicLink>\n );\n }}\n >\n {children}\n </ProLayout>\n </div>\n );\n}\n","import {\n CodeComponentMeta,\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 isNested: boolean,\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 advanced: isNested,\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 condition: {\n advanced: true,\n displayName: \"Show only if\",\n type: \"exprEditor\" as any,\n },\n ...(remainingDepth === 0\n ? {}\n : {\n routes: generateNavMenuType(true, remainingDepth - 1),\n }),\n },\n },\n } as const;\n}\n\nconst richLayoutMeta: CodeComponentMeta<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 hidden: (ps) => !ps.logo,\n },\n logoElement: {\n type: \"slot\",\n displayName: \"Logo\",\n defaultValue: {\n type: \"img\",\n src: \"https://static1.plasmic.app/fake-logo.svg\",\n },\n hidden: (ps) => !!ps.logo,\n },\n navMenuItems: generateNavMenuType(false, 2, \"Nav menu items\", [\n {\n path: \"/\",\n name: \"Home\",\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/skinny/rich-layout\",\n};\n\nexport function registerRichLayout(loader?: Registerable) {\n registerComponentHelper(loader, RichLayout, richLayoutMeta);\n}\n"],"names":["AnchorLink","__spreadProps","__spreadValues","_a","_b"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACO,MAAM,aAAa,KAAM,CAAA,UAAA,CAAW,SAASA,WAAAA,CAClD,OACA,GACA,EAAA;AACA,EAAA,uBAAQ,KAAA,CAAA,aAAA,CAAA,GAAA,EAAAC,eAAA,CAAAC,gBAAA,CAAA,EAAA,EAAM,KAAN,CAAA,EAAA,EAAa,GAAU,EAAA,CAAA,CAAA,CAAA;AACjC,CAAC,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACGD,SAAS,cAAc,CAAW,EAAA;AAChC,EAAA,OAAO,MAAO,CAAA,WAAA;AAAA,IACZ,MAAA,CAAO,OAAQ,CAAA,CAAC,CAAE,CAAA,MAAA,CAAO,CAAC,CAAC,EAAI,EAAA,CAAC,CAAM,KAAA,CAAA,KAAM,KAAS,CAAA,CAAA;AAAA,GACvD,CAAA;AACF,CAAA;AAcA,SAAS,gBAAgB,YAA4C,EAAA;AACnE,EAAA,OAAO,YACJ,CAAA,MAAA,CAAO,CAAC,IAAA,KAAS,KAAK,SAAc,KAAA,KAAA,CAAA,IAAa,IAAK,CAAA,SAAS,CAC/D,CAAA,GAAA,CAAI,CAAC,IAAA,KAAU,mCACX,IADW,CAAA,EAAA;AAAA;AAAA,IAGd,IAAA,EAAM,KAAK,IAAQ,IAAA,GAAA;AAAA,IACnB,QAAQ,IAAK,CAAA,MAAA,GAAS,eAAgB,CAAA,IAAA,CAAK,MAAM,CAAI,GAAA,KAAA,CAAA;AAAA,GACrD,CAAA,CAAA,CAAA;AACN,CAAA;AAeA,MAAM,UAAa,GAAA,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,CAAA,CAAA;AAaZ,SAAS,WAAW,EAcP,EAAA;AAdO,EACzB,IAAA,EAAA,GAAA,EAAA,EAAA;AAAA,IAAA,QAAA;AAAA,IACA,YAAA;AAAA,IACA,OAAU,GAAA,GAAA;AAAA,IACV,eAAA;AAAA,IACA,cAAA;AAAA,IACA,WAAA;AAAA,IACA,WAAA;AAAA,IACA,cAAA;AAAA,IACA,SAAA;AAAA,IACA,cAAA;AAAA,IACA,IAAA;AAAA,IACA,WAAA;AAAA,GA5EF,GAgE2B,EAatB,EAAA,WAAA,GAAA,SAAA,CAbsB,EAatB,EAAA;AAAA,IAZH,UAAA;AAAA,IACA,cAAA;AAAA,IACA,SAAA;AAAA,IACA,iBAAA;AAAA,IACA,gBAAA;AAAA,IACA,aAAA;AAAA,IACA,aAAA;AAAA,IACA,gBAAA;AAAA,IACA,WAAA;AAAA,IACA,gBAAA;AAAA,IACA,MAAA;AAAA,IACA,aAAA;AAAA,GAAA,CAAA,CAAA;AA5EF,EAAA,IAAAC,KAAAC,GAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,CAAA;AA+EE,EAAA,MAAM,OAAO,UAAW,EAAA,CAAA;AACxB,EAAM,MAAA,GAAA,GAAM,OAAuB,IAAI,CAAA,CAAA;AACvC,EAAA,MAAM,WAAW,WAAY,EAAA,CAAA;AAC7B,EAAA,MAAM,CAAC,QAAA,EAAU,WAAW,CAAA,GAAI,SAA6B,KAAS,CAAA,CAAA,CAAA;AACtE,EAAA,MAAM,CAAC,QAAU,EAAA,WAAW,CAAI,GAAA,QAAA,CAAmB,EAAE,CAAA,CAAA;AACrD,EAAA,MAAM,CAAC,KAAA,EAAO,QAAQ,CAAA,GAAI,SAAS,KAAK,CAAA,CAAA;AACxC,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,UAAA,CAAW,MAAM;AACf,MAAA,QAAA,CAAS,IAAI,CAAA,CAAA;AAAA,OACZ,GAAG,CAAA,CAAA;AAEN,IAAI,IAAA,OAAO,aAAa,WAAa,EAAA;AACnC,MAAA,WAAA,CAAY,SAAS,QAAQ,CAAA,CAAA;AAAA,KAC/B;AAAA,GACF,EAAG,EAAE,CAAA,CAAA;AAEL,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,IAAI,CAAC,KAAO,EAAA;AACV,MAAA,OAAA;AAAA,KACF;AACA,IAAI,IAAA,CAAC,IAAI,OAAS,EAAA;AAChB,MAAA,OAAA;AAAA,KACF;AAEA,IAAA,MAAM,mBACH,KAAM,CAAA,IAAA;AAAA,MACL,IAAI,OAAQ,CAAA,gBAAA;AAAA,QACV,0DAAA;AAAA,OACF;AAAA,KACF,CACG,GAAI,CAAA,CAAC,EAAI,KAAA;AA7GlB,MAAAD,IAAAA,GAAAA,CAAAA;AA6GqB,MAAAA,OAAAA,CAAAA,GAAAA,GAAA,GAAG,YAAa,CAAA,cAAc,MAA9B,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,GAAAA,CAAiC,MAAM,GAAK,CAAA,CAAA,GAAA,EAAA,CAAA;AAAA,KAAK,CAC7D,CAAA,MAAA,CAAO,CAAC,CAAA,KAAM,CAAC,CAAA,CACf,GAAI,CAAA,CAAC,CAAM,KAAA,CAAA,CAAA,EAAI,CAAG,CAAA,CAAA,CAAA,IAAkB,EAAC,CAAA;AAC1C,IAAA,WAAA,CAAY,gBAAgB,CAAA,CAAA;AAAA,GAC9B,EAAG,CAAC,KAAK,CAAC,CAAA,CAAA;AAGV,EAAA,MAAM,eAAcC,GAAAD,GAAAA,CAAAA,GAAAA,GAAA,cAAAA,KAAAA,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,GAAAA,EAAAA,KAAA,OAAAC,GAAsB,GAAA,UAAA,CAAA;AAC1C,EAAA,MAAM,EAAE,KAAA,EAAU,GAAA,KAAA,CAAM,QAAS,EAAA,CAAA;AACjC,EAAA,MAAM,gBAAgB,KAAM,CAAA,aAAA,CAAA;AAC5B,EAAA,SAAS,aAAwB,GAAA;AAvHnC,IAAA,IAAAD,GAAAC,EAAAA,GAAAA,CAAAA;AAwHI,IAAA,MAAM,MAASD,GAAAA,CAAAA,GAAAA,GAAA,cAAgB,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,cAAA,CAAA,MAAA,KAAhB,OAAAA,GAA0B,GAAA,SAAA,CAAA;AACzC,IAAA,QAAQ,MAAQ;AAAA,MACd,KAAK,SAAA;AACH,QAAA,OAAO,KAAM,CAAA,YAAA,CAAA;AAAA,MACf,KAAK,MAAA;AAEH,QAAO,OAAA,SAAA,CAAA;AAAA,MACT,KAAK,QAAA;AACH,QAAA,OAAA,CAAOC,GAAA,GAAA,cAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,cAAA,CAAgB,aAAhB,KAAA,IAAA,GAAAA,MAAiC,KAAM,CAAA,WAAA,CAAA;AAAA,MAChD,KAAK,OAAA;AAGH,QAAO,OAAA,MAAA,CAAA;AAAA,MACT,KAAK,SAAA;AACH,QAAA,OAAO,MAAM,WAAe,IAAA,MAAA,CAAA;AAAA,KAChC;AAAA,GACF;AACA,EAAA,MAAM,aAAa,aAAc,EAAA,CAAA;AAIjC,EAAM,MAAA,YAAA,GAAe,QAAQ,UAAU,CAAA,CAAA;AACvC,EAAM,MAAA,eAAA,GAAkB,QAAQ,aAAa,CAAA,CAAA;AAE7C,EAAM,MAAA,YAAA,GAAe,YAAiB,KAAA,eAAA,GAAkB,KAAY,CAAA,GAAA,EAAA,CAAA;AACpE,EAAA,IAAI,CAAC,QAAU,EAAA;AACb,IAAO,OAAA,IAAA,CAAA;AAAA,GACT;AAEA,EAAM,MAAA,oBAAA,GAAuB,eACzB,KACA,CAAA,GAAA;AAAA,IACE,sBAAwB,EAAA,UAAA;AAAA,IACxB,6BAA+B,EAAA,wBAAA;AAAA,IAC/B,wBAA0B,EAAA,wBAAA;AAAA,IAC1B,mBAAqB,EAAA,UAAA;AAAA,IACrB,6BAA+B,EAAA,kBAAA;AAAA,IAC/B,gCAAkC,EAAA,kBAAA;AAAA,IAClC,gCAAkC,EAAA,kBAAA;AAAA,IAClC,oBAAsB,EAAA,wBAAA;AAAA,IACtB,oBAAsB,EAAA,kBAAA;AAAA,IACtB,uBAAyB,EAAA,kBAAA;AAAA,IACzB,qBAAuB,EAAA,MAAA;AAAA,IACvB,sBAAwB,EAAA,wBAAA;AAAA,IACxB,aAAe,EAAA,wBAAA;AAAA,IACf,sBAAwB,EAAA,wBAAA;AAAA,IACxB,kBAAoB,EAAA,wBAAA;AAAA,IACpB,mBAAqB,EAAA,wBAAA;AAAA,IACrB,wBAA0B,EAAA,MAAA;AAAA,GAC5B,CAAA;AACJ,EAAA,uBACG,KAAA,CAAA,aAAA,CAAA,KAAA,EAAA,EAAI,GAAU,EAAA,SAAA,EAAsB,KAAO,EAAA,EAAE,OAAS,EAAA,MAAA,EAErD,EAAA,kBAAA,KAAA,CAAA,aAAA,CAAC,OAAO,EAAA,IAAA,EAAA,UAAW,CACnB,kBAAA,KAAA,CAAA,aAAA;AAAA,IAAC,SAAA;AAAA,IAAA,aAAA,CAAAF,gBAAA,CAAA,EAAA,EACK,WADL,CAAA,EAAA;AAAA,MAGC,iBAAiB,MAAM,EAAA;AAAA,MACvB,MAAM,IAAQ,IAAA,IAAA,GAAA,IAAA,GAAA,WAAA;AAAA,MAed,YAAA,EAAc,CAAC,MAAA,EAAQ,UACrB,qBAAA,KAAA,CAAA,aAAA;AAAA,QAAC,cAAA;AAAA,QAAA;AAAA,UACC,KAAA,EAAO,EAAE,KAAO,EAAA,aAAA,CAAc,EAAE,aAAe,EAAA,YAAA,EAAc,CAAE,EAAA;AAAA,SAAA;AAAA,wBAE9D,KAAA,CAAA,aAAA,CAAA,iBAAA,EAAA,EAAkB,IAAM,EAAA,CAAC,gBACvB,UACH,CAAA;AAAA,OACF;AAAA,MAEF,KAAO,EAAA;AAAA,QACL,QAAQ,aAAc,CAAAA,gBAAA,CAAA;AAAA,UACpB,aAAe,EAAA,UAAA;AAAA,SAAA,EACZ,oBACJ,CAAA,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAOD,OAAO,aAAc,CAAAA,gBAAA,CAAA;AAAA,UACnB,mBAAqB,EAAA,UAAA;AAAA,SAAA,EAClB,oBACJ,CAAA,CAAA;AAAA,OACH;AAAA,MAEA,MAAA,EAAA,CAAQ,EAAY,GAAA,WAAA,CAAA,MAAA,KAAZ,IAAsB,GAAA,EAAA,GAAA,KAAA;AAAA,MAC9B,WAAA,EAAA,CAAa,EAAY,GAAA,WAAA,CAAA,WAAA,KAAZ,IAA2B,GAAA,EAAA,GAAA,KAAA;AAAA,MACxC,WAAA;AAAA;AAAA,QAEE,YAAY,MAAW,KAAA,KAAA,GACnB,KACA,CAAA,GAAA,CAAA,EAAA,GAAA,WAAA,CAAY,gBAAZ,IAA2B,GAAA,EAAA,GAAA,KAAA;AAAA,OAAA;AAAA,MAGjC,UAAA,EAAY,YAAY,MAAW,KAAA,KAAA;AAAA,MACnC,KAAO,EAAA;AAAA,QACL,IAAM,EAAA,OAAA;AAAA,QACN,MAAQ,EAAA,YAAA,GAAe,eAAgB,CAAA,YAAY,CAAI,GAAA,KAAA,CAAA;AAAA,OACzD;AAAA,MACA,QAAU,EAAA;AAAA,QACR,QAAA;AAAA,OACF;AAAA,MACA,IAAM,EAAA;AAAA;AAAA,QAEJ,cAAgB,EAAA,KAAA;AAAA;AAAA,OAElB;AAAA,MACA,aACE,cACI,GAAA;AAAA,QACE,GAAK,EAAA,WAAA;AAAA,QACL,IAAM,EAAA,OAAA;AAAA,QACN,KAAO,EAAA,WAAA;AAAA,QACP,MAAA,EAAQ,CAAC,MAAA,EAAQ,GAAQ,KAAA;AACvB,UACE,uBAAA,KAAA,CAAA,aAAA;AAAA,YAAC,QAAA;AAAA,YAAA;AAAA,cACC,IAAM,EAAA;AAAA,gBACJ,KAAO,EAAA;AAAA,kBACL;AAAA,oBACE,GAAK,EAAA,QAAA;AAAA,oBACL,IAAA,sCAAO,cAAe,EAAA,IAAA,CAAA;AAAA,oBACtB,KAAO,EAAA,UAAA;AAAA,mBACT;AAAA,iBACF;AAAA,eACF;AAAA,aAAA;AAAA,YAEC,GAAA;AAAA,WACH,CAAA;AAAA,SAEJ;AAAA,OAEF,GAAA,KAAA,CAAA;AAAA,MAEN,aAAA,EAAe,CAAC,MAAW,KAAA;AACzB,QAAA,OAAO,CAAC,eAAe,CAAA,CAAA;AAAA,OACzB;AAAA,MACA,gBAAA,EAAkB,CAAC,KAAU,KAAA;AAC3B,QAAA,IAAI,+BAAO,SAAW,EAAA;AACpB,UAAO,OAAA,KAAA,CAAA,CAAA;AAAA,SACT;AACA,QAAO,OAAA,cAAA,CAAA;AAAA,OACT;AAAA,MACA,iBAAmB,EAAA,CAAC,CAAM,KAAA,OAAA,CAAQ,IAAI,CAAC,CAAA;AAAA,MACvC,QAAA;AAAA,MACA,YAAA,EAAc,CAAC,IAAA,KACb,IAAS,KAAA,KAAA,IAAS,CAAC,KAAQ,GAAA,EAAK,GAAA,WAAA,CAAY,IAAI,CAAA;AAAA,MAElD,YAAA,EAAc,CAAC,IAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,IAAA,CAAM,QAAQ,CAAA;AAAA,MAC7B,cAAA,EAAgB,CAAC,IAAM,EAAA,GAAA,yCACpB,WAAY,EAAA,EAAA,IAAA,EAAM,IAAK,CAAA,IAAA,EAAA,EAAO,GAAI,CAAA;AAAA,MAErC,iBAAmB,EAAA,CAAC,MAAQ,EAAA,KAAA,EAAO,CAAM,KAAA;AACvC,QAAA,uBACG,KAAA,CAAA,aAAA,CAAA,WAAA,EAAA,EAAY,IAAM,EAAA,OAAA,EAAA,EAChB,QACA,KACH,CAAA,CAAA;AAAA,OAEJ;AAAA,KAAA,CAAA;AAAA,IAEC,QAAA;AAAA,GAEL,CAAA,CAAA;AAEJ;;;;;;;;;;;;;;;;;;AC/RA,SAAS,mBACP,CAAA,QAAA,EACA,cACA,EAAA,WAAA,EACA,YAC4B,EAAA;AAC5B,EAAO,OAAA;AAAA,IACL,WAAA,EAAa,cAAc,WAAc,GAAA,cAAA;AAAA,IACzC,IAAM,EAAA,OAAA;AAAA,IACN,YAAA;AAAA,IACA,QAAU,EAAA,QAAA;AAAA,IACV,QAAU,EAAA;AAAA,MACR,IAAM,EAAA,QAAA;AAAA,MACN,UAAU,CAAC,IAAA,KACT,KAAK,IAAS,KAAA,CAAC,cAAc,qBAAwB,GAAA,cAAA,CAAA;AAAA,MACvD,MAAQ,EAAA,cAAA,CAAA;AAAA,QACN,IAAM,EAAA,MAAA;AAAA,QACN,IAAM,EAAA,QAAA;AAAA,QACN,SAAW,EAAA;AAAA,UACT,QAAU,EAAA,IAAA;AAAA,UACV,WAAa,EAAA,cAAA;AAAA,UACb,IAAM,EAAA,YAAA;AAAA,SACR;AAAA,OACI,EAAA,cAAA,KAAmB,CACnB,GAAA,EACA,GAAA;AAAA,QACE,MAAQ,EAAA,mBAAA,CAAoB,IAAM,EAAA,cAAA,GAAiB,CAAC,CAAA;AAAA,OACtD,CAAA;AAAA,KAER;AAAA,GACF,CAAA;AACF,CAAA;AAEA,MAAM,cAAqD,GAAA;AAAA,EACzD,IAAM,EAAA,sBAAA;AAAA,EACN,WAAa,EAAA,iBAAA;AAAA,EACb,KAAO,EAAA;AAAA,IACL,QAAU,EAAA;AAAA,MACR,IAAM,EAAA,MAAA;AAAA,MACN,2BAA6B,EAAA,IAAA;AAAA,KAC/B;AAAA,IACA,eAAiB,EAAA;AAAA,MACf,IAAM,EAAA,MAAA;AAAA,MACN,eAAiB,EAAA,IAAA;AAAA,KACnB;AAAA,IACA,KAAO,EAAA;AAAA,MACL,WAAa,EAAA,OAAA;AAAA,MACb,IAAM,EAAA,QAAA;AAAA,MACN,YAAc,EAAA,WAAA;AAAA,KAChB;AAAA,IACA,IAAM,EAAA;AAAA,MACJ,WAAa,EAAA,MAAA;AAAA,MACb,IAAM,EAAA,UAAA;AAAA,MACN,MAAQ,EAAA,CAAC,EAAO,KAAA,CAAC,EAAG,CAAA,IAAA;AAAA,KACtB;AAAA,IACA,WAAa,EAAA;AAAA,MACX,IAAM,EAAA,MAAA;AAAA,MACN,WAAa,EAAA,MAAA;AAAA,MACb,YAAc,EAAA;AAAA,QACZ,IAAM,EAAA,KAAA;AAAA,QACN,GAAK,EAAA,2CAAA;AAAA,OACP;AAAA,MACA,MAAQ,EAAA,CAAC,EAAO,KAAA,CAAC,CAAC,EAAG,CAAA,IAAA;AAAA,KACvB;AAAA,IACA,YAAc,EAAA,mBAAA,CAAoB,KAAO,EAAA,CAAA,EAAG,gBAAkB,EAAA;AAAA,MAC5D;AAAA,QACE,IAAM,EAAA,GAAA;AAAA,QACN,IAAM,EAAA,MAAA;AAAA,OACR;AAAA,KACD,CAAA;AAAA,IAED,MAAQ,EAAA;AAAA,MACN,WAAa,EAAA,QAAA;AAAA,MACb,IAAM,EAAA,QAAA;AAAA,MACN,OAAA,EAAS,CAAC,MAAQ,EAAA,KAAA,EAAO,KAAK,CAAE,CAAA,GAAA,CAAI,CAAC,KAAW,MAAA;AAAA,QAC9C,KAAA;AAAA,QACA,KAAA,EAAO,WAAW,KAAK,CAAA;AAAA,OACvB,CAAA,CAAA;AAAA,MACF,gBAAkB,EAAA,KAAA;AAAA,KACpB;AAAA,IAEA,cAAgB,EAAA;AAAA,MACd,WAAa,EAAA,OAAA;AAAA,MACb,IAAM,EAAA,QAAA;AAAA,MACN,MAAQ,EAAA;AAAA,QACN,MAAQ,EAAA;AAAA,UACN,IAAM,EAAA,QAAA;AAAA,UACN,SAAS,CAAC,SAAA,EAAW,WAAW,OAAS,EAAA,MAAA,EAAQ,QAAQ,CAAE,CAAA,GAAA;AAAA,YACzD,CAAC,CAAO,MAAA;AAAA,cACN,KAAA,EAAO,WAAW,CAAC,CAAA;AAAA,cACnB,KAAO,EAAA,CAAA;AAAA,aACT,CAAA;AAAA,WACF;AAAA,UACA,gBAAkB,EAAA,SAAA;AAAA,SACpB;AAAA,QACA,aAAe,EAAA;AAAA,UACb,IAAM,EAAA,OAAA;AAAA,UACN,WAAa,EAAA,cAAA;AAAA,UACb,MAAA,EAAQ,CAAC,KAAO,KAAA;AA7G1B,YAAA,IAAA,EAAA,CAAA;AA6G6B,YAAE,OAAA,EAAA,CAAA,CAAA,EAAA,GAAA,KAAA,CAAM,cAAN,KAAA,IAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAsB,MAAW,MAAA,QAAA,CAAA,CAAA;AAAA,WAAA;AAAA,UACtD,YAAc,EAAA,SAAA;AAAA,SAChB;AAAA,OACF;AAAA,KACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAoBA,WAAa,EAAA;AAAA,MACX,WAAa,EAAA,eAAA;AAAA,MACb,IAAM,EAAA,SAAA;AAAA,MACN,MAAA,EAAQ,CAAC,EAAI,KAAA;AAxInB,QAAA,IAAA,EAAA,CAAA;AAwIuB,QAAG,OAAA,CAAA,CAAA,EAAA,GAAA,EAAA,CAAA,MAAA,KAAH,YAAa,KAAW,MAAA,KAAA,CAAA;AAAA,OAAA;AAAA,MACzC,gBAAkB,EAAA,KAAA;AAAA,KACpB;AAAA,IACA,WAAa,EAAA;AAAA,MACX,WAAa,EAAA,gBAAA;AAAA,MACb,IAAM,EAAA,SAAA;AAAA,MACN,MAAA,EAAQ,CAAC,EAAI,KAAA;AA9InB,QAAA,IAAA,EAAA,CAAA;AA8IuB,QAAG,OAAA,CAAA,CAAA,EAAA,GAAA,EAAA,CAAA,MAAA,KAAH,YAAa,KAAW,MAAA,MAAA,CAAA;AAAA,OAAA;AAAA,MACzC,gBAAkB,EAAA,KAAA;AAAA,KACpB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAmBA,IAAM,EAAA;AAAA,MACJ,WAAa,EAAA,MAAA;AAAA,MACb,IAAM,EAAA,QAAA;AAAA,MACN,MAAQ,EAAA;AAAA,QACN,cAAgB,EAAA;AAAA,UACd,WAAa,EAAA,kBAAA;AAAA,UACb,IAAM,EAAA,SAAA;AAAA,SACR;AAAA,QACA,qBAAuB,EAAA;AAAA;AAAA,UAErB,IAAM,EAAA,SAAA;AAAA,SACR;AAAA,OACF;AAAA,KACF;AAAA,GACF;AAAA,EAEA,aAAe,EAAA;AAAA,IACb,KAAO,EAAA,YAAA;AAAA,IACP,MAAQ,EAAA,SAAA;AAAA,IACR,SAAW,EAAA,OAAA;AAAA,GACb;AAAA,EAEA,UAAY,EAAA,YAAA;AAAA,EACZ,UAAY,EAAA,yDAAA;AACd,CAAA,CAAA;AAEO,SAAS,mBAAmB,MAAuB,EAAA;AACxD,EAAwB,uBAAA,CAAA,MAAA,EAAQ,YAAY,cAAc,CAAA,CAAA;AAC5D;;;;"}