@jswork/react-render-controls 1.2.3 → 1.2.4

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.
@@ -1 +1 @@
1
- {"version":3,"sources":["/Users/feizheng/github/react-render-controls/packages/lib/dist/main.cjs.js","../src/render-list/index.tsx","../src/shared/env.ts","../src/render-list/render-list.utils.ts"],"names":["_a","isDev","process","env","NODE_ENV","isRenderFn","render","getKey","item","index","items","keyBy","undefined","value","console","warn","String","JSON","stringify"],"mappings":"AAAA,6KAAI,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,yBAAyB,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CCA3d,4EAAkB,ICAlBA,CAAAA,CAGaC,CAAAA,CACX,OAAOC,OAAAA,EAAY,WAAA,EAAA,CAAA,CAAeA,CAAAA,CAAAA,OAAAA,CAAQC,GAAAA,CAAAA,EAARD,IAAAA,CAAAA,KAAAA,CAAAA,CAAAA,CAAAA,CAAaE,QAAAA,CAAAA,GAAa,YAAA,CCEvD,SAASC,CAAAA,CAAcC,CAAAA,CAAqB,CACjD,OAAO,OAAOA,CAAAA,EAAW,UAC3B,CAFgBD,CAAAA,CAAAA,CAAAA,CAAAA,YAAAA,CAAAA,CAWT,SAASE,CAAAA,CACdC,CAAAA,CACAC,CAAAA,CACAC,CAAAA,CACAC,CAAAA,CAA2B,CAE3B,EAAA,CAAIA,CAAAA,GAAUC,KAAAA,CAAAA,CACZ,OAAOH,CAAAA,CAGT,EAAA,CAAI,OAAOE,CAAAA,EAAU,UAAA,CACnB,OAAOA,CAAAA,CAAMH,CAAAA,CAAMC,CAAAA,CAAOC,CAAAA,CAAAA,CAG5B,IAAMG,CAAAA,CAASL,CAAAA,CAAiCG,CAAAA,CAAAA,CAChD,OAA2BE,CAAAA,EAAU,IAAA,CAAA,CAC/BZ,CAAAA,EACFa,OAAAA,CAAQC,IAAAA,CACN,CAAA,mBAAA,EAAsBC,MAAAA,CAAOL,CAAAA,CAAAA,CAAAA,gCAAAA,EAAyCM,IAAAA,CAAKC,SAAAA,CAAUV,CAAAA,CAAAA,CAAAA,CAAAA","file":"/Users/feizheng/github/react-render-controls/packages/lib/dist/main.cjs.js","sourcesContent":[null,"import React from 'react';\nimport type { RenderListProps } from './render-list.type';\nimport { isRenderFn, getKey } from './render-list.utils';\n\n/**\n * RenderList - Recommended list component\n *\n * @example Function style\n * ```tsx\n * <RenderList\n * items={users}\n * render={(user) => <UserCard user={user} />}\n * keyBy=\"id\"\n * />\n * ```\n *\n * @example Component style\n * ```tsx\n * <RenderList\n * items={users}\n * render={{\n * component: UserCard,\n * dataKey: \"user\",\n * props: { variant: 'compact' }\n * }}\n * keyBy=\"id\"\n * />\n * ```\n */\nexport default function RenderList<T>({ items, render, keyBy }: RenderListProps<T>) {\n return (\n <>\n {items.map((item, index) => {\n const key = getKey(item, index, items, keyBy);\n\n // If render is a function, call it directly\n if (isRenderFn(render)) {\n return <React.Fragment key={key}>{render(item, index, items)}</React.Fragment>;\n }\n\n // If render is component config, wrap props automatically\n const { component: Component, dataKey = 'item', props = {} } = render;\n const componentProps = {\n ...props,\n [dataKey]: item,\n };\n\n return (\n <React.Fragment key={key}>\n <Component {...componentProps} />\n </React.Fragment>\n );\n })}\n </>\n );\n}\n","/**\n * Check if running in development mode\n */\nexport const isDev =\n typeof process !== 'undefined' && process.env?.NODE_ENV !== 'production';\n\n","import type { RenderProp, RenderFn, KeyBy } from './render-list.type';\nimport { isDev } from '../shared/env';\n\n/**\n * Type guard: check if render is a function type\n */\nexport function isRenderFn<T>(render: RenderProp<T>): render is RenderFn<T> {\n return typeof render === 'function';\n}\n\n/**\n * Get the unique key for a list item\n * @param item The list item\n * @param index The index of the item in the list\n * @param items The list of items\n * @param keyBy The keyBy function or field name to get the key from the item\n */\nexport function getKey<T>(\n item: T,\n index: number,\n items: readonly T[],\n keyBy: KeyBy<T> | undefined,\n): string | number {\n if (keyBy === undefined) {\n return index;\n }\n\n if (typeof keyBy === 'function') {\n return keyBy(item, index, items);\n }\n\n const value = (item as Record<string, unknown>)[keyBy as string];\n if (value === undefined || value === null) {\n if (isDev) {\n console.warn(\n `RenderList: keyBy=\"${String(keyBy)}\" but the field is undefined in ${JSON.stringify(item)}`,\n );\n }\n return index;\n }\n\n return value as string | number;\n}\n"]}
1
+ {"version":3,"sources":["/Users/afei/github/react-render-controls/packages/lib/dist/main.cjs.js","../src/render-list/index.tsx","../src/shared/env.ts","../src/render-list/render-list.utils.ts"],"names":["_a","isDev","process","env","NODE_ENV","isRenderFn","render","getKey","item","index","items","keyBy","undefined","value","console","warn","String","JSON","stringify"],"mappings":"AAAA,6KAAI,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,yBAAyB,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CCA3d,4EAAkB,ICAlBA,CAAAA,CAGaC,CAAAA,CACX,OAAOC,OAAAA,EAAY,WAAA,EAAA,CAAA,CAAeA,CAAAA,CAAAA,OAAAA,CAAQC,GAAAA,CAAAA,EAARD,IAAAA,CAAAA,KAAAA,CAAAA,CAAAA,CAAAA,CAAaE,QAAAA,CAAAA,GAAa,YAAA,CCEvD,SAASC,CAAAA,CAAcC,CAAAA,CAAqB,CACjD,OAAO,OAAOA,CAAAA,EAAW,UAC3B,CAFgBD,CAAAA,CAAAA,CAAAA,CAAAA,YAAAA,CAAAA,CAWT,SAASE,CAAAA,CACdC,CAAAA,CACAC,CAAAA,CACAC,CAAAA,CACAC,CAAAA,CAA2B,CAE3B,EAAA,CAAIA,CAAAA,GAAUC,KAAAA,CAAAA,CACZ,OAAOH,CAAAA,CAGT,EAAA,CAAI,OAAOE,CAAAA,EAAU,UAAA,CACnB,OAAOA,CAAAA,CAAMH,CAAAA,CAAMC,CAAAA,CAAOC,CAAAA,CAAAA,CAG5B,IAAMG,CAAAA,CAASL,CAAAA,CAAiCG,CAAAA,CAAAA,CAChD,OAA2BE,CAAAA,EAAU,IAAA,CAAA,CAC/BZ,CAAAA,EACFa,OAAAA,CAAQC,IAAAA,CACN,CAAA,mBAAA,EAAsBC,MAAAA,CAAOL,CAAAA,CAAAA,CAAAA,gCAAAA,EAAyCM,IAAAA,CAAKC,SAAAA,CAAUV,CAAAA,CAAAA,CAAAA,CAAAA","file":"/Users/afei/github/react-render-controls/packages/lib/dist/main.cjs.js","sourcesContent":[null,"import React from 'react';\nimport type { RenderListProps } from './render-list.type';\nimport { isRenderFn, getKey } from './render-list.utils';\n\n/**\n * RenderList - Recommended list component\n *\n * @example Function style\n * ```tsx\n * <RenderList\n * items={users}\n * render={(user) => <UserCard user={user} />}\n * keyBy=\"id\"\n * />\n * ```\n *\n * @example Component style\n * ```tsx\n * <RenderList\n * items={users}\n * render={{\n * component: UserCard,\n * dataKey: \"user\",\n * props: { variant: 'compact' }\n * }}\n * keyBy=\"id\"\n * />\n * ```\n */\nexport default function RenderList<T>({ items, render, keyBy }: RenderListProps<T>) {\n return (\n <>\n {items.map((item, index) => {\n const key = getKey(item, index, items, keyBy);\n\n // If render is a function, call it directly\n if (isRenderFn(render)) {\n return <React.Fragment key={key}>{render(item, index, items)}</React.Fragment>;\n }\n\n // If render is component config, wrap props automatically\n const { component: Component, dataKey = 'item', props = {} } = render;\n const componentProps = {\n ...props,\n [dataKey]: item,\n };\n\n return (\n <React.Fragment key={key}>\n <Component {...componentProps} />\n </React.Fragment>\n );\n })}\n </>\n );\n}\n","/**\n * Check if running in development mode\n */\nexport const isDev =\n typeof process !== 'undefined' && process.env?.NODE_ENV !== 'production';\n\n","import type { RenderProp, RenderFn, KeyBy } from './render-list.type';\nimport { isDev } from '../shared/env';\n\n/**\n * Type guard: check if render is a function type\n */\nexport function isRenderFn<T>(render: RenderProp<T>): render is RenderFn<T> {\n return typeof render === 'function';\n}\n\n/**\n * Get the unique key for a list item\n * @param item The list item\n * @param index The index of the item in the list\n * @param items The list of items\n * @param keyBy The keyBy function or field name to get the key from the item\n */\nexport function getKey<T>(\n item: T,\n index: number,\n items: readonly T[],\n keyBy: KeyBy<T> | undefined,\n): string | number {\n if (keyBy === undefined) {\n return index;\n }\n\n if (typeof keyBy === 'function') {\n return keyBy(item, index, items);\n }\n\n const value = (item as Record<string, unknown>)[keyBy as string];\n if (value === undefined || value === null) {\n if (isDev) {\n console.warn(\n `RenderList: keyBy=\"${String(keyBy)}\" but the field is undefined in ${JSON.stringify(item)}`,\n );\n }\n return index;\n }\n\n return value as string | number;\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jswork/react-render-controls",
3
- "version": "1.2.3",
3
+ "version": "1.2.4",
4
4
  "main": "dist/main.cjs.js",
5
5
  "module": "dist/main.esm.js",
6
6
  "types": "dist/main.d.ts",