@basmilius/common 3.0.0

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.
Files changed (72) hide show
  1. package/README.md +19 -0
  2. package/dist/composable/index.d.ts +16 -0
  3. package/dist/composable/useCopy.d.ts +2 -0
  4. package/dist/composable/useDebounced.d.ts +1 -0
  5. package/dist/composable/useDtoForm.d.ts +2 -0
  6. package/dist/composable/useInterval.d.ts +2 -0
  7. package/dist/composable/useLoaded.d.ts +6 -0
  8. package/dist/composable/useLoadedAction.d.ts +2 -0
  9. package/dist/composable/useLocalFile.d.ts +1 -0
  10. package/dist/composable/useMounted.d.ts +2 -0
  11. package/dist/composable/useNamedRoute.d.ts +2 -0
  12. package/dist/composable/useNavigate.d.ts +5 -0
  13. package/dist/composable/usePagination.d.ts +1 -0
  14. package/dist/composable/usePasswordStrength.d.ts +2 -0
  15. package/dist/composable/useRouteMeta.d.ts +5 -0
  16. package/dist/composable/useRouteNames.d.ts +1 -0
  17. package/dist/composable/useRouteParam.d.ts +2 -0
  18. package/dist/composable/useService.d.ts +6 -0
  19. package/dist/error/ForbiddenException.d.ts +1 -0
  20. package/dist/error/HandledException.d.ts +1 -0
  21. package/dist/error/UnauthorizedException.d.ts +1 -0
  22. package/dist/error/index.d.ts +3 -0
  23. package/dist/index.d.ts +4 -0
  24. package/dist/index.js +7 -0
  25. package/dist/index.js.map +267 -0
  26. package/dist/store/defineStore.d.ts +8 -0
  27. package/dist/store/index.d.ts +2 -0
  28. package/dist/util/emptyNull.d.ts +1 -0
  29. package/dist/util/generateColorPalette.d.ts +1 -0
  30. package/dist/util/guarded.d.ts +3 -0
  31. package/dist/util/index.d.ts +9 -0
  32. package/dist/util/onError.d.ts +1 -0
  33. package/dist/util/onErrorSnackbar.d.ts +2 -0
  34. package/dist/util/persistentRef.d.ts +4 -0
  35. package/dist/util/persistentStringRef.d.ts +2 -0
  36. package/dist/util/runBefore.d.ts +1 -0
  37. package/dist/util/unrefAll.d.ts +3 -0
  38. package/package.json +66 -0
  39. package/src/composable/index.ts +16 -0
  40. package/src/composable/useCopy.ts +8 -0
  41. package/src/composable/useDebounced.ts +5 -0
  42. package/src/composable/useDtoForm.ts +17 -0
  43. package/src/composable/useInterval.ts +22 -0
  44. package/src/composable/useLoaded.ts +38 -0
  45. package/src/composable/useLoadedAction.ts +13 -0
  46. package/src/composable/useLocalFile.ts +40 -0
  47. package/src/composable/useMounted.ts +9 -0
  48. package/src/composable/useNamedRoute.ts +17 -0
  49. package/src/composable/useNavigate.ts +28 -0
  50. package/src/composable/usePagination.ts +35 -0
  51. package/src/composable/usePasswordStrength.ts +67 -0
  52. package/src/composable/useRouteMeta.ts +34 -0
  53. package/src/composable/useRouteNames.ts +14 -0
  54. package/src/composable/useRouteParam.ts +13 -0
  55. package/src/composable/useService.ts +20 -0
  56. package/src/error/ForbiddenException.ts +2 -0
  57. package/src/error/HandledException.ts +2 -0
  58. package/src/error/UnauthorizedException.ts +2 -0
  59. package/src/error/index.ts +3 -0
  60. package/src/index.ts +4 -0
  61. package/src/store/defineStore.ts +31 -0
  62. package/src/store/index.ts +7 -0
  63. package/src/util/emptyNull.ts +3 -0
  64. package/src/util/generateColorPalette.ts +132 -0
  65. package/src/util/guarded.ts +73 -0
  66. package/src/util/index.ts +9 -0
  67. package/src/util/onError.ts +5 -0
  68. package/src/util/onErrorSnackbar.ts +15 -0
  69. package/src/util/persistentRef.ts +21 -0
  70. package/src/util/persistentStringRef.ts +6 -0
  71. package/src/util/runBefore.ts +8 -0
  72. package/src/util/unrefAll.ts +19 -0
