@hi-ui/table 4.0.0-alpha.7 → 4.0.0-beta.2
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/README.md +159 -6
- package/lib/cjs/BaseTable.js +298 -0
- package/lib/cjs/BaseTable.js.map +1 -0
- package/lib/cjs/Table.js +315 -0
- package/lib/cjs/Table.js.map +1 -0
- package/lib/cjs/TableAdvancedFilter.js +164 -0
- package/lib/cjs/TableAdvancedFilter.js.map +1 -0
- package/lib/cjs/TableBody.js +150 -0
- package/lib/cjs/TableBody.js.map +1 -0
- package/lib/cjs/TableCell.js +226 -0
- package/lib/cjs/TableCell.js.map +1 -0
- package/lib/cjs/TableColumnMenu.js +172 -0
- package/lib/cjs/TableColumnMenu.js.map +1 -0
- package/lib/cjs/TableEmbedRow.js +81 -0
- package/lib/cjs/TableEmbedRow.js.map +1 -0
- package/lib/cjs/TableHeader.js +129 -0
- package/lib/cjs/TableHeader.js.map +1 -0
- package/lib/cjs/TableRow.js +216 -0
- package/lib/cjs/TableRow.js.map +1 -0
- package/lib/cjs/TableSettingMenu.js +222 -0
- package/lib/cjs/TableSettingMenu.js.map +1 -0
- package/lib/cjs/context.js +33 -0
- package/lib/cjs/context.js.map +1 -0
- package/lib/cjs/hooks/use-async-switch.js +145 -0
- package/lib/cjs/hooks/use-async-switch.js.map +1 -0
- package/lib/cjs/hooks/use-check.js +106 -0
- package/lib/cjs/hooks/use-check.js.map +1 -0
- package/lib/cjs/hooks/use-col-hidden.js +76 -0
- package/lib/cjs/hooks/use-col-hidden.js.map +1 -0
- package/lib/cjs/hooks/use-col-sorter.js +64 -0
- package/lib/cjs/hooks/use-col-sorter.js.map +1 -0
- package/lib/cjs/hooks/use-col-width.js +134 -0
- package/lib/cjs/hooks/use-col-width.js.map +1 -0
- package/lib/cjs/hooks/use-colgroup.js +111 -0
- package/lib/cjs/hooks/use-colgroup.js.map +1 -0
- package/lib/cjs/hooks/use-drag-sorter/lib/esm/index.js +287 -0
- package/lib/cjs/hooks/use-drag-sorter/lib/esm/index.js.map +1 -0
- package/lib/cjs/hooks/use-drag.js +110 -0
- package/lib/cjs/hooks/use-drag.js.map +1 -0
- package/lib/cjs/hooks/use-embed-expand.js +185 -0
- package/lib/cjs/hooks/use-embed-expand.js.map +1 -0
- package/lib/cjs/hooks/use-expand.js +183 -0
- package/lib/cjs/hooks/use-expand.js.map +1 -0
- package/lib/cjs/hooks/use-pagination.js +66 -0
- package/lib/cjs/hooks/use-pagination.js.map +1 -0
- package/lib/cjs/hooks/use-queue.js +55 -0
- package/lib/cjs/hooks/use-queue.js.map +1 -0
- package/lib/cjs/icons/index.js +55 -0
- package/lib/cjs/icons/index.js.map +1 -0
- package/lib/cjs/index.js +23 -0
- package/lib/cjs/index.js.map +1 -0
- package/lib/cjs/styles/index.scss.js +22 -0
- package/lib/cjs/styles/index.scss.js.map +1 -0
- package/lib/cjs/use-table.js +599 -0
- package/lib/cjs/use-table.js.map +1 -0
- package/lib/cjs/utils/func-utils/lib/esm/_virtual/_cloneBuffer.js_commonjs-module.js +29 -0
- package/lib/cjs/utils/func-utils/lib/esm/_virtual/_cloneBuffer.js_commonjs-module.js.map +1 -0
- package/lib/cjs/utils/func-utils/lib/esm/_virtual/_commonjsHelpers.js +27 -0
- package/lib/cjs/utils/func-utils/lib/esm/_virtual/_commonjsHelpers.js.map +1 -0
- package/lib/cjs/utils/func-utils/lib/esm/_virtual/_nodeUtil.js_commonjs-module.js +29 -0
- package/lib/cjs/utils/func-utils/lib/esm/_virtual/_nodeUtil.js_commonjs-module.js.map +1 -0
- package/lib/cjs/utils/func-utils/lib/esm/_virtual/isBuffer.js_commonjs-module.js +29 -0
- package/lib/cjs/utils/func-utils/lib/esm/_virtual/isBuffer.js_commonjs-module.js.map +1 -0
- package/lib/cjs/utils/func-utils/lib/esm/index.js +62 -0
- package/lib/cjs/utils/func-utils/lib/esm/index.js.map +1 -0
- package/lib/cjs/utils/func-utils/lib/esm/node_modules/lodash/_DataView.js +37 -0
- package/lib/cjs/utils/func-utils/lib/esm/node_modules/lodash/_DataView.js.map +1 -0
- package/lib/cjs/utils/func-utils/lib/esm/node_modules/lodash/_Map.js +37 -0
- package/lib/cjs/utils/func-utils/lib/esm/node_modules/lodash/_Map.js.map +1 -0
- package/lib/cjs/utils/func-utils/lib/esm/node_modules/lodash/_Promise.js +37 -0
- package/lib/cjs/utils/func-utils/lib/esm/node_modules/lodash/_Promise.js.map +1 -0
- package/lib/cjs/utils/func-utils/lib/esm/node_modules/lodash/_Set.js +37 -0
- package/lib/cjs/utils/func-utils/lib/esm/node_modules/lodash/_Set.js.map +1 -0
- package/lib/cjs/utils/func-utils/lib/esm/node_modules/lodash/_Symbol.js +34 -0
- package/lib/cjs/utils/func-utils/lib/esm/node_modules/lodash/_Symbol.js.map +1 -0
- package/lib/cjs/utils/func-utils/lib/esm/node_modules/lodash/_WeakMap.js +37 -0
- package/lib/cjs/utils/func-utils/lib/esm/node_modules/lodash/_WeakMap.js.map +1 -0
- package/lib/cjs/utils/func-utils/lib/esm/node_modules/lodash/_baseGetTag.js +60 -0
- package/lib/cjs/utils/func-utils/lib/esm/node_modules/lodash/_baseGetTag.js.map +1 -0
- package/lib/cjs/utils/func-utils/lib/esm/node_modules/lodash/_baseIsArguments.js +49 -0
- package/lib/cjs/utils/func-utils/lib/esm/node_modules/lodash/_baseIsArguments.js.map +1 -0
- package/lib/cjs/utils/func-utils/lib/esm/node_modules/lodash/_baseIsNative.js +80 -0
- package/lib/cjs/utils/func-utils/lib/esm/node_modules/lodash/_baseIsNative.js.map +1 -0
- package/lib/cjs/utils/func-utils/lib/esm/node_modules/lodash/_cloneBuffer.js +63 -0
- package/lib/cjs/utils/func-utils/lib/esm/node_modules/lodash/_cloneBuffer.js.map +1 -0
- package/lib/cjs/utils/func-utils/lib/esm/node_modules/lodash/_coreJsData.js +34 -0
- package/lib/cjs/utils/func-utils/lib/esm/node_modules/lodash/_coreJsData.js.map +1 -0
- package/lib/cjs/utils/func-utils/lib/esm/node_modules/lodash/_defineProperty.js +33 -0
- package/lib/cjs/utils/func-utils/lib/esm/node_modules/lodash/_defineProperty.js.map +1 -0
- package/lib/cjs/utils/func-utils/lib/esm/node_modules/lodash/_freeGlobal.js +36 -0
- package/lib/cjs/utils/func-utils/lib/esm/node_modules/lodash/_freeGlobal.js.map +1 -0
- package/lib/cjs/utils/func-utils/lib/esm/node_modules/lodash/_getNative.js +48 -0
- package/lib/cjs/utils/func-utils/lib/esm/node_modules/lodash/_getNative.js.map +1 -0
- package/lib/cjs/utils/func-utils/lib/esm/node_modules/lodash/_getRawTag.js +77 -0
- package/lib/cjs/utils/func-utils/lib/esm/node_modules/lodash/_getRawTag.js.map +1 -0
- package/lib/cjs/utils/func-utils/lib/esm/node_modules/lodash/_getTag.js +96 -0
- package/lib/cjs/utils/func-utils/lib/esm/node_modules/lodash/_getTag.js.map +1 -0
- package/lib/cjs/utils/func-utils/lib/esm/node_modules/lodash/_getValue.js +40 -0
- package/lib/cjs/utils/func-utils/lib/esm/node_modules/lodash/_getValue.js.map +1 -0
- package/lib/cjs/utils/func-utils/lib/esm/node_modules/lodash/_isMasked.js +50 -0
- package/lib/cjs/utils/func-utils/lib/esm/node_modules/lodash/_isMasked.js.map +1 -0
- package/lib/cjs/utils/func-utils/lib/esm/node_modules/lodash/_nativeCreate.js +28 -0
- package/lib/cjs/utils/func-utils/lib/esm/node_modules/lodash/_nativeCreate.js.map +1 -0
- package/lib/cjs/utils/func-utils/lib/esm/node_modules/lodash/_nodeUtil.js +58 -0
- package/lib/cjs/utils/func-utils/lib/esm/node_modules/lodash/_nodeUtil.js.map +1 -0
- package/lib/cjs/utils/func-utils/lib/esm/node_modules/lodash/_objectToString.js +49 -0
- package/lib/cjs/utils/func-utils/lib/esm/node_modules/lodash/_objectToString.js.map +1 -0
- package/lib/cjs/utils/func-utils/lib/esm/node_modules/lodash/_root.js +39 -0
- package/lib/cjs/utils/func-utils/lib/esm/node_modules/lodash/_root.js.map +1 -0
- package/lib/cjs/utils/func-utils/lib/esm/node_modules/lodash/_toSource.js +55 -0
- package/lib/cjs/utils/func-utils/lib/esm/node_modules/lodash/_toSource.js.map +1 -0
- package/lib/cjs/utils/func-utils/lib/esm/node_modules/lodash/isArguments.js +61 -0
- package/lib/cjs/utils/func-utils/lib/esm/node_modules/lodash/isArguments.js.map +1 -0
- package/lib/cjs/utils/func-utils/lib/esm/node_modules/lodash/isBuffer.js +67 -0
- package/lib/cjs/utils/func-utils/lib/esm/node_modules/lodash/isBuffer.js.map +1 -0
- package/lib/cjs/utils/func-utils/lib/esm/node_modules/lodash/isFunction.js +69 -0
- package/lib/cjs/utils/func-utils/lib/esm/node_modules/lodash/isFunction.js.map +1 -0
- package/lib/cjs/utils/func-utils/lib/esm/node_modules/lodash/isObject.js +72 -0
- package/lib/cjs/utils/func-utils/lib/esm/node_modules/lodash/isObject.js.map +1 -0
- package/lib/cjs/utils/func-utils/lib/esm/node_modules/lodash/isObjectLike.js +69 -0
- package/lib/cjs/utils/func-utils/lib/esm/node_modules/lodash/isObjectLike.js.map +1 -0
- package/lib/cjs/utils/func-utils/lib/esm/node_modules/lodash/stubFalse.js +45 -0
- package/lib/cjs/utils/func-utils/lib/esm/node_modules/lodash/stubFalse.js.map +1 -0
- package/lib/cjs/utils/index.js +190 -0
- package/lib/cjs/utils/index.js.map +1 -0
- package/lib/esm/BaseTable.js +266 -0
- package/lib/esm/BaseTable.js.map +1 -0
- package/lib/esm/Table.js +276 -0
- package/lib/esm/Table.js.map +1 -0
- package/lib/esm/TableAdvancedFilter.js +134 -0
- package/lib/esm/TableAdvancedFilter.js.map +1 -0
- package/lib/esm/TableBody.js +126 -0
- package/lib/esm/TableBody.js.map +1 -0
- package/lib/esm/TableCell.js +202 -0
- package/lib/esm/TableCell.js.map +1 -0
- package/lib/esm/TableColumnMenu.js +145 -0
- package/lib/esm/TableColumnMenu.js.map +1 -0
- package/lib/esm/TableEmbedRow.js +59 -0
- package/lib/esm/TableEmbedRow.js.map +1 -0
- package/lib/esm/TableHeader.js +107 -0
- package/lib/esm/TableHeader.js.map +1 -0
- package/lib/esm/TableRow.js +189 -0
- package/lib/esm/TableRow.js.map +1 -0
- package/lib/esm/TableSettingMenu.js +190 -0
- package/lib/esm/TableSettingMenu.js.map +1 -0
- package/lib/esm/context.js +25 -0
- package/lib/esm/context.js.map +1 -0
- package/lib/esm/hooks/use-async-switch.js +124 -0
- package/lib/esm/hooks/use-async-switch.js.map +1 -0
- package/lib/esm/hooks/use-check.js +87 -0
- package/lib/esm/hooks/use-check.js.map +1 -0
- package/lib/esm/hooks/use-col-hidden.js +67 -0
- package/lib/esm/hooks/use-col-hidden.js.map +1 -0
- package/lib/esm/hooks/use-col-sorter.js +55 -0
- package/lib/esm/hooks/use-col-sorter.js.map +1 -0
- package/lib/esm/hooks/use-col-width.js +116 -0
- package/lib/esm/hooks/use-col-width.js.map +1 -0
- package/lib/esm/hooks/use-colgroup.js +93 -0
- package/lib/esm/hooks/use-colgroup.js.map +1 -0
- package/lib/esm/hooks/use-drag-sorter/lib/esm/index.js +264 -0
- package/lib/esm/hooks/use-drag-sorter/lib/esm/index.js.map +1 -0
- package/lib/esm/hooks/use-drag.js +91 -0
- package/lib/esm/hooks/use-drag.js.map +1 -0
- package/lib/esm/hooks/use-embed-expand.js +160 -0
- package/lib/esm/hooks/use-embed-expand.js.map +1 -0
- package/lib/esm/hooks/use-expand.js +172 -0
- package/lib/esm/hooks/use-expand.js.map +1 -0
- package/lib/esm/hooks/use-pagination.js +46 -0
- package/lib/esm/hooks/use-pagination.js.map +1 -0
- package/lib/esm/hooks/use-queue.js +49 -0
- package/lib/esm/hooks/use-queue.js.map +1 -0
- package/lib/esm/icons/index.js +33 -0
- package/lib/esm/icons/index.js.map +1 -0
- package/lib/esm/index.js +12 -0
- package/lib/esm/index.js.map +1 -0
- package/lib/esm/styles/index.scss.js +17 -0
- package/lib/esm/styles/index.scss.js.map +1 -0
- package/lib/esm/use-table.js +567 -0
- package/lib/esm/use-table.js.map +1 -0
- package/lib/esm/utils/func-utils/lib/esm/_virtual/_cloneBuffer.js_commonjs-module.js +24 -0
- package/lib/esm/utils/func-utils/lib/esm/_virtual/_cloneBuffer.js_commonjs-module.js.map +1 -0
- package/lib/esm/utils/func-utils/lib/esm/_virtual/_commonjsHelpers.js +22 -0
- package/lib/esm/utils/func-utils/lib/esm/_virtual/_commonjsHelpers.js.map +1 -0
- package/lib/esm/utils/func-utils/lib/esm/_virtual/_nodeUtil.js_commonjs-module.js +24 -0
- package/lib/esm/utils/func-utils/lib/esm/_virtual/_nodeUtil.js_commonjs-module.js.map +1 -0
- package/lib/esm/utils/func-utils/lib/esm/_virtual/isBuffer.js_commonjs-module.js +24 -0
- package/lib/esm/utils/func-utils/lib/esm/_virtual/isBuffer.js_commonjs-module.js.map +1 -0
- package/lib/esm/utils/func-utils/lib/esm/index.js +45 -0
- package/lib/esm/utils/func-utils/lib/esm/index.js.map +1 -0
- package/lib/esm/utils/func-utils/lib/esm/node_modules/lodash/_DataView.js +29 -0
- package/lib/esm/utils/func-utils/lib/esm/node_modules/lodash/_DataView.js.map +1 -0
- package/lib/esm/utils/func-utils/lib/esm/node_modules/lodash/_Map.js +29 -0
- package/lib/esm/utils/func-utils/lib/esm/node_modules/lodash/_Map.js.map +1 -0
- package/lib/esm/utils/func-utils/lib/esm/node_modules/lodash/_Promise.js +29 -0
- package/lib/esm/utils/func-utils/lib/esm/node_modules/lodash/_Promise.js.map +1 -0
- package/lib/esm/utils/func-utils/lib/esm/node_modules/lodash/_Set.js +29 -0
- package/lib/esm/utils/func-utils/lib/esm/node_modules/lodash/_Set.js.map +1 -0
- package/lib/esm/utils/func-utils/lib/esm/node_modules/lodash/_Symbol.js +27 -0
- package/lib/esm/utils/func-utils/lib/esm/node_modules/lodash/_Symbol.js.map +1 -0
- package/lib/esm/utils/func-utils/lib/esm/node_modules/lodash/_WeakMap.js +29 -0
- package/lib/esm/utils/func-utils/lib/esm/node_modules/lodash/_WeakMap.js.map +1 -0
- package/lib/esm/utils/func-utils/lib/esm/node_modules/lodash/_baseGetTag.js +51 -0
- package/lib/esm/utils/func-utils/lib/esm/node_modules/lodash/_baseGetTag.js.map +1 -0
- package/lib/esm/utils/func-utils/lib/esm/node_modules/lodash/_baseIsArguments.js +41 -0
- package/lib/esm/utils/func-utils/lib/esm/node_modules/lodash/_baseIsArguments.js.map +1 -0
- package/lib/esm/utils/func-utils/lib/esm/node_modules/lodash/_baseIsNative.js +70 -0
- package/lib/esm/utils/func-utils/lib/esm/node_modules/lodash/_baseIsNative.js.map +1 -0
- package/lib/esm/utils/func-utils/lib/esm/node_modules/lodash/_cloneBuffer.js +59 -0
- package/lib/esm/utils/func-utils/lib/esm/node_modules/lodash/_cloneBuffer.js.map +1 -0
- package/lib/esm/utils/func-utils/lib/esm/node_modules/lodash/_coreJsData.js +27 -0
- package/lib/esm/utils/func-utils/lib/esm/node_modules/lodash/_coreJsData.js.map +1 -0
- package/lib/esm/utils/func-utils/lib/esm/node_modules/lodash/_defineProperty.js +30 -0
- package/lib/esm/utils/func-utils/lib/esm/node_modules/lodash/_defineProperty.js.map +1 -0
- package/lib/esm/utils/func-utils/lib/esm/node_modules/lodash/_freeGlobal.js +17 -0
- package/lib/esm/utils/func-utils/lib/esm/node_modules/lodash/_freeGlobal.js.map +1 -0
- package/lib/esm/utils/func-utils/lib/esm/node_modules/lodash/_getNative.js +40 -0
- package/lib/esm/utils/func-utils/lib/esm/node_modules/lodash/_getNative.js.map +1 -0
- package/lib/esm/utils/func-utils/lib/esm/node_modules/lodash/_getRawTag.js +70 -0
- package/lib/esm/utils/func-utils/lib/esm/node_modules/lodash/_getRawTag.js.map +1 -0
- package/lib/esm/utils/func-utils/lib/esm/node_modules/lodash/_getTag.js +87 -0
- package/lib/esm/utils/func-utils/lib/esm/node_modules/lodash/_getTag.js.map +1 -0
- package/lib/esm/utils/func-utils/lib/esm/node_modules/lodash/_getValue.js +35 -0
- package/lib/esm/utils/func-utils/lib/esm/node_modules/lodash/_getValue.js.map +1 -0
- package/lib/esm/utils/func-utils/lib/esm/node_modules/lodash/_isMasked.js +43 -0
- package/lib/esm/utils/func-utils/lib/esm/node_modules/lodash/_isMasked.js.map +1 -0
- package/lib/esm/utils/func-utils/lib/esm/node_modules/lodash/_nativeCreate.js +25 -0
- package/lib/esm/utils/func-utils/lib/esm/node_modules/lodash/_nativeCreate.js.map +1 -0
- package/lib/esm/utils/func-utils/lib/esm/node_modules/lodash/_nodeUtil.js +54 -0
- package/lib/esm/utils/func-utils/lib/esm/node_modules/lodash/_nodeUtil.js.map +1 -0
- package/lib/esm/utils/func-utils/lib/esm/node_modules/lodash/_objectToString.js +44 -0
- package/lib/esm/utils/func-utils/lib/esm/node_modules/lodash/_objectToString.js.map +1 -0
- package/lib/esm/utils/func-utils/lib/esm/node_modules/lodash/_root.js +21 -0
- package/lib/esm/utils/func-utils/lib/esm/node_modules/lodash/_root.js.map +1 -0
- package/lib/esm/utils/func-utils/lib/esm/node_modules/lodash/_toSource.js +50 -0
- package/lib/esm/utils/func-utils/lib/esm/node_modules/lodash/_toSource.js.map +1 -0
- package/lib/esm/utils/func-utils/lib/esm/node_modules/lodash/isArguments.js +57 -0
- package/lib/esm/utils/func-utils/lib/esm/node_modules/lodash/isArguments.js.map +1 -0
- package/lib/esm/utils/func-utils/lib/esm/node_modules/lodash/isBuffer.js +62 -0
- package/lib/esm/utils/func-utils/lib/esm/node_modules/lodash/isBuffer.js.map +1 -0
- package/lib/esm/utils/func-utils/lib/esm/node_modules/lodash/isFunction.js +61 -0
- package/lib/esm/utils/func-utils/lib/esm/node_modules/lodash/isFunction.js.map +1 -0
- package/lib/esm/utils/func-utils/lib/esm/node_modules/lodash/isObject.js +55 -0
- package/lib/esm/utils/func-utils/lib/esm/node_modules/lodash/isObject.js.map +1 -0
- package/lib/esm/utils/func-utils/lib/esm/node_modules/lodash/isObjectLike.js +52 -0
- package/lib/esm/utils/func-utils/lib/esm/node_modules/lodash/isObjectLike.js.map +1 -0
- package/lib/esm/utils/func-utils/lib/esm/node_modules/lodash/stubFalse.js +40 -0
- package/lib/esm/utils/func-utils/lib/esm/node_modules/lodash/stubFalse.js.map +1 -0
- package/lib/esm/utils/index.js +178 -0
- package/lib/esm/utils/index.js.map +1 -0
- package/lib/types/BaseTable.d.ts +41 -0
- package/lib/types/Table.d.ts +18 -16
- package/lib/types/TableAdvancedFilter.d.ts +9 -0
- package/lib/types/TableBody.d.ts +11 -0
- package/lib/types/TableCell.d.ts +41 -0
- package/lib/types/TableColumnMenu.d.ts +18 -5
- package/lib/types/TableEmbedRow.d.ts +26 -0
- package/lib/types/TableHeader.d.ts +1 -7
- package/lib/types/TableRow.d.ts +32 -0
- package/lib/types/TableSettingMenu.d.ts +1 -2
- package/lib/types/context.d.ts +110 -85
- package/lib/types/hooks/use-async-switch.d.ts +2 -1
- package/lib/types/hooks/use-check.d.ts +4 -8
- package/lib/types/hooks/use-col-frozen.d.ts +1 -1
- package/lib/types/hooks/use-col-hidden.d.ts +1 -1
- package/lib/types/hooks/use-col-width.d.ts +5 -8
- package/lib/types/hooks/use-colgroup.d.ts +2 -1
- package/lib/types/hooks/use-drag.d.ts +13 -0
- package/lib/types/hooks/use-embed-expand.d.ts +39 -0
- package/lib/types/hooks/use-expand.d.ts +1 -1
- package/lib/types/hooks/use-pagination.d.ts +5 -6
- package/lib/types/index.d.ts +1 -0
- package/lib/types/types.d.ts +33 -32
- package/lib/types/use-table.d.ts +242 -0
- package/lib/types/utils/index.d.ts +11 -4
- package/package.json +35 -8
- package/lib/types/TableExpandedRow.d.ts +0 -28
|
@@ -0,0 +1,189 @@
|
|
|
1
|
+
/** @LICENSE
|
|
2
|
+
* @hi-ui/table
|
|
3
|
+
* https://github.com/XiaoMi/hiui/tree/master/packages/ui/table#readme
|
|
4
|
+
*
|
|
5
|
+
* Copyright (c) HIUI <mi-hiui@xiaomi.com>.
|
|
6
|
+
*
|
|
7
|
+
* This source code is licensed under the MIT license found in the
|
|
8
|
+
* LICENSE file in the root directory of this source tree.
|
|
9
|
+
*/
|
|
10
|
+
import React, { forwardRef } from 'react';
|
|
11
|
+
import { getPrefixCls, cx } from '@hi-ui/classname';
|
|
12
|
+
import { __DEV__ } from '@hi-ui/env';
|
|
13
|
+
import { useTableContext } from './context.js';
|
|
14
|
+
import { TableCell } from './TableCell.js';
|
|
15
|
+
import { TableEmbedRow } from './TableEmbedRow.js';
|
|
16
|
+
import { useLatestCallback } from '@hi-ui/use-latest';
|
|
17
|
+
import { setAttrAria } from '@hi-ui/dom-utils';
|
|
18
|
+
import { SELECTION_DATA_KEY } from './Table.js';
|
|
19
|
+
import { EMBED_DATA_KEY } from './BaseTable.js';
|
|
20
|
+
import { isFunction } from '@hi-ui/type-assertion';
|
|
21
|
+
var _role = 'table';
|
|
22
|
+
|
|
23
|
+
var _prefix = getPrefixCls(_role);
|
|
24
|
+
/**
|
|
25
|
+
* TODO: What is TableRow
|
|
26
|
+
*/
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
var TableRow = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
30
|
+
var _ref$prefixCls = _ref.prefixCls,
|
|
31
|
+
prefixCls = _ref$prefixCls === void 0 ? _prefix : _ref$prefixCls,
|
|
32
|
+
rowDataProp = _ref.rowData,
|
|
33
|
+
rowIndex = _ref.rowIndex,
|
|
34
|
+
expandedTree = _ref.expandedTree,
|
|
35
|
+
isSumRow = _ref.isSumRow,
|
|
36
|
+
isAvgRow = _ref.isAvgRow;
|
|
37
|
+
|
|
38
|
+
var _useTableContext = useTableContext(),
|
|
39
|
+
onHighlightedRowChange = _useTableContext.onHighlightedRowChange,
|
|
40
|
+
isHighlightedRow = _useTableContext.isHighlightedRow,
|
|
41
|
+
flattedColumnsWithoutChildren = _useTableContext.flattedColumnsWithoutChildren,
|
|
42
|
+
isErrorRow = _useTableContext.isErrorRow,
|
|
43
|
+
columns = _useTableContext.columns,
|
|
44
|
+
embedExpandable = _useTableContext.embedExpandable,
|
|
45
|
+
hoverRow = _useTableContext.hoverRow,
|
|
46
|
+
draggable = _useTableContext.draggable,
|
|
47
|
+
onDragStartContext = _useTableContext.onDragStart,
|
|
48
|
+
onDragLeaveContext = _useTableContext.onDragLeave,
|
|
49
|
+
onDragEndContext = _useTableContext.onDragEnd,
|
|
50
|
+
onDropContext = _useTableContext.onDrop,
|
|
51
|
+
dragRowRef = _useTableContext.dragRowRef,
|
|
52
|
+
onRow = _useTableContext.onRow;
|
|
53
|
+
|
|
54
|
+
var rowData = rowDataProp.raw,
|
|
55
|
+
rowId = rowDataProp.id; // ** ************** 拖拽管理 *************** *//
|
|
56
|
+
|
|
57
|
+
var _React$useState = React.useState(false),
|
|
58
|
+
dragging = _React$useState[0],
|
|
59
|
+
setDragging = _React$useState[1];
|
|
60
|
+
|
|
61
|
+
var _React$useState2 = React.useState(),
|
|
62
|
+
dragDirection = _React$useState2[0],
|
|
63
|
+
setDragDirection = _React$useState2[1];
|
|
64
|
+
|
|
65
|
+
var onDragStartContextLatest = useLatestCallback(onDragStartContext);
|
|
66
|
+
var onDragStart = React.useCallback(function (evt) {
|
|
67
|
+
if (!draggable) return;
|
|
68
|
+
evt.stopPropagation();
|
|
69
|
+
var clientY = evt.clientY;
|
|
70
|
+
dragRowRef.current = {
|
|
71
|
+
startClientY: clientY,
|
|
72
|
+
dragId: rowId,
|
|
73
|
+
rowData: rowData
|
|
74
|
+
};
|
|
75
|
+
setDragging(true);
|
|
76
|
+
evt.dataTransfer.setData('tableRow', JSON.stringify({
|
|
77
|
+
sourceId: rowId
|
|
78
|
+
}));
|
|
79
|
+
onDragStartContextLatest(evt, {
|
|
80
|
+
dragNode: rowData
|
|
81
|
+
});
|
|
82
|
+
}, [draggable, dragRowRef, onDragStartContextLatest, rowData, rowId]);
|
|
83
|
+
var onDragOver = React.useCallback(function (evt) {
|
|
84
|
+
if (!draggable) return;
|
|
85
|
+
evt.preventDefault();
|
|
86
|
+
evt.stopPropagation();
|
|
87
|
+
if (!dragRowRef.current) return;
|
|
88
|
+
var _dragRowRef$current = dragRowRef.current,
|
|
89
|
+
startClientY = _dragRowRef$current.startClientY,
|
|
90
|
+
dragId = _dragRowRef$current.dragId;
|
|
91
|
+
if (dragId === rowId) return;
|
|
92
|
+
var hoverClientY = evt.clientY;
|
|
93
|
+
|
|
94
|
+
if (hoverClientY < startClientY) {
|
|
95
|
+
setDragDirection('top');
|
|
96
|
+
} else {
|
|
97
|
+
setDragDirection('bottom');
|
|
98
|
+
}
|
|
99
|
+
}, [draggable, dragRowRef, rowId]);
|
|
100
|
+
var onDragLeaveContextLatest = useLatestCallback(onDragLeaveContext);
|
|
101
|
+
var onDragLeave = React.useCallback(function (evt) {
|
|
102
|
+
if (!draggable) return;
|
|
103
|
+
evt.preventDefault();
|
|
104
|
+
evt.stopPropagation();
|
|
105
|
+
setDragDirection(undefined);
|
|
106
|
+
onDragLeaveContextLatest(evt);
|
|
107
|
+
}, [draggable, onDragLeaveContextLatest]);
|
|
108
|
+
var onDragEndContextLatest = useLatestCallback(onDragEndContext);
|
|
109
|
+
var onDragEnd = React.useCallback(function (evt) {
|
|
110
|
+
if (!draggable) return;
|
|
111
|
+
evt.preventDefault();
|
|
112
|
+
evt.stopPropagation();
|
|
113
|
+
evt.dataTransfer.clearData();
|
|
114
|
+
dragRowRef.current = null;
|
|
115
|
+
setDragDirection(undefined);
|
|
116
|
+
setDragging(false);
|
|
117
|
+
onDragEndContextLatest(evt);
|
|
118
|
+
}, [draggable, dragRowRef, onDragEndContextLatest]);
|
|
119
|
+
var onDropContextLatest = useLatestCallback(onDropContext); // 放置目标元素时触发事件
|
|
120
|
+
|
|
121
|
+
var onDrop = React.useCallback(function (evt) {
|
|
122
|
+
if (!draggable) return;
|
|
123
|
+
if (!dragRowRef.current) return;
|
|
124
|
+
var dragId = dragRowRef.current.dragId;
|
|
125
|
+
evt.preventDefault();
|
|
126
|
+
evt.stopPropagation();
|
|
127
|
+
setDragDirection(undefined);
|
|
128
|
+
dragRowRef.current = null;
|
|
129
|
+
var targetId = rowId;
|
|
130
|
+
if (dragId === targetId) return;
|
|
131
|
+
|
|
132
|
+
try {
|
|
133
|
+
var _JSON$parse = JSON.parse(evt.dataTransfer.getData('tableRow')),
|
|
134
|
+
sourceId = _JSON$parse.sourceId;
|
|
135
|
+
|
|
136
|
+
onDropContextLatest(evt, sourceId, targetId, dragDirection);
|
|
137
|
+
} catch (error) {
|
|
138
|
+
console.error(error);
|
|
139
|
+
}
|
|
140
|
+
}, [draggable, dragRowRef, onDropContextLatest, dragDirection, rowId]); // ** ************** 行状态管理 *************** *//
|
|
141
|
+
|
|
142
|
+
var highlighted = isHighlightedRow(rowId);
|
|
143
|
+
var hovered = hoverRow === rowId;
|
|
144
|
+
var hasError = isErrorRow(rowId);
|
|
145
|
+
var cls = cx(prefixCls + "-row", hasError && prefixCls + "-row--error", hovered && prefixCls + "-row--hovered", highlighted && prefixCls + "-row--highlight", draggable && prefixCls + "-row--draggable", draggable && dragging && prefixCls + "-row--dragging", draggable && dragDirection && prefixCls + "-row--drag-" + dragDirection, isSumRow && prefixCls + "-row--total", isAvgRow && prefixCls + "-row--avg");
|
|
146
|
+
var firstColumn = flattedColumnsWithoutChildren.find(function (item) {
|
|
147
|
+
return item.dataKey !== SELECTION_DATA_KEY && item.dataKey !== EMBED_DATA_KEY;
|
|
148
|
+
});
|
|
149
|
+
var rowExtraProps = isFunction(onRow) ? onRow() : {};
|
|
150
|
+
return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("tr", Object.assign({
|
|
151
|
+
ref: ref,
|
|
152
|
+
className: cls,
|
|
153
|
+
key: "row"
|
|
154
|
+
}, rowExtraProps, {
|
|
155
|
+
onDoubleClick: function onDoubleClick(evt) {
|
|
156
|
+
if (rowExtraProps.onDoubleClick) {
|
|
157
|
+
rowExtraProps.onDoubleClick(evt);
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
onHighlightedRowChange(rowData, !highlighted);
|
|
161
|
+
},
|
|
162
|
+
draggable: setAttrAria(draggable),
|
|
163
|
+
onDragStart: onDragStart,
|
|
164
|
+
onDragOver: onDragOver,
|
|
165
|
+
onDragEnd: onDragEnd,
|
|
166
|
+
onDragLeave: onDragLeave,
|
|
167
|
+
onDrop: onDrop
|
|
168
|
+
}), flattedColumnsWithoutChildren.map(function (column, idx) {
|
|
169
|
+
return /*#__PURE__*/React.createElement(TableCell, {
|
|
170
|
+
key: idx,
|
|
171
|
+
column: column,
|
|
172
|
+
isSwitcherCol: firstColumn ? firstColumn.id === column.id : false,
|
|
173
|
+
rowData: rowDataProp,
|
|
174
|
+
rowIndex: rowIndex,
|
|
175
|
+
expandedTree: expandedTree
|
|
176
|
+
});
|
|
177
|
+
})), embedExpandable ? /*#__PURE__*/React.createElement(TableEmbedRow, {
|
|
178
|
+
colSpan: columns.length,
|
|
179
|
+
rowData: rowDataProp,
|
|
180
|
+
rowIndex: rowIndex
|
|
181
|
+
}) : null);
|
|
182
|
+
});
|
|
183
|
+
|
|
184
|
+
if (__DEV__) {
|
|
185
|
+
TableRow.displayName = 'TableRow';
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
export { TableRow };
|
|
189
|
+
//# sourceMappingURL=TableRow.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TableRow.js","sources":["../../src/TableRow.tsx"],"sourcesContent":[null],"names":["_role","_prefix","getPrefixCls","TableRow","forwardRef","ref","prefixCls","rowDataProp","rowData","rowIndex","expandedTree","isSumRow","isAvgRow","useTableContext","onHighlightedRowChange","isHighlightedRow","flattedColumnsWithoutChildren","isErrorRow","columns","embedExpandable","hoverRow","draggable","onDragStartContext","onDragStart","onDragLeaveContext","onDragLeave","onDragEndContext","onDragEnd","onDropContext","onDrop","dragRowRef","onRow","raw","rowId","id","React","useState","dragging","setDragging","dragDirection","setDragDirection","onDragStartContextLatest","useLatestCallback","useCallback","evt","stopPropagation","clientY","current","startClientY","dragId","dataTransfer","setData","JSON","stringify","sourceId","dragNode","onDragOver","preventDefault","hoverClientY","onDragLeaveContextLatest","undefined","onDragEndContextLatest","clearData","onDropContextLatest","targetId","parse","getData","error","console","highlighted","hovered","hasError","cls","cx","firstColumn","find","item","dataKey","SELECTION_DATA_KEY","EMBED_DATA_KEY","rowExtraProps","isFunction","className","key","onDoubleClick","setAttrAria","map","column","idx","TableCell","isSwitcherCol","TableEmbedRow","colSpan","length","__DEV__","displayName"],"mappings":"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"}
|
|
@@ -0,0 +1,190 @@
|
|
|
1
|
+
/** @LICENSE
|
|
2
|
+
* @hi-ui/table
|
|
3
|
+
* https://github.com/XiaoMi/hiui/tree/master/packages/ui/table#readme
|
|
4
|
+
*
|
|
5
|
+
* Copyright (c) HIUI <mi-hiui@xiaomi.com>.
|
|
6
|
+
*
|
|
7
|
+
* This source code is licensed under the MIT license found in the
|
|
8
|
+
* LICENSE file in the root directory of this source tree.
|
|
9
|
+
*/
|
|
10
|
+
import _regeneratorRuntime from '@babel/runtime/regenerator';
|
|
11
|
+
import { __awaiter } from 'tslib';
|
|
12
|
+
import React, { forwardRef, useRef, useEffect } from 'react';
|
|
13
|
+
import { getPrefixCls, cx } from '@hi-ui/classname';
|
|
14
|
+
import { __DEV__ } from '@hi-ui/env';
|
|
15
|
+
import { SettingOutlined, MenuOutlined } from '@hi-ui/icons';
|
|
16
|
+
import { IconButton } from '@hi-ui/icon-button';
|
|
17
|
+
import { useToggle } from '@hi-ui/use-toggle';
|
|
18
|
+
import { useLatestCallback } from '@hi-ui/use-latest';
|
|
19
|
+
import { useLocaleContext } from '@hi-ui/locale-context';
|
|
20
|
+
import { runIfFunc } from './utils/func-utils/lib/esm/index.js';
|
|
21
|
+
import { useDrop, useDrag } from './hooks/use-drag-sorter/lib/esm/index.js';
|
|
22
|
+
import { Drawer } from '@hi-ui/drawer';
|
|
23
|
+
import { Button } from '@hi-ui/button';
|
|
24
|
+
import { Checkbox } from '@hi-ui/checkbox';
|
|
25
|
+
|
|
26
|
+
var _prefix = getPrefixCls('table-setting');
|
|
27
|
+
/**
|
|
28
|
+
* 表头右侧高级设置菜单(抽屉式)
|
|
29
|
+
*/
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
var TableSettingMenu = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
33
|
+
var _ref$prefixCls = _ref.prefixCls,
|
|
34
|
+
prefixCls = _ref$prefixCls === void 0 ? _prefix : _ref$prefixCls,
|
|
35
|
+
sortedCols = _ref.sortedCols,
|
|
36
|
+
setSortCols = _ref.setSortCols,
|
|
37
|
+
cacheSortedCols = _ref.cacheSortedCols,
|
|
38
|
+
setCacheSortedCols = _ref.setCacheSortedCols,
|
|
39
|
+
hiddenColKeys = _ref.hiddenColKeys,
|
|
40
|
+
setHiddenColKeys = _ref.setHiddenColKeys,
|
|
41
|
+
cacheHiddenColKeys = _ref.cacheHiddenColKeys,
|
|
42
|
+
setCacheHiddenColKeys = _ref.setCacheHiddenColKeys;
|
|
43
|
+
var i18n = useLocaleContext();
|
|
44
|
+
var dropProps = useDrop({
|
|
45
|
+
draggable: true,
|
|
46
|
+
idFieldName: 'dataKey',
|
|
47
|
+
onSwap: function onSwap(dragItem, dropItem, direction, info) {
|
|
48
|
+
return __awaiter(void 0, void 0, void 0, /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
|
|
49
|
+
return _regeneratorRuntime.wrap(function _callee$(_context) {
|
|
50
|
+
while (1) {
|
|
51
|
+
switch (_context.prev = _context.next) {
|
|
52
|
+
case 0:
|
|
53
|
+
setCacheSortedCols(function (prev) {
|
|
54
|
+
var nextCacheSortColKeys = [].concat(prev);
|
|
55
|
+
|
|
56
|
+
var _nextCacheSortColKeys = nextCacheSortColKeys.splice(info.dragIndex, 1),
|
|
57
|
+
removed = _nextCacheSortColKeys[0];
|
|
58
|
+
|
|
59
|
+
nextCacheSortColKeys.splice(info.dropIndex, 0, removed);
|
|
60
|
+
return nextCacheSortColKeys;
|
|
61
|
+
});
|
|
62
|
+
return _context.abrupt("return", true);
|
|
63
|
+
|
|
64
|
+
case 2:
|
|
65
|
+
case "end":
|
|
66
|
+
return _context.stop();
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
}, _callee);
|
|
70
|
+
}));
|
|
71
|
+
}
|
|
72
|
+
});
|
|
73
|
+
|
|
74
|
+
var _useToggle = useToggle(),
|
|
75
|
+
menuVisible = _useToggle[0],
|
|
76
|
+
menuVisibleAction = _useToggle[1];
|
|
77
|
+
|
|
78
|
+
var resetLatest = useLatestCallback(function () {
|
|
79
|
+
setCacheHiddenColKeys(hiddenColKeys);
|
|
80
|
+
setCacheSortedCols(sortedCols);
|
|
81
|
+
}); // 当 visible 由 false 变为 true 时触发
|
|
82
|
+
|
|
83
|
+
var prevShowPopperRef = useRef(!menuVisible);
|
|
84
|
+
useEffect(function () {
|
|
85
|
+
if (!prevShowPopperRef.current && menuVisible) {
|
|
86
|
+
resetLatest();
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
prevShowPopperRef.current = menuVisible;
|
|
90
|
+
}, [menuVisible, resetLatest]);
|
|
91
|
+
|
|
92
|
+
var onConfirm = function onConfirm() {
|
|
93
|
+
// 触发 table 更新列显隐及排序
|
|
94
|
+
setHiddenColKeys(cacheHiddenColKeys);
|
|
95
|
+
setSortCols(cacheSortedCols);
|
|
96
|
+
menuVisibleAction.off();
|
|
97
|
+
};
|
|
98
|
+
|
|
99
|
+
var cls = cx(prefixCls);
|
|
100
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
101
|
+
ref: ref,
|
|
102
|
+
className: cls
|
|
103
|
+
}, /*#__PURE__*/React.createElement(IconButton, {
|
|
104
|
+
icon: /*#__PURE__*/React.createElement(SettingOutlined, null),
|
|
105
|
+
onClick: menuVisibleAction.not
|
|
106
|
+
}), /*#__PURE__*/React.createElement(Drawer, {
|
|
107
|
+
className: prefixCls + "__drawer",
|
|
108
|
+
title: i18n.get('table.fieldExplorer'),
|
|
109
|
+
visible: menuVisible,
|
|
110
|
+
onClose: menuVisibleAction.off,
|
|
111
|
+
footer: /*#__PURE__*/React.createElement("div", {
|
|
112
|
+
className: prefixCls + "__btn-group"
|
|
113
|
+
}, /*#__PURE__*/React.createElement(Button, {
|
|
114
|
+
key: 0,
|
|
115
|
+
className: prefixCls + "__btn-cancel",
|
|
116
|
+
onClick: resetLatest
|
|
117
|
+
}, i18n.get('table.reset')), /*#__PURE__*/React.createElement(Button, {
|
|
118
|
+
key: 1,
|
|
119
|
+
className: prefixCls + "__btn-confirm",
|
|
120
|
+
onClick: onConfirm,
|
|
121
|
+
type: "primary"
|
|
122
|
+
}, i18n.get('table.confirm')))
|
|
123
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
124
|
+
className: prefixCls + "__content"
|
|
125
|
+
}, cacheSortedCols.map(function (col, index) {
|
|
126
|
+
return /*#__PURE__*/React.createElement(TableSettingMenuItem, {
|
|
127
|
+
key: col.dataKey,
|
|
128
|
+
prefixCls: prefixCls,
|
|
129
|
+
column: col,
|
|
130
|
+
index: index,
|
|
131
|
+
dropProps: dropProps,
|
|
132
|
+
cacheHiddenColKeys: cacheHiddenColKeys,
|
|
133
|
+
setCacheHiddenColKeys: setCacheHiddenColKeys
|
|
134
|
+
});
|
|
135
|
+
}))));
|
|
136
|
+
});
|
|
137
|
+
|
|
138
|
+
if (__DEV__) {
|
|
139
|
+
TableSettingMenu.displayName = 'TableSettingMenu';
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
function TableSettingMenuItem(_ref2) {
|
|
143
|
+
var prefixCls = _ref2.prefixCls,
|
|
144
|
+
column = _ref2.column,
|
|
145
|
+
cacheHiddenColKeys = _ref2.cacheHiddenColKeys,
|
|
146
|
+
setCacheHiddenColKeys = _ref2.setCacheHiddenColKeys,
|
|
147
|
+
dropProps = _ref2.dropProps,
|
|
148
|
+
index = _ref2.index;
|
|
149
|
+
var dataKey = column.dataKey,
|
|
150
|
+
title = column.title;
|
|
151
|
+
|
|
152
|
+
var _useDrag = useDrag(Object.assign(Object.assign({}, dropProps), {
|
|
153
|
+
item: column,
|
|
154
|
+
index: index,
|
|
155
|
+
idFieldName: 'dataKey',
|
|
156
|
+
dataTransferKey: 'table-setting-data'
|
|
157
|
+
})),
|
|
158
|
+
dragging = _useDrag.dragging,
|
|
159
|
+
direction = _useDrag.direction,
|
|
160
|
+
getDragTriggerProps = _useDrag.getDragTriggerProps,
|
|
161
|
+
getDropTriggerProps = _useDrag.getDropTriggerProps;
|
|
162
|
+
|
|
163
|
+
return /*#__PURE__*/React.createElement("div", Object.assign({
|
|
164
|
+
className: cx(prefixCls + "-item", dragging && prefixCls + "-item--dragging", direction && prefixCls + "-item--direction-" + direction)
|
|
165
|
+
}, getDragTriggerProps(), getDropTriggerProps()), /*#__PURE__*/React.createElement("div", {
|
|
166
|
+
className: prefixCls + "-item__wrap"
|
|
167
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
168
|
+
style: {
|
|
169
|
+
display: 'flex',
|
|
170
|
+
alignItems: 'center'
|
|
171
|
+
}
|
|
172
|
+
}, /*#__PURE__*/React.createElement(Checkbox, {
|
|
173
|
+
checked: !cacheHiddenColKeys.includes(dataKey),
|
|
174
|
+
onChange: function onChange(evt) {
|
|
175
|
+
var shouldChecked = evt.target.checked;
|
|
176
|
+
var nextCacheHiddenColKeys = shouldChecked ? cacheHiddenColKeys.filter(function (col) {
|
|
177
|
+
return col !== dataKey;
|
|
178
|
+
}) : cacheHiddenColKeys.concat(dataKey);
|
|
179
|
+
setCacheHiddenColKeys(nextCacheHiddenColKeys);
|
|
180
|
+
}
|
|
181
|
+
}), /*#__PURE__*/React.createElement("span", {
|
|
182
|
+
style: {
|
|
183
|
+
display: 'inline-block',
|
|
184
|
+
marginLeft: 9
|
|
185
|
+
}
|
|
186
|
+
}, runIfFunc(title))), /*#__PURE__*/React.createElement(MenuOutlined, null)));
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
export { TableSettingMenu };
|
|
190
|
+
//# sourceMappingURL=TableSettingMenu.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TableSettingMenu.js","sources":["../../src/TableSettingMenu.tsx"],"sourcesContent":[null],"names":["_prefix","getPrefixCls","TableSettingMenu","forwardRef","ref","prefixCls","sortedCols","setSortCols","cacheSortedCols","setCacheSortedCols","hiddenColKeys","setHiddenColKeys","cacheHiddenColKeys","setCacheHiddenColKeys","i18n","useLocaleContext","dropProps","useDrop","draggable","idFieldName","onSwap","dragItem","dropItem","direction","info","prev","nextCacheSortColKeys","splice","dragIndex","removed","dropIndex","useToggle","menuVisible","menuVisibleAction","resetLatest","useLatestCallback","prevShowPopperRef","useRef","useEffect","current","onConfirm","off","cls","cx","React","className","IconButton","icon","SettingOutlined","onClick","not","Drawer","title","get","visible","onClose","footer","Button","key","type","map","col","index","TableSettingMenuItem","dataKey","column","__DEV__","displayName","useDrag","item","dataTransferKey","dragging","getDragTriggerProps","getDropTriggerProps","style","display","alignItems","Checkbox","checked","includes","onChange","evt","shouldChecked","target","nextCacheHiddenColKeys","filter","concat","marginLeft","runIfFunc","MenuOutlined"],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/** @LICENSE
|
|
2
|
+
* @hi-ui/table
|
|
3
|
+
* https://github.com/XiaoMi/hiui/tree/master/packages/ui/table#readme
|
|
4
|
+
*
|
|
5
|
+
* Copyright (c) HIUI <mi-hiui@xiaomi.com>.
|
|
6
|
+
*
|
|
7
|
+
* This source code is licensed under the MIT license found in the
|
|
8
|
+
* LICENSE file in the root directory of this source tree.
|
|
9
|
+
*/
|
|
10
|
+
import { useContext, createContext } from 'react';
|
|
11
|
+
var TableContext = /*#__PURE__*/createContext(null);
|
|
12
|
+
var TableProvider = TableContext.Provider;
|
|
13
|
+
|
|
14
|
+
var useTableContext = function useTableContext() {
|
|
15
|
+
var context = useContext(TableContext);
|
|
16
|
+
|
|
17
|
+
if (!context) {
|
|
18
|
+
throw new Error('The TableContext context should using in Table.');
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
return context;
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
export { TableProvider, useTableContext };
|
|
25
|
+
//# sourceMappingURL=context.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context.js","sources":["../../src/context.ts"],"sourcesContent":[null],"names":["TableContext","createContext","TableProvider","Provider","useTableContext","context","useContext","Error"],"mappings":";;;;;;;;;;AAMA,IAAMA,YAAY,gBAAGC,aAAa,CAUhC,IAVgC,CAAlC;IAYaC,aAAa,GAAGF,YAAY,CAACG;;IAE7BC,eAAe,GAAG,SAAlBA,eAAkB;MACvBC,OAAO,GAAGC,UAAU,CAACN,YAAD;;MAEtB,CAACK,SAAS;UACN,IAAIE,KAAJ,CAAU,iDAAV;;;SAGDF;;;"}
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
/** @LICENSE
|
|
2
|
+
* @hi-ui/table
|
|
3
|
+
* https://github.com/XiaoMi/hiui/tree/master/packages/ui/table#readme
|
|
4
|
+
*
|
|
5
|
+
* Copyright (c) HIUI <mi-hiui@xiaomi.com>.
|
|
6
|
+
*
|
|
7
|
+
* This source code is licensed under the MIT license found in the
|
|
8
|
+
* LICENSE file in the root directory of this source tree.
|
|
9
|
+
*/
|
|
10
|
+
import _regeneratorRuntime from '@babel/runtime/regenerator';
|
|
11
|
+
import { __awaiter } from 'tslib';
|
|
12
|
+
import { useCallback } from 'react';
|
|
13
|
+
import { useLatestCallback } from '@hi-ui/use-latest';
|
|
14
|
+
import { cloneTree, addChildrenById } from '@hi-ui/tree-utils';
|
|
15
|
+
import { useCheckState } from '@hi-ui/use-check-state';
|
|
16
|
+
|
|
17
|
+
var useAsyncSwitch = function useAsyncSwitch(setCascaderData, onExpand, onLoadChildren) {
|
|
18
|
+
var onLoadChildrenLatest = useLatestCallback(onLoadChildren); // 加载节点
|
|
19
|
+
|
|
20
|
+
var loadChildren = useCallback(function (node) {
|
|
21
|
+
return __awaiter(void 0, void 0, void 0, /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
|
|
22
|
+
var childrenNodes;
|
|
23
|
+
return _regeneratorRuntime.wrap(function _callee$(_context) {
|
|
24
|
+
while (1) {
|
|
25
|
+
switch (_context.prev = _context.next) {
|
|
26
|
+
case 0:
|
|
27
|
+
_context.next = 2;
|
|
28
|
+
return onLoadChildrenLatest(node);
|
|
29
|
+
|
|
30
|
+
case 2:
|
|
31
|
+
childrenNodes = _context.sent;
|
|
32
|
+
|
|
33
|
+
if (Array.isArray(childrenNodes)) {
|
|
34
|
+
setCascaderData(function (prev) {
|
|
35
|
+
var nextTreeData = cloneTree(prev);
|
|
36
|
+
addChildrenById(nextTreeData, node.id, childrenNodes);
|
|
37
|
+
return nextTreeData;
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
case 4:
|
|
42
|
+
case "end":
|
|
43
|
+
return _context.stop();
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
}, _callee);
|
|
47
|
+
}));
|
|
48
|
+
}, [onLoadChildrenLatest, setCascaderData]);
|
|
49
|
+
|
|
50
|
+
var _useCheckState = useCheckState(),
|
|
51
|
+
loadingIds = _useCheckState.state,
|
|
52
|
+
addLoadingIds = _useCheckState.add,
|
|
53
|
+
removeLoadingIds = _useCheckState.remove;
|
|
54
|
+
|
|
55
|
+
var onExpandLatest = useLatestCallback(onExpand);
|
|
56
|
+
var onNodeSwitch = useCallback(function (node, onlyExpand) {
|
|
57
|
+
if (onlyExpand === void 0) {
|
|
58
|
+
onlyExpand = false;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
return __awaiter(void 0, void 0, void 0, /*#__PURE__*/_regeneratorRuntime.mark(function _callee2() {
|
|
62
|
+
var id, children, isLeaf;
|
|
63
|
+
return _regeneratorRuntime.wrap(function _callee2$(_context2) {
|
|
64
|
+
while (1) {
|
|
65
|
+
switch (_context2.prev = _context2.next) {
|
|
66
|
+
case 0:
|
|
67
|
+
// 直接触发选中该节点
|
|
68
|
+
onExpandLatest(node, onlyExpand);
|
|
69
|
+
id = node.id, children = node.children, isLeaf = node.isLeaf;
|
|
70
|
+
|
|
71
|
+
if (!children) {
|
|
72
|
+
_context2.next = 4;
|
|
73
|
+
break;
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
return _context2.abrupt("return");
|
|
77
|
+
|
|
78
|
+
case 4:
|
|
79
|
+
if (!isLeaf) {
|
|
80
|
+
_context2.next = 6;
|
|
81
|
+
break;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
return _context2.abrupt("return");
|
|
85
|
+
|
|
86
|
+
case 6:
|
|
87
|
+
if (!onLoadChildren) {
|
|
88
|
+
_context2.next = 17;
|
|
89
|
+
break;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
addLoadingIds(id);
|
|
93
|
+
_context2.prev = 8;
|
|
94
|
+
_context2.next = 11;
|
|
95
|
+
return loadChildren(node);
|
|
96
|
+
|
|
97
|
+
case 11:
|
|
98
|
+
removeLoadingIds(id);
|
|
99
|
+
_context2.next = 17;
|
|
100
|
+
break;
|
|
101
|
+
|
|
102
|
+
case 14:
|
|
103
|
+
_context2.prev = 14;
|
|
104
|
+
_context2.t0 = _context2["catch"](8);
|
|
105
|
+
removeLoadingIds(id);
|
|
106
|
+
|
|
107
|
+
case 17:
|
|
108
|
+
case "end":
|
|
109
|
+
return _context2.stop();
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
}, _callee2, null, [[8, 14]]);
|
|
113
|
+
}));
|
|
114
|
+
}, [loadChildren, onLoadChildren, onExpandLatest, addLoadingIds, removeLoadingIds]);
|
|
115
|
+
|
|
116
|
+
var isLoadingId = function isLoadingId(id) {
|
|
117
|
+
return loadingIds.indexOf(id) !== -1;
|
|
118
|
+
};
|
|
119
|
+
|
|
120
|
+
return [isLoadingId, onNodeSwitch];
|
|
121
|
+
};
|
|
122
|
+
|
|
123
|
+
export { useAsyncSwitch };
|
|
124
|
+
//# sourceMappingURL=use-async-switch.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-async-switch.js","sources":["../../../src/hooks/use-async-switch.ts"],"sourcesContent":[null],"names":["useAsyncSwitch","setCascaderData","onExpand","onLoadChildren","onLoadChildrenLatest","useLatestCallback","loadChildren","useCallback","node","childrenNodes","Array","isArray","prev","nextTreeData","cloneTree","addChildrenById","id","useCheckState","loadingIds","state","addLoadingIds","add","removeLoadingIds","remove","onExpandLatest","onNodeSwitch","onlyExpand","children","isLeaf","isLoadingId","indexOf"],"mappings":";;;;;;;;;;;;;;;;IAMaA,cAAc,GAAG,SAAjBA,cAAiB,CAC5BC,eAD4B,EAE5BC,QAF4B,EAG5BC,cAH4B;MAKtBC,oBAAoB,GAAGC,iBAAiB,CAACF,cAAD;;MAGxCG,YAAY,GAAGC,WAAW,CAC9B,UAAOC,IAAP;;;;;;;;qBAC8BJ,oBAAoB,CAACI,IAAD;;;AAA1CC,cAAAA,6BAAAA;;kBAEFC,KAAK,CAACC,OAAND,CAAcD,aAAdC,GAA8B;AAChCT,gBAAAA,eAAe,CAAC,UAACW,IAAD;sBACRC,YAAY,GAAGC,SAAS,CAACF,IAAD;AAC9BG,kBAAAA,eAAe,CAACF,YAAD,EAAeL,IAAI,CAACQ,EAApB,EAAwBP,aAAxB,CAAfM;yBACOF;AAHM,iBAAA,CAAfZ;;;;;;;;;;AAL0B,GAAA,EAY9B,CAACG,oBAAD,EAAuBH,eAAvB,CAZ8B;;uBAe4CgB,aAAa;MAA1EC,UAAf,kBAAQC;MAAwBC,aAAhC,kBAA2BC;MAA4BC,gBAAvD,kBAA+CC;;MAGzCC,cAAc,GAAGnB,iBAAiB,CAACH,QAAD;MAElCuB,YAAY,GAAGlB,WAAW,CAC9B,UAAOC,IAAP,EAAgCkB,UAAhC;QAAgCA,UAAhC;AAAgCA,MAAAA,UAAhC,GAA6C,KAAbA;;;;;;;;;;AAE9BF,cAAAA,cAAc,CAAChB,IAAD,EAAOkB,UAAP,CAAdF;AAEQR,cAAAA,KAAyBR,KAAzBQ,EAAAA,EAAIW,WAAqBnB,KAArBmB,QAAJX,EAAcY,SAAWpB,KAAXoB,MAAdZ;;mBAEJW;;;;;;;;mBAIAC;;;;;;;;mBAIAzB;;;;;AACFiB,cAAAA,aAAa,CAACJ,EAAD,CAAbI;;;qBAEQd,YAAY,CAACE,IAAD;;;AAClBc,cAAAA,gBAAgB,CAACN,EAAD,CAAhBM;;;;;;;AAEAA,cAAAA,gBAAgB,CAACN,EAAD,CAAhBM;;;;;;;;;AArBwB,GAAA,EAyB9B,CAAChB,YAAD,EAAeH,cAAf,EAA+BqB,cAA/B,EAA+CJ,aAA/C,EAA8DE,gBAA9D,CAzB8B;;MA4B1BO,WAAW,GAAG,SAAdA,WAAc,CAACb,EAAD;WAAyBE,UAAU,CAACY,OAAXZ,CAAmBF,EAAnBE,MAA2B,CAAC;AAAzE;;SAEO,CAACW,WAAD,EAAcJ,YAAd;;;"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
/** @LICENSE
|
|
2
|
+
* @hi-ui/table
|
|
3
|
+
* https://github.com/XiaoMi/hiui/tree/master/packages/ui/table#readme
|
|
4
|
+
*
|
|
5
|
+
* Copyright (c) HIUI <mi-hiui@xiaomi.com>.
|
|
6
|
+
*
|
|
7
|
+
* This source code is licensed under the MIT license found in the
|
|
8
|
+
* LICENSE file in the root directory of this source tree.
|
|
9
|
+
*/
|
|
10
|
+
import { useCheck } from '@hi-ui/use-check';
|
|
11
|
+
import React from 'react';
|
|
12
|
+
import { useUncontrolledState } from '@hi-ui/use-uncontrolled-state';
|
|
13
|
+
var DEFAULT_CHECKED_ROW_KEYS = [];
|
|
14
|
+
|
|
15
|
+
var useTableCheck = function useTableCheck(_ref) {
|
|
16
|
+
var rowSelection = _ref.rowSelection,
|
|
17
|
+
flattedData = _ref.flattedData,
|
|
18
|
+
fieldKey = _ref.fieldKey;
|
|
19
|
+
var checkRowIsDisabledCheckbox = React.useCallback(function (rowItem) {
|
|
20
|
+
var checkboxConfig = rowSelection && rowSelection.getCheckboxConfig && rowSelection.getCheckboxConfig(rowItem);
|
|
21
|
+
return checkboxConfig && checkboxConfig.disabled || false;
|
|
22
|
+
}, [rowSelection]);
|
|
23
|
+
|
|
24
|
+
var _useUncontrolledState = useUncontrolledState(DEFAULT_CHECKED_ROW_KEYS, rowSelection === null || rowSelection === void 0 ? void 0 : rowSelection.selectedRowKeys, rowSelection === null || rowSelection === void 0 ? void 0 : rowSelection.onChange),
|
|
25
|
+
checkedRowKeys = _useUncontrolledState[0],
|
|
26
|
+
trySetCheckedRowKeys = _useUncontrolledState[1]; // TODO: 暂时不支持正反选
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
var _useCheck = useCheck({
|
|
30
|
+
checkedIds: checkedRowKeys,
|
|
31
|
+
onCheck: trySetCheckedRowKeys,
|
|
32
|
+
idFieldName: fieldKey
|
|
33
|
+
}),
|
|
34
|
+
onCheckedRowKeysChange = _useCheck[0],
|
|
35
|
+
isCheckedRowKey = _useCheck[1]; // 判断是否全选
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
var _React$useMemo = React.useMemo(function () {
|
|
39
|
+
if (rowSelection) {
|
|
40
|
+
if (flattedData.length === 0 || checkedRowKeys.length === 0) {
|
|
41
|
+
return [false, false];
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
var _checkedAll = flattedData.filter(function (item) {
|
|
45
|
+
return !checkRowIsDisabledCheckbox(item.raw);
|
|
46
|
+
}) // TODO: 数组项完全匹配工具函数
|
|
47
|
+
. // TODO: 数组项完全匹配工具函数
|
|
48
|
+
every(function (item) {
|
|
49
|
+
return isCheckedRowKey(item.id);
|
|
50
|
+
});
|
|
51
|
+
|
|
52
|
+
return [_checkedAll, _checkedAll ? false : checkedRowKeys.length > 0];
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
return [false, false];
|
|
56
|
+
}, [flattedData, rowSelection, isCheckedRowKey, checkedRowKeys.length, checkRowIsDisabledCheckbox]),
|
|
57
|
+
checkedAll = _React$useMemo[0],
|
|
58
|
+
semiChecked = _React$useMemo[1];
|
|
59
|
+
|
|
60
|
+
var tryCheckAllRow = React.useCallback(function () {
|
|
61
|
+
if (checkedAll) {
|
|
62
|
+
trySetCheckedRowKeys([], [], false);
|
|
63
|
+
return;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
var targetItems = flattedData.filter(function (item) {
|
|
67
|
+
return !checkRowIsDisabledCheckbox(item.raw);
|
|
68
|
+
});
|
|
69
|
+
var checkedRowKeys = targetItems.map(function (item) {
|
|
70
|
+
return item.id;
|
|
71
|
+
});
|
|
72
|
+
trySetCheckedRowKeys(checkedRowKeys, targetItems, true);
|
|
73
|
+
}, [trySetCheckedRowKeys, flattedData, checkRowIsDisabledCheckbox, checkedAll]);
|
|
74
|
+
return {
|
|
75
|
+
tryCheckAllRow: tryCheckAllRow,
|
|
76
|
+
checkedAll: checkedAll,
|
|
77
|
+
semiChecked: semiChecked,
|
|
78
|
+
onCheckedRowKeysChange: onCheckedRowKeysChange,
|
|
79
|
+
isCheckedRowKey: isCheckedRowKey,
|
|
80
|
+
checkedRowKeys: checkedRowKeys,
|
|
81
|
+
trySetCheckedRowKeys: trySetCheckedRowKeys,
|
|
82
|
+
checkRowIsDisabledCheckbox: checkRowIsDisabledCheckbox
|
|
83
|
+
};
|
|
84
|
+
};
|
|
85
|
+
|
|
86
|
+
export { useTableCheck };
|
|
87
|
+
//# sourceMappingURL=use-check.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-check.js","sources":["../../../src/hooks/use-check.ts"],"sourcesContent":[null],"names":["DEFAULT_CHECKED_ROW_KEYS","useTableCheck","rowSelection","flattedData","fieldKey","checkRowIsDisabledCheckbox","React","useCallback","rowItem","checkboxConfig","getCheckboxConfig","disabled","useUncontrolledState","selectedRowKeys","onChange","checkedRowKeys","trySetCheckedRowKeys","useCheck","checkedIds","onCheck","idFieldName","onCheckedRowKeysChange","isCheckedRowKey","useMemo","length","checkedAll","filter","item","raw","every","id","semiChecked","tryCheckAllRow","targetItems","map"],"mappings":";;;;;;;;;;;;AAKA,IAAMA,wBAAwB,GAAG,EAAjC;;IAEaC,aAAa,GAAG,SAAhBA,aAAgB,KAAA;MAC3BC,oBAAAA;MACAC,mBAAAA;MACAC,gBAAAA;MAMMC,0BAA0B,GAAGC,KAAK,CAACC,WAAND,CACjC,UAACE,OAAD;QACQC,cAAc,GAClBP,YAAY,IAAIA,YAAY,CAACQ,iBAA7BR,IAAkDA,YAAY,CAACQ,iBAAbR,CAA+BM,OAA/BN;WAE5CO,cAAc,IAAIA,cAAc,CAACE,QAAjCF,IAA8C;AALvB,GAAAH,EAOjC,CAACJ,YAAD,CAPiCI;;8BAUYM,oBAAoB,CACjEZ,wBADiE,EAEjEE,YAAY,SAAZA,IAAAA,YAAY,WAAZA,SAAAA,GAAAA,YAAY,CAAEW,eAFmD,EAGjEX,YAAY,SAAZA,IAAAA,YAAY,WAAZA,SAAAA,GAAAA,YAAY,CAAEY,QAHmD;MAA5DC,cAAP;MAAuBC,oBAAvB;;;kBAOkDC,QAAQ,CAAC;AACzDC,IAAAA,UAAU,EAAEH,cAD6C;AAEzDI,IAAAA,OAAO,EAAEH,oBAFgD;AAGzDI,IAAAA,WAAW,EAAEhB;AAH4C,GAAD;MAAnDiB,sBAAP;MAA+BC,eAA/B;;;uBAOkChB,KAAK,CAACiB,OAANjB,CAAc;QAC1CJ,cAAc;UACZC,WAAW,CAACqB,MAAZrB,KAAuB,CAAvBA,IAA4BY,cAAc,CAACS,MAAfT,KAA0B,GAAG;eACpD,CAAC,KAAD,EAAQ,KAAR;;;UAGHU,WAAU,GAAGtB,WAAW,CAC3BuB,MADgBvB,CACT,UAACwB,IAAD;eAAU,CAACtB,0BAA0B,CAACsB,IAAI,CAACC,GAAN;AAD5B,OAAAzB;AAAAA;AAGhB0B,MAAAA,KAHgB1B,CAGV,UAACwB,IAAD;eAAUL,eAAe,CAACK,IAAI,CAACG,EAAN;AAHf,OAAA3B;;aAKZ,CAACsB,WAAD,EAAaA,WAAU,GAAG,KAAH,GAAWV,cAAc,CAACS,MAAfT,GAAwB,CAA1D;;;WAGF,CAAC,KAAD,EAAQ,KAAR;AAdyB,GAAAT,EAe/B,CACDH,WADC,EAEDD,YAFC,EAGDoB,eAHC,EAIDP,cAAc,CAACS,MAJd,EAKDnB,0BALC,CAf+BC;MAA3BmB,UAAP;MAAmBM,WAAnB;;MAuBMC,cAAc,GAAG1B,KAAK,CAACC,WAAND,CAAkB;QACnCmB,YAAY;AACdT,MAAAA,oBAAoB,CAAC,EAAD,EAAY,EAAZ,EAAgB,KAAhB,CAApBA;;;;QAIIiB,WAAW,GAAG9B,WAAW,CAACuB,MAAZvB,CAAmB,UAACwB,IAAD;aAAe,CAACtB,0BAA0B,CAACsB,IAAI,CAACC,GAAN;AAA7D,KAAAzB;QACdY,cAAc,GAAGkB,WAAW,CAACC,GAAZD,CAAgB,UAACN,IAAD;aAAeA,IAAI,CAACG;AAApC,KAAAG;AAEvBjB,IAAAA,oBAAoB,CAACD,cAAD,EAAiBkB,WAAjB,EAA8B,IAA9B,CAApBjB;AATqB,GAAAV,EAUpB,CAACU,oBAAD,EAAuBb,WAAvB,EAAoCE,0BAApC,EAAgEoB,UAAhE,CAVoBnB;SAYhB;AACL0B,IAAAA,cAAc,EAAdA,cADK;AAELP,IAAAA,UAAU,EAAVA,UAFK;AAGLM,IAAAA,WAAW,EAAXA,WAHK;AAILV,IAAAA,sBAAsB,EAAtBA,sBAJK;AAKLC,IAAAA,eAAe,EAAfA,eALK;AAMLP,IAAAA,cAAc,EAAdA,cANK;AAOLC,IAAAA,oBAAoB,EAApBA,oBAPK;AAQLX,IAAAA,0BAA0B,EAA1BA;AARK;;;"}
|