@frontify/fondue 12.1.12 → 12.1.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/ActionMenu/Aria/AriaMenuItem.es.js +26 -29
- package/dist/components/ActionMenu/Aria/AriaMenuItem.es.js.map +1 -1
- package/dist/components/RichTextEditor/BlurObserver.es.js +1 -1
- package/dist/components/RichTextEditor/BlurObserver.es.js.map +1 -1
- package/dist/components/RichTextEditor/RichTextEditor.es.js +1 -1
- package/dist/components/RichTextEditor/RichTextEditor.es.js.map +1 -1
- package/dist/components/Table/TableCell.es.js.map +1 -1
- package/dist/components/Tree/Tree.es.js +1 -1
- package/dist/components/Tree/Tree.es.js.map +1 -1
- package/dist/components/Tree/TreeItem/TreeItem.es.js +1 -1
- package/dist/components/Tree/TreeItem/TreeItem.es.js.map +1 -1
- package/dist/components/Tree/TreeItem/TreeItemMultiselect.es.js +1 -1
- package/dist/components/Tree/TreeItem/TreeItemMultiselect.es.js.map +1 -1
- package/dist/components/Tree/helpers/projection.es.js.map +1 -1
- package/dist/components/Tree/helpers/reducer.es.js +1 -1
- package/dist/components/Tree/helpers/reducer.es.js.map +1 -1
- package/dist/index.cjs.js +25 -25
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.umd.js +26 -26
- package/dist/index.umd.js.map +1 -1
- package/dist/packages/components/style.css +1 -1
- package/dist/packages/tokens/tailwind.config.js +1 -1
- package/package.json +33 -33
- package/dist/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_DataView.es.js +0 -7
- package/dist/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_DataView.es.js.map +0 -1
- package/dist/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_Hash.es.js +0 -21
- package/dist/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_Hash.es.js.map +0 -1
- package/dist/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_ListCache.es.js +0 -21
- package/dist/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_ListCache.es.js.map +0 -1
- package/dist/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_Map.es.js +0 -7
- package/dist/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_Map.es.js.map +0 -1
- package/dist/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_MapCache.es.js +0 -21
- package/dist/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_MapCache.es.js.map +0 -1
- package/dist/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_Promise.es.js +0 -7
- package/dist/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_Promise.es.js.map +0 -1
- package/dist/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_Set.es.js +0 -7
- package/dist/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_Set.es.js.map +0 -1
- package/dist/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_SetCache.es.js +0 -14
- package/dist/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_SetCache.es.js.map +0 -1
- package/dist/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_Stack.es.js +0 -19
- package/dist/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_Stack.es.js.map +0 -1
- package/dist/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_Symbol.es.js +0 -6
- package/dist/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_Symbol.es.js.map +0 -1
- package/dist/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_Uint8Array.es.js +0 -6
- package/dist/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_Uint8Array.es.js.map +0 -1
- package/dist/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_WeakMap.es.js +0 -7
- package/dist/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_WeakMap.es.js.map +0 -1
- package/dist/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_arrayFilter.es.js +0 -11
- package/dist/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_arrayFilter.es.js.map +0 -1
- package/dist/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_arrayLikeKeys.es.js +0 -21
- package/dist/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_arrayLikeKeys.es.js.map +0 -1
- package/dist/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_arrayPush.es.js +0 -9
- package/dist/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_arrayPush.es.js.map +0 -1
- package/dist/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_arraySome.es.js +0 -10
- package/dist/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_arraySome.es.js.map +0 -1
- package/dist/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_assocIndexOf.es.js +0 -11
- package/dist/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_assocIndexOf.es.js.map +0 -1
- package/dist/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseGetAllKeys.es.js +0 -10
- package/dist/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseGetAllKeys.es.js.map +0 -1
- package/dist/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseGetTag.es.js +0 -11
- package/dist/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseGetTag.es.js.map +0 -1
- package/dist/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseIsArguments.es.js +0 -10
- package/dist/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseIsArguments.es.js.map +0 -1
- package/dist/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseIsEqual.es.js +0 -9
- package/dist/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseIsEqual.es.js.map +0 -1
- package/dist/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseIsEqualDeep.es.js +0 -33
- package/dist/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseIsEqualDeep.es.js.map +0 -1
- package/dist/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseIsNative.es.js +0 -17
- package/dist/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseIsNative.es.js.map +0 -1
- package/dist/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseIsTypedArray.es.js +0 -13
- package/dist/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseIsTypedArray.es.js.map +0 -1
- package/dist/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseKeys.es.js +0 -15
- package/dist/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseKeys.es.js.map +0 -1
- package/dist/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseTimes.es.js +0 -9
- package/dist/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseTimes.es.js.map +0 -1
- package/dist/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseUnary.es.js +0 -9
- package/dist/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_baseUnary.es.js.map +0 -1
- package/dist/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_cacheHas.es.js +0 -7
- package/dist/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_cacheHas.es.js.map +0 -1
- package/dist/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_coreJsData.es.js +0 -6
- package/dist/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_coreJsData.es.js.map +0 -1
- package/dist/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_equalArrays.es.js +0 -41
- package/dist/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_equalArrays.es.js.map +0 -1
- package/dist/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_equalByTag.es.js +0 -46
- package/dist/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_equalByTag.es.js.map +0 -1
- package/dist/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_equalObjects.es.js +0 -37
- package/dist/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_equalObjects.es.js.map +0 -1
- package/dist/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_freeGlobal.es.js +0 -5
- package/dist/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_freeGlobal.es.js.map +0 -1
- package/dist/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_getAllKeys.es.js +0 -10
- package/dist/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_getAllKeys.es.js.map +0 -1
- package/dist/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_getMapData.es.js +0 -9
- package/dist/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_getMapData.es.js.map +0 -1
- package/dist/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_getNative.es.js +0 -10
- package/dist/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_getNative.es.js.map +0 -1
- package/dist/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_getRawTag.es.js +0 -16
- package/dist/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_getRawTag.es.js.map +0 -1
- package/dist/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_getSymbols.es.js +0 -11
- package/dist/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_getSymbols.es.js.map +0 -1
- package/dist/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_getTag.es.js +0 -29
- package/dist/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_getTag.es.js.map +0 -1
- package/dist/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_getValue.es.js +0 -7
- package/dist/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_getValue.es.js.map +0 -1
- package/dist/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_hashClear.es.js +0 -8
- package/dist/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_hashClear.es.js.map +0 -1
- package/dist/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_hashDelete.es.js +0 -8
- package/dist/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_hashDelete.es.js.map +0 -1
- package/dist/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_hashGet.es.js +0 -14
- package/dist/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_hashGet.es.js.map +0 -1
- package/dist/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_hashHas.es.js +0 -10
- package/dist/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_hashHas.es.js.map +0 -1
- package/dist/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_hashSet.es.js +0 -10
- package/dist/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_hashSet.es.js.map +0 -1
- package/dist/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_isIndex.es.js +0 -9
- package/dist/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_isIndex.es.js.map +0 -1
- package/dist/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_isKeyable.es.js +0 -8
- package/dist/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_isKeyable.es.js.map +0 -1
- package/dist/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_isMasked.es.js +0 -12
- package/dist/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_isMasked.es.js.map +0 -1
- package/dist/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_isPrototype.es.js +0 -9
- package/dist/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_isPrototype.es.js.map +0 -1
- package/dist/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_listCacheClear.es.js +0 -7
- package/dist/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_listCacheClear.es.js.map +0 -1
- package/dist/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_listCacheDelete.es.js +0 -13
- package/dist/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_listCacheDelete.es.js.map +0 -1
- package/dist/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_listCacheGet.es.js +0 -9
- package/dist/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_listCacheGet.es.js.map +0 -1
- package/dist/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_listCacheHas.es.js +0 -8
- package/dist/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_listCacheHas.es.js.map +0 -1
- package/dist/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_listCacheSet.es.js +0 -9
- package/dist/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_listCacheSet.es.js.map +0 -1
- package/dist/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_mapCacheClear.es.js +0 -14
- package/dist/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_mapCacheClear.es.js.map +0 -1
- package/dist/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_mapCacheDelete.es.js +0 -9
- package/dist/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_mapCacheDelete.es.js.map +0 -1
- package/dist/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_mapCacheGet.es.js +0 -8
- package/dist/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_mapCacheGet.es.js.map +0 -1
- package/dist/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_mapCacheHas.es.js +0 -8
- package/dist/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_mapCacheHas.es.js.map +0 -1
- package/dist/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_mapCacheSet.es.js +0 -9
- package/dist/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_mapCacheSet.es.js.map +0 -1
- package/dist/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_mapToArray.es.js +0 -10
- package/dist/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_mapToArray.es.js.map +0 -1
- package/dist/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_nativeCreate.es.js +0 -6
- package/dist/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_nativeCreate.es.js.map +0 -1
- package/dist/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_nativeKeys.es.js +0 -6
- package/dist/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_nativeKeys.es.js.map +0 -1
- package/dist/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_nodeUtil.es.js +0 -12
- package/dist/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_nodeUtil.es.js.map +0 -1
- package/dist/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_objectToString.es.js +0 -8
- package/dist/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_objectToString.es.js.map +0 -1
- package/dist/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_overArg.es.js +0 -9
- package/dist/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_overArg.es.js.map +0 -1
- package/dist/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_root.es.js +0 -6
- package/dist/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_root.es.js.map +0 -1
- package/dist/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_setCacheAdd.es.js +0 -8
- package/dist/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_setCacheAdd.es.js.map +0 -1
- package/dist/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_setCacheHas.es.js +0 -7
- package/dist/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_setCacheHas.es.js.map +0 -1
- package/dist/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_setToArray.es.js +0 -10
- package/dist/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_setToArray.es.js.map +0 -1
- package/dist/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_stackClear.es.js +0 -8
- package/dist/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_stackClear.es.js.map +0 -1
- package/dist/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_stackDelete.es.js +0 -8
- package/dist/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_stackDelete.es.js.map +0 -1
- package/dist/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_stackGet.es.js +0 -7
- package/dist/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_stackGet.es.js.map +0 -1
- package/dist/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_stackHas.es.js +0 -7
- package/dist/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_stackHas.es.js.map +0 -1
- package/dist/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_stackSet.es.js +0 -18
- package/dist/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_stackSet.es.js.map +0 -1
- package/dist/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_toSource.es.js +0 -18
- package/dist/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/_toSource.es.js.map +0 -1
- package/dist/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/eq.es.js +0 -7
- package/dist/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/eq.es.js.map +0 -1
- package/dist/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isArguments.es.js +0 -11
- package/dist/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isArguments.es.js.map +0 -1
- package/dist/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isArray.es.js +0 -5
- package/dist/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isArray.es.js.map +0 -1
- package/dist/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isArrayLike.es.js +0 -9
- package/dist/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isArrayLike.es.js.map +0 -1
- package/dist/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isBuffer.es.js +0 -7
- package/dist/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isBuffer.es.js.map +0 -1
- package/dist/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isEqual.es.js +0 -8
- package/dist/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isEqual.es.js.map +0 -1
- package/dist/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isEqualWith.es.js +0 -10
- package/dist/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isEqualWith.es.js.map +0 -1
- package/dist/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isFunction.es.js +0 -13
- package/dist/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isFunction.es.js.map +0 -1
- package/dist/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isLength.es.js +0 -8
- package/dist/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isLength.es.js.map +0 -1
- package/dist/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isObject.es.js +0 -8
- package/dist/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isObject.es.js.map +0 -1
- package/dist/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isObjectLike.es.js +0 -7
- package/dist/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isObjectLike.es.js.map +0 -1
- package/dist/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isTypedArray.es.js +0 -8
- package/dist/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isTypedArray.es.js.map +0 -1
- package/dist/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/keys.es.js +0 -10
- package/dist/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/keys.es.js.map +0 -1
- package/dist/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/noop.es.js +0 -6
- package/dist/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/noop.es.js.map +0 -1
- package/dist/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/stubArray.es.js +0 -7
- package/dist/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/stubArray.es.js.map +0 -1
- package/dist/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/stubFalse.es.js +0 -7
- package/dist/node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/stubFalse.es.js.map +0 -1
|
@@ -37,35 +37,32 @@ const z = (t) => typeof t.onClick < "u" && typeof t.type > "u", n = (t) => typeo
|
|
|
37
37
|
o,
|
|
38
38
|
s
|
|
39
39
|
), { title: u, decorator: b, subtitle: S, size: g, style: y, disabled: p, selectionIndicator: v } = t, { isFocusVisible: M, focusProps: V } = C();
|
|
40
|
-
return (
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
"
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
)
|
|
67
|
-
}
|
|
68
|
-
)
|
|
40
|
+
return /* @__PURE__ */ r(
|
|
41
|
+
"li",
|
|
42
|
+
{
|
|
43
|
+
...x(h, V, { onClick: () => i == null ? void 0 : i() }),
|
|
44
|
+
"data-test-id": "menu-item",
|
|
45
|
+
className: O([
|
|
46
|
+
"tw-relative hover:tw-bg-box-neutral-hover tw-list-none tw-outline-none",
|
|
47
|
+
p && "tw-pointer-events-none tw-top-px",
|
|
48
|
+
M && N
|
|
49
|
+
]),
|
|
50
|
+
ref: s,
|
|
51
|
+
children: /* @__PURE__ */ r(
|
|
52
|
+
E,
|
|
53
|
+
{
|
|
54
|
+
title: u,
|
|
55
|
+
decorator: b,
|
|
56
|
+
subtitle: S,
|
|
57
|
+
size: g,
|
|
58
|
+
style: y,
|
|
59
|
+
disabled: p,
|
|
60
|
+
active: l,
|
|
61
|
+
selectionIndicator: v,
|
|
62
|
+
switchComponent: f
|
|
63
|
+
}
|
|
64
|
+
)
|
|
65
|
+
}
|
|
69
66
|
);
|
|
70
67
|
};
|
|
71
68
|
T.displayName = "FondueAriaMenuItem";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AriaMenuItem.es.js","sources":["../../../../src/components/ActionMenu/Aria/AriaMenuItem.tsx"],"sourcesContent":["/* (c) Copyright Frontify Ltd., all rights reserved. */\n\nimport { useFocusRing } from '@react-aria/focus';\nimport { useMenuItem } from '@react-aria/menu';\nimport { mergeProps } from '@react-aria/utils';\nimport { type TreeState } from '@react-stately/tree';\nimport { type Node } from '@react-types/shared';\nimport { type ReactElement, useEffect, useRef, useState } from 'react';\n\nimport { type ActionMenuItemType, type ActionMenuSwitchItemType } from '@components/ActionMenu';\nimport { type MenuItemType } from '@components/Dropdown';\nimport { MenuItem } from '@components/MenuItem/MenuItem';\nimport { Switch } from '@components/Switch';\nimport { FOCUS_STYLE_INSET } from '@utilities/focusStyle';\nimport { merge } from '@utilities/merge';\n\nexport type AriaOptionProps = {\n menuItem: MenuItemType | ActionMenuItemType | ActionMenuSwitchItemType;\n node: Node<object>;\n isSelected?: boolean;\n state: TreeState<object>;\n /**\n * @deprecated Use `menuItem.onClick` instead\n * */\n onClick?: () => void;\n};\n\ninterface SwitchObject {\n switchComponent: ReactElement | undefined;\n switchValue: boolean | null;\n toggleSwitch: VoidFunction | null;\n}\n\nconst isActionMenuItem = (\n menuItem: MenuItemType | ActionMenuItemType | ActionMenuSwitchItemType,\n): menuItem is ActionMenuItemType =>\n typeof (menuItem as ActionMenuItemType).onClick !== 'undefined' && typeof menuItem.type === 'undefined';\nconst isActionMenuSwitchItem = (\n menuItem: MenuItemType | ActionMenuItemType | ActionMenuSwitchItemType,\n): menuItem is ActionMenuSwitchItemType =>\n typeof (menuItem as ActionMenuSwitchItemType).onClick !== 'undefined' && menuItem.type === 'switch';\n\nconst useSwitch = (isSwitch: boolean, initialValue: boolean) => {\n const [switchValue, setSwitchValue] = useState<boolean>(initialValue ?? false);\n const [switchObject, setSwitchObject] = useState<SwitchObject>({\n switchComponent: undefined,\n switchValue: null,\n toggleSwitch: null,\n });\n\n useEffect(() => {\n if (isSwitch) {\n const toggleSwitch = () => setSwitchValue(!switchValue);\n const switchComponent = <Switch size=\"small\" mode={switchValue ? 'on' : 'off'} />;\n\n setSwitchObject({\n switchComponent,\n switchValue,\n toggleSwitch,\n });\n }\n }, [isSwitch, switchValue]);\n\n return switchObject;\n};\n\nexport const AriaMenuItem = ({ menuItem, node, state, isSelected, onClick }: AriaOptionProps): ReactElement => {\n const ref = useRef<HTMLLIElement | null>(null);\n const initialValue = isActionMenuSwitchItem(menuItem) ? menuItem.initialValue : false;\n const {\n switchComponent = undefined,\n switchValue = null,\n toggleSwitch = null,\n } = useSwitch(isActionMenuSwitchItem(menuItem), initialValue);\n\n const { menuItemProps } = useMenuItem(\n {\n ...node,\n onAction: () => {\n if (isActionMenuItem(menuItem)) {\n menuItem.onClick();\n }\n if (isActionMenuSwitchItem(menuItem)) {\n toggleSwitch?.();\n menuItem.onClick(Boolean(!switchValue));\n }\n },\n isDisabled: menuItem?.disabled || false,\n 'aria-label': typeof menuItem?.title === 'string' ? menuItem?.title : 'Menu item',\n },\n state,\n ref,\n );\n const { title, decorator, subtitle, size, style, disabled, selectionIndicator } = menuItem;\n const { isFocusVisible, focusProps } = useFocusRing();\n\n return (\n
|
|
1
|
+
{"version":3,"file":"AriaMenuItem.es.js","sources":["../../../../src/components/ActionMenu/Aria/AriaMenuItem.tsx"],"sourcesContent":["/* (c) Copyright Frontify Ltd., all rights reserved. */\n\nimport { useFocusRing } from '@react-aria/focus';\nimport { useMenuItem } from '@react-aria/menu';\nimport { mergeProps } from '@react-aria/utils';\nimport { type TreeState } from '@react-stately/tree';\nimport { type Node } from '@react-types/shared';\nimport { type ReactElement, useEffect, useRef, useState } from 'react';\n\nimport { type ActionMenuItemType, type ActionMenuSwitchItemType } from '@components/ActionMenu';\nimport { type MenuItemType } from '@components/Dropdown';\nimport { MenuItem } from '@components/MenuItem/MenuItem';\nimport { Switch } from '@components/Switch';\nimport { FOCUS_STYLE_INSET } from '@utilities/focusStyle';\nimport { merge } from '@utilities/merge';\n\nexport type AriaOptionProps = {\n menuItem: MenuItemType | ActionMenuItemType | ActionMenuSwitchItemType;\n node: Node<object>;\n isSelected?: boolean;\n state: TreeState<object>;\n /**\n * @deprecated Use `menuItem.onClick` instead\n * */\n onClick?: () => void;\n};\n\ninterface SwitchObject {\n switchComponent: ReactElement | undefined;\n switchValue: boolean | null;\n toggleSwitch: VoidFunction | null;\n}\n\nconst isActionMenuItem = (\n menuItem: MenuItemType | ActionMenuItemType | ActionMenuSwitchItemType,\n): menuItem is ActionMenuItemType =>\n typeof (menuItem as ActionMenuItemType).onClick !== 'undefined' && typeof menuItem.type === 'undefined';\nconst isActionMenuSwitchItem = (\n menuItem: MenuItemType | ActionMenuItemType | ActionMenuSwitchItemType,\n): menuItem is ActionMenuSwitchItemType =>\n typeof (menuItem as ActionMenuSwitchItemType).onClick !== 'undefined' && menuItem.type === 'switch';\n\nconst useSwitch = (isSwitch: boolean, initialValue: boolean) => {\n const [switchValue, setSwitchValue] = useState<boolean>(initialValue ?? false);\n const [switchObject, setSwitchObject] = useState<SwitchObject>({\n switchComponent: undefined,\n switchValue: null,\n toggleSwitch: null,\n });\n\n useEffect(() => {\n if (isSwitch) {\n const toggleSwitch = () => setSwitchValue(!switchValue);\n const switchComponent = <Switch size=\"small\" mode={switchValue ? 'on' : 'off'} />;\n\n setSwitchObject({\n switchComponent,\n switchValue,\n toggleSwitch,\n });\n }\n }, [isSwitch, switchValue]);\n\n return switchObject;\n};\n\nexport const AriaMenuItem = ({ menuItem, node, state, isSelected, onClick }: AriaOptionProps): ReactElement => {\n const ref = useRef<HTMLLIElement | null>(null);\n const initialValue = isActionMenuSwitchItem(menuItem) ? menuItem.initialValue : false;\n const {\n switchComponent = undefined,\n switchValue = null,\n toggleSwitch = null,\n } = useSwitch(isActionMenuSwitchItem(menuItem), initialValue);\n\n const { menuItemProps } = useMenuItem(\n {\n ...node,\n onAction: () => {\n if (isActionMenuItem(menuItem)) {\n menuItem.onClick();\n }\n if (isActionMenuSwitchItem(menuItem)) {\n toggleSwitch?.();\n menuItem.onClick(Boolean(!switchValue));\n }\n },\n isDisabled: menuItem?.disabled || false,\n 'aria-label': typeof menuItem?.title === 'string' ? menuItem?.title : 'Menu item',\n },\n state,\n ref,\n );\n const { title, decorator, subtitle, size, style, disabled, selectionIndicator } = menuItem;\n const { isFocusVisible, focusProps } = useFocusRing();\n\n return (\n <li\n {...mergeProps(menuItemProps, focusProps, { onClick: () => onClick?.() })}\n data-test-id=\"menu-item\"\n className={merge([\n 'tw-relative hover:tw-bg-box-neutral-hover tw-list-none tw-outline-none',\n disabled && 'tw-pointer-events-none tw-top-px',\n isFocusVisible && FOCUS_STYLE_INSET,\n ])}\n ref={ref}\n >\n <MenuItem\n title={title}\n decorator={decorator}\n subtitle={subtitle}\n size={size}\n style={style}\n disabled={disabled}\n active={isSelected}\n selectionIndicator={selectionIndicator}\n switchComponent={switchComponent}\n />\n </li>\n );\n};\nAriaMenuItem.displayName = 'FondueAriaMenuItem';\n"],"names":["isActionMenuItem","menuItem","isActionMenuSwitchItem","useSwitch","isSwitch","initialValue","switchValue","setSwitchValue","useState","switchObject","setSwitchObject","useEffect","Switch","AriaMenuItem","node","state","isSelected","onClick","ref","useRef","switchComponent","toggleSwitch","menuItemProps","useMenuItem","title","decorator","subtitle","size","style","disabled","selectionIndicator","isFocusVisible","focusProps","useFocusRing","jsx","mergeProps","merge","FOCUS_STYLE_INSET","MenuItem"],"mappings":";;;;;;;;;AAiCA,MAAMA,IAAmB,CACrBC,MAEA,OAAQA,EAAgC,UAAY,OAAe,OAAOA,EAAS,OAAS,KAC1FC,IAAyB,CAC3BD,MAEA,OAAQA,EAAsC,UAAY,OAAeA,EAAS,SAAS,UAEzFE,IAAY,CAACC,GAAmBC,MAA0B;AAC5D,QAAM,CAACC,GAAaC,CAAc,IAAIC,EAAkBH,KAAgB,EAAK,GACvE,CAACI,GAAcC,CAAe,IAAIF,EAAuB;AAAA,IAC3D,iBAAiB;AAAA,IACjB,aAAa;AAAA,IACb,cAAc;AAAA,EAAA,CACjB;AAED,SAAAG,EAAU,MAAM;AACZ,IAAIP,KAIgBM,EAAA;AAAA,MACZ,mCAHqBE,GAAO,EAAA,MAAK,SAAQ,MAAMN,IAAc,OAAO,MAAO,CAAA;AAAA,MAI3E,aAAAA;AAAA,MACA,cANiB,MAAMC,EAAe,CAACD,CAAW;AAAA,IAMlD,CACH;AAAA,EACL,GACD,CAACF,GAAUE,CAAW,CAAC,GAEnBG;AACX,GAEaI,IAAe,CAAC,EAAE,UAAAZ,GAAU,MAAAa,GAAM,OAAAC,GAAO,YAAAC,GAAY,SAAAC,QAA6C;AACrG,QAAAC,IAAMC,EAA6B,IAAI,GACvCd,IAAeH,EAAuBD,CAAQ,IAAIA,EAAS,eAAe,IAC1E;AAAA,IACF,iBAAAmB,IAAkB;AAAA,IAClB,aAAAd,IAAc;AAAA,IACd,cAAAe,IAAe;AAAA,EACf,IAAAlB,EAAUD,EAAuBD,CAAQ,GAAGI,CAAY,GAEtD,EAAE,eAAAiB,MAAkBC;AAAA,IACtB;AAAA,MACI,GAAGT;AAAA,MACH,UAAU,MAAM;AACR,QAAAd,EAAiBC,CAAQ,KACzBA,EAAS,QAAQ,GAEjBC,EAAuBD,CAAQ,MAChBoB,KAAA,QAAAA,KACfpB,EAAS,QAAgB,CAACK,CAAY;AAAA,MAE9C;AAAA,MACA,aAAYL,KAAA,gBAAAA,EAAU,aAAY;AAAA,MAClC,cAAc,QAAOA,KAAA,gBAAAA,EAAU,UAAU,WAAWA,KAAA,gBAAAA,EAAU,QAAQ;AAAA,IAC1E;AAAA,IACAc;AAAA,IACAG;AAAA,EAAA,GAEE,EAAE,OAAAM,GAAO,WAAAC,GAAW,UAAAC,GAAU,MAAAC,GAAM,OAAAC,GAAO,UAAAC,GAAU,oBAAAC,EAAuB,IAAA7B,GAC5E,EAAE,gBAAA8B,GAAgB,YAAAC,EAAW,IAAIC,EAAa;AAGhD,SAAA,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACI,GAAGC,EAAWb,GAAeU,GAAY,EAAE,SAAS,MAAMf,KAAA,gBAAAA,KAAa;AAAA,MACxE,gBAAa;AAAA,MACb,WAAWmB,EAAM;AAAA,QACb;AAAA,QACAP,KAAY;AAAA,QACZE,KAAkBM;AAAA,MAAA,CACrB;AAAA,MACD,KAAAnB;AAAA,MAEA,UAAA,gBAAAgB;AAAA,QAACI;AAAA,QAAA;AAAA,UACG,OAAAd;AAAA,UACA,WAAAC;AAAA,UACA,UAAAC;AAAA,UACA,MAAAC;AAAA,UACA,OAAAC;AAAA,UACA,UAAAC;AAAA,UACA,QAAQb;AAAA,UACR,oBAAAc;AAAA,UACA,iBAAAV;AAAA,QAAA;AAAA,MACJ;AAAA,IAAA;AAAA,EAAA;AAGZ;AACAP,EAAa,cAAc;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BlurObserver.es.js","sources":["../../../src/components/RichTextEditor/BlurObserver.ts"],"sourcesContent":["/* (c) Copyright Frontify Ltd., all rights reserved. */\n\nimport { useEditorRef } from '@udecode/plate-core';\nimport { floatingLinkActions, useFloatingLinkSelectors } from '@udecode/plate-link';\nimport { useCallback, useEffect, useState } from 'react';\n\nimport { FLOATING_MODAL_SELECTOR } from './components';\n\nexport const BlurObserver = ({\n hideExternalFloatingModals,\n}: {\n hideExternalFloatingModals?: (editorId: string) => void;\n}) => {\n const editorRef = useEditorRef();\n const isFloatingLinkModalOpen = useFloatingLinkSelectors().isOpen(editorRef.id);\n const [isBlurObserverActive, setIsBlurObserverActive] = useState(false);\n\n const collapseFloatingModals = useCallback(() => {\n if (isFloatingLinkModalOpen) {\n floatingLinkActions.hide();\n }\n if (hideExternalFloatingModals) {\n hideExternalFloatingModals(editorRef.id);\n }\n }, [isFloatingLinkModalOpen, hideExternalFloatingModals, editorRef]);\n\n const collapseEverything = useCallback(() => {\n editorRef.
|
|
1
|
+
{"version":3,"file":"BlurObserver.es.js","sources":["../../../src/components/RichTextEditor/BlurObserver.ts"],"sourcesContent":["/* (c) Copyright Frontify Ltd., all rights reserved. */\n\nimport { useEditorRef } from '@udecode/plate-core';\nimport { floatingLinkActions, useFloatingLinkSelectors } from '@udecode/plate-link';\nimport { useCallback, useEffect, useState } from 'react';\n\nimport { FLOATING_MODAL_SELECTOR } from './components';\n\nexport const BlurObserver = ({\n hideExternalFloatingModals,\n}: {\n hideExternalFloatingModals?: (editorId: string) => void;\n}) => {\n const editorRef = useEditorRef();\n const isFloatingLinkModalOpen = useFloatingLinkSelectors().isOpen(editorRef.id);\n const [isBlurObserverActive, setIsBlurObserverActive] = useState(false);\n\n const collapseFloatingModals = useCallback(() => {\n if (isFloatingLinkModalOpen) {\n floatingLinkActions.hide();\n }\n if (hideExternalFloatingModals) {\n hideExternalFloatingModals(editorRef.id);\n }\n }, [isFloatingLinkModalOpen, hideExternalFloatingModals, editorRef]);\n\n const collapseEverything = useCallback(() => {\n collapseFloatingModals();\n editorRef.deselect();\n editorRef.collapse();\n }, [editorRef, collapseFloatingModals]);\n\n useEffect(() => {\n if (!isBlurObserverActive) {\n return;\n }\n\n const handleInteractWithOutside = (event: FocusEvent | MouseEvent) => {\n const richTextEditorSelector = `[data-editor-id='${editorRef.id}']`;\n const toolbarSelector = \"[role='toolbar']\";\n const modalSelector = '[data-is-underlay]';\n\n const targetElement = event.target as HTMLElement;\n\n const isInsidePortalledModal = targetElement.closest(modalSelector);\n const isInsideNonPortalledModal = targetElement.closest(FLOATING_MODAL_SELECTOR);\n const isInsideRichTextEditor = targetElement.closest(richTextEditorSelector);\n const isInsideRichTextEditorToolbar = targetElement.closest(toolbarSelector);\n\n if ((isInsideRichTextEditor && !isInsideNonPortalledModal) || isInsideRichTextEditorToolbar) {\n collapseFloatingModals();\n } else if (!isInsideRichTextEditor && !isInsideRichTextEditorToolbar && !isInsidePortalledModal) {\n collapseEverything();\n setIsBlurObserverActive(false);\n }\n };\n\n document.addEventListener('pointerdown', handleInteractWithOutside);\n document.addEventListener('focusin', handleInteractWithOutside);\n\n return () => {\n document.removeEventListener('focusin', handleInteractWithOutside);\n document.removeEventListener('pointerdown', handleInteractWithOutside);\n };\n }, [collapseEverything, collapseFloatingModals, editorRef.id, isBlurObserverActive]);\n\n /* Only activate blur observer when the user has focused the editor\n to limit the number of active document event listeners */\n useEffect(() => {\n const richTextEditor = document.querySelector(`[data-editor-id='${editorRef.id}']`);\n\n if (!richTextEditor) {\n return;\n }\n\n const setupBlurObserver = () => {\n setIsBlurObserverActive(true);\n };\n\n richTextEditor.addEventListener('focusin', setupBlurObserver);\n\n return () => {\n richTextEditor.removeEventListener('focusin', setupBlurObserver);\n };\n }, [editorRef.id]);\n\n return null;\n};\n"],"names":["BlurObserver","hideExternalFloatingModals","editorRef","useEditorRef","isFloatingLinkModalOpen","useFloatingLinkSelectors","isBlurObserverActive","setIsBlurObserverActive","useState","collapseFloatingModals","useCallback","floatingLinkActions","collapseEverything","useEffect","handleInteractWithOutside","event","richTextEditorSelector","toolbarSelector","modalSelector","targetElement","isInsidePortalledModal","isInsideNonPortalledModal","FLOATING_MODAL_SELECTOR","isInsideRichTextEditor","isInsideRichTextEditorToolbar","richTextEditor","setupBlurObserver"],"mappings":";;;;AAQO,MAAMA,IAAe,CAAC;AAAA,EACzB,4BAAAC;AACJ,MAEM;AACF,QAAMC,IAAYC,KACZC,IAA0BC,EAA2B,EAAA,OAAOH,EAAU,EAAE,GACxE,CAACI,GAAsBC,CAAuB,IAAIC,EAAS,EAAK,GAEhEC,IAAyBC,EAAY,MAAM;AAC7C,IAAIN,KACAO,EAAoB,KAAK,GAEzBV,KACAA,EAA2BC,EAAU,EAAE;AAAA,EAE5C,GAAA,CAACE,GAAyBH,GAA4BC,CAAS,CAAC,GAE7DU,IAAqBF,EAAY,MAAM;AAClB,IAAAD,KACvBP,EAAU,SAAS,GACnBA,EAAU,SAAS;AAAA,EAAA,GACpB,CAACA,GAAWO,CAAsB,CAAC;AAEtC,SAAAI,EAAU,MAAM;AACZ,QAAI,CAACP;AACD;AAGE,UAAAQ,IAA4B,CAACC,MAAmC;AAC5D,YAAAC,IAAyB,oBAAoBd,EAAU,EAAE,MACzDe,IAAkB,oBAClBC,IAAgB,sBAEhBC,IAAgBJ,EAAM,QAEtBK,IAAyBD,EAAc,QAAQD,CAAa,GAC5DG,IAA4BF,EAAc,QAAQG,CAAuB,GACzEC,IAAyBJ,EAAc,QAAQH,CAAsB,GACrEQ,IAAgCL,EAAc,QAAQF,CAAe;AAEtE,MAAAM,KAA0B,CAACF,KAA8BG,IACnCf,MAChB,CAACc,KAA0B,CAACC,KAAiC,CAACJ,MAClDR,KACnBL,EAAwB,EAAK;AAAA,IACjC;AAGK,oBAAA,iBAAiB,eAAeO,CAAyB,GACzD,SAAA,iBAAiB,WAAWA,CAAyB,GAEvD,MAAM;AACA,eAAA,oBAAoB,WAAWA,CAAyB,GACxD,SAAA,oBAAoB,eAAeA,CAAyB;AAAA,IAAA;AAAA,EACzE,GACD,CAACF,GAAoBH,GAAwBP,EAAU,IAAII,CAAoB,CAAC,GAInFO,EAAU,MAAM;AACZ,UAAMY,IAAiB,SAAS,cAAc,oBAAoBvB,EAAU,EAAE,IAAI;AAElF,QAAI,CAACuB;AACD;AAGJ,UAAMC,IAAoB,MAAM;AAC5B,MAAAnB,EAAwB,EAAI;AAAA,IAAA;AAGjB,WAAAkB,EAAA,iBAAiB,WAAWC,CAAiB,GAErD,MAAM;AACM,MAAAD,EAAA,oBAAoB,WAAWC,CAAiB;AAAA,IAAA;AAAA,EACnE,GACD,CAACxB,EAAU,EAAE,CAAC,GAEV;AACX;"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { jsx as i, jsxs as S } from "react/jsx-runtime";
|
|
2
2
|
import { Plate as g, PlateContent as z } from "@udecode/plate-core";
|
|
3
|
-
import D from "
|
|
3
|
+
import { noop as D } from "lodash-es";
|
|
4
4
|
import { useMemo as j, useCallback as T } from "react";
|
|
5
5
|
import { BlurObserver as B } from "./BlurObserver.es.js";
|
|
6
6
|
import { useMemoizedId as H } from "../../hooks/useMemoizedId.es.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RichTextEditor.es.js","sources":["../../../src/components/RichTextEditor/RichTextEditor.tsx"],"sourcesContent":["/* (c) Copyright Frontify Ltd., all rights reserved. */\n\nimport { Plate, PlateContent, type TEditableProps } from '@udecode/plate-core';\nimport noop from 'lodash-es
|
|
1
|
+
{"version":3,"file":"RichTextEditor.es.js","sources":["../../../src/components/RichTextEditor/RichTextEditor.tsx"],"sourcesContent":["/* (c) Copyright Frontify Ltd., all rights reserved. */\n\nimport { Plate, PlateContent, type TEditableProps } from '@udecode/plate-core';\nimport { noop } from 'lodash-es';\nimport { type KeyboardEvent, useCallback, useMemo } from 'react';\n\nimport { BlurObserver } from '@components/RichTextEditor/BlurObserver';\nimport { useMemoizedId } from '@hooks/useMemoizedId';\nimport { merge } from '@utilities/merge';\n\nimport { ContentReplacement } from './ContentReplacement';\nimport { GAP_DEFAULT, KEY_ELEMENT_BREAK_AFTER_COLUMN, type PluginComposer, defaultPlugins } from './Plugins';\nimport { Position } from './components/EditorPositioningWrapper';\nimport { RenderPlaceholder } from './components/RenderPlaceholder';\nimport { RichTextEditorProvider } from './context/RichTextEditorContext';\nimport { forceToFocusNextElement } from './helpers';\nimport { useEditorState } from './hooks';\nimport { PaddingSizes, type TreeOfNodes } from './types';\nimport { parseRawValue } from './utils';\n\nexport type RichTextEditorProps = {\n id?: string;\n placeholder?: string;\n value?: string;\n onTextChange?: (value: string) => void;\n onBlur?: (value: string) => void;\n readonly?: boolean;\n padding?: PaddingSizes;\n position?: Position;\n plugins?: PluginComposer;\n onValueChanged?: (value: TreeOfNodes | null) => void;\n border?: boolean;\n updateValueOnChange?: boolean; // Only set to true when you are sure that performance isn't an issue\n toolbarWidth?: number;\n hideExternalFloatingModals?: (editorId: string) => void;\n};\n\nexport const RichTextEditor = ({\n id,\n value,\n placeholder = '',\n readonly: readOnly = false,\n onTextChange,\n onBlur,\n padding = PaddingSizes.None,\n position = Position.FLOATING,\n plugins = defaultPlugins,\n updateValueOnChange = false,\n onValueChanged,\n border = true,\n toolbarWidth,\n hideExternalFloatingModals,\n}: RichTextEditorProps) => {\n const editorId = useMemoizedId(id);\n const { localValue, onChange, memoizedValue, config } = useEditorState({\n editorId,\n initialValue: value,\n onTextChange,\n plugins,\n onValueChanged,\n });\n const breakAfterPlugin = plugins.plugins.find((plugin) => plugin.key === KEY_ELEMENT_BREAK_AFTER_COLUMN);\n const customClass = breakAfterPlugin?.options?.customClass as string | undefined;\n const columns = customClass ? null : (breakAfterPlugin?.options?.columns ?? 1);\n const columnGap = breakAfterPlugin?.options?.gap ?? GAP_DEFAULT;\n\n const style = useMemo(\n () => ({\n columns,\n columnGap,\n outline: 'none',\n }),\n [columns, columnGap],\n );\n\n const onBlurHandler = useCallback(() => {\n if (onBlur) {\n onBlur(JSON.stringify(localValue.current));\n }\n }, [onBlur, localValue]);\n\n const onKeyDownHandler = useCallback((event: KeyboardEvent<HTMLDivElement>) => {\n if (event.code === 'Tab') {\n forceToFocusNextElement(event, !event.shiftKey);\n }\n }, []);\n\n const editableProps: TEditableProps = {\n placeholder,\n renderPlaceholder: RenderPlaceholder,\n readOnly,\n onBlur: onBlurHandler,\n className: merge([padding, customClass]),\n style,\n onKeyDown: onKeyDownHandler,\n scrollSelectionIntoView: noop,\n };\n\n return (\n <RichTextEditorProvider styles={config.styles()} position={position} border={border} editorId={editorId}>\n <Plate id={editorId} onChange={onChange} plugins={config.plugins} initialValue={memoizedValue}>\n <PlateContent {...editableProps} />\n {!editableProps.readOnly && config.toolbar(toolbarWidth)}\n {config.inline()}\n {updateValueOnChange && <ContentReplacement value={parseRawValue({ editorId, raw: value, plugins })} />}\n {position === Position.FLOATING && (\n <BlurObserver hideExternalFloatingModals={hideExternalFloatingModals} />\n )}\n </Plate>\n </RichTextEditorProvider>\n );\n};\nRichTextEditor.displayName = 'FondueRichTextEditor';\n"],"names":["RichTextEditor","id","value","placeholder","readOnly","onTextChange","onBlur","padding","PaddingSizes","position","Position","plugins","defaultPlugins","updateValueOnChange","onValueChanged","border","toolbarWidth","hideExternalFloatingModals","editorId","useMemoizedId","localValue","onChange","memoizedValue","config","useEditorState","breakAfterPlugin","plugin","KEY_ELEMENT_BREAK_AFTER_COLUMN","customClass","_a","columns","_b","columnGap","_c","GAP_DEFAULT","style","useMemo","onBlurHandler","useCallback","onKeyDownHandler","event","forceToFocusNextElement","editableProps","RenderPlaceholder","merge","noop","RichTextEditorProvider","jsxs","Plate","jsx","PlateContent","ContentReplacement","parseRawValue","BlurObserver"],"mappings":";;;;;;;;;;;;;;;;;AAqCO,MAAMA,IAAiB,CAAC;AAAA,EAC3B,IAAAC;AAAA,EACA,OAAAC;AAAA,EACA,aAAAC,IAAc;AAAA,EACd,UAAUC,IAAW;AAAA,EACrB,cAAAC;AAAA,EACA,QAAAC;AAAA,EACA,SAAAC,IAAUC,EAAa;AAAA,EACvB,UAAAC,IAAWC,EAAS;AAAA,EACpB,SAAAC,IAAUC;AAAA,EACV,qBAAAC,IAAsB;AAAA,EACtB,gBAAAC;AAAA,EACA,QAAAC,IAAS;AAAA,EACT,cAAAC;AAAA,EACA,4BAAAC;AACJ,MAA2B;;AACjB,QAAAC,IAAWC,EAAclB,CAAE,GAC3B,EAAE,YAAAmB,GAAY,UAAAC,GAAU,eAAAC,GAAe,QAAAC,EAAA,IAAWC,EAAe;AAAA,IACnE,UAAAN;AAAA,IACA,cAAchB;AAAA,IACd,cAAAG;AAAA,IACA,SAAAM;AAAA,IACA,gBAAAG;AAAA,EAAA,CACH,GACKW,IAAmBd,EAAQ,QAAQ,KAAK,CAACe,MAAWA,EAAO,QAAQC,CAA8B,GACjGC,KAAcC,IAAAJ,KAAA,gBAAAA,EAAkB,YAAlB,gBAAAI,EAA2B,aACzCC,IAAUF,IAAc,SAAQG,IAAAN,KAAA,gBAAAA,EAAkB,YAAlB,gBAAAM,EAA2B,YAAW,GACtEC,MAAYC,IAAAR,KAAA,gBAAAA,EAAkB,YAAlB,gBAAAQ,EAA2B,QAAOC,GAE9CC,IAAQC;AAAA,IACV,OAAO;AAAA,MACH,SAAAN;AAAA,MACA,WAAAE;AAAA,MACA,SAAS;AAAA,IAAA;AAAA,IAEb,CAACF,GAASE,CAAS;AAAA,EAAA,GAGjBK,IAAgBC,EAAY,MAAM;AACpC,IAAIhC,KACAA,EAAO,KAAK,UAAUc,EAAW,OAAO,CAAC;AAAA,EAC7C,GACD,CAACd,GAAQc,CAAU,CAAC,GAEjBmB,IAAmBD,EAAY,CAACE,MAAyC;AACvE,IAAAA,EAAM,SAAS,SACSC,EAAAD,GAAO,CAACA,EAAM,QAAQ;AAAA,EAEtD,GAAG,CAAE,CAAA,GAECE,IAAgC;AAAA,IAClC,aAAAvC;AAAA,IACA,mBAAmBwC;AAAA,IACnB,UAAAvC;AAAA,IACA,QAAQiC;AAAA,IACR,WAAWO,EAAM,CAACrC,GAASqB,CAAW,CAAC;AAAA,IACvC,OAAAO;AAAA,IACA,WAAWI;AAAA,IACX,yBAAyBM;AAAA,EAAA;AAG7B,2BACKC,GAAuB,EAAA,QAAQvB,EAAO,OAAO,GAAG,UAAAd,GAAoB,QAAAM,GAAgB,UAAAG,GACjF,UAAC,gBAAA6B,EAAAC,GAAA,EAAM,IAAI9B,GAAU,UAAAG,GAAoB,SAASE,EAAO,SAAS,cAAcD,GAC5E,UAAA;AAAA,IAAC,gBAAA2B,EAAAC,GAAA,EAAc,GAAGR,GAAe;AAAA,IAChC,CAACA,EAAc,YAAYnB,EAAO,QAAQP,CAAY;AAAA,IACtDO,EAAO,OAAO;AAAA,IACdV,KAAwB,gBAAAoC,EAAAE,GAAA,EAAmB,OAAOC,EAAc,EAAE,UAAAlC,GAAU,KAAKhB,GAAO,SAAAS,EAAQ,CAAC,EAAG,CAAA;AAAA,IACpGF,MAAaC,EAAS,YACnB,gBAAAuC,EAACI,KAAa,4BAAApC,GAAwD;AAAA,EAAA,EAE9E,CAAA,EACJ,CAAA;AAER;AACAjB,EAAe,cAAc;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TableCell.es.js","sources":["../../../src/components/Table/TableCell.tsx"],"sourcesContent":["/* (c) Copyright Frontify Ltd., all rights reserved. */\n\nimport { type Key, useRef } from 'react';\n\nimport { Checkbox as CheckboxComponent, CheckboxState } from '@components/Checkbox/Checkbox';\nimport { merge } from '@utilities/merge';\n\nimport { SelectionMode } from './Table';\n\nexport enum TableCellType {\n Default = 'Default',\n Checkbox = 'Checkbox',\n}\n\nexport type TableCellProps = {\n cell: any;\n selectionMode: string;\n type?: TableCellType;\n isChecked?: boolean;\n selectedRows: Key[];\n setSelectedRows?: (ids?: Key[]) => void;\n};\n\nexport const TableCell = ({\n cell,\n selectionMode,\n type = TableCellType.Default,\n isChecked = false,\n selectedRows,\n setSelectedRows,\n}: TableCellProps) => {\n const ref = useRef<HTMLTableCellElement | null>(null);\n\n if (type === TableCellType.Checkbox) {\n const { key } = cell;\n const handleChange = () => {\n if (!setSelectedRows) {\n return;\n }\n\n if (isChecked) {\n const filteredRows = selectedRows.filter((row) => row !== cell.parentKey);\n setSelectedRows(filteredRows);\n return;\n }\n\n const rowsToSelect =\n // eslint-disable-next-line @typescript-eslint/no-unsafe-enum-comparison\n selectionMode === SelectionMode.SingleSelect ? [cell.parentKey] : [...selectedRows, cell.parentKey];\n setSelectedRows(rowsToSelect);\n };\n\n return (\n <td\n
|
|
1
|
+
{"version":3,"file":"TableCell.es.js","sources":["../../../src/components/Table/TableCell.tsx"],"sourcesContent":["/* (c) Copyright Frontify Ltd., all rights reserved. */\n\nimport { type Key, useRef } from 'react';\n\nimport { Checkbox as CheckboxComponent, CheckboxState } from '@components/Checkbox/Checkbox';\nimport { merge } from '@utilities/merge';\n\nimport { SelectionMode } from './Table';\n\nexport enum TableCellType {\n Default = 'Default',\n Checkbox = 'Checkbox',\n}\n\nexport type TableCellProps = {\n cell: any;\n selectionMode: string;\n type?: TableCellType;\n isChecked?: boolean;\n selectedRows: Key[];\n setSelectedRows?: (ids?: Key[]) => void;\n};\n\nexport const TableCell = ({\n cell,\n selectionMode,\n type = TableCellType.Default,\n isChecked = false,\n selectedRows,\n setSelectedRows,\n}: TableCellProps) => {\n const ref = useRef<HTMLTableCellElement | null>(null);\n\n if (type === TableCellType.Checkbox) {\n const { key } = cell;\n const handleChange = () => {\n if (!setSelectedRows) {\n return;\n }\n\n if (isChecked) {\n const filteredRows = selectedRows.filter((row) => row !== cell.parentKey);\n setSelectedRows(filteredRows);\n return;\n }\n\n const rowsToSelect =\n // eslint-disable-next-line @typescript-eslint/no-unsafe-enum-comparison\n selectionMode === SelectionMode.SingleSelect ? [cell.parentKey] : [...selectedRows, cell.parentKey];\n setSelectedRows(rowsToSelect);\n };\n\n return (\n <td\n role=\"cell\"\n ref={ref}\n className={merge([\n 'tw-pl-8 tw-py-4 tw-pr-4 tw-relative after:tw-absolute after:tw-left-0 after:tw-top-[-1px] after:tw-bottom-[-1px] after:tw-w-1',\n isChecked ? 'after:tw-bg-box-selected-strong' : 'after:tw-bg-transparent',\n ])}\n data-test-id=\"table-select-cell\"\n >\n <CheckboxComponent\n value={key}\n aria-label={cell['aria-label'] || key}\n state={isChecked ? CheckboxState.Checked : CheckboxState.Unchecked}\n onChange={handleChange}\n />\n </td>\n );\n }\n\n return (\n <td\n role=\"cell\"\n ref={ref}\n className={merge([\n 'tw-p-4 tw-font-normal tw-text-xs focus:tw-outline-none',\n isChecked ? 'tw-text-black-100 dark:tw-text-white' : 'tw-text-black-80 dark:tw-text-black-20',\n ])}\n >\n {cell.rendered}\n </td>\n );\n};\nTableCell.displayName = 'FondueTableCell';\n"],"names":["TableCellType","TableCell","cell","selectionMode","type","isChecked","selectedRows","setSelectedRows","ref","useRef","key","handleChange","filteredRows","row","rowsToSelect","SelectionMode","jsx","merge","CheckboxComponent","CheckboxState"],"mappings":";;;;;AASY,IAAAA,sBAAAA,OACRA,EAAA,UAAU,WACVA,EAAA,WAAW,YAFHA,IAAAA,KAAA,CAAA,CAAA;AAcL,MAAMC,IAAY,CAAC;AAAA,EACtB,MAAAC;AAAA,EACA,eAAAC;AAAA,EACA,MAAAC,IAAO;AAAA,EACP,WAAAC,IAAY;AAAA,EACZ,cAAAC;AAAA,EACA,iBAAAC;AACJ,MAAsB;AACZ,QAAAC,IAAMC,EAAoC,IAAI;AAEpD,MAAIL,MAAS,YAAwB;AAC3B,UAAA,EAAE,KAAAM,EAAQ,IAAAR,GACVS,IAAe,MAAM;AACvB,UAAI,CAACJ;AACD;AAGJ,UAAIF,GAAW;AACX,cAAMO,IAAeN,EAAa,OAAO,CAACO,MAAQA,MAAQX,EAAK,SAAS;AACxE,QAAAK,EAAgBK,CAAY;AAC5B;AAAA,MACJ;AAEM,YAAAE;AAAA;AAAA,QAEFX,MAAkBY,EAAc,eAAe,CAACb,EAAK,SAAS,IAAI,CAAC,GAAGI,GAAcJ,EAAK,SAAS;AAAA;AACtG,MAAAK,EAAgBO,CAAY;AAAA,IAAA;AAI5B,WAAA,gBAAAE;AAAA,MAAC;AAAA,MAAA;AAAA,QACG,MAAK;AAAA,QACL,KAAAR;AAAA,QACA,WAAWS,EAAM;AAAA,UACb;AAAA,UACAZ,IAAY,oCAAoC;AAAA,QAAA,CACnD;AAAA,QACD,gBAAa;AAAA,QAEb,UAAA,gBAAAW;AAAA,UAACE;AAAAA,UAAA;AAAA,YACG,OAAOR;AAAA,YACP,cAAYR,EAAK,YAAY,KAAKQ;AAAA,YAClC,OAAOL,IAAYc,EAAc,UAAUA,EAAc;AAAA,YACzD,UAAUR;AAAA,UAAA;AAAA,QACd;AAAA,MAAA;AAAA,IAAA;AAAA,EAGZ;AAGI,SAAA,gBAAAK;AAAA,IAAC;AAAA,IAAA;AAAA,MACG,MAAK;AAAA,MACL,KAAAR;AAAA,MACA,WAAWS,EAAM;AAAA,QACb;AAAA,QACAZ,IAAY,yCAAyC;AAAA,MAAA,CACxD;AAAA,MAEA,UAAKH,EAAA;AAAA,IAAA;AAAA,EAAA;AAGlB;AACAD,EAAU,cAAc;"}
|
|
@@ -3,7 +3,7 @@ import { MeasuringStrategy as Ie, useSensors as Ne, useSensor as V, PointerSenso
|
|
|
3
3
|
import { restrictToWindowEdges as De } from "@dnd-kit/modifiers";
|
|
4
4
|
import { SortableContext as Ce, verticalListSortingStrategy as Te } from "@dnd-kit/sortable";
|
|
5
5
|
import { enableMapSet as Oe, produce as fe } from "immer";
|
|
6
|
-
import Y from "
|
|
6
|
+
import { isEqual as Y } from "lodash-es";
|
|
7
7
|
import { memo as _e, useMemo as D, useReducer as xe, useTransition as ve, useState as g, useEffect as C, useCallback as c, useRef as Le, cloneElement as be } from "react";
|
|
8
8
|
import { createPortal as Ae } from "react-dom";
|
|
9
9
|
import { TreeContext as Pe } from "./TreeContext.es.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Tree.es.js","sources":["../../../src/components/Tree/Tree.tsx"],"sourcesContent":["/* (c) Copyright Frontify Ltd., all rights reserved. */\n\nimport {\n DndContext,\n type DragEndEvent,\n type DragMoveEvent,\n DragOverlay,\n KeyboardSensor,\n type MeasuringConfiguration,\n MeasuringStrategy,\n PointerSensor,\n closestCorners,\n useSensor,\n useSensors,\n} from '@dnd-kit/core';\nimport { restrictToWindowEdges } from '@dnd-kit/modifiers';\nimport { SortableContext, verticalListSortingStrategy } from '@dnd-kit/sortable';\nimport { enableMapSet, produce } from 'immer';\nimport isEqual from 'lodash-es/isEqual';\nimport {\n type KeyboardEvent,\n cloneElement,\n memo,\n useCallback,\n useEffect,\n useMemo,\n useReducer,\n useRef,\n useState,\n useTransition,\n} from 'react';\nimport { createPortal } from 'react-dom';\n\nimport {\n type DragHandlerPosition,\n type RegisterNodeChildrenPayload,\n type SensorContext,\n type TreeAnnouncements,\n type TreeDragOverEvent,\n type TreeDragStartEvent,\n type TreeItemProps,\n type TreeItemStyling,\n type TreeProps,\n type TreeState,\n type TreeStateAction,\n} from '@components/Tree/types';\n\nimport { TreeContext, type TreeContextProps } from './TreeContext';\nimport { type InternalTreeItemProps, type Overlay, TreeItemOverlay } from './TreeItem';\nimport { type InternalTreeItemMultiSelectProps } from './TreeItem/TreeItemMultiselect';\nimport {\n ROOT_ID,\n currentNodesChanged,\n findIndexById,\n getAnnouncements,\n getCurrentChildrenForNewNodesIfExpanded,\n getNodeChildrenIds,\n getNodesToRender,\n getProjection,\n getReactNodeIdsInFlatArray,\n getTreeNodesWithoutElements,\n handleKeyDownEvent,\n removeReactNodesFromFlatArray,\n sensorsActivationConstraint,\n shouldUpdateTreeState,\n updateNodeWithNewChildren,\n} from './helpers';\nimport {\n recursivelyRemoveFragmentsAndEnrichChildren,\n sortableTreeKeyboardCoordinates,\n useDeepCompareEffect,\n} from './utils';\n\nconst measuring: MeasuringConfiguration = {\n droppable: {\n strategy: MeasuringStrategy.Always,\n },\n};\n\nenableMapSet();\n\nconst reducer = produce((draft: TreeState, action: TreeStateAction) => {\n switch (action.type) {\n case 'EXPAND_NODE': {\n draft.expandedIds = new Set(draft.expandedIds).add(action.payload);\n return;\n }\n\n case 'SHRINK_NODE': {\n const newExpanded = new Set(draft.expandedIds);\n newExpanded.delete(action.payload);\n\n draft.expandedIds = newExpanded;\n return;\n }\n\n case 'SET_SELECTION_MODE':\n draft.selectionMode = action.payload.selectionMode;\n return;\n\n case 'SET_PROJECTION': {\n if (!isEqual(draft.projection, action.payload)) {\n draft.projection = action.payload;\n }\n return;\n }\n\n case 'REGISTER_OVERLAY_ITEM': {\n draft.overlay = action.payload;\n return;\n }\n\n case 'REGISTER_ROOT_NODES': {\n // reset rootNodes keeping any children when expanded\n draft.rootNodes = getCurrentChildrenForNewNodesIfExpanded(\n draft.rootNodes,\n draft.expandedIds,\n action.payload,\n );\n return;\n }\n\n case 'REGISTER_NODE_CHILDREN': {\n const { id: parentId, children } = action.payload;\n\n if (findIndexById(draft.rootNodes, parentId) === -1) {\n // This can happen when this action is triggered before the rootNodes array is updated\n // It happens if using static data will all nodes and handling expandedIds outside the Tree component\n // Most of the cases, it will register the children properly afterwards\n // See Scrollable Tree With Label story\n console.warn(`Parent element with ID \"${parentId}\" not found when registering children.`);\n return;\n }\n\n const currentChildrenIds = getNodeChildrenIds(draft.rootNodes, parentId);\n const newChildrenIds = children.map((node) => node.props.id);\n\n if (\n !isEqual(currentChildrenIds, newChildrenIds) ||\n currentNodesChanged(currentChildrenIds, draft.rootNodes, children)\n ) {\n // keep any children when parent expanded\n const newChildren = getCurrentChildrenForNewNodesIfExpanded(\n draft.rootNodes,\n draft.expandedIds,\n children,\n );\n draft.rootNodes = updateNodeWithNewChildren(draft.rootNodes, parentId, newChildren);\n }\n\n return;\n }\n\n case 'UNREGISTER_NODE_CHILDREN': {\n const nodeIds = getReactNodeIdsInFlatArray(draft.rootNodes, action.payload);\n if (nodeIds.length > 0) {\n draft.rootNodes = removeReactNodesFromFlatArray(draft.rootNodes, nodeIds);\n }\n return;\n }\n\n case 'REGISTER_NODES': {\n draft.nodes = action.payload;\n return;\n }\n\n case 'REPLACE_EXPANDED': {\n draft.expandedIds = new Set(action.payload);\n return;\n }\n\n case 'REPLACE_SELECTED': {\n draft.selectedIds = new Set(action.payload);\n return;\n }\n\n case 'REPLACE_STATE': {\n draft.rootNodes = action.payload.rootNodes;\n draft.overlay = action.payload.overlay;\n draft.projection = action.payload.projection;\n draft.selectedIds = action.payload.selectedIds;\n draft.expandedIds = action.payload.expandedIds;\n draft.selectionMode = action.payload.selectionMode;\n return;\n }\n\n default: {\n console.warn(`Updated tree with action \"${action.type}\" but it has not effect.`);\n return;\n }\n }\n});\n\nexport const Tree = memo(\n ({\n id,\n onDrop,\n onSelect = () => {},\n onExpand,\n onShrink,\n children,\n selectedIds,\n expandedIds,\n draggable = false,\n multiselect = false,\n dragHandlerPosition = 'left',\n enableDragDelay = true,\n showDragHandlerOnHoverOnly = true,\n showContentWhileDragging = false,\n itemStyle,\n 'data-test-id': dataTestId = 'fondue-tree',\n }: TreeProps) => {\n const initialState: TreeState = useMemo(\n () => ({\n selectionMode: multiselect ? 'multiselect' : 'single',\n selectedIds: new Set(selectedIds ?? []),\n expandedIds: new Set(expandedIds ?? []),\n rootNodes: [],\n expandedNodes: [],\n nodes: [],\n nodesReady: false,\n projection: null,\n }),\n [expandedIds, multiselect, selectedIds],\n );\n\n const [treeState, updateTreeState] = useReducer(reducer, initialState);\n const [, startTransition] = useTransition();\n\n const [offset, setOffset] = useState<Nullable<number>>(null);\n const [overId, setOverId] = useState<Nullable<string>>(null);\n const [activeId, setActiveId] = useState<Nullable<string>>(null);\n const [currentPosition, setCurrentPosition] =\n useState<Nullable<{ overId: string; parentId: Nullable<string> }>>(null);\n\n useEffect(() => {\n const keyDownHandler = (event: globalThis.KeyboardEvent) => {\n if (shouldUpdateTreeState(event, multiselect)) {\n updateTreeState({\n type: 'SET_SELECTION_MODE',\n payload: { selectionMode: 'multiselect' },\n });\n }\n };\n\n const keyUpHandler = (event: globalThis.KeyboardEvent) => {\n if (shouldUpdateTreeState(event, multiselect)) {\n updateTreeState({\n type: 'SET_SELECTION_MODE',\n payload: { selectionMode: 'single' },\n });\n }\n };\n\n if (multiselect) {\n window.addEventListener('keydown', keyDownHandler);\n window.addEventListener('keyup', keyUpHandler);\n }\n\n return () => {\n window.removeEventListener('keydown', keyDownHandler);\n window.removeEventListener('keyup', keyUpHandler);\n };\n }, [multiselect]);\n\n const registerOverlay = useCallback((overlay: Overlay) => {\n updateTreeState({ type: 'REGISTER_OVERLAY_ITEM', payload: overlay });\n }, []);\n\n const registerNodeChildren = useCallback((payload: RegisterNodeChildrenPayload) => {\n updateTreeState({ type: 'REGISTER_NODE_CHILDREN', payload });\n }, []);\n\n const unregisterNodeChildren = useCallback((payload: string) => {\n updateTreeState({ type: 'UNREGISTER_NODE_CHILDREN', payload });\n }, []);\n\n const handleSelect = useCallback(\n (id: string, ignoreRemoveSelected = false) => {\n onSelect(id, ignoreRemoveSelected, getTreeNodesWithoutElements(treeState.nodes));\n },\n [onSelect, treeState.nodes],\n );\n\n const handleExpand = useCallback(\n (id: string) => {\n if (onExpand) {\n return onExpand(id);\n }\n\n updateTreeState({\n type: 'EXPAND_NODE',\n payload: id,\n });\n },\n [onExpand],\n );\n\n const handleShrink = useCallback(\n (id: string) => {\n if (onShrink) {\n return onShrink(id);\n }\n\n updateTreeState({\n type: 'SHRINK_NODE',\n payload: id,\n });\n },\n [onShrink],\n );\n\n const handleDragEnd = (event: DragEndEvent) => {\n resetState();\n\n const { over, active } = event;\n\n if (!over?.id || !active?.id || !treeState.projection?.parentId) {\n return;\n }\n\n const activeNode = treeState.nodes.find((node) => node.props.id === active.id);\n const contentComponent = activeNode?.props?.contentComponent;\n\n onDrop?.({\n id: active.id.toString(),\n parentId: treeState.projection.parentId,\n sort: treeState.projection.position,\n contentComponent,\n });\n };\n\n const handleDragStart = ({ active: { id: activeId, data } }: TreeDragStartEvent) => {\n setActiveId(activeId);\n setOverId(activeId);\n\n if (activeId && data.current) {\n setCurrentPosition({\n parentId: data.current.parentId,\n overId: activeId,\n });\n }\n\n document.body.style.setProperty('cursor', 'grabbing');\n };\n\n const handleDragOver = ({ over }: TreeDragOverEvent) => {\n setOverId(over?.id ?? null);\n };\n\n const handleDragMove = ({ delta }: DragMoveEvent) => {\n setOffset(delta.x);\n };\n\n const handleDragCancel = () => {\n resetState();\n };\n\n const resetState = () => {\n setOverId(null);\n setActiveId(null);\n setOffset(0);\n setCurrentPosition(null);\n\n document.body.style.setProperty('cursor', 'default');\n };\n\n const handleKeyDown = useCallback(\n (event: KeyboardEvent<HTMLUListElement>) => {\n return handleKeyDownEvent(\n event,\n treeState.expandedIds,\n treeState.nodes,\n handleSelect,\n handleShrink,\n handleExpand,\n );\n },\n [handleExpand, handleShrink, handleSelect, treeState.expandedIds, treeState.nodes],\n );\n\n const sensorContext: SensorContext = useRef({\n nodes: treeState.nodes,\n offset: offset ?? 0,\n });\n\n const [coordinateGetter] = useState(() => sortableTreeKeyboardCoordinates(sensorContext));\n const activationConstraint = sensorsActivationConstraint({ dragHandlerPosition, enableDragDelay });\n\n const sensors = useSensors(\n useSensor(PointerSensor, { activationConstraint }),\n useSensor(KeyboardSensor, { coordinateGetter }),\n );\n\n const announcements: TreeAnnouncements = useMemo(() => {\n return getAnnouncements(treeState, currentPosition, setCurrentPosition);\n }, [currentPosition, treeState]);\n\n useDeepCompareEffect(() => {\n if (!children) {\n return;\n }\n\n updateTreeState({\n type: 'REGISTER_ROOT_NODES',\n payload: recursivelyRemoveFragmentsAndEnrichChildren(children, { parentId: ROOT_ID, level: 0 }),\n });\n }, [children]);\n\n useDeepCompareEffect(() => {\n if (treeState.rootNodes.length === 0) {\n return;\n }\n\n startTransition(() => {\n const nodesToRender = getNodesToRender(treeState.rootNodes, treeState.expandedIds);\n\n updateTreeState({\n type: 'REGISTER_NODES',\n payload: nodesToRender,\n });\n });\n }, [treeState.rootNodes, treeState.expandedIds]);\n\n useEffect(() => {\n updateTreeState({\n type: 'REPLACE_EXPANDED',\n payload: expandedIds ?? [],\n });\n }, [expandedIds]);\n\n useEffect(() => {\n updateTreeState({\n type: 'REPLACE_SELECTED',\n payload: selectedIds ?? [],\n });\n }, [selectedIds]);\n\n useDeepCompareEffect(() => {\n sensorContext.current = {\n nodes: treeState.nodes,\n offset: offset ?? 0,\n };\n }, [offset, treeState.nodes]);\n\n useEffect(() => {\n const projection =\n activeId && overId\n ? getProjection({\n nodes: treeState.nodes,\n activeId,\n overId,\n dragOffset: offset ?? 0,\n })\n : null;\n\n updateTreeState({\n type: 'SET_PROJECTION',\n payload: projection,\n });\n }, [activeId, offset, overId, treeState.nodes]);\n\n const getPropToUse = (\n nodeProp: TreeItemProps['dragHandlerPosition' | 'showContentWhileDragging' | 'showDragHandlerOnHoverOnly'],\n treeProp: TreeProps['dragHandlerPosition' | 'showContentWhileDragging' | 'showDragHandlerOnHoverOnly'],\n ) => nodeProp || treeProp;\n\n const { nodes, items } = useMemo(() => {\n const treeItemStyle = {\n spacingY: 'none',\n contentHight: 'single-line',\n shadow: 'none',\n borderRadius: 'small',\n borderWidth: 'none',\n borderStyle: 'none',\n activeColorStyle: 'neutral',\n ...itemStyle,\n } as TreeItemStyling;\n\n const getTreeItemProps = (nodeProps: InternalTreeItemProps | InternalTreeItemMultiSelectProps) => {\n return multiselect\n ? {\n checkBoxPosition: getPropToUse(\n (nodeProps as InternalTreeItemMultiSelectProps).checkBoxPosition,\n dragHandlerPosition,\n ) as DragHandlerPosition,\n }\n : {\n draggable: (nodeProps as InternalTreeItemProps).draggable ? true : draggable,\n dragHandlerPosition: getPropToUse(\n (nodeProps as InternalTreeItemProps).dragHandlerPosition,\n dragHandlerPosition,\n ) as TreeProps['dragHandlerPosition'],\n showDragHandlerOnHoverOnly: getPropToUse(\n (nodeProps as InternalTreeItemProps).showDragHandlerOnHoverOnly,\n showDragHandlerOnHoverOnly,\n ) as TreeProps['showDragHandlerOnHoverOnly'],\n showContentWhileDragging: getPropToUse(\n (nodeProps as InternalTreeItemProps).showContentWhileDragging,\n showContentWhileDragging,\n ) as TreeProps['showContentWhileDragging'],\n };\n };\n\n return {\n items: treeState.nodes.map((node) => node.props.id),\n nodes: treeState.nodes.map((node) =>\n cloneElement(node, {\n ...getTreeItemProps(node.props),\n itemStyle: { ...treeItemStyle, ...node.props.itemStyle },\n registerOverlay,\n onExpand: handleExpand,\n onShrink: handleShrink,\n onSelect: handleSelect,\n registerNodeChildren,\n unregisterNodeChildren,\n }),\n ),\n };\n }, [\n itemStyle,\n treeState.nodes,\n draggable,\n multiselect,\n dragHandlerPosition,\n showDragHandlerOnHoverOnly,\n showContentWhileDragging,\n registerOverlay,\n handleExpand,\n handleShrink,\n handleSelect,\n registerNodeChildren,\n unregisterNodeChildren,\n ]);\n\n const contextValue: TreeContextProps = useMemo(\n () => ({\n treeState,\n onSelect: handleSelect,\n onExpand: handleExpand,\n onShrink: handleShrink,\n }),\n [treeState, handleSelect, handleExpand, handleShrink],\n );\n\n return (\n <TreeContext.Provider value={contextValue}>\n <ul\n id={id}\n // eslint-disable-next-line jsx-a11y/no-noninteractive-element-to-interactive-role\n role=\"tree\"\n data-test-id={dataTestId}\n onKeyDown={handleKeyDown}\n aria-multiselectable={treeState.selectionMode === 'multiselect'}\n className=\"tw-p-0 tw-m-0 tw-font-sans tw-font-normal tw-list-none tw-text-left tw-text-sm tw-select-none\"\n >\n <DndContext\n sensors={sensors}\n measuring={measuring}\n onDragEnd={handleDragEnd}\n onDragOver={handleDragOver}\n onDragMove={handleDragMove}\n onDragStart={handleDragStart}\n onDragCancel={handleDragCancel}\n accessibility={{\n announcements,\n container: document.getElementById(id)?.parentElement ?? document.body,\n }}\n collisionDetection={closestCorners}\n >\n <SortableContext items={items} strategy={verticalListSortingStrategy}>\n {nodes}\n </SortableContext>\n\n {createPortal(\n <DragOverlay\n zIndex={1500}\n wrapperElement=\"ul\"\n dropAnimation={null}\n modifiers={[restrictToWindowEdges]}\n >\n {treeState.overlay && (\n <TreeItemOverlay\n {...treeState.overlay}\n isSelected={treeState.selectedIds.has(treeState.overlay.id)}\n />\n )}\n </DragOverlay>,\n document.body,\n )}\n </DndContext>\n </ul>\n </TreeContext.Provider>\n );\n },\n);\n\nTree.displayName = 'FondueTree';\n"],"names":["measuring","MeasuringStrategy","enableMapSet","reducer","produce","draft","action","newExpanded","isEqual","getCurrentChildrenForNewNodesIfExpanded","parentId","children","findIndexById","currentChildrenIds","getNodeChildrenIds","newChildrenIds","node","currentNodesChanged","newChildren","updateNodeWithNewChildren","nodeIds","getReactNodeIdsInFlatArray","removeReactNodesFromFlatArray","Tree","memo","id","onDrop","onSelect","onExpand","onShrink","selectedIds","expandedIds","draggable","multiselect","dragHandlerPosition","enableDragDelay","showDragHandlerOnHoverOnly","showContentWhileDragging","itemStyle","dataTestId","initialState","useMemo","treeState","updateTreeState","useReducer","startTransition","useTransition","offset","setOffset","useState","overId","setOverId","activeId","setActiveId","currentPosition","setCurrentPosition","useEffect","keyDownHandler","event","shouldUpdateTreeState","keyUpHandler","registerOverlay","useCallback","overlay","registerNodeChildren","payload","unregisterNodeChildren","handleSelect","ignoreRemoveSelected","getTreeNodesWithoutElements","handleExpand","handleShrink","handleDragEnd","resetState","over","active","_a","activeNode","contentComponent","_b","handleDragStart","data","handleDragOver","handleDragMove","delta","handleDragCancel","handleKeyDown","handleKeyDownEvent","sensorContext","useRef","coordinateGetter","sortableTreeKeyboardCoordinates","activationConstraint","sensorsActivationConstraint","sensors","useSensors","useSensor","PointerSensor","KeyboardSensor","announcements","getAnnouncements","useDeepCompareEffect","recursivelyRemoveFragmentsAndEnrichChildren","ROOT_ID","nodesToRender","getNodesToRender","projection","getProjection","getPropToUse","nodeProp","treeProp","nodes","items","treeItemStyle","getTreeItemProps","nodeProps","cloneElement","contextValue","jsx","TreeContext","jsxs","DndContext","closestCorners","SortableContext","verticalListSortingStrategy","createPortal","DragOverlay","restrictToWindowEdges","TreeItemOverlay"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Tree.es.js","sources":["../../../src/components/Tree/Tree.tsx"],"sourcesContent":["/* (c) Copyright Frontify Ltd., all rights reserved. */\n\nimport {\n DndContext,\n type DragEndEvent,\n type DragMoveEvent,\n DragOverlay,\n KeyboardSensor,\n type MeasuringConfiguration,\n MeasuringStrategy,\n PointerSensor,\n closestCorners,\n useSensor,\n useSensors,\n} from '@dnd-kit/core';\nimport { restrictToWindowEdges } from '@dnd-kit/modifiers';\nimport { SortableContext, verticalListSortingStrategy } from '@dnd-kit/sortable';\nimport { enableMapSet, produce } from 'immer';\nimport { isEqual } from 'lodash-es';\nimport {\n type KeyboardEvent,\n cloneElement,\n memo,\n useCallback,\n useEffect,\n useMemo,\n useReducer,\n useRef,\n useState,\n useTransition,\n} from 'react';\nimport { createPortal } from 'react-dom';\n\nimport {\n type DragHandlerPosition,\n type RegisterNodeChildrenPayload,\n type SensorContext,\n type TreeAnnouncements,\n type TreeDragOverEvent,\n type TreeDragStartEvent,\n type TreeItemProps,\n type TreeItemStyling,\n type TreeProps,\n type TreeState,\n type TreeStateAction,\n} from '@components/Tree/types';\n\nimport { TreeContext, type TreeContextProps } from './TreeContext';\nimport { type InternalTreeItemProps, type Overlay, TreeItemOverlay } from './TreeItem';\nimport { type InternalTreeItemMultiSelectProps } from './TreeItem/TreeItemMultiselect';\nimport {\n ROOT_ID,\n currentNodesChanged,\n findIndexById,\n getAnnouncements,\n getCurrentChildrenForNewNodesIfExpanded,\n getNodeChildrenIds,\n getNodesToRender,\n getProjection,\n getReactNodeIdsInFlatArray,\n getTreeNodesWithoutElements,\n handleKeyDownEvent,\n removeReactNodesFromFlatArray,\n sensorsActivationConstraint,\n shouldUpdateTreeState,\n updateNodeWithNewChildren,\n} from './helpers';\nimport {\n recursivelyRemoveFragmentsAndEnrichChildren,\n sortableTreeKeyboardCoordinates,\n useDeepCompareEffect,\n} from './utils';\n\nconst measuring: MeasuringConfiguration = {\n droppable: {\n strategy: MeasuringStrategy.Always,\n },\n};\n\nenableMapSet();\n\nconst reducer = produce((draft: TreeState, action: TreeStateAction) => {\n switch (action.type) {\n case 'EXPAND_NODE': {\n draft.expandedIds = new Set(draft.expandedIds).add(action.payload);\n return;\n }\n\n case 'SHRINK_NODE': {\n const newExpanded = new Set(draft.expandedIds);\n newExpanded.delete(action.payload);\n\n draft.expandedIds = newExpanded;\n return;\n }\n\n case 'SET_SELECTION_MODE':\n draft.selectionMode = action.payload.selectionMode;\n return;\n\n case 'SET_PROJECTION': {\n if (!isEqual(draft.projection, action.payload)) {\n draft.projection = action.payload;\n }\n return;\n }\n\n case 'REGISTER_OVERLAY_ITEM': {\n draft.overlay = action.payload;\n return;\n }\n\n case 'REGISTER_ROOT_NODES': {\n // reset rootNodes keeping any children when expanded\n draft.rootNodes = getCurrentChildrenForNewNodesIfExpanded(\n draft.rootNodes,\n draft.expandedIds,\n action.payload,\n );\n return;\n }\n\n case 'REGISTER_NODE_CHILDREN': {\n const { id: parentId, children } = action.payload;\n\n if (findIndexById(draft.rootNodes, parentId) === -1) {\n // This can happen when this action is triggered before the rootNodes array is updated\n // It happens if using static data will all nodes and handling expandedIds outside the Tree component\n // Most of the cases, it will register the children properly afterwards\n // See Scrollable Tree With Label story\n console.warn(`Parent element with ID \"${parentId}\" not found when registering children.`);\n return;\n }\n\n const currentChildrenIds = getNodeChildrenIds(draft.rootNodes, parentId);\n const newChildrenIds = children.map((node) => node.props.id);\n\n if (\n !isEqual(currentChildrenIds, newChildrenIds) ||\n currentNodesChanged(currentChildrenIds, draft.rootNodes, children)\n ) {\n // keep any children when parent expanded\n const newChildren = getCurrentChildrenForNewNodesIfExpanded(\n draft.rootNodes,\n draft.expandedIds,\n children,\n );\n draft.rootNodes = updateNodeWithNewChildren(draft.rootNodes, parentId, newChildren);\n }\n\n return;\n }\n\n case 'UNREGISTER_NODE_CHILDREN': {\n const nodeIds = getReactNodeIdsInFlatArray(draft.rootNodes, action.payload);\n if (nodeIds.length > 0) {\n draft.rootNodes = removeReactNodesFromFlatArray(draft.rootNodes, nodeIds);\n }\n return;\n }\n\n case 'REGISTER_NODES': {\n draft.nodes = action.payload;\n return;\n }\n\n case 'REPLACE_EXPANDED': {\n draft.expandedIds = new Set(action.payload);\n return;\n }\n\n case 'REPLACE_SELECTED': {\n draft.selectedIds = new Set(action.payload);\n return;\n }\n\n case 'REPLACE_STATE': {\n draft.rootNodes = action.payload.rootNodes;\n draft.overlay = action.payload.overlay;\n draft.projection = action.payload.projection;\n draft.selectedIds = action.payload.selectedIds;\n draft.expandedIds = action.payload.expandedIds;\n draft.selectionMode = action.payload.selectionMode;\n return;\n }\n\n default: {\n console.warn(`Updated tree with action \"${action.type}\" but it has not effect.`);\n return;\n }\n }\n});\n\nexport const Tree = memo(\n ({\n id,\n onDrop,\n onSelect = () => {},\n onExpand,\n onShrink,\n children,\n selectedIds,\n expandedIds,\n draggable = false,\n multiselect = false,\n dragHandlerPosition = 'left',\n enableDragDelay = true,\n showDragHandlerOnHoverOnly = true,\n showContentWhileDragging = false,\n itemStyle,\n 'data-test-id': dataTestId = 'fondue-tree',\n }: TreeProps) => {\n const initialState: TreeState = useMemo(\n () => ({\n selectionMode: multiselect ? 'multiselect' : 'single',\n selectedIds: new Set(selectedIds ?? []),\n expandedIds: new Set(expandedIds ?? []),\n rootNodes: [],\n expandedNodes: [],\n nodes: [],\n nodesReady: false,\n projection: null,\n }),\n [expandedIds, multiselect, selectedIds],\n );\n\n const [treeState, updateTreeState] = useReducer(reducer, initialState);\n const [, startTransition] = useTransition();\n\n const [offset, setOffset] = useState<Nullable<number>>(null);\n const [overId, setOverId] = useState<Nullable<string>>(null);\n const [activeId, setActiveId] = useState<Nullable<string>>(null);\n const [currentPosition, setCurrentPosition] =\n useState<Nullable<{ overId: string; parentId: Nullable<string> }>>(null);\n\n useEffect(() => {\n const keyDownHandler = (event: globalThis.KeyboardEvent) => {\n if (shouldUpdateTreeState(event, multiselect)) {\n updateTreeState({\n type: 'SET_SELECTION_MODE',\n payload: { selectionMode: 'multiselect' },\n });\n }\n };\n\n const keyUpHandler = (event: globalThis.KeyboardEvent) => {\n if (shouldUpdateTreeState(event, multiselect)) {\n updateTreeState({\n type: 'SET_SELECTION_MODE',\n payload: { selectionMode: 'single' },\n });\n }\n };\n\n if (multiselect) {\n window.addEventListener('keydown', keyDownHandler);\n window.addEventListener('keyup', keyUpHandler);\n }\n\n return () => {\n window.removeEventListener('keydown', keyDownHandler);\n window.removeEventListener('keyup', keyUpHandler);\n };\n }, [multiselect]);\n\n const registerOverlay = useCallback((overlay: Overlay) => {\n updateTreeState({ type: 'REGISTER_OVERLAY_ITEM', payload: overlay });\n }, []);\n\n const registerNodeChildren = useCallback((payload: RegisterNodeChildrenPayload) => {\n updateTreeState({ type: 'REGISTER_NODE_CHILDREN', payload });\n }, []);\n\n const unregisterNodeChildren = useCallback((payload: string) => {\n updateTreeState({ type: 'UNREGISTER_NODE_CHILDREN', payload });\n }, []);\n\n const handleSelect = useCallback(\n (id: string, ignoreRemoveSelected = false) => {\n onSelect(id, ignoreRemoveSelected, getTreeNodesWithoutElements(treeState.nodes));\n },\n [onSelect, treeState.nodes],\n );\n\n const handleExpand = useCallback(\n (id: string) => {\n if (onExpand) {\n return onExpand(id);\n }\n\n updateTreeState({\n type: 'EXPAND_NODE',\n payload: id,\n });\n },\n [onExpand],\n );\n\n const handleShrink = useCallback(\n (id: string) => {\n if (onShrink) {\n return onShrink(id);\n }\n\n updateTreeState({\n type: 'SHRINK_NODE',\n payload: id,\n });\n },\n [onShrink],\n );\n\n const handleDragEnd = (event: DragEndEvent) => {\n resetState();\n\n const { over, active } = event;\n\n if (!over?.id || !active?.id || !treeState.projection?.parentId) {\n return;\n }\n\n const activeNode = treeState.nodes.find((node) => node.props.id === active.id);\n const contentComponent = activeNode?.props?.contentComponent;\n\n onDrop?.({\n id: active.id.toString(),\n parentId: treeState.projection.parentId,\n sort: treeState.projection.position,\n contentComponent,\n });\n };\n\n const handleDragStart = ({ active: { id: activeId, data } }: TreeDragStartEvent) => {\n setActiveId(activeId);\n setOverId(activeId);\n\n if (activeId && data.current) {\n setCurrentPosition({\n parentId: data.current.parentId,\n overId: activeId,\n });\n }\n\n document.body.style.setProperty('cursor', 'grabbing');\n };\n\n const handleDragOver = ({ over }: TreeDragOverEvent) => {\n setOverId(over?.id ?? null);\n };\n\n const handleDragMove = ({ delta }: DragMoveEvent) => {\n setOffset(delta.x);\n };\n\n const handleDragCancel = () => {\n resetState();\n };\n\n const resetState = () => {\n setOverId(null);\n setActiveId(null);\n setOffset(0);\n setCurrentPosition(null);\n\n document.body.style.setProperty('cursor', 'default');\n };\n\n const handleKeyDown = useCallback(\n (event: KeyboardEvent<HTMLUListElement>) => {\n return handleKeyDownEvent(\n event,\n treeState.expandedIds,\n treeState.nodes,\n handleSelect,\n handleShrink,\n handleExpand,\n );\n },\n [handleExpand, handleShrink, handleSelect, treeState.expandedIds, treeState.nodes],\n );\n\n const sensorContext: SensorContext = useRef({\n nodes: treeState.nodes,\n offset: offset ?? 0,\n });\n\n const [coordinateGetter] = useState(() => sortableTreeKeyboardCoordinates(sensorContext));\n const activationConstraint = sensorsActivationConstraint({ dragHandlerPosition, enableDragDelay });\n\n const sensors = useSensors(\n useSensor(PointerSensor, { activationConstraint }),\n useSensor(KeyboardSensor, { coordinateGetter }),\n );\n\n const announcements: TreeAnnouncements = useMemo(() => {\n return getAnnouncements(treeState, currentPosition, setCurrentPosition);\n }, [currentPosition, treeState]);\n\n useDeepCompareEffect(() => {\n if (!children) {\n return;\n }\n\n updateTreeState({\n type: 'REGISTER_ROOT_NODES',\n payload: recursivelyRemoveFragmentsAndEnrichChildren(children, { parentId: ROOT_ID, level: 0 }),\n });\n }, [children]);\n\n useDeepCompareEffect(() => {\n if (treeState.rootNodes.length === 0) {\n return;\n }\n\n startTransition(() => {\n const nodesToRender = getNodesToRender(treeState.rootNodes, treeState.expandedIds);\n\n updateTreeState({\n type: 'REGISTER_NODES',\n payload: nodesToRender,\n });\n });\n }, [treeState.rootNodes, treeState.expandedIds]);\n\n useEffect(() => {\n updateTreeState({\n type: 'REPLACE_EXPANDED',\n payload: expandedIds ?? [],\n });\n }, [expandedIds]);\n\n useEffect(() => {\n updateTreeState({\n type: 'REPLACE_SELECTED',\n payload: selectedIds ?? [],\n });\n }, [selectedIds]);\n\n useDeepCompareEffect(() => {\n sensorContext.current = {\n nodes: treeState.nodes,\n offset: offset ?? 0,\n };\n }, [offset, treeState.nodes]);\n\n useEffect(() => {\n const projection =\n activeId && overId\n ? getProjection({\n nodes: treeState.nodes,\n activeId,\n overId,\n dragOffset: offset ?? 0,\n })\n : null;\n\n updateTreeState({\n type: 'SET_PROJECTION',\n payload: projection,\n });\n }, [activeId, offset, overId, treeState.nodes]);\n\n const getPropToUse = (\n nodeProp: TreeItemProps['dragHandlerPosition' | 'showContentWhileDragging' | 'showDragHandlerOnHoverOnly'],\n treeProp: TreeProps['dragHandlerPosition' | 'showContentWhileDragging' | 'showDragHandlerOnHoverOnly'],\n ) => nodeProp || treeProp;\n\n const { nodes, items } = useMemo(() => {\n const treeItemStyle = {\n spacingY: 'none',\n contentHight: 'single-line',\n shadow: 'none',\n borderRadius: 'small',\n borderWidth: 'none',\n borderStyle: 'none',\n activeColorStyle: 'neutral',\n ...itemStyle,\n } as TreeItemStyling;\n\n const getTreeItemProps = (nodeProps: InternalTreeItemProps | InternalTreeItemMultiSelectProps) => {\n return multiselect\n ? {\n checkBoxPosition: getPropToUse(\n (nodeProps as InternalTreeItemMultiSelectProps).checkBoxPosition,\n dragHandlerPosition,\n ) as DragHandlerPosition,\n }\n : {\n draggable: (nodeProps as InternalTreeItemProps).draggable ? true : draggable,\n dragHandlerPosition: getPropToUse(\n (nodeProps as InternalTreeItemProps).dragHandlerPosition,\n dragHandlerPosition,\n ) as TreeProps['dragHandlerPosition'],\n showDragHandlerOnHoverOnly: getPropToUse(\n (nodeProps as InternalTreeItemProps).showDragHandlerOnHoverOnly,\n showDragHandlerOnHoverOnly,\n ) as TreeProps['showDragHandlerOnHoverOnly'],\n showContentWhileDragging: getPropToUse(\n (nodeProps as InternalTreeItemProps).showContentWhileDragging,\n showContentWhileDragging,\n ) as TreeProps['showContentWhileDragging'],\n };\n };\n\n return {\n items: treeState.nodes.map((node) => node.props.id),\n nodes: treeState.nodes.map((node) =>\n cloneElement(node, {\n ...getTreeItemProps(node.props),\n itemStyle: { ...treeItemStyle, ...node.props.itemStyle },\n registerOverlay,\n onExpand: handleExpand,\n onShrink: handleShrink,\n onSelect: handleSelect,\n registerNodeChildren,\n unregisterNodeChildren,\n }),\n ),\n };\n }, [\n itemStyle,\n treeState.nodes,\n draggable,\n multiselect,\n dragHandlerPosition,\n showDragHandlerOnHoverOnly,\n showContentWhileDragging,\n registerOverlay,\n handleExpand,\n handleShrink,\n handleSelect,\n registerNodeChildren,\n unregisterNodeChildren,\n ]);\n\n const contextValue: TreeContextProps = useMemo(\n () => ({\n treeState,\n onSelect: handleSelect,\n onExpand: handleExpand,\n onShrink: handleShrink,\n }),\n [treeState, handleSelect, handleExpand, handleShrink],\n );\n\n return (\n <TreeContext.Provider value={contextValue}>\n <ul\n id={id}\n // eslint-disable-next-line jsx-a11y/no-noninteractive-element-to-interactive-role\n role=\"tree\"\n data-test-id={dataTestId}\n onKeyDown={handleKeyDown}\n aria-multiselectable={treeState.selectionMode === 'multiselect'}\n className=\"tw-p-0 tw-m-0 tw-font-sans tw-font-normal tw-list-none tw-text-left tw-text-sm tw-select-none\"\n >\n <DndContext\n sensors={sensors}\n measuring={measuring}\n onDragEnd={handleDragEnd}\n onDragOver={handleDragOver}\n onDragMove={handleDragMove}\n onDragStart={handleDragStart}\n onDragCancel={handleDragCancel}\n accessibility={{\n announcements,\n container: document.getElementById(id)?.parentElement ?? document.body,\n }}\n collisionDetection={closestCorners}\n >\n <SortableContext items={items} strategy={verticalListSortingStrategy}>\n {nodes}\n </SortableContext>\n\n {createPortal(\n <DragOverlay\n zIndex={1500}\n wrapperElement=\"ul\"\n dropAnimation={null}\n modifiers={[restrictToWindowEdges]}\n >\n {treeState.overlay && (\n <TreeItemOverlay\n {...treeState.overlay}\n isSelected={treeState.selectedIds.has(treeState.overlay.id)}\n />\n )}\n </DragOverlay>,\n document.body,\n )}\n </DndContext>\n </ul>\n </TreeContext.Provider>\n );\n },\n);\n\nTree.displayName = 'FondueTree';\n"],"names":["measuring","MeasuringStrategy","enableMapSet","reducer","produce","draft","action","newExpanded","isEqual","getCurrentChildrenForNewNodesIfExpanded","parentId","children","findIndexById","currentChildrenIds","getNodeChildrenIds","newChildrenIds","node","currentNodesChanged","newChildren","updateNodeWithNewChildren","nodeIds","getReactNodeIdsInFlatArray","removeReactNodesFromFlatArray","Tree","memo","id","onDrop","onSelect","onExpand","onShrink","selectedIds","expandedIds","draggable","multiselect","dragHandlerPosition","enableDragDelay","showDragHandlerOnHoverOnly","showContentWhileDragging","itemStyle","dataTestId","initialState","useMemo","treeState","updateTreeState","useReducer","startTransition","useTransition","offset","setOffset","useState","overId","setOverId","activeId","setActiveId","currentPosition","setCurrentPosition","useEffect","keyDownHandler","event","shouldUpdateTreeState","keyUpHandler","registerOverlay","useCallback","overlay","registerNodeChildren","payload","unregisterNodeChildren","handleSelect","ignoreRemoveSelected","getTreeNodesWithoutElements","handleExpand","handleShrink","handleDragEnd","resetState","over","active","_a","activeNode","contentComponent","_b","handleDragStart","data","handleDragOver","handleDragMove","delta","handleDragCancel","handleKeyDown","handleKeyDownEvent","sensorContext","useRef","coordinateGetter","sortableTreeKeyboardCoordinates","activationConstraint","sensorsActivationConstraint","sensors","useSensors","useSensor","PointerSensor","KeyboardSensor","announcements","getAnnouncements","useDeepCompareEffect","recursivelyRemoveFragmentsAndEnrichChildren","ROOT_ID","nodesToRender","getNodesToRender","projection","getProjection","getPropToUse","nodeProp","treeProp","nodes","items","treeItemStyle","getTreeItemProps","nodeProps","cloneElement","contextValue","jsx","TreeContext","jsxs","DndContext","closestCorners","SortableContext","verticalListSortingStrategy","createPortal","DragOverlay","restrictToWindowEdges","TreeItemOverlay"],"mappings":"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"}
|
|
@@ -3,7 +3,7 @@ import { memo as re, useRef as ae, useEffect as oe, useCallback as C, Children a
|
|
|
3
3
|
import { useDndContext as de, useDndMonitor as le } from "@dnd-kit/core";
|
|
4
4
|
import { useSortable as pe } from "@dnd-kit/sortable";
|
|
5
5
|
import { CSS as ue } from "@dnd-kit/utilities";
|
|
6
|
-
import me from "
|
|
6
|
+
import { noop as me } from "lodash-es";
|
|
7
7
|
import { TreeItemColorsClassMap as ce, TreeItemSpacingClassMap as ie, TreeItemBorderRadiusClassMap as M, TreeItemBorderClassMap as gt, TreeItemBorderStyleClassMap as we, TreeItemShadowClassMap as fe } from "../types.es.js";
|
|
8
8
|
import { useDebounce as Dt } from "../../../hooks/useDebounce.es.js";
|
|
9
9
|
import { FOCUS_VISIBLE_STYLE as be } from "../../../utilities/focusStyle.es.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TreeItem.es.js","sources":["../../../../src/components/Tree/TreeItem/TreeItem.tsx"],"sourcesContent":["/* (c) Copyright Frontify Ltd., all rights reserved. */\n\nimport { useDndContext, useDndMonitor } from '@dnd-kit/core';\nimport { type AnimateLayoutChanges, useSortable } from '@dnd-kit/sortable';\nimport { CSS } from '@dnd-kit/utilities';\nimport noop from 'lodash-es/noop';\nimport { Children, type MouseEvent, memo, useCallback, useEffect, useMemo, useRef } from 'react';\n\nimport {\n type RegisterNodeChildrenPayload,\n type TreeDragEndEvent,\n type TreeDragMoveEvent,\n type TreeDragStartEvent,\n TreeItemBorderClassMap,\n TreeItemBorderRadiusClassMap,\n TreeItemBorderStyleClassMap,\n TreeItemColorsClassMap,\n type TreeItemProps,\n TreeItemShadowClassMap,\n TreeItemSpacingClassMap,\n type TreeItemStyling,\n} from '@components/Tree/types';\nimport { useDebounce } from '@hooks/useDebounce';\nimport { FOCUS_VISIBLE_STYLE } from '@utilities/focusStyle';\nimport { merge } from '@utilities/merge';\n\nimport { EXPAND_ONHOVER_DELAY, INDENTATION_WIDTH, type Projection } from '../helpers';\nimport { removeFragmentsAndEnrichChildren, useDeepCompareEffect } from '../utils';\n\nimport { DragHandle } from './DragHandle';\nimport { ExpandButton } from './ExpandButton';\nimport { type Overlay } from './TreeItemOverlay';\nimport { useTreeItem } from './useTreeItem';\n\nconst animateLayoutChanges: AnimateLayoutChanges = ({ isSorting, wasDragging }) =>\n isSorting || wasDragging ? false : true;\n\n/** @private */\ntype TreeItemPrivateProps = {\n level?: number;\n levelConstraint?: Nullable<number>;\n parentId?: string;\n isSelected?: boolean;\n isExpanded?: boolean;\n /** onSelect is passed by the Tree component when cloning the TreeItem */\n onSelect?: (id: string) => void;\n /** onClick is the user defined callback to run after the onSelect */\n onClick?: (id: string) => void;\n onExpand?: (id: string) => void;\n onShrink?: (id: string) => void;\n projection?: Nullable<Projection>;\n registerOverlay?: (overlay: Overlay) => void;\n unregisterNodeChildren?: (payload: string) => void;\n registerNodeChildren?: (payload: RegisterNodeChildrenPayload) => void;\n};\n\n/** @private */\nexport type InternalTreeItemProps = TreeItemProps & TreeItemPrivateProps;\n\nexport const TreeItem = memo(\n ({\n id,\n type,\n label,\n onDrop,\n accepts,\n showCaret,\n children,\n parentId,\n level = 0,\n contentComponent,\n onClick,\n onSelect,\n onExpand,\n onShrink,\n registerOverlay,\n registerNodeChildren,\n unregisterNodeChildren,\n draggable = true,\n expandable = true,\n showDragHandlerOnHoverOnly = true,\n dragHandlerPosition = 'left',\n showContentWhileDragging = true,\n itemStyle,\n ignoreItemDoubleClick = false,\n expandOnSelect = false,\n 'data-test-id': dataTestId = 'fondue-tree-item',\n }: InternalTreeItemProps) => {\n const { active, over } = useDndContext();\n const { isSelected, isExpanded, projection } = useTreeItem(id);\n const expandDebounced = useRef<Nullable<string> | undefined>();\n\n const isActive = active?.id === id;\n const activeProjection = isActive && projection !== null && projection !== undefined ? projection : null;\n\n const overAccepts =\n typeof over?.data?.current?.accepts === 'string' ? over.data.current.accepts?.split(', ') : [];\n\n const parentAccepts =\n typeof activeProjection?.accepts === 'string' ? activeProjection.accepts?.split(', ') : [];\n\n const currentType = active?.data.current?.type || '';\n\n const isWithin =\n projection?.previousNode?.depth !== undefined && projection?.depth > projection?.previousNode?.depth;\n const isWithinOneLevel = isWithin && projection.depth - 1 === projection?.previousNode?.depth;\n\n const canDropWithinAndDeeper =\n isWithin &&\n projection?.previousNode?.accepts !== undefined &&\n (projection?.previousNode?.accepts.includes(`${currentType}-deeper`) ||\n projection?.previousNode?.accepts.includes(`${currentType}-within`));\n\n const canDropWithin =\n (isActive &&\n isWithinOneLevel &&\n activeProjection?.previousNode?.accepts !== undefined &&\n activeProjection?.previousNode?.accepts.includes(`${currentType}-within`)) ||\n (activeProjection?.isWithinParent && parentAccepts.includes(`${currentType}-within`));\n\n const canDrop =\n isActive && active?.data.current && ((overAccepts.includes(currentType) && !isWithin) || canDropWithin);\n\n const expandProjectionParent = useDebounce((toExpandId: string) => {\n if (expandDebounced.current === toExpandId) {\n onExpand?.(toExpandId);\n }\n }, EXPAND_ONHOVER_DELAY);\n\n useEffect(() => {\n if (isActive) {\n expandDebounced.current = isWithin ? activeProjection?.previousNode?.id : null;\n }\n\n if (\n isActive &&\n canDropWithinAndDeeper &&\n activeProjection?.parentId &&\n activeProjection.previousNode &&\n activeProjection.parentId === activeProjection.previousNode.id &&\n activeProjection.parentId !== active?.data?.current?.parentId\n ) {\n expandProjectionParent(activeProjection?.parentId);\n }\n }, [\n active?.data,\n activeProjection?.parentId,\n activeProjection?.previousNode,\n expandProjectionParent,\n isActive,\n canDropWithinAndDeeper,\n isWithin,\n ]);\n\n const handleItemDragEnd = useCallback(\n (event: TreeDragEndEvent) => {\n const { over, active } = event;\n\n if (\n !isActive ||\n !activeProjection ||\n (active.id === over?.id && activeProjection?.depth === active.data.current?.level)\n ) {\n return;\n }\n\n if (isActive && over && canDrop && onDrop) {\n onDrop({\n id: active.id,\n parentId: activeProjection.parentId,\n sort: activeProjection.position,\n contentComponent,\n parentType: activeProjection.type,\n });\n }\n },\n [isActive, activeProjection, canDrop, onDrop, contentComponent],\n );\n\n const handleItemDragStart = useCallback(\n (event: TreeDragStartEvent) => {\n if (event.active.id !== id) {\n return;\n }\n\n registerOverlay?.({\n contentComponent,\n children,\n id,\n label,\n level,\n dragHandlerPosition,\n showContentWhileDragging,\n });\n },\n [\n children,\n contentComponent,\n dragHandlerPosition,\n id,\n label,\n level,\n registerOverlay,\n showContentWhileDragging,\n ],\n );\n\n const handleItemDragMove = useCallback(\n (event: TreeDragMoveEvent) => {\n if (event.active.id === id) {\n document.body.style.setProperty('cursor', canDrop ? 'grabbing' : 'no-drop');\n }\n },\n [canDrop, id],\n );\n\n useDndMonitor({\n onDragEnd: handleItemDragEnd,\n onDragStart: handleItemDragStart,\n onDragMove: handleItemDragMove,\n });\n\n const toggleExpand = useCallback(\n (event?: MouseEvent<HTMLButtonElement>) => {\n event?.stopPropagation();\n isExpanded ? onShrink?.(id) : onExpand?.(id);\n },\n [id, isExpanded, onExpand, onShrink],\n );\n\n const handleItemClick = useDebounce(\n (event: MouseEvent<HTMLElement>) => {\n event.stopPropagation();\n if (ignoreItemDoubleClick && event.detail >= 2) {\n return;\n }\n\n if (expandOnSelect) {\n toggleExpand();\n }\n\n onSelect?.(id);\n onClick?.(id);\n },\n ignoreItemDoubleClick ? 300 : 0,\n );\n\n const isParentActive = parentId && active?.id === parentId;\n\n const hasChildren = Children.count(children) > 0;\n\n const { enrichedChildren, childrenIds } = useMemo(() => {\n const enrichedChildren = removeFragmentsAndEnrichChildren(children, { parentId: id, level: level + 1 });\n return {\n enrichedChildren,\n childrenIds: enrichedChildren.map((child) => child.props.id),\n };\n }, [children, id, level]);\n\n const {\n attributes,\n listeners,\n transform,\n transition,\n setDraggableNodeRef,\n setDroppableNodeRef,\n setActivatorNodeRef,\n } = useSortable({\n id,\n disabled: !draggable,\n data: { type, accepts, parentId, level },\n animateLayoutChanges,\n transition: null,\n });\n\n useDeepCompareEffect(() => {\n if (Children.count(enrichedChildren) === 0) {\n unregisterNodeChildren?.(id);\n return;\n }\n\n if (isActive || isParentActive) {\n unregisterNodeChildren?.(id);\n return;\n }\n\n if (isExpanded) {\n registerNodeChildren?.({ id, children: enrichedChildren });\n } else {\n unregisterNodeChildren?.(id);\n }\n }, [isActive, isExpanded, isParentActive, enrichedChildren, id]);\n\n const itemStyleProps = useMemo(() => {\n return {\n spacingY: 'none',\n contentHight: 'single-line',\n shadow: 'none',\n borderRadius: 'small',\n borderWidth: 'none',\n borderStyle: 'none',\n activeColorStyle: 'neutral',\n ...itemStyle,\n } as TreeItemStyling;\n }, [itemStyle]);\n\n const styling = TreeItemColorsClassMap[itemStyleProps.activeColorStyle ?? 'neutral'];\n\n const { liClassName, backgroundClassName } = useMemo(() => {\n return {\n liClassName: merge([\n FOCUS_VISIBLE_STYLE,\n 'tw-box-content tw-relative tw-cursor-default tw-transition-colors tw-outline-none tw-ring-inset tw-group tw-no-underline tw-leading-5',\n !isActive && isSelected ? styling.selectedTextColor : styling.textColor,\n TreeItemSpacingClassMap[itemStyleProps.spacingY ?? 'none'],\n ]),\n backgroundClassName: merge([\n 'tw-block tw-absolute tw-inset-0 tw-transition-colors -tw-z-10',\n itemStyleProps.borderWidth !== 'none'\n ? TreeItemBorderRadiusClassMap[itemStyleProps.borderRadius ?? 'small']\n : '',\n !isActive &&\n (!isSelected || itemStyleProps.activeColorStyle !== 'neutral') &&\n styling.pressedBackgroundColor,\n !isActive && isSelected ? styling.selectedBackgroundColor : styling.backgroundColor,\n ]),\n };\n }, [isActive, isSelected, itemStyleProps, styling]);\n\n const showContent = showContentWhileDragging ? true : !isActive;\n const wrapperContentClassName = merge([\n 'tw-max-w-full tw-grow tw-overflow-hidden',\n isActive && showContentWhileDragging ? 'tw-opacity-75 tw-blur-sm tw-grayscale' : '',\n ]);\n const showChildren = isExpanded && !isActive;\n const showDragHandle = draggable && !isActive;\n const showLabel = label !== undefined && !isActive;\n const showExpandButton = !isActive && expandable && (showCaret === undefined ? hasChildren : showCaret);\n\n let previousItemToBeExpandedFeedback = '';\n if (\n !isActive &&\n !isExpanded &&\n showExpandButton &&\n canDropWithinAndDeeper &&\n projection?.previousNode?.id === id &&\n projection?.depth > projection?.previousNode?.depth\n ) {\n previousItemToBeExpandedFeedback = merge([\n 'tw-border-solid tw-border-box-selected-strong',\n TreeItemBorderRadiusClassMap[itemStyleProps.borderRadius ?? 'small'],\n TreeItemBorderClassMap.small,\n ]);\n }\n\n const containerBorder =\n itemStyleProps.borderWidth !== 'none' && previousItemToBeExpandedFeedback === ''\n ? merge([\n TreeItemBorderClassMap[itemStyleProps.borderWidth ?? 'none'],\n TreeItemBorderRadiusClassMap[itemStyleProps.borderRadius ?? 'small'],\n TreeItemBorderStyleClassMap[itemStyleProps.borderStyle ?? 'none'],\n ])\n : '';\n const containerHeight = itemStyleProps.contentHight === 'single-line' ? 'tw-h-10' : 'tw-h-fit';\n const containerActiveHeight = itemStyleProps.contentHight === 'single-line' ? 'tw-h-12' : 'tw-h-fit';\n\n const containerClassName = merge([\n 'tw-relative tw-z-0 tw-transition-colors tw-flex tw-items-center tw-leading-5 tw-width-fit tw-justify-between',\n TreeItemShadowClassMap[itemStyleProps.shadow ?? 'none'],\n isActive ? 'tw-border-dashed tw-border-2 tw-pr-0' : containerBorder,\n isActive && TreeItemBorderRadiusClassMap[itemStyleProps.borderRadius ?? 'small'],\n isActive ? containerActiveHeight : containerHeight,\n isActive &&\n (canDrop\n ? 'tw-border-box-selected-strong tw-bg-box-selected-hover'\n : 'tw-bg-box-negative-hover tw-border-box-negative-strong-hover'),\n previousItemToBeExpandedFeedback,\n ]);\n\n const depthPadding = activeProjection?.depth ? activeProjection.depth * INDENTATION_WIDTH : undefined;\n const levelPadding = isActive ? 0 : level * INDENTATION_WIDTH;\n\n const liStyle = { paddingLeft: depthPadding ?? levelPadding };\n const backgroundStyle =\n itemStyleProps.borderWidth !== 'none' ? {} : { marginLeft: -1 * (depthPadding ?? levelPadding) };\n\n const style = {\n transform: CSS.Transform.toString(transform),\n transition,\n };\n\n const handlerProps = { ...listeners, ...attributes };\n const dragHandlerProps = dragHandlerPosition !== 'none' ? handlerProps : {};\n const dragHandler =\n dragHandlerPosition !== 'none' ? (\n <DragHandle\n {...dragHandlerProps}\n active={isSelected}\n ref={setActivatorNodeRef}\n disabled={!showDragHandle}\n aria-hidden={!showDragHandle}\n showDragHandlerOnHoverOnly={showDragHandlerOnHoverOnly}\n activeColorStyle={itemStyleProps.activeColorStyle ?? 'neutral'}\n />\n ) : null;\n\n const itemHandlerProps = dragHandlerPosition === 'none' ? { ...handlerProps } : {};\n\n return (\n <li\n {...itemHandlerProps}\n id={id}\n key={id}\n tabIndex={0}\n // eslint-disable-next-line jsx-a11y/no-noninteractive-element-to-interactive-role\n role=\"treeitem\"\n style={liStyle}\n onKeyDown={noop}\n aria-label={label}\n aria-level={level + 1}\n onClick={handleItemClick}\n className={liClassName}\n ref={setDroppableNodeRef}\n data-test-id={dataTestId}\n aria-selected={isSelected}\n aria-expanded={isExpanded}\n data-has-children={hasChildren}\n aria-owns={childrenIds.join(' ')}\n >\n <div ref={setDraggableNodeRef} className={containerClassName} style={style}>\n <span className={backgroundClassName} style={backgroundStyle} aria-hidden={true} />\n {dragHandlerPosition === 'left' && dragHandler}\n\n {expandable && (\n <ExpandButton\n active={transform?.y ? false : isSelected}\n onClick={toggleExpand}\n expanded={showChildren}\n disabled={!showExpandButton}\n aria-hidden={!showExpandButton}\n className={showExpandButton ? 'tw-visible' : 'tw-invisible tw-pointer-events-none'}\n />\n )}\n\n {showLabel && (\n <span className=\"first:tw-ml-3.5 tw-w-full tw-h-full tw-flex tw-items-center\">{label}</span>\n )}\n\n {showContent && <div className={wrapperContentClassName}>{contentComponent}</div>}\n\n {dragHandlerPosition === 'right' && dragHandler}\n </div>\n </li>\n );\n },\n);\n\nTreeItem.displayName = 'FondueTreeItem';\n"],"names":["animateLayoutChanges","isSorting","wasDragging","TreeItem","memo","id","type","label","onDrop","accepts","showCaret","children","parentId","level","contentComponent","onClick","onSelect","onExpand","onShrink","registerOverlay","registerNodeChildren","unregisterNodeChildren","draggable","expandable","showDragHandlerOnHoverOnly","dragHandlerPosition","showContentWhileDragging","itemStyle","ignoreItemDoubleClick","expandOnSelect","dataTestId","active","over","useDndContext","isSelected","isExpanded","projection","useTreeItem","expandDebounced","useRef","isActive","activeProjection","overAccepts","_b","_a","_c","parentAccepts","_d","currentType","_e","isWithin","_f","_g","isWithinOneLevel","_h","canDropWithinAndDeeper","_i","_j","_k","canDropWithin","_l","_m","canDrop","expandProjectionParent","useDebounce","toExpandId","EXPAND_ONHOVER_DELAY","useEffect","handleItemDragEnd","useCallback","event","handleItemDragStart","handleItemDragMove","useDndMonitor","toggleExpand","handleItemClick","isParentActive","hasChildren","Children","enrichedChildren","childrenIds","useMemo","removeFragmentsAndEnrichChildren","child","attributes","listeners","transform","transition","setDraggableNodeRef","setDroppableNodeRef","setActivatorNodeRef","useSortable","useDeepCompareEffect","itemStyleProps","styling","TreeItemColorsClassMap","liClassName","backgroundClassName","merge","FOCUS_VISIBLE_STYLE","TreeItemSpacingClassMap","TreeItemBorderRadiusClassMap","showContent","wrapperContentClassName","showChildren","showDragHandle","showLabel","showExpandButton","previousItemToBeExpandedFeedback","_n","_o","TreeItemBorderClassMap","containerBorder","TreeItemBorderStyleClassMap","containerHeight","containerActiveHeight","containerClassName","TreeItemShadowClassMap","depthPadding","INDENTATION_WIDTH","levelPadding","liStyle","backgroundStyle","style","CSS","handlerProps","dragHandler","jsx","DragHandle","itemHandlerProps","createElement","noop","ExpandButton"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"TreeItem.es.js","sources":["../../../../src/components/Tree/TreeItem/TreeItem.tsx"],"sourcesContent":["/* (c) Copyright Frontify Ltd., all rights reserved. */\n\nimport { useDndContext, useDndMonitor } from '@dnd-kit/core';\nimport { type AnimateLayoutChanges, useSortable } from '@dnd-kit/sortable';\nimport { CSS } from '@dnd-kit/utilities';\nimport { noop } from 'lodash-es';\nimport { Children, type MouseEvent, memo, useCallback, useEffect, useMemo, useRef } from 'react';\n\nimport {\n type RegisterNodeChildrenPayload,\n type TreeDragEndEvent,\n type TreeDragMoveEvent,\n type TreeDragStartEvent,\n TreeItemBorderClassMap,\n TreeItemBorderRadiusClassMap,\n TreeItemBorderStyleClassMap,\n TreeItemColorsClassMap,\n type TreeItemProps,\n TreeItemShadowClassMap,\n TreeItemSpacingClassMap,\n type TreeItemStyling,\n} from '@components/Tree/types';\nimport { useDebounce } from '@hooks/useDebounce';\nimport { FOCUS_VISIBLE_STYLE } from '@utilities/focusStyle';\nimport { merge } from '@utilities/merge';\n\nimport { EXPAND_ONHOVER_DELAY, INDENTATION_WIDTH, type Projection } from '../helpers';\nimport { removeFragmentsAndEnrichChildren, useDeepCompareEffect } from '../utils';\n\nimport { DragHandle } from './DragHandle';\nimport { ExpandButton } from './ExpandButton';\nimport { type Overlay } from './TreeItemOverlay';\nimport { useTreeItem } from './useTreeItem';\n\nconst animateLayoutChanges: AnimateLayoutChanges = ({ isSorting, wasDragging }) =>\n isSorting || wasDragging ? false : true;\n\n/** @private */\ntype TreeItemPrivateProps = {\n level?: number;\n levelConstraint?: Nullable<number>;\n parentId?: string;\n isSelected?: boolean;\n isExpanded?: boolean;\n /** onSelect is passed by the Tree component when cloning the TreeItem */\n onSelect?: (id: string) => void;\n /** onClick is the user defined callback to run after the onSelect */\n onClick?: (id: string) => void;\n onExpand?: (id: string) => void;\n onShrink?: (id: string) => void;\n projection?: Nullable<Projection>;\n registerOverlay?: (overlay: Overlay) => void;\n unregisterNodeChildren?: (payload: string) => void;\n registerNodeChildren?: (payload: RegisterNodeChildrenPayload) => void;\n};\n\n/** @private */\nexport type InternalTreeItemProps = TreeItemProps & TreeItemPrivateProps;\n\nexport const TreeItem = memo(\n ({\n id,\n type,\n label,\n onDrop,\n accepts,\n showCaret,\n children,\n parentId,\n level = 0,\n contentComponent,\n onClick,\n onSelect,\n onExpand,\n onShrink,\n registerOverlay,\n registerNodeChildren,\n unregisterNodeChildren,\n draggable = true,\n expandable = true,\n showDragHandlerOnHoverOnly = true,\n dragHandlerPosition = 'left',\n showContentWhileDragging = true,\n itemStyle,\n ignoreItemDoubleClick = false,\n expandOnSelect = false,\n 'data-test-id': dataTestId = 'fondue-tree-item',\n }: InternalTreeItemProps) => {\n const { active, over } = useDndContext();\n const { isSelected, isExpanded, projection } = useTreeItem(id);\n const expandDebounced = useRef<Nullable<string> | undefined>();\n\n const isActive = active?.id === id;\n const activeProjection = isActive && projection !== null && projection !== undefined ? projection : null;\n\n const overAccepts =\n typeof over?.data?.current?.accepts === 'string' ? over.data.current.accepts?.split(', ') : [];\n\n const parentAccepts =\n typeof activeProjection?.accepts === 'string' ? activeProjection.accepts?.split(', ') : [];\n\n const currentType = active?.data.current?.type || '';\n\n const isWithin =\n projection?.previousNode?.depth !== undefined && projection?.depth > projection?.previousNode?.depth;\n const isWithinOneLevel = isWithin && projection.depth - 1 === projection?.previousNode?.depth;\n\n const canDropWithinAndDeeper =\n isWithin &&\n projection?.previousNode?.accepts !== undefined &&\n (projection?.previousNode?.accepts.includes(`${currentType}-deeper`) ||\n projection?.previousNode?.accepts.includes(`${currentType}-within`));\n\n const canDropWithin =\n (isActive &&\n isWithinOneLevel &&\n activeProjection?.previousNode?.accepts !== undefined &&\n activeProjection?.previousNode?.accepts.includes(`${currentType}-within`)) ||\n (activeProjection?.isWithinParent && parentAccepts.includes(`${currentType}-within`));\n\n const canDrop =\n isActive && active?.data.current && ((overAccepts.includes(currentType) && !isWithin) || canDropWithin);\n\n const expandProjectionParent = useDebounce((toExpandId: string) => {\n if (expandDebounced.current === toExpandId) {\n onExpand?.(toExpandId);\n }\n }, EXPAND_ONHOVER_DELAY);\n\n useEffect(() => {\n if (isActive) {\n expandDebounced.current = isWithin ? activeProjection?.previousNode?.id : null;\n }\n\n if (\n isActive &&\n canDropWithinAndDeeper &&\n activeProjection?.parentId &&\n activeProjection.previousNode &&\n activeProjection.parentId === activeProjection.previousNode.id &&\n activeProjection.parentId !== active?.data?.current?.parentId\n ) {\n expandProjectionParent(activeProjection?.parentId);\n }\n }, [\n active?.data,\n activeProjection?.parentId,\n activeProjection?.previousNode,\n expandProjectionParent,\n isActive,\n canDropWithinAndDeeper,\n isWithin,\n ]);\n\n const handleItemDragEnd = useCallback(\n (event: TreeDragEndEvent) => {\n const { over, active } = event;\n\n if (\n !isActive ||\n !activeProjection ||\n (active.id === over?.id && activeProjection?.depth === active.data.current?.level)\n ) {\n return;\n }\n\n if (isActive && over && canDrop && onDrop) {\n onDrop({\n id: active.id,\n parentId: activeProjection.parentId,\n sort: activeProjection.position,\n contentComponent,\n parentType: activeProjection.type,\n });\n }\n },\n [isActive, activeProjection, canDrop, onDrop, contentComponent],\n );\n\n const handleItemDragStart = useCallback(\n (event: TreeDragStartEvent) => {\n if (event.active.id !== id) {\n return;\n }\n\n registerOverlay?.({\n contentComponent,\n children,\n id,\n label,\n level,\n dragHandlerPosition,\n showContentWhileDragging,\n });\n },\n [\n children,\n contentComponent,\n dragHandlerPosition,\n id,\n label,\n level,\n registerOverlay,\n showContentWhileDragging,\n ],\n );\n\n const handleItemDragMove = useCallback(\n (event: TreeDragMoveEvent) => {\n if (event.active.id === id) {\n document.body.style.setProperty('cursor', canDrop ? 'grabbing' : 'no-drop');\n }\n },\n [canDrop, id],\n );\n\n useDndMonitor({\n onDragEnd: handleItemDragEnd,\n onDragStart: handleItemDragStart,\n onDragMove: handleItemDragMove,\n });\n\n const toggleExpand = useCallback(\n (event?: MouseEvent<HTMLButtonElement>) => {\n event?.stopPropagation();\n isExpanded ? onShrink?.(id) : onExpand?.(id);\n },\n [id, isExpanded, onExpand, onShrink],\n );\n\n const handleItemClick = useDebounce(\n (event: MouseEvent<HTMLElement>) => {\n event.stopPropagation();\n if (ignoreItemDoubleClick && event.detail >= 2) {\n return;\n }\n\n if (expandOnSelect) {\n toggleExpand();\n }\n\n onSelect?.(id);\n onClick?.(id);\n },\n ignoreItemDoubleClick ? 300 : 0,\n );\n\n const isParentActive = parentId && active?.id === parentId;\n\n const hasChildren = Children.count(children) > 0;\n\n const { enrichedChildren, childrenIds } = useMemo(() => {\n const enrichedChildren = removeFragmentsAndEnrichChildren(children, { parentId: id, level: level + 1 });\n return {\n enrichedChildren,\n childrenIds: enrichedChildren.map((child) => child.props.id),\n };\n }, [children, id, level]);\n\n const {\n attributes,\n listeners,\n transform,\n transition,\n setDraggableNodeRef,\n setDroppableNodeRef,\n setActivatorNodeRef,\n } = useSortable({\n id,\n disabled: !draggable,\n data: { type, accepts, parentId, level },\n animateLayoutChanges,\n transition: null,\n });\n\n useDeepCompareEffect(() => {\n if (Children.count(enrichedChildren) === 0) {\n unregisterNodeChildren?.(id);\n return;\n }\n\n if (isActive || isParentActive) {\n unregisterNodeChildren?.(id);\n return;\n }\n\n if (isExpanded) {\n registerNodeChildren?.({ id, children: enrichedChildren });\n } else {\n unregisterNodeChildren?.(id);\n }\n }, [isActive, isExpanded, isParentActive, enrichedChildren, id]);\n\n const itemStyleProps = useMemo(() => {\n return {\n spacingY: 'none',\n contentHight: 'single-line',\n shadow: 'none',\n borderRadius: 'small',\n borderWidth: 'none',\n borderStyle: 'none',\n activeColorStyle: 'neutral',\n ...itemStyle,\n } as TreeItemStyling;\n }, [itemStyle]);\n\n const styling = TreeItemColorsClassMap[itemStyleProps.activeColorStyle ?? 'neutral'];\n\n const { liClassName, backgroundClassName } = useMemo(() => {\n return {\n liClassName: merge([\n FOCUS_VISIBLE_STYLE,\n 'tw-box-content tw-relative tw-cursor-default tw-transition-colors tw-outline-none tw-ring-inset tw-group tw-no-underline tw-leading-5',\n !isActive && isSelected ? styling.selectedTextColor : styling.textColor,\n TreeItemSpacingClassMap[itemStyleProps.spacingY ?? 'none'],\n ]),\n backgroundClassName: merge([\n 'tw-block tw-absolute tw-inset-0 tw-transition-colors -tw-z-10',\n itemStyleProps.borderWidth !== 'none'\n ? TreeItemBorderRadiusClassMap[itemStyleProps.borderRadius ?? 'small']\n : '',\n !isActive &&\n (!isSelected || itemStyleProps.activeColorStyle !== 'neutral') &&\n styling.pressedBackgroundColor,\n !isActive && isSelected ? styling.selectedBackgroundColor : styling.backgroundColor,\n ]),\n };\n }, [isActive, isSelected, itemStyleProps, styling]);\n\n const showContent = showContentWhileDragging ? true : !isActive;\n const wrapperContentClassName = merge([\n 'tw-max-w-full tw-grow tw-overflow-hidden',\n isActive && showContentWhileDragging ? 'tw-opacity-75 tw-blur-sm tw-grayscale' : '',\n ]);\n const showChildren = isExpanded && !isActive;\n const showDragHandle = draggable && !isActive;\n const showLabel = label !== undefined && !isActive;\n const showExpandButton = !isActive && expandable && (showCaret === undefined ? hasChildren : showCaret);\n\n let previousItemToBeExpandedFeedback = '';\n if (\n !isActive &&\n !isExpanded &&\n showExpandButton &&\n canDropWithinAndDeeper &&\n projection?.previousNode?.id === id &&\n projection?.depth > projection?.previousNode?.depth\n ) {\n previousItemToBeExpandedFeedback = merge([\n 'tw-border-solid tw-border-box-selected-strong',\n TreeItemBorderRadiusClassMap[itemStyleProps.borderRadius ?? 'small'],\n TreeItemBorderClassMap.small,\n ]);\n }\n\n const containerBorder =\n itemStyleProps.borderWidth !== 'none' && previousItemToBeExpandedFeedback === ''\n ? merge([\n TreeItemBorderClassMap[itemStyleProps.borderWidth ?? 'none'],\n TreeItemBorderRadiusClassMap[itemStyleProps.borderRadius ?? 'small'],\n TreeItemBorderStyleClassMap[itemStyleProps.borderStyle ?? 'none'],\n ])\n : '';\n const containerHeight = itemStyleProps.contentHight === 'single-line' ? 'tw-h-10' : 'tw-h-fit';\n const containerActiveHeight = itemStyleProps.contentHight === 'single-line' ? 'tw-h-12' : 'tw-h-fit';\n\n const containerClassName = merge([\n 'tw-relative tw-z-0 tw-transition-colors tw-flex tw-items-center tw-leading-5 tw-width-fit tw-justify-between',\n TreeItemShadowClassMap[itemStyleProps.shadow ?? 'none'],\n isActive ? 'tw-border-dashed tw-border-2 tw-pr-0' : containerBorder,\n isActive && TreeItemBorderRadiusClassMap[itemStyleProps.borderRadius ?? 'small'],\n isActive ? containerActiveHeight : containerHeight,\n isActive &&\n (canDrop\n ? 'tw-border-box-selected-strong tw-bg-box-selected-hover'\n : 'tw-bg-box-negative-hover tw-border-box-negative-strong-hover'),\n previousItemToBeExpandedFeedback,\n ]);\n\n const depthPadding = activeProjection?.depth ? activeProjection.depth * INDENTATION_WIDTH : undefined;\n const levelPadding = isActive ? 0 : level * INDENTATION_WIDTH;\n\n const liStyle = { paddingLeft: depthPadding ?? levelPadding };\n const backgroundStyle =\n itemStyleProps.borderWidth !== 'none' ? {} : { marginLeft: -1 * (depthPadding ?? levelPadding) };\n\n const style = {\n transform: CSS.Transform.toString(transform),\n transition,\n };\n\n const handlerProps = { ...listeners, ...attributes };\n const dragHandlerProps = dragHandlerPosition !== 'none' ? handlerProps : {};\n const dragHandler =\n dragHandlerPosition !== 'none' ? (\n <DragHandle\n {...dragHandlerProps}\n active={isSelected}\n ref={setActivatorNodeRef}\n disabled={!showDragHandle}\n aria-hidden={!showDragHandle}\n showDragHandlerOnHoverOnly={showDragHandlerOnHoverOnly}\n activeColorStyle={itemStyleProps.activeColorStyle ?? 'neutral'}\n />\n ) : null;\n\n const itemHandlerProps = dragHandlerPosition === 'none' ? { ...handlerProps } : {};\n\n return (\n <li\n {...itemHandlerProps}\n id={id}\n key={id}\n tabIndex={0}\n // eslint-disable-next-line jsx-a11y/no-noninteractive-element-to-interactive-role\n role=\"treeitem\"\n style={liStyle}\n onKeyDown={noop}\n aria-label={label}\n aria-level={level + 1}\n onClick={handleItemClick}\n className={liClassName}\n ref={setDroppableNodeRef}\n data-test-id={dataTestId}\n aria-selected={isSelected}\n aria-expanded={isExpanded}\n data-has-children={hasChildren}\n aria-owns={childrenIds.join(' ')}\n >\n <div ref={setDraggableNodeRef} className={containerClassName} style={style}>\n <span className={backgroundClassName} style={backgroundStyle} aria-hidden={true} />\n {dragHandlerPosition === 'left' && dragHandler}\n\n {expandable && (\n <ExpandButton\n active={transform?.y ? false : isSelected}\n onClick={toggleExpand}\n expanded={showChildren}\n disabled={!showExpandButton}\n aria-hidden={!showExpandButton}\n className={showExpandButton ? 'tw-visible' : 'tw-invisible tw-pointer-events-none'}\n />\n )}\n\n {showLabel && (\n <span className=\"first:tw-ml-3.5 tw-w-full tw-h-full tw-flex tw-items-center\">{label}</span>\n )}\n\n {showContent && <div className={wrapperContentClassName}>{contentComponent}</div>}\n\n {dragHandlerPosition === 'right' && dragHandler}\n </div>\n </li>\n );\n },\n);\n\nTreeItem.displayName = 'FondueTreeItem';\n"],"names":["animateLayoutChanges","isSorting","wasDragging","TreeItem","memo","id","type","label","onDrop","accepts","showCaret","children","parentId","level","contentComponent","onClick","onSelect","onExpand","onShrink","registerOverlay","registerNodeChildren","unregisterNodeChildren","draggable","expandable","showDragHandlerOnHoverOnly","dragHandlerPosition","showContentWhileDragging","itemStyle","ignoreItemDoubleClick","expandOnSelect","dataTestId","active","over","useDndContext","isSelected","isExpanded","projection","useTreeItem","expandDebounced","useRef","isActive","activeProjection","overAccepts","_b","_a","_c","parentAccepts","_d","currentType","_e","isWithin","_f","_g","isWithinOneLevel","_h","canDropWithinAndDeeper","_i","_j","_k","canDropWithin","_l","_m","canDrop","expandProjectionParent","useDebounce","toExpandId","EXPAND_ONHOVER_DELAY","useEffect","handleItemDragEnd","useCallback","event","handleItemDragStart","handleItemDragMove","useDndMonitor","toggleExpand","handleItemClick","isParentActive","hasChildren","Children","enrichedChildren","childrenIds","useMemo","removeFragmentsAndEnrichChildren","child","attributes","listeners","transform","transition","setDraggableNodeRef","setDroppableNodeRef","setActivatorNodeRef","useSortable","useDeepCompareEffect","itemStyleProps","styling","TreeItemColorsClassMap","liClassName","backgroundClassName","merge","FOCUS_VISIBLE_STYLE","TreeItemSpacingClassMap","TreeItemBorderRadiusClassMap","showContent","wrapperContentClassName","showChildren","showDragHandle","showLabel","showExpandButton","previousItemToBeExpandedFeedback","_n","_o","TreeItemBorderClassMap","containerBorder","TreeItemBorderStyleClassMap","containerHeight","containerActiveHeight","containerClassName","TreeItemShadowClassMap","depthPadding","INDENTATION_WIDTH","levelPadding","liStyle","backgroundStyle","style","CSS","handlerProps","dragHandler","jsx","DragHandle","itemHandlerProps","createElement","noop","ExpandButton"],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { jsx as t, jsxs as $ } from "react/jsx-runtime";
|
|
2
|
-
import q from "
|
|
2
|
+
import { noop as q } from "lodash-es";
|
|
3
3
|
import { memo as D, useRef as G, useCallback as J, useEffect as Q, Children as M, useMemo as x } from "react";
|
|
4
4
|
import { Checkbox as V, CheckboxEmphasis as X, CheckboxSize as Z, CheckboxState as S } from "../../Checkbox/Checkbox.es.js";
|
|
5
5
|
import { getMultiselectLiClassName as ee, getMultiselectBackgroundClassName as te, getMultiselectContainerClassName as ae } from "../helpers/multiselectTreeItemstyling.es.js";
|