@@ -0,0 +1,267 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/composable/useCopy.ts", "../src/composable/useDebounced.ts", "../src/composable/useDtoForm.ts", "../src/composable/useInterval.ts", "../src/composable/useLoaded.ts", "../src/composable/useLoadedAction.ts", "../src/composable/useLocalFile.ts", "../src/composable/useMounted.ts", "../src/composable/useNamedRoute.ts", "../src/composable/useNavigate.ts", "../src/composable/usePagination.ts", "../src/composable/usePasswordStrength.ts", "../../../node_modules/.bun/lodash-es@4.17.23/node_modules/lodash-es/_freeGlobal.js", "../../../node_modules/.bun/lodash-es@4.17.23/node_modules/lodash-es/_root.js", "../../../node_modules/.bun/lodash-es@4.17.23/node_modules/lodash-es/_Symbol.js", "../../../node_modules/.bun/lodash-es@4.17.23/node_modules/lodash-es/_getRawTag.js", "../../../node_modules/.bun/lodash-es@4.17.23/node_modules/lodash-es/_objectToString.js", "../../../node_modules/.bun/lodash-es@4.17.23/node_modules/lodash-es/_baseGetTag.js", "../../../node_modules/.bun/lodash-es@4.17.23/node_modules/lodash-es/isObjectLike.js", "../../../node_modules/.bun/lodash-es@4.17.23/node_modules/lodash-es/isArray.js", "../../../node_modules/.bun/lodash-es@4.17.23/node_modules/lodash-es/isObject.js", "../../../node_modules/.bun/lodash-es@4.17.23/node_modules/lodash-es/identity.js", "../../../node_modules/.bun/lodash-es@4.17.23/node_modules/lodash-es/isFunction.js", "../../../node_modules/.bun/lodash-es@4.17.23/node_modules/lodash-es/_coreJsData.js", "../../../node_modules/.bun/lodash-es@4.17.23/node_modules/lodash-es/_isMasked.js", "../../../node_modules/.bun/lodash-es@4.17.23/node_modules/lodash-es/_toSource.js", "../../../node_modules/.bun/lodash-es@4.17.23/node_modules/lodash-es/_baseIsNative.js", "../../../node_modules/.bun/lodash-es@4.17.23/node_modules/lodash-es/_getValue.js", "../../../node_modules/.bun/lodash-es@4.17.23/node_modules/lodash-es/_getNative.js", "../../../node_modules/.bun/lodash-es@4.17.23/node_modules/lodash-es/_baseCreate.js", "../../../node_modules/.bun/lodash-es@4.17.23/node_modules/lodash-es/_apply.js", "../../../node_modules/.bun/lodash-es@4.17.23/node_modules/lodash-es/_copyArray.js", "../../../node_modules/.bun/lodash-es@4.17.23/node_modules/lodash-es/_shortOut.js", "../../../node_modules/.bun/lodash-es@4.17.23/node_modules/lodash-es/constant.js", "../../../node_modules/.bun/lodash-es@4.17.23/node_modules/lodash-es/_defineProperty.js", "../../../node_modules/.bun/lodash-es@4.17.23/node_modules/lodash-es/_baseSetToString.js", "../../../node_modules/.bun/lodash-es@4.17.23/node_modules/lodash-es/_setToString.js", "../../../node_modules/.bun/lodash-es@4.17.23/node_modules/lodash-es/_isIndex.js", "../../../node_modules/.bun/lodash-es@4.17.23/node_modules/lodash-es/_baseAssignValue.js", "../../../node_modules/.bun/lodash-es@4.17.23/node_modules/lodash-es/eq.js", "../../../node_modules/.bun/lodash-es@4.17.23/node_modules/lodash-es/_assignValue.js", "../../../node_modules/.bun/lodash-es@4.17.23/node_modules/lodash-es/_copyObject.js", "../../../node_modules/.bun/lodash-es@4.17.23/node_modules/lodash-es/_overRest.js", "../../../node_modules/.bun/lodash-es@4.17.23/node_modules/lodash-es/_baseRest.js", "../../../node_modules/.bun/lodash-es@4.17.23/node_modules/lodash-es/isLength.js", "../../../node_modules/.bun/lodash-es@4.17.23/node_modules/lodash-es/isArrayLike.js", "../../../node_modules/.bun/lodash-es@4.17.23/node_modules/lodash-es/_isIterateeCall.js", "../../../node_modules/.bun/lodash-es@4.17.23/node_modules/lodash-es/_createAssigner.js", "../../../node_modules/.bun/lodash-es@4.17.23/node_modules/lodash-es/_isPrototype.js", "../../../node_modules/.bun/lodash-es@4.17.23/node_modules/lodash-es/_baseTimes.js", "../../../node_modules/.bun/lodash-es@4.17.23/node_modules/lodash-es/_baseIsArguments.js", "../../../node_modules/.bun/lodash-es@4.17.23/node_modules/lodash-es/isArguments.js", "../../../node_modules/.bun/lodash-es@4.17.23/node_modules/lodash-es/stubFalse.js", "../../../node_modules/.bun/lodash-es@4.17.23/node_modules/lodash-es/isBuffer.js", "../../../node_modules/.bun/lodash-es@4.17.23/node_modules/lodash-es/_baseIsTypedArray.js", "../../../node_modules/.bun/lodash-es@4.17.23/node_modules/lodash-es/_baseUnary.js", "../../../node_modules/.bun/lodash-es@4.17.23/node_modules/lodash-es/_nodeUtil.js", "../../../node_modules/.bun/lodash-es@4.17.23/node_modules/lodash-es/isTypedArray.js", "../../../node_modules/.bun/lodash-es@4.17.23/node_modules/lodash-es/_arrayLikeKeys.js", "../../../node_modules/.bun/lodash-es@4.17.23/node_modules/lodash-es/_overArg.js", "../../../node_modules/.bun/lodash-es@4.17.23/node_modules/lodash-es/_nativeKeysIn.js", "../../../node_modules/.bun/lodash-es@4.17.23/node_modules/lodash-es/_baseKeysIn.js", "../../../node_modules/.bun/lodash-es@4.17.23/node_modules/lodash-es/keysIn.js", "../../../node_modules/.bun/lodash-es@4.17.23/node_modules/lodash-es/_nativeCreate.js", "../../../node_modules/.bun/lodash-es@4.17.23/node_modules/lodash-es/_hashClear.js", "../../../node_modules/.bun/lodash-es@4.17.23/node_modules/lodash-es/_hashDelete.js", "../../../node_modules/.bun/lodash-es@4.17.23/node_modules/lodash-es/_hashGet.js", "../../../node_modules/.bun/lodash-es@4.17.23/node_modules/lodash-es/_hashHas.js", "../../../node_modules/.bun/lodash-es@4.17.23/node_modules/lodash-es/_hashSet.js", "../../../node_modules/.bun/lodash-es@4.17.23/node_modules/lodash-es/_Hash.js", "../../../node_modules/.bun/lodash-es@4.17.23/node_modules/lodash-es/_listCacheClear.js", "../../../node_modules/.bun/lodash-es@4.17.23/node_modules/lodash-es/_assocIndexOf.js", "../../../node_modules/.bun/lodash-es@4.17.23/node_modules/lodash-es/_listCacheDelete.js", "../../../node_modules/.bun/lodash-es@4.17.23/node_modules/lodash-es/_listCacheGet.js", "../../../node_modules/.bun/lodash-es@4.17.23/node_modules/lodash-es/_listCacheHas.js", "../../../node_modules/.bun/lodash-es@4.17.23/node_modules/lodash-es/_listCacheSet.js", "../../../node_modules/.bun/lodash-es@4.17.23/node_modules/lodash-es/_ListCache.js", "../../../node_modules/.bun/lodash-es@4.17.23/node_modules/lodash-es/_Map.js", "../../../node_modules/.bun/lodash-es@4.17.23/node_modules/lodash-es/_mapCacheClear.js", "../../../node_modules/.bun/lodash-es@4.17.23/node_modules/lodash-es/_isKeyable.js", "../../../node_modules/.bun/lodash-es@4.17.23/node_modules/lodash-es/_getMapData.js", "../../../node_modules/.bun/lodash-es@4.17.23/node_modules/lodash-es/_mapCacheDelete.js", "../../../node_modules/.bun/lodash-es@4.17.23/node_modules/lodash-es/_mapCacheGet.js", "../../../node_modules/.bun/lodash-es@4.17.23/node_modules/lodash-es/_mapCacheHas.js", "../../../node_modules/.bun/lodash-es@4.17.23/node_modules/lodash-es/_mapCacheSet.js", "../../../node_modules/.bun/lodash-es@4.17.23/node_modules/lodash-es/_MapCache.js", "../../../node_modules/.bun/lodash-es@4.17.23/node_modules/lodash-es/_getPrototype.js", "../../../node_modules/.bun/lodash-es@4.17.23/node_modules/lodash-es/isPlainObject.js", "../../../node_modules/.bun/lodash-es@4.17.23/node_modules/lodash-es/_stackClear.js", "../../../node_modules/.bun/lodash-es@4.17.23/node_modules/lodash-es/_stackDelete.js", "../../../node_modules/.bun/lodash-es@4.17.23/node_modules/lodash-es/_stackGet.js", "../../../node_modules/.bun/lodash-es@4.17.23/node_modules/lodash-es/_stackHas.js", "../../../node_modules/.bun/lodash-es@4.17.23/node_modules/lodash-es/_stackSet.js", "../../../node_modules/.bun/lodash-es@4.17.23/node_modules/lodash-es/_Stack.js", "../../../node_modules/.bun/lodash-es@4.17.23/node_modules/lodash-es/_cloneBuffer.js", "../../../node_modules/.bun/lodash-es@4.17.23/node_modules/lodash-es/_Uint8Array.js", "../../../node_modules/.bun/lodash-es@4.17.23/node_modules/lodash-es/_cloneArrayBuffer.js", "../../../node_modules/.bun/lodash-es@4.17.23/node_modules/lodash-es/_cloneTypedArray.js", "../../../node_modules/.bun/lodash-es@4.17.23/node_modules/lodash-es/_initCloneObject.js", "../../../node_modules/.bun/lodash-es@4.17.23/node_modules/lodash-es/_createBaseFor.js", "../../../node_modules/.bun/lodash-es@4.17.23/node_modules/lodash-es/_baseFor.js", "../../../node_modules/.bun/lodash-es@4.17.23/node_modules/lodash-es/_assignMergeValue.js", "../../../node_modules/.bun/lodash-es@4.17.23/node_modules/lodash-es/isArrayLikeObject.js", "../../../node_modules/.bun/lodash-es@4.17.23/node_modules/lodash-es/_safeGet.js", "../../../node_modules/.bun/lodash-es@4.17.23/node_modules/lodash-es/toPlainObject.js", "../../../node_modules/.bun/lodash-es@4.17.23/node_modules/lodash-es/_baseMergeDeep.js", "../../../node_modules/.bun/lodash-es@4.17.23/node_modules/lodash-es/_baseMerge.js", "../../../node_modules/.bun/lodash-es@4.17.23/node_modules/lodash-es/merge.js", "../src/composable/useRouteMeta.ts", "../src/composable/useRouteNames.ts", "../src/composable/useRouteParam.ts", "../src/util/emptyNull.ts", "../../../node_modules/.bun/culori@4.0.2/node_modules/culori/src/rgb/parseNumber.js", "../../../node_modules/.bun/culori@4.0.2/node_modules/culori/src/colors/named.js", "../../../node_modules/.bun/culori@4.0.2/node_modules/culori/src/rgb/parseNamed.js", "../../../node_modules/.bun/culori@4.0.2/node_modules/culori/src/rgb/parseHex.js", "../../../node_modules/.bun/culori@4.0.2/node_modules/culori/src/util/regex.js", "../../../node_modules/.bun/culori@4.0.2/node_modules/culori/src/rgb/parseRgbLegacy.js", "../../../node_modules/.bun/culori@4.0.2/node_modules/culori/src/_prepare.js", "../../../node_modules/.bun/culori@4.0.2/node_modules/culori/src/converter.js", "../../../node_modules/.bun/culori@4.0.2/node_modules/culori/src/modes.js", "../../../node_modules/.bun/culori@4.0.2/node_modules/culori/src/parse.js", "../../../node_modules/.bun/culori@4.0.2/node_modules/culori/src/rgb/parseRgb.js", "../../../node_modules/.bun/culori@4.0.2/node_modules/culori/src/rgb/parseTransparent.js", "../../../node_modules/.bun/culori@4.0.2/node_modules/culori/src/interpolate/lerp.js", "../../../node_modules/.bun/culori@4.0.2/node_modules/culori/src/interpolate/piecewise.js", "../../../node_modules/.bun/culori@4.0.2/node_modules/culori/src/interpolate/linear.js", "../../../node_modules/.bun/culori@4.0.2/node_modules/culori/src/fixup/alpha.js", "../../../node_modules/.bun/culori@4.0.2/node_modules/culori/src/rgb/definition.js", "../../../node_modules/.bun/culori@4.0.2/node_modules/culori/src/a98/convertA98ToXyz65.js", "../../../node_modules/.bun/culori@4.0.2/node_modules/culori/src/a98/convertXyz65ToA98.js", "../../../node_modules/.bun/culori@4.0.2/node_modules/culori/src/lrgb/convertRgbToLrgb.js", "../../../node_modules/.bun/culori@4.0.2/node_modules/culori/src/xyz65/convertRgbToXyz65.js", "../../../node_modules/.bun/culori@4.0.2/node_modules/culori/src/lrgb/convertLrgbToRgb.js", "../../../node_modules/.bun/culori@4.0.2/node_modules/culori/src/xyz65/convertXyz65ToRgb.js", "../../../node_modules/.bun/culori@4.0.2/node_modules/culori/src/a98/definition.js", "../../../node_modules/.bun/culori@4.0.2/node_modules/culori/src/util/normalizeHue.js", "../../../node_modules/.bun/culori@4.0.2/node_modules/culori/src/fixup/hue.js", "../../../node_modules/.bun/culori@4.0.2/node_modules/culori/src/cubehelix/constants.js", "../../../node_modules/.bun/culori@4.0.2/node_modules/culori/src/cubehelix/convertRgbToCubehelix.js", "../../../node_modules/.bun/culori@4.0.2/node_modules/culori/src/cubehelix/convertCubehelixToRgb.js", "../../../node_modules/.bun/culori@4.0.2/node_modules/culori/src/difference.js", "../../../node_modules/.bun/culori@4.0.2/node_modules/culori/src/average.js", "../../../node_modules/.bun/culori@4.0.2/node_modules/culori/src/cubehelix/definition.js", "../../../node_modules/.bun/culori@4.0.2/node_modules/culori/src/lch/convertLabToLch.js", "../../../node_modules/.bun/culori@4.0.2/node_modules/culori/src/lch/convertLchToLab.js", "../../../node_modules/.bun/culori@4.0.2/node_modules/culori/src/xyz65/constants.js", "../../../node_modules/.bun/culori@4.0.2/node_modules/culori/src/constants.js", "../../../node_modules/.bun/culori@4.0.2/node_modules/culori/src/lab65/convertLab65ToXyz65.js", "../../../node_modules/.bun/culori@4.0.2/node_modules/culori/src/lab65/convertLab65ToRgb.js", "../../../node_modules/.bun/culori@4.0.2/node_modules/culori/src/lab65/convertXyz65ToLab65.js", "../../../node_modules/.bun/culori@4.0.2/node_modules/culori/src/lab65/convertRgbToLab65.js", "../../../node_modules/.bun/culori@4.0.2/node_modules/culori/src/dlch/constants.js", "../../../node_modules/.bun/culori@4.0.2/node_modules/culori/src/dlch/convertDlchToLab65.js", "../../../node_modules/.bun/culori@4.0.2/node_modules/culori/src/dlch/convertLab65ToDlch.js", "../../../node_modules/.bun/culori@4.0.2/node_modules/culori/src/dlab/definition.js", "../../../node_modules/.bun/culori@4.0.2/node_modules/culori/src/dlch/definition.js", "../../../node_modules/.bun/culori@4.0.2/node_modules/culori/src/hsi/convertHsiToRgb.js", "../../../node_modules/.bun/culori@4.0.2/node_modules/culori/src/hsi/convertRgbToHsi.js", "../../../node_modules/.bun/culori@4.0.2/node_modules/culori/src/hsi/definition.js", "../../../node_modules/.bun/culori@4.0.2/node_modules/culori/src/hsl/convertHslToRgb.js", "../../../node_modules/.bun/culori@4.0.2/node_modules/culori/src/hsl/convertRgbToHsl.js", "../../../node_modules/.bun/culori@4.0.2/node_modules/culori/src/util/hue.js", "../../../node_modules/.bun/culori@4.0.2/node_modules/culori/src/hsl/parseHslLegacy.js", "../../../node_modules/.bun/culori@4.0.2/node_modules/culori/src/hsl/parseHsl.js", "../../../node_modules/.bun/culori@4.0.2/node_modules/culori/src/hsl/definition.js", "../../../node_modules/.bun/culori@4.0.2/node_modules/culori/src/hsv/convertHsvToRgb.js", "../../../node_modules/.bun/culori@4.0.2/node_modules/culori/src/hsv/convertRgbToHsv.js", "../../../node_modules/.bun/culori@4.0.2/node_modules/culori/src/hsv/definition.js", "../../../node_modules/.bun/culori@4.0.2/node_modules/culori/src/hwb/convertHwbToRgb.js", "../../../node_modules/.bun/culori@4.0.2/node_modules/culori/src/hwb/convertRgbToHwb.js", "../../../node_modules/.bun/culori@4.0.2/node_modules/culori/src/hwb/parseHwb.js", "../../../node_modules/.bun/culori@4.0.2/node_modules/culori/src/hwb/definition.js", "../../../node_modules/.bun/culori@4.0.2/node_modules/culori/src/hdr/constants.js", "../../../node_modules/.bun/culori@4.0.2/node_modules/culori/src/hdr/transfer.js", "../../../node_modules/.bun/culori@4.0.2/node_modules/culori/src/itp/convertItpToXyz65.js", "../../../node_modules/.bun/culori@4.0.2/node_modules/culori/src/itp/convertXyz65ToItp.js", "../../../node_modules/.bun/culori@4.0.2/node_modules/culori/src/itp/definition.js", "../../../node_modules/.bun/culori@4.0.2/node_modules/culori/src/jab/convertXyz65ToJab.js", "../../../node_modules/.bun/culori@4.0.2/node_modules/culori/src/jab/convertJabToXyz65.js", "../../../node_modules/.bun/culori@4.0.2/node_modules/culori/src/jab/convertRgbToJab.js", "../../../node_modules/.bun/culori@4.0.2/node_modules/culori/src/jab/convertJabToRgb.js", "../../../node_modules/.bun/culori@4.0.2/node_modules/culori/src/jab/definition.js", "../../../node_modules/.bun/culori@4.0.2/node_modules/culori/src/jch/convertJabToJch.js", "../../../node_modules/.bun/culori@4.0.2/node_modules/culori/src/jch/convertJchToJab.js", "../../../node_modules/.bun/culori@4.0.2/node_modules/culori/src/jch/definition.js", "../../../node_modules/.bun/culori@4.0.2/node_modules/culori/src/xyz50/constants.js", "../../../node_modules/.bun/culori@4.0.2/node_modules/culori/src/lab/convertLabToXyz50.js", "../../../node_modules/.bun/culori@4.0.2/node_modules/culori/src/xyz50/convertXyz50ToRgb.js", "../../../node_modules/.bun/culori@4.0.2/node_modules/culori/src/lab/convertLabToRgb.js", "../../../node_modules/.bun/culori@4.0.2/node_modules/culori/src/xyz50/convertRgbToXyz50.js", "../../../node_modules/.bun/culori@4.0.2/node_modules/culori/src/lab/convertXyz50ToLab.js", "../../../node_modules/.bun/culori@4.0.2/node_modules/culori/src/lab/convertRgbToLab.js", "../../../node_modules/.bun/culori@4.0.2/node_modules/culori/src/lab/parseLab.js", "../../../node_modules/.bun/culori@4.0.2/node_modules/culori/src/lab/definition.js", "../../../node_modules/.bun/culori@4.0.2/node_modules/culori/src/lab65/definition.js", "../../../node_modules/.bun/culori@4.0.2/node_modules/culori/src/lch/parseLch.js", "../../../node_modules/.bun/culori@4.0.2/node_modules/culori/src/lch/definition.js", "../../../node_modules/.bun/culori@4.0.2/node_modules/culori/src/lch65/definition.js", "../../../node_modules/.bun/culori@4.0.2/node_modules/culori/src/lchuv/convertLuvToLchuv.js", "../../../node_modules/.bun/culori@4.0.2/node_modules/culori/src/lchuv/convertLchuvToLuv.js", "../../../node_modules/.bun/culori@4.0.2/node_modules/culori/src/luv/convertXyz50ToLuv.js", "../../../node_modules/.bun/culori@4.0.2/node_modules/culori/src/luv/convertLuvToXyz50.js", "../../../node_modules/.bun/culori@4.0.2/node_modules/culori/src/lchuv/definition.js", "../../../node_modules/.bun/culori@4.0.2/node_modules/culori/src/lrgb/definition.js", "../../../node_modules/.bun/culori@4.0.2/node_modules/culori/src/luv/definition.js", "../../../node_modules/.bun/culori@4.0.2/node_modules/culori/src/oklab/convertLrgbToOklab.js", "../../../node_modules/.bun/culori@4.0.2/node_modules/culori/src/oklab/convertRgbToOklab.js", "../../../node_modules/.bun/culori@4.0.2/node_modules/culori/src/oklab/convertOklabToLrgb.js", "../../../node_modules/.bun/culori@4.0.2/node_modules/culori/src/oklab/convertOklabToRgb.js", "../../../node_modules/.bun/culori@4.0.2/node_modules/culori/src/okhsl/helpers.js", "../../../node_modules/.bun/culori@4.0.2/node_modules/culori/src/okhsl/convertOklabToOkhsl.js", "../../../node_modules/.bun/culori@4.0.2/node_modules/culori/src/okhsl/convertOkhslToOklab.js", "../../../node_modules/.bun/culori@4.0.2/node_modules/culori/src/okhsl/modeOkhsl.js", "../../../node_modules/.bun/culori@4.0.2/node_modules/culori/src/okhsv/convertOklabToOkhsv.js", "../../../node_modules/.bun/culori@4.0.2/node_modules/culori/src/okhsv/convertOkhsvToOklab.js", "../../../node_modules/.bun/culori@4.0.2/node_modules/culori/src/okhsv/modeOkhsv.js", "../../../node_modules/.bun/culori@4.0.2/node_modules/culori/src/oklab/parseOklab.js", "../../../node_modules/.bun/culori@4.0.2/node_modules/culori/src/oklab/definition.js", "../../../node_modules/.bun/culori@4.0.2/node_modules/culori/src/oklch/parseOklch.js", "../../../node_modules/.bun/culori@4.0.2/node_modules/culori/src/oklch/definition.js", "../../../node_modules/.bun/culori@4.0.2/node_modules/culori/src/p3/convertP3ToXyz65.js", "../../../node_modules/.bun/culori@4.0.2/node_modules/culori/src/p3/convertXyz65ToP3.js", "../../../node_modules/.bun/culori@4.0.2/node_modules/culori/src/p3/definition.js", "../../../node_modules/.bun/culori@4.0.2/node_modules/culori/src/prophoto/convertXyz50ToProphoto.js", "../../../node_modules/.bun/culori@4.0.2/node_modules/culori/src/prophoto/convertProphotoToXyz50.js", "../../../node_modules/.bun/culori@4.0.2/node_modules/culori/src/prophoto/definition.js", "../../../node_modules/.bun/culori@4.0.2/node_modules/culori/src/rec2020/convertXyz65ToRec2020.js", "../../../node_modules/.bun/culori@4.0.2/node_modules/culori/src/rec2020/convertRec2020ToXyz65.js", "../../../node_modules/.bun/culori@4.0.2/node_modules/culori/src/rec2020/definition.js", "../../../node_modules/.bun/culori@4.0.2/node_modules/culori/src/xyb/constants.js", "../../../node_modules/.bun/culori@4.0.2/node_modules/culori/src/xyb/convertRgbToXyb.js", "../../../node_modules/.bun/culori@4.0.2/node_modules/culori/src/xyb/convertXybToRgb.js", "../../../node_modules/.bun/culori@4.0.2/node_modules/culori/src/xyb/definition.js", "../../../node_modules/.bun/culori@4.0.2/node_modules/culori/src/xyz50/definition.js", "../../../node_modules/.bun/culori@4.0.2/node_modules/culori/src/xyz65/convertXyz65ToXyz50.js", "../../../node_modules/.bun/culori@4.0.2/node_modules/culori/src/xyz65/convertXyz50ToXyz65.js", "../../../node_modules/.bun/culori@4.0.2/node_modules/culori/src/xyz65/definition.js", "../../../node_modules/.bun/culori@4.0.2/node_modules/culori/src/yiq/convertRgbToYiq.js", "../../../node_modules/.bun/culori@4.0.2/node_modules/culori/src/yiq/convertYiqToRgb.js", "../../../node_modules/.bun/culori@4.0.2/node_modules/culori/src/yiq/definition.js", "../../../node_modules/.bun/culori@4.0.2/node_modules/culori/src/round.js", "../../../node_modules/.bun/culori@4.0.2/node_modules/culori/src/formatter.js", "../../../node_modules/.bun/culori@4.0.2/node_modules/culori/src/index.js", "../src/util/generateColorPalette.ts", "../src/util/guarded.ts", "../src/error/ForbiddenException.ts", "../src/error/HandledException.ts", "../src/error/UnauthorizedException.ts", "../src/util/onError.ts", "../src/util/onErrorSnackbar.ts", "../src/util/persistentRef.ts", "../src/util/persistentStringRef.ts", "../src/util/runBefore.ts", "../src/util/unrefAll.ts", "../src/composable/useService.ts", "../src/store/defineStore.ts", "../src/store/index.ts"],
4
+ "sourcesContent": [
5
+ "import { type Ref, unref } from 'vue';\n\nexport default function (contents: Ref<string>, onSuccess?: Function) {\n return async () => {\n await navigator.clipboard.writeText(unref(contents));\n onSuccess?.();\n };\n}\n",
6
+ "import { debounce } from '@basmilius/utils';\n\nexport default function <T extends (...args: any[]) => any>(fn: T, delay: number): T {\n return debounce(fn, delay) as T;\n}\n",
7
+ "import { cloneDto, markDtoClean } from '@basmilius/http-client';\nimport { ref, type Ref, watch } from 'vue';\n\nexport default function <T>(dtoRef: Ref<T | null>) {\n const form = ref<T>();\n\n watch(dtoRef, dto => {\n if (!dto) {\n return;\n }\n\n form.value = cloneDto(dto);\n markDtoClean(form.value);\n }, {immediate: true});\n\n return form;\n}\n",
8
+ "import { onMounted, onUnmounted, type Ref, ref, unref } from 'vue';\n\nexport default function (interval: Ref<number> | number, fn: Function): void {\n const intervalRef = ref<any>();\n\n onMounted(() => {\n tick();\n });\n\n onUnmounted(() => {\n clearTimeout(intervalRef.value);\n });\n\n function schedule(): void {\n intervalRef.value = setTimeout(() => requestAnimationFrame(tick), unref(interval));\n }\n\n function tick(): void {\n schedule();\n fn();\n }\n}\n",
9
+ "import { useDebouncedRef } from '@flux-ui/internals';\nimport { computed, type ComputedRef, ref, unref, watch } from 'vue';\n\nexport default function (debounce: number = 0, initial: boolean = false): UseLoaded {\n const first = ref(initial);\n const tasks = ref(0);\n\n const isLoading = computed(() => unref(first) || unref(tasks) > 0);\n\n function loaded<T extends Function>(fn: T): T {\n return (async (...args: any[]) => {\n tasks.value++;\n\n return await fn(...args)\n .finally(() => tasks.value--);\n }) as unknown as T;\n }\n\n const isLoadingDebounced = useDebouncedRef(isLoading, debounce) as unknown as ComputedRef<boolean>;\n\n watch(tasks, () => {\n if (!unref(first)) {\n return;\n }\n\n first.value = false;\n });\n\n return {\n isLoading: isLoadingDebounced,\n loaded\n };\n}\n\ntype UseLoaded = {\n readonly isLoading: ComputedRef<boolean>;\n loaded<T extends Function>(fn: T): T;\n};\n",
10
+ "import type { ComputedRef } from 'vue';\nimport useLoaded from './useLoaded';\n\nexport default function <T extends ((...args: any[]) => Promise<any>)>(fn: T): [T, ComputedRef<boolean>] {\n const {isLoading, loaded} = useLoaded();\n\n const action = loaded(fn);\n\n return [\n action,\n isLoading\n ];\n};\n",
11
+ "import { ref, watch } from 'vue';\n\nexport default function () {\n const file = ref<File | null>(null);\n const url = ref<string | null>(null);\n\n const deleteFile = (): void => {\n file.value = null;\n url.value = null;\n };\n\n const uploadFile = (uploadedFile: File): void => {\n file.value = uploadedFile;\n };\n\n watch(file, (file, _, onCleanup) => {\n if (!file) {\n return;\n }\n\n url.value = URL.createObjectURL(file);\n\n onCleanup(() => {\n if (!url.value) {\n return;\n }\n\n URL.revokeObjectURL(url.value);\n url.value = null;\n });\n }, {immediate: true});\n\n return {\n file,\n url,\n\n delete: deleteFile,\n upload: uploadFile\n };\n}\n",
12
+ "import { onMounted, type Ref, ref } from 'vue';\n\nexport default function (): Ref<boolean> {\n const mounted = ref(false);\n\n onMounted(() => mounted.value = true);\n\n return mounted;\n}\n",
13
+ "import { computed, provide, type Ref, unref } from 'vue';\nimport { useRoute, viewDepthKey } from 'vue-router';\n\nexport default function (nameRef: Ref<string> | string) {\n const route = useRoute();\n\n const depth = computed(() => route.matched.findIndex(m => !!m.components && unref(nameRef) in m.components));\n const matched = computed(() => route.matched[unref(depth)]);\n const viewKey = computed(() => unref(matched)?.path);\n\n provide(viewDepthKey, depth);\n\n return {\n route,\n viewKey\n };\n}\n",
14
+ "import { type NavigationFailure, type RouteLocationRaw, useRouter } from 'vue-router';\n\ntype To = Omit<RouteLocationRaw, 'replace'>;\ntype Navigate = (to: To, replace?: boolean) => Promise<NavigationFailure | void | undefined>;\ntype Wrap = (fn: Navigate) => Navigate;\n\nexport default function (...wrap: Wrap[]) {\n const router = useRouter();\n\n let navigate = async (to: To, replace: boolean = false) => {\n if (replace) {\n return await router.replace(to);\n }\n\n return await router.push(to);\n };\n\n for (let wrapper of wrap) {\n navigate = wrapper(navigate);\n }\n\n return {\n navigate,\n\n push: (to: To) => navigate(to),\n replace: (to: To) => navigate(to, true)\n };\n}\n",
15
+ "import { ref } from 'vue';\n\nconst DEFAULT_LIMITS = [5, 10, 25, 50, 100];\nconst DEFAULT_PAGE = 1;\nconst DEFAULT_PER_PAGE = 25;\n\nexport default function () {\n const limits = ref(DEFAULT_LIMITS);\n const page = ref(DEFAULT_PAGE);\n const perPage = ref(DEFAULT_PER_PAGE);\n const total = ref(0);\n\n function setPage(num: number): void {\n page.value = num;\n }\n\n function setPerPage(num: number): void {\n perPage.value = num;\n }\n\n function setTotal(num: number): void {\n total.value = num;\n }\n\n return {\n limits,\n page,\n perPage,\n total,\n\n setPage,\n setPerPage,\n setTotal\n };\n};\n",
16
+ "import { computed, type Ref, unref } from 'vue';\n\ntype PasswordRuleType =\n | 'lowercase'\n | 'uppercase'\n | 'number'\n | 'symbol';\n\ntype PasswordStrengthType =\n | 'too_weak'\n | 'weak'\n | 'medium'\n | 'strong';\n\ntype Result = {\n readonly length: number;\n readonly rules: PasswordRuleType[];\n readonly strength: PasswordStrengthType;\n};\n\ntype PasswordRule = {\n readonly regex: RegExp;\n readonly type: PasswordRuleType;\n};\n\ntype PasswordStrength = {\n readonly index: number;\n readonly type: PasswordStrengthType;\n readonly minimumDiversity: number;\n readonly minimumLength: number;\n};\n\nconst strengths: PasswordStrength[] = [\n {index: 0, type: 'too_weak', minimumDiversity: 0, minimumLength: 0},\n {index: 1, type: 'weak', minimumDiversity: 2, minimumLength: 6},\n {index: 2, type: 'medium', minimumDiversity: 3, minimumLength: 8},\n {index: 3, type: 'strong', minimumDiversity: 4, minimumLength: 10}\n] as const;\n\nconst rules: PasswordRule[] = [\n {regex: new RegExp('[a-z]'), type: 'lowercase'},\n {regex: new RegExp('[A-Z]'), type: 'uppercase'},\n {regex: new RegExp('[0-9]'), type: 'number'},\n {regex: new RegExp('[!\"#\\$%&\\'\\(\\)\\*\\+,-\\./:;<=>\\?@\\[\\\\\\\\\\\\]\\^_`\\{|\\}~]'), type: 'symbol'}\n];\n\nexport default function (passwordRef: Ref<string>) {\n return computed<Result | null>(() => {\n const password = unref(passwordRef);\n\n if (password.length === 0) {\n return null;\n }\n\n const foundRules = rules\n .filter(r => r.regex.test(password))\n .map(r => r.type);\n\n return {\n length: password.length,\n strength: strengths\n .sort((a, b) => b.index - a.index)\n .find(s => foundRules.length >= s.minimumDiversity && password.length >= s.minimumLength)!.type,\n rules: foundRules\n } satisfies Result;\n });\n}\n",
17
+ "/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nexport default freeGlobal;\n",
18
+ "import freeGlobal from './_freeGlobal.js';\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nexport default root;\n",
19
+ "import root from './_root.js';\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nexport default Symbol;\n",
20
+ "import Symbol from './_Symbol.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nexport default getRawTag;\n",
21
+ "/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nexport default objectToString;\n",
22
+ "import Symbol from './_Symbol.js';\nimport getRawTag from './_getRawTag.js';\nimport objectToString from './_objectToString.js';\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nexport default baseGetTag;\n",
23
+ "/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nexport default isObjectLike;\n",
24
+ "/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nexport default isArray;\n",
25
+ "/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nexport default isObject;\n",
26
+ "/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\nexport default identity;\n",
27
+ "import baseGetTag from './_baseGetTag.js';\nimport isObject from './isObject.js';\n\n/** `Object#toString` result references. */\nvar asyncTag = '[object AsyncFunction]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n proxyTag = '[object Proxy]';\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\nexport default isFunction;\n",
28
+ "import root from './_root.js';\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\nexport default coreJsData;\n",
29
+ "import coreJsData from './_coreJsData.js';\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\nexport default isMasked;\n",
30
+ "/** Used for built-in method references. */\nvar funcProto = Function.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\nexport default toSource;\n",
31
+ "import isFunction from './isFunction.js';\nimport isMasked from './_isMasked.js';\nimport isObject from './isObject.js';\nimport toSource from './_toSource.js';\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\nexport default baseIsNative;\n",
32
+ "/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\nexport default getValue;\n",
33
+ "import baseIsNative from './_baseIsNative.js';\nimport getValue from './_getValue.js';\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\nexport default getNative;\n",
34
+ "import isObject from './isObject.js';\n\n/** Built-in value references. */\nvar objectCreate = Object.create;\n\n/**\n * The base implementation of `_.create` without support for assigning\n * properties to the created object.\n *\n * @private\n * @param {Object} proto The object to inherit from.\n * @returns {Object} Returns the new object.\n */\nvar baseCreate = (function() {\n function object() {}\n return function(proto) {\n if (!isObject(proto)) {\n return {};\n }\n if (objectCreate) {\n return objectCreate(proto);\n }\n object.prototype = proto;\n var result = new object;\n object.prototype = undefined;\n return result;\n };\n}());\n\nexport default baseCreate;\n",
35
+ "/**\n * A faster alternative to `Function#apply`, this function invokes `func`\n * with the `this` binding of `thisArg` and the arguments of `args`.\n *\n * @private\n * @param {Function} func The function to invoke.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} args The arguments to invoke `func` with.\n * @returns {*} Returns the result of `func`.\n */\nfunction apply(func, thisArg, args) {\n switch (args.length) {\n case 0: return func.call(thisArg);\n case 1: return func.call(thisArg, args[0]);\n case 2: return func.call(thisArg, args[0], args[1]);\n case 3: return func.call(thisArg, args[0], args[1], args[2]);\n }\n return func.apply(thisArg, args);\n}\n\nexport default apply;\n",
36
+ "/**\n * Copies the values of `source` to `array`.\n *\n * @private\n * @param {Array} source The array to copy values from.\n * @param {Array} [array=[]] The array to copy values to.\n * @returns {Array} Returns `array`.\n */\nfunction copyArray(source, array) {\n var index = -1,\n length = source.length;\n\n array || (array = Array(length));\n while (++index < length) {\n array[index] = source[index];\n }\n return array;\n}\n\nexport default copyArray;\n",
37
+ "/** Used to detect hot functions by number of calls within a span of milliseconds. */\nvar HOT_COUNT = 800,\n HOT_SPAN = 16;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeNow = Date.now;\n\n/**\n * Creates a function that'll short out and invoke `identity` instead\n * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN`\n * milliseconds.\n *\n * @private\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new shortable function.\n */\nfunction shortOut(func) {\n var count = 0,\n lastCalled = 0;\n\n return function() {\n var stamp = nativeNow(),\n remaining = HOT_SPAN - (stamp - lastCalled);\n\n lastCalled = stamp;\n if (remaining > 0) {\n if (++count >= HOT_COUNT) {\n return arguments[0];\n }\n } else {\n count = 0;\n }\n return func.apply(undefined, arguments);\n };\n}\n\nexport default shortOut;\n",
38
+ "/**\n * Creates a function that returns `value`.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {*} value The value to return from the new function.\n * @returns {Function} Returns the new constant function.\n * @example\n *\n * var objects = _.times(2, _.constant({ 'a': 1 }));\n *\n * console.log(objects);\n * // => [{ 'a': 1 }, { 'a': 1 }]\n *\n * console.log(objects[0] === objects[1]);\n * // => true\n */\nfunction constant(value) {\n return function() {\n return value;\n };\n}\n\nexport default constant;\n",
39
+ "import getNative from './_getNative.js';\n\nvar defineProperty = (function() {\n try {\n var func = getNative(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n}());\n\nexport default defineProperty;\n",
40
+ "import constant from './constant.js';\nimport defineProperty from './_defineProperty.js';\nimport identity from './identity.js';\n\n/**\n * The base implementation of `setToString` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar baseSetToString = !defineProperty ? identity : function(func, string) {\n return defineProperty(func, 'toString', {\n 'configurable': true,\n 'enumerable': false,\n 'value': constant(string),\n 'writable': true\n });\n};\n\nexport default baseSetToString;\n",
41
+ "import baseSetToString from './_baseSetToString.js';\nimport shortOut from './_shortOut.js';\n\n/**\n * Sets the `toString` method of `func` to return `string`.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar setToString = shortOut(baseSetToString);\n\nexport default setToString;\n",
42
+ "/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\nexport default isIndex;\n",
43
+ "import defineProperty from './_defineProperty.js';\n\n/**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction baseAssignValue(object, key, value) {\n if (key == '__proto__' && defineProperty) {\n defineProperty(object, key, {\n 'configurable': true,\n 'enumerable': true,\n 'value': value,\n 'writable': true\n });\n } else {\n object[key] = value;\n }\n}\n\nexport default baseAssignValue;\n",
44
+ "/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\nexport default eq;\n",
45
+ "import baseAssignValue from './_baseAssignValue.js';\nimport eq from './eq.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\nexport default assignValue;\n",
46
+ "import assignValue from './_assignValue.js';\nimport baseAssignValue from './_baseAssignValue.js';\n\n/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\nfunction copyObject(source, props, object, customizer) {\n var isNew = !object;\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n\n var newValue = customizer\n ? customizer(object[key], source[key], key, object, source)\n : undefined;\n\n if (newValue === undefined) {\n newValue = source[key];\n }\n if (isNew) {\n baseAssignValue(object, key, newValue);\n } else {\n assignValue(object, key, newValue);\n }\n }\n return object;\n}\n\nexport default copyObject;\n",
47
+ "import apply from './_apply.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * A specialized version of `baseRest` which transforms the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @param {Function} transform The rest array transform.\n * @returns {Function} Returns the new function.\n */\nfunction overRest(func, start, transform) {\n start = nativeMax(start === undefined ? (func.length - 1) : start, 0);\n return function() {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n array = Array(length);\n\n while (++index < length) {\n array[index] = args[start + index];\n }\n index = -1;\n var otherArgs = Array(start + 1);\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = transform(array);\n return apply(func, this, otherArgs);\n };\n}\n\nexport default overRest;\n",
48
+ "import identity from './identity.js';\nimport overRest from './_overRest.js';\nimport setToString from './_setToString.js';\n\n/**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n */\nfunction baseRest(func, start) {\n return setToString(overRest(func, start, identity), func + '');\n}\n\nexport default baseRest;\n",
49
+ "/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\nexport default isLength;\n",
50
+ "import isFunction from './isFunction.js';\nimport isLength from './isLength.js';\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\nexport default isArrayLike;\n",
51
+ "import eq from './eq.js';\nimport isArrayLike from './isArrayLike.js';\nimport isIndex from './_isIndex.js';\nimport isObject from './isObject.js';\n\n/**\n * Checks if the given arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n * else `false`.\n */\nfunction isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n var type = typeof index;\n if (type == 'number'\n ? (isArrayLike(object) && isIndex(index, object.length))\n : (type == 'string' && index in object)\n ) {\n return eq(object[index], value);\n }\n return false;\n}\n\nexport default isIterateeCall;\n",
52
+ "import baseRest from './_baseRest.js';\nimport isIterateeCall from './_isIterateeCall.js';\n\n/**\n * Creates a function like `_.assign`.\n *\n * @private\n * @param {Function} assigner The function to assign values.\n * @returns {Function} Returns the new assigner function.\n */\nfunction createAssigner(assigner) {\n return baseRest(function(object, sources) {\n var index = -1,\n length = sources.length,\n customizer = length > 1 ? sources[length - 1] : undefined,\n guard = length > 2 ? sources[2] : undefined;\n\n customizer = (assigner.length > 3 && typeof customizer == 'function')\n ? (length--, customizer)\n : undefined;\n\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n customizer = length < 3 ? undefined : customizer;\n length = 1;\n }\n object = Object(object);\n while (++index < length) {\n var source = sources[index];\n if (source) {\n assigner(object, source, index, customizer);\n }\n }\n return object;\n });\n}\n\nexport default createAssigner;\n",
53
+ "/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\nexport default isPrototype;\n",
54
+ "/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\nexport default baseTimes;\n",
55
+ "import baseGetTag from './_baseGetTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]';\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\nexport default baseIsArguments;\n",
56
+ "import baseIsArguments from './_baseIsArguments.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\nexport default isArguments;\n",
57
+ "/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nexport default stubFalse;\n",
58
+ "import root from './_root.js';\nimport stubFalse from './stubFalse.js';\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\nexport default isBuffer;\n",
59
+ "import baseGetTag from './_baseGetTag.js';\nimport isLength from './isLength.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\nexport default baseIsTypedArray;\n",
60
+ "/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\nexport default baseUnary;\n",
61
+ "import freeGlobal from './_freeGlobal.js';\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n if (types) {\n return types;\n }\n\n // Legacy `process.binding('util')` for Node.js < 10.\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\nexport default nodeUtil;\n",
62
+ "import baseIsTypedArray from './_baseIsTypedArray.js';\nimport baseUnary from './_baseUnary.js';\nimport nodeUtil from './_nodeUtil.js';\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\nexport default isTypedArray;\n",
63
+ "import baseTimes from './_baseTimes.js';\nimport isArguments from './isArguments.js';\nimport isArray from './isArray.js';\nimport isBuffer from './isBuffer.js';\nimport isIndex from './_isIndex.js';\nimport isTypedArray from './isTypedArray.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\nexport default arrayLikeKeys;\n",
64
+ "/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\nexport default overArg;\n",
65
+ "/**\n * This function is like\n * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * except that it includes inherited enumerable properties.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction nativeKeysIn(object) {\n var result = [];\n if (object != null) {\n for (var key in Object(object)) {\n result.push(key);\n }\n }\n return result;\n}\n\nexport default nativeKeysIn;\n",
66
+ "import isObject from './isObject.js';\nimport isPrototype from './_isPrototype.js';\nimport nativeKeysIn from './_nativeKeysIn.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeysIn(object) {\n if (!isObject(object)) {\n return nativeKeysIn(object);\n }\n var isProto = isPrototype(object),\n result = [];\n\n for (var key in object) {\n if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {\n result.push(key);\n }\n }\n return result;\n}\n\nexport default baseKeysIn;\n",
67
+ "import arrayLikeKeys from './_arrayLikeKeys.js';\nimport baseKeysIn from './_baseKeysIn.js';\nimport isArrayLike from './isArrayLike.js';\n\n/**\n * Creates an array of the own and inherited enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keysIn(new Foo);\n * // => ['a', 'b', 'c'] (iteration order is not guaranteed)\n */\nfunction keysIn(object) {\n return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);\n}\n\nexport default keysIn;\n",
68
+ "import getNative from './_getNative.js';\n\n/* Built-in method references that are verified to be native. */\nvar nativeCreate = getNative(Object, 'create');\n\nexport default nativeCreate;\n",
69
+ "import nativeCreate from './_nativeCreate.js';\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n}\n\nexport default hashClear;\n",
70
+ "/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\nexport default hashDelete;\n",
71
+ "import nativeCreate from './_nativeCreate.js';\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\nexport default hashGet;\n",
72
+ "import nativeCreate from './_nativeCreate.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\nexport default hashHas;\n",
73
+ "import nativeCreate from './_nativeCreate.js';\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\nexport default hashSet;\n",
74
+ "import hashClear from './_hashClear.js';\nimport hashDelete from './_hashDelete.js';\nimport hashGet from './_hashGet.js';\nimport hashHas from './_hashHas.js';\nimport hashSet from './_hashSet.js';\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\nexport default Hash;\n",
75
+ "/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\nexport default listCacheClear;\n",
76
+ "import eq from './eq.js';\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\nexport default assocIndexOf;\n",
77
+ "import assocIndexOf from './_assocIndexOf.js';\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\nexport default listCacheDelete;\n",
78
+ "import assocIndexOf from './_assocIndexOf.js';\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\nexport default listCacheGet;\n",
79
+ "import assocIndexOf from './_assocIndexOf.js';\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\nexport default listCacheHas;\n",
80
+ "import assocIndexOf from './_assocIndexOf.js';\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\nexport default listCacheSet;\n",
81
+ "import listCacheClear from './_listCacheClear.js';\nimport listCacheDelete from './_listCacheDelete.js';\nimport listCacheGet from './_listCacheGet.js';\nimport listCacheHas from './_listCacheHas.js';\nimport listCacheSet from './_listCacheSet.js';\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\nexport default ListCache;\n",
82
+ "import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map');\n\nexport default Map;\n",
83
+ "import Hash from './_Hash.js';\nimport ListCache from './_ListCache.js';\nimport Map from './_Map.js';\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\nexport default mapCacheClear;\n",
84
+ "/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\nexport default isKeyable;\n",
85
+ "import isKeyable from './_isKeyable.js';\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\nexport default getMapData;\n",
86
+ "import getMapData from './_getMapData.js';\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\nexport default mapCacheDelete;\n",
87
+ "import getMapData from './_getMapData.js';\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\nexport default mapCacheGet;\n",
88
+ "import getMapData from './_getMapData.js';\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\nexport default mapCacheHas;\n",
89
+ "import getMapData from './_getMapData.js';\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\nexport default mapCacheSet;\n",
90
+ "import mapCacheClear from './_mapCacheClear.js';\nimport mapCacheDelete from './_mapCacheDelete.js';\nimport mapCacheGet from './_mapCacheGet.js';\nimport mapCacheHas from './_mapCacheHas.js';\nimport mapCacheSet from './_mapCacheSet.js';\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\nexport default MapCache;\n",
91
+ "import overArg from './_overArg.js';\n\n/** Built-in value references. */\nvar getPrototype = overArg(Object.getPrototypeOf, Object);\n\nexport default getPrototype;\n",
92
+ "import baseGetTag from './_baseGetTag.js';\nimport getPrototype from './_getPrototype.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to infer the `Object` constructor. */\nvar objectCtorString = funcToString.call(Object);\n\n/**\n * Checks if `value` is a plain object, that is, an object created by the\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\n *\n * @static\n * @memberOf _\n * @since 0.8.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * _.isPlainObject(new Foo);\n * // => false\n *\n * _.isPlainObject([1, 2, 3]);\n * // => false\n *\n * _.isPlainObject({ 'x': 0, 'y': 0 });\n * // => true\n *\n * _.isPlainObject(Object.create(null));\n * // => true\n */\nfunction isPlainObject(value) {\n if (!isObjectLike(value) || baseGetTag(value) != objectTag) {\n return false;\n }\n var proto = getPrototype(value);\n if (proto === null) {\n return true;\n }\n var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;\n return typeof Ctor == 'function' && Ctor instanceof Ctor &&\n funcToString.call(Ctor) == objectCtorString;\n}\n\nexport default isPlainObject;\n",
93
+ "import ListCache from './_ListCache.js';\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n this.size = 0;\n}\n\nexport default stackClear;\n",
94
+ "/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n\n this.size = data.size;\n return result;\n}\n\nexport default stackDelete;\n",
95
+ "/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\nexport default stackGet;\n",
96
+ "/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\nexport default stackHas;\n",
97
+ "import ListCache from './_ListCache.js';\nimport Map from './_Map.js';\nimport MapCache from './_MapCache.js';\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new MapCache(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n}\n\nexport default stackSet;\n",
98
+ "import ListCache from './_ListCache.js';\nimport stackClear from './_stackClear.js';\nimport stackDelete from './_stackDelete.js';\nimport stackGet from './_stackGet.js';\nimport stackHas from './_stackHas.js';\nimport stackSet from './_stackSet.js';\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\nexport default Stack;\n",
99
+ "import root from './_root.js';\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined,\n allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined;\n\n/**\n * Creates a clone of `buffer`.\n *\n * @private\n * @param {Buffer} buffer The buffer to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Buffer} Returns the cloned buffer.\n */\nfunction cloneBuffer(buffer, isDeep) {\n if (isDeep) {\n return buffer.slice();\n }\n var length = buffer.length,\n result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length);\n\n buffer.copy(result);\n return result;\n}\n\nexport default cloneBuffer;\n",
100
+ "import root from './_root.js';\n\n/** Built-in value references. */\nvar Uint8Array = root.Uint8Array;\n\nexport default Uint8Array;\n",
101
+ "import Uint8Array from './_Uint8Array.js';\n\n/**\n * Creates a clone of `arrayBuffer`.\n *\n * @private\n * @param {ArrayBuffer} arrayBuffer The array buffer to clone.\n * @returns {ArrayBuffer} Returns the cloned array buffer.\n */\nfunction cloneArrayBuffer(arrayBuffer) {\n var result = new arrayBuffer.constructor(arrayBuffer.byteLength);\n new Uint8Array(result).set(new Uint8Array(arrayBuffer));\n return result;\n}\n\nexport default cloneArrayBuffer;\n",
102
+ "import cloneArrayBuffer from './_cloneArrayBuffer.js';\n\n/**\n * Creates a clone of `typedArray`.\n *\n * @private\n * @param {Object} typedArray The typed array to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned typed array.\n */\nfunction cloneTypedArray(typedArray, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;\n return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);\n}\n\nexport default cloneTypedArray;\n",
103
+ "import baseCreate from './_baseCreate.js';\nimport getPrototype from './_getPrototype.js';\nimport isPrototype from './_isPrototype.js';\n\n/**\n * Initializes an object clone.\n *\n * @private\n * @param {Object} object The object to clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneObject(object) {\n return (typeof object.constructor == 'function' && !isPrototype(object))\n ? baseCreate(getPrototype(object))\n : {};\n}\n\nexport default initCloneObject;\n",
104
+ "/**\n * Creates a base function for methods like `_.forIn` and `_.forOwn`.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseFor(fromRight) {\n return function(object, iteratee, keysFunc) {\n var index = -1,\n iterable = Object(object),\n props = keysFunc(object),\n length = props.length;\n\n while (length--) {\n var key = props[fromRight ? length : ++index];\n if (iteratee(iterable[key], key, iterable) === false) {\n break;\n }\n }\n return object;\n };\n}\n\nexport default createBaseFor;\n",
105
+ "import createBaseFor from './_createBaseFor.js';\n\n/**\n * The base implementation of `baseForOwn` which iterates over `object`\n * properties returned by `keysFunc` and invokes `iteratee` for each property.\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\nvar baseFor = createBaseFor();\n\nexport default baseFor;\n",
106
+ "import baseAssignValue from './_baseAssignValue.js';\nimport eq from './eq.js';\n\n/**\n * This function is like `assignValue` except that it doesn't assign\n * `undefined` values.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignMergeValue(object, key, value) {\n if ((value !== undefined && !eq(object[key], value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\nexport default assignMergeValue;\n",
107
+ "import isArrayLike from './isArrayLike.js';\nimport isObjectLike from './isObjectLike.js';\n\n/**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\nfunction isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n}\n\nexport default isArrayLikeObject;\n",
108
+ "/**\n * Gets the value at `key`, unless `key` is \"__proto__\" or \"constructor\".\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction safeGet(object, key) {\n if (key === 'constructor' && typeof object[key] === 'function') {\n return;\n }\n\n if (key == '__proto__') {\n return;\n }\n\n return object[key];\n}\n\nexport default safeGet;\n",
109
+ "import copyObject from './_copyObject.js';\nimport keysIn from './keysIn.js';\n\n/**\n * Converts `value` to a plain object flattening inherited enumerable string\n * keyed properties of `value` to own properties of the plain object.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {Object} Returns the converted plain object.\n * @example\n *\n * function Foo() {\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.assign({ 'a': 1 }, new Foo);\n * // => { 'a': 1, 'b': 2 }\n *\n * _.assign({ 'a': 1 }, _.toPlainObject(new Foo));\n * // => { 'a': 1, 'b': 2, 'c': 3 }\n */\nfunction toPlainObject(value) {\n return copyObject(value, keysIn(value));\n}\n\nexport default toPlainObject;\n",
110
+ "import assignMergeValue from './_assignMergeValue.js';\nimport cloneBuffer from './_cloneBuffer.js';\nimport cloneTypedArray from './_cloneTypedArray.js';\nimport copyArray from './_copyArray.js';\nimport initCloneObject from './_initCloneObject.js';\nimport isArguments from './isArguments.js';\nimport isArray from './isArray.js';\nimport isArrayLikeObject from './isArrayLikeObject.js';\nimport isBuffer from './isBuffer.js';\nimport isFunction from './isFunction.js';\nimport isObject from './isObject.js';\nimport isPlainObject from './isPlainObject.js';\nimport isTypedArray from './isTypedArray.js';\nimport safeGet from './_safeGet.js';\nimport toPlainObject from './toPlainObject.js';\n\n/**\n * A specialized version of `baseMerge` for arrays and objects which performs\n * deep merges and tracks traversed objects enabling objects with circular\n * references to be merged.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {string} key The key of the value to merge.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} mergeFunc The function to merge values.\n * @param {Function} [customizer] The function to customize assigned values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\nfunction baseMergeDeep(object, source, key, srcIndex, mergeFunc, customizer, stack) {\n var objValue = safeGet(object, key),\n srcValue = safeGet(source, key),\n stacked = stack.get(srcValue);\n\n if (stacked) {\n assignMergeValue(object, key, stacked);\n return;\n }\n var newValue = customizer\n ? customizer(objValue, srcValue, (key + ''), object, source, stack)\n : undefined;\n\n var isCommon = newValue === undefined;\n\n if (isCommon) {\n var isArr = isArray(srcValue),\n isBuff = !isArr && isBuffer(srcValue),\n isTyped = !isArr && !isBuff && isTypedArray(srcValue);\n\n newValue = srcValue;\n if (isArr || isBuff || isTyped) {\n if (isArray(objValue)) {\n newValue = objValue;\n }\n else if (isArrayLikeObject(objValue)) {\n newValue = copyArray(objValue);\n }\n else if (isBuff) {\n isCommon = false;\n newValue = cloneBuffer(srcValue, true);\n }\n else if (isTyped) {\n isCommon = false;\n newValue = cloneTypedArray(srcValue, true);\n }\n else {\n newValue = [];\n }\n }\n else if (isPlainObject(srcValue) || isArguments(srcValue)) {\n newValue = objValue;\n if (isArguments(objValue)) {\n newValue = toPlainObject(objValue);\n }\n else if (!isObject(objValue) || isFunction(objValue)) {\n newValue = initCloneObject(srcValue);\n }\n }\n else {\n isCommon = false;\n }\n }\n if (isCommon) {\n // Recursively merge objects and arrays (susceptible to call stack limits).\n stack.set(srcValue, newValue);\n mergeFunc(newValue, srcValue, srcIndex, customizer, stack);\n stack['delete'](srcValue);\n }\n assignMergeValue(object, key, newValue);\n}\n\nexport default baseMergeDeep;\n",
111
+ "import Stack from './_Stack.js';\nimport assignMergeValue from './_assignMergeValue.js';\nimport baseFor from './_baseFor.js';\nimport baseMergeDeep from './_baseMergeDeep.js';\nimport isObject from './isObject.js';\nimport keysIn from './keysIn.js';\nimport safeGet from './_safeGet.js';\n\n/**\n * The base implementation of `_.merge` without support for multiple sources.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} [customizer] The function to customize merged values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\nfunction baseMerge(object, source, srcIndex, customizer, stack) {\n if (object === source) {\n return;\n }\n baseFor(source, function(srcValue, key) {\n stack || (stack = new Stack);\n if (isObject(srcValue)) {\n baseMergeDeep(object, source, key, srcIndex, baseMerge, customizer, stack);\n }\n else {\n var newValue = customizer\n ? customizer(safeGet(object, key), srcValue, (key + ''), object, source, stack)\n : undefined;\n\n if (newValue === undefined) {\n newValue = srcValue;\n }\n assignMergeValue(object, key, newValue);\n }\n }, keysIn);\n}\n\nexport default baseMerge;\n",
112
+ "import baseMerge from './_baseMerge.js';\nimport createAssigner from './_createAssigner.js';\n\n/**\n * This method is like `_.assign` except that it recursively merges own and\n * inherited enumerable string keyed properties of source objects into the\n * destination object. Source properties that resolve to `undefined` are\n * skipped if a destination value exists. Array and plain object properties\n * are merged recursively. Other objects and value types are overridden by\n * assignment. Source objects are applied from left to right. Subsequent\n * sources overwrite property assignments of previous sources.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 0.5.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = {\n * 'a': [{ 'b': 2 }, { 'd': 4 }]\n * };\n *\n * var other = {\n * 'a': [{ 'c': 3 }, { 'e': 5 }]\n * };\n *\n * _.merge(object, other);\n * // => { 'a': [{ 'b': 2, 'c': 3 }, { 'd': 4, 'e': 5 }] }\n */\nvar merge = createAssigner(function(object, source, srcIndex) {\n baseMerge(object, source, srcIndex);\n});\n\nexport default merge;\n",
113
+ "import { merge } from 'lodash-es';\nimport { computed, type Ref } from 'vue';\nimport { useRoute } from 'vue-router';\n\ntype RouteMeta = {\n readonly name?: string;\n};\n\nexport default function (): Ref<RouteMeta> {\n const route = useRoute();\n\n return computed(() => {\n let meta: RouteMeta = {};\n\n for (let i = route.matched.length - 1; i >= 0; --i) {\n const record = route.matched[i];\n\n if (!record || typeof record.meta !== 'object') {\n continue;\n }\n\n let matchMeta = {...record.meta};\n\n if ('navigation' in meta) {\n const {navigation: _, ...matchMetaWithoutNavigation} = matchMeta;\n matchMeta = matchMetaWithoutNavigation;\n }\n\n meta = merge(meta, matchMeta);\n }\n\n return meta;\n });\n}\n",
114
+ "import { computed } from 'vue';\nimport { useRoute } from 'vue-router';\n\nexport default function () {\n const route = useRoute();\n\n return computed(() => {\n const names: string[] = [];\n\n route.matched.forEach(m => m.name && names.push(m.name as string));\n\n return names;\n });\n};\n",
115
+ "import { type Ref, ref, watch } from 'vue';\nimport { useRoute } from 'vue-router';\n\nexport default function (name: string, defaultValue: string | null = null): Ref<string | null> {\n const route = useRoute();\n const param = ref<string | null>((route.params[name] as string | undefined) ?? defaultValue);\n\n watch(() => route.params[name], (value) => {\n param.value = (value || null) as string | null;\n }, {immediate: true});\n\n return param;\n}\n",
116
+ "export default function emptyNull(str: string | undefined | null): string | null {\n return str || null;\n}\n",
117
+ "const parseNumber = (color, len) => {\n\tif (typeof color !== 'number') return;\n\n\t// hex3: #c93 -> #cc9933\n\tif (len === 3) {\n\t\treturn {\n\t\t\tmode: 'rgb',\n\t\t\tr: (((color >> 8) & 0xf) | ((color >> 4) & 0xf0)) / 255,\n\t\t\tg: (((color >> 4) & 0xf) | (color & 0xf0)) / 255,\n\t\t\tb: ((color & 0xf) | ((color << 4) & 0xf0)) / 255\n\t\t};\n\t}\n\n\t// hex4: #c931 -> #cc993311\n\tif (len === 4) {\n\t\treturn {\n\t\t\tmode: 'rgb',\n\t\t\tr: (((color >> 12) & 0xf) | ((color >> 8) & 0xf0)) / 255,\n\t\t\tg: (((color >> 8) & 0xf) | ((color >> 4) & 0xf0)) / 255,\n\t\t\tb: (((color >> 4) & 0xf) | (color & 0xf0)) / 255,\n\t\t\talpha: ((color & 0xf) | ((color << 4) & 0xf0)) / 255\n\t\t};\n\t}\n\n\t// hex6: #f0f1f2\n\tif (len === 6) {\n\t\treturn {\n\t\t\tmode: 'rgb',\n\t\t\tr: ((color >> 16) & 0xff) / 255,\n\t\t\tg: ((color >> 8) & 0xff) / 255,\n\t\t\tb: (color & 0xff) / 255\n\t\t};\n\t}\n\n\t// hex8: #f0f1f2ff\n\tif (len === 8) {\n\t\treturn {\n\t\t\tmode: 'rgb',\n\t\t\tr: ((color >> 24) & 0xff) / 255,\n\t\t\tg: ((color >> 16) & 0xff) / 255,\n\t\t\tb: ((color >> 8) & 0xff) / 255,\n\t\t\talpha: (color & 0xff) / 255\n\t\t};\n\t}\n};\n\nexport default parseNumber;\n",
118
+ "const named = {\n\taliceblue: 0xf0f8ff,\n\tantiquewhite: 0xfaebd7,\n\taqua: 0x00ffff,\n\taquamarine: 0x7fffd4,\n\tazure: 0xf0ffff,\n\tbeige: 0xf5f5dc,\n\tbisque: 0xffe4c4,\n\tblack: 0x000000,\n\tblanchedalmond: 0xffebcd,\n\tblue: 0x0000ff,\n\tblueviolet: 0x8a2be2,\n\tbrown: 0xa52a2a,\n\tburlywood: 0xdeb887,\n\tcadetblue: 0x5f9ea0,\n\tchartreuse: 0x7fff00,\n\tchocolate: 0xd2691e,\n\tcoral: 0xff7f50,\n\tcornflowerblue: 0x6495ed,\n\tcornsilk: 0xfff8dc,\n\tcrimson: 0xdc143c,\n\tcyan: 0x00ffff,\n\tdarkblue: 0x00008b,\n\tdarkcyan: 0x008b8b,\n\tdarkgoldenrod: 0xb8860b,\n\tdarkgray: 0xa9a9a9,\n\tdarkgreen: 0x006400,\n\tdarkgrey: 0xa9a9a9,\n\tdarkkhaki: 0xbdb76b,\n\tdarkmagenta: 0x8b008b,\n\tdarkolivegreen: 0x556b2f,\n\tdarkorange: 0xff8c00,\n\tdarkorchid: 0x9932cc,\n\tdarkred: 0x8b0000,\n\tdarksalmon: 0xe9967a,\n\tdarkseagreen: 0x8fbc8f,\n\tdarkslateblue: 0x483d8b,\n\tdarkslategray: 0x2f4f4f,\n\tdarkslategrey: 0x2f4f4f,\n\tdarkturquoise: 0x00ced1,\n\tdarkviolet: 0x9400d3,\n\tdeeppink: 0xff1493,\n\tdeepskyblue: 0x00bfff,\n\tdimgray: 0x696969,\n\tdimgrey: 0x696969,\n\tdodgerblue: 0x1e90ff,\n\tfirebrick: 0xb22222,\n\tfloralwhite: 0xfffaf0,\n\tforestgreen: 0x228b22,\n\tfuchsia: 0xff00ff,\n\tgainsboro: 0xdcdcdc,\n\tghostwhite: 0xf8f8ff,\n\tgold: 0xffd700,\n\tgoldenrod: 0xdaa520,\n\tgray: 0x808080,\n\tgreen: 0x008000,\n\tgreenyellow: 0xadff2f,\n\tgrey: 0x808080,\n\thoneydew: 0xf0fff0,\n\thotpink: 0xff69b4,\n\tindianred: 0xcd5c5c,\n\tindigo: 0x4b0082,\n\tivory: 0xfffff0,\n\tkhaki: 0xf0e68c,\n\tlavender: 0xe6e6fa,\n\tlavenderblush: 0xfff0f5,\n\tlawngreen: 0x7cfc00,\n\tlemonchiffon: 0xfffacd,\n\tlightblue: 0xadd8e6,\n\tlightcoral: 0xf08080,\n\tlightcyan: 0xe0ffff,\n\tlightgoldenrodyellow: 0xfafad2,\n\tlightgray: 0xd3d3d3,\n\tlightgreen: 0x90ee90,\n\tlightgrey: 0xd3d3d3,\n\tlightpink: 0xffb6c1,\n\tlightsalmon: 0xffa07a,\n\tlightseagreen: 0x20b2aa,\n\tlightskyblue: 0x87cefa,\n\tlightslategray: 0x778899,\n\tlightslategrey: 0x778899,\n\tlightsteelblue: 0xb0c4de,\n\tlightyellow: 0xffffe0,\n\tlime: 0x00ff00,\n\tlimegreen: 0x32cd32,\n\tlinen: 0xfaf0e6,\n\tmagenta: 0xff00ff,\n\tmaroon: 0x800000,\n\tmediumaquamarine: 0x66cdaa,\n\tmediumblue: 0x0000cd,\n\tmediumorchid: 0xba55d3,\n\tmediumpurple: 0x9370db,\n\tmediumseagreen: 0x3cb371,\n\tmediumslateblue: 0x7b68ee,\n\tmediumspringgreen: 0x00fa9a,\n\tmediumturquoise: 0x48d1cc,\n\tmediumvioletred: 0xc71585,\n\tmidnightblue: 0x191970,\n\tmintcream: 0xf5fffa,\n\tmistyrose: 0xffe4e1,\n\tmoccasin: 0xffe4b5,\n\tnavajowhite: 0xffdead,\n\tnavy: 0x000080,\n\toldlace: 0xfdf5e6,\n\tolive: 0x808000,\n\tolivedrab: 0x6b8e23,\n\torange: 0xffa500,\n\torangered: 0xff4500,\n\torchid: 0xda70d6,\n\tpalegoldenrod: 0xeee8aa,\n\tpalegreen: 0x98fb98,\n\tpaleturquoise: 0xafeeee,\n\tpalevioletred: 0xdb7093,\n\tpapayawhip: 0xffefd5,\n\tpeachpuff: 0xffdab9,\n\tperu: 0xcd853f,\n\tpink: 0xffc0cb,\n\tplum: 0xdda0dd,\n\tpowderblue: 0xb0e0e6,\n\tpurple: 0x800080,\n\n\t// Added in CSS Colors Level 4:\n\t// https://drafts.csswg.org/css-color/#changes-from-3\n\trebeccapurple: 0x663399,\n\n\tred: 0xff0000,\n\trosybrown: 0xbc8f8f,\n\troyalblue: 0x4169e1,\n\tsaddlebrown: 0x8b4513,\n\tsalmon: 0xfa8072,\n\tsandybrown: 0xf4a460,\n\tseagreen: 0x2e8b57,\n\tseashell: 0xfff5ee,\n\tsienna: 0xa0522d,\n\tsilver: 0xc0c0c0,\n\tskyblue: 0x87ceeb,\n\tslateblue: 0x6a5acd,\n\tslategray: 0x708090,\n\tslategrey: 0x708090,\n\tsnow: 0xfffafa,\n\tspringgreen: 0x00ff7f,\n\tsteelblue: 0x4682b4,\n\ttan: 0xd2b48c,\n\tteal: 0x008080,\n\tthistle: 0xd8bfd8,\n\ttomato: 0xff6347,\n\tturquoise: 0x40e0d0,\n\tviolet: 0xee82ee,\n\twheat: 0xf5deb3,\n\twhite: 0xffffff,\n\twhitesmoke: 0xf5f5f5,\n\tyellow: 0xffff00,\n\tyellowgreen: 0x9acd32\n};\n\nexport default named;\n",
119
+ "import parseNumber from './parseNumber.js';\nimport named from '../colors/named.js';\n\n// Also supports the `transparent` color as defined in:\n// https://drafts.csswg.org/css-color/#transparent-black\nconst parseNamed = color => {\n\treturn parseNumber(named[color.toLowerCase()], 6);\n};\n\nexport default parseNamed;\n",
120
+ "import parseNumber from './parseNumber.js';\n\nconst hex = /^#?([0-9a-f]{8}|[0-9a-f]{6}|[0-9a-f]{4}|[0-9a-f]{3})$/i;\n\nconst parseHex = color => {\n\tlet match;\n\t// eslint-disable-next-line no-cond-assign\n\treturn (match = color.match(hex))\n\t\t? parseNumber(parseInt(match[1], 16), match[1].length)\n\t\t: undefined;\n};\n\nexport default parseHex;\n",
121
+ "/*\n\tBasic building blocks for color regexes\n\t---------------------------------------\n\n\tThese regexes are expressed as strings\n\tto be interpolated in the color regexes.\n */\n\n// <number>\nexport const num = '([+-]?\\\\d*\\\\.?\\\\d+(?:[eE][+-]?\\\\d+)?)';\n\n// <number> or 'none'\nexport const num_none = `(?:${num}|none)`;\n\n// <percentage>\nexport const per = `${num}%`;\n\n// <percent> or 'none'\nexport const per_none = `(?:${num}%|none)`;\n\n// <number-percentage> (<alpha-value>)\nexport const num_per = `(?:${num}%|${num})`;\n\n// <number-percentage> (<alpha-value>) or 'none'\nexport const num_per_none = `(?:${num}%|${num}|none)`;\n\n// <hue>\nexport const hue = `(?:${num}(deg|grad|rad|turn)|${num})`;\n\n// <hue> or 'none'\nexport const hue_none = `(?:${num}(deg|grad|rad|turn)|${num}|none)`;\n\nexport const c = `\\\\s*,\\\\s*`; // comma\nexport const so = '\\\\s*'; // space, optional\nexport const s = `\\\\s+`; // space\n\nexport const rx_num_per_none = new RegExp('^' + num_per_none + '$');\n",
122
+ "import { num, per, num_per, c } from '../util/regex.js';\n\n/*\n\trgb() regular expressions for legacy format\n\tReference: https://drafts.csswg.org/css-color/#rgb-functions\n */\nconst rgb_num_old = new RegExp(\n\t`^rgba?\\\\(\\\\s*${num}${c}${num}${c}${num}\\\\s*(?:,\\\\s*${num_per}\\\\s*)?\\\\)$`\n);\n\nconst rgb_per_old = new RegExp(\n\t`^rgba?\\\\(\\\\s*${per}${c}${per}${c}${per}\\\\s*(?:,\\\\s*${num_per}\\\\s*)?\\\\)$`\n);\n\nconst parseRgbLegacy = color => {\n\tlet res = { mode: 'rgb' };\n\tlet match;\n\tif ((match = color.match(rgb_num_old))) {\n\t\tif (match[1] !== undefined) {\n\t\t\tres.r = match[1] / 255;\n\t\t}\n\t\tif (match[2] !== undefined) {\n\t\t\tres.g = match[2] / 255;\n\t\t}\n\t\tif (match[3] !== undefined) {\n\t\t\tres.b = match[3] / 255;\n\t\t}\n\t} else if ((match = color.match(rgb_per_old))) {\n\t\tif (match[1] !== undefined) {\n\t\t\tres.r = match[1] / 100;\n\t\t}\n\t\tif (match[2] !== undefined) {\n\t\t\tres.g = match[2] / 100;\n\t\t}\n\t\tif (match[3] !== undefined) {\n\t\t\tres.b = match[3] / 100;\n\t\t}\n\t} else {\n\t\treturn undefined;\n\t}\n\n\tif (match[4] !== undefined) {\n\t\tres.alpha = Math.max(0, Math.min(1, match[4] / 100));\n\t} else if (match[5] !== undefined) {\n\t\tres.alpha = Math.max(0, Math.min(1, +match[5]));\n\t}\n\n\treturn res;\n};\n\nexport default parseRgbLegacy;\n",
123
+ "import parse from './parse.js';\n\nconst prepare = (color, mode) =>\n\tcolor === undefined\n\t\t? undefined\n\t\t: typeof color !== 'object'\n\t\t? parse(color)\n\t\t: color.mode !== undefined\n\t\t? color\n\t\t: mode\n\t\t? { ...color, mode }\n\t\t: undefined;\n\nexport default prepare;\n",
124
+ "import { converters } from './modes.js';\nimport prepare from './_prepare.js';\n\nconst converter =\n\t(target_mode = 'rgb') =>\n\tcolor =>\n\t\t(color = prepare(color, target_mode)) !== undefined\n\t\t\t? // if the color's mode corresponds to our target mode\n\t\t\t color.mode === target_mode\n\t\t\t\t? // then just return the color\n\t\t\t\t color\n\t\t\t\t: // otherwise check to see if we have a dedicated\n\t\t\t\t// converter for the target mode\n\t\t\t\tconverters[color.mode][target_mode]\n\t\t\t\t? // and return its result...\n\t\t\t\t converters[color.mode][target_mode](color)\n\t\t\t\t: // ...otherwise pass through RGB as an intermediary step.\n\t\t\t\t// if the target mode is RGB...\n\t\t\t\ttarget_mode === 'rgb'\n\t\t\t\t? // just return the RGB\n\t\t\t\t converters[color.mode].rgb(color)\n\t\t\t\t: // otherwise convert color.mode -> RGB -> target_mode\n\t\t\t\t converters.rgb[target_mode](converters[color.mode].rgb(color))\n\t\t\t: undefined;\n\nexport default converter;\n",
125
+ "import converter from './converter.js';\n\nconst converters = {};\nconst modes = {};\n\nconst parsers = [];\nconst colorProfiles = {};\n\nconst identity = v => v;\n\nconst useMode = definition => {\n\tconverters[definition.mode] = {\n\t\t...converters[definition.mode],\n\t\t...definition.toMode\n\t};\n\n\tObject.keys(definition.fromMode || {}).forEach(k => {\n\t\tif (!converters[k]) {\n\t\t\tconverters[k] = {};\n\t\t}\n\t\tconverters[k][definition.mode] = definition.fromMode[k];\n\t});\n\n\t// Color space channel ranges\n\tif (!definition.ranges) {\n\t\tdefinition.ranges = {};\n\t}\n\n\tif (!definition.difference) {\n\t\tdefinition.difference = {};\n\t}\n\n\tdefinition.channels.forEach(channel => {\n\t\t// undefined channel ranges default to the [0, 1] interval\n\t\tif (definition.ranges[channel] === undefined) {\n\t\t\tdefinition.ranges[channel] = [0, 1];\n\t\t}\n\n\t\tif (!definition.interpolate[channel]) {\n\t\t\tthrow new Error(`Missing interpolator for: ${channel}`);\n\t\t}\n\n\t\tif (typeof definition.interpolate[channel] === 'function') {\n\t\t\tdefinition.interpolate[channel] = {\n\t\t\t\tuse: definition.interpolate[channel]\n\t\t\t};\n\t\t}\n\n\t\tif (!definition.interpolate[channel].fixup) {\n\t\t\tdefinition.interpolate[channel].fixup = identity;\n\t\t}\n\t});\n\n\tmodes[definition.mode] = definition;\n\t(definition.parse || []).forEach(parser => {\n\t\tuseParser(parser, definition.mode);\n\t});\n\n\treturn converter(definition.mode);\n};\n\nconst getMode = mode => modes[mode];\n\nconst useParser = (parser, mode) => {\n\tif (typeof parser === 'string') {\n\t\tif (!mode) {\n\t\t\tthrow new Error(`'mode' required when 'parser' is a string`);\n\t\t}\n\t\tcolorProfiles[parser] = mode;\n\t} else if (typeof parser === 'function') {\n\t\tif (parsers.indexOf(parser) < 0) {\n\t\t\tparsers.push(parser);\n\t\t}\n\t}\n};\n\nconst removeParser = parser => {\n\tif (typeof parser === 'string') {\n\t\tdelete colorProfiles[parser];\n\t} else if (typeof parser === 'function') {\n\t\tconst idx = parsers.indexOf(parser);\n\t\tif (idx > 0) {\n\t\t\tparsers.splice(idx, 1);\n\t\t}\n\t}\n};\n\nexport {\n\tuseMode,\n\tgetMode,\n\tuseParser,\n\tremoveParser,\n\tconverters,\n\tparsers,\n\tcolorProfiles\n};\n",
126
+ "import { parsers, colorProfiles, getMode } from './modes.js';\n\n/* eslint-disable-next-line no-control-regex */\nconst IdentStartCodePoint = /[^\\x00-\\x7F]|[a-zA-Z_]/;\n\n/* eslint-disable-next-line no-control-regex */\nconst IdentCodePoint = /[^\\x00-\\x7F]|[-\\w]/;\n\nexport const Tok = {\n\tFunction: 'function',\n\tIdent: 'ident',\n\tNumber: 'number',\n\tPercentage: 'percentage',\n\tParenClose: ')',\n\tNone: 'none',\n\tHue: 'hue',\n\tAlpha: 'alpha'\n};\n\nlet _i = 0;\n\n/*\n\t4.3.10. Check if three code points would start a number\n\thttps://drafts.csswg.org/css-syntax/#starts-with-a-number\n */\nfunction is_num(chars) {\n\tlet ch = chars[_i];\n\tlet ch1 = chars[_i + 1];\n\tif (ch === '-' || ch === '+') {\n\t\treturn /\\d/.test(ch1) || (ch1 === '.' && /\\d/.test(chars[_i + 2]));\n\t}\n\tif (ch === '.') {\n\t\treturn /\\d/.test(ch1);\n\t}\n\treturn /\\d/.test(ch);\n}\n\n/*\n\tCheck if the stream starts with an identifier.\n */\n\nfunction is_ident(chars) {\n\tif (_i >= chars.length) {\n\t\treturn false;\n\t}\n\tlet ch = chars[_i];\n\tif (IdentStartCodePoint.test(ch)) {\n\t\treturn true;\n\t}\n\tif (ch === '-') {\n\t\tif (chars.length - _i < 2) {\n\t\t\treturn false;\n\t\t}\n\t\tlet ch1 = chars[_i + 1];\n\t\tif (ch1 === '-' || IdentStartCodePoint.test(ch1)) {\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\treturn false;\n}\n\n/*\n\t4.3.3. Consume a numeric token\n\thttps://drafts.csswg.org/css-syntax/#consume-numeric-token\n */\n\nconst huenits = {\n\tdeg: 1,\n\trad: 180 / Math.PI,\n\tgrad: 9 / 10,\n\tturn: 360\n};\n\nfunction num(chars) {\n\tlet value = '';\n\tif (chars[_i] === '-' || chars[_i] === '+') {\n\t\tvalue += chars[_i++];\n\t}\n\tvalue += digits(chars);\n\tif (chars[_i] === '.' && /\\d/.test(chars[_i + 1])) {\n\t\tvalue += chars[_i++] + digits(chars);\n\t}\n\tif (chars[_i] === 'e' || chars[_i] === 'E') {\n\t\tif (\n\t\t\t(chars[_i + 1] === '-' || chars[_i + 1] === '+') &&\n\t\t\t/\\d/.test(chars[_i + 2])\n\t\t) {\n\t\t\tvalue += chars[_i++] + chars[_i++] + digits(chars);\n\t\t} else if (/\\d/.test(chars[_i + 1])) {\n\t\t\tvalue += chars[_i++] + digits(chars);\n\t\t}\n\t}\n\tif (is_ident(chars)) {\n\t\tlet id = ident(chars);\n\t\tif (id === 'deg' || id === 'rad' || id === 'turn' || id === 'grad') {\n\t\t\treturn { type: Tok.Hue, value: value * huenits[id] };\n\t\t}\n\t\treturn undefined;\n\t}\n\tif (chars[_i] === '%') {\n\t\t_i++;\n\t\treturn { type: Tok.Percentage, value: +value };\n\t}\n\treturn { type: Tok.Number, value: +value };\n}\n\n/*\n\tConsume digits.\n */\nfunction digits(chars) {\n\tlet v = '';\n\twhile (/\\d/.test(chars[_i])) {\n\t\tv += chars[_i++];\n\t}\n\treturn v;\n}\n\n/*\n\tConsume an identifier.\n */\nfunction ident(chars) {\n\tlet v = '';\n\twhile (_i < chars.length && IdentCodePoint.test(chars[_i])) {\n\t\tv += chars[_i++];\n\t}\n\treturn v;\n}\n\n/*\n\tConsume an ident-like token.\n */\nfunction identlike(chars) {\n\tlet v = ident(chars);\n\tif (chars[_i] === '(') {\n\t\t_i++;\n\t\treturn { type: Tok.Function, value: v };\n\t}\n\tif (v === 'none') {\n\t\treturn { type: Tok.None, value: undefined };\n\t}\n\treturn { type: Tok.Ident, value: v };\n}\n\nexport function tokenize(str = '') {\n\tlet chars = str.trim();\n\tlet tokens = [];\n\tlet ch;\n\n\t/* reset counter */\n\t_i = 0;\n\n\twhile (_i < chars.length) {\n\t\tch = chars[_i++];\n\n\t\t/*\n\t\t\tConsume whitespace without emitting it\n\t\t */\n\t\tif (ch === '\\n' || ch === '\\t' || ch === ' ') {\n\t\t\twhile (\n\t\t\t\t_i < chars.length &&\n\t\t\t\t(chars[_i] === '\\n' || chars[_i] === '\\t' || chars[_i] === ' ')\n\t\t\t) {\n\t\t\t\t_i++;\n\t\t\t}\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (ch === ',') {\n\t\t\treturn undefined;\n\t\t}\n\n\t\tif (ch === ')') {\n\t\t\ttokens.push({ type: Tok.ParenClose });\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (ch === '+') {\n\t\t\t_i--;\n\t\t\tif (is_num(chars)) {\n\t\t\t\ttokens.push(num(chars));\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\treturn undefined;\n\t\t}\n\n\t\tif (ch === '-') {\n\t\t\t_i--;\n\t\t\tif (is_num(chars)) {\n\t\t\t\ttokens.push(num(chars));\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (is_ident(chars)) {\n\t\t\t\ttokens.push({ type: Tok.Ident, value: ident(chars) });\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\treturn undefined;\n\t\t}\n\n\t\tif (ch === '.') {\n\t\t\t_i--;\n\t\t\tif (is_num(chars)) {\n\t\t\t\ttokens.push(num(chars));\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\treturn undefined;\n\t\t}\n\n\t\tif (ch === '/') {\n\t\t\twhile (\n\t\t\t\t_i < chars.length &&\n\t\t\t\t(chars[_i] === '\\n' || chars[_i] === '\\t' || chars[_i] === ' ')\n\t\t\t) {\n\t\t\t\t_i++;\n\t\t\t}\n\t\t\tlet alpha;\n\t\t\tif (is_num(chars)) {\n\t\t\t\talpha = num(chars);\n\t\t\t\tif (alpha.type !== Tok.Hue) {\n\t\t\t\t\ttokens.push({ type: Tok.Alpha, value: alpha });\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (is_ident(chars)) {\n\t\t\t\tif (ident(chars) === 'none') {\n\t\t\t\t\ttokens.push({\n\t\t\t\t\t\ttype: Tok.Alpha,\n\t\t\t\t\t\tvalue: { type: Tok.None, value: undefined }\n\t\t\t\t\t});\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn undefined;\n\t\t}\n\n\t\tif (/\\d/.test(ch)) {\n\t\t\t_i--;\n\t\t\ttokens.push(num(chars));\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (IdentStartCodePoint.test(ch)) {\n\t\t\t_i--;\n\t\t\ttokens.push(identlike(chars));\n\t\t\tcontinue;\n\t\t}\n\n\t\t/*\n\t\t\tTreat everything not already handled as an error.\n\t\t */\n\t\treturn undefined;\n\t}\n\n\treturn tokens;\n}\n\nexport function parseColorSyntax(tokens) {\n\ttokens._i = 0;\n\tlet token = tokens[tokens._i++];\n\tif (!token || token.type !== Tok.Function || token.value !== 'color') {\n\t\treturn undefined;\n\t}\n\ttoken = tokens[tokens._i++];\n\tif (token.type !== Tok.Ident) {\n\t\treturn undefined;\n\t}\n\tconst mode = colorProfiles[token.value];\n\tif (!mode) {\n\t\treturn undefined;\n\t}\n\tconst res = { mode };\n\tconst coords = consumeCoords(tokens, false);\n\tif (!coords) {\n\t\treturn undefined;\n\t}\n\tconst channels = getMode(mode).channels;\n\tfor (let ii = 0, c, ch; ii < channels.length; ii++) {\n\t\tc = coords[ii];\n\t\tch = channels[ii];\n\t\tif (c.type !== Tok.None) {\n\t\t\tres[ch] = c.type === Tok.Number ? c.value : c.value / 100;\n\t\t\tif (ch === 'alpha') {\n\t\t\t\tres[ch] = Math.max(0, Math.min(1, res[ch]));\n\t\t\t}\n\t\t}\n\t}\n\treturn res;\n}\n\nfunction consumeCoords(tokens, includeHue) {\n\tconst coords = [];\n\tlet token;\n\twhile (tokens._i < tokens.length) {\n\t\ttoken = tokens[tokens._i++];\n\t\tif (\n\t\t\ttoken.type === Tok.None ||\n\t\t\ttoken.type === Tok.Number ||\n\t\t\ttoken.type === Tok.Alpha ||\n\t\t\ttoken.type === Tok.Percentage ||\n\t\t\t(includeHue && token.type === Tok.Hue)\n\t\t) {\n\t\t\tcoords.push(token);\n\t\t\tcontinue;\n\t\t}\n\t\tif (token.type === Tok.ParenClose) {\n\t\t\tif (tokens._i < tokens.length) {\n\t\t\t\treturn undefined;\n\t\t\t}\n\t\t\tcontinue;\n\t\t}\n\t\treturn undefined;\n\t}\n\n\tif (coords.length < 3 || coords.length > 4) {\n\t\treturn undefined;\n\t}\n\n\tif (coords.length === 4) {\n\t\tif (coords[3].type !== Tok.Alpha) {\n\t\t\treturn undefined;\n\t\t}\n\t\tcoords[3] = coords[3].value;\n\t}\n\tif (coords.length === 3) {\n\t\tcoords.push({ type: Tok.None, value: undefined });\n\t}\n\n\treturn coords.every(c => c.type !== Tok.Alpha) ? coords : undefined;\n}\n\nexport function parseModernSyntax(tokens, includeHue) {\n\ttokens._i = 0;\n\tlet token = tokens[tokens._i++];\n\tif (!token || token.type !== Tok.Function) {\n\t\treturn undefined;\n\t}\n\tlet coords = consumeCoords(tokens, includeHue);\n\tif (!coords) {\n\t\treturn undefined;\n\t}\n\tcoords.unshift(token.value);\n\treturn coords;\n}\n\nconst parse = color => {\n\tif (typeof color !== 'string') {\n\t\treturn undefined;\n\t}\n\tconst tokens = tokenize(color);\n\tconst parsed = tokens ? parseModernSyntax(tokens, true) : undefined;\n\tlet result = undefined;\n\tlet i = 0;\n\tlet len = parsers.length;\n\twhile (i < len) {\n\t\tif ((result = parsers[i++](color, parsed)) !== undefined) {\n\t\t\treturn result;\n\t\t}\n\t}\n\treturn tokens ? parseColorSyntax(tokens) : undefined;\n};\n\nexport default parse;\n",
127
+ "import { Tok } from '../parse.js';\n\nfunction parseRgb(color, parsed) {\n\tif (!parsed || (parsed[0] !== 'rgb' && parsed[0] !== 'rgba')) {\n\t\treturn undefined;\n\t}\n\tconst res = { mode: 'rgb' };\n\tconst [, r, g, b, alpha] = parsed;\n\tif (r.type === Tok.Hue || g.type === Tok.Hue || b.type === Tok.Hue) {\n\t\treturn undefined;\n\t}\n\tif (r.type !== Tok.None) {\n\t\tres.r = r.type === Tok.Number ? r.value / 255 : r.value / 100;\n\t}\n\tif (g.type !== Tok.None) {\n\t\tres.g = g.type === Tok.Number ? g.value / 255 : g.value / 100;\n\t}\n\tif (b.type !== Tok.None) {\n\t\tres.b = b.type === Tok.Number ? b.value / 255 : b.value / 100;\n\t}\n\tif (alpha.type !== Tok.None) {\n\t\tres.alpha = Math.min(\n\t\t\t1,\n\t\t\tMath.max(\n\t\t\t\t0,\n\t\t\t\talpha.type === Tok.Number ? alpha.value : alpha.value / 100\n\t\t\t)\n\t\t);\n\t}\n\n\treturn res;\n}\n\nexport default parseRgb;\n",
128
+ "const parseTransparent = c =>\n\tc === 'transparent'\n\t\t? { mode: 'rgb', r: 0, g: 0, b: 0, alpha: 0 }\n\t\t: undefined;\n\nexport default parseTransparent;\n",
129
+ "const lerp = (a, b, t) => a + t * (b - a);\nconst unlerp = (a, b, v) => (v - a) / (b - a);\n\nconst blerp = (a00, a01, a10, a11, tx, ty) => {\n\treturn lerp(lerp(a00, a01, tx), lerp(a10, a11, tx), ty);\n};\n\nconst trilerp = (\n\ta000,\n\ta010,\n\ta100,\n\ta110,\n\ta001,\n\ta011,\n\ta101,\n\ta111,\n\ttx,\n\tty,\n\ttz\n) => {\n\treturn lerp(\n\t\tblerp(a000, a010, a100, a110, tx, ty),\n\t\tblerp(a001, a011, a101, a111, tx, ty),\n\t\ttz\n\t);\n};\n\nexport { lerp, blerp, trilerp, unlerp };\n",
130
+ "const get_classes = arr => {\n\tlet classes = [];\n\tfor (let i = 0; i < arr.length - 1; i++) {\n\t\tlet a = arr[i];\n\t\tlet b = arr[i + 1];\n\t\tif (a === undefined && b === undefined) {\n\t\t\tclasses.push(undefined);\n\t\t} else if (a !== undefined && b !== undefined) {\n\t\t\tclasses.push([a, b]);\n\t\t} else {\n\t\t\tclasses.push(a !== undefined ? [a, a] : [b, b]);\n\t\t}\n\t}\n\treturn classes;\n};\n\nconst interpolatorPiecewise = interpolator => arr => {\n\tlet classes = get_classes(arr);\n\treturn t => {\n\t\tlet cls = t * classes.length;\n\t\tlet idx = t >= 1 ? classes.length - 1 : Math.max(Math.floor(cls), 0);\n\t\tlet pair = classes[idx];\n\t\treturn pair === undefined\n\t\t\t? undefined\n\t\t\t: interpolator(pair[0], pair[1], cls - idx);\n\t};\n};\n\nexport { interpolatorPiecewise };\n",
131
+ "import { lerp } from './lerp.js';\nimport { interpolatorPiecewise } from './piecewise.js';\n\nexport const interpolatorLinear = interpolatorPiecewise(lerp);\n",
132
+ "const fixupAlpha = arr => {\n\tlet some_defined = false;\n\tlet res = arr.map(v => {\n\t\tif (v !== undefined) {\n\t\t\tsome_defined = true;\n\t\t\treturn v;\n\t\t}\n\t\treturn 1;\n\t});\n\treturn some_defined ? res : arr;\n};\n\nexport { fixupAlpha };\n",
133
+ "import parseNamed from './parseNamed.js';\nimport parseHex from './parseHex.js';\nimport parseRgbLegacy from './parseRgbLegacy.js';\nimport parseRgb from './parseRgb.js';\nimport parseTransparent from './parseTransparent.js';\nimport { interpolatorLinear } from '../interpolate/linear.js';\nimport { fixupAlpha } from '../fixup/alpha.js';\n\n/*\n\tsRGB color space\n */\n\nconst definition = {\n\tmode: 'rgb',\n\tchannels: ['r', 'g', 'b', 'alpha'],\n\tparse: [\n\t\tparseRgb,\n\t\tparseHex,\n\t\tparseRgbLegacy,\n\t\tparseNamed,\n\t\tparseTransparent,\n\t\t'srgb'\n\t],\n\tserialize: 'srgb',\n\tinterpolate: {\n\t\tr: interpolatorLinear,\n\t\tg: interpolatorLinear,\n\t\tb: interpolatorLinear,\n\t\talpha: { use: interpolatorLinear, fixup: fixupAlpha }\n\t},\n\tgamut: true,\n\twhite: { r: 1, g: 1, b: 1 },\n\tblack: { r: 0, g: 0, b: 0 }\n};\n\nexport default definition;\n",
134
+ "/*\n\tConvert A98 RGB values to CIE XYZ D65\n\n\tReferences:\n\t\t* https://drafts.csswg.org/css-color/#color-conversion-code\n\t\t* http://www.brucelindbloom.com/index.html?Eqn_RGB_XYZ_Matrix.html\n\t\t* https://www.adobe.com/digitalimag/pdfs/AdobeRGB1998.pdf\n*/\n\nconst linearize = (v = 0) => Math.pow(Math.abs(v), 563 / 256) * Math.sign(v);\n\nconst convertA98ToXyz65 = a98 => {\n\tlet r = linearize(a98.r);\n\tlet g = linearize(a98.g);\n\tlet b = linearize(a98.b);\n\tlet res = {\n\t\tmode: 'xyz65',\n\t\tx:\n\t\t\t0.5766690429101305 * r +\n\t\t\t0.1855582379065463 * g +\n\t\t\t0.1882286462349947 * b,\n\t\ty:\n\t\t\t0.297344975250536 * r +\n\t\t\t0.6273635662554661 * g +\n\t\t\t0.0752914584939979 * b,\n\t\tz:\n\t\t\t0.0270313613864123 * r +\n\t\t\t0.0706888525358272 * g +\n\t\t\t0.9913375368376386 * b\n\t};\n\tif (a98.alpha !== undefined) {\n\t\tres.alpha = a98.alpha;\n\t}\n\treturn res;\n};\n\nexport default convertA98ToXyz65;\n",
135
+ "/*\n\tConvert CIE XYZ D65 values to A98 RGB\n\n\tReferences:\n\t\t* https://drafts.csswg.org/css-color/#color-conversion-code\n\t\t* http://www.brucelindbloom.com/index.html?Eqn_RGB_XYZ_Matrix.html\n*/\n\nconst gamma = v => Math.pow(Math.abs(v), 256 / 563) * Math.sign(v);\n\nconst convertXyz65ToA98 = ({ x, y, z, alpha }) => {\n\tif (x === undefined) x = 0;\n\tif (y === undefined) y = 0;\n\tif (z === undefined) z = 0;\n\tlet res = {\n\t\tmode: 'a98',\n\t\tr: gamma(\n\t\t\tx * 2.0415879038107465 -\n\t\t\t\ty * 0.5650069742788597 -\n\t\t\t\t0.3447313507783297 * z\n\t\t),\n\t\tg: gamma(\n\t\t\tx * -0.9692436362808798 +\n\t\t\t\ty * 1.8759675015077206 +\n\t\t\t\t0.0415550574071756 * z\n\t\t),\n\t\tb: gamma(\n\t\t\tx * 0.0134442806320312 -\n\t\t\t\ty * 0.1183623922310184 +\n\t\t\t\t1.0151749943912058 * z\n\t\t)\n\t};\n\tif (alpha !== undefined) {\n\t\tres.alpha = alpha;\n\t}\n\treturn res;\n};\n\nexport default convertXyz65ToA98;\n",
136
+ "const fn = (c = 0) => {\n\tconst abs = Math.abs(c);\n\tif (abs <= 0.04045) {\n\t\treturn c / 12.92;\n\t}\n\treturn (Math.sign(c) || 1) * Math.pow((abs + 0.055) / 1.055, 2.4);\n};\n\nconst convertRgbToLrgb = ({ r, g, b, alpha }) => {\n\tlet res = {\n\t\tmode: 'lrgb',\n\t\tr: fn(r),\n\t\tg: fn(g),\n\t\tb: fn(b)\n\t};\n\tif (alpha !== undefined) res.alpha = alpha;\n\treturn res;\n};\n\nexport default convertRgbToLrgb;\n",
137
+ "/*\n\tConvert sRGB values to CIE XYZ D65\n\n\tReferences:\n\t\t* https://drafts.csswg.org/css-color/#color-conversion-code\n\t\t* http://www.brucelindbloom.com/index.html?Eqn_RGB_XYZ_Matrix.html\n\t\t* https://observablehq.com/@danburzo/color-matrix-calculator\n*/\n\nimport convertRgbToLrgb from '../lrgb/convertRgbToLrgb.js';\n\nconst convertRgbToXyz65 = rgb => {\n\tlet { r, g, b, alpha } = convertRgbToLrgb(rgb);\n\tlet res = {\n\t\tmode: 'xyz65',\n\t\tx:\n\t\t\t0.4123907992659593 * r +\n\t\t\t0.357584339383878 * g +\n\t\t\t0.1804807884018343 * b,\n\t\ty:\n\t\t\t0.2126390058715102 * r +\n\t\t\t0.715168678767756 * g +\n\t\t\t0.0721923153607337 * b,\n\t\tz:\n\t\t\t0.0193308187155918 * r +\n\t\t\t0.119194779794626 * g +\n\t\t\t0.9505321522496607 * b\n\t};\n\tif (alpha !== undefined) {\n\t\tres.alpha = alpha;\n\t}\n\treturn res;\n};\n\nexport default convertRgbToXyz65;\n",
138
+ "const fn = (c = 0) => {\n\tconst abs = Math.abs(c);\n\tif (abs > 0.0031308) {\n\t\treturn (Math.sign(c) || 1) * (1.055 * Math.pow(abs, 1 / 2.4) - 0.055);\n\t}\n\treturn c * 12.92;\n};\n\nconst convertLrgbToRgb = ({ r, g, b, alpha }, mode = 'rgb') => {\n\tlet res = {\n\t\tmode,\n\t\tr: fn(r),\n\t\tg: fn(g),\n\t\tb: fn(b)\n\t};\n\tif (alpha !== undefined) res.alpha = alpha;\n\treturn res;\n};\n\nexport default convertLrgbToRgb;\n",
139
+ "/*\n\tCIE XYZ D65 values to sRGB.\n\n\tReferences:\n\t\t* https://drafts.csswg.org/css-color/#color-conversion-code\n\t\t* http://www.brucelindbloom.com/index.html?Eqn_RGB_XYZ_Matrix.html\n\t\t* https://observablehq.com/@danburzo/color-matrix-calculator\n*/\n\nimport convertLrgbToRgb from '../lrgb/convertLrgbToRgb.js';\n\nconst convertXyz65ToRgb = ({ x, y, z, alpha }) => {\n\tif (x === undefined) x = 0;\n\tif (y === undefined) y = 0;\n\tif (z === undefined) z = 0;\n\tlet res = convertLrgbToRgb({\n\t\tr:\n\t\t\tx * 3.2409699419045226 -\n\t\t\ty * 1.5373831775700939 -\n\t\t\t0.4986107602930034 * z,\n\t\tg:\n\t\t\tx * -0.9692436362808796 +\n\t\t\ty * 1.8759675015077204 +\n\t\t\t0.0415550574071756 * z,\n\t\tb:\n\t\t\tx * 0.0556300796969936 -\n\t\t\ty * 0.2039769588889765 +\n\t\t\t1.0569715142428784 * z\n\t});\n\tif (alpha !== undefined) {\n\t\tres.alpha = alpha;\n\t}\n\treturn res;\n};\n\nexport default convertXyz65ToRgb;\n",
140
+ "import rgb from '../rgb/definition.js';\n\nimport convertA98ToXyz65 from './convertA98ToXyz65.js';\nimport convertXyz65ToA98 from './convertXyz65ToA98.js';\nimport convertRgbToXyz65 from '../xyz65/convertRgbToXyz65.js';\nimport convertXyz65ToRgb from '../xyz65/convertXyz65ToRgb.js';\n\nconst definition = {\n\t...rgb,\n\tmode: 'a98',\n\tparse: ['a98-rgb'],\n\tserialize: 'a98-rgb',\n\n\tfromMode: {\n\t\trgb: color => convertXyz65ToA98(convertRgbToXyz65(color)),\n\t\txyz65: convertXyz65ToA98\n\t},\n\n\ttoMode: {\n\t\trgb: color => convertXyz65ToRgb(convertA98ToXyz65(color)),\n\t\txyz65: convertA98ToXyz65\n\t}\n};\n\nexport default definition;\n",
141
+ "const normalizeHue = hue => ((hue = hue % 360) < 0 ? hue + 360 : hue);\n\nexport default normalizeHue;\n",
142
+ "import normalizeHue from '../util/normalizeHue.js';\n\nconst hue = (hues, fn) => {\n\treturn hues\n\t\t.map((hue, idx, arr) => {\n\t\t\tif (hue === undefined) {\n\t\t\t\treturn hue;\n\t\t\t}\n\t\t\tlet normalized = normalizeHue(hue);\n\t\t\tif (idx === 0 || hues[idx - 1] === undefined) {\n\t\t\t\treturn normalized;\n\t\t\t}\n\t\t\treturn fn(normalized - normalizeHue(arr[idx - 1]));\n\t\t})\n\t\t.reduce((acc, curr) => {\n\t\t\tif (\n\t\t\t\t!acc.length ||\n\t\t\t\tcurr === undefined ||\n\t\t\t\tacc[acc.length - 1] === undefined\n\t\t\t) {\n\t\t\t\tacc.push(curr);\n\t\t\t\treturn acc;\n\t\t\t}\n\t\t\tacc.push(curr + acc[acc.length - 1]);\n\t\t\treturn acc;\n\t\t}, []);\n};\n\nconst fixupHueShorter = arr =>\n\thue(arr, d => (Math.abs(d) <= 180 ? d : d - 360 * Math.sign(d)));\nconst fixupHueLonger = arr =>\n\thue(arr, d => (Math.abs(d) >= 180 || d === 0 ? d : d - 360 * Math.sign(d)));\nconst fixupHueIncreasing = arr => hue(arr, d => (d >= 0 ? d : d + 360));\nconst fixupHueDecreasing = arr => hue(arr, d => (d <= 0 ? d : d - 360));\n\nexport {\n\tfixupHueShorter,\n\tfixupHueLonger,\n\tfixupHueIncreasing,\n\tfixupHueDecreasing\n};\n",
143
+ "export const M = [-0.14861, 1.78277, -0.29227, -0.90649, 1.97294, 0];\n\nexport const degToRad = Math.PI / 180;\nexport const radToDeg = 180 / Math.PI;\n",
144
+ "/*\n\tConvert a RGB color to the Cubehelix HSL color space.\n\n\tThis computation is not present in Green's paper:\n\thttps://arxiv.org/pdf/1108.5083.pdf\n\n\t...but can be derived from the inverse, HSL to RGB conversion.\n\n\tIt matches the math in Mike Bostock's D3 implementation:\n\n\thttps://github.com/d3/d3-color/blob/master/src/cubehelix.js\n */\n\nimport { radToDeg, M } from './constants.js';\n\nlet DE = M[3] * M[4];\nlet BE = M[1] * M[4];\nlet BCAD = M[1] * M[2] - M[0] * M[3];\n\nconst convertRgbToCubehelix = ({ r, g, b, alpha }) => {\n\tif (r === undefined) r = 0;\n\tif (g === undefined) g = 0;\n\tif (b === undefined) b = 0;\n\tlet l = (BCAD * b + r * DE - g * BE) / (BCAD + DE - BE);\n\tlet x = b - l;\n\tlet y = (M[4] * (g - l) - M[2] * x) / M[3];\n\n\tlet res = {\n\t\tmode: 'cubehelix',\n\t\tl: l,\n\t\ts:\n\t\t\tl === 0 || l === 1\n\t\t\t\t? undefined\n\t\t\t\t: Math.sqrt(x * x + y * y) / (M[4] * l * (1 - l))\n\t};\n\n\tif (res.s) res.h = Math.atan2(y, x) * radToDeg - 120;\n\tif (alpha !== undefined) res.alpha = alpha;\n\n\treturn res;\n};\n\nexport default convertRgbToCubehelix;\n",
145
+ "import { degToRad, M } from './constants.js';\n\nconst convertCubehelixToRgb = ({ h, s, l, alpha }) => {\n\tlet res = { mode: 'rgb' };\n\n\th = (h === undefined ? 0 : h + 120) * degToRad;\n\tif (l === undefined) l = 0;\n\n\tlet amp = s === undefined ? 0 : s * l * (1 - l);\n\n\tlet cosh = Math.cos(h);\n\tlet sinh = Math.sin(h);\n\n\tres.r = l + amp * (M[0] * cosh + M[1] * sinh);\n\tres.g = l + amp * (M[2] * cosh + M[3] * sinh);\n\tres.b = l + amp * (M[4] * cosh + M[5] * sinh);\n\n\tif (alpha !== undefined) res.alpha = alpha;\n\treturn res;\n};\n\nexport default convertCubehelixToRgb;\n",
146
+ "import { getMode } from './modes.js';\nimport converter from './converter.js';\nimport normalizeHue from './util/normalizeHue.js';\n\nconst differenceHueSaturation = (std, smp) => {\n\tif (std.h === undefined || smp.h === undefined || !std.s || !smp.s) {\n\t\treturn 0;\n\t}\n\tlet std_h = normalizeHue(std.h);\n\tlet smp_h = normalizeHue(smp.h);\n\tlet dH = Math.sin((((smp_h - std_h + 360) / 2) * Math.PI) / 180);\n\treturn 2 * Math.sqrt(std.s * smp.s) * dH;\n};\n\nconst differenceHueNaive = (std, smp) => {\n\tif (std.h === undefined || smp.h === undefined) {\n\t\treturn 0;\n\t}\n\tlet std_h = normalizeHue(std.h);\n\tlet smp_h = normalizeHue(smp.h);\n\tif (Math.abs(smp_h - std_h) > 180) {\n\t\t// todo should this be normalized once again?\n\t\treturn std_h - (smp_h - 360 * Math.sign(smp_h - std_h));\n\t}\n\treturn smp_h - std_h;\n};\n\nconst differenceHueChroma = (std, smp) => {\n\tif (std.h === undefined || smp.h === undefined || !std.c || !smp.c) {\n\t\treturn 0;\n\t}\n\tlet std_h = normalizeHue(std.h);\n\tlet smp_h = normalizeHue(smp.h);\n\tlet dH = Math.sin((((smp_h - std_h + 360) / 2) * Math.PI) / 180);\n\treturn 2 * Math.sqrt(std.c * smp.c) * dH;\n};\n\nconst differenceEuclidean = (mode = 'rgb', weights = [1, 1, 1, 0]) => {\n\tlet def = getMode(mode);\n\tlet channels = def.channels;\n\tlet diffs = def.difference;\n\tlet conv = converter(mode);\n\treturn (std, smp) => {\n\t\tlet ConvStd = conv(std);\n\t\tlet ConvSmp = conv(smp);\n\t\treturn Math.sqrt(\n\t\t\tchannels.reduce((sum, k, idx) => {\n\t\t\t\tlet delta = diffs[k]\n\t\t\t\t\t? diffs[k](ConvStd, ConvSmp)\n\t\t\t\t\t: ConvStd[k] - ConvSmp[k];\n\t\t\t\treturn (\n\t\t\t\t\tsum +\n\t\t\t\t\t(weights[idx] || 0) * Math.pow(isNaN(delta) ? 0 : delta, 2)\n\t\t\t\t);\n\t\t\t}, 0)\n\t\t);\n\t};\n};\n\nconst differenceCie76 = () => differenceEuclidean('lab65');\n\nconst differenceCie94 = (kL = 1, K1 = 0.045, K2 = 0.015) => {\n\tlet lab = converter('lab65');\n\n\treturn (std, smp) => {\n\t\tlet LabStd = lab(std);\n\t\tlet LabSmp = lab(smp);\n\n\t\t// Extract Lab values, and compute Chroma\n\t\tlet lStd = LabStd.l;\n\t\tlet aStd = LabStd.a;\n\t\tlet bStd = LabStd.b;\n\t\tlet cStd = Math.sqrt(aStd * aStd + bStd * bStd);\n\n\t\tlet lSmp = LabSmp.l;\n\t\tlet aSmp = LabSmp.a;\n\t\tlet bSmp = LabSmp.b;\n\t\tlet cSmp = Math.sqrt(aSmp * aSmp + bSmp * bSmp);\n\n\t\tlet dL2 = Math.pow(lStd - lSmp, 2);\n\t\tlet dC2 = Math.pow(cStd - cSmp, 2);\n\t\tlet dH2 = Math.pow(aStd - aSmp, 2) + Math.pow(bStd - bSmp, 2) - dC2;\n\n\t\treturn Math.sqrt(\n\t\t\tdL2 / Math.pow(kL, 2) +\n\t\t\t\tdC2 / Math.pow(1 + K1 * cStd, 2) +\n\t\t\t\tdH2 / Math.pow(1 + K2 * cStd, 2)\n\t\t);\n\t};\n};\n\n/*\n\tCIEDE2000 color difference, original Matlab implementation by Gaurav Sharma\n\tBased on \"The CIEDE2000 Color-Difference Formula: Implementation Notes, Supplementary Test Data, and Mathematical Observations\" \n\tby Gaurav Sharma, Wencheng Wu, Edul N. Dalal in Color Research and Application, vol. 30. No. 1, pp. 21-30, February 2005.\n\thttp://www2.ece.rochester.edu/~gsharma/ciede2000/\n */\n\nconst differenceCiede2000 = (Kl = 1, Kc = 1, Kh = 1) => {\n\tlet lab = converter('lab65');\n\treturn (std, smp) => {\n\t\tlet LabStd = lab(std);\n\t\tlet LabSmp = lab(smp);\n\n\t\tlet lStd = LabStd.l;\n\t\tlet aStd = LabStd.a;\n\t\tlet bStd = LabStd.b;\n\t\tlet cStd = Math.sqrt(aStd * aStd + bStd * bStd);\n\n\t\tlet lSmp = LabSmp.l;\n\t\tlet aSmp = LabSmp.a;\n\t\tlet bSmp = LabSmp.b;\n\t\tlet cSmp = Math.sqrt(aSmp * aSmp + bSmp * bSmp);\n\n\t\tlet cAvg = (cStd + cSmp) / 2;\n\n\t\tlet G =\n\t\t\t0.5 *\n\t\t\t(1 -\n\t\t\t\tMath.sqrt(\n\t\t\t\t\tMath.pow(cAvg, 7) / (Math.pow(cAvg, 7) + Math.pow(25, 7))\n\t\t\t\t));\n\n\t\tlet apStd = aStd * (1 + G);\n\t\tlet apSmp = aSmp * (1 + G);\n\n\t\tlet cpStd = Math.sqrt(apStd * apStd + bStd * bStd);\n\t\tlet cpSmp = Math.sqrt(apSmp * apSmp + bSmp * bSmp);\n\n\t\tlet hpStd =\n\t\t\tMath.abs(apStd) + Math.abs(bStd) === 0\n\t\t\t\t? 0\n\t\t\t\t: Math.atan2(bStd, apStd);\n\t\thpStd += (hpStd < 0) * 2 * Math.PI;\n\n\t\tlet hpSmp =\n\t\t\tMath.abs(apSmp) + Math.abs(bSmp) === 0\n\t\t\t\t? 0\n\t\t\t\t: Math.atan2(bSmp, apSmp);\n\t\thpSmp += (hpSmp < 0) * 2 * Math.PI;\n\n\t\tlet dL = lSmp - lStd;\n\t\tlet dC = cpSmp - cpStd;\n\n\t\tlet dhp = cpStd * cpSmp === 0 ? 0 : hpSmp - hpStd;\n\t\tdhp -= (dhp > Math.PI) * 2 * Math.PI;\n\t\tdhp += (dhp < -Math.PI) * 2 * Math.PI;\n\n\t\tlet dH = 2 * Math.sqrt(cpStd * cpSmp) * Math.sin(dhp / 2);\n\n\t\tlet Lp = (lStd + lSmp) / 2;\n\t\tlet Cp = (cpStd + cpSmp) / 2;\n\n\t\tlet hp;\n\t\tif (cpStd * cpSmp === 0) {\n\t\t\thp = hpStd + hpSmp;\n\t\t} else {\n\t\t\thp = (hpStd + hpSmp) / 2;\n\t\t\thp -= (Math.abs(hpStd - hpSmp) > Math.PI) * Math.PI;\n\t\t\thp += (hp < 0) * 2 * Math.PI;\n\t\t}\n\n\t\tlet Lpm50 = Math.pow(Lp - 50, 2);\n\t\tlet T =\n\t\t\t1 -\n\t\t\t0.17 * Math.cos(hp - Math.PI / 6) +\n\t\t\t0.24 * Math.cos(2 * hp) +\n\t\t\t0.32 * Math.cos(3 * hp + Math.PI / 30) -\n\t\t\t0.2 * Math.cos(4 * hp - (63 * Math.PI) / 180);\n\n\t\tlet Sl = 1 + (0.015 * Lpm50) / Math.sqrt(20 + Lpm50);\n\t\tlet Sc = 1 + 0.045 * Cp;\n\t\tlet Sh = 1 + 0.015 * Cp * T;\n\n\t\tlet deltaTheta =\n\t\t\t((30 * Math.PI) / 180) *\n\t\t\tMath.exp(-1 * Math.pow(((180 / Math.PI) * hp - 275) / 25, 2));\n\t\tlet Rc =\n\t\t\t2 *\n\t\t\tMath.sqrt(Math.pow(Cp, 7) / (Math.pow(Cp, 7) + Math.pow(25, 7)));\n\n\t\tlet Rt = -1 * Math.sin(2 * deltaTheta) * Rc;\n\n\t\treturn Math.sqrt(\n\t\t\tMath.pow(dL / (Kl * Sl), 2) +\n\t\t\t\tMath.pow(dC / (Kc * Sc), 2) +\n\t\t\t\tMath.pow(dH / (Kh * Sh), 2) +\n\t\t\t\t(((Rt * dC) / (Kc * Sc)) * dH) / (Kh * Sh)\n\t\t);\n\t};\n};\n\n/*\n\tCMC (l:c) difference formula\n\n\tReferences:\n\t\thttps://en.wikipedia.org/wiki/Color_difference#CMC_l:c_(1984)\n\t\thttp://www.brucelindbloom.com/index.html?Eqn_DeltaE_CMC.html\n */\nconst differenceCmc = (l = 1, c = 1) => {\n\tlet lab = converter('lab65');\n\n\t/*\n\t\tComparte two colors:\n\t\tstd - standard (first) color\n\t\tsmp - sample (second) color\n\t */\n\treturn (std, smp) => {\n\t\t// convert standard color to Lab\n\t\tlet LabStd = lab(std);\n\t\tlet lStd = LabStd.l;\n\t\tlet aStd = LabStd.a;\n\t\tlet bStd = LabStd.b;\n\n\t\t// Obtain hue/chroma\n\t\tlet cStd = Math.sqrt(aStd * aStd + bStd * bStd);\n\t\tlet hStd = Math.atan2(bStd, aStd);\n\t\thStd = hStd + 2 * Math.PI * (hStd < 0);\n\n\t\t// convert sample color to Lab, obtain LCh\n\t\tlet LabSmp = lab(smp);\n\t\tlet lSmp = LabSmp.l;\n\t\tlet aSmp = LabSmp.a;\n\t\tlet bSmp = LabSmp.b;\n\n\t\t// Obtain chroma\n\t\tlet cSmp = Math.sqrt(aSmp * aSmp + bSmp * bSmp);\n\n\t\t// lightness delta squared\n\t\tlet dL2 = Math.pow(lStd - lSmp, 2);\n\n\t\t// chroma delta squared\n\t\tlet dC2 = Math.pow(cStd - cSmp, 2);\n\n\t\t// hue delta squared\n\t\tlet dH2 = Math.pow(aStd - aSmp, 2) + Math.pow(bStd - bSmp, 2) - dC2;\n\n\t\tlet F = Math.sqrt(Math.pow(cStd, 4) / (Math.pow(cStd, 4) + 1900));\n\t\tlet T =\n\t\t\thStd >= (164 / 180) * Math.PI && hStd <= (345 / 180) * Math.PI\n\t\t\t\t? 0.56 + Math.abs(0.2 * Math.cos(hStd + (168 / 180) * Math.PI))\n\t\t\t\t: 0.36 + Math.abs(0.4 * Math.cos(hStd + (35 / 180) * Math.PI));\n\n\t\tlet Sl = lStd < 16 ? 0.511 : (0.040975 * lStd) / (1 + 0.01765 * lStd);\n\t\tlet Sc = (0.0638 * cStd) / (1 + 0.0131 * cStd) + 0.638;\n\t\tlet Sh = Sc * (F * T + 1 - F);\n\n\t\treturn Math.sqrt(\n\t\t\tdL2 / Math.pow(l * Sl, 2) +\n\t\t\t\tdC2 / Math.pow(c * Sc, 2) +\n\t\t\t\tdH2 / Math.pow(Sh, 2)\n\t\t);\n\t};\n};\n\n/*\n\n\tHyAB color difference formula, introduced in:\n\n\t\tAbasi S, Amani Tehran M, Fairchild MD. \n\t\t\"Distance metrics for very large color differences.\"\n\t\tColor Res Appl. 2019; 1–16. \n\t\thttps://doi.org/10.1002/col.22451\n\n\tPDF available at:\n\t\n\t\thttp://markfairchild.org/PDFs/PAP40.pdf\n */\nconst differenceHyab = () => {\n\tlet lab = converter('lab65');\n\treturn (std, smp) => {\n\t\tlet LabStd = lab(std);\n\t\tlet LabSmp = lab(smp);\n\t\tlet dL = LabStd.l - LabSmp.l;\n\t\tlet dA = LabStd.a - LabSmp.a;\n\t\tlet dB = LabStd.b - LabSmp.b;\n\t\treturn Math.abs(dL) + Math.sqrt(dA * dA + dB * dB);\n\t};\n};\n\n/*\n\t\"Measuring perceived color difference using YIQ NTSC\n\ttransmission color space in mobile applications\"\n\t\t\n\t\tby Yuriy Kotsarenko, Fernando Ramos in:\n\t\tProgramación Matemática y Software (2010) \n\n\tAvailable at:\n\t\t\n\t\thttp://www.progmat.uaem.mx:8080/artVol2Num2/Articulo3Vol2Num2.pdf\n */\nconst differenceKotsarenkoRamos = () =>\n\tdifferenceEuclidean('yiq', [0.5053, 0.299, 0.1957]);\n\n/*\n\tΔE_ITP, as defined in Rec. ITU-R BT.2124:\n\n\thttps://www.itu.int/rec/R-REC-BT.2124/en\n*/\nconst differenceItp = () =>\n\tdifferenceEuclidean('itp', [518400, 129600, 518400]);\n\nexport {\n\tdifferenceHueChroma,\n\tdifferenceHueSaturation,\n\tdifferenceHueNaive,\n\tdifferenceEuclidean,\n\tdifferenceCie76,\n\tdifferenceCie94,\n\tdifferenceCiede2000,\n\tdifferenceCmc,\n\tdifferenceHyab,\n\tdifferenceKotsarenkoRamos,\n\tdifferenceItp\n};\n",
147
+ "import converter from './converter.js';\nimport { getMode } from './modes.js';\n\nconst averageAngle = val => {\n\t// See: https://en.wikipedia.org/wiki/Mean_of_circular_quantities\n\tlet sum = val.reduce(\n\t\t(sum, val) => {\n\t\t\tif (val !== undefined) {\n\t\t\t\tlet rad = (val * Math.PI) / 180;\n\t\t\t\tsum.sin += Math.sin(rad);\n\t\t\t\tsum.cos += Math.cos(rad);\n\t\t\t}\n\t\t\treturn sum;\n\t\t},\n\t\t{ sin: 0, cos: 0 }\n\t);\n\tlet angle = (Math.atan2(sum.sin, sum.cos) * 180) / Math.PI;\n\treturn angle < 0 ? 360 + angle : angle;\n};\n\nconst averageNumber = val => {\n\tlet a = val.filter(v => v !== undefined);\n\treturn a.length ? a.reduce((sum, v) => sum + v, 0) / a.length : undefined;\n};\n\nconst isfn = o => typeof o === 'function';\n\nfunction average(colors, mode = 'rgb', overrides) {\n\tlet def = getMode(mode);\n\tlet cc = colors.map(converter(mode));\n\treturn def.channels.reduce(\n\t\t(res, ch) => {\n\t\t\tlet arr = cc.map(c => c[ch]).filter(val => val !== undefined);\n\t\t\tif (arr.length) {\n\t\t\t\tlet fn;\n\t\t\t\tif (isfn(overrides)) {\n\t\t\t\t\tfn = overrides;\n\t\t\t\t} else if (overrides && isfn(overrides[ch])) {\n\t\t\t\t\tfn = overrides[ch];\n\t\t\t\t} else if (def.average && isfn(def.average[ch])) {\n\t\t\t\t\tfn = def.average[ch];\n\t\t\t\t} else {\n\t\t\t\t\tfn = averageNumber;\n\t\t\t\t}\n\t\t\t\tres[ch] = fn(arr, ch);\n\t\t\t}\n\t\t\treturn res;\n\t\t},\n\t\t{ mode }\n\t);\n}\n\nexport { average, averageAngle, averageNumber };\n",
148
+ "/* \n\tDave Green's Cubehelix\n\t----------------------\n\n\tGreen, D. A., 2011, \"A colour scheme for the display of astronomical intensity images\", \n\tBulletin of the Astronomical Society of India, 39, 289. (2011BASI...39..289G at ADS.) \n\n\thttps://www.mrao.cam.ac.uk/%7Edag/CUBEHELIX/\n\thttps://arxiv.org/pdf/1108.5083.pdf\n\n\tAlthough Cubehelix was defined to be a method to obtain a colour scheme,\n\tit actually contains a definition of a colour space, as identified by \n\tMike Bostock and implemented in D3.js.\n\n\tGreen's paper introduces the following terminology:\n\n\t* \ta `lightness` dimension in the interval [0, 1] \n\t\ton which we interpolate to obtain the colour scheme\n\t*\ta `start` colour that is analogous to a Hue in HSL space\n\t*\ta number of `rotations` around the Hue cylinder.\n\t*\ta `hue` parameter which should more appropriately be called `saturation`\n\t\n\tAs such, the original definition of the Cubehelix scheme is actually an\n\tinterpolation between two colors in the Cubehelix space:\n\n\tH: start \t\t\t\tH: start + 360 * rotations\n\tS: hue \t\t\t->\t\tS: hue\n\tL: 0\t\t\t\t\tL: 1\n\n\tWe can therefore extend the interpolation to any two colors in this space,\n\twith a variable Saturation and a Lightness interval other than the fixed 0 -> 1.\n*/\n\nimport { fixupHueShorter } from '../fixup/hue.js';\nimport { fixupAlpha } from '../fixup/alpha.js';\nimport { interpolatorLinear } from '../interpolate/linear.js';\nimport convertRgbToCubehelix from './convertRgbToCubehelix.js';\nimport convertCubehelixToRgb from './convertCubehelixToRgb.js';\nimport { differenceHueSaturation } from '../difference.js';\nimport { averageAngle } from '../average.js';\n\nconst definition = {\n\tmode: 'cubehelix',\n\tchannels: ['h', 's', 'l', 'alpha'],\n\tparse: ['--cubehelix'],\n\tserialize: '--cubehelix',\n\n\tranges: {\n\t\th: [0, 360],\n\t\ts: [0, 4.614],\n\t\tl: [0, 1]\n\t},\n\n\tfromMode: {\n\t\trgb: convertRgbToCubehelix\n\t},\n\n\ttoMode: {\n\t\trgb: convertCubehelixToRgb\n\t},\n\n\tinterpolate: {\n\t\th: {\n\t\t\tuse: interpolatorLinear,\n\t\t\tfixup: fixupHueShorter\n\t\t},\n\t\ts: interpolatorLinear,\n\t\tl: interpolatorLinear,\n\t\talpha: {\n\t\t\tuse: interpolatorLinear,\n\t\t\tfixup: fixupAlpha\n\t\t}\n\t},\n\n\tdifference: {\n\t\th: differenceHueSaturation\n\t},\n\n\taverage: {\n\t\th: averageAngle\n\t}\n};\n\nexport default definition;\n",
149
+ "import normalizeHue from '../util/normalizeHue.js';\n\n/* \n\tReferences: \n\t\t* https://drafts.csswg.org/css-color/#lab-to-lch\n\t\t* https://drafts.csswg.org/css-color/#color-conversion-code\n*/\nconst convertLabToLch = ({ l, a, b, alpha }, mode = 'lch') => {\n\tif (a === undefined) a = 0;\n\tif (b === undefined) b = 0;\n\tlet c = Math.sqrt(a * a + b * b);\n\tlet res = { mode, l, c };\n\tif (c) res.h = normalizeHue((Math.atan2(b, a) * 180) / Math.PI);\n\tif (alpha !== undefined) res.alpha = alpha;\n\treturn res;\n};\n\nexport default convertLabToLch;\n",
150
+ "/* \n\tReferences: \n\t\t* https://drafts.csswg.org/css-color/#lch-to-lab\n\t\t* https://drafts.csswg.org/css-color/#color-conversion-code\n*/\nconst convertLchToLab = ({ l, c, h, alpha }, mode = 'lab') => {\n\tif (h === undefined) h = 0;\n\tlet res = {\n\t\tmode,\n\t\tl,\n\t\ta: c ? c * Math.cos((h / 180) * Math.PI) : 0,\n\t\tb: c ? c * Math.sin((h / 180) * Math.PI) : 0\n\t};\n\tif (alpha !== undefined) res.alpha = alpha;\n\treturn res;\n};\n\nexport default convertLchToLab;\n",
151
+ "export const k = Math.pow(29, 3) / Math.pow(3, 3);\nexport const e = Math.pow(6, 3) / Math.pow(29, 3);\n",
152
+ "/*\n\tThe XYZ tristimulus values (white point)\n\tof standard illuminants for the CIE 1931 2° \n\tstandard observer.\n\n\tSee: https://en.wikipedia.org/wiki/Standard_illuminant\n */\n\nexport const D50 = {\n\tX: 0.3457 / 0.3585,\n\tY: 1,\n\tZ: (1 - 0.3457 - 0.3585) / 0.3585\n};\n\nexport const D65 = {\n\tX: 0.3127 / 0.329,\n\tY: 1,\n\tZ: (1 - 0.3127 - 0.329) / 0.329\n};\n\nexport const k = Math.pow(29, 3) / Math.pow(3, 3);\nexport const e = Math.pow(6, 3) / Math.pow(29, 3);\n",
153
+ "import { k, e } from '../xyz65/constants.js';\nimport { D65 } from '../constants.js';\n\nlet fn = v => (Math.pow(v, 3) > e ? Math.pow(v, 3) : (116 * v - 16) / k);\n\nconst convertLab65ToXyz65 = ({ l, a, b, alpha }) => {\n\tif (l === undefined) l = 0;\n\tif (a === undefined) a = 0;\n\tif (b === undefined) b = 0;\n\n\tlet fy = (l + 16) / 116;\n\tlet fx = a / 500 + fy;\n\tlet fz = fy - b / 200;\n\n\tlet res = {\n\t\tmode: 'xyz65',\n\t\tx: fn(fx) * D65.X,\n\t\ty: fn(fy) * D65.Y,\n\t\tz: fn(fz) * D65.Z\n\t};\n\n\tif (alpha !== undefined) {\n\t\tres.alpha = alpha;\n\t}\n\n\treturn res;\n};\n\nexport default convertLab65ToXyz65;\n",
154
+ "import convertLab65ToXyz65 from './convertLab65ToXyz65.js';\nimport convertXyz65ToRgb from '../xyz65/convertXyz65ToRgb.js';\n\nconst convertLab65ToRgb = lab => convertXyz65ToRgb(convertLab65ToXyz65(lab));\n\nexport default convertLab65ToRgb;\n",
155
+ "import { k, e } from '../xyz65/constants.js';\nimport { D65 } from '../constants.js';\n\nconst f = value => (value > e ? Math.cbrt(value) : (k * value + 16) / 116);\n\nconst convertXyz65ToLab65 = ({ x, y, z, alpha }) => {\n\tif (x === undefined) x = 0;\n\tif (y === undefined) y = 0;\n\tif (z === undefined) z = 0;\n\tlet f0 = f(x / D65.X);\n\tlet f1 = f(y / D65.Y);\n\tlet f2 = f(z / D65.Z);\n\n\tlet res = {\n\t\tmode: 'lab65',\n\t\tl: 116 * f1 - 16,\n\t\ta: 500 * (f0 - f1),\n\t\tb: 200 * (f1 - f2)\n\t};\n\n\tif (alpha !== undefined) {\n\t\tres.alpha = alpha;\n\t}\n\n\treturn res;\n};\n\nexport default convertXyz65ToLab65;\n",
156
+ "import convertRgbToXyz65 from '../xyz65/convertRgbToXyz65.js';\nimport convertXyz65ToLab65 from './convertXyz65ToLab65.js';\n\nconst convertRgbToLab65 = rgb => {\n\tlet res = convertXyz65ToLab65(convertRgbToXyz65(rgb));\n\n\t// Fixes achromatic RGB colors having a _slight_ chroma due to floating-point errors\n\t// and approximated computations in sRGB <-> CIELab.\n\t// See: https://github.com/d3/d3-color/pull/46\n\tif (rgb.r === rgb.b && rgb.b === rgb.g) {\n\t\tres.a = res.b = 0;\n\t}\n\treturn res;\n};\n\nexport default convertRgbToLab65;\n",
157
+ "export const kE = 1;\nexport const kCH = 1;\nexport const θ = (26 / 180) * Math.PI;\nexport const cosθ = Math.cos(θ);\nexport const sinθ = Math.sin(θ);\nexport const factor = 100 / Math.log(139 / 100); // ~ 303.67\n",
158
+ "import { kCH, kE, sinθ, cosθ, θ, factor } from './constants.js';\n\n/*\n\tConvert DIN99o LCh to CIELab D65\n\t--------------------------------\n */\n\nconst convertDlchToLab65 = ({ l, c, h, alpha }) => {\n\tif (l === undefined) l = 0;\n\tif (c === undefined) c = 0;\n\tif (h === undefined) h = 0;\n\tlet res = {\n\t\tmode: 'lab65',\n\t\tl: (Math.exp((l * kE) / factor) - 1) / 0.0039\n\t};\n\n\tlet G = (Math.exp(0.0435 * c * kCH * kE) - 1) / 0.075;\n\tlet e = G * Math.cos((h / 180) * Math.PI - θ);\n\tlet f = G * Math.sin((h / 180) * Math.PI - θ);\n\tres.a = e * cosθ - (f / 0.83) * sinθ;\n\tres.b = e * sinθ + (f / 0.83) * cosθ;\n\n\tif (alpha !== undefined) res.alpha = alpha;\n\treturn res;\n};\n\nexport default convertDlchToLab65;\n",
159
+ "import { kCH, kE, sinθ, cosθ, θ, factor } from './constants.js';\nimport normalizeHue from '../util/normalizeHue.js';\n\n/*\n\tConvert CIELab D65 to DIN99o LCh\n\t================================\n */\n\nconst convertLab65ToDlch = ({ l, a, b, alpha }) => {\n\tif (l === undefined) l = 0;\n\tif (a === undefined) a = 0;\n\tif (b === undefined) b = 0;\n\tlet e = a * cosθ + b * sinθ;\n\tlet f = 0.83 * (b * cosθ - a * sinθ);\n\tlet G = Math.sqrt(e * e + f * f);\n\tlet res = {\n\t\tmode: 'dlch',\n\t\tl: (factor / kE) * Math.log(1 + 0.0039 * l),\n\t\tc: Math.log(1 + 0.075 * G) / (0.0435 * kCH * kE)\n\t};\n\n\tif (res.c) {\n\t\tres.h = normalizeHue(((Math.atan2(f, e) + θ) / Math.PI) * 180);\n\t}\n\n\tif (alpha !== undefined) res.alpha = alpha;\n\treturn res;\n};\n\nexport default convertLab65ToDlch;\n",
160
+ "import convertLabToLch from '../lch/convertLabToLch.js';\nimport convertLchToLab from '../lch/convertLchToLab.js';\nimport convertLab65ToRgb from '../lab65/convertLab65ToRgb.js';\nimport convertRgbToLab65 from '../lab65/convertRgbToLab65.js';\nimport convertDlchToLab65 from '../dlch/convertDlchToLab65.js';\nimport convertLab65ToDlch from '../dlch/convertLab65ToDlch.js';\nimport { interpolatorLinear } from '../interpolate/linear.js';\nimport { fixupAlpha } from '../fixup/alpha.js';\n\nconst convertDlabToLab65 = c => convertDlchToLab65(convertLabToLch(c, 'dlch'));\nconst convertLab65ToDlab = c => convertLchToLab(convertLab65ToDlch(c), 'dlab');\n\nconst definition = {\n\tmode: 'dlab',\n\n\tparse: ['--din99o-lab'],\n\tserialize: '--din99o-lab',\n\n\ttoMode: {\n\t\tlab65: convertDlabToLab65,\n\t\trgb: c => convertLab65ToRgb(convertDlabToLab65(c))\n\t},\n\n\tfromMode: {\n\t\tlab65: convertLab65ToDlab,\n\t\trgb: c => convertLab65ToDlab(convertRgbToLab65(c))\n\t},\n\n\tchannels: ['l', 'a', 'b', 'alpha'],\n\n\tranges: {\n\t\tl: [0, 100],\n\t\ta: [-40.09, 45.501],\n\t\tb: [-40.469, 44.344]\n\t},\n\n\tinterpolate: {\n\t\tl: interpolatorLinear,\n\t\ta: interpolatorLinear,\n\t\tb: interpolatorLinear,\n\t\talpha: {\n\t\t\tuse: interpolatorLinear,\n\t\t\tfixup: fixupAlpha\n\t\t}\n\t}\n};\n\nexport default definition;\n",
161
+ "import convertLabToLch from '../lch/convertLabToLch.js';\nimport convertLchToLab from '../lch/convertLchToLab.js';\nimport convertDlchToLab65 from './convertDlchToLab65.js';\nimport convertLab65ToDlch from './convertLab65ToDlch.js';\nimport convertLab65ToRgb from '../lab65/convertLab65ToRgb.js';\nimport convertRgbToLab65 from '../lab65/convertRgbToLab65.js';\n\nimport { fixupHueShorter } from '../fixup/hue.js';\nimport { fixupAlpha } from '../fixup/alpha.js';\nimport { interpolatorLinear } from '../interpolate/linear.js';\nimport { differenceHueChroma } from '../difference.js';\nimport { averageAngle } from '../average.js';\n\nconst definition = {\n\tmode: 'dlch',\n\n\tparse: ['--din99o-lch'],\n\tserialize: '--din99o-lch',\n\n\ttoMode: {\n\t\tlab65: convertDlchToLab65,\n\t\tdlab: c => convertLchToLab(c, 'dlab'),\n\t\trgb: c => convertLab65ToRgb(convertDlchToLab65(c))\n\t},\n\n\tfromMode: {\n\t\tlab65: convertLab65ToDlch,\n\t\tdlab: c => convertLabToLch(c, 'dlch'),\n\t\trgb: c => convertLab65ToDlch(convertRgbToLab65(c))\n\t},\n\n\tchannels: ['l', 'c', 'h', 'alpha'],\n\n\tranges: {\n\t\tl: [0, 100],\n\t\tc: [0, 51.484],\n\t\th: [0, 360]\n\t},\n\n\tinterpolate: {\n\t\tl: interpolatorLinear,\n\t\tc: interpolatorLinear,\n\t\th: {\n\t\t\tuse: interpolatorLinear,\n\t\t\tfixup: fixupHueShorter\n\t\t},\n\t\talpha: {\n\t\t\tuse: interpolatorLinear,\n\t\t\tfixup: fixupAlpha\n\t\t}\n\t},\n\n\tdifference: {\n\t\th: differenceHueChroma\n\t},\n\n\taverage: {\n\t\th: averageAngle\n\t}\n};\n\nexport default definition;\n",
162
+ "import normalizeHue from '../util/normalizeHue.js';\n\n// Based on: https://en.wikipedia.org/wiki/HSL_and_HSV#Converting_to_RGB\n\nexport default function convertHsiToRgb({ h, s, i, alpha }) {\n\th = normalizeHue(h !== undefined ? h : 0);\n\tif (s === undefined) s = 0;\n\tif (i === undefined) i = 0;\n\tlet f = Math.abs(((h / 60) % 2) - 1);\n\tlet res;\n\tswitch (Math.floor(h / 60)) {\n\t\tcase 0:\n\t\t\tres = {\n\t\t\t\tr: i * (1 + s * (3 / (2 - f) - 1)),\n\t\t\t\tg: i * (1 + s * ((3 * (1 - f)) / (2 - f) - 1)),\n\t\t\t\tb: i * (1 - s)\n\t\t\t};\n\t\t\tbreak;\n\t\tcase 1:\n\t\t\tres = {\n\t\t\t\tr: i * (1 + s * ((3 * (1 - f)) / (2 - f) - 1)),\n\t\t\t\tg: i * (1 + s * (3 / (2 - f) - 1)),\n\t\t\t\tb: i * (1 - s)\n\t\t\t};\n\t\t\tbreak;\n\t\tcase 2:\n\t\t\tres = {\n\t\t\t\tr: i * (1 - s),\n\t\t\t\tg: i * (1 + s * (3 / (2 - f) - 1)),\n\t\t\t\tb: i * (1 + s * ((3 * (1 - f)) / (2 - f) - 1))\n\t\t\t};\n\t\t\tbreak;\n\t\tcase 3:\n\t\t\tres = {\n\t\t\t\tr: i * (1 - s),\n\t\t\t\tg: i * (1 + s * ((3 * (1 - f)) / (2 - f) - 1)),\n\t\t\t\tb: i * (1 + s * (3 / (2 - f) - 1))\n\t\t\t};\n\t\t\tbreak;\n\t\tcase 4:\n\t\t\tres = {\n\t\t\t\tr: i * (1 + s * ((3 * (1 - f)) / (2 - f) - 1)),\n\t\t\t\tg: i * (1 - s),\n\t\t\t\tb: i * (1 + s * (3 / (2 - f) - 1))\n\t\t\t};\n\t\t\tbreak;\n\t\tcase 5:\n\t\t\tres = {\n\t\t\t\tr: i * (1 + s * (3 / (2 - f) - 1)),\n\t\t\t\tg: i * (1 - s),\n\t\t\t\tb: i * (1 + s * ((3 * (1 - f)) / (2 - f) - 1))\n\t\t\t};\n\t\t\tbreak;\n\t\tdefault:\n\t\t\tres = { r: i * (1 - s), g: i * (1 - s), b: i * (1 - s) };\n\t}\n\n\tres.mode = 'rgb';\n\tif (alpha !== undefined) res.alpha = alpha;\n\treturn res;\n}\n",
163
+ "// Based on: https://en.wikipedia.org/wiki/HSL_and_HSV#Formal_derivation\n\nexport default function convertRgbToHsi({ r, g, b, alpha }) {\n\tif (r === undefined) r = 0;\n\tif (g === undefined) g = 0;\n\tif (b === undefined) b = 0;\n\tlet M = Math.max(r, g, b),\n\t\tm = Math.min(r, g, b);\n\tlet res = {\n\t\tmode: 'hsi',\n\t\ts: r + g + b === 0 ? 0 : 1 - (3 * m) / (r + g + b),\n\t\ti: (r + g + b) / 3\n\t};\n\tif (M - m !== 0)\n\t\tres.h =\n\t\t\t(M === r\n\t\t\t\t? (g - b) / (M - m) + (g < b) * 6\n\t\t\t\t: M === g\n\t\t\t\t? (b - r) / (M - m) + 2\n\t\t\t\t: (r - g) / (M - m) + 4) * 60;\n\tif (alpha !== undefined) res.alpha = alpha;\n\treturn res;\n}\n",
164
+ "import convertHsiToRgb from './convertHsiToRgb.js';\nimport convertRgbToHsi from './convertRgbToHsi.js';\nimport { fixupHueShorter } from '../fixup/hue.js';\nimport { fixupAlpha } from '../fixup/alpha.js';\nimport { interpolatorLinear } from '../interpolate/linear.js';\nimport { differenceHueSaturation } from '../difference.js';\nimport { averageAngle } from '../average.js';\n\nconst definition = {\n\tmode: 'hsi',\n\n\ttoMode: {\n\t\trgb: convertHsiToRgb\n\t},\n\n\tparse: ['--hsi'],\n\tserialize: '--hsi',\n\n\tfromMode: {\n\t\trgb: convertRgbToHsi\n\t},\n\n\tchannels: ['h', 's', 'i', 'alpha'],\n\n\tranges: {\n\t\th: [0, 360]\n\t},\n\n\tgamut: 'rgb',\n\n\tinterpolate: {\n\t\th: { use: interpolatorLinear, fixup: fixupHueShorter },\n\t\ts: interpolatorLinear,\n\t\ti: interpolatorLinear,\n\t\talpha: { use: interpolatorLinear, fixup: fixupAlpha }\n\t},\n\n\tdifference: {\n\t\th: differenceHueSaturation\n\t},\n\n\taverage: {\n\t\th: averageAngle\n\t}\n};\n\nexport default definition;\n",
165
+ "import normalizeHue from '../util/normalizeHue.js';\n// Based on: https://en.wikipedia.org/wiki/HSL_and_HSV#Converting_to_RGB\n\nexport default function convertHslToRgb({ h, s, l, alpha }) {\n\th = normalizeHue(h !== undefined ? h : 0);\n\tif (s === undefined) s = 0;\n\tif (l === undefined) l = 0;\n\tlet m1 = l + s * (l < 0.5 ? l : 1 - l);\n\tlet m2 = m1 - (m1 - l) * 2 * Math.abs(((h / 60) % 2) - 1);\n\tlet res;\n\tswitch (Math.floor(h / 60)) {\n\t\tcase 0:\n\t\t\tres = { r: m1, g: m2, b: 2 * l - m1 };\n\t\t\tbreak;\n\t\tcase 1:\n\t\t\tres = { r: m2, g: m1, b: 2 * l - m1 };\n\t\t\tbreak;\n\t\tcase 2:\n\t\t\tres = { r: 2 * l - m1, g: m1, b: m2 };\n\t\t\tbreak;\n\t\tcase 3:\n\t\t\tres = { r: 2 * l - m1, g: m2, b: m1 };\n\t\t\tbreak;\n\t\tcase 4:\n\t\t\tres = { r: m2, g: 2 * l - m1, b: m1 };\n\t\t\tbreak;\n\t\tcase 5:\n\t\t\tres = { r: m1, g: 2 * l - m1, b: m2 };\n\t\t\tbreak;\n\t\tdefault:\n\t\t\tres = { r: 2 * l - m1, g: 2 * l - m1, b: 2 * l - m1 };\n\t}\n\tres.mode = 'rgb';\n\tif (alpha !== undefined) res.alpha = alpha;\n\treturn res;\n}\n",
166
+ "// Based on: https://en.wikipedia.org/wiki/HSL_and_HSV#Formal_derivation\n\nexport default function convertRgbToHsl({ r, g, b, alpha }) {\n\tif (r === undefined) r = 0;\n\tif (g === undefined) g = 0;\n\tif (b === undefined) b = 0;\n\tlet M = Math.max(r, g, b),\n\t\tm = Math.min(r, g, b);\n\tlet res = {\n\t\tmode: 'hsl',\n\t\ts: M === m ? 0 : (M - m) / (1 - Math.abs(M + m - 1)),\n\t\tl: 0.5 * (M + m)\n\t};\n\tif (M - m !== 0)\n\t\tres.h =\n\t\t\t(M === r\n\t\t\t\t? (g - b) / (M - m) + (g < b) * 6\n\t\t\t\t: M === g\n\t\t\t\t? (b - r) / (M - m) + 2\n\t\t\t\t: (r - g) / (M - m) + 4) * 60;\n\tif (alpha !== undefined) res.alpha = alpha;\n\treturn res;\n}\n",
167
+ "const hueToDeg = (val, unit) => {\n\tswitch (unit) {\n\t\tcase 'deg':\n\t\t\treturn +val;\n\t\tcase 'rad':\n\t\t\treturn (val / Math.PI) * 180;\n\t\tcase 'grad':\n\t\t\treturn (val / 10) * 9;\n\t\tcase 'turn':\n\t\t\treturn val * 360;\n\t}\n};\n\nexport default hueToDeg;\n",
168
+ "import hueToDeg from '../util/hue.js';\nimport { hue, per, num_per, c } from '../util/regex.js';\n\n/*\n\thsl() regular expressions for legacy format\n\tReference: https://drafts.csswg.org/css-color/#the-hsl-notation\n */\nconst hsl_old = new RegExp(\n\t`^hsla?\\\\(\\\\s*${hue}${c}${per}${c}${per}\\\\s*(?:,\\\\s*${num_per}\\\\s*)?\\\\)$`\n);\n\nconst parseHslLegacy = color => {\n\tlet match = color.match(hsl_old);\n\tif (!match) return;\n\tlet res = { mode: 'hsl' };\n\n\tif (match[3] !== undefined) {\n\t\tres.h = +match[3];\n\t} else if (match[1] !== undefined && match[2] !== undefined) {\n\t\tres.h = hueToDeg(match[1], match[2]);\n\t}\n\n\tif (match[4] !== undefined) {\n\t\tres.s = Math.min(Math.max(0, match[4] / 100), 1);\n\t}\n\n\tif (match[5] !== undefined) {\n\t\tres.l = Math.min(Math.max(0, match[5] / 100), 1);\n\t}\n\n\tif (match[6] !== undefined) {\n\t\tres.alpha = Math.max(0, Math.min(1, match[6] / 100));\n\t} else if (match[7] !== undefined) {\n\t\tres.alpha = Math.max(0, Math.min(1, +match[7]));\n\t}\n\treturn res;\n};\n\nexport default parseHslLegacy;\n",
169
+ "import { Tok } from '../parse.js';\n\nfunction parseHsl(color, parsed) {\n\tif (!parsed || (parsed[0] !== 'hsl' && parsed[0] !== 'hsla')) {\n\t\treturn undefined;\n\t}\n\tconst res = { mode: 'hsl' };\n\tconst [, h, s, l, alpha] = parsed;\n\n\tif (h.type !== Tok.None) {\n\t\tif (h.type === Tok.Percentage) {\n\t\t\treturn undefined;\n\t\t}\n\t\tres.h = h.value;\n\t}\n\n\tif (s.type !== Tok.None) {\n\t\tif (s.type === Tok.Hue) {\n\t\t\treturn undefined;\n\t\t}\n\t\tres.s = s.value / 100;\n\t}\n\n\tif (l.type !== Tok.None) {\n\t\tif (l.type === Tok.Hue) {\n\t\t\treturn undefined;\n\t\t}\n\t\tres.l = l.value / 100;\n\t}\n\n\tif (alpha.type !== Tok.None) {\n\t\tres.alpha = Math.min(\n\t\t\t1,\n\t\t\tMath.max(\n\t\t\t\t0,\n\t\t\t\talpha.type === Tok.Number ? alpha.value : alpha.value / 100\n\t\t\t)\n\t\t);\n\t}\n\n\treturn res;\n}\n\nexport default parseHsl;\n",
170
+ "import convertHslToRgb from './convertHslToRgb.js';\nimport convertRgbToHsl from './convertRgbToHsl.js';\nimport parseHslLegacy from './parseHslLegacy.js';\nimport parseHsl from './parseHsl.js';\nimport { fixupHueShorter } from '../fixup/hue.js';\nimport { fixupAlpha } from '../fixup/alpha.js';\nimport { interpolatorLinear } from '../interpolate/linear.js';\nimport { differenceHueSaturation } from '../difference.js';\nimport { averageAngle } from '../average.js';\n\nconst definition = {\n\tmode: 'hsl',\n\n\ttoMode: {\n\t\trgb: convertHslToRgb\n\t},\n\n\tfromMode: {\n\t\trgb: convertRgbToHsl\n\t},\n\n\tchannels: ['h', 's', 'l', 'alpha'],\n\n\tranges: {\n\t\th: [0, 360]\n\t},\n\n\tgamut: 'rgb',\n\n\tparse: [parseHsl, parseHslLegacy],\n\tserialize: c =>\n\t\t`hsl(${c.h !== undefined ? c.h : 'none'} ${\n\t\t\tc.s !== undefined ? c.s * 100 + '%' : 'none'\n\t\t} ${c.l !== undefined ? c.l * 100 + '%' : 'none'}${\n\t\t\tc.alpha < 1 ? ` / ${c.alpha}` : ''\n\t\t})`,\n\n\tinterpolate: {\n\t\th: { use: interpolatorLinear, fixup: fixupHueShorter },\n\t\ts: interpolatorLinear,\n\t\tl: interpolatorLinear,\n\t\talpha: { use: interpolatorLinear, fixup: fixupAlpha }\n\t},\n\n\tdifference: {\n\t\th: differenceHueSaturation\n\t},\n\n\taverage: {\n\t\th: averageAngle\n\t}\n};\n\nexport default definition;\n",
171
+ "import normalizeHue from '../util/normalizeHue.js';\n\n// Based on: https://en.wikipedia.org/wiki/HSL_and_HSV#Converting_to_RGB\n\nexport default function convertHsvToRgb({ h, s, v, alpha }) {\n\th = normalizeHue(h !== undefined ? h : 0);\n\tif (s === undefined) s = 0;\n\tif (v === undefined) v = 0;\n\tlet f = Math.abs(((h / 60) % 2) - 1);\n\tlet res;\n\tswitch (Math.floor(h / 60)) {\n\t\tcase 0:\n\t\t\tres = { r: v, g: v * (1 - s * f), b: v * (1 - s) };\n\t\t\tbreak;\n\t\tcase 1:\n\t\t\tres = { r: v * (1 - s * f), g: v, b: v * (1 - s) };\n\t\t\tbreak;\n\t\tcase 2:\n\t\t\tres = { r: v * (1 - s), g: v, b: v * (1 - s * f) };\n\t\t\tbreak;\n\t\tcase 3:\n\t\t\tres = { r: v * (1 - s), g: v * (1 - s * f), b: v };\n\t\t\tbreak;\n\t\tcase 4:\n\t\t\tres = { r: v * (1 - s * f), g: v * (1 - s), b: v };\n\t\t\tbreak;\n\t\tcase 5:\n\t\t\tres = { r: v, g: v * (1 - s), b: v * (1 - s * f) };\n\t\t\tbreak;\n\t\tdefault:\n\t\t\tres = { r: v * (1 - s), g: v * (1 - s), b: v * (1 - s) };\n\t}\n\tres.mode = 'rgb';\n\tif (alpha !== undefined) res.alpha = alpha;\n\treturn res;\n}\n",
172
+ "// Based on: https://en.wikipedia.org/wiki/HSL_and_HSV#Formal_derivation\n\nexport default function convertRgbToHsv({ r, g, b, alpha }) {\n\tif (r === undefined) r = 0;\n\tif (g === undefined) g = 0;\n\tif (b === undefined) b = 0;\n\tlet M = Math.max(r, g, b),\n\t\tm = Math.min(r, g, b);\n\tlet res = {\n\t\tmode: 'hsv',\n\t\ts: M === 0 ? 0 : 1 - m / M,\n\t\tv: M\n\t};\n\tif (M - m !== 0)\n\t\tres.h =\n\t\t\t(M === r\n\t\t\t\t? (g - b) / (M - m) + (g < b) * 6\n\t\t\t\t: M === g\n\t\t\t\t? (b - r) / (M - m) + 2\n\t\t\t\t: (r - g) / (M - m) + 4) * 60;\n\tif (alpha !== undefined) res.alpha = alpha;\n\treturn res;\n}\n",
173
+ "import convertHsvToRgb from './convertHsvToRgb.js';\nimport convertRgbToHsv from './convertRgbToHsv.js';\nimport { fixupHueShorter } from '../fixup/hue.js';\nimport { fixupAlpha } from '../fixup/alpha.js';\nimport { interpolatorLinear } from '../interpolate/linear.js';\nimport { differenceHueSaturation } from '../difference.js';\nimport { averageAngle } from '../average.js';\n\nconst definition = {\n\tmode: 'hsv',\n\n\ttoMode: {\n\t\trgb: convertHsvToRgb\n\t},\n\n\tparse: ['--hsv'],\n\tserialize: '--hsv',\n\n\tfromMode: {\n\t\trgb: convertRgbToHsv\n\t},\n\n\tchannels: ['h', 's', 'v', 'alpha'],\n\n\tranges: {\n\t\th: [0, 360]\n\t},\n\n\tgamut: 'rgb',\n\n\tinterpolate: {\n\t\th: { use: interpolatorLinear, fixup: fixupHueShorter },\n\t\ts: interpolatorLinear,\n\t\tv: interpolatorLinear,\n\t\talpha: { use: interpolatorLinear, fixup: fixupAlpha }\n\t},\n\n\tdifference: {\n\t\th: differenceHueSaturation\n\t},\n\n\taverage: {\n\t\th: averageAngle\n\t}\n};\n\nexport default definition;\n",
174
+ "/*\n\tHWB to RGB converter\n\t--------------------\n\n\tReferences:\n\t\t* https://drafts.csswg.org/css-color/#hwb-to-rgb\n\t\t* https://en.wikipedia.org/wiki/HWB_color_model\n\t\t* http://alvyray.com/Papers/CG/HWB_JGTv208.pdf\n */\n\nimport convertHsvToRgb from '../hsv/convertHsvToRgb.js';\n\nexport default function convertHwbToRgb({ h, w, b, alpha }) {\n\tif (w === undefined) w = 0;\n\tif (b === undefined) b = 0;\n\t// normalize w + b to 1\n\tif (w + b > 1) {\n\t\tlet s = w + b;\n\t\tw /= s;\n\t\tb /= s;\n\t}\n\treturn convertHsvToRgb({\n\t\th: h,\n\t\ts: b === 1 ? 1 : 1 - w / (1 - b),\n\t\tv: 1 - b,\n\t\talpha: alpha\n\t});\n}\n",
175
+ "/*\n\tRGB to HWB converter\n\t--------------------\n\n\tReferences:\n\t\t* https://drafts.csswg.org/css-color/#hwb-to-rgb\n\t\t* https://en.wikipedia.org/wiki/HWB_color_model\n\t\t* http://alvyray.com/Papers/CG/HWB_JGTv208.pdf\n */\n\nimport convertRgbToHsv from '../hsv/convertRgbToHsv.js';\n\nexport default function convertRgbToHwb(rgba) {\n\tlet hsv = convertRgbToHsv(rgba);\n\tif (hsv === undefined) return undefined;\n\tlet s = hsv.s !== undefined ? hsv.s : 0;\n\tlet v = hsv.v !== undefined ? hsv.v : 0;\n\tlet res = {\n\t\tmode: 'hwb',\n\t\tw: (1 - s) * v,\n\t\tb: 1 - v\n\t};\n\tif (hsv.h !== undefined) res.h = hsv.h;\n\tif (hsv.alpha !== undefined) res.alpha = hsv.alpha;\n\treturn res;\n}\n",
176
+ "import { Tok } from '../parse.js';\n\nfunction ParseHwb(color, parsed) {\n\tif (!parsed || parsed[0] !== 'hwb') {\n\t\treturn undefined;\n\t}\n\tconst res = { mode: 'hwb' };\n\tconst [, h, w, b, alpha] = parsed;\n\n\tif (h.type !== Tok.None) {\n\t\tif (h.type === Tok.Percentage) {\n\t\t\treturn undefined;\n\t\t}\n\t\tres.h = h.value;\n\t}\n\n\tif (w.type !== Tok.None) {\n\t\tif (w.type === Tok.Hue) {\n\t\t\treturn undefined;\n\t\t}\n\t\tres.w = w.value / 100;\n\t}\n\n\tif (b.type !== Tok.None) {\n\t\tif (b.type === Tok.Hue) {\n\t\t\treturn undefined;\n\t\t}\n\t\tres.b = b.value / 100;\n\t}\n\n\tif (alpha.type !== Tok.None) {\n\t\tres.alpha = Math.min(\n\t\t\t1,\n\t\t\tMath.max(\n\t\t\t\t0,\n\t\t\t\talpha.type === Tok.Number ? alpha.value : alpha.value / 100\n\t\t\t)\n\t\t);\n\t}\n\n\treturn res;\n}\n\nexport default ParseHwb;\n",
177
+ "import convertHwbToRgb from './convertHwbToRgb.js';\nimport convertRgbToHwb from './convertRgbToHwb.js';\nimport parseHwb from './parseHwb.js';\nimport { fixupHueShorter } from '../fixup/hue.js';\nimport { fixupAlpha } from '../fixup/alpha.js';\nimport { interpolatorLinear } from '../interpolate/linear.js';\nimport { differenceHueNaive } from '../difference.js';\nimport { averageAngle } from '../average.js';\n\nconst definition = {\n\tmode: 'hwb',\n\n\ttoMode: {\n\t\trgb: convertHwbToRgb\n\t},\n\n\tfromMode: {\n\t\trgb: convertRgbToHwb\n\t},\n\n\tchannels: ['h', 'w', 'b', 'alpha'],\n\n\tranges: {\n\t\th: [0, 360]\n\t},\n\n\tgamut: 'rgb',\n\n\tparse: [parseHwb],\n\tserialize: c =>\n\t\t`hwb(${c.h !== undefined ? c.h : 'none'} ${\n\t\t\tc.w !== undefined ? c.w * 100 + '%' : 'none'\n\t\t} ${c.b !== undefined ? c.b * 100 + '%' : 'none'}${\n\t\t\tc.alpha < 1 ? ` / ${c.alpha}` : ''\n\t\t})`,\n\n\tinterpolate: {\n\t\th: { use: interpolatorLinear, fixup: fixupHueShorter },\n\t\tw: interpolatorLinear,\n\t\tb: interpolatorLinear,\n\t\talpha: { use: interpolatorLinear, fixup: fixupAlpha }\n\t},\n\n\tdifference: {\n\t\th: differenceHueNaive\n\t},\n\n\taverage: {\n\t\th: averageAngle\n\t}\n};\n\nexport default definition;\n",
178
+ "/*\n\tRelative XYZ has Y=1 for media white,\n\tBT.2048 says media white Y=203 (at PQ 58).\n\tSee: https://www.itu.int/dms_pub/itu-r/opb/rep/R-REP-BT.2408-3-2019-PDF-E.pdf\n*/\nexport const YW = 203;\n",
179
+ "/*\n\thttps://en.wikipedia.org/wiki/Transfer_functions_in_imaging\n*/\n\nexport const M1 = 0.1593017578125;\nexport const M2 = 78.84375;\nexport const C1 = 0.8359375;\nexport const C2 = 18.8515625;\nexport const C3 = 18.6875;\n\n/*\n\tPerceptual Quantizer, as defined in Rec. BT 2100-2 (2018)\n\n\t* https://www.itu.int/rec/R-REC-BT.2100-2-201807-I/en\n\t* https://en.wikipedia.org/wiki/Perceptual_quantizer\n*/\n\n/* PQ EOTF, defined for `v` in [0,1]. */\nexport function transferPqDecode(v) {\n\tif (v < 0) return 0;\n\tconst c = Math.pow(v, 1 / M2);\n\treturn 1e4 * Math.pow(Math.max(0, c - C1) / (C2 - C3 * c), 1 / M1);\n}\n\n/* PQ EOTF^-1, defined for `v` in [0, 1e4]. */\nexport function transferPqEncode(v) {\n\tif (v < 0) return 0;\n\tconst c = Math.pow(v / 1e4, M1);\n\treturn Math.pow((C1 + C2 * c) / (1 + C3 * c), M2);\n}\n",
180
+ "import { YW } from '../hdr/constants.js';\nimport { transferPqDecode } from '../hdr/transfer.js';\n\nconst toRel = c => Math.max(c / YW, 0);\n\nconst convertItpToXyz65 = ({ i, t, p, alpha }) => {\n\tif (i === undefined) i = 0;\n\tif (t === undefined) t = 0;\n\tif (p === undefined) p = 0;\n\n\tconst l = transferPqDecode(\n\t\ti + 0.008609037037932761 * t + 0.11102962500302593 * p\n\t);\n\tconst m = transferPqDecode(\n\t\ti - 0.00860903703793275 * t - 0.11102962500302599 * p\n\t);\n\tconst s = transferPqDecode(\n\t\ti + 0.5600313357106791 * t - 0.32062717498731885 * p\n\t);\n\n\tconst res = {\n\t\tmode: 'xyz65',\n\t\tx: toRel(\n\t\t\t2.0701522183894219 * l -\n\t\t\t\t1.3263473389671556 * m +\n\t\t\t\t0.2066510476294051 * s\n\t\t),\n\t\ty: toRel(\n\t\t\t0.3647385209748074 * l +\n\t\t\t\t0.680566024947227 * m -\n\t\t\t\t0.0453045459220346 * s\n\t\t),\n\t\tz: toRel(\n\t\t\t-0.049747207535812 * l -\n\t\t\t\t0.0492609666966138 * m +\n\t\t\t\t1.1880659249923042 * s\n\t\t)\n\t};\n\n\tif (alpha !== undefined) {\n\t\tres.alpha = alpha;\n\t}\n\n\treturn res;\n};\n\nexport default convertItpToXyz65;\n",
181
+ "import { YW } from '../hdr/constants.js';\nimport { transferPqEncode } from '../hdr/transfer.js';\n\nconst toAbs = (c = 0) => Math.max(c * YW, 0);\n\nconst convertXyz65ToItp = ({ x, y, z, alpha }) => {\n\tconst absX = toAbs(x);\n\tconst absY = toAbs(y);\n\tconst absZ = toAbs(z);\n\tconst l = transferPqEncode(\n\t\t0.3592832590121217 * absX +\n\t\t\t0.6976051147779502 * absY -\n\t\t\t0.0358915932320289 * absZ\n\t);\n\tconst m = transferPqEncode(\n\t\t-0.1920808463704995 * absX +\n\t\t\t1.1004767970374323 * absY +\n\t\t\t0.0753748658519118 * absZ\n\t);\n\tconst s = transferPqEncode(\n\t\t0.0070797844607477 * absX +\n\t\t\t0.0748396662186366 * absY +\n\t\t\t0.8433265453898765 * absZ\n\t);\n\n\tconst i = 0.5 * l + 0.5 * m;\n\tconst t = 1.61376953125 * l - 3.323486328125 * m + 1.709716796875 * s;\n\tconst p = 4.378173828125 * l - 4.24560546875 * m - 0.132568359375 * s;\n\n\tconst res = { mode: 'itp', i, t, p };\n\tif (alpha !== undefined) {\n\t\tres.alpha = alpha;\n\t}\n\n\treturn res;\n};\n\nexport default convertXyz65ToItp;\n",
182
+ "import { interpolatorLinear } from '../interpolate/linear.js';\nimport { fixupAlpha } from '../fixup/alpha.js';\nimport convertItpToXyz65 from './convertItpToXyz65.js';\nimport convertXyz65ToItp from './convertXyz65ToItp.js';\nimport convertRgbToXyz65 from '../xyz65/convertRgbToXyz65.js';\nimport convertXyz65ToRgb from '../xyz65/convertXyz65ToRgb.js';\n\n/*\n ICtCp (or ITP) color space, as defined in ITU-R Recommendation BT.2100.\n\n ICtCp is drafted to be supported in CSS within\n [CSS Color HDR Module Level 1](https://drafts.csswg.org/css-color-hdr/#ICtCp) spec.\n*/\n\nconst definition = {\n\tmode: 'itp',\n\tchannels: ['i', 't', 'p', 'alpha'],\n\tparse: ['--ictcp'],\n\tserialize: '--ictcp',\n\n\ttoMode: {\n\t\txyz65: convertItpToXyz65,\n\t\trgb: color => convertXyz65ToRgb(convertItpToXyz65(color))\n\t},\n\n\tfromMode: {\n\t\txyz65: convertXyz65ToItp,\n\t\trgb: color => convertXyz65ToItp(convertRgbToXyz65(color))\n\t},\n\n\tranges: {\n\t\ti: [0, 0.581],\n\t\tt: [-0.369, 0.272],\n\t\tp: [-0.164, 0.331]\n\t},\n\n\tinterpolate: {\n\t\ti: interpolatorLinear,\n\t\tt: interpolatorLinear,\n\t\tp: interpolatorLinear,\n\t\talpha: { use: interpolatorLinear, fixup: fixupAlpha }\n\t}\n};\n\nexport default definition;\n",
183
+ "import { M1 as n, C1, C2, C3 } from '../hdr/transfer.js';\nconst p = 134.03437499999998; // = 1.7 * 2523 / Math.pow(2, 5);\nconst d0 = 1.6295499532821566e-11;\n\n/* \n\tThe encoding function is derived from Perceptual Quantizer.\n*/\nconst jabPqEncode = v => {\n\tif (v < 0) return 0;\n\tlet vn = Math.pow(v / 10000, n);\n\treturn Math.pow((C1 + C2 * vn) / (1 + C3 * vn), p);\n};\n\n// Convert to Absolute XYZ\nconst abs = (v = 0) => Math.max(v * 203, 0);\n\nconst convertXyz65ToJab = ({ x, y, z, alpha }) => {\n\tx = abs(x);\n\ty = abs(y);\n\tz = abs(z);\n\n\tlet xp = 1.15 * x - 0.15 * z;\n\tlet yp = 0.66 * y + 0.34 * x;\n\n\tlet l = jabPqEncode(0.41478972 * xp + 0.579999 * yp + 0.014648 * z);\n\tlet m = jabPqEncode(-0.20151 * xp + 1.120649 * yp + 0.0531008 * z);\n\tlet s = jabPqEncode(-0.0166008 * xp + 0.2648 * yp + 0.6684799 * z);\n\n\tlet i = (l + m) / 2;\n\n\tlet res = {\n\t\tmode: 'jab',\n\t\tj: (0.44 * i) / (1 - 0.56 * i) - d0,\n\t\ta: 3.524 * l - 4.066708 * m + 0.542708 * s,\n\t\tb: 0.199076 * l + 1.096799 * m - 1.295875 * s\n\t};\n\n\tif (alpha !== undefined) {\n\t\tres.alpha = alpha;\n\t}\n\n\treturn res;\n};\n\nexport default convertXyz65ToJab;\n",
184
+ "import { M1 as n, C1, C2, C3 } from '../hdr/transfer.js';\nconst p = 134.03437499999998; // = 1.7 * 2523 / Math.pow(2, 5);\nconst d0 = 1.6295499532821566e-11;\n\n/* \n\tThe encoding function is derived from Perceptual Quantizer.\n*/\nconst jabPqDecode = v => {\n\tif (v < 0) return 0;\n\tlet vp = Math.pow(v, 1 / p);\n\treturn 10000 * Math.pow((C1 - vp) / (C3 * vp - C2), 1 / n);\n};\n\nconst rel = v => v / 203;\n\nconst convertJabToXyz65 = ({ j, a, b, alpha }) => {\n\tif (j === undefined) j = 0;\n\tif (a === undefined) a = 0;\n\tif (b === undefined) b = 0;\n\tlet i = (j + d0) / (0.44 + 0.56 * (j + d0));\n\n\tlet l = jabPqDecode(i + 0.13860504 * a + 0.058047316 * b);\n\tlet m = jabPqDecode(i - 0.13860504 * a - 0.058047316 * b);\n\tlet s = jabPqDecode(i - 0.096019242 * a - 0.8118919 * b);\n\n\tlet res = {\n\t\tmode: 'xyz65',\n\t\tx: rel(\n\t\t\t1.661373024652174 * l -\n\t\t\t\t0.914523081304348 * m +\n\t\t\t\t0.23136208173913045 * s\n\t\t),\n\t\ty: rel(\n\t\t\t-0.3250758611844533 * l +\n\t\t\t\t1.571847026732543 * m -\n\t\t\t\t0.21825383453227928 * s\n\t\t),\n\t\tz: rel(-0.090982811 * l - 0.31272829 * m + 1.5227666 * s)\n\t};\n\n\tif (alpha !== undefined) {\n\t\tres.alpha = alpha;\n\t}\n\n\treturn res;\n};\n\nexport default convertJabToXyz65;\n",
185
+ "/*\n\tConvert sRGB to JzAzBz.\n\n\tFor achromatic sRGB colors, adjust the equivalent JzAzBz color\n\tto be achromatic as well, insteading of having a very slight chroma.\n */\n\nimport convertXyz65ToJab from './convertXyz65ToJab.js';\nimport convertRgbToXyz65 from '../xyz65/convertRgbToXyz65.js';\n\nconst convertRgbToJab = rgb => {\n\tlet res = convertXyz65ToJab(convertRgbToXyz65(rgb));\n\tif (rgb.r === rgb.b && rgb.b === rgb.g) {\n\t\tres.a = res.b = 0;\n\t}\n\treturn res;\n};\n\nexport default convertRgbToJab;\n",
186
+ "import convertXyz65ToRgb from '../xyz65/convertXyz65ToRgb.js';\nimport convertJabToXyz65 from './convertJabToXyz65.js';\n\nconst convertJabToRgb = color => convertXyz65ToRgb(convertJabToXyz65(color));\n\nexport default convertJabToRgb;\n",
187
+ "/*\n\tThe JzAzBz color space.\n\n\tBased on:\n\n\tMuhammad Safdar, Guihua Cui, Youn Jin Kim, and Ming Ronnier Luo, \n\t\"Perceptually uniform color space for image signals \n\tincluding high dynamic range and wide gamut,\" \n\tOpt. Express 25, 15131-15151 (2017) \n\n\thttps://doi.org/10.1364/OE.25.015131\n */\n\nimport convertXyz65ToJab from './convertXyz65ToJab.js';\nimport convertJabToXyz65 from './convertJabToXyz65.js';\nimport convertRgbToJab from './convertRgbToJab.js';\nimport convertJabToRgb from './convertJabToRgb.js';\n\nimport { interpolatorLinear } from '../interpolate/linear.js';\nimport { fixupAlpha } from '../fixup/alpha.js';\n\nconst definition = {\n\tmode: 'jab',\n\tchannels: ['j', 'a', 'b', 'alpha'],\n\n\tparse: ['--jzazbz'],\n\tserialize: '--jzazbz',\n\n\tfromMode: {\n\t\trgb: convertRgbToJab,\n\t\txyz65: convertXyz65ToJab\n\t},\n\n\ttoMode: {\n\t\trgb: convertJabToRgb,\n\t\txyz65: convertJabToXyz65\n\t},\n\n\tranges: {\n\t\tj: [0, 0.222],\n\t\ta: [-0.109, 0.129],\n\t\tb: [-0.185, 0.134]\n\t},\n\n\tinterpolate: {\n\t\tj: interpolatorLinear,\n\t\ta: interpolatorLinear,\n\t\tb: interpolatorLinear,\n\t\talpha: { use: interpolatorLinear, fixup: fixupAlpha }\n\t}\n};\n\nexport default definition;\n",
188
+ "import normalizeHue from '../util/normalizeHue.js';\n\nconst convertJabToJch = ({ j, a, b, alpha }) => {\n\tif (a === undefined) a = 0;\n\tif (b === undefined) b = 0;\n\tlet c = Math.sqrt(a * a + b * b);\n\tlet res = {\n\t\tmode: 'jch',\n\t\tj,\n\t\tc\n\t};\n\tif (c) {\n\t\tres.h = normalizeHue((Math.atan2(b, a) * 180) / Math.PI);\n\t}\n\tif (alpha !== undefined) {\n\t\tres.alpha = alpha;\n\t}\n\treturn res;\n};\n\nexport default convertJabToJch;\n",
189
+ "const convertJchToJab = ({ j, c, h, alpha }) => {\n\tif (h === undefined) h = 0;\n\tlet res = {\n\t\tmode: 'jab',\n\t\tj,\n\t\ta: c ? c * Math.cos((h / 180) * Math.PI) : 0,\n\t\tb: c ? c * Math.sin((h / 180) * Math.PI) : 0\n\t};\n\tif (alpha !== undefined) res.alpha = alpha;\n\treturn res;\n};\n\nexport default convertJchToJab;\n",
190
+ "import convertJabToJch from './convertJabToJch.js';\nimport convertJchToJab from './convertJchToJab.js';\nimport convertJabToRgb from '../jab/convertJabToRgb.js';\nimport convertRgbToJab from '../jab/convertRgbToJab.js';\n\nimport { fixupHueShorter } from '../fixup/hue.js';\nimport { fixupAlpha } from '../fixup/alpha.js';\nimport { interpolatorLinear } from '../interpolate/linear.js';\nimport { differenceHueChroma } from '../difference.js';\nimport { averageAngle } from '../average.js';\n\nconst definition = {\n\tmode: 'jch',\n\n\tparse: ['--jzczhz'],\n\tserialize: '--jzczhz',\n\n\ttoMode: {\n\t\tjab: convertJchToJab,\n\t\trgb: c => convertJabToRgb(convertJchToJab(c))\n\t},\n\n\tfromMode: {\n\t\trgb: c => convertJabToJch(convertRgbToJab(c)),\n\t\tjab: convertJabToJch\n\t},\n\n\tchannels: ['j', 'c', 'h', 'alpha'],\n\n\tranges: {\n\t\tj: [0, 0.221],\n\t\tc: [0, 0.19],\n\t\th: [0, 360]\n\t},\n\n\tinterpolate: {\n\t\th: { use: interpolatorLinear, fixup: fixupHueShorter },\n\t\tc: interpolatorLinear,\n\t\tj: interpolatorLinear,\n\t\talpha: { use: interpolatorLinear, fixup: fixupAlpha }\n\t},\n\n\tdifference: {\n\t\th: differenceHueChroma\n\t},\n\n\taverage: {\n\t\th: averageAngle\n\t}\n};\n\nexport default definition;\n",
191
+ "export const k = Math.pow(29, 3) / Math.pow(3, 3);\nexport const e = Math.pow(6, 3) / Math.pow(29, 3);\n",
192
+ "import { k, e } from '../xyz50/constants.js';\nimport { D50 } from '../constants.js';\n\nlet fn = v => (Math.pow(v, 3) > e ? Math.pow(v, 3) : (116 * v - 16) / k);\n\nconst convertLabToXyz50 = ({ l, a, b, alpha }) => {\n\tif (l === undefined) l = 0;\n\tif (a === undefined) a = 0;\n\tif (b === undefined) b = 0;\n\tlet fy = (l + 16) / 116;\n\tlet fx = a / 500 + fy;\n\tlet fz = fy - b / 200;\n\n\tlet res = {\n\t\tmode: 'xyz50',\n\t\tx: fn(fx) * D50.X,\n\t\ty: fn(fy) * D50.Y,\n\t\tz: fn(fz) * D50.Z\n\t};\n\n\tif (alpha !== undefined) {\n\t\tres.alpha = alpha;\n\t}\n\n\treturn res;\n};\n\nexport default convertLabToXyz50;\n",
193
+ "/*\n\tCIE XYZ D50 values to sRGB.\n\n\tReferences:\n\t\t* https://drafts.csswg.org/css-color/#color-conversion-code\n\t\t* http://www.brucelindbloom.com/index.html?Eqn_RGB_XYZ_Matrix.html\n*/\n\nimport convertLrgbToRgb from '../lrgb/convertLrgbToRgb.js';\n\nconst convertXyz50ToRgb = ({ x, y, z, alpha }) => {\n\tif (x === undefined) x = 0;\n\tif (y === undefined) y = 0;\n\tif (z === undefined) z = 0;\n\tlet res = convertLrgbToRgb({\n\t\tr:\n\t\t\tx * 3.1341359569958707 -\n\t\t\ty * 1.6173863321612538 -\n\t\t\t0.4906619460083532 * z,\n\t\tg:\n\t\t\tx * -0.978795502912089 +\n\t\t\ty * 1.916254567259524 +\n\t\t\t0.03344273116131949 * z,\n\t\tb:\n\t\t\tx * 0.07195537988411677 -\n\t\t\ty * 0.2289768264158322 +\n\t\t\t1.405386058324125 * z\n\t});\n\tif (alpha !== undefined) {\n\t\tres.alpha = alpha;\n\t}\n\treturn res;\n};\n\nexport default convertXyz50ToRgb;\n",
194
+ "import convertLabToXyz50 from './convertLabToXyz50.js';\nimport convertXyz50ToRgb from '../xyz50/convertXyz50ToRgb.js';\n\nconst convertLabToRgb = lab => convertXyz50ToRgb(convertLabToXyz50(lab));\n\nexport default convertLabToRgb;\n",
195
+ "/*\n\tConvert sRGB values to CIE XYZ D50\n\n\tReferences:\n\t\t* https://drafts.csswg.org/css-color/#color-conversion-code\n\t\t* http://www.brucelindbloom.com/index.html?Eqn_RGB_XYZ_Matrix.html\n\t\n*/\n\nimport convertRgbToLrgb from '../lrgb/convertRgbToLrgb.js';\n\nconst convertRgbToXyz50 = rgb => {\n\tlet { r, g, b, alpha } = convertRgbToLrgb(rgb);\n\tlet res = {\n\t\tmode: 'xyz50',\n\t\tx:\n\t\t\t0.436065742824811 * r +\n\t\t\t0.3851514688337912 * g +\n\t\t\t0.14307845442264197 * b,\n\t\ty:\n\t\t\t0.22249319175623702 * r +\n\t\t\t0.7168870538238823 * g +\n\t\t\t0.06061979053616537 * b,\n\t\tz:\n\t\t\t0.013923904500943465 * r +\n\t\t\t0.09708128566574634 * g +\n\t\t\t0.7140993584005155 * b\n\t};\n\tif (alpha !== undefined) {\n\t\tres.alpha = alpha;\n\t}\n\treturn res;\n};\n\nexport default convertRgbToXyz50;\n",
196
+ "import { k, e } from '../xyz50/constants.js';\nimport { D50 } from '../constants.js';\n\nconst f = value => (value > e ? Math.cbrt(value) : (k * value + 16) / 116);\n\nconst convertXyz50ToLab = ({ x, y, z, alpha }) => {\n\tif (x === undefined) x = 0;\n\tif (y === undefined) y = 0;\n\tif (z === undefined) z = 0;\n\tlet f0 = f(x / D50.X);\n\tlet f1 = f(y / D50.Y);\n\tlet f2 = f(z / D50.Z);\n\n\tlet res = {\n\t\tmode: 'lab',\n\t\tl: 116 * f1 - 16,\n\t\ta: 500 * (f0 - f1),\n\t\tb: 200 * (f1 - f2)\n\t};\n\n\tif (alpha !== undefined) {\n\t\tres.alpha = alpha;\n\t}\n\n\treturn res;\n};\n\nexport default convertXyz50ToLab;\n",
197
+ "import convertRgbToXyz50 from '../xyz50/convertRgbToXyz50.js';\nimport convertXyz50ToLab from './convertXyz50ToLab.js';\n\nconst convertRgbToLab = rgb => {\n\tlet res = convertXyz50ToLab(convertRgbToXyz50(rgb));\n\n\t// Fixes achromatic RGB colors having a _slight_ chroma due to floating-point errors\n\t// and approximated computations in sRGB <-> CIELab.\n\t// See: https://github.com/d3/d3-color/pull/46\n\tif (rgb.r === rgb.b && rgb.b === rgb.g) {\n\t\tres.a = res.b = 0;\n\t}\n\treturn res;\n};\n\nexport default convertRgbToLab;\n",
198
+ "import { Tok } from '../parse.js';\n\nfunction parseLab(color, parsed) {\n\tif (!parsed || parsed[0] !== 'lab') {\n\t\treturn undefined;\n\t}\n\tconst res = { mode: 'lab' };\n\tconst [, l, a, b, alpha] = parsed;\n\tif (l.type === Tok.Hue || a.type === Tok.Hue || b.type === Tok.Hue) {\n\t\treturn undefined;\n\t}\n\tif (l.type !== Tok.None) {\n\t\tres.l = Math.min(Math.max(0, l.value), 100);\n\t}\n\tif (a.type !== Tok.None) {\n\t\tres.a = a.type === Tok.Number ? a.value : (a.value * 125) / 100;\n\t}\n\tif (b.type !== Tok.None) {\n\t\tres.b = b.type === Tok.Number ? b.value : (b.value * 125) / 100;\n\t}\n\tif (alpha.type !== Tok.None) {\n\t\tres.alpha = Math.min(\n\t\t\t1,\n\t\t\tMath.max(\n\t\t\t\t0,\n\t\t\t\talpha.type === Tok.Number ? alpha.value : alpha.value / 100\n\t\t\t)\n\t\t);\n\t}\n\n\treturn res;\n}\n\nexport default parseLab;\n",
199
+ "import convertLabToRgb from './convertLabToRgb.js';\nimport convertLabToXyz50 from './convertLabToXyz50.js';\nimport convertRgbToLab from './convertRgbToLab.js';\nimport convertXyz50ToLab from './convertXyz50ToLab.js';\nimport parseLab from './parseLab.js';\nimport { interpolatorLinear } from '../interpolate/linear.js';\nimport { fixupAlpha } from '../fixup/alpha.js';\n\nconst definition = {\n\tmode: 'lab',\n\n\ttoMode: {\n\t\txyz50: convertLabToXyz50,\n\t\trgb: convertLabToRgb\n\t},\n\n\tfromMode: {\n\t\txyz50: convertXyz50ToLab,\n\t\trgb: convertRgbToLab\n\t},\n\n\tchannels: ['l', 'a', 'b', 'alpha'],\n\n\tranges: {\n\t\tl: [0, 100],\n\t\ta: [-125, 125],\n\t\tb: [-125, 125]\n\t},\n\n\tparse: [parseLab],\n\tserialize: c =>\n\t\t`lab(${c.l !== undefined ? c.l : 'none'} ${\n\t\t\tc.a !== undefined ? c.a : 'none'\n\t\t} ${c.b !== undefined ? c.b : 'none'}${\n\t\t\tc.alpha < 1 ? ` / ${c.alpha}` : ''\n\t\t})`,\n\n\tinterpolate: {\n\t\tl: interpolatorLinear,\n\t\ta: interpolatorLinear,\n\t\tb: interpolatorLinear,\n\t\talpha: { use: interpolatorLinear, fixup: fixupAlpha }\n\t}\n};\n\nexport default definition;\n",
200
+ "import convertLab65ToRgb from './convertLab65ToRgb.js';\nimport convertLab65ToXyz65 from './convertLab65ToXyz65.js';\nimport convertRgbToLab65 from './convertRgbToLab65.js';\nimport convertXyz65ToLab65 from './convertXyz65ToLab65.js';\nimport lab from '../lab/definition.js';\n\nconst definition = {\n\t...lab,\n\tmode: 'lab65',\n\n\tparse: ['--lab-d65'],\n\tserialize: '--lab-d65',\n\n\ttoMode: {\n\t\txyz65: convertLab65ToXyz65,\n\t\trgb: convertLab65ToRgb\n\t},\n\n\tfromMode: {\n\t\txyz65: convertXyz65ToLab65,\n\t\trgb: convertRgbToLab65\n\t},\n\n\tranges: {\n\t\tl: [0, 100],\n\t\ta: [-125, 125],\n\t\tb: [-125, 125]\n\t}\n};\n\nexport default definition;\n",
201
+ "import { Tok } from '../parse.js';\n\nfunction parseLch(color, parsed) {\n\tif (!parsed || parsed[0] !== 'lch') {\n\t\treturn undefined;\n\t}\n\tconst res = { mode: 'lch' };\n\tconst [, l, c, h, alpha] = parsed;\n\tif (l.type !== Tok.None) {\n\t\tif (l.type === Tok.Hue) {\n\t\t\treturn undefined;\n\t\t}\n\t\tres.l = Math.min(Math.max(0, l.value), 100);\n\t}\n\tif (c.type !== Tok.None) {\n\t\tres.c = Math.max(\n\t\t\t0,\n\t\t\tc.type === Tok.Number ? c.value : (c.value * 150) / 100\n\t\t);\n\t}\n\tif (h.type !== Tok.None) {\n\t\tif (h.type === Tok.Percentage) {\n\t\t\treturn undefined;\n\t\t}\n\t\tres.h = h.value;\n\t}\n\tif (alpha.type !== Tok.None) {\n\t\tres.alpha = Math.min(\n\t\t\t1,\n\t\t\tMath.max(\n\t\t\t\t0,\n\t\t\t\talpha.type === Tok.Number ? alpha.value : alpha.value / 100\n\t\t\t)\n\t\t);\n\t}\n\n\treturn res;\n}\n\nexport default parseLch;\n",
202
+ "import convertLabToLch from './convertLabToLch.js';\nimport convertLchToLab from './convertLchToLab.js';\nimport convertLabToRgb from '../lab/convertLabToRgb.js';\nimport convertRgbToLab from '../lab/convertRgbToLab.js';\nimport parseLch from './parseLch.js';\nimport { fixupHueShorter } from '../fixup/hue.js';\nimport { fixupAlpha } from '../fixup/alpha.js';\nimport { interpolatorLinear } from '../interpolate/linear.js';\nimport { differenceHueChroma } from '../difference.js';\nimport { averageAngle } from '../average.js';\n\nconst definition = {\n\tmode: 'lch',\n\n\ttoMode: {\n\t\tlab: convertLchToLab,\n\t\trgb: c => convertLabToRgb(convertLchToLab(c))\n\t},\n\n\tfromMode: {\n\t\trgb: c => convertLabToLch(convertRgbToLab(c)),\n\t\tlab: convertLabToLch\n\t},\n\n\tchannels: ['l', 'c', 'h', 'alpha'],\n\n\tranges: {\n\t\tl: [0, 100],\n\t\tc: [0, 150],\n\t\th: [0, 360]\n\t},\n\n\tparse: [parseLch],\n\tserialize: c =>\n\t\t`lch(${c.l !== undefined ? c.l : 'none'} ${\n\t\t\tc.c !== undefined ? c.c : 'none'\n\t\t} ${c.h !== undefined ? c.h : 'none'}${\n\t\t\tc.alpha < 1 ? ` / ${c.alpha}` : ''\n\t\t})`,\n\n\tinterpolate: {\n\t\th: { use: interpolatorLinear, fixup: fixupHueShorter },\n\t\tc: interpolatorLinear,\n\t\tl: interpolatorLinear,\n\t\talpha: { use: interpolatorLinear, fixup: fixupAlpha }\n\t},\n\n\tdifference: {\n\t\th: differenceHueChroma\n\t},\n\n\taverage: {\n\t\th: averageAngle\n\t}\n};\n\nexport default definition;\n",
203
+ "import convertLabToLch from '../lch/convertLabToLch.js';\nimport convertLchToLab from '../lch/convertLchToLab.js';\nimport convertLab65ToRgb from '../lab65/convertLab65ToRgb.js';\nimport convertRgbToLab65 from '../lab65/convertRgbToLab65.js';\nimport lch from '../lch/definition.js';\n\nconst definition = {\n\t...lch,\n\tmode: 'lch65',\n\n\tparse: ['--lch-d65'],\n\tserialize: '--lch-d65',\n\n\ttoMode: {\n\t\tlab65: c => convertLchToLab(c, 'lab65'),\n\t\trgb: c => convertLab65ToRgb(convertLchToLab(c, 'lab65'))\n\t},\n\n\tfromMode: {\n\t\trgb: c => convertLabToLch(convertRgbToLab65(c), 'lch65'),\n\t\tlab65: c => convertLabToLch(c, 'lch65')\n\t},\n\n\tranges: {\n\t\tl: [0, 100],\n\t\tc: [0, 150],\n\t\th: [0, 360]\n\t}\n};\n\nexport default definition;\n",
204
+ "import normalizeHue from '../util/normalizeHue.js';\n\nconst convertLuvToLchuv = ({ l, u, v, alpha }) => {\n\tif (u === undefined) u = 0;\n\tif (v === undefined) v = 0;\n\tlet c = Math.sqrt(u * u + v * v);\n\tlet res = {\n\t\tmode: 'lchuv',\n\t\tl: l,\n\t\tc: c\n\t};\n\tif (c) {\n\t\tres.h = normalizeHue((Math.atan2(v, u) * 180) / Math.PI);\n\t}\n\tif (alpha !== undefined) {\n\t\tres.alpha = alpha;\n\t}\n\treturn res;\n};\n\nexport default convertLuvToLchuv;\n",
205
+ "const convertLchuvToLuv = ({ l, c, h, alpha }) => {\n\tif (h === undefined) h = 0;\n\tlet res = {\n\t\tmode: 'luv',\n\t\tl: l,\n\t\tu: c ? c * Math.cos((h / 180) * Math.PI) : 0,\n\t\tv: c ? c * Math.sin((h / 180) * Math.PI) : 0\n\t};\n\tif (alpha !== undefined) {\n\t\tres.alpha = alpha;\n\t}\n\treturn res;\n};\n\nexport default convertLchuvToLuv;\n",
206
+ "import { k, e } from '../xyz50/constants.js';\nimport { D50 } from '../constants.js';\n\nexport const u_fn = (x, y, z) => (4 * x) / (x + 15 * y + 3 * z);\nexport const v_fn = (x, y, z) => (9 * y) / (x + 15 * y + 3 * z);\n\nexport const un = u_fn(D50.X, D50.Y, D50.Z);\nexport const vn = v_fn(D50.X, D50.Y, D50.Z);\n\nconst l_fn = value => (value <= e ? k * value : 116 * Math.cbrt(value) - 16);\n\nconst convertXyz50ToLuv = ({ x, y, z, alpha }) => {\n\tif (x === undefined) x = 0;\n\tif (y === undefined) y = 0;\n\tif (z === undefined) z = 0;\n\tlet l = l_fn(y / D50.Y);\n\tlet u = u_fn(x, y, z);\n\tlet v = v_fn(x, y, z);\n\n\t// guard against NaNs produced by `xyz(0 0 0)` black\n\tif (!isFinite(u) || !isFinite(v)) {\n\t\tl = u = v = 0;\n\t} else {\n\t\tu = 13 * l * (u - un);\n\t\tv = 13 * l * (v - vn);\n\t}\n\n\tlet res = {\n\t\tmode: 'luv',\n\t\tl,\n\t\tu,\n\t\tv\n\t};\n\n\tif (alpha !== undefined) {\n\t\tres.alpha = alpha;\n\t}\n\n\treturn res;\n};\n\nexport default convertXyz50ToLuv;\n",
207
+ "import { k } from '../xyz50/constants.js';\nimport { D50 } from '../constants.js';\n\nexport const u_fn = (x, y, z) => (4 * x) / (x + 15 * y + 3 * z);\nexport const v_fn = (x, y, z) => (9 * y) / (x + 15 * y + 3 * z);\n\nexport const un = u_fn(D50.X, D50.Y, D50.Z);\nexport const vn = v_fn(D50.X, D50.Y, D50.Z);\n\nconst convertLuvToXyz50 = ({ l, u, v, alpha }) => {\n\tif (l === undefined) l = 0;\n\tif (l === 0) {\n\t\treturn { mode: 'xyz50', x: 0, y: 0, z: 0 };\n\t}\n\n\tif (u === undefined) u = 0;\n\tif (v === undefined) v = 0;\n\n\tlet up = u / (13 * l) + un;\n\tlet vp = v / (13 * l) + vn;\n\tlet y = D50.Y * (l <= 8 ? l / k : Math.pow((l + 16) / 116, 3));\n\tlet x = (y * (9 * up)) / (4 * vp);\n\tlet z = (y * (12 - 3 * up - 20 * vp)) / (4 * vp);\n\n\tlet res = { mode: 'xyz50', x, y, z };\n\tif (alpha !== undefined) {\n\t\tres.alpha = alpha;\n\t}\n\n\treturn res;\n};\n\nexport default convertLuvToXyz50;\n",
208
+ "/*\n\tCIELChuv color space\n\t--------------------\n\n\tReference: \n\n\t\thttps://en.wikipedia.org/wiki/CIELUV\n */\n\nimport convertLuvToLchuv from './convertLuvToLchuv.js';\nimport convertLchuvToLuv from './convertLchuvToLuv.js';\nimport convertXyz50ToLuv from '../luv/convertXyz50ToLuv.js';\nimport convertLuvToXyz50 from '../luv/convertLuvToXyz50.js';\nimport convertXyz50ToRgb from '../xyz50/convertXyz50ToRgb.js';\nimport convertRgbToXyz50 from '../xyz50/convertRgbToXyz50.js';\n\nimport { fixupHueShorter } from '../fixup/hue.js';\nimport { fixupAlpha } from '../fixup/alpha.js';\nimport { interpolatorLinear } from '../interpolate/linear.js';\nimport { differenceHueChroma } from '../difference.js';\nimport { averageAngle } from '../average.js';\n\nconst convertRgbToLchuv = rgb =>\n\tconvertLuvToLchuv(convertXyz50ToLuv(convertRgbToXyz50(rgb)));\nconst convertLchuvToRgb = lchuv =>\n\tconvertXyz50ToRgb(convertLuvToXyz50(convertLchuvToLuv(lchuv)));\n\nconst definition = {\n\tmode: 'lchuv',\n\n\ttoMode: {\n\t\tluv: convertLchuvToLuv,\n\t\trgb: convertLchuvToRgb\n\t},\n\n\tfromMode: {\n\t\trgb: convertRgbToLchuv,\n\t\tluv: convertLuvToLchuv\n\t},\n\n\tchannels: ['l', 'c', 'h', 'alpha'],\n\n\tparse: ['--lchuv'],\n\tserialize: '--lchuv',\n\n\tranges: {\n\t\tl: [0, 100],\n\t\tc: [0, 176.956],\n\t\th: [0, 360]\n\t},\n\n\tinterpolate: {\n\t\th: { use: interpolatorLinear, fixup: fixupHueShorter },\n\t\tc: interpolatorLinear,\n\t\tl: interpolatorLinear,\n\t\talpha: { use: interpolatorLinear, fixup: fixupAlpha }\n\t},\n\n\tdifference: {\n\t\th: differenceHueChroma\n\t},\n\n\taverage: {\n\t\th: averageAngle\n\t}\n};\n\nexport default definition;\n",
209
+ "import rgb from '../rgb/definition.js';\nimport convertRgbToLrgb from './convertRgbToLrgb.js';\nimport convertLrgbToRgb from './convertLrgbToRgb.js';\n\nconst definition = {\n\t...rgb,\n\tmode: 'lrgb',\n\n\ttoMode: {\n\t\trgb: convertLrgbToRgb\n\t},\n\n\tfromMode: {\n\t\trgb: convertRgbToLrgb\n\t},\n\n\tparse: ['srgb-linear'],\n\tserialize: 'srgb-linear'\n};\n\nexport default definition;\n",
210
+ "/*\n\tCIELUV color space\n\t------------------\n\n\tReference: \n\n\t\thttps://en.wikipedia.org/wiki/CIELUV\n */\n\nimport convertXyz50ToLuv from './convertXyz50ToLuv.js';\nimport convertLuvToXyz50 from './convertLuvToXyz50.js';\nimport convertXyz50ToRgb from '../xyz50/convertXyz50ToRgb.js';\nimport convertRgbToXyz50 from '../xyz50/convertRgbToXyz50.js';\n\nimport { interpolatorLinear } from '../interpolate/linear.js';\nimport { fixupAlpha } from '../fixup/alpha.js';\n\nconst definition = {\n\tmode: 'luv',\n\n\ttoMode: {\n\t\txyz50: convertLuvToXyz50,\n\t\trgb: luv => convertXyz50ToRgb(convertLuvToXyz50(luv))\n\t},\n\n\tfromMode: {\n\t\txyz50: convertXyz50ToLuv,\n\t\trgb: rgb => convertXyz50ToLuv(convertRgbToXyz50(rgb))\n\t},\n\n\tchannels: ['l', 'u', 'v', 'alpha'],\n\n\tparse: ['--luv'],\n\tserialize: '--luv',\n\n\tranges: {\n\t\tl: [0, 100],\n\t\tu: [-84.936, 175.042],\n\t\tv: [-125.882, 87.243]\n\t},\n\n\tinterpolate: {\n\t\tl: interpolatorLinear,\n\t\tu: interpolatorLinear,\n\t\tv: interpolatorLinear,\n\t\talpha: { use: interpolatorLinear, fixup: fixupAlpha }\n\t}\n};\n\nexport default definition;\n",
211
+ "const convertLrgbToOklab = ({ r, g, b, alpha }) => {\n\tif (r === undefined) r = 0;\n\tif (g === undefined) g = 0;\n\tif (b === undefined) b = 0;\n\n\tlet L = Math.cbrt(\n\t\t0.412221469470763 * r + 0.5363325372617348 * g + 0.0514459932675022 * b\n\t);\n\tlet M = Math.cbrt(\n\t\t0.2119034958178252 * r + 0.6806995506452344 * g + 0.1073969535369406 * b\n\t);\n\tlet S = Math.cbrt(\n\t\t0.0883024591900564 * r + 0.2817188391361215 * g + 0.6299787016738222 * b\n\t);\n\n\tlet res = {\n\t\tmode: 'oklab',\n\t\tl:\n\t\t\t0.210454268309314 * L +\n\t\t\t0.7936177747023054 * M -\n\t\t\t0.0040720430116193 * S,\n\t\ta:\n\t\t\t1.9779985324311684 * L -\n\t\t\t2.4285922420485799 * M +\n\t\t\t0.450593709617411 * S,\n\t\tb:\n\t\t\t0.0259040424655478 * L +\n\t\t\t0.7827717124575296 * M -\n\t\t\t0.8086757549230774 * S\n\t};\n\n\tif (alpha !== undefined) {\n\t\tres.alpha = alpha;\n\t}\n\n\treturn res;\n};\n\nexport default convertLrgbToOklab;\n",
212
+ "import convertRgbToLrgb from '../lrgb/convertRgbToLrgb.js';\nimport convertLrgbToOklab from './convertLrgbToOklab.js';\n\nconst convertRgbToOklab = rgb => {\n\tlet res = convertLrgbToOklab(convertRgbToLrgb(rgb));\n\tif (rgb.r === rgb.b && rgb.b === rgb.g) {\n\t\tres.a = res.b = 0;\n\t}\n\treturn res;\n};\n\nexport default convertRgbToOklab;\n",
213
+ "const convertOklabToLrgb = ({ l, a, b, alpha }) => {\n\tif (l === undefined) l = 0;\n\tif (a === undefined) a = 0;\n\tif (b === undefined) b = 0;\n\n\tlet L = Math.pow(l + 0.3963377773761749 * a + 0.2158037573099136 * b, 3);\n\tlet M = Math.pow(l - 0.1055613458156586 * a - 0.0638541728258133 * b, 3);\n\tlet S = Math.pow(l - 0.0894841775298119 * a - 1.2914855480194092 * b, 3);\n\n\tlet res = {\n\t\tmode: 'lrgb',\n\t\tr:\n\t\t\t4.0767416360759574 * L -\n\t\t\t3.3077115392580616 * M +\n\t\t\t0.2309699031821044 * S,\n\t\tg:\n\t\t\t-1.2684379732850317 * L +\n\t\t\t2.6097573492876887 * M -\n\t\t\t0.3413193760026573 * S,\n\t\tb:\n\t\t\t-0.0041960761386756 * L -\n\t\t\t0.7034186179359362 * M +\n\t\t\t1.7076146940746117 * S\n\t};\n\n\tif (alpha !== undefined) {\n\t\tres.alpha = alpha;\n\t}\n\n\treturn res;\n};\n\nexport default convertOklabToLrgb;\n",
214
+ "import convertLrgbToRgb from '../lrgb/convertLrgbToRgb.js';\nimport convertOklabToLrgb from './convertOklabToLrgb.js';\n\nconst convertOklabToRgb = c => convertLrgbToRgb(convertOklabToLrgb(c));\n\nexport default convertOklabToRgb;\n",
215
+ "/*\n\tAdapted from code by Björn Ottosson,\n\treleased under the MIT license:\n\n\tCopyright (c) 2021 Björn Ottosson\n\n\tPermission is hereby granted, free of charge, to any person obtaining a copy of\n\tthis software and associated documentation files (the \"Software\"), to deal in\n\tthe Software without restriction, including without limitation the rights to\n\tuse, copy, modify, merge, publish, distribute, sublicense, and/or sell copies\n\tof the Software, and to permit persons to whom the Software is furnished to do\n\tso, subject to the following conditions:\n\n\tThe above copyright notice and this permission notice shall be included in all\n\tcopies or substantial portions of the Software.\n\n\tTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n\tIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n\tFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n\tAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n\tLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n\tOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n\tSOFTWARE.\n */\n\nimport convertOklabToLrgb from '../oklab/convertOklabToLrgb.js';\n\nexport function toe(x) {\n\tconst k_1 = 0.206;\n\tconst k_2 = 0.03;\n\tconst k_3 = (1 + k_1) / (1 + k_2);\n\treturn (\n\t\t0.5 *\n\t\t(k_3 * x -\n\t\t\tk_1 +\n\t\t\tMath.sqrt((k_3 * x - k_1) * (k_3 * x - k_1) + 4 * k_2 * k_3 * x))\n\t);\n}\n\nexport function toe_inv(x) {\n\tconst k_1 = 0.206;\n\tconst k_2 = 0.03;\n\tconst k_3 = (1 + k_1) / (1 + k_2);\n\treturn (x * x + k_1 * x) / (k_3 * (x + k_2));\n}\n\n// Finds the maximum saturation possible for a given hue that fits in sRGB\n// Saturation here is defined as S = C/L\n// a and b must be normalized so a^2 + b^2 == 1\nfunction compute_max_saturation(a, b) {\n\t// Max saturation will be when one of r, g or b goes below zero.\n\n\t// Select different coefficients depending on which component goes below zero first\n\tlet k0, k1, k2, k3, k4, wl, wm, ws;\n\n\tif (-1.88170328 * a - 0.80936493 * b > 1) {\n\t\t// Red component\n\t\tk0 = +1.19086277;\n\t\tk1 = +1.76576728;\n\t\tk2 = +0.59662641;\n\t\tk3 = +0.75515197;\n\t\tk4 = +0.56771245;\n\t\twl = +4.0767416621;\n\t\twm = -3.3077115913;\n\t\tws = +0.2309699292;\n\t} else if (1.81444104 * a - 1.19445276 * b > 1) {\n\t\t// Green component\n\t\tk0 = +0.73956515;\n\t\tk1 = -0.45954404;\n\t\tk2 = +0.08285427;\n\t\tk3 = +0.1254107;\n\t\tk4 = +0.14503204;\n\t\twl = -1.2684380046;\n\t\twm = +2.6097574011;\n\t\tws = -0.3413193965;\n\t} else {\n\t\t// Blue component\n\t\tk0 = +1.35733652;\n\t\tk1 = -0.00915799;\n\t\tk2 = -1.1513021;\n\t\tk3 = -0.50559606;\n\t\tk4 = +0.00692167;\n\t\twl = -0.0041960863;\n\t\twm = -0.7034186147;\n\t\tws = +1.707614701;\n\t}\n\n\t// Approximate max saturation using a polynomial:\n\tlet S = k0 + k1 * a + k2 * b + k3 * a * a + k4 * a * b;\n\n\t// Do one step Halley's method to get closer\n\t// this gives an error less than 10e6, except for some blue hues where the dS/dh is close to infinite\n\t// this should be sufficient for most applications, otherwise do two/three steps\n\n\tlet k_l = +0.3963377774 * a + 0.2158037573 * b;\n\tlet k_m = -0.1055613458 * a - 0.0638541728 * b;\n\tlet k_s = -0.0894841775 * a - 1.291485548 * b;\n\n\t{\n\t\tlet l_ = 1 + S * k_l;\n\t\tlet m_ = 1 + S * k_m;\n\t\tlet s_ = 1 + S * k_s;\n\n\t\tlet l = l_ * l_ * l_;\n\t\tlet m = m_ * m_ * m_;\n\t\tlet s = s_ * s_ * s_;\n\n\t\tlet l_dS = 3 * k_l * l_ * l_;\n\t\tlet m_dS = 3 * k_m * m_ * m_;\n\t\tlet s_dS = 3 * k_s * s_ * s_;\n\n\t\tlet l_dS2 = 6 * k_l * k_l * l_;\n\t\tlet m_dS2 = 6 * k_m * k_m * m_;\n\t\tlet s_dS2 = 6 * k_s * k_s * s_;\n\n\t\tlet f = wl * l + wm * m + ws * s;\n\t\tlet f1 = wl * l_dS + wm * m_dS + ws * s_dS;\n\t\tlet f2 = wl * l_dS2 + wm * m_dS2 + ws * s_dS2;\n\n\t\tS = S - (f * f1) / (f1 * f1 - 0.5 * f * f2);\n\t}\n\n\treturn S;\n}\n\nexport function find_cusp(a, b) {\n\t// First, find the maximum saturation (saturation S = C/L)\n\tlet S_cusp = compute_max_saturation(a, b);\n\n\t// Convert to linear sRGB to find the first point where at least one of r,g or b >= 1:\n\tlet rgb = convertOklabToLrgb({ l: 1, a: S_cusp * a, b: S_cusp * b });\n\tlet L_cusp = Math.cbrt(1 / Math.max(rgb.r, rgb.g, rgb.b));\n\tlet C_cusp = L_cusp * S_cusp;\n\n\treturn [L_cusp, C_cusp];\n}\n\n// Finds intersection of the line defined by\n// L = L0 * (1 - t) + t * L1;\n// C = t * C1;\n// a and b must be normalized so a^2 + b^2 == 1\nfunction find_gamut_intersection(a, b, L1, C1, L0, cusp = null) {\n\tif (!cusp) {\n\t\t// Find the cusp of the gamut triangle\n\t\tcusp = find_cusp(a, b);\n\t}\n\n\t// Find the intersection for upper and lower half seprately\n\tlet t;\n\tif ((L1 - L0) * cusp[1] - (cusp[0] - L0) * C1 <= 0) {\n\t\t// Lower half\n\n\t\tt = (cusp[1] * L0) / (C1 * cusp[0] + cusp[1] * (L0 - L1));\n\t} else {\n\t\t// Upper half\n\n\t\t// First intersect with triangle\n\t\tt = (cusp[1] * (L0 - 1)) / (C1 * (cusp[0] - 1) + cusp[1] * (L0 - L1));\n\n\t\t// Then one step Halley's method\n\t\t{\n\t\t\tlet dL = L1 - L0;\n\t\t\tlet dC = C1;\n\n\t\t\tlet k_l = +0.3963377774 * a + 0.2158037573 * b;\n\t\t\tlet k_m = -0.1055613458 * a - 0.0638541728 * b;\n\t\t\tlet k_s = -0.0894841775 * a - 1.291485548 * b;\n\n\t\t\tlet l_dt = dL + dC * k_l;\n\t\t\tlet m_dt = dL + dC * k_m;\n\t\t\tlet s_dt = dL + dC * k_s;\n\n\t\t\t// If higher accuracy is required, 2 or 3 iterations of the following block can be used:\n\t\t\t{\n\t\t\t\tlet L = L0 * (1 - t) + t * L1;\n\t\t\t\tlet C = t * C1;\n\n\t\t\t\tlet l_ = L + C * k_l;\n\t\t\t\tlet m_ = L + C * k_m;\n\t\t\t\tlet s_ = L + C * k_s;\n\n\t\t\t\tlet l = l_ * l_ * l_;\n\t\t\t\tlet m = m_ * m_ * m_;\n\t\t\t\tlet s = s_ * s_ * s_;\n\n\t\t\t\tlet ldt = 3 * l_dt * l_ * l_;\n\t\t\t\tlet mdt = 3 * m_dt * m_ * m_;\n\t\t\t\tlet sdt = 3 * s_dt * s_ * s_;\n\n\t\t\t\tlet ldt2 = 6 * l_dt * l_dt * l_;\n\t\t\t\tlet mdt2 = 6 * m_dt * m_dt * m_;\n\t\t\t\tlet sdt2 = 6 * s_dt * s_dt * s_;\n\n\t\t\t\tlet r =\n\t\t\t\t\t4.0767416621 * l - 3.3077115913 * m + 0.2309699292 * s - 1;\n\t\t\t\tlet r1 =\n\t\t\t\t\t4.0767416621 * ldt -\n\t\t\t\t\t3.3077115913 * mdt +\n\t\t\t\t\t0.2309699292 * sdt;\n\t\t\t\tlet r2 =\n\t\t\t\t\t4.0767416621 * ldt2 -\n\t\t\t\t\t3.3077115913 * mdt2 +\n\t\t\t\t\t0.2309699292 * sdt2;\n\n\t\t\t\tlet u_r = r1 / (r1 * r1 - 0.5 * r * r2);\n\t\t\t\tlet t_r = -r * u_r;\n\n\t\t\t\tlet g =\n\t\t\t\t\t-1.2684380046 * l + 2.6097574011 * m - 0.3413193965 * s - 1;\n\t\t\t\tlet g1 =\n\t\t\t\t\t-1.2684380046 * ldt +\n\t\t\t\t\t2.6097574011 * mdt -\n\t\t\t\t\t0.3413193965 * sdt;\n\t\t\t\tlet g2 =\n\t\t\t\t\t-1.2684380046 * ldt2 +\n\t\t\t\t\t2.6097574011 * mdt2 -\n\t\t\t\t\t0.3413193965 * sdt2;\n\n\t\t\t\tlet u_g = g1 / (g1 * g1 - 0.5 * g * g2);\n\t\t\t\tlet t_g = -g * u_g;\n\n\t\t\t\tlet b =\n\t\t\t\t\t-0.0041960863 * l - 0.7034186147 * m + 1.707614701 * s - 1;\n\t\t\t\tlet b1 =\n\t\t\t\t\t-0.0041960863 * ldt -\n\t\t\t\t\t0.7034186147 * mdt +\n\t\t\t\t\t1.707614701 * sdt;\n\t\t\t\tlet b2 =\n\t\t\t\t\t-0.0041960863 * ldt2 -\n\t\t\t\t\t0.7034186147 * mdt2 +\n\t\t\t\t\t1.707614701 * sdt2;\n\n\t\t\t\tlet u_b = b1 / (b1 * b1 - 0.5 * b * b2);\n\t\t\t\tlet t_b = -b * u_b;\n\n\t\t\t\tt_r = u_r >= 0 ? t_r : 10e5;\n\t\t\t\tt_g = u_g >= 0 ? t_g : 10e5;\n\t\t\t\tt_b = u_b >= 0 ? t_b : 10e5;\n\n\t\t\t\tt += Math.min(t_r, Math.min(t_g, t_b));\n\t\t\t}\n\t\t}\n\t}\n\n\treturn t;\n}\n\nexport function get_ST_max(a_, b_, cusp = null) {\n\tif (!cusp) {\n\t\tcusp = find_cusp(a_, b_);\n\t}\n\tlet L = cusp[0];\n\tlet C = cusp[1];\n\treturn [C / L, C / (1 - L)];\n}\n\nexport function get_ST_mid(a_, b_) {\n\tlet S =\n\t\t0.11516993 +\n\t\t1 /\n\t\t\t(+7.4477897 +\n\t\t\t\t4.1590124 * b_ +\n\t\t\t\ta_ *\n\t\t\t\t\t(-2.19557347 +\n\t\t\t\t\t\t1.75198401 * b_ +\n\t\t\t\t\t\ta_ *\n\t\t\t\t\t\t\t(-2.13704948 -\n\t\t\t\t\t\t\t\t10.02301043 * b_ +\n\t\t\t\t\t\t\t\ta_ *\n\t\t\t\t\t\t\t\t\t(-4.24894561 +\n\t\t\t\t\t\t\t\t\t\t5.38770819 * b_ +\n\t\t\t\t\t\t\t\t\t\t4.69891013 * a_))));\n\n\tlet T =\n\t\t0.11239642 +\n\t\t1 /\n\t\t\t(+1.6132032 -\n\t\t\t\t0.68124379 * b_ +\n\t\t\t\ta_ *\n\t\t\t\t\t(+0.40370612 +\n\t\t\t\t\t\t0.90148123 * b_ +\n\t\t\t\t\t\ta_ *\n\t\t\t\t\t\t\t(-0.27087943 +\n\t\t\t\t\t\t\t\t0.6122399 * b_ +\n\t\t\t\t\t\t\t\ta_ *\n\t\t\t\t\t\t\t\t\t(+0.00299215 -\n\t\t\t\t\t\t\t\t\t\t0.45399568 * b_ -\n\t\t\t\t\t\t\t\t\t\t0.14661872 * a_))));\n\n\treturn [S, T];\n}\n\nexport function get_Cs(L, a_, b_) {\n\tlet cusp = find_cusp(a_, b_);\n\n\tlet C_max = find_gamut_intersection(a_, b_, L, 1, L, cusp);\n\tlet ST_max = get_ST_max(a_, b_, cusp);\n\n\tlet S_mid =\n\t\t0.11516993 +\n\t\t1 /\n\t\t\t(+7.4477897 +\n\t\t\t\t4.1590124 * b_ +\n\t\t\t\ta_ *\n\t\t\t\t\t(-2.19557347 +\n\t\t\t\t\t\t1.75198401 * b_ +\n\t\t\t\t\t\ta_ *\n\t\t\t\t\t\t\t(-2.13704948 -\n\t\t\t\t\t\t\t\t10.02301043 * b_ +\n\t\t\t\t\t\t\t\ta_ *\n\t\t\t\t\t\t\t\t\t(-4.24894561 +\n\t\t\t\t\t\t\t\t\t\t5.38770819 * b_ +\n\t\t\t\t\t\t\t\t\t\t4.69891013 * a_))));\n\n\tlet T_mid =\n\t\t0.11239642 +\n\t\t1 /\n\t\t\t(+1.6132032 -\n\t\t\t\t0.68124379 * b_ +\n\t\t\t\ta_ *\n\t\t\t\t\t(+0.40370612 +\n\t\t\t\t\t\t0.90148123 * b_ +\n\t\t\t\t\t\ta_ *\n\t\t\t\t\t\t\t(-0.27087943 +\n\t\t\t\t\t\t\t\t0.6122399 * b_ +\n\t\t\t\t\t\t\t\ta_ *\n\t\t\t\t\t\t\t\t\t(+0.00299215 -\n\t\t\t\t\t\t\t\t\t\t0.45399568 * b_ -\n\t\t\t\t\t\t\t\t\t\t0.14661872 * a_))));\n\n\tlet k = C_max / Math.min(L * ST_max[0], (1 - L) * ST_max[1]);\n\n\tlet C_a = L * S_mid;\n\tlet C_b = (1 - L) * T_mid;\n\tlet C_mid =\n\t\t0.9 *\n\t\tk *\n\t\tMath.sqrt(\n\t\t\tMath.sqrt(\n\t\t\t\t1 / (1 / (C_a * C_a * C_a * C_a) + 1 / (C_b * C_b * C_b * C_b))\n\t\t\t)\n\t\t);\n\n\tC_a = L * 0.4;\n\tC_b = (1 - L) * 0.8;\n\tlet C_0 = Math.sqrt(1 / (1 / (C_a * C_a) + 1 / (C_b * C_b)));\n\treturn [C_0, C_mid, C_max];\n}\n",
216
+ "/*\n\tAdapted from code by Björn Ottosson,\n\treleased under the MIT license:\n\n\tCopyright (c) 2021 Björn Ottosson\n\n\tPermission is hereby granted, free of charge, to any person obtaining a copy of\n\tthis software and associated documentation files (the \"Software\"), to deal in\n\tthe Software without restriction, including without limitation the rights to\n\tuse, copy, modify, merge, publish, distribute, sublicense, and/or sell copies\n\tof the Software, and to permit persons to whom the Software is furnished to do\n\tso, subject to the following conditions:\n\n\tThe above copyright notice and this permission notice shall be included in all\n\tcopies or substantial portions of the Software.\n\n\tTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n\tIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n\tFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n\tAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n\tLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n\tOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n\tSOFTWARE.\n */\n\nimport normalizeHue from '../util/normalizeHue.js';\nimport { get_Cs, toe } from './helpers.js';\n\nexport default function convertOklabToOkhsl(lab) {\n\tconst l = lab.l !== undefined ? lab.l : 0;\n\tconst a = lab.a !== undefined ? lab.a : 0;\n\tconst b = lab.b !== undefined ? lab.b : 0;\n\n\tconst ret = { mode: 'okhsl', l: toe(l) };\n\n\tif (lab.alpha !== undefined) {\n\t\tret.alpha = lab.alpha;\n\t}\n\tlet c = Math.sqrt(a * a + b * b);\n\tif (!c) {\n\t\tret.s = 0;\n\t\treturn ret;\n\t}\n\tlet [C_0, C_mid, C_max] = get_Cs(l, a / c, b / c);\n\tlet s;\n\tif (c < C_mid) {\n\t\tlet k_0 = 0;\n\t\tlet k_1 = 0.8 * C_0;\n\t\tlet k_2 = 1 - k_1 / C_mid;\n\t\tlet t = (c - k_0) / (k_1 + k_2 * (c - k_0));\n\t\ts = t * 0.8;\n\t} else {\n\t\tlet k_0 = C_mid;\n\t\tlet k_1 = (0.2 * C_mid * C_mid * 1.25 * 1.25) / C_0;\n\t\tlet k_2 = 1 - k_1 / (C_max - C_mid);\n\t\tlet t = (c - k_0) / (k_1 + k_2 * (c - k_0));\n\t\ts = 0.8 + 0.2 * t;\n\t}\n\tif (s) {\n\t\tret.s = s;\n\t\tret.h = normalizeHue((Math.atan2(b, a) * 180) / Math.PI);\n\t}\n\treturn ret;\n}\n",
217
+ "/*\n\tAdapted from code by Björn Ottosson,\n\treleased under the MIT license:\n\n\tCopyright (c) 2021 Björn Ottosson\n\n\tPermission is hereby granted, free of charge, to any person obtaining a copy of\n\tthis software and associated documentation files (the \"Software\"), to deal in\n\tthe Software without restriction, including without limitation the rights to\n\tuse, copy, modify, merge, publish, distribute, sublicense, and/or sell copies\n\tof the Software, and to permit persons to whom the Software is furnished to do\n\tso, subject to the following conditions:\n\n\tThe above copyright notice and this permission notice shall be included in all\n\tcopies or substantial portions of the Software.\n\n\tTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n\tIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n\tFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n\tAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n\tLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n\tOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n\tSOFTWARE.\n */\n\nimport { toe_inv, get_Cs } from './helpers.js';\n\nexport default function convertOkhslToOklab(hsl) {\n\tlet h = hsl.h !== undefined ? hsl.h : 0;\n\tlet s = hsl.s !== undefined ? hsl.s : 0;\n\tlet l = hsl.l !== undefined ? hsl.l : 0;\n\n\tconst ret = { mode: 'oklab', l: toe_inv(l) };\n\n\tif (hsl.alpha !== undefined) {\n\t\tret.alpha = hsl.alpha;\n\t}\n\n\tif (!s || l === 1) {\n\t\tret.a = ret.b = 0;\n\t\treturn ret;\n\t}\n\n\tlet a_ = Math.cos((h / 180) * Math.PI);\n\tlet b_ = Math.sin((h / 180) * Math.PI);\n\tlet [C_0, C_mid, C_max] = get_Cs(ret.l, a_, b_);\n\tlet t, k_0, k_1, k_2;\n\tif (s < 0.8) {\n\t\tt = 1.25 * s;\n\t\tk_0 = 0;\n\t\tk_1 = 0.8 * C_0;\n\t\tk_2 = 1 - k_1 / C_mid;\n\t} else {\n\t\tt = 5 * (s - 0.8);\n\t\tk_0 = C_mid;\n\t\tk_1 = (0.2 * C_mid * C_mid * 1.25 * 1.25) / C_0;\n\t\tk_2 = 1 - k_1 / (C_max - C_mid);\n\t}\n\tlet C = k_0 + (t * k_1) / (1 - k_2 * t);\n\tret.a = C * a_;\n\tret.b = C * b_;\n\n\treturn ret;\n}\n",
218
+ "import convertRgbToOklab from '../oklab/convertRgbToOklab.js';\nimport convertOklabToRgb from '../oklab/convertOklabToRgb.js';\nimport convertOklabToOkhsl from './convertOklabToOkhsl.js';\nimport convertOkhslToOklab from './convertOkhslToOklab.js';\n\nimport modeHsl from '../hsl/definition.js';\n\nconst modeOkhsl = {\n\t...modeHsl,\n\tmode: 'okhsl',\n\tchannels: ['h', 's', 'l', 'alpha'],\n\tparse: ['--okhsl'],\n\tserialize: '--okhsl',\n\tfromMode: {\n\t\toklab: convertOklabToOkhsl,\n\t\trgb: c => convertOklabToOkhsl(convertRgbToOklab(c))\n\t},\n\ttoMode: {\n\t\toklab: convertOkhslToOklab,\n\t\trgb: c => convertOklabToRgb(convertOkhslToOklab(c))\n\t}\n};\n\nexport default modeOkhsl;\n",
219
+ "/*\n\tAdapted from code by Björn Ottosson,\n\treleased under the MIT license:\n\n\tCopyright (c) 2021 Björn Ottosson\n\n\tPermission is hereby granted, free of charge, to any person obtaining a copy of\n\tthis software and associated documentation files (the \"Software\"), to deal in\n\tthe Software without restriction, including without limitation the rights to\n\tuse, copy, modify, merge, publish, distribute, sublicense, and/or sell copies\n\tof the Software, and to permit persons to whom the Software is furnished to do\n\tso, subject to the following conditions:\n\n\tThe above copyright notice and this permission notice shall be included in all\n\tcopies or substantial portions of the Software.\n\n\tTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n\tIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n\tFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n\tAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n\tLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n\tOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n\tSOFTWARE.\n */\n\nimport normalizeHue from '../util/normalizeHue.js';\nimport convertOklabToLrgb from '../oklab/convertOklabToLrgb.js';\nimport { get_ST_max, toe_inv, toe } from '../okhsl/helpers.js';\n\nexport default function convertOklabToOkhsv(lab) {\n\tlet l = lab.l !== undefined ? lab.l : 0;\n\tlet a = lab.a !== undefined ? lab.a : 0;\n\tlet b = lab.b !== undefined ? lab.b : 0;\n\n\tlet c = Math.sqrt(a * a + b * b);\n\n\t// TODO: c = 0\n\tlet a_ = c ? a / c : 1;\n\tlet b_ = c ? b / c : 1;\n\n\tlet [S_max, T] = get_ST_max(a_, b_);\n\tlet S_0 = 0.5;\n\tlet k = 1 - S_0 / S_max;\n\n\tlet t = T / (c + l * T);\n\tlet L_v = t * l;\n\tlet C_v = t * c;\n\n\tlet L_vt = toe_inv(L_v);\n\tlet C_vt = (C_v * L_vt) / L_v;\n\n\tlet rgb_scale = convertOklabToLrgb({ l: L_vt, a: a_ * C_vt, b: b_ * C_vt });\n\tlet scale_L = Math.cbrt(\n\t\t1 / Math.max(rgb_scale.r, rgb_scale.g, rgb_scale.b, 0)\n\t);\n\n\tl = l / scale_L;\n\tc = ((c / scale_L) * toe(l)) / l;\n\tl = toe(l);\n\n\tconst ret = {\n\t\tmode: 'okhsv',\n\t\ts: c ? ((S_0 + T) * C_v) / (T * S_0 + T * k * C_v) : 0,\n\t\tv: l ? l / L_v : 0\n\t};\n\tif (ret.s) {\n\t\tret.h = normalizeHue((Math.atan2(b, a) * 180) / Math.PI);\n\t}\n\tif (lab.alpha !== undefined) {\n\t\tret.alpha = lab.alpha;\n\t}\n\treturn ret;\n}\n",
220
+ "/*\n\tCopyright (c) 2021 Björn Ottosson\n\n\tPermission is hereby granted, free of charge, to any person obtaining a copy of\n\tthis software and associated documentation files (the \"Software\"), to deal in\n\tthe Software without restriction, including without limitation the rights to\n\tuse, copy, modify, merge, publish, distribute, sublicense, and/or sell copies\n\tof the Software, and to permit persons to whom the Software is furnished to do\n\tso, subject to the following conditions:\n\n\tThe above copyright notice and this permission notice shall be included in all\n\tcopies or substantial portions of the Software.\n\n\tTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n\tIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n\tFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n\tAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n\tLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n\tOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n\tSOFTWARE.\n */\n\nimport convertOklabToLrgb from '../oklab/convertOklabToLrgb.js';\nimport { get_ST_max, toe_inv } from '../okhsl/helpers.js';\n\nexport default function convertOkhsvToOklab(hsv) {\n\tconst ret = { mode: 'oklab' };\n\tif (hsv.alpha !== undefined) {\n\t\tret.alpha = hsv.alpha;\n\t}\n\n\tconst h = hsv.h !== undefined ? hsv.h : 0;\n\tconst s = hsv.s !== undefined ? hsv.s : 0;\n\tconst v = hsv.v !== undefined ? hsv.v : 0;\n\n\tconst a_ = Math.cos((h / 180) * Math.PI);\n\tconst b_ = Math.sin((h / 180) * Math.PI);\n\n\tconst [S_max, T] = get_ST_max(a_, b_);\n\tconst S_0 = 0.5;\n\tconst k = 1 - S_0 / S_max;\n\tconst L_v = 1 - (s * S_0) / (S_0 + T - T * k * s);\n\tconst C_v = (s * T * S_0) / (S_0 + T - T * k * s);\n\n\tconst L_vt = toe_inv(L_v);\n\tconst C_vt = (C_v * L_vt) / L_v;\n\tconst rgb_scale = convertOklabToLrgb({\n\t\tl: L_vt,\n\t\ta: a_ * C_vt,\n\t\tb: b_ * C_vt\n\t});\n\tconst scale_L = Math.cbrt(\n\t\t1 / Math.max(rgb_scale.r, rgb_scale.g, rgb_scale.b, 0)\n\t);\n\n\tconst L_new = toe_inv(v * L_v);\n\tconst C = (C_v * L_new) / L_v;\n\n\tret.l = L_new * scale_L;\n\tret.a = C * a_ * scale_L;\n\tret.b = C * b_ * scale_L;\n\n\treturn ret;\n}\n",
221
+ "import convertRgbToOklab from '../oklab/convertRgbToOklab.js';\nimport convertOklabToRgb from '../oklab/convertOklabToRgb.js';\nimport convertOklabToOkhsv from './convertOklabToOkhsv.js';\nimport convertOkhsvToOklab from './convertOkhsvToOklab.js';\n\nimport modeHsv from '../hsv/definition.js';\n\nconst modeOkhsv = {\n\t...modeHsv,\n\tmode: 'okhsv',\n\tchannels: ['h', 's', 'v', 'alpha'],\n\tparse: ['--okhsv'],\n\tserialize: '--okhsv',\n\tfromMode: {\n\t\toklab: convertOklabToOkhsv,\n\t\trgb: c => convertOklabToOkhsv(convertRgbToOklab(c))\n\t},\n\ttoMode: {\n\t\toklab: convertOkhsvToOklab,\n\t\trgb: c => convertOklabToRgb(convertOkhsvToOklab(c))\n\t}\n};\n\nexport default modeOkhsv;\n",
222
+ "import { Tok } from '../parse.js';\n\nfunction parseOklab(color, parsed) {\n\tif (!parsed || parsed[0] !== 'oklab') {\n\t\treturn undefined;\n\t}\n\tconst res = { mode: 'oklab' };\n\tconst [, l, a, b, alpha] = parsed;\n\tif (l.type === Tok.Hue || a.type === Tok.Hue || b.type === Tok.Hue) {\n\t\treturn undefined;\n\t}\n\tif (l.type !== Tok.None) {\n\t\tres.l = Math.min(\n\t\t\tMath.max(0, l.type === Tok.Number ? l.value : l.value / 100),\n\t\t\t1\n\t\t);\n\t}\n\tif (a.type !== Tok.None) {\n\t\tres.a = a.type === Tok.Number ? a.value : (a.value * 0.4) / 100;\n\t}\n\tif (b.type !== Tok.None) {\n\t\tres.b = b.type === Tok.Number ? b.value : (b.value * 0.4) / 100;\n\t}\n\tif (alpha.type !== Tok.None) {\n\t\tres.alpha = Math.min(\n\t\t\t1,\n\t\t\tMath.max(\n\t\t\t\t0,\n\t\t\t\talpha.type === Tok.Number ? alpha.value : alpha.value / 100\n\t\t\t)\n\t\t);\n\t}\n\n\treturn res;\n}\n\nexport default parseOklab;\n",
223
+ "import convertOklabToLrgb from './convertOklabToLrgb.js';\nimport convertLrgbToOklab from './convertLrgbToOklab.js';\nimport convertRgbToOklab from './convertRgbToOklab.js';\nimport convertOklabToRgb from './convertOklabToRgb.js';\nimport parseOklab from './parseOklab.js';\n\nimport lab from '../lab/definition.js';\n\n/*\n\tOklab, a perceptual color space for image processing by Björn Ottosson\n\tReference: https://bottosson.github.io/posts/oklab/\n */\n\nconst definition = {\n\t...lab,\n\tmode: 'oklab',\n\n\ttoMode: {\n\t\tlrgb: convertOklabToLrgb,\n\t\trgb: convertOklabToRgb\n\t},\n\n\tfromMode: {\n\t\tlrgb: convertLrgbToOklab,\n\t\trgb: convertRgbToOklab\n\t},\n\n\tranges: {\n\t\tl: [0, 1],\n\t\ta: [-0.4, 0.4],\n\t\tb: [-0.4, 0.4]\n\t},\n\n\tparse: [parseOklab],\n\tserialize: c =>\n\t\t`oklab(${c.l !== undefined ? c.l : 'none'} ${\n\t\t\tc.a !== undefined ? c.a : 'none'\n\t\t} ${c.b !== undefined ? c.b : 'none'}${\n\t\t\tc.alpha < 1 ? ` / ${c.alpha}` : ''\n\t\t})`\n};\n\nexport default definition;\n",
224
+ "import { Tok } from '../parse.js';\n\nfunction parseOklch(color, parsed) {\n\tif (!parsed || parsed[0] !== 'oklch') {\n\t\treturn undefined;\n\t}\n\tconst res = { mode: 'oklch' };\n\tconst [, l, c, h, alpha] = parsed;\n\tif (l.type !== Tok.None) {\n\t\tif (l.type === Tok.Hue) {\n\t\t\treturn undefined;\n\t\t}\n\t\tres.l = Math.min(\n\t\t\tMath.max(0, l.type === Tok.Number ? l.value : l.value / 100),\n\t\t\t1\n\t\t);\n\t}\n\tif (c.type !== Tok.None) {\n\t\tres.c = Math.max(\n\t\t\t0,\n\t\t\tc.type === Tok.Number ? c.value : (c.value * 0.4) / 100\n\t\t);\n\t}\n\tif (h.type !== Tok.None) {\n\t\tif (h.type === Tok.Percentage) {\n\t\t\treturn undefined;\n\t\t}\n\t\tres.h = h.value;\n\t}\n\tif (alpha.type !== Tok.None) {\n\t\tres.alpha = Math.min(\n\t\t\t1,\n\t\t\tMath.max(\n\t\t\t\t0,\n\t\t\t\talpha.type === Tok.Number ? alpha.value : alpha.value / 100\n\t\t\t)\n\t\t);\n\t}\n\n\treturn res;\n}\n\nexport default parseOklch;\n",
225
+ "import lch from '../lch/definition.js';\nimport convertLabToLch from '../lch/convertLabToLch.js';\nimport convertLchToLab from '../lch/convertLchToLab.js';\nimport convertOklabToRgb from '../oklab/convertOklabToRgb.js';\nimport convertRgbToOklab from '../oklab/convertRgbToOklab.js';\nimport parseOklch from './parseOklch.js';\n\nconst definition = {\n\t...lch,\n\tmode: 'oklch',\n\n\ttoMode: {\n\t\toklab: c => convertLchToLab(c, 'oklab'),\n\t\trgb: c => convertOklabToRgb(convertLchToLab(c, 'oklab'))\n\t},\n\n\tfromMode: {\n\t\trgb: c => convertLabToLch(convertRgbToOklab(c), 'oklch'),\n\t\toklab: c => convertLabToLch(c, 'oklch')\n\t},\n\n\tparse: [parseOklch],\n\tserialize: c =>\n\t\t`oklch(${c.l !== undefined ? c.l : 'none'} ${\n\t\t\tc.c !== undefined ? c.c : 'none'\n\t\t} ${c.h !== undefined ? c.h : 'none'}${\n\t\t\tc.alpha < 1 ? ` / ${c.alpha}` : ''\n\t\t})`,\n\n\tranges: {\n\t\tl: [0, 1],\n\t\tc: [0, 0.4],\n\t\th: [0, 360]\n\t}\n};\n\nexport default definition;\n",
226
+ "/*\n\tConvert Display P3 values to CIE XYZ D65\n\n\tReferences:\n\t\t* https://drafts.csswg.org/css-color/#color-conversion-code\n\t\t* http://www.brucelindbloom.com/index.html?Eqn_RGB_XYZ_Matrix.html\n*/\n\nimport convertRgbToLrgb from '../lrgb/convertRgbToLrgb.js';\n\nconst convertP3ToXyz65 = rgb => {\n\tlet { r, g, b, alpha } = convertRgbToLrgb(rgb);\n\tlet res = {\n\t\tmode: 'xyz65',\n\t\tx:\n\t\t\t0.486570948648216 * r +\n\t\t\t0.265667693169093 * g +\n\t\t\t0.1982172852343625 * b,\n\t\ty:\n\t\t\t0.2289745640697487 * r +\n\t\t\t0.6917385218365062 * g +\n\t\t\t0.079286914093745 * b,\n\t\tz: 0.0 * r + 0.0451133818589026 * g + 1.043944368900976 * b\n\t};\n\tif (alpha !== undefined) {\n\t\tres.alpha = alpha;\n\t}\n\treturn res;\n};\n\nexport default convertP3ToXyz65;\n",
227
+ "/*\n\tCIE XYZ D65 values to Display P3.\n\n\tReferences:\n\t\t* https://drafts.csswg.org/css-color/#color-conversion-code\n\t\t* http://www.brucelindbloom.com/index.html?Eqn_RGB_XYZ_Matrix.html\n*/\n\nimport convertLrgbToRgb from '../lrgb/convertLrgbToRgb.js';\n\nconst convertXyz65ToP3 = ({ x, y, z, alpha }) => {\n\tif (x === undefined) x = 0;\n\tif (y === undefined) y = 0;\n\tif (z === undefined) z = 0;\n\tlet res = convertLrgbToRgb(\n\t\t{\n\t\t\tr:\n\t\t\t\tx * 2.4934969119414263 -\n\t\t\t\ty * 0.9313836179191242 -\n\t\t\t\t0.402710784450717 * z,\n\t\t\tg:\n\t\t\t\tx * -0.8294889695615749 +\n\t\t\t\ty * 1.7626640603183465 +\n\t\t\t\t0.0236246858419436 * z,\n\t\t\tb:\n\t\t\t\tx * 0.0358458302437845 -\n\t\t\t\ty * 0.0761723892680418 +\n\t\t\t\t0.9568845240076871 * z\n\t\t},\n\t\t'p3'\n\t);\n\tif (alpha !== undefined) {\n\t\tres.alpha = alpha;\n\t}\n\treturn res;\n};\n\nexport default convertXyz65ToP3;\n",
228
+ "import rgb from '../rgb/definition.js';\nimport convertP3ToXyz65 from './convertP3ToXyz65.js';\nimport convertXyz65ToP3 from './convertXyz65ToP3.js';\nimport convertRgbToXyz65 from '../xyz65/convertRgbToXyz65.js';\nimport convertXyz65ToRgb from '../xyz65/convertXyz65ToRgb.js';\n\nconst definition = {\n\t...rgb,\n\tmode: 'p3',\n\tparse: ['display-p3'],\n\tserialize: 'display-p3',\n\n\tfromMode: {\n\t\trgb: color => convertXyz65ToP3(convertRgbToXyz65(color)),\n\t\txyz65: convertXyz65ToP3\n\t},\n\n\ttoMode: {\n\t\trgb: color => convertXyz65ToRgb(convertP3ToXyz65(color)),\n\t\txyz65: convertP3ToXyz65\n\t}\n};\n\nexport default definition;\n",
229
+ "/*\n\tConvert CIE XYZ D50 values to ProPhoto RGB\n\n\tReferences:\n\t\t* https://drafts.csswg.org/css-color/#color-conversion-code\n\t\t* http://www.brucelindbloom.com/index.html?Eqn_RGB_XYZ_Matrix.html\n*/\n\nconst gamma = v => {\n\tlet abs = Math.abs(v);\n\tif (abs >= 1 / 512) {\n\t\treturn Math.sign(v) * Math.pow(abs, 1 / 1.8);\n\t}\n\treturn 16 * v;\n};\n\nconst convertXyz50ToProphoto = ({ x, y, z, alpha }) => {\n\tif (x === undefined) x = 0;\n\tif (y === undefined) y = 0;\n\tif (z === undefined) z = 0;\n\tlet res = {\n\t\tmode: 'prophoto',\n\t\tr: gamma(\n\t\t\tx * 1.3457868816471585 -\n\t\t\t\ty * 0.2555720873797946 -\n\t\t\t\t0.0511018649755453 * z\n\t\t),\n\t\tg: gamma(\n\t\t\tx * -0.5446307051249019 +\n\t\t\t\ty * 1.5082477428451466 +\n\t\t\t\t0.0205274474364214 * z\n\t\t),\n\t\tb: gamma(x * 0.0 + y * 0.0 + 1.2119675456389452 * z)\n\t};\n\tif (alpha !== undefined) {\n\t\tres.alpha = alpha;\n\t}\n\treturn res;\n};\n\nexport default convertXyz50ToProphoto;\n",
230
+ "/*\n\tConvert ProPhoto RGB values to CIE XYZ D50\n\n\tReferences:\n\t\t* https://drafts.csswg.org/css-color/#color-conversion-code\n\t\t* http://www.brucelindbloom.com/index.html?Eqn_RGB_XYZ_Matrix.html\n*/\n\nconst linearize = (v = 0) => {\n\tlet abs = Math.abs(v);\n\tif (abs >= 16 / 512) {\n\t\treturn Math.sign(v) * Math.pow(abs, 1.8);\n\t}\n\treturn v / 16;\n};\n\nconst convertProphotoToXyz50 = prophoto => {\n\tlet r = linearize(prophoto.r);\n\tlet g = linearize(prophoto.g);\n\tlet b = linearize(prophoto.b);\n\tlet res = {\n\t\tmode: 'xyz50',\n\t\tx:\n\t\t\t0.7977666449006423 * r +\n\t\t\t0.1351812974005331 * g +\n\t\t\t0.0313477341283922 * b,\n\t\ty:\n\t\t\t0.2880748288194013 * r +\n\t\t\t0.7118352342418731 * g +\n\t\t\t0.0000899369387256 * b,\n\t\tz: 0 * r + 0 * g + 0.8251046025104602 * b\n\t};\n\tif (prophoto.alpha !== undefined) {\n\t\tres.alpha = prophoto.alpha;\n\t}\n\treturn res;\n};\n\nexport default convertProphotoToXyz50;\n",
231
+ "import rgb from '../rgb/definition.js';\n\nimport convertXyz50ToProphoto from './convertXyz50ToProphoto.js';\nimport convertProphotoToXyz50 from './convertProphotoToXyz50.js';\n\nimport convertXyz50ToRgb from '../xyz50/convertXyz50ToRgb.js';\nimport convertRgbToXyz50 from '../xyz50/convertRgbToXyz50.js';\n\n/*\n\tProPhoto RGB Color space\n\n\tReferences:\n\t\t* https://en.wikipedia.org/wiki/ProPhoto_RGB_color_space\n */\n\nconst definition = {\n\t...rgb,\n\tmode: 'prophoto',\n\tparse: ['prophoto-rgb'],\n\tserialize: 'prophoto-rgb',\n\n\tfromMode: {\n\t\txyz50: convertXyz50ToProphoto,\n\t\trgb: color => convertXyz50ToProphoto(convertRgbToXyz50(color))\n\t},\n\n\ttoMode: {\n\t\txyz50: convertProphotoToXyz50,\n\t\trgb: color => convertXyz50ToRgb(convertProphotoToXyz50(color))\n\t}\n};\n\nexport default definition;\n",
232
+ "/*\n\tConvert CIE XYZ D65 values to Rec. 2020\n\n\tReferences:\n\t\t* https://drafts.csswg.org/css-color/#color-conversion-code\n\t\t* http://www.brucelindbloom.com/index.html?Eqn_RGB_XYZ_Matrix.html\n\t\t* https://www.itu.int/rec/R-REC-BT.2020/en\n*/\n\nconst α = 1.09929682680944;\nconst β = 0.018053968510807;\nconst gamma = v => {\n\tconst abs = Math.abs(v);\n\tif (abs > β) {\n\t\treturn (Math.sign(v) || 1) * (α * Math.pow(abs, 0.45) - (α - 1));\n\t}\n\treturn 4.5 * v;\n};\n\nconst convertXyz65ToRec2020 = ({ x, y, z, alpha }) => {\n\tif (x === undefined) x = 0;\n\tif (y === undefined) y = 0;\n\tif (z === undefined) z = 0;\n\tlet res = {\n\t\tmode: 'rec2020',\n\t\tr: gamma(\n\t\t\tx * 1.7166511879712683 -\n\t\t\t\ty * 0.3556707837763925 -\n\t\t\t\t0.2533662813736599 * z\n\t\t),\n\t\tg: gamma(\n\t\t\tx * -0.6666843518324893 +\n\t\t\t\ty * 1.6164812366349395 +\n\t\t\t\t0.0157685458139111 * z\n\t\t),\n\t\tb: gamma(\n\t\t\tx * 0.0176398574453108 -\n\t\t\t\ty * 0.0427706132578085 +\n\t\t\t\t0.9421031212354739 * z\n\t\t)\n\t};\n\tif (alpha !== undefined) {\n\t\tres.alpha = alpha;\n\t}\n\treturn res;\n};\n\nexport default convertXyz65ToRec2020;\n",
233
+ "/*\n\tConvert Rec. 2020 values to CIE XYZ D65\n\n\tReferences:\n\t\t* https://drafts.csswg.org/css-color/#color-conversion-code\n\t\t* http://www.brucelindbloom.com/index.html?Eqn_RGB_XYZ_Matrix.html\n\t\t* https://www.itu.int/rec/R-REC-BT.2020/en\n*/\n\nconst α = 1.09929682680944;\nconst β = 0.018053968510807;\n\nconst linearize = (v = 0) => {\n\tlet abs = Math.abs(v);\n\tif (abs < β * 4.5) {\n\t\treturn v / 4.5;\n\t}\n\treturn (Math.sign(v) || 1) * Math.pow((abs + α - 1) / α, 1 / 0.45);\n};\n\nconst convertRec2020ToXyz65 = rec2020 => {\n\tlet r = linearize(rec2020.r);\n\tlet g = linearize(rec2020.g);\n\tlet b = linearize(rec2020.b);\n\tlet res = {\n\t\tmode: 'xyz65',\n\t\tx:\n\t\t\t0.6369580483012911 * r +\n\t\t\t0.1446169035862083 * g +\n\t\t\t0.1688809751641721 * b,\n\t\ty:\n\t\t\t0.262700212011267 * r +\n\t\t\t0.6779980715188708 * g +\n\t\t\t0.059301716469862 * b,\n\t\tz: 0 * r + 0.0280726930490874 * g + 1.0609850577107909 * b\n\t};\n\tif (rec2020.alpha !== undefined) {\n\t\tres.alpha = rec2020.alpha;\n\t}\n\treturn res;\n};\n\nexport default convertRec2020ToXyz65;\n",
234
+ "import rgb from '../rgb/definition.js';\n\nimport convertXyz65ToRec2020 from './convertXyz65ToRec2020.js';\nimport convertRec2020ToXyz65 from './convertRec2020ToXyz65.js';\n\nimport convertRgbToXyz65 from '../xyz65/convertRgbToXyz65.js';\nimport convertXyz65ToRgb from '../xyz65/convertXyz65ToRgb.js';\n\nconst definition = {\n\t...rgb,\n\tmode: 'rec2020',\n\n\tfromMode: {\n\t\txyz65: convertXyz65ToRec2020,\n\t\trgb: color => convertXyz65ToRec2020(convertRgbToXyz65(color))\n\t},\n\n\ttoMode: {\n\t\txyz65: convertRec2020ToXyz65,\n\t\trgb: color => convertXyz65ToRgb(convertRec2020ToXyz65(color))\n\t},\n\n\tparse: ['rec2020'],\n\tserialize: 'rec2020'\n};\n\nexport default definition;\n",
235
+ "export const bias = 0.00379307325527544933;\nexport const bias_cbrt = Math.cbrt(bias);\n",
236
+ "import convertRgbToLrgb from '../lrgb/convertRgbToLrgb.js';\nimport { bias, bias_cbrt } from './constants.js';\n\nconst transfer = v => Math.cbrt(v) - bias_cbrt;\n\nconst convertRgbToXyb = color => {\n\tconst { r, g, b, alpha } = convertRgbToLrgb(color);\n\tconst l = transfer(0.3 * r + 0.622 * g + 0.078 * b + bias);\n\tconst m = transfer(0.23 * r + 0.692 * g + 0.078 * b + bias);\n\tconst s = transfer(\n\t\t0.24342268924547819 * r +\n\t\t\t0.20476744424496821 * g +\n\t\t\t0.5518098665095536 * b +\n\t\t\tbias\n\t);\n\tconst res = {\n\t\tmode: 'xyb',\n\t\tx: (l - m) / 2,\n\t\ty: (l + m) / 2,\n\t\t/* Apply default chroma from luma (subtract Y from B) */\n\t\tb: s - (l + m) / 2\n\t};\n\tif (alpha !== undefined) res.alpha = alpha;\n\treturn res;\n};\n\nexport default convertRgbToXyb;\n",
237
+ "import convertLrgbToRgb from '../lrgb/convertLrgbToRgb.js';\nimport { bias, bias_cbrt } from './constants.js';\n\nconst transfer = v => Math.pow(v + bias_cbrt, 3);\n\nconst convertXybToRgb = ({ x, y, b, alpha }) => {\n\tif (x === undefined) x = 0;\n\tif (y === undefined) y = 0;\n\tif (b === undefined) b = 0;\n\tconst l = transfer(x + y) - bias;\n\tconst m = transfer(y - x) - bias;\n\t/* Account for chroma from luma: add Y back to B */\n\tconst s = transfer(b + y) - bias;\n\n\tconst res = convertLrgbToRgb({\n\t\tr:\n\t\t\t11.031566904639861 * l -\n\t\t\t9.866943908131562 * m -\n\t\t\t0.16462299650829934 * s,\n\t\tg:\n\t\t\t-3.2541473810744237 * l +\n\t\t\t4.418770377582723 * m -\n\t\t\t0.16462299650829934 * s,\n\t\tb:\n\t\t\t-3.6588512867136815 * l +\n\t\t\t2.7129230459360922 * m +\n\t\t\t1.9459282407775895 * s\n\t});\n\tif (alpha !== undefined) res.alpha = alpha;\n\treturn res;\n};\n\nexport default convertXybToRgb;\n",
238
+ "import { interpolatorLinear } from '../interpolate/linear.js';\nimport { fixupAlpha } from '../fixup/alpha.js';\nimport convertRgbToXyb from './convertRgbToXyb.js';\nimport convertXybToRgb from './convertXybToRgb.js';\n\n/*\n\tThe XYB color space, used in JPEG XL.\n\tReference: https://ds.jpeg.org/whitepapers/jpeg-xl-whitepaper.pdf\n*/\n\nconst definition = {\n\tmode: 'xyb',\n\tchannels: ['x', 'y', 'b', 'alpha'],\n\tparse: ['--xyb'],\n\tserialize: '--xyb',\n\n\ttoMode: {\n\t\trgb: convertXybToRgb\n\t},\n\n\tfromMode: {\n\t\trgb: convertRgbToXyb\n\t},\n\n\tranges: {\n\t\tx: [-0.0154, 0.0281],\n\t\ty: [0, 0.8453],\n\t\tb: [-0.2778, 0.388]\n\t},\n\n\tinterpolate: {\n\t\tx: interpolatorLinear,\n\t\ty: interpolatorLinear,\n\t\tb: interpolatorLinear,\n\t\talpha: { use: interpolatorLinear, fixup: fixupAlpha }\n\t}\n};\n\nexport default definition;\n",
239
+ "/*\n\tThe XYZ D50 color space\n\t-----------------------\n */\n\nimport convertXyz50ToRgb from './convertXyz50ToRgb.js';\nimport convertXyz50ToLab from '../lab/convertXyz50ToLab.js';\nimport convertRgbToXyz50 from './convertRgbToXyz50.js';\nimport convertLabToXyz50 from '../lab/convertLabToXyz50.js';\nimport { interpolatorLinear } from '../interpolate/linear.js';\nimport { fixupAlpha } from '../fixup/alpha.js';\n\nconst definition = {\n\tmode: 'xyz50',\n\tparse: ['xyz-d50'],\n\tserialize: 'xyz-d50',\n\n\ttoMode: {\n\t\trgb: convertXyz50ToRgb,\n\t\tlab: convertXyz50ToLab\n\t},\n\n\tfromMode: {\n\t\trgb: convertRgbToXyz50,\n\t\tlab: convertLabToXyz50\n\t},\n\n\tchannels: ['x', 'y', 'z', 'alpha'],\n\n\tranges: {\n\t\tx: [0, 0.964],\n\t\ty: [0, 0.999],\n\t\tz: [0, 0.825]\n\t},\n\n\tinterpolate: {\n\t\tx: interpolatorLinear,\n\t\ty: interpolatorLinear,\n\t\tz: interpolatorLinear,\n\t\talpha: { use: interpolatorLinear, fixup: fixupAlpha }\n\t}\n};\n\nexport default definition;\n",
240
+ "/*\n\tChromatic adaptation of CIE XYZ from D65 to D50 white point\n\tusing the Bradford method.\n\n\tReferences:\n\t\t* https://drafts.csswg.org/css-color/#color-conversion-code\n\t\t* http://www.brucelindbloom.com/index.html?Eqn_ChromAdapt.html\t\n*/\n\nconst convertXyz65ToXyz50 = xyz65 => {\n\tlet { x, y, z, alpha } = xyz65;\n\tif (x === undefined) x = 0;\n\tif (y === undefined) y = 0;\n\tif (z === undefined) z = 0;\n\tlet res = {\n\t\tmode: 'xyz50',\n\t\tx:\n\t\t\t1.0479298208405488 * x +\n\t\t\t0.0229467933410191 * y -\n\t\t\t0.0501922295431356 * z,\n\t\ty:\n\t\t\t0.0296278156881593 * x +\n\t\t\t0.990434484573249 * y -\n\t\t\t0.0170738250293851 * z,\n\t\tz:\n\t\t\t-0.0092430581525912 * x +\n\t\t\t0.0150551448965779 * y +\n\t\t\t0.7518742899580008 * z\n\t};\n\tif (alpha !== undefined) {\n\t\tres.alpha = alpha;\n\t}\n\treturn res;\n};\n\nexport default convertXyz65ToXyz50;\n",
241
+ "/*\n\tChromatic adaptation of CIE XYZ from D50 to D65 white point\n\tusing the Bradford method.\n\n\tReferences:\n\t\t* https://drafts.csswg.org/css-color/#color-conversion-code\n\t\t* http://www.brucelindbloom.com/index.html?Eqn_ChromAdapt.html\t\n*/\n\nconst convertXyz50ToXyz65 = xyz50 => {\n\tlet { x, y, z, alpha } = xyz50;\n\tif (x === undefined) x = 0;\n\tif (y === undefined) y = 0;\n\tif (z === undefined) z = 0;\n\tlet res = {\n\t\tmode: 'xyz65',\n\t\tx:\n\t\t\t0.9554734527042182 * x -\n\t\t\t0.0230985368742614 * y +\n\t\t\t0.0632593086610217 * z,\n\t\ty:\n\t\t\t-0.0283697069632081 * x +\n\t\t\t1.0099954580058226 * y +\n\t\t\t0.021041398966943 * z,\n\t\tz:\n\t\t\t0.0123140016883199 * x -\n\t\t\t0.0205076964334779 * y +\n\t\t\t1.3303659366080753 * z\n\t};\n\tif (alpha !== undefined) {\n\t\tres.alpha = alpha;\n\t}\n\treturn res;\n};\n\nexport default convertXyz50ToXyz65;\n",
242
+ "/*\n\tThe XYZ D65 color space\n\t-----------------------\n */\n\nimport convertXyz65ToRgb from './convertXyz65ToRgb.js';\nimport convertRgbToXyz65 from './convertRgbToXyz65.js';\n\nimport convertXyz65ToXyz50 from './convertXyz65ToXyz50.js';\nimport convertXyz50ToXyz65 from './convertXyz50ToXyz65.js';\n\nimport { interpolatorLinear } from '../interpolate/linear.js';\nimport { fixupAlpha } from '../fixup/alpha.js';\n\nconst definition = {\n\tmode: 'xyz65',\n\n\ttoMode: {\n\t\trgb: convertXyz65ToRgb,\n\t\txyz50: convertXyz65ToXyz50\n\t},\n\n\tfromMode: {\n\t\trgb: convertRgbToXyz65,\n\t\txyz50: convertXyz50ToXyz65\n\t},\n\n\tranges: {\n\t\tx: [0, 0.95],\n\t\ty: [0, 1],\n\t\tz: [0, 1.088]\n\t},\n\n\tchannels: ['x', 'y', 'z', 'alpha'],\n\n\tparse: ['xyz', 'xyz-d65'],\n\tserialize: 'xyz-d65',\n\n\tinterpolate: {\n\t\tx: interpolatorLinear,\n\t\ty: interpolatorLinear,\n\t\tz: interpolatorLinear,\n\t\talpha: { use: interpolatorLinear, fixup: fixupAlpha }\n\t}\n};\n\nexport default definition;\n",
243
+ "const convertRgbToYiq = ({ r, g, b, alpha }) => {\n\tif (r === undefined) r = 0;\n\tif (g === undefined) g = 0;\n\tif (b === undefined) b = 0;\n\tconst res = {\n\t\tmode: 'yiq',\n\t\ty: 0.29889531 * r + 0.58662247 * g + 0.11448223 * b,\n\t\ti: 0.59597799 * r - 0.2741761 * g - 0.32180189 * b,\n\t\tq: 0.21147017 * r - 0.52261711 * g + 0.31114694 * b\n\t};\n\tif (alpha !== undefined) res.alpha = alpha;\n\treturn res;\n};\n\nexport default convertRgbToYiq;\n",
244
+ "const convertYiqToRgb = ({ y, i, q, alpha }) => {\n\tif (y === undefined) y = 0;\n\tif (i === undefined) i = 0;\n\tif (q === undefined) q = 0;\n\tconst res = {\n\t\tmode: 'rgb',\n\t\tr: y + 0.95608445 * i + 0.6208885 * q,\n\t\tg: y - 0.27137664 * i - 0.6486059 * q,\n\t\tb: y - 1.10561724 * i + 1.70250126 * q\n\t};\n\tif (alpha !== undefined) res.alpha = alpha;\n\treturn res;\n};\n\nexport default convertYiqToRgb;\n",
245
+ "import convertRgbToYiq from './convertRgbToYiq.js';\nimport convertYiqToRgb from './convertYiqToRgb.js';\nimport { interpolatorLinear } from '../interpolate/linear.js';\nimport { fixupAlpha } from '../fixup/alpha.js';\n\n/*\n\tYIQ Color Space\n\n\tReferences\n\t----------\n\n\tWikipedia:\n\t\thttps://en.wikipedia.org/wiki/YIQ\n\n\t\"Measuring perceived color difference using YIQ NTSC\n\ttransmission color space in mobile applications\"\n\t\t\n\t\tby Yuriy Kotsarenko, Fernando Ramos in:\n\t\tProgramación Matemática y Software (2010) \n\n\tAvailable at:\n\t\t\n\t\thttp://www.progmat.uaem.mx:8080/artVol2Num2/Articulo3Vol2Num2.pdf\n */\n\nconst definition = {\n\tmode: 'yiq',\n\n\ttoMode: {\n\t\trgb: convertYiqToRgb\n\t},\n\n\tfromMode: {\n\t\trgb: convertRgbToYiq\n\t},\n\n\tchannels: ['y', 'i', 'q', 'alpha'],\n\n\tparse: ['--yiq'],\n\tserialize: '--yiq',\n\n\tranges: {\n\t\ti: [-0.595, 0.595],\n\t\tq: [-0.522, 0.522]\n\t},\n\n\tinterpolate: {\n\t\ty: interpolatorLinear,\n\t\ti: interpolatorLinear,\n\t\tq: interpolatorLinear,\n\t\talpha: { use: interpolatorLinear, fixup: fixupAlpha }\n\t}\n};\n\nexport default definition;\n",
246
+ "// From: https://github.com/d3/d3-format/issues/32\n\nconst r = (value, precision) =>\n\tMath.round(value * (precision = Math.pow(10, precision))) / precision;\n\nconst round =\n\t(precision = 4) =>\n\tvalue =>\n\t\ttypeof value === 'number' ? r(value, precision) : value;\n\nexport default round;\n",
247
+ "import converter from './converter.js';\nimport round from './round.js';\nimport prepare from './_prepare.js';\nimport { getMode } from './modes.js';\n\nlet twoDecimals = round(2);\n\nconst clamp = value => Math.max(0, Math.min(1, value || 0));\nconst fixup = value => Math.round(clamp(value) * 255);\n\nconst rgb = converter('rgb');\nconst hsl = converter('hsl');\n\nexport const serializeHex = color => {\n\tif (color === undefined) {\n\t\treturn undefined;\n\t}\n\n\tlet r = fixup(color.r);\n\tlet g = fixup(color.g);\n\tlet b = fixup(color.b);\n\n\treturn '#' + ((1 << 24) | (r << 16) | (g << 8) | b).toString(16).slice(1);\n};\n\nexport const serializeHex8 = color => {\n\tif (color === undefined) {\n\t\treturn undefined;\n\t}\n\n\tlet a = fixup(color.alpha !== undefined ? color.alpha : 1);\n\treturn serializeHex(color) + ((1 << 8) | a).toString(16).slice(1);\n};\n\nexport const serializeRgb = color => {\n\tif (color === undefined) {\n\t\treturn undefined;\n\t}\n\n\tlet r = fixup(color.r);\n\tlet g = fixup(color.g);\n\tlet b = fixup(color.b);\n\n\tif (color.alpha === undefined || color.alpha === 1) {\n\t\t// opaque color\n\t\treturn `rgb(${r}, ${g}, ${b})`;\n\t} else {\n\t\t// transparent color\n\t\treturn `rgba(${r}, ${g}, ${b}, ${twoDecimals(clamp(color.alpha))})`;\n\t}\n};\n\nexport const serializeHsl = color => {\n\tif (color === undefined) {\n\t\treturn undefined;\n\t}\n\n\tconst h = twoDecimals(color.h || 0);\n\tconst s = twoDecimals(clamp(color.s) * 100) + '%';\n\tconst l = twoDecimals(clamp(color.l) * 100) + '%';\n\n\tif (color.alpha === undefined || color.alpha === 1) {\n\t\t// opaque color\n\t\treturn `hsl(${h}, ${s}, ${l})`;\n\t} else {\n\t\t// transparent color\n\t\treturn `hsla(${h}, ${s}, ${l}, ${twoDecimals(clamp(color.alpha))})`;\n\t}\n};\n\nexport const formatCss = c => {\n\tconst color = prepare(c);\n\tif (!color) {\n\t\treturn undefined;\n\t}\n\tconst def = getMode(color.mode);\n\tif (!def.serialize || typeof def.serialize === 'string') {\n\t\tlet res = `color(${def.serialize || `--${color.mode}`} `;\n\t\tdef.channels.forEach((ch, i) => {\n\t\t\tif (ch !== 'alpha') {\n\t\t\t\tres +=\n\t\t\t\t\t(i ? ' ' : '') +\n\t\t\t\t\t(color[ch] !== undefined ? color[ch] : 'none');\n\t\t\t}\n\t\t});\n\t\tif (color.alpha !== undefined && color.alpha < 1) {\n\t\t\tres += ` / ${color.alpha}`;\n\t\t}\n\t\treturn res + ')';\n\t}\n\tif (typeof def.serialize === 'function') {\n\t\treturn def.serialize(color);\n\t}\n\treturn undefined;\n};\n\nexport const formatHex = c => serializeHex(rgb(c));\nexport const formatHex8 = c => serializeHex8(rgb(c));\nexport const formatRgb = c => serializeRgb(rgb(c));\nexport const formatHsl = c => serializeHsl(hsl(c));\n",
248
+ "// Color space definitions\nimport modeA98 from './a98/definition.js';\nimport modeCubehelix from './cubehelix/definition.js';\nimport modeDlab from './dlab/definition.js';\nimport modeDlch from './dlch/definition.js';\nimport modeHsi from './hsi/definition.js';\nimport modeHsl from './hsl/definition.js';\nimport modeHsv from './hsv/definition.js';\nimport modeHwb from './hwb/definition.js';\nimport modeItp from './itp/definition.js';\nimport modeJab from './jab/definition.js';\nimport modeJch from './jch/definition.js';\nimport modeLab from './lab/definition.js';\nimport modeLab65 from './lab65/definition.js';\nimport modeLch from './lch/definition.js';\nimport modeLch65 from './lch65/definition.js';\nimport modeLchuv from './lchuv/definition.js';\nimport modeLrgb from './lrgb/definition.js';\nimport modeLuv from './luv/definition.js';\nimport modeOkhsl from './okhsl/modeOkhsl.js';\nimport modeOkhsv from './okhsv/modeOkhsv.js';\nimport modeOklab from './oklab/definition.js';\nimport modeOklch from './oklch/definition.js';\nimport modeP3 from './p3/definition.js';\nimport modeProphoto from './prophoto/definition.js';\nimport modeRec2020 from './rec2020/definition.js';\nimport modeRgb from './rgb/definition.js';\nimport modeXyb from './xyb/definition.js';\nimport modeXyz50 from './xyz50/definition.js';\nimport modeXyz65 from './xyz65/definition.js';\nimport modeYiq from './yiq/definition.js';\nimport { useMode } from './modes.js';\n\nexport { default as converter } from './converter.js';\n\nexport {\n\tserializeHex,\n\tserializeHex8,\n\tserializeRgb,\n\tserializeHsl,\n\tformatHex,\n\tformatHex8,\n\tformatRgb,\n\tformatHsl,\n\tformatCss\n} from './formatter.js';\n\nexport { default as colorsNamed } from './colors/named.js';\nexport { default as blend } from './blend.js';\nexport { default as random } from './random.js';\n\nexport {\n\tfixupHueShorter,\n\tfixupHueLonger,\n\tfixupHueIncreasing,\n\tfixupHueDecreasing\n} from './fixup/hue.js';\n\nexport { fixupAlpha } from './fixup/alpha.js';\n\nexport {\n\tmapper,\n\tmapAlphaMultiply,\n\tmapAlphaDivide,\n\tmapTransferLinear,\n\tmapTransferGamma\n} from './map.js';\n\nexport { average, averageAngle, averageNumber } from './average.js';\n\nexport { default as round } from './round.js';\nexport {\n\tinterpolate,\n\tinterpolateWith,\n\tinterpolateWithPremultipliedAlpha\n} from './interpolate/interpolate.js';\n\nexport { interpolatorLinear } from './interpolate/linear.js';\n\nexport { interpolatorPiecewise } from './interpolate/piecewise.js';\n\nexport {\n\tinterpolatorSplineBasis,\n\tinterpolatorSplineBasisClosed\n} from './interpolate/splineBasis.js';\n\nexport {\n\tinterpolatorSplineNatural,\n\tinterpolatorSplineNaturalClosed\n} from './interpolate/splineNatural.js';\n\nexport {\n\tinterpolatorSplineMonotone,\n\tinterpolatorSplineMonotone2,\n\tinterpolatorSplineMonotoneClosed\n} from './interpolate/splineMonotone.js';\n\nexport { lerp, unlerp, blerp, trilerp } from './interpolate/lerp.js';\nexport { default as samples } from './samples.js';\nexport {\n\tdisplayable,\n\tinGamut,\n\tclampRgb,\n\tclampChroma,\n\tclampGamut,\n\ttoGamut\n} from './clamp.js';\nexport { default as nearest } from './nearest.js';\nexport { useMode, getMode, useParser, removeParser } from './modes.js';\nexport { default as parse } from './parse.js';\n\nexport {\n\tdifferenceEuclidean,\n\tdifferenceCie76,\n\tdifferenceCie94,\n\tdifferenceCiede2000,\n\tdifferenceCmc,\n\tdifferenceHyab,\n\tdifferenceHueSaturation,\n\tdifferenceHueChroma,\n\tdifferenceHueNaive,\n\tdifferenceKotsarenkoRamos,\n\tdifferenceItp\n} from './difference.js';\n\nexport {\n\tfilterBrightness,\n\tfilterContrast,\n\tfilterSepia,\n\tfilterInvert,\n\tfilterSaturate,\n\tfilterGrayscale,\n\tfilterHueRotate\n} from './filter.js';\n\nexport {\n\tfilterDeficiencyProt,\n\tfilterDeficiencyDeuter,\n\tfilterDeficiencyTrit\n} from './deficiency.js';\n\n// Easings\nexport { default as easingMidpoint } from './easing/midpoint.js';\nexport {\n\teasingSmoothstep,\n\teasingSmoothstepInverse\n} from './easing/smoothstep.js';\nexport { default as easingSmootherstep } from './easing/smootherstep.js';\nexport { default as easingInOutSine } from './easing/inOutSine.js';\nexport { default as easingGamma } from './easing/gamma.js';\n\nexport {\n\tluminance as wcagLuminance,\n\tcontrast as wcagContrast\n} from './wcag.js';\n\nexport { default as parseHsl } from './hsl/parseHsl.js';\nexport { default as parseHwb } from './hwb/parseHwb.js';\nexport { default as parseLab } from './lab/parseLab.js';\nexport { default as parseLch } from './lch/parseLch.js';\nexport { default as parseNamed } from './rgb/parseNamed.js';\nexport { default as parseTransparent } from './rgb/parseTransparent.js';\nexport { default as parseHex } from './rgb/parseHex.js';\nexport { default as parseRgb } from './rgb/parseRgb.js';\nexport { default as parseHslLegacy } from './hsl/parseHslLegacy.js';\nexport { default as parseRgbLegacy } from './rgb/parseRgbLegacy.js';\nexport { default as parseOklab } from './oklab/parseOklab.js';\nexport { default as parseOklch } from './oklch/parseOklch.js';\n\nexport { default as convertA98ToXyz65 } from './a98/convertA98ToXyz65.js';\nexport { default as convertCubehelixToRgb } from './cubehelix/convertCubehelixToRgb.js';\nexport { default as convertDlchToLab65 } from './dlch/convertDlchToLab65.js';\nexport { default as convertHsiToRgb } from './hsi/convertHsiToRgb.js';\nexport { default as convertHslToRgb } from './hsl/convertHslToRgb.js';\nexport { default as convertHsvToRgb } from './hsv/convertHsvToRgb.js';\nexport { default as convertHwbToRgb } from './hwb/convertHwbToRgb.js';\nexport { default as convertItpToXyz65 } from './itp/convertItpToXyz65.js';\nexport { default as convertJabToJch } from './jch/convertJabToJch.js';\nexport { default as convertJabToRgb } from './jab/convertJabToRgb.js';\nexport { default as convertJabToXyz65 } from './jab/convertJabToXyz65.js';\nexport { default as convertJchToJab } from './jch/convertJchToJab.js';\nexport { default as convertLab65ToDlch } from './dlch/convertLab65ToDlch.js';\nexport { default as convertLab65ToRgb } from './lab65/convertLab65ToRgb.js';\nexport { default as convertLab65ToXyz65 } from './lab65/convertLab65ToXyz65.js';\nexport { default as convertLabToLch } from './lch/convertLabToLch.js';\nexport { default as convertLabToRgb } from './lab/convertLabToRgb.js';\nexport { default as convertLabToXyz50 } from './lab/convertLabToXyz50.js';\nexport { default as convertLchToLab } from './lch/convertLchToLab.js';\nexport { default as convertLchuvToLuv } from './lchuv/convertLchuvToLuv.js';\nexport { default as convertLrgbToOklab } from './oklab/convertLrgbToOklab.js';\nexport { default as convertLrgbToRgb } from './lrgb/convertLrgbToRgb.js';\nexport { default as convertLuvToLchuv } from './lchuv/convertLuvToLchuv.js';\nexport { default as convertLuvToXyz50 } from './luv/convertLuvToXyz50.js';\nexport { default as convertOkhslToOklab } from './okhsl/convertOkhslToOklab.js';\nexport { default as convertOkhsvToOklab } from './okhsv/convertOkhsvToOklab.js';\nexport { default as convertOklabToLrgb } from './oklab/convertOklabToLrgb.js';\nexport { default as convertOklabToOkhsl } from './okhsl/convertOklabToOkhsl.js';\nexport { default as convertOklabToOkhsv } from './okhsv/convertOklabToOkhsv.js';\nexport { default as convertOklabToRgb } from './oklab/convertOklabToRgb.js';\nexport { default as convertP3ToXyz65 } from './p3/convertP3ToXyz65.js';\nexport { default as convertProphotoToXyz50 } from './prophoto/convertProphotoToXyz50.js';\nexport { default as convertRec2020ToXyz65 } from './rec2020/convertRec2020ToXyz65.js';\nexport { default as convertRgbToCubehelix } from './cubehelix/convertRgbToCubehelix.js';\nexport { default as convertRgbToHsi } from './hsi/convertRgbToHsi.js';\nexport { default as convertRgbToHsl } from './hsl/convertRgbToHsl.js';\nexport { default as convertRgbToHsv } from './hsv/convertRgbToHsv.js';\nexport { default as convertRgbToHwb } from './hwb/convertRgbToHwb.js';\nexport { default as convertRgbToJab } from './jab/convertRgbToJab.js';\nexport { default as convertRgbToLab } from './lab/convertRgbToLab.js';\nexport { default as convertRgbToLab65 } from './lab65/convertRgbToLab65.js';\nexport { default as convertRgbToLrgb } from './lrgb/convertRgbToLrgb.js';\nexport { default as convertRgbToOklab } from './oklab/convertRgbToOklab.js';\nexport { default as convertRgbToXyb } from './xyb/convertRgbToXyb.js';\nexport { default as convertRgbToXyz50 } from './xyz50/convertRgbToXyz50.js';\nexport { default as convertRgbToXyz65 } from './xyz65/convertRgbToXyz65.js';\nexport { default as convertRgbToYiq } from './yiq/convertRgbToYiq.js';\nexport { default as convertXybToRgb } from './xyb/convertXybToRgb.js';\nexport { default as convertXyz50ToLab } from './lab/convertXyz50ToLab.js';\nexport { default as convertXyz50ToLuv } from './luv/convertXyz50ToLuv.js';\nexport { default as convertXyz50ToProphoto } from './prophoto/convertXyz50ToProphoto.js';\nexport { default as convertXyz50ToRgb } from './xyz50/convertXyz50ToRgb.js';\nexport { default as convertXyz50ToXyz65 } from './xyz65/convertXyz50ToXyz65.js';\nexport { default as convertXyz65ToA98 } from './a98/convertXyz65ToA98.js';\nexport { default as convertXyz65ToItp } from './itp/convertXyz65ToItp.js';\nexport { default as convertXyz65ToJab } from './jab/convertXyz65ToJab.js';\nexport { default as convertXyz65ToLab65 } from './lab65/convertXyz65ToLab65.js';\nexport { default as convertXyz65ToP3 } from './p3/convertXyz65ToP3.js';\nexport { default as convertXyz65ToRec2020 } from './rec2020/convertXyz65ToRec2020.js';\nexport { default as convertXyz65ToRgb } from './xyz65/convertXyz65ToRgb.js';\nexport { default as convertXyz65ToXyz50 } from './xyz65/convertXyz65ToXyz50.js';\nexport { default as convertYiqToRgb } from './yiq/convertYiqToRgb.js';\n\nexport {\n\tmodeA98,\n\tmodeCubehelix,\n\tmodeDlab,\n\tmodeDlch,\n\tmodeHsi,\n\tmodeHsl,\n\tmodeHsv,\n\tmodeHwb,\n\tmodeItp,\n\tmodeJab,\n\tmodeJch,\n\tmodeLab,\n\tmodeLab65,\n\tmodeLch,\n\tmodeLch65,\n\tmodeLchuv,\n\tmodeLrgb,\n\tmodeLuv,\n\tmodeOkhsl,\n\tmodeOkhsv,\n\tmodeOklab,\n\tmodeOklch,\n\tmodeP3,\n\tmodeProphoto,\n\tmodeRec2020,\n\tmodeRgb,\n\tmodeXyb,\n\tmodeXyz50,\n\tmodeXyz65,\n\tmodeYiq\n};\n\nexport const a98 = useMode(modeA98);\nexport const cubehelix = useMode(modeCubehelix);\nexport const dlab = useMode(modeDlab);\nexport const dlch = useMode(modeDlch);\nexport const hsi = useMode(modeHsi);\nexport const hsl = useMode(modeHsl);\nexport const hsv = useMode(modeHsv);\nexport const hwb = useMode(modeHwb);\nexport const itp = useMode(modeItp);\nexport const jab = useMode(modeJab);\nexport const jch = useMode(modeJch);\nexport const lab = useMode(modeLab);\nexport const lab65 = useMode(modeLab65);\nexport const lch = useMode(modeLch);\nexport const lch65 = useMode(modeLch65);\nexport const lchuv = useMode(modeLchuv);\nexport const lrgb = useMode(modeLrgb);\nexport const luv = useMode(modeLuv);\nexport const okhsl = useMode(modeOkhsl);\nexport const okhsv = useMode(modeOkhsv);\nexport const oklab = useMode(modeOklab);\nexport const oklch = useMode(modeOklch);\nexport const p3 = useMode(modeP3);\nexport const prophoto = useMode(modeProphoto);\nexport const rec2020 = useMode(modeRec2020);\nexport const rgb = useMode(modeRgb);\nexport const xyb = useMode(modeXyb);\nexport const xyz50 = useMode(modeXyz50);\nexport const xyz65 = useMode(modeXyz65);\nexport const yiq = useMode(modeYiq);\n",
249
+ "import { converter, formatHex } from 'culori';\n\ntype Shade =\n | 25\n | 50\n | 100\n | 200\n | 300\n | 400\n | 500\n | 600\n | 700\n | 800\n | 900\n | 950;\n\nconst toOklch = converter('oklch');\n\nconst SHADES: Shade[] = [25, 50, 100, 200, 300, 400, 500, 600, 700, 800, 900, 950];\n\nconst POSITION: Record<Shade, number> = {\n 25: 0.00,\n 50: 0.05,\n 100: 0.10,\n 200: 0.20,\n 300: 0.35,\n 400: 0.48,\n 500: 0.55,\n 600: 0.65,\n 700: 0.75,\n 800: 0.85,\n 900: 0.93,\n 950: 0.98\n};\n\nfunction clamp(v: number, min = 0, max = 1) {\n return Math.min(max, Math.max(min, v));\n}\n\nexport default function (baseHex: string, prefix = 'color') {\n const base = toOklch(baseHex);\n\n if (!base || base.mode !== 'oklch') {\n throw new Error('Invalid color');\n }\n\n const palette: Record<string, string> = {};\n\n for (const shade of SHADES) {\n const p = POSITION[shade];\n\n let l =\n shade < 500\n ? base.l + (1 - base.l) * (1 - p / POSITION[500])\n : base.l * (1 - (p - POSITION[500]) / (1 - POSITION[500]));\n\n l = clamp(l);\n\n const distanceFrom500 = Math.abs(p - POSITION[500]);\n const chromaFalloff = 1 - distanceFrom500 * 1.4;\n\n const c = (base.c ?? 0) * clamp(chromaFalloff, 0.2, 1);\n\n palette[`--${prefix}-${shade}`] = formatHex({\n mode: 'oklch',\n l,\n c,\n h: base.h\n });\n }\n\n return palette;\n}\n\n// Tailwind Like\n// import { converter, formatHex } from 'culori';\n// import { clamp } from 'lodash-es';\n//\n// type Shade =\n// | 25 | 50 | 100 | 200 | 300 | 400\n// | 500 | 600 | 700 | 800 | 900 | 950;\n//\n// const toOklch = converter('oklch');\n//\n// const SHADES: Shade[] = [\n// 25, 50, 100, 200, 300, 400,\n// 500,\n// 600, 700, 800, 900, 950\n// ];\n//\n// // Perceptual lightness curve (similar to Tailwind gray)\n// const LIGHTNESS_CURVE: Record<Shade, number> = {\n// 25: 0.99,\n// 50: 0.96,\n// 100: 0.92,\n// 200: 0.86,\n// 300: 0.78,\n// 400: 0.66,\n// 500: 0.55,\n// 600: 0.44,\n// 700: 0.33,\n// 800: 0.23,\n// 900: 0.15,\n// 950: 0.08\n// };\n//\n// export default function (baseHex: string, prefix = 'color', maxChroma = 0.08) {\n// const base = toOklch(baseHex);\n//\n// if (!base || base.mode !== 'oklch') {\n// throw new Error('Invalid color');\n// }\n//\n// const palette: Record<string, string> = {};\n//\n// for (const shade of SHADES) {\n// let l = LIGHTNESS_CURVE[shade];\n//\n// const distanceFromMiddle = Math.abs(shade === 500 ? 0 : (shade - 500) / 450);\n// const c = clamp((base.c ?? 0) * maxChroma * (1 - distanceFromMiddle), 0, 1);\n//\n// palette[`--${prefix}-${shade}`] = formatHex({\n// mode: 'oklch',\n// l,\n// c,\n// h: base.h\n// });\n// }\n//\n// return palette;\n// }\n\n",
250
+ "import { isRequestError, isUnsanctionedRequest } from '@basmilius/http-client';\nimport { showSnackbar } from '@flux-ui/components';\nimport { ForbiddenException, HandledException, UnauthorizedException } from '../error';\n\nconst ORIGINAL = Symbol();\n\nexport default function <T extends Function>(fn: T): T;\nexport default function <T extends Function>(fn: T, onError: (err: Error) => void): T;\nexport default function <T extends Function>(fn: T, snackbarTitle: string, snackbarMessage: string): T;\n\n/**\n * Adds basic global error checking on the provided function. Should\n * be used when fetching remote data. Don't use try-catch with this\n * function, because it throws exceptions that our global error handler\n * will catch for you.\n *\n * ```typescript\n * const {getOrder} = useService(OrderService);\n * const _getOrder = guarded(getOrder);\n * const _getOrder = guarded(getOrder, err => console.error(err));\n * const _getOrder = guarded(getOrder, 'Error snackbar title', 'Error snackbar message');\n * ```\n */\nexport default function <T extends Function>(fn: T, onErrorOrSnackbarTitle?: ((err: Error) => void) | string, snackbarMessage?: string): T {\n if (isGuarded(fn)) {\n // note(Bas): Always wrap the original function, so we don't get\n // double error handling.\n fn = fn[ORIGINAL];\n }\n\n const wrapped = async (...args: any[]): Promise<T> => {\n try {\n return await fn(...args);\n } catch (err) {\n if (isRequestError(err) && err.statusCode === 403) {\n throw new ForbiddenException();\n }\n\n if (isUnsanctionedRequest(err)) {\n throw new UnauthorizedException();\n }\n\n if (onErrorOrSnackbarTitle) {\n if (typeof onErrorOrSnackbarTitle === 'function') {\n onErrorOrSnackbarTitle(err as Error);\n } else {\n showSnackbar({\n color: 'danger',\n icon: 'circle-exclamation',\n message: snackbarMessage,\n title: onErrorOrSnackbarTitle\n });\n }\n\n throw new HandledException();\n }\n\n throw err;\n }\n };\n\n wrapped[ORIGINAL] = fn;\n\n return wrapped as unknown as T;\n}\n\nfunction isGuarded<T extends Function>(fn: T | Guarded<T>): fn is Guarded<T> {\n return ORIGINAL in fn;\n}\n\ntype Guarded<T extends Function> = Function & {\n readonly [ORIGINAL]: T;\n};\n",
251
+ "export class ForbiddenException extends Error {\n}\n",
252
+ "export class HandledException extends Error {\n}\n",
253
+ "export class UnauthorizedException extends Error {\n}\n",
254
+ "import guarded from './guarded';\n\nexport default function <T extends Function>(onError: (err: Error) => void): T {\n return ((fn: T) => guarded(fn, onError)) as unknown as T;\n}\n",
255
+ "import { isRequestError } from '@basmilius/http-client';\nimport { showSnackbar } from '@flux-ui/components';\nimport onError from './onError';\n\nexport default <T extends Function>() => onError<T>(err => {\n if (!isRequestError(err)) {\n throw err;\n }\n\n showSnackbar({\n color: 'danger',\n icon: 'circle-exclamation',\n message: err.errorDescription\n });\n});\n",
256
+ "import { ref, type Ref, watch } from 'vue';\n\ntype Deserializer<T> = (value: string) => T;\ntype Serializer<T> = (value: T) => string;\n\nexport default function <T>(key: string, defaultValue: T, serialize: Serializer<T> = JSON.stringify, deserialize: Deserializer<T> = JSON.parse): Ref<T | null> {\n const storedValue = localStorage.getItem(key);\n const initialValue = storedValue ? deserialize(storedValue) : defaultValue;\n\n const persistentRef: Ref<T | null> = ref<T>(initialValue) as Ref<T | null>;\n\n watch(persistentRef, value => {\n if (value === null || value === undefined) {\n localStorage.removeItem(key);\n } else {\n localStorage.setItem(key, serialize(value));\n }\n }, {deep: true, immediate: true});\n\n return persistentRef;\n}\n",
257
+ "import type { Ref } from 'vue';\nimport persistentRef from './persistentRef';\n\nexport default function (key: string, defaultValue: string | null): Ref<string | null> {\n return persistentRef(key, defaultValue, value => value ?? '', value => value === '' ? null : value);\n}\n",
258
+ "export default function <T extends Function>(before: () => void): T {\n return ((fn: T) => {\n return (...args: any[]) => {\n before();\n return fn(...args);\n };\n }) as unknown as T;\n}\n",
259
+ "import { type Ref, unref } from 'vue';\n\ntype UnrefAll<T extends readonly unknown[]> = {\n [K in keyof T]: T[K] extends Ref<infer U> ? NonNullable<U> : T[K];\n};\n\nexport default function <T extends readonly unknown[]>(...deps: T): UnrefAll<T> {\n return deps\n .map(unref)\n .map(ensure) as UnrefAll<T>;\n}\n\nfunction ensure<T>(dep: T): T {\n if (!dep) {\n throw new Error('Dep is null or undefined.');\n }\n\n return dep;\n}\n",
260
+ "import type { BaseService } from '@basmilius/http-client';\nimport { guarded } from '../util';\n\ntype ServiceClass<T extends BaseService> = { new(): T; };\ntype Wrap = (fn: Function) => Function;\n\nexport default function <T extends BaseService>(serviceClass: ServiceClass<T>, ...wrap: Wrap[]): T {\n const service = new serviceClass;\n const methods = Object.getOwnPropertyNames(serviceClass.prototype)\n .filter(m => m !== 'constructor');\n\n const functions: Record<string, Function> = {};\n\n for (let method of methods) {\n functions[method] = guarded((service as any)[method].bind(service));\n wrap.forEach(w => functions[method] = w(functions[method]!));\n }\n\n return functions as unknown as T;\n}\n",
261
+ "import { defineStore, type StoreGeneric, storeToRefs } from 'pinia';\n\nexport default function <Id extends string, Setup extends (...args: any[]) => any, Context = ReturnType<Setup>>(id: Id, setup: Setup): UseStore<Context> {\n const storeFn = defineStore(id, setup);\n\n return () => {\n const store: StoreGeneric = storeFn();\n const keys = Object.getOwnPropertyNames(store);\n const refs = storeToRefs(store as StoreGeneric);\n const result: Record<string, unknown> = {};\n\n for (const key of keys) {\n if (key.startsWith('$') || key.startsWith('_')) {\n continue;\n }\n\n if (key in refs) {\n result[key] = refs[key];\n continue;\n }\n\n result[key] = store[key];\n }\n\n return result as Context;\n };\n}\n\ntype UseStore<R> = {\n (): R;\n}\n",
262
+ "export { default as defineStore } from './defineStore';\n\nexport {\n createPinia,\n getActivePinia,\n setActivePinia\n} from 'pinia';\n"
263
+ ],
264
+ "mappings": "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",
265
+ "debugId": "B778739203A2AA4964756E2164756E21",
266
+ "names": []
267
+ }