@plasmicpkgs/plasmic-rich-components 1.0.258 → 1.0.260
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/index.js +0 -1
- package/dist/index.js.map +1 -1
- package/dist/plasmic-rich-components.esm.js +0 -1
- package/dist/plasmic-rich-components.esm.js.map +1 -1
- package/package.json +8 -8
- package/skinny/rich-layout/index.cjs.js +0 -1
- package/skinny/rich-layout/index.cjs.js.map +1 -1
- package/skinny/rich-layout/index.esm.js +0 -1
- package/skinny/rich-layout/index.esm.js.map +1 -1
- package/skinny/rich-table/index.cjs.js.map +1 -1
- package/skinny/rich-table/index.esm.js.map +1 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@plasmicpkgs/plasmic-rich-components",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.260",
|
|
4
4
|
"description": "Rich batteries-included general purpose components for business apps, admin panels, etc.",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -32,8 +32,8 @@
|
|
|
32
32
|
}
|
|
33
33
|
],
|
|
34
34
|
"scripts": {
|
|
35
|
-
"build": "rollup -c rollup.config.mjs &&
|
|
36
|
-
"test": "TEST_CWD=`pwd`
|
|
35
|
+
"build": "rollup -c rollup.config.mjs && tsc --emitDeclarationOnly --declaration src/index.tsx --incremental --tsBuildInfoFile ./dist/.tsbuildinfo --skipLibCheck --jsx react --lib dom,esnext --esModuleInterop --strict --outDir ./dist/ && rsync -r --include='*/' --include='*.d.ts' --exclude='*' ./dist/ ./skinny/ && rm skinny/index.d.ts",
|
|
36
|
+
"test": "TEST_CWD=`pwd` pnpm -w test --passWithNoTests",
|
|
37
37
|
"prepublishOnly": "npm run build",
|
|
38
38
|
"size": "size-limit",
|
|
39
39
|
"analyze": "size-limit --why"
|
|
@@ -44,13 +44,13 @@
|
|
|
44
44
|
"devDependencies": {
|
|
45
45
|
"@ant-design/icons": "^5.0.1",
|
|
46
46
|
"@ant-design/pro-components": "2.6.4",
|
|
47
|
-
"@plasmicapp/data-sources": "1.0.
|
|
48
|
-
"@plasmicapp/host": "2.0.
|
|
47
|
+
"@plasmicapp/data-sources": "1.0.16",
|
|
48
|
+
"@plasmicapp/host": "2.0.8",
|
|
49
49
|
"@rollup/plugin-commonjs": "^25.0.2",
|
|
50
50
|
"@rollup/plugin-json": "^6.0.0",
|
|
51
51
|
"@rollup/plugin-node-resolve": "^15.1.0",
|
|
52
|
-
"@types/lodash": "^4.
|
|
53
|
-
"@types/node": "^20.
|
|
52
|
+
"@types/lodash": "^4.17.24",
|
|
53
|
+
"@types/node": "^20.19.43",
|
|
54
54
|
"@types/react": "^18",
|
|
55
55
|
"antd": "^5.4.0",
|
|
56
56
|
"glob": "^8.1.0",
|
|
@@ -80,5 +80,5 @@
|
|
|
80
80
|
"fast-stringify": "^2.0.0",
|
|
81
81
|
"lodash": "^4.17.21"
|
|
82
82
|
},
|
|
83
|
-
"gitHead": "
|
|
83
|
+
"gitHead": "f2542f3c07f280e033323f363580af5dd8dc534b"
|
|
84
84
|
}
|
|
@@ -260,7 +260,6 @@ function RichLayout(_a) {
|
|
|
260
260
|
items: [
|
|
261
261
|
{
|
|
262
262
|
key: "logout",
|
|
263
|
-
// @ts-expect-error: https://github.com/ant-design/ant-design/issues/47886
|
|
264
263
|
icon: /* @__PURE__ */ React__default.default.createElement(icons.LogoutOutlined, null),
|
|
265
264
|
label: "Sign out"
|
|
266
265
|
}
|
|
@@ -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 // @ts-expect-error: https://github.com/ant-design/ant-design/issues/47886\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
|
+
{"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 +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 // @ts-expect-error: https://github.com/ant-design/ant-design/issues/47886\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":"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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":"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"}
|
|
@@ -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 NormalizedData,\n deriveFieldConfigs,\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 FieldfulProps,\n RowFunc,\n deriveValueType,\n} from \"../field-mappings\";\nimport {\n RowAction,\n deriveKeyOfRow,\n deriveRowKey,\n renderActions,\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 const isClient = useIsClient();\n\n const normalizedData = useNormalizedData(isClient ? 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 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 // @ts-expect-error: https://github.com/ant-design/ant-design/issues/47886\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 {/* @ts-expect-error: https://github.com/ant-design/ant-design/issues/47886 */}\n <EllipsisOutlined />\n </Button>\n </Dropdown>\n );\n}\n","import { CodeComponentMeta } from \"@plasmicapp/host\";\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: CodeComponentMeta<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":["useIsClient","useNormalizedData","useMemo","__spreadProps","tagDataArray","useRef","useSortedFilteredData","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 NormalizedData,\n deriveFieldConfigs,\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 FieldfulProps,\n RowFunc,\n deriveValueType,\n} from \"../field-mappings\";\nimport {\n RowAction,\n deriveKeyOfRow,\n deriveRowKey,\n renderActions,\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 const isClient = useIsClient();\n\n const normalizedData = useNormalizedData(isClient ? 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 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 { CodeComponentMeta } from \"@plasmicapp/host\";\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: CodeComponentMeta<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":["useIsClient","useNormalizedData","useMemo","__spreadProps","tagDataArray","useRef","useSortedFilteredData","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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"}
|