@plasmicpkgs/plasmic-rich-components 1.0.178 → 1.0.180
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/.tsbuildinfo +1 -1
- package/dist/field-mappings.d.ts +2 -2
- package/dist/index.js +11 -3
- package/dist/index.js.map +1 -1
- package/dist/plasmic-rich-components.esm.js +11 -3
- package/dist/plasmic-rich-components.esm.js.map +1 -1
- package/package.json +3 -3
- package/skinny/{common-prop-types-5f1fd4b0.cjs.js → common-prop-types-193ce561.cjs.js} +2 -2
- package/skinny/{common-prop-types-5f1fd4b0.cjs.js.map → common-prop-types-193ce561.cjs.js.map} +1 -1
- package/skinny/{common-prop-types-686c49fe.esm.js → common-prop-types-988c65db.esm.js} +2 -2
- package/skinny/{common-prop-types-686c49fe.esm.js.map → common-prop-types-988c65db.esm.js.map} +1 -1
- package/skinny/field-mappings.d.ts +2 -2
- package/skinny/{formatting-aff39488.esm.js → formatting-0acc57f5.esm.js} +2 -2
- package/skinny/{formatting-aff39488.esm.js.map → formatting-0acc57f5.esm.js.map} +1 -1
- package/skinny/{formatting-327e0658.cjs.js → formatting-6dc71cdd.cjs.js} +2 -2
- package/skinny/{formatting-327e0658.cjs.js.map → formatting-6dc71cdd.cjs.js.map} +1 -1
- package/skinny/rich-calendar/index.cjs.js +2 -2
- package/skinny/rich-calendar/index.esm.js +2 -2
- package/skinny/rich-details/index.cjs.js +1 -1
- package/skinny/rich-details/index.esm.js +1 -1
- package/skinny/rich-list/index.cjs.js +2 -2
- package/skinny/rich-list/index.esm.js +2 -2
- package/skinny/rich-table/index.cjs.js +12 -4
- package/skinny/rich-table/index.cjs.js.map +1 -1
- package/skinny/rich-table/index.esm.js +12 -4
- package/skinny/rich-table/index.esm.js.map +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"formatting-327e0658.cjs.js","sources":["../src/field-mappings.tsx","../src/formatting.tsx"],"sourcesContent":["import { TableSchema, QueryResult } from \"@plasmicapp/data-sources\";\nimport { PropType } from \"@plasmicapp/host/registerComponent\";\nimport { isOneOf, withoutFalsey } from \"./utils\";\nimport deepGet from \"lodash/get\";\nimport { ContextDependentConfig } from \"@plasmicapp/host\";\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?: ContextDependentConfig<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-6dc71cdd.cjs.js","sources":["../src/field-mappings.tsx","../src/formatting.tsx"],"sourcesContent":["import { QueryResult, TableSchema } from \"@plasmicapp/data-sources\";\nimport { ContextDependentConfig } 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?: ContextDependentConfig<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-
|
|
4
|
+
var commonPropTypes = require('../common-prop-types-193ce561.cjs.js');
|
|
5
5
|
var utils = require('../utils-65c486f0.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-
|
|
11
|
+
var formatting = require('../formatting-6dc71cdd.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-
|
|
2
|
+
import { r as roleProp } from '../common-prop-types-988c65db.esm.js';
|
|
3
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';
|
|
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-
|
|
9
|
+
import { g as getFieldAggregateValue } from '../formatting-0acc57f5.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,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var formatting = require('../formatting-
|
|
3
|
+
var formatting = require('../formatting-6dc71cdd.cjs.js');
|
|
4
4
|
var utils = require('../utils-65c486f0.cjs.js');
|
|
5
5
|
var dataSources = require('@plasmicapp/data-sources');
|
|
6
6
|
var antd = require('antd');
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { r as renderValue, b as buildFieldsPropType } from '../formatting-
|
|
1
|
+
import { r as renderValue, b as buildFieldsPropType } from '../formatting-0acc57f5.esm.js';
|
|
2
2
|
import { d as mkShortId, r as registerComponentHelper } from '../utils-c32bd7ed.esm.js';
|
|
3
3
|
import { useNormalizedData, deriveFieldConfigs } from '@plasmicapp/data-sources';
|
|
4
4
|
import { Empty, Descriptions } from 'antd';
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
var commonPropTypes = require('../common-prop-types-
|
|
5
|
+
var commonPropTypes = require('../common-prop-types-193ce561.cjs.js');
|
|
6
6
|
var utils = require('../utils-65c486f0.cjs.js');
|
|
7
7
|
var dataSources = require('@plasmicapp/data-sources');
|
|
8
8
|
var antd = require('antd');
|
|
@@ -10,7 +10,7 @@ var classNames = require('classnames');
|
|
|
10
10
|
var groupBy = require('lodash/groupBy');
|
|
11
11
|
var React = require('react');
|
|
12
12
|
var fieldReactUtils = require('../field-react-utils-c717ec94.cjs.js');
|
|
13
|
-
var formatting = require('../formatting-
|
|
13
|
+
var formatting = require('../formatting-6dc71cdd.cjs.js');
|
|
14
14
|
require('../common-e1d76791.cjs.js');
|
|
15
15
|
require('@ctrl/tinycolor');
|
|
16
16
|
require('@plasmicapp/host/registerComponent');
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { d as dataProp, r as roleProp, o as onRowClickProp, a as rowActionsProp, c as commonProps } from '../common-prop-types-
|
|
1
|
+
import { d as dataProp, r as roleProp, o as onRowClickProp, a as rowActionsProp, c as commonProps } from '../common-prop-types-988c65db.esm.js';
|
|
2
2
|
import { m as maybe, f as isLikeImage, e as ensure, c as ensureArray, g as isInteractable, d as mkShortId, r as registerComponentHelper } from '../utils-c32bd7ed.esm.js';
|
|
3
3
|
import { useNormalizedData, deriveFieldConfigs } from '@plasmicapp/data-sources';
|
|
4
4
|
import { Input, List, Tag, Card } from 'antd';
|
|
@@ -6,7 +6,7 @@ import classNames from 'classnames';
|
|
|
6
6
|
import groupBy from 'lodash/groupBy';
|
|
7
7
|
import React, { useRef } from 'react';
|
|
8
8
|
import { t as tagDataArray, u as useSortedFilteredData, r as renderActions, d as deriveKeyOfRow, a as deriveRowKey } from '../field-react-utils-26fba31e.esm.js';
|
|
9
|
-
import { m as maybeRenderString, a as multiRenderValue } from '../formatting-
|
|
9
|
+
import { m as maybeRenderString, a as multiRenderValue } from '../formatting-0acc57f5.esm.js';
|
|
10
10
|
import '../common-8cca2977.esm.js';
|
|
11
11
|
import '@ctrl/tinycolor';
|
|
12
12
|
import '@plasmicapp/host/registerComponent';
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
var commonPropTypes = require('../common-prop-types-
|
|
6
|
-
var formatting = require('../formatting-
|
|
5
|
+
var commonPropTypes = require('../common-prop-types-193ce561.cjs.js');
|
|
6
|
+
var formatting = require('../formatting-6dc71cdd.cjs.js');
|
|
7
7
|
var utils = require('../utils-65c486f0.cjs.js');
|
|
8
8
|
var icons = require('@ant-design/icons');
|
|
9
9
|
var proComponents = require('@ant-design/pro-components');
|
|
@@ -257,7 +257,7 @@ function useColumnDefinitions(data, props) {
|
|
|
257
257
|
valueType: formatting.deriveValueType(cconfig),
|
|
258
258
|
// To come later
|
|
259
259
|
readonly: false,
|
|
260
|
-
sorter:
|
|
260
|
+
sorter: !cconfig.disableSorting,
|
|
261
261
|
copyable: false,
|
|
262
262
|
ellipsis: false,
|
|
263
263
|
tip: void 0,
|
|
@@ -457,7 +457,15 @@ const dataTableMeta = {
|
|
|
457
457
|
},
|
|
458
458
|
props: __spreadProps(__spreadValues({
|
|
459
459
|
data: commonPropTypes.dataProp(),
|
|
460
|
-
fields: formatting.buildFieldsPropType({
|
|
460
|
+
fields: formatting.buildFieldsPropType({
|
|
461
|
+
fieldTypes: {
|
|
462
|
+
disableSorting: {
|
|
463
|
+
type: "boolean",
|
|
464
|
+
displayName: "Disable sorting?",
|
|
465
|
+
defaultValueHint: false
|
|
466
|
+
}
|
|
467
|
+
}
|
|
468
|
+
}),
|
|
461
469
|
canSelectRows: {
|
|
462
470
|
type: "choice",
|
|
463
471
|
displayName: "Select rows?",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs.js","sources":["../../src/rich-table/RichTable.tsx","../../src/rich-table/index.tsx"],"sourcesContent":["import { EllipsisOutlined, PlusOutlined } from \"@ant-design/icons\";\nimport { ActionType, ProColumns, ProTable } from \"@ant-design/pro-components\";\nimport {\n deriveFieldConfigs,\n NormalizedData,\n useNormalizedData,\n} from \"@plasmicapp/data-sources\";\nimport { Button, Dropdown } from \"antd\";\nimport type { SizeType } from \"antd/es/config-provider/SizeContext\";\nimport type { GetRowKey } from \"antd/es/table/interface\";\nimport { createObjectCsvStringifier } from \"csv-writer-browser\";\nimport fastStringify from \"fast-stringify\";\nimport React, { ReactNode, useMemo, useRef } from \"react\";\nimport { useIsClient } from \"../common\";\nimport {\n BaseColumnConfig,\n deriveValueType,\n FieldfulProps,\n RowFunc,\n} from \"../field-mappings\";\nimport {\n deriveKeyOfRow,\n deriveRowKey,\n renderActions,\n RowAction,\n tagDataArray,\n useSortedFilteredData,\n} from \"../field-react-utils\";\nimport { renderValue } from \"../formatting\";\nimport { ErrorBoundary, isInteractable, mkShortId } from \"../utils\";\n\n// Avoid csv-stringify, it doesn't directly work in browser without Buffer polyfill.\n\nexport interface Action {\n type: \"edit\" | \"view\" | \"delete\" | \"custom\";\n label?: string;\n moreMenu?: boolean;\n}\n\nexport interface RichTableProps extends FieldfulProps<TableColumnConfig> {\n defaultSize?: SizeType;\n pagination?: boolean;\n\n canSelectRows?: \"none\" | \"click\" | \"single\" | \"multiple\";\n\n selectedRowKey?: string;\n selectedRowKeys?: string[];\n onRowSelectionChanged?: (rowKeys: string[], rows: any[]) => void;\n onRowClick?: (rowKey: string, row: any, event: React.MouseEvent) => void;\n\n rowKey?: string | GetRowKey<any>;\n rowActions?: RowAction[];\n\n title?: ReactNode;\n\n addHref?: string;\n\n actions?: Action[];\n customActionChildren?: ReactNode;\n\n pageSize?: number;\n\n hideSearch?: boolean;\n hideDensity?: boolean;\n hideColumnPicker?: boolean;\n hideExports?: boolean;\n hideSelectionBar?: boolean;\n\n scopeClassName?: string;\n themeResetClassName?: string;\n}\n\n// In this code, ColumnConfigs are Plasmic, while ColumnDefinitions are Ant.\nexport function RichTable(props: RichTableProps) {\n const {\n className,\n data: rawData = {\n data: [],\n schema: {\n id: \"inferred\",\n fields: [\n {\n id: \"id\",\n type: \"string\",\n readOnly: false,\n },\n ],\n },\n },\n // children,\n pagination = true,\n defaultSize,\n title,\n addHref,\n pageSize = 10,\n hideSearch,\n hideDensity = true,\n hideColumnPicker,\n hideExports,\n hideSelectionBar = true,\n rowKey,\n scopeClassName,\n } = props;\n\n const normalizedData = useNormalizedData(rawData);\n\n const data = useMemo(() => {\n if (!normalizedData?.data) {\n return normalizedData;\n }\n return { ...normalizedData, data: tagDataArray(normalizedData.data) };\n }, [normalizedData]);\n\n const { columnDefinitions, normalized } = useColumnDefinitions(data, props);\n\n const actionRef = useRef<ActionType>();\n\n const { finalData, search, setSearch, setSortState } = useSortedFilteredData(\n data,\n normalized\n );\n\n const rowSelectionProps = useRowSelectionProps(data, props);\n\n const isClient = useIsClient();\n\n if (!isClient) {\n return null;\n }\n\n return (\n <div className={`${className} ${scopeClassName ?? \"\"}`}>\n <ErrorBoundary canvasEnvId={(props as any)[\"data-plasmic-canvas-envs\"]}>\n <ProTable\n ErrorBoundary={false}\n rowClassName={\n props.onRowClick || props.canSelectRows === \"click\"\n ? \"plasmic-table-row-clickable\"\n : undefined\n }\n actionRef={actionRef}\n columns={columnDefinitions}\n onChange={(_pagination, _filters, sorter, _extra) => {\n setSortState({ sorter: sorter as any });\n }}\n style={{\n width: \"100%\",\n }}\n cardProps={{\n ghost: true,\n }}\n {...rowSelectionProps}\n dataSource={finalData}\n rowKey={deriveRowKey(data, rowKey)}\n defaultSize={defaultSize}\n editable={{ type: \"multiple\" }}\n search={false}\n options={{\n setting: hideColumnPicker\n ? false\n : {\n listsHeight: 400,\n },\n reload: false,\n density: !hideDensity,\n }}\n pagination={\n pagination\n ? {\n pageSize,\n onChange: (page) => console.log(page),\n showSizeChanger: false,\n }\n : false\n }\n dateFormatter=\"string\"\n headerTitle={title}\n toolbar={{\n search: !hideSearch\n ? {\n value: search,\n onChange: (e) => setSearch(e.target.value),\n onSearch: () => {\n return;\n },\n placeholder: \"Search\",\n }\n : undefined,\n }}\n toolBarRender={() =>\n [\n addHref && (\n <Button\n key=\"button\"\n icon={<PlusOutlined />}\n type=\"primary\"\n href={addHref}\n >\n Add\n </Button>\n ),\n !hideExports && <ExportMenu data={data} />,\n ].filter((x) => !!x)\n }\n />\n </ErrorBoundary>\n {/*Always hide the weird pin left/right buttons for now, which also have render layout issues*/}\n <style\n dangerouslySetInnerHTML={{\n __html: `\n :where(.css-dev-only-do-not-override-1p704s4).ant-pro-table-column-setting-overlay .ant-tree-treenode:hover .ant-pro-table-column-setting-list-item-option {\n display: none;\n }\n .plasmic-table-row-clickable {\n cursor: pointer;\n }\n .ant-pro-table-list-toolbar-right {\n flex-wrap: initial;\n flex-shrink: 0;\n }\n .ant-pro-table, .ant-pro-table > .ant-pro-card, .ant-pro-table .ant-table-wrapper, .ant-pro-table .ant-spin-nested-loading, .ant-pro-table .ant-table-container {\n height: 100%;\n }\n .ant-pro-table .ant-spin-container {\n height: 100%;\n display: flex;\n flex-direction: column;\n }\n .ant-pro-table .ant-table {\n flex-grow: 1;\n min-height: 0;\n }\n .ant-pro-table .ant-pagination {\n flex-shrink: 0;\n }\n .ant-pro-table .ant-table-content {\n overflow: auto !important;\n height: 100%;\n }\n .ant-pro-table > .ant-pro-card > .ant-pro-card-body {\n display: flex;\n flex-direction: column;\n }\n .ant-pro-table .ant-table-wrapper {\n flex-grow: 1;\n min-height: 0;\n }\n .ant-pro-table .ant-table-thead > tr > th, .ant-pro-table .ant-table-thead > tr > td.ant-table-selection-column {\n position: sticky;\n top: 0;\n z-index: 2;\n }\n .ant-pro-table .ant-table-thead > tr > th.ant-table-cell-fix-left, .ant-pro-table .ant-table-thead > tr > th.ant-table-cell-fix-right {\n z-index: 3;\n }\n .ant-pro-table .ant-table-tbody > tr > td {\n z-index: 0;\n }\n .ant-pro-table .ant-table-tbody > tr > td.ant-table-cell-fix-left,.ant-pro-table .ant-table-tbody > tr > td.ant-table-cell-fix-right {\n z-index: 1;\n }\n ${\n scopeClassName && hideSelectionBar\n ? `\n .${scopeClassName} .ant-pro-table-alert {\n display: none;\n }\n `\n : \"\"\n }\n `,\n }}\n />\n </div>\n );\n}\n\ninterface StyleConfig {\n styles: Record<string, any>;\n align: \"left\" | \"center\" | \"right\";\n freeze: \"off\" | \"left\" | \"right\";\n}\n\nconst defaultColumnConfig = (): TableColumnConfig =>\n ({\n key: mkShortId(),\n isEditableExpr: () => false,\n disableSorting: false,\n sortByExpr: undefined,\n isHidden: false,\n formatting: {\n styles: {},\n align: \"left\",\n freeze: \"off\",\n },\n dataType: \"auto\" as const,\n } as const);\n\nexport type TableColumnConfig = BaseColumnConfig & {\n isEditableExpr: RowFunc<boolean>;\n disableSorting: boolean;\n sortByExpr?: RowFunc<any>;\n formatting: StyleConfig;\n};\n\nfunction useColumnDefinitions(\n data: NormalizedData | undefined,\n props: React.ComponentProps<typeof RichTable>\n) {\n const { fields, setControlContextData, rowActions } = props;\n return React.useMemo(() => {\n const schema = data?.schema;\n if (!data || !schema) {\n return { normalized: [], columnDefinitions: [] };\n }\n const { mergedFields, minimalFullLengthFields } =\n deriveFieldConfigs<TableColumnConfig>(fields ?? [], schema, (field) => ({\n ...defaultColumnConfig(),\n ...(field && {\n key: field.id,\n fieldId: field.id,\n title: field.label || field.id,\n expr: (currentItem) => currentItem[field.id],\n }),\n }));\n setControlContextData?.({ ...data, mergedFields, minimalFullLengthFields });\n const normalized = mergedFields;\n const columnDefinitions: ProColumns<any, any>[] = normalized\n .filter((cconfig) => !cconfig.isHidden)\n .map((cconfig, _columnIndex, _columnsArray) => {\n const columnDefinition: ProColumns<any, any> = {\n dataIndex: cconfig.fieldId,\n title: cconfig.title,\n // dataIndex: cconfig,\n key: cconfig.key,\n valueType: deriveValueType(cconfig),\n\n // To come later\n readonly: false,\n sorter: true,\n copyable: false,\n ellipsis: false,\n tip: undefined,\n formItemProps: {\n rules: [],\n },\n disable: false,\n valueEnum: undefined,\n search: undefined,\n hideInSearch: false,\n renderFormItem: (_, { defaultRender }) => {\n return defaultRender(_);\n },\n\n render: (value: any, record: any, rowIndex: any) => {\n return renderValue(record, cconfig);\n },\n };\n\n return columnDefinition;\n });\n const rowKey = props.rowKey;\n if (rowActions && rowActions.length > 0) {\n columnDefinitions.push({\n title: \"Actions\",\n valueType: \"option\",\n key: \"__plasmicActions\",\n fixed: \"right\",\n className: props.themeResetClassName,\n render: (_text, row) => [\n ...renderActions(rowActions, row, data, rowKey),\n ],\n });\n }\n return { normalized, columnDefinitions };\n }, [fields, data, setControlContextData, rowActions]);\n}\n\nfunction useRowSelectionProps(\n data: NormalizedData | undefined,\n props: React.ComponentProps<typeof RichTable>\n): Partial<React.ComponentProps<typeof ProTable>> {\n const {\n canSelectRows,\n selectedRowKey,\n selectedRowKeys,\n onRowSelectionChanged,\n rowKey,\n onRowClick,\n } = props;\n const deriveSelectedRowKeys = () => {\n if (\n !canSelectRows ||\n canSelectRows === \"none\" ||\n !deriveRowKey(data, rowKey)\n ) {\n return [];\n }\n\n if (canSelectRows === \"multiple\") {\n return selectedRowKeys ?? [];\n } else if (selectedRowKey) {\n return [selectedRowKey];\n } else {\n return [];\n }\n };\n\n const rowSelection: React.ComponentProps<typeof ProTable>[\"rowSelection\"] =\n canSelectRows && canSelectRows !== \"none\"\n ? {\n type:\n canSelectRows === \"single\" || canSelectRows === \"click\"\n ? \"radio\"\n : \"checkbox\",\n selectedRowKeys: deriveSelectedRowKeys(),\n onChange: (rowKeys, rows) => {\n onRowSelectionChanged?.(rowKeys as string[], rows);\n },\n alwaysShowAlert: true,\n ...(canSelectRows === \"click\" && {\n renderCell: () => null,\n columnWidth: 0,\n columnTitle: null,\n hideSelectAll: true,\n }),\n }\n : undefined;\n return {\n rowSelection,\n onRow: (row) => ({\n onClick: (event) => {\n const key = deriveKeyOfRow(row, deriveRowKey(data, rowKey));\n if (key != null && !isInteractable(event.target as HTMLElement)) {\n if (canSelectRows === \"click\") {\n onRowSelectionChanged?.([key], [row]);\n }\n onRowClick?.(key, row, event);\n }\n },\n }),\n };\n}\n\nfunction ExportMenu(props: { data: NormalizedData | undefined }) {\n const { data } = props;\n\n return (\n <Dropdown\n key=\"menu\"\n menu={{\n items: [\n {\n label: \"Download as CSV\",\n key: \"csv\",\n onClick: async () => {\n const writer = createObjectCsvStringifier({\n header:\n data?.schema?.fields.map((f) => ({\n id: f.id,\n title: f.id,\n })) ?? [],\n });\n const dataStr =\n writer.getHeaderString() +\n writer.stringifyRecords(data?.data as any);\n\n // const dataStr = stringify(data?.data as any, {\n // columns:\n // tryGetSchema(data)?.fields.map((f) => f.id) ?? [],\n // header: true,\n // });\n\n const filename = \"data.csv\";\n\n // Adapted from https://stackoverflow.com/a/68771795\n const blob = new Blob([dataStr], {\n type: \"text/csv;charset=utf-8;\",\n });\n if ((navigator as any).msSaveBlob) {\n // In case of IE 10+\n (navigator as any).msSaveBlob(blob, filename);\n } else {\n const link = document.createElement(\"a\");\n if (link.download !== undefined) {\n // Browsers that support HTML5 download attribute\n const url = URL.createObjectURL(blob);\n link.setAttribute(\"href\", url);\n link.setAttribute(\"download\", filename);\n link.style.visibility = \"hidden\";\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\n }\n }\n },\n },\n {\n label: \"Download as JSON\",\n key: \"json\",\n onClick: () => {\n const dataStr = fastStringify(data?.data);\n const dataUri = `data:application/json;charset=utf-8, ${encodeURIComponent(\n dataStr\n )}`;\n\n const exportFileDefaultName = \"data.json\";\n\n const linkElement = document.createElement(\"a\");\n linkElement.setAttribute(\"href\", dataUri);\n linkElement.setAttribute(\"download\", exportFileDefaultName);\n linkElement.click();\n },\n },\n ],\n }}\n >\n <Button>\n <EllipsisOutlined />\n </Button>\n </Dropdown>\n );\n}\n","import { ComponentMeta } from \"@plasmicapp/host/registerComponent\";\nimport {\n commonProps,\n dataProp,\n onRowClickProp,\n rowActionsProp,\n} from \"../common-prop-types\";\nimport { buildFieldsPropType } from \"../field-mappings\";\nimport { Registerable, registerComponentHelper } from \"../utils\";\nimport { RichTable, RichTableProps, TableColumnConfig } from \"./RichTable\";\n\nexport * from \"./RichTable\";\nexport default RichTable;\n\nexport const tableHelpers = {\n states: {\n selectedRow: {\n onChangeArgsToValue: (rowKeys: string[], rows: any[]) => {\n return rows[0];\n },\n },\n selectedRows: {\n onChangeArgsToValue: (rowKeys: string[], rows: any[]) => {\n return rows;\n },\n },\n selectedRowKey: {\n onChangeArgsToValue: (rowKeys: string[], rows: any[]) => {\n return rowKeys[0];\n },\n },\n selectedRowKeys: {\n onChangeArgsToValue: (rowKeys: string[], rows: any[]) => {\n return rowKeys;\n },\n },\n },\n};\n\nconst dataTableMeta: ComponentMeta<RichTableProps> = {\n name: \"hostless-rich-table\",\n displayName: \"Table\",\n defaultStyles: {\n width: \"stretch\",\n padding: \"16px\",\n maxHeight: \"100%\",\n },\n props: {\n data: dataProp(),\n\n fields: buildFieldsPropType<TableColumnConfig, RichTableProps>({}),\n\n canSelectRows: {\n type: \"choice\",\n displayName: \"Select rows?\",\n options: [\n { label: \"No\", value: \"none\" },\n { label: \"By clicking a row\", value: \"click\" },\n { label: \"Using radio buttons\", value: \"single\" },\n { label: \"Using checkboxes\", value: \"multiple\" },\n ],\n defaultValueHint: \"none\",\n description:\n \"Lets user select table rows by clicking on a row, or using radio buttons, or checkboxes if multiple rows can be selected together. If you have interactive elements in your row and you don't want clicking on them to select the row, you may use radio buttons instead.\",\n },\n\n rowKey: {\n type: \"string\",\n displayName: \"Row key\",\n helpText:\n \"Column key to use as row key; can also be a function that takes in a row and returns a key value\",\n hidden: (ps) => !ps.canSelectRows || ps.canSelectRows === \"none\",\n },\n\n selectedRowKey: {\n type: \"string\",\n displayName: \"Selected Row Key\",\n hidden: (ps) =>\n ps.canSelectRows !== \"single\" && ps.canSelectRows !== \"click\",\n advanced: true,\n },\n selectedRowKeys: {\n type: \"array\",\n displayName: \"Selected Row Keys\",\n hidden: (ps) => ps.canSelectRows !== \"multiple\",\n advanced: true,\n },\n onRowSelectionChanged: {\n type: \"eventHandler\",\n displayName: \"On row selection changed\",\n argTypes: [\n { name: \"rowKeys\", type: \"object\" },\n { name: \"rows\", type: \"object\" },\n ],\n },\n\n onRowClick: onRowClickProp(),\n\n rowActions: rowActionsProp(),\n\n defaultSize: {\n displayName: \"Density\",\n type: \"choice\",\n options: [\n {\n value: \"large\",\n label: \"Larger\",\n },\n {\n value: \"middle\",\n label: \"Medium\",\n },\n {\n value: \"small\",\n label: \"Compact\",\n },\n ],\n defaultValueHint: \"large\",\n advanced: true,\n },\n\n ...commonProps(),\n\n hideExports: {\n type: \"boolean\",\n description: \"Hides the button for exporting table data to CSV\",\n advanced: true,\n },\n\n hideDensity: {\n type: \"boolean\",\n description: \"Hides the control for changing the density of the table\",\n advanced: true,\n defaultValueHint: true,\n },\n\n hideColumnPicker: {\n type: \"boolean\",\n description: \"Hides the control for reordering and pinning columns\",\n advanced: true,\n },\n\n hideSelectionBar: {\n type: \"boolean\",\n description: \"Hides the toolbar that allows the user to clear selection\",\n advanced: true,\n hidden: (ps) => !ps.canSelectRows || ps.canSelectRows === \"none\",\n defaultValueHint: true,\n },\n scopeClassName: {\n type: \"styleScopeClass\",\n scopeName: \"instance\",\n } as any,\n themeResetClassName: {\n type: \"themeResetClass\",\n targetAllTags: true,\n },\n },\n states: {\n selectedRowKey: {\n type: \"writable\",\n valueProp: \"selectedRowKey\",\n onChangeProp: \"onRowSelectionChanged\",\n variableType: \"text\",\n hidden: (ps) =>\n !(ps.canSelectRows === \"click\" || ps.canSelectRows === \"single\"),\n ...tableHelpers.states.selectedRowKey,\n },\n selectedRowKeys: {\n type: \"writable\",\n valueProp: \"selectedRowKeys\",\n onChangeProp: \"onRowSelectionChanged\",\n variableType: \"array\",\n hidden: (ps) => !(ps.canSelectRows === \"multiple\"),\n ...tableHelpers.states.selectedRowKeys,\n },\n selectedRow: {\n type: \"readonly\",\n onChangeProp: \"onRowSelectionChanged\",\n variableType: \"object\",\n hidden: (ps) =>\n !(ps.canSelectRows === \"click\" || ps.canSelectRows === \"single\"),\n ...tableHelpers.states.selectedRow,\n },\n selectedRows: {\n type: \"readonly\",\n onChangeProp: \"onRowSelectionChanged\",\n variableType: \"array\",\n hidden: (ps) => !(ps.canSelectRows === \"multiple\"),\n ...tableHelpers.states.selectedRows,\n },\n },\n componentHelpers: {\n helpers: tableHelpers,\n importName: \"tableHelpers\",\n importPath: \"@plasmicpkgs/plasmic-rich-components/skinny/rich-table\",\n },\n importName: \"RichTable\",\n importPath: \"@plasmicpkgs/plasmic-rich-components/skinny/rich-table\",\n};\n\nexport function registerRichTable(loader?: Registerable) {\n registerComponentHelper(loader, RichTable, dataTableMeta);\n}\n"],"names":["useNormalizedData","useMemo","__spreadProps","tagDataArray","useRef","useSortedFilteredData","useIsClient","React","ErrorBoundary","ProTable","__spreadValues","deriveRowKey","Button","PlusOutlined","mkShortId","deriveFieldConfigs","deriveValueType","renderValue","renderActions","deriveKeyOfRow","isInteractable","Dropdown","createObjectCsvStringifier","fastStringify","EllipsisOutlined","dataProp","buildFieldsPropType","onRowClickProp","rowActionsProp","commonProps","registerComponentHelper"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.cjs.js","sources":["../../src/rich-table/RichTable.tsx","../../src/rich-table/index.tsx"],"sourcesContent":["import { EllipsisOutlined, PlusOutlined } from \"@ant-design/icons\";\nimport { ActionType, ProColumns, ProTable } from \"@ant-design/pro-components\";\nimport {\n deriveFieldConfigs,\n NormalizedData,\n useNormalizedData,\n} from \"@plasmicapp/data-sources\";\nimport { Button, Dropdown } from \"antd\";\nimport type { SizeType } from \"antd/es/config-provider/SizeContext\";\nimport type { GetRowKey } from \"antd/es/table/interface\";\nimport { createObjectCsvStringifier } from \"csv-writer-browser\";\nimport fastStringify from \"fast-stringify\";\nimport React, { ReactNode, useMemo, useRef } from \"react\";\nimport { useIsClient } from \"../common\";\nimport {\n BaseColumnConfig,\n deriveValueType,\n FieldfulProps,\n RowFunc,\n} from \"../field-mappings\";\nimport {\n deriveKeyOfRow,\n deriveRowKey,\n renderActions,\n RowAction,\n tagDataArray,\n useSortedFilteredData,\n} from \"../field-react-utils\";\nimport { renderValue } from \"../formatting\";\nimport { ErrorBoundary, isInteractable, mkShortId } from \"../utils\";\n\n// Avoid csv-stringify, it doesn't directly work in browser without Buffer polyfill.\n\nexport interface Action {\n type: \"edit\" | \"view\" | \"delete\" | \"custom\";\n label?: string;\n moreMenu?: boolean;\n}\n\nexport interface RichTableProps extends FieldfulProps<TableColumnConfig> {\n defaultSize?: SizeType;\n pagination?: boolean;\n\n canSelectRows?: \"none\" | \"click\" | \"single\" | \"multiple\";\n\n selectedRowKey?: string;\n selectedRowKeys?: string[];\n onRowSelectionChanged?: (rowKeys: string[], rows: any[]) => void;\n onRowClick?: (rowKey: string, row: any, event: React.MouseEvent) => void;\n\n rowKey?: string | GetRowKey<any>;\n rowActions?: RowAction[];\n\n title?: ReactNode;\n\n addHref?: string;\n\n actions?: Action[];\n customActionChildren?: ReactNode;\n\n pageSize?: number;\n\n hideSearch?: boolean;\n hideDensity?: boolean;\n hideColumnPicker?: boolean;\n hideExports?: boolean;\n hideSelectionBar?: boolean;\n\n scopeClassName?: string;\n themeResetClassName?: string;\n}\n\n// In this code, ColumnConfigs are Plasmic, while ColumnDefinitions are Ant.\nexport function RichTable(props: RichTableProps) {\n const {\n className,\n data: rawData = {\n data: [],\n schema: {\n id: \"inferred\",\n fields: [\n {\n id: \"id\",\n type: \"string\",\n readOnly: false,\n },\n ],\n },\n },\n // children,\n pagination = true,\n defaultSize,\n title,\n addHref,\n pageSize = 10,\n hideSearch,\n hideDensity = true,\n hideColumnPicker,\n hideExports,\n hideSelectionBar = true,\n rowKey,\n scopeClassName,\n } = props;\n\n const normalizedData = useNormalizedData(rawData);\n\n const data = useMemo(() => {\n if (!normalizedData?.data) {\n return normalizedData;\n }\n return { ...normalizedData, data: tagDataArray(normalizedData.data) };\n }, [normalizedData]);\n\n const { columnDefinitions, normalized } = useColumnDefinitions(data, props);\n\n const actionRef = useRef<ActionType>();\n\n const { finalData, search, setSearch, setSortState } = useSortedFilteredData(\n data,\n normalized\n );\n\n const rowSelectionProps = useRowSelectionProps(data, props);\n\n const isClient = useIsClient();\n\n if (!isClient) {\n return null;\n }\n\n return (\n <div className={`${className} ${scopeClassName ?? \"\"}`}>\n <ErrorBoundary canvasEnvId={(props as any)[\"data-plasmic-canvas-envs\"]}>\n <ProTable\n ErrorBoundary={false}\n rowClassName={\n props.onRowClick || props.canSelectRows === \"click\"\n ? \"plasmic-table-row-clickable\"\n : undefined\n }\n actionRef={actionRef}\n columns={columnDefinitions}\n onChange={(_pagination, _filters, sorter, _extra) => {\n setSortState({ sorter: sorter as any });\n }}\n style={{\n width: \"100%\",\n }}\n cardProps={{\n ghost: true,\n }}\n {...rowSelectionProps}\n dataSource={finalData}\n rowKey={deriveRowKey(data, rowKey)}\n defaultSize={defaultSize}\n editable={{ type: \"multiple\" }}\n search={false}\n options={{\n setting: hideColumnPicker\n ? false\n : {\n listsHeight: 400,\n },\n reload: false,\n density: !hideDensity,\n }}\n pagination={\n pagination\n ? {\n pageSize,\n onChange: (page) => console.log(page),\n showSizeChanger: false,\n }\n : false\n }\n dateFormatter=\"string\"\n headerTitle={title}\n toolbar={{\n search: !hideSearch\n ? {\n value: search,\n onChange: (e) => setSearch(e.target.value),\n onSearch: () => {\n return;\n },\n placeholder: \"Search\",\n }\n : undefined,\n }}\n toolBarRender={() =>\n [\n addHref && (\n <Button\n key=\"button\"\n icon={<PlusOutlined />}\n type=\"primary\"\n href={addHref}\n >\n Add\n </Button>\n ),\n !hideExports && <ExportMenu data={data} />,\n ].filter((x) => !!x)\n }\n />\n </ErrorBoundary>\n {/*Always hide the weird pin left/right buttons for now, which also have render layout issues*/}\n <style\n dangerouslySetInnerHTML={{\n __html: `\n :where(.css-dev-only-do-not-override-1p704s4).ant-pro-table-column-setting-overlay .ant-tree-treenode:hover .ant-pro-table-column-setting-list-item-option {\n display: none;\n }\n .plasmic-table-row-clickable {\n cursor: pointer;\n }\n .ant-pro-table-list-toolbar-right {\n flex-wrap: initial;\n flex-shrink: 0;\n }\n .ant-pro-table, .ant-pro-table > .ant-pro-card, .ant-pro-table .ant-table-wrapper, .ant-pro-table .ant-spin-nested-loading, .ant-pro-table .ant-table-container {\n height: 100%;\n }\n .ant-pro-table .ant-spin-container {\n height: 100%;\n display: flex;\n flex-direction: column;\n }\n .ant-pro-table .ant-table {\n flex-grow: 1;\n min-height: 0;\n }\n .ant-pro-table .ant-pagination {\n flex-shrink: 0;\n }\n .ant-pro-table .ant-table-content {\n overflow: auto !important;\n height: 100%;\n }\n .ant-pro-table > .ant-pro-card > .ant-pro-card-body {\n display: flex;\n flex-direction: column;\n }\n .ant-pro-table .ant-table-wrapper {\n flex-grow: 1;\n min-height: 0;\n }\n .ant-pro-table .ant-table-thead > tr > th, .ant-pro-table .ant-table-thead > tr > td.ant-table-selection-column {\n position: sticky;\n top: 0;\n z-index: 2;\n }\n .ant-pro-table .ant-table-thead > tr > th.ant-table-cell-fix-left, .ant-pro-table .ant-table-thead > tr > th.ant-table-cell-fix-right {\n z-index: 3;\n }\n .ant-pro-table .ant-table-tbody > tr > td {\n z-index: 0;\n }\n .ant-pro-table .ant-table-tbody > tr > td.ant-table-cell-fix-left,.ant-pro-table .ant-table-tbody > tr > td.ant-table-cell-fix-right {\n z-index: 1;\n }\n ${\n scopeClassName && hideSelectionBar\n ? `\n .${scopeClassName} .ant-pro-table-alert {\n display: none;\n }\n `\n : \"\"\n }\n `,\n }}\n />\n </div>\n );\n}\n\ninterface StyleConfig {\n styles: Record<string, any>;\n align: \"left\" | \"center\" | \"right\";\n freeze: \"off\" | \"left\" | \"right\";\n}\n\nconst defaultColumnConfig = (): TableColumnConfig =>\n ({\n key: mkShortId(),\n isEditableExpr: () => false,\n disableSorting: false,\n sortByExpr: undefined,\n isHidden: false,\n formatting: {\n styles: {},\n align: \"left\",\n freeze: \"off\",\n },\n dataType: \"auto\" as const,\n } as const);\n\nexport type TableColumnConfig = BaseColumnConfig & {\n isEditableExpr: RowFunc<boolean>;\n disableSorting: boolean;\n sortByExpr?: RowFunc<any>;\n formatting: StyleConfig;\n};\n\nfunction useColumnDefinitions(\n data: NormalizedData | undefined,\n props: React.ComponentProps<typeof RichTable>\n) {\n const { fields, setControlContextData, rowActions } = props;\n return React.useMemo(() => {\n const schema = data?.schema;\n if (!data || !schema) {\n return { normalized: [], columnDefinitions: [] };\n }\n const { mergedFields, minimalFullLengthFields } =\n deriveFieldConfigs<TableColumnConfig>(fields ?? [], schema, (field) => ({\n ...defaultColumnConfig(),\n ...(field && {\n key: field.id,\n fieldId: field.id,\n title: field.label || field.id,\n expr: (currentItem) => currentItem[field.id],\n }),\n }));\n setControlContextData?.({ ...data, mergedFields, minimalFullLengthFields });\n const normalized = mergedFields;\n const columnDefinitions: ProColumns<any, any>[] = normalized\n .filter((cconfig) => !cconfig.isHidden)\n .map((cconfig, _columnIndex, _columnsArray) => {\n const columnDefinition: ProColumns<any, any> = {\n dataIndex: cconfig.fieldId,\n title: cconfig.title,\n // dataIndex: cconfig,\n key: cconfig.key,\n valueType: deriveValueType(cconfig),\n\n // To come later\n readonly: false,\n sorter: !cconfig.disableSorting,\n copyable: false,\n ellipsis: false,\n tip: undefined,\n formItemProps: {\n rules: [],\n },\n disable: false,\n valueEnum: undefined,\n search: undefined,\n hideInSearch: false,\n renderFormItem: (_, { defaultRender }) => {\n return defaultRender(_);\n },\n\n render: (value: any, record: any, rowIndex: any) => {\n return renderValue(record, cconfig);\n },\n };\n\n return columnDefinition;\n });\n const rowKey = props.rowKey;\n if (rowActions && rowActions.length > 0) {\n columnDefinitions.push({\n title: \"Actions\",\n valueType: \"option\",\n key: \"__plasmicActions\",\n fixed: \"right\",\n className: props.themeResetClassName,\n render: (_text, row) => [\n ...renderActions(rowActions, row, data, rowKey),\n ],\n });\n }\n return { normalized, columnDefinitions };\n }, [fields, data, setControlContextData, rowActions]);\n}\n\nfunction useRowSelectionProps(\n data: NormalizedData | undefined,\n props: React.ComponentProps<typeof RichTable>\n): Partial<React.ComponentProps<typeof ProTable>> {\n const {\n canSelectRows,\n selectedRowKey,\n selectedRowKeys,\n onRowSelectionChanged,\n rowKey,\n onRowClick,\n } = props;\n const deriveSelectedRowKeys = () => {\n if (\n !canSelectRows ||\n canSelectRows === \"none\" ||\n !deriveRowKey(data, rowKey)\n ) {\n return [];\n }\n\n if (canSelectRows === \"multiple\") {\n return selectedRowKeys ?? [];\n } else if (selectedRowKey) {\n return [selectedRowKey];\n } else {\n return [];\n }\n };\n\n const rowSelection: React.ComponentProps<typeof ProTable>[\"rowSelection\"] =\n canSelectRows && canSelectRows !== \"none\"\n ? {\n type:\n canSelectRows === \"single\" || canSelectRows === \"click\"\n ? \"radio\"\n : \"checkbox\",\n selectedRowKeys: deriveSelectedRowKeys(),\n onChange: (rowKeys, rows) => {\n onRowSelectionChanged?.(rowKeys as string[], rows);\n },\n alwaysShowAlert: true,\n ...(canSelectRows === \"click\" && {\n renderCell: () => null,\n columnWidth: 0,\n columnTitle: null,\n hideSelectAll: true,\n }),\n }\n : undefined;\n return {\n rowSelection,\n onRow: (row) => ({\n onClick: (event) => {\n const key = deriveKeyOfRow(row, deriveRowKey(data, rowKey));\n if (key != null && !isInteractable(event.target as HTMLElement)) {\n if (canSelectRows === \"click\") {\n onRowSelectionChanged?.([key], [row]);\n }\n onRowClick?.(key, row, event);\n }\n },\n }),\n };\n}\n\nfunction ExportMenu(props: { data: NormalizedData | undefined }) {\n const { data } = props;\n\n return (\n <Dropdown\n key=\"menu\"\n menu={{\n items: [\n {\n label: \"Download as CSV\",\n key: \"csv\",\n onClick: async () => {\n const writer = createObjectCsvStringifier({\n header:\n data?.schema?.fields.map((f) => ({\n id: f.id,\n title: f.id,\n })) ?? [],\n });\n const dataStr =\n writer.getHeaderString() +\n writer.stringifyRecords(data?.data as any);\n\n // const dataStr = stringify(data?.data as any, {\n // columns:\n // tryGetSchema(data)?.fields.map((f) => f.id) ?? [],\n // header: true,\n // });\n\n const filename = \"data.csv\";\n\n // Adapted from https://stackoverflow.com/a/68771795\n const blob = new Blob([dataStr], {\n type: \"text/csv;charset=utf-8;\",\n });\n if ((navigator as any).msSaveBlob) {\n // In case of IE 10+\n (navigator as any).msSaveBlob(blob, filename);\n } else {\n const link = document.createElement(\"a\");\n if (link.download !== undefined) {\n // Browsers that support HTML5 download attribute\n const url = URL.createObjectURL(blob);\n link.setAttribute(\"href\", url);\n link.setAttribute(\"download\", filename);\n link.style.visibility = \"hidden\";\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\n }\n }\n },\n },\n {\n label: \"Download as JSON\",\n key: \"json\",\n onClick: () => {\n const dataStr = fastStringify(data?.data);\n const dataUri = `data:application/json;charset=utf-8, ${encodeURIComponent(\n dataStr\n )}`;\n\n const exportFileDefaultName = \"data.json\";\n\n const linkElement = document.createElement(\"a\");\n linkElement.setAttribute(\"href\", dataUri);\n linkElement.setAttribute(\"download\", exportFileDefaultName);\n linkElement.click();\n },\n },\n ],\n }}\n >\n <Button>\n <EllipsisOutlined />\n </Button>\n </Dropdown>\n );\n}\n","import { ComponentMeta } from \"@plasmicapp/host/registerComponent\";\nimport {\n commonProps,\n dataProp,\n onRowClickProp,\n rowActionsProp,\n} from \"../common-prop-types\";\nimport { buildFieldsPropType } from \"../field-mappings\";\nimport { Registerable, registerComponentHelper } from \"../utils\";\nimport { RichTable, RichTableProps, TableColumnConfig } from \"./RichTable\";\n\nexport * from \"./RichTable\";\nexport default RichTable;\n\nexport const tableHelpers = {\n states: {\n selectedRow: {\n onChangeArgsToValue: (rowKeys: string[], rows: any[]) => {\n return rows[0];\n },\n },\n selectedRows: {\n onChangeArgsToValue: (rowKeys: string[], rows: any[]) => {\n return rows;\n },\n },\n selectedRowKey: {\n onChangeArgsToValue: (rowKeys: string[], rows: any[]) => {\n return rowKeys[0];\n },\n },\n selectedRowKeys: {\n onChangeArgsToValue: (rowKeys: string[], rows: any[]) => {\n return rowKeys;\n },\n },\n },\n};\n\nconst dataTableMeta: ComponentMeta<RichTableProps> = {\n name: \"hostless-rich-table\",\n displayName: \"Table\",\n defaultStyles: {\n width: \"stretch\",\n padding: \"16px\",\n maxHeight: \"100%\",\n },\n props: {\n data: dataProp(),\n\n fields: buildFieldsPropType<TableColumnConfig, RichTableProps>({\n fieldTypes: {\n disableSorting: {\n type: \"boolean\",\n displayName: \"Disable sorting?\",\n defaultValueHint: false,\n },\n },\n }),\n\n canSelectRows: {\n type: \"choice\",\n displayName: \"Select rows?\",\n options: [\n { label: \"No\", value: \"none\" },\n { label: \"By clicking a row\", value: \"click\" },\n { label: \"Using radio buttons\", value: \"single\" },\n { label: \"Using checkboxes\", value: \"multiple\" },\n ],\n defaultValueHint: \"none\",\n description:\n \"Lets user select table rows by clicking on a row, or using radio buttons, or checkboxes if multiple rows can be selected together. If you have interactive elements in your row and you don't want clicking on them to select the row, you may use radio buttons instead.\",\n },\n\n rowKey: {\n type: \"string\",\n displayName: \"Row key\",\n helpText:\n \"Column key to use as row key; can also be a function that takes in a row and returns a key value\",\n hidden: (ps) => !ps.canSelectRows || ps.canSelectRows === \"none\",\n },\n\n selectedRowKey: {\n type: \"string\",\n displayName: \"Selected Row Key\",\n hidden: (ps) =>\n ps.canSelectRows !== \"single\" && ps.canSelectRows !== \"click\",\n advanced: true,\n },\n selectedRowKeys: {\n type: \"array\",\n displayName: \"Selected Row Keys\",\n hidden: (ps) => ps.canSelectRows !== \"multiple\",\n advanced: true,\n },\n onRowSelectionChanged: {\n type: \"eventHandler\",\n displayName: \"On row selection changed\",\n argTypes: [\n { name: \"rowKeys\", type: \"object\" },\n { name: \"rows\", type: \"object\" },\n ],\n },\n\n onRowClick: onRowClickProp(),\n\n rowActions: rowActionsProp(),\n\n defaultSize: {\n displayName: \"Density\",\n type: \"choice\",\n options: [\n {\n value: \"large\",\n label: \"Larger\",\n },\n {\n value: \"middle\",\n label: \"Medium\",\n },\n {\n value: \"small\",\n label: \"Compact\",\n },\n ],\n defaultValueHint: \"large\",\n advanced: true,\n },\n\n ...commonProps(),\n\n hideExports: {\n type: \"boolean\",\n description: \"Hides the button for exporting table data to CSV\",\n advanced: true,\n },\n\n hideDensity: {\n type: \"boolean\",\n description: \"Hides the control for changing the density of the table\",\n advanced: true,\n defaultValueHint: true,\n },\n\n hideColumnPicker: {\n type: \"boolean\",\n description: \"Hides the control for reordering and pinning columns\",\n advanced: true,\n },\n\n hideSelectionBar: {\n type: \"boolean\",\n description: \"Hides the toolbar that allows the user to clear selection\",\n advanced: true,\n hidden: (ps) => !ps.canSelectRows || ps.canSelectRows === \"none\",\n defaultValueHint: true,\n },\n scopeClassName: {\n type: \"styleScopeClass\",\n scopeName: \"instance\",\n } as any,\n themeResetClassName: {\n type: \"themeResetClass\",\n targetAllTags: true,\n },\n },\n states: {\n selectedRowKey: {\n type: \"writable\",\n valueProp: \"selectedRowKey\",\n onChangeProp: \"onRowSelectionChanged\",\n variableType: \"text\",\n hidden: (ps) =>\n !(ps.canSelectRows === \"click\" || ps.canSelectRows === \"single\"),\n ...tableHelpers.states.selectedRowKey,\n },\n selectedRowKeys: {\n type: \"writable\",\n valueProp: \"selectedRowKeys\",\n onChangeProp: \"onRowSelectionChanged\",\n variableType: \"array\",\n hidden: (ps) => !(ps.canSelectRows === \"multiple\"),\n ...tableHelpers.states.selectedRowKeys,\n },\n selectedRow: {\n type: \"readonly\",\n onChangeProp: \"onRowSelectionChanged\",\n variableType: \"object\",\n hidden: (ps) =>\n !(ps.canSelectRows === \"click\" || ps.canSelectRows === \"single\"),\n ...tableHelpers.states.selectedRow,\n },\n selectedRows: {\n type: \"readonly\",\n onChangeProp: \"onRowSelectionChanged\",\n variableType: \"array\",\n hidden: (ps) => !(ps.canSelectRows === \"multiple\"),\n ...tableHelpers.states.selectedRows,\n },\n },\n componentHelpers: {\n helpers: tableHelpers,\n importName: \"tableHelpers\",\n importPath: \"@plasmicpkgs/plasmic-rich-components/skinny/rich-table\",\n },\n importName: \"RichTable\",\n importPath: \"@plasmicpkgs/plasmic-rich-components/skinny/rich-table\",\n};\n\nexport function registerRichTable(loader?: Registerable) {\n registerComponentHelper(loader, RichTable, dataTableMeta);\n}\n"],"names":["useNormalizedData","useMemo","__spreadProps","tagDataArray","useRef","useSortedFilteredData","useIsClient","React","ErrorBoundary","ProTable","__spreadValues","deriveRowKey","Button","PlusOutlined","mkShortId","deriveFieldConfigs","deriveValueType","renderValue","renderActions","deriveKeyOfRow","isInteractable","Dropdown","createObjectCsvStringifier","fastStringify","EllipsisOutlined","dataProp","buildFieldsPropType","onRowClickProp","rowActionsProp","commonProps","registerComponentHelper"],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { d as dataProp, o as onRowClickProp, a as rowActionsProp, c as commonProps } from '../common-prop-types-
|
|
2
|
-
import { d as deriveValueType, r as renderValue, b as buildFieldsPropType } from '../formatting-
|
|
1
|
+
import { d as dataProp, o as onRowClickProp, a as rowActionsProp, c as commonProps } from '../common-prop-types-988c65db.esm.js';
|
|
2
|
+
import { d as deriveValueType, r as renderValue, b as buildFieldsPropType } from '../formatting-0acc57f5.esm.js';
|
|
3
3
|
import { E as ErrorBoundary, g as isInteractable, d as mkShortId, r as registerComponentHelper } from '../utils-c32bd7ed.esm.js';
|
|
4
4
|
import { PlusOutlined, EllipsisOutlined } from '@ant-design/icons';
|
|
5
5
|
import { ProTable } from '@ant-design/pro-components';
|
|
@@ -248,7 +248,7 @@ function useColumnDefinitions(data, props) {
|
|
|
248
248
|
valueType: deriveValueType(cconfig),
|
|
249
249
|
// To come later
|
|
250
250
|
readonly: false,
|
|
251
|
-
sorter:
|
|
251
|
+
sorter: !cconfig.disableSorting,
|
|
252
252
|
copyable: false,
|
|
253
253
|
ellipsis: false,
|
|
254
254
|
tip: void 0,
|
|
@@ -448,7 +448,15 @@ const dataTableMeta = {
|
|
|
448
448
|
},
|
|
449
449
|
props: __spreadProps(__spreadValues({
|
|
450
450
|
data: dataProp(),
|
|
451
|
-
fields: buildFieldsPropType({
|
|
451
|
+
fields: buildFieldsPropType({
|
|
452
|
+
fieldTypes: {
|
|
453
|
+
disableSorting: {
|
|
454
|
+
type: "boolean",
|
|
455
|
+
displayName: "Disable sorting?",
|
|
456
|
+
defaultValueHint: false
|
|
457
|
+
}
|
|
458
|
+
}
|
|
459
|
+
}),
|
|
452
460
|
canSelectRows: {
|
|
453
461
|
type: "choice",
|
|
454
462
|
displayName: "Select rows?",
|