@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,287 @@
|
|
|
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
|
+
'use strict';
|
|
11
|
+
|
|
12
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
13
|
+
|
|
14
|
+
Object.defineProperty(exports, '__esModule', {
|
|
15
|
+
value: true
|
|
16
|
+
});
|
|
17
|
+
|
|
18
|
+
var _regeneratorRuntime = require('@babel/runtime/regenerator');
|
|
19
|
+
|
|
20
|
+
var tslib = require('tslib');
|
|
21
|
+
|
|
22
|
+
var React = require('react');
|
|
23
|
+
|
|
24
|
+
var useLatest = require('@hi-ui/use-latest');
|
|
25
|
+
|
|
26
|
+
var typeAssertion = require('@hi-ui/type-assertion');
|
|
27
|
+
|
|
28
|
+
function _interopDefaultLegacy(e) {
|
|
29
|
+
return e && _typeof(e) === 'object' && 'default' in e ? e : {
|
|
30
|
+
'default': e
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
var _regeneratorRuntime__default = /*#__PURE__*/_interopDefaultLegacy(_regeneratorRuntime);
|
|
35
|
+
/** @LICENSE
|
|
36
|
+
* @hi-ui/use-drag-sorter
|
|
37
|
+
* https://github.com/XiaoMi/hiui/tree/master/packages/hooks/use-drag-sorter#readme
|
|
38
|
+
*
|
|
39
|
+
* Copyright (c) HIUI <mi-hiui@xiaomi.com>.
|
|
40
|
+
*
|
|
41
|
+
* This source code is licensed under the MIT license found in the
|
|
42
|
+
* LICENSE file in the root directory of this source tree.
|
|
43
|
+
*/
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
var useDrop = function useDrop(_ref) {
|
|
47
|
+
var draggable = _ref.draggable,
|
|
48
|
+
onDropEnd = _ref.onDropEnd,
|
|
49
|
+
onSwapProp = _ref.onSwap,
|
|
50
|
+
_ref$idFieldName = _ref.idFieldName,
|
|
51
|
+
idFieldName = _ref$idFieldName === void 0 ? 'id' : _ref$idFieldName;
|
|
52
|
+
var dragInfoRef = React.useRef(null);
|
|
53
|
+
var onDropEndLatest = useLatest.useLatestCallback(onDropEnd);
|
|
54
|
+
var swapLatest = useLatest.useLatestCallback(onSwapProp);
|
|
55
|
+
var onSwap = React.useCallback(function (sourceId, targetId, dragDirection) {
|
|
56
|
+
return tslib.__awaiter(void 0, void 0, void 0, /*#__PURE__*/_regeneratorRuntime__default['default'].mark(function _callee() {
|
|
57
|
+
var info, dragItem, dropItem, result;
|
|
58
|
+
return _regeneratorRuntime__default['default'].wrap(function _callee$(_context) {
|
|
59
|
+
while (1) {
|
|
60
|
+
switch (_context.prev = _context.next) {
|
|
61
|
+
case 0:
|
|
62
|
+
if (draggable) {
|
|
63
|
+
_context.next = 2;
|
|
64
|
+
break;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
return _context.abrupt("return");
|
|
68
|
+
|
|
69
|
+
case 2:
|
|
70
|
+
if (!(targetId === sourceId)) {
|
|
71
|
+
_context.next = 4;
|
|
72
|
+
break;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
return _context.abrupt("return");
|
|
76
|
+
|
|
77
|
+
case 4:
|
|
78
|
+
if (dragInfoRef.current) {
|
|
79
|
+
_context.next = 6;
|
|
80
|
+
break;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
return _context.abrupt("return");
|
|
84
|
+
|
|
85
|
+
case 6:
|
|
86
|
+
// TODO: 根据 id 查询数据原始数据或者直接使用引用值,两者选择,避免bug
|
|
87
|
+
info = dragInfoRef.current;
|
|
88
|
+
dragInfoRef.current = null;
|
|
89
|
+
dragItem = info.dragItem, dropItem = info.dropItem;
|
|
90
|
+
|
|
91
|
+
if (!(!dragItem || !dropItem)) {
|
|
92
|
+
_context.next = 11;
|
|
93
|
+
break;
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
return _context.abrupt("return");
|
|
97
|
+
|
|
98
|
+
case 11:
|
|
99
|
+
if (!(dragItem[idFieldName] !== sourceId || targetId !== dropItem[idFieldName])) {
|
|
100
|
+
_context.next = 13;
|
|
101
|
+
break;
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
return _context.abrupt("return");
|
|
105
|
+
|
|
106
|
+
case 13:
|
|
107
|
+
_context.next = 15;
|
|
108
|
+
return swapLatest(dragItem, dropItem, dragDirection, info);
|
|
109
|
+
|
|
110
|
+
case 15:
|
|
111
|
+
result = _context.sent;
|
|
112
|
+
|
|
113
|
+
if (result === true) {
|
|
114
|
+
onDropEndLatest(dragItem, dropItem, dragDirection);
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
case 17:
|
|
118
|
+
case "end":
|
|
119
|
+
return _context.stop();
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
}, _callee);
|
|
123
|
+
}));
|
|
124
|
+
}, [draggable, onDropEndLatest, idFieldName, swapLatest]);
|
|
125
|
+
return {
|
|
126
|
+
draggable: draggable,
|
|
127
|
+
dragInfoRef: dragInfoRef,
|
|
128
|
+
onSwap: onSwap
|
|
129
|
+
};
|
|
130
|
+
};
|
|
131
|
+
/**
|
|
132
|
+
* TODO: What is UseDrag
|
|
133
|
+
*/
|
|
134
|
+
|
|
135
|
+
|
|
136
|
+
var useDrag = function useDrag(_ref2) {
|
|
137
|
+
var draggable = _ref2.draggable,
|
|
138
|
+
dragInfoRef = _ref2.dragInfoRef,
|
|
139
|
+
onHover = _ref2.onHover,
|
|
140
|
+
item = _ref2.item,
|
|
141
|
+
index = _ref2.index,
|
|
142
|
+
_ref2$idFieldName = _ref2.idFieldName,
|
|
143
|
+
idFieldName = _ref2$idFieldName === void 0 ? 'id' : _ref2$idFieldName,
|
|
144
|
+
_ref2$dataTransferKey = _ref2.dataTransferKey,
|
|
145
|
+
dataTransferKey = _ref2$dataTransferKey === void 0 ? 'data' : _ref2$dataTransferKey,
|
|
146
|
+
onDragStartProp = _ref2.onDragStart,
|
|
147
|
+
onDragOverProp = _ref2.onDragOver,
|
|
148
|
+
onDragLeaveProp = _ref2.onDragLeave,
|
|
149
|
+
onDragEndProp = _ref2.onDragEnd,
|
|
150
|
+
onDropProp = _ref2.onDrop,
|
|
151
|
+
onSwapProp = _ref2.onSwap;
|
|
152
|
+
|
|
153
|
+
var _useState = React.useState(false),
|
|
154
|
+
dragging = _useState[0],
|
|
155
|
+
setDragging = _useState[1];
|
|
156
|
+
|
|
157
|
+
var _useState2 = React.useState(),
|
|
158
|
+
dragDirection = _useState2[0],
|
|
159
|
+
setDragDirection = _useState2[1];
|
|
160
|
+
|
|
161
|
+
var onDragStartPropLatest = useLatest.useLatestCallback(onDragStartProp);
|
|
162
|
+
var itemLatestRef = useLatest.useLatestRef(item);
|
|
163
|
+
var onDragStart = React.useCallback(function (evt) {
|
|
164
|
+
if (!draggable) return;
|
|
165
|
+
evt.stopPropagation();
|
|
166
|
+
var item = itemLatestRef.current;
|
|
167
|
+
var clientY = evt.clientY;
|
|
168
|
+
var dragId = item[idFieldName];
|
|
169
|
+
dragInfoRef.current = {
|
|
170
|
+
startClientY: clientY,
|
|
171
|
+
dragId: dragId,
|
|
172
|
+
dragItem: item,
|
|
173
|
+
dragIndex: index
|
|
174
|
+
};
|
|
175
|
+
setDragging(true);
|
|
176
|
+
evt.dataTransfer.setData(dataTransferKey, JSON.stringify({
|
|
177
|
+
sourceId: dragId
|
|
178
|
+
}));
|
|
179
|
+
onDragStartPropLatest(evt, item);
|
|
180
|
+
}, [draggable, onDragStartPropLatest, idFieldName, dataTransferKey, itemLatestRef, dragInfoRef, index]);
|
|
181
|
+
var hoverLatestRef = useLatest.useLatestRef(onHover);
|
|
182
|
+
var onDragOverPropLatest = useLatest.useLatestCallback(onDragOverProp);
|
|
183
|
+
var onDragOver = React.useCallback(function (evt) {
|
|
184
|
+
if (!draggable) return;
|
|
185
|
+
evt.preventDefault();
|
|
186
|
+
evt.stopPropagation();
|
|
187
|
+
if (!dragInfoRef.current) return;
|
|
188
|
+
var item = itemLatestRef.current;
|
|
189
|
+
var _dragInfoRef$current = dragInfoRef.current,
|
|
190
|
+
startClientY = _dragInfoRef$current.startClientY,
|
|
191
|
+
dragId = _dragInfoRef$current.dragId;
|
|
192
|
+
if (dragId === item[idFieldName]) return;
|
|
193
|
+
var nextDirection;
|
|
194
|
+
|
|
195
|
+
if (typeAssertion.isFunction(hoverLatestRef.current)) {
|
|
196
|
+
nextDirection = hoverLatestRef.current(evt, item, dragInfoRef.current);
|
|
197
|
+
} else {
|
|
198
|
+
var hoverClientY = evt.clientY;
|
|
199
|
+
nextDirection = hoverClientY < startClientY ? UseDropNodeDirection.BEFORE : UseDropNodeDirection.AFTER;
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
setDragDirection(nextDirection);
|
|
203
|
+
onDragOverPropLatest(evt, item);
|
|
204
|
+
}, [draggable, onDragOverPropLatest, idFieldName, hoverLatestRef, dragInfoRef, itemLatestRef]);
|
|
205
|
+
var onDragLeavePropLatest = useLatest.useLatestCallback(onDragLeaveProp);
|
|
206
|
+
var onDragLeave = React.useCallback(function (evt) {
|
|
207
|
+
if (!draggable) return;
|
|
208
|
+
evt.preventDefault();
|
|
209
|
+
evt.stopPropagation();
|
|
210
|
+
var item = itemLatestRef.current;
|
|
211
|
+
setDragDirection(undefined);
|
|
212
|
+
onDragLeavePropLatest(evt, item);
|
|
213
|
+
}, [draggable, onDragLeavePropLatest, itemLatestRef]);
|
|
214
|
+
var onDragEndPropLatest = useLatest.useLatestCallback(onDragEndProp);
|
|
215
|
+
var onDragEnd = React.useCallback(function (evt) {
|
|
216
|
+
if (!draggable) return;
|
|
217
|
+
evt.preventDefault();
|
|
218
|
+
evt.stopPropagation();
|
|
219
|
+
var item = itemLatestRef.current;
|
|
220
|
+
evt.dataTransfer.clearData();
|
|
221
|
+
dragInfoRef.current = null;
|
|
222
|
+
setDragDirection(undefined);
|
|
223
|
+
setDragging(false);
|
|
224
|
+
onDragEndPropLatest(evt, item);
|
|
225
|
+
}, [draggable, dragInfoRef, onDragEndPropLatest, itemLatestRef]);
|
|
226
|
+
var onDropPropLatest = useLatest.useLatestCallback(onDropProp);
|
|
227
|
+
var onSwapPropLatest = useLatest.useLatestCallback(onSwapProp); // 放置目标元素时触发事件
|
|
228
|
+
|
|
229
|
+
var onDrop = React.useCallback(function (evt) {
|
|
230
|
+
if (!draggable) return;
|
|
231
|
+
if (!dragInfoRef.current) return;
|
|
232
|
+
var item = itemLatestRef.current;
|
|
233
|
+
var dragId = dragInfoRef.current.dragId;
|
|
234
|
+
evt.preventDefault();
|
|
235
|
+
evt.stopPropagation();
|
|
236
|
+
setDragDirection(undefined); // dragInfoRef.current = null
|
|
237
|
+
|
|
238
|
+
dragInfoRef.current.dropItem = item;
|
|
239
|
+
dragInfoRef.current.dropIndex = index;
|
|
240
|
+
var targetId = item[idFieldName];
|
|
241
|
+
if (dragId === targetId) return;
|
|
242
|
+
|
|
243
|
+
try {
|
|
244
|
+
var _JSON$parse = JSON.parse(evt.dataTransfer.getData(dataTransferKey)),
|
|
245
|
+
sourceId = _JSON$parse.sourceId;
|
|
246
|
+
|
|
247
|
+
onSwapPropLatest(sourceId, targetId, dragDirection);
|
|
248
|
+
} catch (error) {
|
|
249
|
+
console.error(error);
|
|
250
|
+
}
|
|
251
|
+
|
|
252
|
+
onDropPropLatest(evt, item);
|
|
253
|
+
}, [draggable, dragInfoRef, idFieldName, onDropPropLatest, dragDirection, dataTransferKey, onSwapPropLatest, itemLatestRef, index]);
|
|
254
|
+
var getDragTriggerProps = React.useCallback(function () {
|
|
255
|
+
return {
|
|
256
|
+
draggable: draggable,
|
|
257
|
+
'data-dragging': dragging,
|
|
258
|
+
onDragStart: onDragStart,
|
|
259
|
+
onDragLeave: onDragLeave,
|
|
260
|
+
onDragEnd: onDragEnd
|
|
261
|
+
};
|
|
262
|
+
}, [draggable, onDragStart, onDragLeave, onDragEnd, dragging]);
|
|
263
|
+
var getDropTriggerProps = React.useCallback(function () {
|
|
264
|
+
return {
|
|
265
|
+
'data-drop-direction': dragDirection,
|
|
266
|
+
onDrop: onDrop,
|
|
267
|
+
onDragOver: onDragOver
|
|
268
|
+
};
|
|
269
|
+
}, [onDrop, onDragOver, dragDirection]);
|
|
270
|
+
return {
|
|
271
|
+
dragging: dragging,
|
|
272
|
+
direction: dragDirection,
|
|
273
|
+
getDragTriggerProps: getDragTriggerProps,
|
|
274
|
+
getDropTriggerProps: getDropTriggerProps
|
|
275
|
+
};
|
|
276
|
+
}; // 表示拖拽放置位置
|
|
277
|
+
|
|
278
|
+
|
|
279
|
+
var UseDropNodeDirection = {
|
|
280
|
+
BEFORE: 'before',
|
|
281
|
+
INSIDE: 'inside',
|
|
282
|
+
AFTER: 'after'
|
|
283
|
+
};
|
|
284
|
+
exports.UseDropNodeDirection = UseDropNodeDirection;
|
|
285
|
+
exports.useDrag = useDrag;
|
|
286
|
+
exports.useDrop = useDrop;
|
|
287
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../../../../../hooks/use-drag-sorter/lib/esm/index.js"],"sourcesContent":["/** @LICENSE\n * @hi-ui/use-drag-sorter\n * https://github.com/XiaoMi/hiui/tree/master/packages/hooks/use-drag-sorter#readme\n *\n * Copyright (c) HIUI <mi-hiui@xiaomi.com>.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nimport _regeneratorRuntime from '@babel/runtime/regenerator';\nimport { __awaiter } from 'tslib';\nimport { useRef, useCallback, useState } from 'react';\nimport { useLatestCallback, useLatestRef } from '@hi-ui/use-latest';\nimport { isFunction } from '@hi-ui/type-assertion';\n\nvar useDrop = function useDrop(_ref) {\n var draggable = _ref.draggable,\n onDropEnd = _ref.onDropEnd,\n onSwapProp = _ref.onSwap,\n _ref$idFieldName = _ref.idFieldName,\n idFieldName = _ref$idFieldName === void 0 ? 'id' : _ref$idFieldName;\n var dragInfoRef = useRef(null);\n var onDropEndLatest = useLatestCallback(onDropEnd);\n var swapLatest = useLatestCallback(onSwapProp);\n var onSwap = useCallback(function (sourceId, targetId, dragDirection) {\n return __awaiter(void 0, void 0, void 0, /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {\n var info, dragItem, dropItem, result;\n return _regeneratorRuntime.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n if (draggable) {\n _context.next = 2;\n break;\n }\n\n return _context.abrupt(\"return\");\n\n case 2:\n if (!(targetId === sourceId)) {\n _context.next = 4;\n break;\n }\n\n return _context.abrupt(\"return\");\n\n case 4:\n if (dragInfoRef.current) {\n _context.next = 6;\n break;\n }\n\n return _context.abrupt(\"return\");\n\n case 6:\n // TODO: 根据 id 查询数据原始数据或者直接使用引用值,两者选择,避免bug\n info = dragInfoRef.current;\n dragInfoRef.current = null;\n dragItem = info.dragItem, dropItem = info.dropItem;\n\n if (!(!dragItem || !dropItem)) {\n _context.next = 11;\n break;\n }\n\n return _context.abrupt(\"return\");\n\n case 11:\n if (!(dragItem[idFieldName] !== sourceId || targetId !== dropItem[idFieldName])) {\n _context.next = 13;\n break;\n }\n\n return _context.abrupt(\"return\");\n\n case 13:\n _context.next = 15;\n return swapLatest(dragItem, dropItem, dragDirection, info);\n\n case 15:\n result = _context.sent;\n\n if (result === true) {\n onDropEndLatest(dragItem, dropItem, dragDirection);\n }\n\n case 17:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee);\n }));\n }, [draggable, onDropEndLatest, idFieldName, swapLatest]);\n return {\n draggable: draggable,\n dragInfoRef: dragInfoRef,\n onSwap: onSwap\n };\n};\n/**\n * TODO: What is UseDrag\n */\n\n\nvar useDrag = function useDrag(_ref2) {\n var draggable = _ref2.draggable,\n dragInfoRef = _ref2.dragInfoRef,\n onHover = _ref2.onHover,\n item = _ref2.item,\n index = _ref2.index,\n _ref2$idFieldName = _ref2.idFieldName,\n idFieldName = _ref2$idFieldName === void 0 ? 'id' : _ref2$idFieldName,\n _ref2$dataTransferKey = _ref2.dataTransferKey,\n dataTransferKey = _ref2$dataTransferKey === void 0 ? 'data' : _ref2$dataTransferKey,\n onDragStartProp = _ref2.onDragStart,\n onDragOverProp = _ref2.onDragOver,\n onDragLeaveProp = _ref2.onDragLeave,\n onDragEndProp = _ref2.onDragEnd,\n onDropProp = _ref2.onDrop,\n onSwapProp = _ref2.onSwap;\n\n var _useState = useState(false),\n dragging = _useState[0],\n setDragging = _useState[1];\n\n var _useState2 = useState(),\n dragDirection = _useState2[0],\n setDragDirection = _useState2[1];\n\n var onDragStartPropLatest = useLatestCallback(onDragStartProp);\n var itemLatestRef = useLatestRef(item);\n var onDragStart = useCallback(function (evt) {\n if (!draggable) return;\n evt.stopPropagation();\n var item = itemLatestRef.current;\n var clientY = evt.clientY;\n var dragId = item[idFieldName];\n dragInfoRef.current = {\n startClientY: clientY,\n dragId: dragId,\n dragItem: item,\n dragIndex: index\n };\n setDragging(true);\n evt.dataTransfer.setData(dataTransferKey, JSON.stringify({\n sourceId: dragId\n }));\n onDragStartPropLatest(evt, item);\n }, [draggable, onDragStartPropLatest, idFieldName, dataTransferKey, itemLatestRef, dragInfoRef, index]);\n var hoverLatestRef = useLatestRef(onHover);\n var onDragOverPropLatest = useLatestCallback(onDragOverProp);\n var onDragOver = useCallback(function (evt) {\n if (!draggable) return;\n evt.preventDefault();\n evt.stopPropagation();\n if (!dragInfoRef.current) return;\n var item = itemLatestRef.current;\n var _dragInfoRef$current = dragInfoRef.current,\n startClientY = _dragInfoRef$current.startClientY,\n dragId = _dragInfoRef$current.dragId;\n if (dragId === item[idFieldName]) return;\n var nextDirection;\n\n if (isFunction(hoverLatestRef.current)) {\n nextDirection = hoverLatestRef.current(evt, item, dragInfoRef.current);\n } else {\n var hoverClientY = evt.clientY;\n nextDirection = hoverClientY < startClientY ? UseDropNodeDirection.BEFORE : UseDropNodeDirection.AFTER;\n }\n\n setDragDirection(nextDirection);\n onDragOverPropLatest(evt, item);\n }, [draggable, onDragOverPropLatest, idFieldName, hoverLatestRef, dragInfoRef, itemLatestRef]);\n var onDragLeavePropLatest = useLatestCallback(onDragLeaveProp);\n var onDragLeave = useCallback(function (evt) {\n if (!draggable) return;\n evt.preventDefault();\n evt.stopPropagation();\n var item = itemLatestRef.current;\n setDragDirection(undefined);\n onDragLeavePropLatest(evt, item);\n }, [draggable, onDragLeavePropLatest, itemLatestRef]);\n var onDragEndPropLatest = useLatestCallback(onDragEndProp);\n var onDragEnd = useCallback(function (evt) {\n if (!draggable) return;\n evt.preventDefault();\n evt.stopPropagation();\n var item = itemLatestRef.current;\n evt.dataTransfer.clearData();\n dragInfoRef.current = null;\n setDragDirection(undefined);\n setDragging(false);\n onDragEndPropLatest(evt, item);\n }, [draggable, dragInfoRef, onDragEndPropLatest, itemLatestRef]);\n var onDropPropLatest = useLatestCallback(onDropProp);\n var onSwapPropLatest = useLatestCallback(onSwapProp); // 放置目标元素时触发事件\n\n var onDrop = useCallback(function (evt) {\n if (!draggable) return;\n if (!dragInfoRef.current) return;\n var item = itemLatestRef.current;\n var dragId = dragInfoRef.current.dragId;\n evt.preventDefault();\n evt.stopPropagation();\n setDragDirection(undefined); // dragInfoRef.current = null\n\n dragInfoRef.current.dropItem = item;\n dragInfoRef.current.dropIndex = index;\n var targetId = item[idFieldName];\n if (dragId === targetId) return;\n\n try {\n var _JSON$parse = JSON.parse(evt.dataTransfer.getData(dataTransferKey)),\n sourceId = _JSON$parse.sourceId;\n\n onSwapPropLatest(sourceId, targetId, dragDirection);\n } catch (error) {\n console.error(error);\n }\n\n onDropPropLatest(evt, item);\n }, [draggable, dragInfoRef, idFieldName, onDropPropLatest, dragDirection, dataTransferKey, onSwapPropLatest, itemLatestRef, index]);\n var getDragTriggerProps = useCallback(function () {\n return {\n draggable: draggable,\n 'data-dragging': dragging,\n onDragStart: onDragStart,\n onDragLeave: onDragLeave,\n onDragEnd: onDragEnd\n };\n }, [draggable, onDragStart, onDragLeave, onDragEnd, dragging]);\n var getDropTriggerProps = useCallback(function () {\n return {\n 'data-drop-direction': dragDirection,\n onDrop: onDrop,\n onDragOver: onDragOver\n };\n }, [onDrop, onDragOver, dragDirection]);\n return {\n dragging: dragging,\n direction: dragDirection,\n getDragTriggerProps: getDragTriggerProps,\n getDropTriggerProps: getDropTriggerProps\n };\n}; // 表示拖拽放置位置\n\n\nvar UseDropNodeDirection = {\n BEFORE: 'before',\n INSIDE: 'inside',\n AFTER: 'after'\n};\nexport { UseDropNodeDirection, useDrag, useDrop };\n//# sourceMappingURL=index.js.map\n"],"names":["useDrop","_ref","draggable","onDropEnd","onSwapProp","onSwap","idFieldName","_ref$idFieldName","dragInfoRef","useRef","onDropEndLatest","useLatestCallback","swapLatest","useCallback","sourceId","targetId","dragDirection","current","info","dragItem","dropItem","result","useDrag","_ref2","onHover","item","index","_ref2$idFieldName","dataTransferKey","_ref2$dataTransferKey","onDragStartProp","onDragStart","onDragOverProp","onDragOver","onDragLeaveProp","onDragLeave","onDragEndProp","onDragEnd","onDropProp","onDrop","useState","dragging","_useState","setDragging","_useState2","setDragDirection","onDragStartPropLatest","itemLatestRef","useLatestRef","evt","clientY","dragId","startClientY","dragIndex","JSON","hoverLatestRef","onDragOverPropLatest","_dragInfoRef$current","nextDirection","isFunction","hoverClientY","UseDropNodeDirection","onDragLeavePropLatest","onDragEndPropLatest","onDropPropLatest","onSwapPropLatest","_JSON$parse","error","console","getDragTriggerProps","getDropTriggerProps","direction","BEFORE","INSIDE","AFTER"],"mappings":"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"}
|
|
@@ -0,0 +1,110 @@
|
|
|
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
|
+
'use strict';
|
|
11
|
+
|
|
12
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
13
|
+
|
|
14
|
+
Object.defineProperty(exports, '__esModule', {
|
|
15
|
+
value: true
|
|
16
|
+
});
|
|
17
|
+
|
|
18
|
+
var React = require('react');
|
|
19
|
+
|
|
20
|
+
var useLatest = require('@hi-ui/use-latest');
|
|
21
|
+
|
|
22
|
+
var treeUtils = require('@hi-ui/tree-utils');
|
|
23
|
+
|
|
24
|
+
var typeAssertion = require('@hi-ui/type-assertion');
|
|
25
|
+
|
|
26
|
+
function _interopDefaultLegacy(e) {
|
|
27
|
+
return e && _typeof(e) === 'object' && 'default' in e ? e : {
|
|
28
|
+
'default': e
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
|
|
33
|
+
|
|
34
|
+
var useTableDrag = function useTableDrag(_ref) {
|
|
35
|
+
var cacheData = _ref.cacheData,
|
|
36
|
+
setCacheData = _ref.setCacheData,
|
|
37
|
+
draggable = _ref.draggable,
|
|
38
|
+
onDropEnd = _ref.onDropEnd,
|
|
39
|
+
onDropProp = _ref.onDrop;
|
|
40
|
+
var dragRowRef = React__default['default'].useRef(null);
|
|
41
|
+
var onDropEndLatest = useLatest.useLatestCallback(onDropEnd);
|
|
42
|
+
var onDrop = React.useCallback(function (evt, sourceId, targetId, dragDirection) {
|
|
43
|
+
// console.log(sourceId, targetId, dragDirection)
|
|
44
|
+
if (!draggable) return;
|
|
45
|
+
if (targetId === sourceId) return; // TODO: 根据 id 查询数据原始数据或者直接使用引用值,两者选择,避免bug
|
|
46
|
+
// const { rowData, dropRowData, level } = dragRowRef.current
|
|
47
|
+
|
|
48
|
+
var sourceNode = treeUtils.findNodeById(cacheData, sourceId, {
|
|
49
|
+
idFieldName: 'key'
|
|
50
|
+
});
|
|
51
|
+
var targetNode = treeUtils.findNodeById(cacheData, targetId, {
|
|
52
|
+
idFieldName: 'key'
|
|
53
|
+
});
|
|
54
|
+
|
|
55
|
+
if (!sourceNode || !targetNode) {
|
|
56
|
+
// console.log('未找到任何节点(sourceNode, targetNode)', sourceNode, targetNode)
|
|
57
|
+
return;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
var nextTreeData = treeUtils.cloneTree(cacheData);
|
|
61
|
+
treeUtils.deleteNodeById(nextTreeData, sourceId, {
|
|
62
|
+
idFieldName: 'key'
|
|
63
|
+
});
|
|
64
|
+
treeUtils.insertNodeById(nextTreeData, targetId, sourceNode, dragDirection === 'top' ? 0 : 1, {
|
|
65
|
+
idFieldName: 'key'
|
|
66
|
+
});
|
|
67
|
+
var resultMaybePromise = typeAssertion.isFunction(onDropProp) ? // TODO: 支持 tree 拖拽层级,第四个参数
|
|
68
|
+
onDropProp(evt, {
|
|
69
|
+
dragNode: sourceNode,
|
|
70
|
+
dropNode: targetNode,
|
|
71
|
+
dataStatus: {
|
|
72
|
+
before: cacheData,
|
|
73
|
+
after: nextTreeData
|
|
74
|
+
}
|
|
75
|
+
}) : true;
|
|
76
|
+
|
|
77
|
+
if (typeAssertion.isPromise(resultMaybePromise)) {
|
|
78
|
+
resultMaybePromise.then(function (returnResult) {
|
|
79
|
+
if (returnResult === true) {
|
|
80
|
+
setCacheData(nextTreeData);
|
|
81
|
+
onDropEndLatest({
|
|
82
|
+
dragNode: sourceNode,
|
|
83
|
+
dropNode: targetNode,
|
|
84
|
+
dataStatus: {
|
|
85
|
+
before: cacheData,
|
|
86
|
+
after: nextTreeData
|
|
87
|
+
}
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
});
|
|
91
|
+
} else if (resultMaybePromise === true) {
|
|
92
|
+
setCacheData(nextTreeData);
|
|
93
|
+
onDropEndLatest({
|
|
94
|
+
dragNode: sourceNode,
|
|
95
|
+
dropNode: targetNode,
|
|
96
|
+
dataStatus: {
|
|
97
|
+
before: cacheData,
|
|
98
|
+
after: nextTreeData
|
|
99
|
+
}
|
|
100
|
+
});
|
|
101
|
+
}
|
|
102
|
+
}, [draggable, onDropProp, cacheData, onDropEndLatest, setCacheData]);
|
|
103
|
+
return {
|
|
104
|
+
onDrop: onDrop,
|
|
105
|
+
dragRowRef: dragRowRef
|
|
106
|
+
};
|
|
107
|
+
};
|
|
108
|
+
|
|
109
|
+
exports.useTableDrag = useTableDrag;
|
|
110
|
+
//# sourceMappingURL=use-drag.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-drag.js","sources":["../../../src/hooks/use-drag.ts"],"sourcesContent":[null],"names":["useTableDrag","cacheData","setCacheData","draggable","onDropEnd","onDropProp","onDrop","dragRowRef","React","useRef","onDropEndLatest","useLatestCallback","useCallback","evt","sourceId","targetId","dragDirection","sourceNode","findNodeById","idFieldName","targetNode","nextTreeData","cloneTree","deleteNodeById","insertNodeById","resultMaybePromise","isFunction","dragNode","dropNode","dataStatus","before","after","isPromise","then","returnResult"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAMaA,YAAY,GAAG,SAAfA,YAAe,KAAA;MAC1BC,iBAAAA;MACAC,oBAAAA;MACAC,iBAAAA;MAEAC,iBAAAA;MACQC,kBAARC;MASMC,UAAU,GAAGC,yBAAAA,CAAMC,MAAND,CAAyB,IAAzBA;MAEbE,eAAe,GAAGC,2BAAAA,CAAkBP,SAAlBO;MAElBL,MAAM,GAAGM,iBAAAA,CACb,UAACC,GAAD,EAAMC,QAAN,EAAgBC,QAAhB,EAA0BC,aAA1B;;QAGM,CAACb,WAAW;QACZY,QAAQ,KAAKD,UAAU;;;QAKrBG,UAAU,GAAGC,sBAAAA,CAAajB,SAAbiB,EAAwBJ,QAAxBI,EAAkC;AAAEC,MAAAA,WAAW,EAAE;AAAf,KAAlCD;QACbE,UAAU,GAAGF,sBAAAA,CAAajB,SAAbiB,EAAwBH,QAAxBG,EAAkC;AAAEC,MAAAA,WAAW,EAAE;AAAf,KAAlCD;;QAEf,CAACD,UAAD,IAAe,CAACG,YAAY;;;;;QAK1BC,YAAY,GAAGC,mBAAAA,CAAUrB,SAAVqB;AAErBC,IAAAA,wBAAAA,CAAeF,YAAfE,EAA6BT,QAA7BS,EAAuC;AAAEJ,MAAAA,WAAW,EAAE;AAAf,KAAvCI;AACAC,IAAAA,wBAAAA,CAAeH,YAAfG,EAA6BT,QAA7BS,EAAuCP,UAAvCO,EAAmDR,aAAa,KAAK,KAAlBA,GAA0B,CAA1BA,GAA8B,CAAjFQ,EAAoF;AAClFL,MAAAA,WAAW,EAAE;AADqE,KAApFK;QAIMC,kBAAkB,GAAGC,wBAAAA,CAAWrB,UAAXqB;AAEvBrB,IAAAA,UAAU,CAACQ,GAAD,EAAM;AACdc,MAAAA,QAAQ,EAAEV,UADI;AAEdW,MAAAA,QAAQ,EAAER,UAFI;AAGdS,MAAAA,UAAU,EAAE;AAAEC,QAAAA,MAAM,EAAE7B,SAAV;AAAqB8B,QAAAA,KAAK,EAAEV;AAA5B;AAHE,KAAN,CAFaK,GAOvB;;QAEAM,uBAAAA,CAAUP,kBAAVO,GAA+B;AACjCP,MAAAA,kBAAkB,CAACQ,IAAnBR,CAAwB,UAACS,YAAD;YAClBA,YAAY,KAAK,MAAM;AACzBhC,UAAAA,YAAY,CAACmB,YAAD,CAAZnB;AACAQ,UAAAA,eAAe,CAAC;AACdiB,YAAAA,QAAQ,EAAEV,UADI;AAEdW,YAAAA,QAAQ,EAAER,UAFI;AAGdS,YAAAA,UAAU,EAAE;AAAEC,cAAAA,MAAM,EAAE7B,SAAV;AAAqB8B,cAAAA,KAAK,EAAEV;AAA5B;AAHE,WAAD,CAAfX;;AAHJ,OAAAe;AADF,WAWO,IAAIA,kBAAkB,KAAK,IAA3B,EAAiC;AACtCvB,MAAAA,YAAY,CAACmB,YAAD,CAAZnB;AACAQ,MAAAA,eAAe,CAAC;AACdiB,QAAAA,QAAQ,EAAEV,UADI;AAEdW,QAAAA,QAAQ,EAAER,UAFI;AAGdS,QAAAA,UAAU,EAAE;AAAEC,UAAAA,MAAM,EAAE7B,SAAV;AAAqB8B,UAAAA,KAAK,EAAEV;AAA5B;AAHE,OAAD,CAAfX;;AA/CoB,GAAXE,EAsDb,CAACT,SAAD,EAAYE,UAAZ,EAAwBJ,SAAxB,EAAmCS,eAAnC,EAAoDR,YAApD,CAtDaU;SAyDR;AACLN,IAAAA,MAAM,EAANA,MADK;AAELC,IAAAA,UAAU,EAAVA;AAFK;;;"}
|
|
@@ -0,0 +1,185 @@
|
|
|
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
|
+
'use strict';
|
|
11
|
+
|
|
12
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
13
|
+
|
|
14
|
+
Object.defineProperty(exports, '__esModule', {
|
|
15
|
+
value: true
|
|
16
|
+
});
|
|
17
|
+
|
|
18
|
+
var _regeneratorRuntime = require('@babel/runtime/regenerator');
|
|
19
|
+
|
|
20
|
+
var tslib = require('tslib');
|
|
21
|
+
|
|
22
|
+
var React = require('react');
|
|
23
|
+
|
|
24
|
+
var typeAssertion = require('@hi-ui/type-assertion');
|
|
25
|
+
|
|
26
|
+
var useUncontrolledState = require('@hi-ui/use-uncontrolled-state');
|
|
27
|
+
|
|
28
|
+
var useCheck = require('@hi-ui/use-check');
|
|
29
|
+
|
|
30
|
+
var useCheckState = require('@hi-ui/use-check-state');
|
|
31
|
+
|
|
32
|
+
function _interopDefaultLegacy(e) {
|
|
33
|
+
return e && _typeof(e) === 'object' && 'default' in e ? e : {
|
|
34
|
+
'default': e
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
var _regeneratorRuntime__default = /*#__PURE__*/_interopDefaultLegacy(_regeneratorRuntime);
|
|
39
|
+
|
|
40
|
+
var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
|
|
41
|
+
|
|
42
|
+
var DEFAULT_EXPAND_EMBED_ROW_KEYS = [];
|
|
43
|
+
/**
|
|
44
|
+
* 行内嵌面板展开
|
|
45
|
+
*/
|
|
46
|
+
|
|
47
|
+
var useEmbedExpand = function useEmbedExpand(_ref) {
|
|
48
|
+
var _ref$rowExpandable = _ref.rowExpandable,
|
|
49
|
+
rowExpandable = _ref$rowExpandable === void 0 ? true : _ref$rowExpandable,
|
|
50
|
+
_ref$defaultExpandedE = _ref.defaultExpandedEmbedRowKeys,
|
|
51
|
+
defaultExpandedEmbedRowKeys = _ref$defaultExpandedE === void 0 ? DEFAULT_EXPAND_EMBED_ROW_KEYS : _ref$defaultExpandedE,
|
|
52
|
+
expandEmbedRowKeysProp = _ref.expandedEmbedRowKeys,
|
|
53
|
+
onEmbedExpand = _ref.onEmbedExpand,
|
|
54
|
+
expandedRender = _ref.expandedRender;
|
|
55
|
+
/**
|
|
56
|
+
* 收敛行内嵌面板配置开关
|
|
57
|
+
*/
|
|
58
|
+
|
|
59
|
+
var embedExpandable = React.useMemo(function () {
|
|
60
|
+
if (!rowExpandable) return false; // 不传入 render 方法,则不开启内嵌面板
|
|
61
|
+
|
|
62
|
+
if (!typeAssertion.isFunction(expandedRender)) return false;
|
|
63
|
+
return {
|
|
64
|
+
rowExpandable: rowExpandable,
|
|
65
|
+
expandedRender: expandedRender
|
|
66
|
+
};
|
|
67
|
+
}, [rowExpandable, expandedRender]);
|
|
68
|
+
/**
|
|
69
|
+
* 是否展开状态控制
|
|
70
|
+
*/
|
|
71
|
+
|
|
72
|
+
var _useUncontrolledState = useUncontrolledState.useUncontrolledState(defaultExpandedEmbedRowKeys, expandEmbedRowKeysProp, onEmbedExpand),
|
|
73
|
+
expandEmbedRows = _useUncontrolledState[0],
|
|
74
|
+
trySetExpandEmbedRows = _useUncontrolledState[1];
|
|
75
|
+
|
|
76
|
+
var _useCheck = useCheck.useCheck({
|
|
77
|
+
checkedIds: expandEmbedRows,
|
|
78
|
+
onCheck: trySetExpandEmbedRows
|
|
79
|
+
}),
|
|
80
|
+
onExpandEmbedRowsChange = _useCheck[0],
|
|
81
|
+
isExpandEmbedRows = _useCheck[1];
|
|
82
|
+
/**
|
|
83
|
+
* 异步展开中状态控制
|
|
84
|
+
*/
|
|
85
|
+
|
|
86
|
+
|
|
87
|
+
var _useCheckState = useCheckState.useCheckState(),
|
|
88
|
+
addLoadingIds = _useCheckState.add,
|
|
89
|
+
removeLoadingIds = _useCheckState.remove,
|
|
90
|
+
isLoadingId = _useCheckState.has;
|
|
91
|
+
/**
|
|
92
|
+
* 内嵌面板数据
|
|
93
|
+
* 结构:{ [id]: 内嵌数据 }
|
|
94
|
+
*/
|
|
95
|
+
|
|
96
|
+
|
|
97
|
+
var _React$useState = React__default['default'].useState({}),
|
|
98
|
+
embedPanelRecord = _React$useState[0],
|
|
99
|
+
setEmbedPanelRecord = _React$useState[1];
|
|
100
|
+
|
|
101
|
+
var getEmbedPanelById = React.useCallback(function (id) {
|
|
102
|
+
return embedPanelRecord[id] || null;
|
|
103
|
+
}, [embedPanelRecord]);
|
|
104
|
+
/**
|
|
105
|
+
* 异步展开逻辑处理
|
|
106
|
+
*/
|
|
107
|
+
|
|
108
|
+
var onEmbedSwitch = React.useCallback(function (node, rowIndex) {
|
|
109
|
+
return tslib.__awaiter(void 0, void 0, void 0, /*#__PURE__*/_regeneratorRuntime__default['default'].mark(function _callee() {
|
|
110
|
+
var embedContentMaybePromise;
|
|
111
|
+
return _regeneratorRuntime__default['default'].wrap(function _callee$(_context) {
|
|
112
|
+
while (1) {
|
|
113
|
+
switch (_context.prev = _context.next) {
|
|
114
|
+
case 0:
|
|
115
|
+
if (embedExpandable) {
|
|
116
|
+
_context.next = 2;
|
|
117
|
+
break;
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
return _context.abrupt("return");
|
|
121
|
+
|
|
122
|
+
case 2:
|
|
123
|
+
embedContentMaybePromise = embedExpandable.expandedRender(node.raw, rowIndex); // TODO: 复用 use-dataSource 逻辑
|
|
124
|
+
|
|
125
|
+
if (!typeAssertion.isPromise(embedContentMaybePromise)) {
|
|
126
|
+
_context.next = 8;
|
|
127
|
+
break;
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
addLoadingIds(node.id);
|
|
131
|
+
embedContentMaybePromise.then(function (jsxElement) {
|
|
132
|
+
removeLoadingIds(node.id);
|
|
133
|
+
if (typeof jsxElement === 'undefined') return;
|
|
134
|
+
setEmbedPanelRecord(function (prev) {
|
|
135
|
+
var _Object$assign;
|
|
136
|
+
|
|
137
|
+
return Object.assign(Object.assign({}, prev), (_Object$assign = {}, _Object$assign[node.id] = jsxElement, _Object$assign));
|
|
138
|
+
});
|
|
139
|
+
})["catch"](function (jsxElement) {
|
|
140
|
+
removeLoadingIds(node.id);
|
|
141
|
+
if (typeof jsxElement === 'undefined') return;
|
|
142
|
+
setEmbedPanelRecord(function (prev) {
|
|
143
|
+
var _Object$assign2;
|
|
144
|
+
|
|
145
|
+
return Object.assign(Object.assign({}, prev), (_Object$assign2 = {}, _Object$assign2[node.id] = jsxElement, _Object$assign2));
|
|
146
|
+
});
|
|
147
|
+
});
|
|
148
|
+
_context.next = 11;
|
|
149
|
+
break;
|
|
150
|
+
|
|
151
|
+
case 8:
|
|
152
|
+
if (!(typeof embedContentMaybePromise === 'undefined')) {
|
|
153
|
+
_context.next = 10;
|
|
154
|
+
break;
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
return _context.abrupt("return");
|
|
158
|
+
|
|
159
|
+
case 10:
|
|
160
|
+
setEmbedPanelRecord(function (prev) {
|
|
161
|
+
var _Object$assign3;
|
|
162
|
+
|
|
163
|
+
return Object.assign(Object.assign({}, prev), (_Object$assign3 = {}, _Object$assign3[node.id] = embedContentMaybePromise, _Object$assign3));
|
|
164
|
+
});
|
|
165
|
+
|
|
166
|
+
case 11:
|
|
167
|
+
case "end":
|
|
168
|
+
return _context.stop();
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
}, _callee);
|
|
172
|
+
}));
|
|
173
|
+
}, [embedExpandable, addLoadingIds, removeLoadingIds]);
|
|
174
|
+
return {
|
|
175
|
+
embedExpandable: embedExpandable,
|
|
176
|
+
onEmbedSwitch: onEmbedSwitch,
|
|
177
|
+
getEmbedPanelById: getEmbedPanelById,
|
|
178
|
+
isEmbedLoadingId: isLoadingId,
|
|
179
|
+
isExpandEmbedRows: isExpandEmbedRows,
|
|
180
|
+
onExpandEmbedRowsChange: onExpandEmbedRowsChange
|
|
181
|
+
};
|
|
182
|
+
};
|
|
183
|
+
|
|
184
|
+
exports.useEmbedExpand = useEmbedExpand;
|
|
185
|
+
//# sourceMappingURL=use-embed-expand.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-embed-expand.js","sources":["../../../src/hooks/use-embed-expand.ts"],"sourcesContent":[null],"names":["DEFAULT_EXPAND_EMBED_ROW_KEYS","useEmbedExpand","rowExpandable","defaultExpandedEmbedRowKeys","expandEmbedRowKeysProp","expandedEmbedRowKeys","onEmbedExpand","expandedRender","embedExpandable","useMemo","isFunction","useUncontrolledState","expandEmbedRows","trySetExpandEmbedRows","useCheck","checkedIds","onCheck","onExpandEmbedRowsChange","isExpandEmbedRows","useCheckState","addLoadingIds","add","removeLoadingIds","remove","isLoadingId","has","React","useState","embedPanelRecord","setEmbedPanelRecord","getEmbedPanelById","useCallback","id","onEmbedSwitch","node","rowIndex","embedContentMaybePromise","raw","isPromise","then","jsxElement","prev","isEmbedLoadingId"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAOA,IAAMA,6BAA6B,GAAG,EAAtC;AAEA;;;;IAGaC,cAAc,GAAG,SAAjBA,cAAiB,KAAA;gCAC5BC;MAAAA,gDAAgB;mCAChBC;MAAAA,iEAA8BH;MACRI,8BAAtBC;MACAC,qBAAAA;MACAC,sBAAAA;;;;;MAKMC,eAAe,GAAGC,aAAAA,CAAQ;QAC1B,CAACP,eAAe,OAAO,KAAP;;QAEhB,CAACQ,wBAAAA,CAAWH,cAAXG,GAA4B,OAAO,KAAP;WAE1B;AACLR,MAAAA,aAAa,EAAbA,aADK;AAELK,MAAAA,cAAc,EAAdA;AAFK;AALsB,GAAPE,EASrB,CAACP,aAAD,EAAgBK,cAAhB,CATqBE;;;;;8BAcyBE,yCAAAA,CAC/CR,2BAD+CQ,EAE/CP,sBAF+CO,EAG/CL,aAH+CK;MAA1CC,eAAP;MAAwBC,qBAAxB;;kBAMqDC,iBAAAA,CAAS;AAC5DC,IAAAA,UAAU,EAAEH,eADgD;AAE5DI,IAAAA,OAAO,EAAEH;AAFmD,GAATC;MAA9CG,uBAAP;MAAgCC,iBAAhC;;;;;;uBAQ2EC,2BAAAA;MAA9DC,aAAb,kBAAQC;MAA4BC,gBAApC,kBAA4BC;MAA+BC,WAA3D,kBAAsDC;;;;;;;wBAQNC,yBAAAA,CAAMC,QAAND,CAA6C,EAA7CA;MAAzCE,gBAAP;MAAyBC,mBAAzB;;MAEMC,iBAAiB,GAAGC,iBAAAA,CACxB,UAACC,EAAD;WACSJ,gBAAgB,CAACI,EAAD,CAAhBJ,IAAwB;AAFE,GAAXG,EAIxB,CAACH,gBAAD,CAJwBG;;;;;MAUpBE,aAAa,GAAGF,iBAAAA,CACpB,UAAOG,IAAP,EAAkCC,QAAlC;;;;;;;kBACO3B;;;;;;;;AAEC4B,cAAAA,2BAA2B5B,eAAe,CAACD,cAAhBC,CAA+B0B,IAAI,CAACG,GAApC7B,EAAyC2B,QAAzC3B,CAA3B4B;;mBAGFE,uBAAAA,CAAUF,wBAAVE;;;;;AACFlB,cAAAA,aAAa,CAACc,IAAI,CAACF,EAAN,CAAbZ;AAEAgB,cAAAA,wBAAwB,CACrBG,IADHH,CACQ,UAACI,UAAD;AACJlB,gBAAAA,gBAAgB,CAACY,IAAI,CAACF,EAAN,CAAhBV;oBAEI,OAAOkB,UAAP,KAAsB,aAAa;AAEvCX,gBAAAA,mBAAmB,CAAC,UAACY,IAAD;;;yDAEbA,4CACFP,IAAI,CAACF,MAAKQ;AAHI,iBAAA,CAAnBX;AANJ,eAAAO,WAaS,UAACI,UAAD;AACLlB,gBAAAA,gBAAgB,CAACY,IAAI,CAACF,EAAN,CAAhBV;oBAEI,OAAOkB,UAAP,KAAsB,aAAa;AAEvCX,gBAAAA,mBAAmB,CAAC,UAACY,IAAD;;;yDAEbA,8CACFP,IAAI,CAACF,MAAKQ;AAHI,iBAAA,CAAnBX;AAlBJ,eAAAO;;;;;oBA0BI,OAAOA,wBAAP,KAAoC;;;;;;;;AAExCP,cAAAA,mBAAmB,CAAC,UAACY,IAAD;;;uDAEbA,8CACFP,IAAI,CAACF,MAAKI;AAHI,eAAA,CAAnBP;;;;;;;;;AAtC2B,GAAXE,EA8CpB,CAACvB,eAAD,EAAkBY,aAAlB,EAAiCE,gBAAjC,CA9CoBS;SAiDf;AACLvB,IAAAA,eAAe,EAAfA,eADK;AAELyB,IAAAA,aAAa,EAAbA,aAFK;AAGLH,IAAAA,iBAAiB,EAAjBA,iBAHK;AAILY,IAAAA,gBAAgB,EAAElB,WAJb;AAKLN,IAAAA,iBAAiB,EAAjBA,iBALK;AAMLD,IAAAA,uBAAuB,EAAvBA;AANK;;;"}
|