@lumx/react 2.0.0-alpha.0 → 2.0.1

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 (102) hide show
  1. package/esm/_internal/AlertDialog.js +15 -5
  2. package/esm/_internal/AlertDialog.js.map +1 -1
  3. package/esm/_internal/AutocompleteMultiple.js +6 -2
  4. package/esm/_internal/AutocompleteMultiple.js.map +1 -1
  5. package/esm/_internal/ButtonRoot.js +1 -0
  6. package/esm/_internal/ButtonRoot.js.map +1 -1
  7. package/esm/_internal/ClickAwayProvider.js +31 -30
  8. package/esm/_internal/ClickAwayProvider.js.map +1 -1
  9. package/esm/_internal/Dialog2.js +6 -3
  10. package/esm/_internal/Dialog2.js.map +1 -1
  11. package/esm/_internal/Dropdown2.js +6 -2
  12. package/esm/_internal/Dropdown2.js.map +1 -1
  13. package/esm/_internal/Icon2.js +1 -1
  14. package/esm/_internal/Icon2.js.map +1 -1
  15. package/esm/_internal/Lightbox2.js +4 -2
  16. package/esm/_internal/Lightbox2.js.map +1 -1
  17. package/esm/_internal/Message2.js +4 -3
  18. package/esm/_internal/Message2.js.map +1 -1
  19. package/esm/_internal/Popover2.js +4 -2
  20. package/esm/_internal/Popover2.js.map +1 -1
  21. package/esm/_internal/SelectMultiple.js +39 -61
  22. package/esm/_internal/SelectMultiple.js.map +1 -1
  23. package/esm/_internal/SlideshowControls.js +93 -44
  24. package/esm/_internal/SlideshowControls.js.map +1 -1
  25. package/esm/_internal/Switch2.js +2 -0
  26. package/esm/_internal/Switch2.js.map +1 -1
  27. package/esm/_internal/alert-dialog.js +1 -1
  28. package/esm/_internal/autocomplete.js +1 -2
  29. package/esm/_internal/autocomplete.js.map +1 -1
  30. package/esm/_internal/button.js +1 -2
  31. package/esm/_internal/button.js.map +1 -1
  32. package/esm/_internal/date-picker.js +1 -2
  33. package/esm/_internal/date-picker.js.map +1 -1
  34. package/esm/_internal/dialog.js +1 -1
  35. package/esm/_internal/dropdown.js +1 -1
  36. package/esm/_internal/expansion-panel.js +1 -2
  37. package/esm/_internal/expansion-panel.js.map +1 -1
  38. package/esm/_internal/getRootClassName.js +78 -68
  39. package/esm/_internal/getRootClassName.js.map +1 -1
  40. package/esm/_internal/lightbox.js +1 -2
  41. package/esm/_internal/lightbox.js.map +1 -1
  42. package/esm/_internal/popover.js +1 -1
  43. package/esm/_internal/select.js +1 -2
  44. package/esm/_internal/select.js.map +1 -1
  45. package/esm/_internal/side-navigation.js +1 -2
  46. package/esm/_internal/side-navigation.js.map +1 -1
  47. package/esm/_internal/slideshow.js +1 -2
  48. package/esm/_internal/slideshow.js.map +1 -1
  49. package/esm/_internal/text-field.js +1 -2
  50. package/esm/_internal/text-field.js.map +1 -1
  51. package/esm/_internal/tooltip.js +1 -2
  52. package/esm/_internal/tooltip.js.map +1 -1
  53. package/esm/_internal/useDelayedVisibility.js +16 -2
  54. package/esm/_internal/useDelayedVisibility.js.map +1 -1
  55. package/esm/_internal/useDisableBodyScroll.js +205 -7
  56. package/esm/_internal/useDisableBodyScroll.js.map +1 -1
  57. package/esm/index.js +1 -2
  58. package/esm/index.js.map +1 -1
  59. package/package.json +6 -6
  60. package/src/components/alert-dialog/AlertDialog.stories.tsx +29 -0
  61. package/src/components/alert-dialog/AlertDialog.tsx +29 -9
  62. package/src/components/alert-dialog/__snapshots__/AlertDialog.test.tsx.snap +91 -0
  63. package/src/components/autocomplete/Autocomplete.test.tsx +2 -0
  64. package/src/components/autocomplete/Autocomplete.tsx +7 -0
  65. package/src/components/autocomplete/AutocompleteMultiple.test.tsx +2 -0
  66. package/src/components/autocomplete/AutocompleteMultiple.tsx +2 -0
  67. package/src/components/autocomplete/__snapshots__/Autocomplete.test.tsx.snap +2 -0
  68. package/src/components/autocomplete/__snapshots__/AutocompleteMultiple.test.tsx.snap +2 -0
  69. package/src/components/button/Button.stories.tsx +8 -2
  70. package/src/components/button/ButtonRoot.tsx +1 -1
  71. package/src/components/comment-block/CommentBlock.stories.tsx +3 -2
  72. package/src/components/comment-block/__snapshots__/CommentBlock.test.tsx.snap +1 -1
  73. package/src/components/dialog/Dialog.stories.tsx +62 -22
  74. package/src/components/dialog/Dialog.tsx +8 -2
  75. package/src/components/dialog/__snapshots__/Dialog.test.tsx.snap +99 -35
  76. package/src/components/icon/Icon.tsx +1 -0
  77. package/src/components/icon/__snapshots__/Icon.test.tsx.snap +2 -2
  78. package/src/components/lightbox/Lightbox.tsx +4 -1
  79. package/src/components/lightbox/__snapshots__/Lightbox.test.tsx.snap +7 -5
  80. package/src/components/message/Message.stories.tsx +8 -0
  81. package/src/components/message/Message.tsx +4 -2
  82. package/src/components/popover/Popover.tsx +4 -1
  83. package/src/components/popover/__snapshots__/Popover.test.tsx.snap +100 -80
  84. package/src/components/select/WithSelectContext.tsx +3 -60
  85. package/src/components/slideshow/Slideshow.stories.tsx +47 -7
  86. package/src/components/slideshow/Slideshow.test.tsx +4 -1
  87. package/src/components/slideshow/Slideshow.tsx +51 -26
  88. package/src/components/slideshow/SlideshowControls.stories.tsx +0 -4
  89. package/src/components/slideshow/SlideshowControls.tsx +23 -8
  90. package/src/components/slideshow/__snapshots__/Slideshow.test.tsx.snap +0 -5
  91. package/src/components/slideshow/useKeyNavigate.ts +28 -0
  92. package/src/components/slideshow/useSwipeNavigate.ts +18 -0
  93. package/src/components/switch/Switch.tsx +2 -0
  94. package/src/components/switch/__snapshots__/Switch.test.tsx.snap +8 -0
  95. package/src/hooks/useClickAway.tsx +6 -5
  96. package/src/hooks/useDelayedVisibility.tsx +22 -2
  97. package/src/hooks/useDisableBodyScroll.ts +16 -1
  98. package/src/hooks/useInfiniteScroll.tsx +14 -3
  99. package/src/hooks/useListenFocus.tsx +26 -0
  100. package/src/utils/ClickAwayProvider/ClickAwayProvider.tsx +23 -32
  101. package/types.d.ts +17 -8
  102. package/src/components/slideshow/useKeyOrSwipeNavigate.ts +0 -37
@@ -1 +1 @@
1
- {"version":3,"file":"getRootClassName.js","sources":["../../../../../node_modules/classnames/index.js","../../../../lumx-core/src/js/utils.ts","../../../../lumx-core/src/js/constants/index.ts","../../../src/utils/getRootClassName.ts"],"sourcesContent":["/*!\n Copyright (c) 2017 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg) && arg.length) {\n\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\tif (inner) {\n\t\t\t\t\tclasses.push(inner);\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","import classNames from 'classnames';\n// eslint-disable-next-line import/no-extraneous-dependencies\nimport React from 'react';\n\nimport isBoolean from 'lodash/isBoolean';\nimport isEmpty from 'lodash/isEmpty';\nimport kebabCase from 'lodash/kebabCase';\nimport noop from 'lodash/noop';\n\n/**\n * Enhance isEmpty method to also works with numbers.\n *\n * @param value The value to check.\n * @return Whether the input value is empty or != 0.\n */\nconst _isEmpty = (value: any) => {\n if (typeof value === 'number') {\n return value === 0;\n }\n\n return isEmpty(value);\n};\n\n/**\n * Get the basic CSS class for the given type.\n *\n * @param prefix The class name prefix for the generated CSS class.\n * @param type The type of CSS class we want to generate (e.g.: 'color', 'variant', ...).\n * @param value The value of the type of the CSS class (e.g.: 'primary', 'button', ...).\n * @return The basic CSS class.\n */\nexport function getBasicClass({\n prefix,\n type,\n value,\n}: {\n prefix: string;\n type: string;\n value: string | number | boolean | undefined;\n}): string {\n if (isBoolean(value)) {\n if (!value) {\n // False value should not return a class.\n return '';\n }\n const booleanPrefixes = ['has', 'is'];\n\n if (booleanPrefixes.some((booleanPrefix) => type.toString().startsWith(booleanPrefix))) {\n return `${prefix}--${kebabCase(type)}`;\n }\n\n return `${prefix}--is-${kebabCase(type)}`;\n }\n\n return `${prefix}--${kebabCase(type)}-${value}`;\n}\n\n/**\n * Return all basic LumX CSS classes which are available for every components.\n *\n * @see {@link /src/components/index.d.ts} for the possible values of each parameter.\n *\n * @param prefix The class name prefix for the generated CSS class.\n * @param props All the other props you want to generate a class.\n * The rule of thumb: the key is the name of the prop in the class, the value a string that will\n * be used in the classname to represent the value of the given prop.\n * @return All LumX basic CSS classes.\n */\nexport function handleBasicClasses({ prefix, ...props }: { prefix: string; [prop: string]: any }): string {\n const otherClasses: any = {};\n if (!isEmpty(props)) {\n Object.keys(props).forEach((prop) => {\n otherClasses[getBasicClass({ prefix, type: prop, value: props[prop] })] = isBoolean(props[prop])\n ? props[prop]\n : !_isEmpty(props[prop]);\n });\n }\n\n return classNames(prefix, otherClasses);\n}\n\ndeclare type SwipeDirection = 'none' | 'up' | 'down' | 'left' | 'right';\n\n/**\n * Detects swipe direction.\n * Credits: http://javascriptkit.com/javatutors/touchevents2.shtml.\n *\n * @param touchSurface Element that will hold touch events.\n * @param handleSwipe Callback function.\n * @return Function to remove listeners.\n */\nexport function detectSwipe(touchSurface: Element, handleSwipe: (direction: SwipeDirection) => void = noop) {\n let distX: number;\n let distY: number;\n let startX: number;\n let startY: number;\n let direction: SwipeDirection;\n // Required min distance traveled to be considered swipe.\n const threshold = 150;\n // Maximum distance allowed at the same time in perpendicular direction.\n const restraint = 100;\n // Maximum time allowed to travel that distance.\n const allowedTime = 300;\n let elapsedTime: number;\n let startTime: number;\n\n const onTouchStart = (evt: Event) => {\n const [touch] = Array.from((evt as TouchEvent).changedTouches);\n direction = 'none';\n // Const dist = 0;\n startX = touch.pageX;\n startY = touch.pageY;\n // Record time when finger first makes contact with surface.\n startTime = new Date().getTime();\n evt.preventDefault();\n };\n\n const onTouchMove = (evt: Event) => {\n // Prevent scrolling when inside DIV.\n evt.preventDefault();\n };\n\n const onTouchEnd = (evt: Event) => {\n const [touch] = Array.from((evt as TouchEvent).changedTouches);\n // Get horizontal dist traveled by finger while in contact with surface.\n distX = touch.pageX - startX;\n // Get vertical dist traveled by finger while in contact with surface.\n distY = touch.pageY - startY;\n // Get time elapsed.\n elapsedTime = new Date().getTime() - startTime;\n if (elapsedTime <= allowedTime) {\n // First condition for awipe met.\n if (Math.abs(distX) >= threshold && Math.abs(distY) <= restraint) {\n // 2nd condition for horizontal swipe met.\n // If dist traveled is negative, it indicates left swipe.\n direction = distX < 0 ? 'left' : 'right';\n } else if (Math.abs(distY) >= threshold && Math.abs(distX) <= restraint) {\n // 2nd condition for vertical swipe met.\n // If dist traveled is negative, it indicates up swipe.\n direction = distY < 0 ? 'up' : 'down';\n }\n }\n handleSwipe(direction);\n evt.preventDefault();\n };\n\n touchSurface.addEventListener('touchstart', onTouchStart, false);\n touchSurface.addEventListener('touchmove', onTouchMove, false);\n touchSurface.addEventListener('touchend', onTouchEnd, false);\n\n return () => {\n touchSurface.removeEventListener('touchstart', onTouchStart, false);\n touchSurface.removeEventListener('touchmove', onTouchMove, false);\n touchSurface.removeEventListener('touchend', onTouchEnd, false);\n };\n}\n\ntype KeyboardEventHandler<E extends KeyboardEvent | React.KeyboardEvent> = (event: E) => void;\n\n/**\n * Make sure the pressed key is the enter key before calling the callback.\n *\n * @param handler The handler to call on enter/return press.\n * @return The decorated function.\n */\nexport function onEnterPressed<E extends KeyboardEvent | React.KeyboardEvent>(\n handler: KeyboardEventHandler<E>,\n): KeyboardEventHandler<E> {\n return (evt) => {\n if (evt.key !== 'Enter') {\n return;\n }\n handler(evt);\n };\n}\n\n/**\n * Make sure the pressed key is the escape key before calling the callback.\n *\n * @param handler The handler to call on enter/return press.\n * @return The decorated function.\n */\nexport function onEscapePressed<E extends KeyboardEvent | React.KeyboardEvent>(\n handler: KeyboardEventHandler<E>,\n): KeyboardEventHandler<E> {\n return (evt) => {\n if (evt.key !== 'Escape') {\n return;\n }\n handler(evt);\n };\n}\n","/**\n * The prefix to use for the CSS classes.\n */\nexport const CSS_PREFIX = 'lumx';\n\n/**\n * Key codes.\n */\nexport * from './keycodes';\n\n/**\n * Animation duration constants. Take into consideration that if you change one of these variables,\n * you need to update their scss counterpart as well\n */\nexport const DIALOG_TRANSITION_DURATION = 400;\nexport const NOTIFICATION_TRANSITION_DURATION = 200;\n","import { CSS_PREFIX } from '@lumx/react/constants';\n\nimport kebabCase from 'lodash/kebabCase';\n\n// See https://regex101.com/r/YjS1uI/3\nconst LAST_PART_CLASSNAME = /^(.*)-(.+)$/gi;\n\n/**\n * Get the name of the root CSS class of a component based on its name.\n *\n * @param componentName The name of the component. This name should contains the component prefix and be\n * written in PascalCase.\n * @param subComponent Whether the current component is a sub component, if true, define the class according\n * to BEM standards.\n * @return The name of the root CSS class. This classname include the CSS classname prefix and is written in\n * lower-snake-case.\n */\nexport function getRootClassName(componentName: string, subComponent?: boolean): string {\n const formattedClassName = `${CSS_PREFIX}-${kebabCase(componentName)}`;\n\n if (subComponent) {\n return formattedClassName.replace(LAST_PART_CLASSNAME, '$1__$2');\n }\n return formattedClassName;\n}\n"],"names":["_isEmpty","value","isEmpty","getBasicClass","prefix","type","isBoolean","booleanPrefixes","some","booleanPrefix","toString","startsWith","kebabCase","handleBasicClasses","props","otherClasses","Object","keys","forEach","prop","classNames","detectSwipe","touchSurface","handleSwipe","noop","distX","distY","startX","startY","direction","threshold","restraint","allowedTime","elapsedTime","startTime","onTouchStart","evt","Array","from","changedTouches","touch","pageX","pageY","Date","getTime","preventDefault","onTouchMove","onTouchEnd","Math","abs","addEventListener","removeEventListener","onEnterPressed","handler","key","onEscapePressed","CSS_PREFIX","DIALOG_TRANSITION_DURATION","NOTIFICATION_TRANSITION_DURATION","LAST_PART_CLASSNAME","getRootClassName","componentName","subComponent","formattedClassName","replace"],"mappings":"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"}
1
+ {"version":3,"file":"getRootClassName.js","sources":["../../../../../node_modules/classnames/index.js","../../../../lumx-core/src/js/utils.ts","../../../../lumx-core/src/js/constants/index.ts","../../../src/utils/getRootClassName.ts"],"sourcesContent":["/*!\n Copyright (c) 2017 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg) && arg.length) {\n\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\tif (inner) {\n\t\t\t\t\tclasses.push(inner);\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","import classNames from 'classnames';\n// eslint-disable-next-line import/no-extraneous-dependencies\nimport React from 'react';\n\nimport isBoolean from 'lodash/isBoolean';\nimport isEmpty from 'lodash/isEmpty';\nimport kebabCase from 'lodash/kebabCase';\nimport noop from 'lodash/noop';\n\n/**\n * Enhance isEmpty method to also works with numbers.\n *\n * @param value The value to check.\n * @return Whether the input value is empty or != 0.\n */\nconst _isEmpty = (value: any) => {\n if (typeof value === 'number') {\n return value === 0;\n }\n\n return isEmpty(value);\n};\n\n/**\n * Get the basic CSS class for the given type.\n *\n * @param prefix The class name prefix for the generated CSS class.\n * @param type The type of CSS class we want to generate (e.g.: 'color', 'variant', ...).\n * @param value The value of the type of the CSS class (e.g.: 'primary', 'button', ...).\n * @return The basic CSS class.\n */\nexport function getBasicClass({\n prefix,\n type,\n value,\n}: {\n prefix: string;\n type: string;\n value: string | number | boolean | undefined;\n}): string {\n if (isBoolean(value)) {\n if (!value) {\n // False value should not return a class.\n return '';\n }\n const booleanPrefixes = ['has', 'is'];\n\n if (booleanPrefixes.some((booleanPrefix) => type.toString().startsWith(booleanPrefix))) {\n return `${prefix}--${kebabCase(type)}`;\n }\n\n return `${prefix}--is-${kebabCase(type)}`;\n }\n\n return `${prefix}--${kebabCase(type)}-${value}`;\n}\n\n/**\n * Return all basic LumX CSS classes which are available for every components.\n *\n * @see {@link /src/components/index.d.ts} for the possible values of each parameter.\n *\n * @param prefix The class name prefix for the generated CSS class.\n * @param props All the other props you want to generate a class.\n * The rule of thumb: the key is the name of the prop in the class, the value a string that will\n * be used in the classname to represent the value of the given prop.\n * @return All LumX basic CSS classes.\n */\nexport function handleBasicClasses({ prefix, ...props }: { prefix: string; [prop: string]: any }): string {\n const otherClasses: any = {};\n if (!isEmpty(props)) {\n Object.keys(props).forEach((prop) => {\n otherClasses[getBasicClass({ prefix, type: prop, value: props[prop] })] = isBoolean(props[prop])\n ? props[prop]\n : !_isEmpty(props[prop]);\n });\n }\n\n return classNames(prefix, otherClasses);\n}\n\ndeclare type SwipeDirection = 'none' | 'up' | 'down' | 'left' | 'right';\n\n/**\n * Detects swipe direction.\n * Credits: http://javascriptkit.com/javatutors/touchevents2.shtml.\n *\n * @deprecated use `detectHorizontalSwipe` instead if possible (better performance and does not block scroll)\n * @param touchSurface Element that will hold touch events.\n * @param handleSwipe Callback function.\n * @return Function to remove listeners.\n */\nexport function detectSwipe(touchSurface: Element, handleSwipe: (direction: SwipeDirection) => void = noop) {\n let distX: number;\n let distY: number;\n let startX: number;\n let startY: number;\n let direction: SwipeDirection;\n // Required min distance traveled to be considered swipe.\n const threshold = 150;\n // Maximum distance allowed at the same time in perpendicular direction.\n const restraint = 100;\n // Maximum time allowed to travel that distance.\n const allowedTime = 300;\n let elapsedTime: number;\n let startTime: number;\n\n const onTouchStart = (evt: Event) => {\n const [touch] = Array.from((evt as TouchEvent).changedTouches);\n direction = 'none';\n // Const dist = 0;\n startX = touch.pageX;\n startY = touch.pageY;\n // Record time when finger first makes contact with surface.\n startTime = new Date().getTime();\n evt.preventDefault();\n };\n\n const onTouchMove = (evt: Event) => {\n // Prevent scrolling when inside DIV.\n evt.preventDefault();\n };\n\n const onTouchEnd = (evt: Event) => {\n const [touch] = Array.from((evt as TouchEvent).changedTouches);\n // Get horizontal dist traveled by finger while in contact with surface.\n distX = touch.pageX - startX;\n // Get vertical dist traveled by finger while in contact with surface.\n distY = touch.pageY - startY;\n // Get time elapsed.\n elapsedTime = new Date().getTime() - startTime;\n if (elapsedTime <= allowedTime) {\n // First condition for awipe met.\n if (Math.abs(distX) >= threshold && Math.abs(distY) <= restraint) {\n // 2nd condition for horizontal swipe met.\n // If dist traveled is negative, it indicates left swipe.\n direction = distX < 0 ? 'left' : 'right';\n } else if (Math.abs(distY) >= threshold && Math.abs(distX) <= restraint) {\n // 2nd condition for vertical swipe met.\n // If dist traveled is negative, it indicates up swipe.\n direction = distY < 0 ? 'up' : 'down';\n }\n }\n handleSwipe(direction);\n evt.preventDefault();\n };\n\n touchSurface.addEventListener('touchstart', onTouchStart, false);\n touchSurface.addEventListener('touchmove', onTouchMove, false);\n touchSurface.addEventListener('touchend', onTouchEnd, false);\n\n return () => {\n touchSurface.removeEventListener('touchstart', onTouchStart, false);\n touchSurface.removeEventListener('touchmove', onTouchMove, false);\n touchSurface.removeEventListener('touchend', onTouchEnd, false);\n };\n}\n\n/**\n * Checks whether or not the browser support passive events.\n * @see https://github.com/Modernizr/Modernizr/blob/6d56d814b9682843313b16060adb25a58d83a317/feature-detects/dom/passiveeventlisteners.js\n */\nfunction isPassiveEventAvailable() {\n let supportsPassiveOption = false;\n try {\n const opts = Object.defineProperty({}, 'passive', {\n get() {\n supportsPassiveOption = true;\n },\n });\n window.addEventListener('testPassiveEventSupport', noop, opts);\n window.removeEventListener('testPassiveEventSupport', noop, opts);\n } catch (e) {\n // ignored\n }\n return supportsPassiveOption;\n}\n\n/**\n * Detects horizontal swipe direction without blocking the browser scroll using passive event.\n * @see http://javascriptkit.com/javatutors/touchevents2.shtml\n * @see https://github.com/WICG/EventListenerOptions/blob/gh-pages/explainer.md\n */\nexport function detectHorizontalSwipe(touchSurface: Element, handleSwipe: (direction: 'right' | 'left') => void) {\n let startX: number;\n let startY: number;\n // Required min distance traveled to be considered swipe.\n const threshold = 150;\n // Maximum distance allowed at the same time in perpendicular direction.\n const restraint = 150;\n // Maximum time allowed to travel that distance.\n const allowedTime = 300;\n let elapsedTime: number;\n let startTime: number;\n let finished: boolean;\n\n const onTouchStart = (evt: Event) => {\n const [touch] = Array.from((evt as TouchEvent).changedTouches);\n startX = touch.pageX;\n startY = touch.pageY;\n // Record time when finger first makes contact with surface.\n startTime = new Date().getTime();\n finished = false;\n };\n\n const onTouchMove = (evt: Event) => {\n if (finished) {\n return;\n }\n\n elapsedTime = new Date().getTime() - startTime;\n if (elapsedTime > allowedTime) {\n // Touch swipe too long to be considered.\n return;\n }\n\n const [touch] = Array.from((evt as TouchEvent).changedTouches);\n // Get horizontal dist traveled by finger while in contact with surface.\n const distX = touch.pageX - startX;\n // Get vertical dist traveled by finger while in contact with surface.\n const distY = touch.pageY - startY;\n\n if (!(Math.abs(distX) >= threshold && Math.abs(distY) <= restraint)) {\n // Swipe is not horizontal.\n return;\n }\n // Swipe direction.\n const direction = distX < 0 ? 'left' : 'right';\n\n handleSwipe(direction);\n finished = true;\n };\n\n // Activate passive event if possible for better scrolling performance.\n const eventOptions: any = isPassiveEventAvailable() ? { passive: true } : false;\n touchSurface.addEventListener('touchstart', onTouchStart, eventOptions);\n touchSurface.addEventListener('touchmove', onTouchMove, eventOptions);\n\n return () => {\n touchSurface.removeEventListener('touchstart', onTouchStart, eventOptions);\n touchSurface.removeEventListener('touchmove', onTouchMove, eventOptions);\n };\n}\n\ntype KeyboardEventHandler<E extends KeyboardEvent | React.KeyboardEvent> = (event: E) => void;\n\n/**\n * Make sure the pressed key is the enter key before calling the callback.\n *\n * @param handler The handler to call on enter/return press.\n * @return The decorated function.\n */\nexport function onEnterPressed<E extends KeyboardEvent | React.KeyboardEvent>(\n handler: KeyboardEventHandler<E>,\n): KeyboardEventHandler<E> {\n return (evt) => {\n if (evt.key !== 'Enter') {\n return;\n }\n handler(evt);\n };\n}\n\n/**\n * Make sure the pressed key is the escape key before calling the callback.\n *\n * @param handler The handler to call on enter/return press.\n * @return The decorated function.\n */\nexport function onEscapePressed<E extends KeyboardEvent | React.KeyboardEvent>(\n handler: KeyboardEventHandler<E>,\n): KeyboardEventHandler<E> {\n return (evt) => {\n if (evt.key !== 'Escape') {\n return;\n }\n handler(evt);\n };\n}\n","/**\n * The prefix to use for the CSS classes.\n */\nexport const CSS_PREFIX = 'lumx';\n\n/**\n * Key codes.\n */\nexport * from './keycodes';\n\n/**\n * Animation duration constants. Take into consideration that if you change one of these variables,\n * you need to update their scss counterpart as well\n */\nexport const DIALOG_TRANSITION_DURATION = 400;\nexport const NOTIFICATION_TRANSITION_DURATION = 200;\n","import { CSS_PREFIX } from '@lumx/react/constants';\n\nimport kebabCase from 'lodash/kebabCase';\n\n// See https://regex101.com/r/YjS1uI/3\nconst LAST_PART_CLASSNAME = /^(.*)-(.+)$/gi;\n\n/**\n * Get the name of the root CSS class of a component based on its name.\n *\n * @param componentName The name of the component. This name should contains the component prefix and be\n * written in PascalCase.\n * @param subComponent Whether the current component is a sub component, if true, define the class according\n * to BEM standards.\n * @return The name of the root CSS class. This classname include the CSS classname prefix and is written in\n * lower-snake-case.\n */\nexport function getRootClassName(componentName: string, subComponent?: boolean): string {\n const formattedClassName = `${CSS_PREFIX}-${kebabCase(componentName)}`;\n\n if (subComponent) {\n return formattedClassName.replace(LAST_PART_CLASSNAME, '$1__$2');\n }\n return formattedClassName;\n}\n"],"names":["_isEmpty","value","isEmpty","getBasicClass","prefix","type","isBoolean","booleanPrefixes","some","booleanPrefix","toString","startsWith","kebabCase","handleBasicClasses","props","otherClasses","Object","keys","forEach","prop","classNames","isPassiveEventAvailable","supportsPassiveOption","opts","defineProperty","get","window","addEventListener","noop","removeEventListener","e","detectHorizontalSwipe","touchSurface","handleSwipe","startX","startY","threshold","restraint","allowedTime","elapsedTime","startTime","finished","onTouchStart","evt","Array","from","changedTouches","touch","pageX","pageY","Date","getTime","onTouchMove","distX","distY","Math","abs","direction","eventOptions","passive","onEnterPressed","handler","key","onEscapePressed","CSS_PREFIX","DIALOG_TRANSITION_DURATION","NOTIFICATION_TRANSITION_DURATION","LAST_PART_CLASSNAME","getRootClassName","componentName","subComponent","formattedClassName","replace"],"mappings":"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"}
@@ -17,12 +17,11 @@ import './IconButton.js';
17
17
  import './useFocusTrap.js';
18
18
  import 'react-dom';
19
19
  import './ClickAwayProvider.js';
20
- import 'lodash/uniq';
20
+ import 'lodash/pull';
21
21
  import './useDelayedVisibility.js';
22
22
  import './useDisableBodyScroll.js';
23
23
  import './Icon2.js';
24
24
  export { L as Lightbox } from './Lightbox2.js';
25
25
  import './Tooltip2.js';
26
- import 'lodash/pull';
27
26
  import 'lodash/debounce';
28
27
  //# sourceMappingURL=lightbox.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"lightbox.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"lightbox.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -9,5 +9,5 @@ export { P as Placement, a as Popover } from './Popover2.js';
9
9
  import './mergeRefs.js';
10
10
  import 'react-dom';
11
11
  import './ClickAwayProvider.js';
12
- import 'lodash/uniq';
12
+ import 'lodash/pull';
13
13
  //# sourceMappingURL=popover.js.map
@@ -19,7 +19,7 @@ import 'lodash/isFunction';
19
19
  import './Chip2.js';
20
20
  import 'react-dom';
21
21
  import './ClickAwayProvider.js';
22
- import 'lodash/uniq';
22
+ import 'lodash/pull';
23
23
  import './List2.js';
24
24
  import './Dropdown2.js';
25
25
  import './Icon2.js';
@@ -27,6 +27,5 @@ import './InputHelper.js';
27
27
  import './InputLabel.js';
28
28
  export { a as Select, c as SelectMultiple, b as SelectMultipleField, S as SelectVariant } from './SelectMultiple.js';
29
29
  import './Tooltip2.js';
30
- import 'lodash/pull';
31
30
  import 'lodash/debounce';
32
31
  //# sourceMappingURL=select.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"select.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"select.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -17,10 +17,9 @@ import './ButtonRoot.js';
17
17
  import './IconButton.js';
18
18
  import 'react-dom';
19
19
  import './ClickAwayProvider.js';
20
- import 'lodash/uniq';
20
+ import 'lodash/pull';
21
21
  import './Icon2.js';
22
22
  export { S as SideNavigation, a as SideNavigationItem } from './SideNavigationItem.js';
23
23
  import './Tooltip2.js';
24
- import 'lodash/pull';
25
24
  import 'lodash/debounce';
26
25
  //# sourceMappingURL=side-navigation.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"side-navigation.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"side-navigation.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;"}
@@ -18,10 +18,9 @@ import 'lodash/isFunction';
18
18
  import 'lodash/range';
19
19
  import 'react-dom';
20
20
  import './ClickAwayProvider.js';
21
- import 'lodash/uniq';
21
+ import 'lodash/pull';
22
22
  import './Icon2.js';
23
23
  export { S as Slideshow, b as SlideshowControls, a as SlideshowItem } from './SlideshowControls.js';
24
24
  import './Tooltip2.js';
25
- import 'lodash/pull';
26
25
  import 'lodash/debounce';
27
26
  //# sourceMappingURL=slideshow.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"slideshow.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"slideshow.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -16,12 +16,11 @@ import './ButtonRoot.js';
16
16
  import './IconButton.js';
17
17
  import 'react-dom';
18
18
  import './ClickAwayProvider.js';
19
- import 'lodash/uniq';
19
+ import 'lodash/pull';
20
20
  import './Icon2.js';
21
21
  import './InputHelper.js';
22
22
  import './InputLabel.js';
23
23
  export { T as TextField } from './TextField.js';
24
24
  import './Tooltip2.js';
25
- import 'lodash/pull';
26
25
  import 'lodash/debounce';
27
26
  //# sourceMappingURL=text-field.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"text-field.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"text-field.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -11,8 +11,7 @@ import './Popover2.js';
11
11
  import './mergeRefs.js';
12
12
  import 'react-dom';
13
13
  import './ClickAwayProvider.js';
14
- import 'lodash/uniq';
15
- export { T as Tooltip } from './Tooltip2.js';
16
14
  import 'lodash/pull';
15
+ export { T as Tooltip } from './Tooltip2.js';
17
16
  import 'lodash/debounce';
18
17
  //# sourceMappingURL=tooltip.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tooltip.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"tooltip.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;"}
@@ -1,5 +1,5 @@
1
1
  import { f as _slicedToArray } from './getRootClassName.js';
2
- import { useState, useEffect } from 'react';
2
+ import { useState, useEffect, useRef } from 'react';
3
3
 
4
4
  /**
5
5
  * Returns true if the component is visible taking into account the component's
@@ -7,10 +7,11 @@ import { useState, useEffect } from 'react';
7
7
  *
8
8
  * @param isComponentVisible Whether the component intends to be visible or not.
9
9
  * @param transitionDuration time in ms that the transition takes for the specific component.
10
+ * @param onVisibilityChange Callback called when the visibility changes.
10
11
  * @return true if the component should be rendered
11
12
  */
12
13
 
13
- function useDelayedVisibility(isComponentVisible, transitionDuration) {
14
+ function useDelayedVisibility(isComponentVisible, transitionDuration, onVisibilityChange) {
14
15
  // Delay visibility to account for the 400ms of CSS opacity animation.
15
16
  var _useState = useState(isComponentVisible),
16
17
  _useState2 = _slicedToArray(_useState, 2),
@@ -26,6 +27,19 @@ function useDelayedVisibility(isComponentVisible, transitionDuration) {
26
27
  }, transitionDuration);
27
28
  }
28
29
  }, [isComponentVisible, transitionDuration]);
30
+ /**
31
+ * Since we don't want onVisibiltyChange function to trigger itself if when it changes,
32
+ * we store the previous visibility and only trigger when visibility is different
33
+ * than previous value.
34
+ */
35
+
36
+ var previousVisibility = useRef(isVisible);
37
+ useEffect(function () {
38
+ if (onVisibilityChange && previousVisibility.current !== isVisible) {
39
+ onVisibilityChange(isVisible);
40
+ previousVisibility.current = isVisible;
41
+ }
42
+ }, [isVisible, onVisibilityChange]);
29
43
  return isComponentVisible || isVisible;
30
44
  }
31
45
 
@@ -1 +1 @@
1
- {"version":3,"file":"useDelayedVisibility.js","sources":["../../../src/hooks/useDelayedVisibility.tsx"],"sourcesContent":["import { useEffect, useState } from 'react';\n\n/**\n * Returns true if the component is visible taking into account the component's\n * own visibility and the animations delay\n *\n * @param isComponentVisible Whether the component intends to be visible or not.\n * @param transitionDuration time in ms that the transition takes for the specific component.\n * @return true if the component should be rendered\n */\nexport function useDelayedVisibility(isComponentVisible: boolean, transitionDuration: number): boolean {\n // Delay visibility to account for the 400ms of CSS opacity animation.\n const [isVisible, setVisible] = useState(isComponentVisible);\n\n useEffect(() => {\n if (isComponentVisible) {\n setVisible(true);\n } else {\n setTimeout(() => setVisible(false), transitionDuration);\n }\n }, [isComponentVisible, transitionDuration]);\n\n return isComponentVisible || isVisible;\n}\n"],"names":["useDelayedVisibility","isComponentVisible","transitionDuration","useState","isVisible","setVisible","useEffect","setTimeout"],"mappings":";;;AAEA;;;;;;;;;AAQO,SAASA,oBAAT,CAA8BC,kBAA9B,EAA2DC,kBAA3D,EAAgG;AACnG;AADmG,kBAEnEC,QAAQ,CAACF,kBAAD,CAF2D;AAAA;AAAA,MAE5FG,SAF4F;AAAA,MAEjFC,UAFiF;;AAInGC,EAAAA,SAAS,CAAC,YAAM;AACZ,QAAIL,kBAAJ,EAAwB;AACpBI,MAAAA,UAAU,CAAC,IAAD,CAAV;AACH,KAFD,MAEO;AACHE,MAAAA,UAAU,CAAC;AAAA,eAAMF,UAAU,CAAC,KAAD,CAAhB;AAAA,OAAD,EAA0BH,kBAA1B,CAAV;AACH;AACJ,GANQ,EAMN,CAACD,kBAAD,EAAqBC,kBAArB,CANM,CAAT;AAQA,SAAOD,kBAAkB,IAAIG,SAA7B;AACH;;;;"}
1
+ {"version":3,"file":"useDelayedVisibility.js","sources":["../../../src/hooks/useDelayedVisibility.tsx"],"sourcesContent":["import { useEffect, useState, useRef } from 'react';\n\n/**\n * Returns true if the component is visible taking into account the component's\n * own visibility and the animations delay\n *\n * @param isComponentVisible Whether the component intends to be visible or not.\n * @param transitionDuration time in ms that the transition takes for the specific component.\n * @param onVisibilityChange Callback called when the visibility changes.\n * @return true if the component should be rendered\n */\nexport function useDelayedVisibility(\n isComponentVisible: boolean,\n transitionDuration: number,\n onVisibilityChange?: (isVisible: boolean) => void,\n): boolean {\n // Delay visibility to account for the 400ms of CSS opacity animation.\n const [isVisible, setVisible] = useState(isComponentVisible);\n\n useEffect(() => {\n if (isComponentVisible) {\n setVisible(true);\n } else {\n setTimeout(() => setVisible(false), transitionDuration);\n }\n }, [isComponentVisible, transitionDuration]);\n\n /**\n * Since we don't want onVisibiltyChange function to trigger itself if when it changes,\n * we store the previous visibility and only trigger when visibility is different\n * than previous value.\n */\n\n const previousVisibility = useRef(isVisible);\n\n useEffect(() => {\n if (onVisibilityChange && previousVisibility.current !== isVisible) {\n onVisibilityChange(isVisible);\n previousVisibility.current = isVisible;\n }\n }, [isVisible, onVisibilityChange]);\n\n return isComponentVisible || isVisible;\n}\n"],"names":["useDelayedVisibility","isComponentVisible","transitionDuration","onVisibilityChange","useState","isVisible","setVisible","useEffect","setTimeout","previousVisibility","useRef","current"],"mappings":";;;AAEA;;;;;;;;;;AASO,SAASA,oBAAT,CACHC,kBADG,EAEHC,kBAFG,EAGHC,kBAHG,EAII;AACP;AADO,kBAEyBC,QAAQ,CAACH,kBAAD,CAFjC;AAAA;AAAA,MAEAI,SAFA;AAAA,MAEWC,UAFX;;AAIPC,EAAAA,SAAS,CAAC,YAAM;AACZ,QAAIN,kBAAJ,EAAwB;AACpBK,MAAAA,UAAU,CAAC,IAAD,CAAV;AACH,KAFD,MAEO;AACHE,MAAAA,UAAU,CAAC;AAAA,eAAMF,UAAU,CAAC,KAAD,CAAhB;AAAA,OAAD,EAA0BJ,kBAA1B,CAAV;AACH;AACJ,GANQ,EAMN,CAACD,kBAAD,EAAqBC,kBAArB,CANM,CAAT;AAQA;;;;;;AAMA,MAAMO,kBAAkB,GAAGC,MAAM,CAACL,SAAD,CAAjC;AAEAE,EAAAA,SAAS,CAAC,YAAM;AACZ,QAAIJ,kBAAkB,IAAIM,kBAAkB,CAACE,OAAnB,KAA+BN,SAAzD,EAAoE;AAChEF,MAAAA,kBAAkB,CAACE,SAAD,CAAlB;AACAI,MAAAA,kBAAkB,CAACE,OAAnB,GAA6BN,SAA7B;AACH;AACJ,GALQ,EAKN,CAACA,SAAD,EAAYF,kBAAZ,CALM,CAAT;AAOA,SAAOF,kBAAkB,IAAII,SAA7B;AACH;;;;"}
@@ -1,19 +1,217 @@
1
- import { j as createCommonjsModule, m as commonjsGlobal } from './getRootClassName.js';
2
1
  import { useEffect } from 'react';
3
2
 
4
- var bodyScrollLock_min = createCommonjsModule(function (module, exports) {
5
- !function(e,t){var o; t(exports);}(commonjsGlobal,function(exports){function r(e){if(Array.isArray(e)){for(var t=0,o=Array(e.length);t<e.length;t++)o[t]=e[t];return o}return Array.from(e)}Object.defineProperty(exports,"__esModule",{value:!0});var l=!1;if("undefined"!=typeof window){var e={get passive(){l=!0;}};window.addEventListener("testPassive",null,e),window.removeEventListener("testPassive",null,e);}var d="undefined"!=typeof window&&window.navigator&&window.navigator.platform&&/iP(ad|hone|od)/.test(window.navigator.platform),c=[],u=!1,a=-1,s=void 0,v=void 0,f=function(t){return c.some(function(e){return !(!e.options.allowTouchMove||!e.options.allowTouchMove(t))})},m=function(e){var t=e||window.event;return !!f(t.target)||(1<t.touches.length||(t.preventDefault&&t.preventDefault(),!1))},o=function(){setTimeout(function(){void 0!==v&&(document.body.style.paddingRight=v,v=void 0),void 0!==s&&(document.body.style.overflow=s,s=void 0);});};exports.disableBodyScroll=function(i,e){if(d){if(!i)return void console.error("disableBodyScroll unsuccessful - targetElement must be provided when calling disableBodyScroll on IOS devices.");if(i&&!c.some(function(e){return e.targetElement===i})){var t={targetElement:i,options:e||{}};c=[].concat(r(c),[t]),i.ontouchstart=function(e){1===e.targetTouches.length&&(a=e.targetTouches[0].clientY);},i.ontouchmove=function(e){var t,o,n,r;1===e.targetTouches.length&&(o=i,r=(t=e).targetTouches[0].clientY-a,!f(t.target)&&(o&&0===o.scrollTop&&0<r?m(t):(n=o)&&n.scrollHeight-n.scrollTop<=n.clientHeight&&r<0?m(t):t.stopPropagation()));},u||(document.addEventListener("touchmove",m,l?{passive:!1}:void 0),u=!0);}}else {n=e,setTimeout(function(){if(void 0===v){var e=!!n&&!0===n.reserveScrollBarGap,t=window.innerWidth-document.documentElement.clientWidth;e&&0<t&&(v=document.body.style.paddingRight,document.body.style.paddingRight=t+"px");}void 0===s&&(s=document.body.style.overflow,document.body.style.overflow="hidden");});var o={targetElement:i,options:e||{}};c=[].concat(r(c),[o]);}var n;},exports.clearAllBodyScrollLocks=function(){d?(c.forEach(function(e){e.targetElement.ontouchstart=null,e.targetElement.ontouchmove=null;}),u&&(document.removeEventListener("touchmove",m,l?{passive:!1}:void 0),u=!1),c=[],a=-1):(o(),c=[]);},exports.enableBodyScroll=function(t){if(d){if(!t)return void console.error("enableBodyScroll unsuccessful - targetElement must be provided when calling enableBodyScroll on IOS devices.");t.ontouchstart=null,t.ontouchmove=null,c=c.filter(function(e){return e.targetElement!==t}),u&&0===c.length&&(document.removeEventListener("touchmove",m,l?{passive:!1}:void 0),u=!1);}else (c=c.filter(function(e){return e.targetElement!==t})).length||o();};});
6
- });
3
+ function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }
7
4
 
5
+ // Older browsers don't support event options, feature detect it.
6
+
7
+ // Adopted and modified solution from Bohdan Didukh (2017)
8
+ // https://stackoverflow.com/questions/41594997/ios-10-safari-prevent-scrolling-behind-a-fixed-overlay-and-maintain-scroll-posi
9
+
10
+ var hasPassiveEvents = false;
11
+ if (typeof window !== 'undefined') {
12
+ var passiveTestOptions = {
13
+ get passive() {
14
+ hasPassiveEvents = true;
15
+ return undefined;
16
+ }
17
+ };
18
+ window.addEventListener('testPassive', null, passiveTestOptions);
19
+ window.removeEventListener('testPassive', null, passiveTestOptions);
20
+ }
21
+
22
+ var isIosDevice = typeof window !== 'undefined' && window.navigator && window.navigator.platform && (/iP(ad|hone|od)/.test(window.navigator.platform) || window.navigator.platform === 'MacIntel' && window.navigator.maxTouchPoints > 1);
23
+
24
+
25
+ var locks = [];
26
+ var documentListenerAdded = false;
27
+ var initialClientY = -1;
28
+ var previousBodyOverflowSetting = void 0;
29
+ var previousBodyPaddingRight = void 0;
30
+
31
+ // returns true if `el` should be allowed to receive touchmove events.
32
+ var allowTouchMove = function allowTouchMove(el) {
33
+ return locks.some(function (lock) {
34
+ if (lock.options.allowTouchMove && lock.options.allowTouchMove(el)) {
35
+ return true;
36
+ }
37
+
38
+ return false;
39
+ });
40
+ };
41
+
42
+ var preventDefault = function preventDefault(rawEvent) {
43
+ var e = rawEvent || window.event;
44
+
45
+ // For the case whereby consumers adds a touchmove event listener to document.
46
+ // Recall that we do document.addEventListener('touchmove', preventDefault, { passive: false })
47
+ // in disableBodyScroll - so if we provide this opportunity to allowTouchMove, then
48
+ // the touchmove event on document will break.
49
+ if (allowTouchMove(e.target)) {
50
+ return true;
51
+ }
52
+
53
+ // Do not prevent if the event has more than one touch (usually meaning this is a multi touch gesture like pinch to zoom).
54
+ if (e.touches.length > 1) return true;
55
+
56
+ if (e.preventDefault) e.preventDefault();
57
+
58
+ return false;
59
+ };
60
+
61
+ var setOverflowHidden = function setOverflowHidden(options) {
62
+ // If previousBodyPaddingRight is already set, don't set it again.
63
+ if (previousBodyPaddingRight === undefined) {
64
+ var _reserveScrollBarGap = !!options && options.reserveScrollBarGap === true;
65
+ var scrollBarGap = window.innerWidth - document.documentElement.clientWidth;
66
+
67
+ if (_reserveScrollBarGap && scrollBarGap > 0) {
68
+ previousBodyPaddingRight = document.body.style.paddingRight;
69
+ document.body.style.paddingRight = scrollBarGap + 'px';
70
+ }
71
+ }
72
+
73
+ // If previousBodyOverflowSetting is already set, don't set it again.
74
+ if (previousBodyOverflowSetting === undefined) {
75
+ previousBodyOverflowSetting = document.body.style.overflow;
76
+ document.body.style.overflow = 'hidden';
77
+ }
78
+ };
79
+
80
+ var restoreOverflowSetting = function restoreOverflowSetting() {
81
+ if (previousBodyPaddingRight !== undefined) {
82
+ document.body.style.paddingRight = previousBodyPaddingRight;
83
+
84
+ // Restore previousBodyPaddingRight to undefined so setOverflowHidden knows it
85
+ // can be set again.
86
+ previousBodyPaddingRight = undefined;
87
+ }
88
+
89
+ if (previousBodyOverflowSetting !== undefined) {
90
+ document.body.style.overflow = previousBodyOverflowSetting;
91
+
92
+ // Restore previousBodyOverflowSetting to undefined
93
+ // so setOverflowHidden knows it can be set again.
94
+ previousBodyOverflowSetting = undefined;
95
+ }
96
+ };
97
+
98
+ // https://developer.mozilla.org/en-US/docs/Web/API/Element/scrollHeight#Problems_and_solutions
99
+ var isTargetElementTotallyScrolled = function isTargetElementTotallyScrolled(targetElement) {
100
+ return targetElement ? targetElement.scrollHeight - targetElement.scrollTop <= targetElement.clientHeight : false;
101
+ };
102
+
103
+ var handleScroll = function handleScroll(event, targetElement) {
104
+ var clientY = event.targetTouches[0].clientY - initialClientY;
105
+
106
+ if (allowTouchMove(event.target)) {
107
+ return false;
108
+ }
109
+
110
+ if (targetElement && targetElement.scrollTop === 0 && clientY > 0) {
111
+ // element is at the top of its scroll.
112
+ return preventDefault(event);
113
+ }
114
+
115
+ if (isTargetElementTotallyScrolled(targetElement) && clientY < 0) {
116
+ // element is at the bottom of its scroll.
117
+ return preventDefault(event);
118
+ }
119
+
120
+ event.stopPropagation();
121
+ return true;
122
+ };
123
+
124
+ var disableBodyScroll = function disableBodyScroll(targetElement, options) {
125
+ // targetElement must be provided
126
+ if (!targetElement) {
127
+ // eslint-disable-next-line no-console
128
+ console.error('disableBodyScroll unsuccessful - targetElement must be provided when calling disableBodyScroll on IOS devices.');
129
+ return;
130
+ }
131
+
132
+ // disableBodyScroll must not have been called on this targetElement before
133
+ if (locks.some(function (lock) {
134
+ return lock.targetElement === targetElement;
135
+ })) {
136
+ return;
137
+ }
138
+
139
+ var lock = {
140
+ targetElement: targetElement,
141
+ options: options || {}
142
+ };
143
+
144
+ locks = [].concat(_toConsumableArray(locks), [lock]);
145
+
146
+ if (isIosDevice) {
147
+ targetElement.ontouchstart = function (event) {
148
+ if (event.targetTouches.length === 1) {
149
+ // detect single touch.
150
+ initialClientY = event.targetTouches[0].clientY;
151
+ }
152
+ };
153
+ targetElement.ontouchmove = function (event) {
154
+ if (event.targetTouches.length === 1) {
155
+ // detect single touch.
156
+ handleScroll(event, targetElement);
157
+ }
158
+ };
159
+
160
+ if (!documentListenerAdded) {
161
+ document.addEventListener('touchmove', preventDefault, hasPassiveEvents ? { passive: false } : undefined);
162
+ documentListenerAdded = true;
163
+ }
164
+ } else {
165
+ setOverflowHidden(options);
166
+ }
167
+ };
168
+
169
+ var enableBodyScroll = function enableBodyScroll(targetElement) {
170
+ if (!targetElement) {
171
+ // eslint-disable-next-line no-console
172
+ console.error('enableBodyScroll unsuccessful - targetElement must be provided when calling enableBodyScroll on IOS devices.');
173
+ return;
174
+ }
175
+
176
+ locks = locks.filter(function (lock) {
177
+ return lock.targetElement !== targetElement;
178
+ });
179
+
180
+ if (isIosDevice) {
181
+ targetElement.ontouchstart = null;
182
+ targetElement.ontouchmove = null;
183
+
184
+ if (documentListenerAdded && locks.length === 0) {
185
+ document.removeEventListener('touchmove', preventDefault, hasPassiveEvents ? { passive: false } : undefined);
186
+ documentListenerAdded = false;
187
+ }
188
+ } else if (!locks.length) {
189
+ restoreOverflowSetting();
190
+ }
191
+ };
192
+
193
+ /**
194
+ * Disables the scroll on the body to make it only usable in the current modal element.
195
+ * When the modal element is not provided anymore, the scroll is restored.
196
+ *
197
+ * @param modalElement The modal element.
198
+ */
8
199
  var useDisableBodyScroll = function useDisableBodyScroll(modalElement) {
9
200
  useEffect(function () {
10
201
  if (!modalElement) {
11
202
  return undefined;
12
- }
203
+ } // Fixing the document overflow style to prevent a bug that scrolls the window to the top.
204
+
13
205
 
14
- bodyScrollLock_min.disableBodyScroll(modalElement);
206
+ var previousDocumentOverflow = document.documentElement.style.overflow;
207
+ document.documentElement.style.overflow = 'visible';
208
+ disableBodyScroll(modalElement);
15
209
  return function () {
16
- return bodyScrollLock_min.enableBodyScroll(modalElement);
210
+ enableBodyScroll(modalElement); // Restore the previous overflow style.
211
+
212
+ requestAnimationFrame(function () {
213
+ document.documentElement.style.overflow = previousDocumentOverflow;
214
+ });
17
215
  };
18
216
  }, [modalElement]);
19
217
  };
@@ -1 +1 @@
1
- {"version":3,"file":"useDisableBodyScroll.js","sources":["../../../../../node_modules/body-scroll-lock/lib/bodyScrollLock.min.js","../../../src/hooks/useDisableBodyScroll.ts"],"sourcesContent":["!function(e,t){if(\"function\"==typeof define&&define.amd)define([\"exports\"],t);else if(\"undefined\"!=typeof exports)t(exports);else{var o={};t(o),e.bodyScrollLock=o}}(this,function(exports){\"use strict\";function r(e){if(Array.isArray(e)){for(var t=0,o=Array(e.length);t<e.length;t++)o[t]=e[t];return o}return Array.from(e)}Object.defineProperty(exports,\"__esModule\",{value:!0});var l=!1;if(\"undefined\"!=typeof window){var e={get passive(){l=!0}};window.addEventListener(\"testPassive\",null,e),window.removeEventListener(\"testPassive\",null,e)}var d=\"undefined\"!=typeof window&&window.navigator&&window.navigator.platform&&/iP(ad|hone|od)/.test(window.navigator.platform),c=[],u=!1,a=-1,s=void 0,v=void 0,f=function(t){return c.some(function(e){return!(!e.options.allowTouchMove||!e.options.allowTouchMove(t))})},m=function(e){var t=e||window.event;return!!f(t.target)||(1<t.touches.length||(t.preventDefault&&t.preventDefault(),!1))},o=function(){setTimeout(function(){void 0!==v&&(document.body.style.paddingRight=v,v=void 0),void 0!==s&&(document.body.style.overflow=s,s=void 0)})};exports.disableBodyScroll=function(i,e){if(d){if(!i)return void console.error(\"disableBodyScroll unsuccessful - targetElement must be provided when calling disableBodyScroll on IOS devices.\");if(i&&!c.some(function(e){return e.targetElement===i})){var t={targetElement:i,options:e||{}};c=[].concat(r(c),[t]),i.ontouchstart=function(e){1===e.targetTouches.length&&(a=e.targetTouches[0].clientY)},i.ontouchmove=function(e){var t,o,n,r;1===e.targetTouches.length&&(o=i,r=(t=e).targetTouches[0].clientY-a,!f(t.target)&&(o&&0===o.scrollTop&&0<r?m(t):(n=o)&&n.scrollHeight-n.scrollTop<=n.clientHeight&&r<0?m(t):t.stopPropagation()))},u||(document.addEventListener(\"touchmove\",m,l?{passive:!1}:void 0),u=!0)}}else{n=e,setTimeout(function(){if(void 0===v){var e=!!n&&!0===n.reserveScrollBarGap,t=window.innerWidth-document.documentElement.clientWidth;e&&0<t&&(v=document.body.style.paddingRight,document.body.style.paddingRight=t+\"px\")}void 0===s&&(s=document.body.style.overflow,document.body.style.overflow=\"hidden\")});var o={targetElement:i,options:e||{}};c=[].concat(r(c),[o])}var n},exports.clearAllBodyScrollLocks=function(){d?(c.forEach(function(e){e.targetElement.ontouchstart=null,e.targetElement.ontouchmove=null}),u&&(document.removeEventListener(\"touchmove\",m,l?{passive:!1}:void 0),u=!1),c=[],a=-1):(o(),c=[])},exports.enableBodyScroll=function(t){if(d){if(!t)return void console.error(\"enableBodyScroll unsuccessful - targetElement must be provided when calling enableBodyScroll on IOS devices.\");t.ontouchstart=null,t.ontouchmove=null,c=c.filter(function(e){return e.targetElement!==t}),u&&0===c.length&&(document.removeEventListener(\"touchmove\",m,l?{passive:!1}:void 0),u=!1)}else(c=c.filter(function(e){return e.targetElement!==t})).length||o()}});\n","import { useEffect } from 'react';\nimport { disableBodyScroll, enableBodyScroll } from 'body-scroll-lock';\nimport { Falsy } from '@lumx/react/utils';\n\nexport const useDisableBodyScroll = (modalElement: Element | Falsy): void => {\n useEffect(() => {\n if (!modalElement) {\n return undefined;\n }\n disableBodyScroll(modalElement);\n return () => enableBodyScroll(modalElement);\n }, [modalElement]);\n};\n"],"names":["this","useDisableBodyScroll","modalElement","useEffect","undefined","disableBodyScroll","enableBodyScroll"],"mappings":"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"}
1
+ {"version":3,"file":"useDisableBodyScroll.js","sources":["../../../../../node_modules/body-scroll-lock/lib/bodyScrollLock.esm.js","../../../src/hooks/useDisableBodyScroll.ts"],"sourcesContent":["function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\n// Older browsers don't support event options, feature detect it.\n\n// Adopted and modified solution from Bohdan Didukh (2017)\n// https://stackoverflow.com/questions/41594997/ios-10-safari-prevent-scrolling-behind-a-fixed-overlay-and-maintain-scroll-posi\n\nvar hasPassiveEvents = false;\nif (typeof window !== 'undefined') {\n var passiveTestOptions = {\n get passive() {\n hasPassiveEvents = true;\n return undefined;\n }\n };\n window.addEventListener('testPassive', null, passiveTestOptions);\n window.removeEventListener('testPassive', null, passiveTestOptions);\n}\n\nvar isIosDevice = typeof window !== 'undefined' && window.navigator && window.navigator.platform && (/iP(ad|hone|od)/.test(window.navigator.platform) || window.navigator.platform === 'MacIntel' && window.navigator.maxTouchPoints > 1);\n\n\nvar locks = [];\nvar documentListenerAdded = false;\nvar initialClientY = -1;\nvar previousBodyOverflowSetting = void 0;\nvar previousBodyPaddingRight = void 0;\n\n// returns true if `el` should be allowed to receive touchmove events.\nvar allowTouchMove = function allowTouchMove(el) {\n return locks.some(function (lock) {\n if (lock.options.allowTouchMove && lock.options.allowTouchMove(el)) {\n return true;\n }\n\n return false;\n });\n};\n\nvar preventDefault = function preventDefault(rawEvent) {\n var e = rawEvent || window.event;\n\n // For the case whereby consumers adds a touchmove event listener to document.\n // Recall that we do document.addEventListener('touchmove', preventDefault, { passive: false })\n // in disableBodyScroll - so if we provide this opportunity to allowTouchMove, then\n // the touchmove event on document will break.\n if (allowTouchMove(e.target)) {\n return true;\n }\n\n // Do not prevent if the event has more than one touch (usually meaning this is a multi touch gesture like pinch to zoom).\n if (e.touches.length > 1) return true;\n\n if (e.preventDefault) e.preventDefault();\n\n return false;\n};\n\nvar setOverflowHidden = function setOverflowHidden(options) {\n // If previousBodyPaddingRight is already set, don't set it again.\n if (previousBodyPaddingRight === undefined) {\n var _reserveScrollBarGap = !!options && options.reserveScrollBarGap === true;\n var scrollBarGap = window.innerWidth - document.documentElement.clientWidth;\n\n if (_reserveScrollBarGap && scrollBarGap > 0) {\n previousBodyPaddingRight = document.body.style.paddingRight;\n document.body.style.paddingRight = scrollBarGap + 'px';\n }\n }\n\n // If previousBodyOverflowSetting is already set, don't set it again.\n if (previousBodyOverflowSetting === undefined) {\n previousBodyOverflowSetting = document.body.style.overflow;\n document.body.style.overflow = 'hidden';\n }\n};\n\nvar restoreOverflowSetting = function restoreOverflowSetting() {\n if (previousBodyPaddingRight !== undefined) {\n document.body.style.paddingRight = previousBodyPaddingRight;\n\n // Restore previousBodyPaddingRight to undefined so setOverflowHidden knows it\n // can be set again.\n previousBodyPaddingRight = undefined;\n }\n\n if (previousBodyOverflowSetting !== undefined) {\n document.body.style.overflow = previousBodyOverflowSetting;\n\n // Restore previousBodyOverflowSetting to undefined\n // so setOverflowHidden knows it can be set again.\n previousBodyOverflowSetting = undefined;\n }\n};\n\n// https://developer.mozilla.org/en-US/docs/Web/API/Element/scrollHeight#Problems_and_solutions\nvar isTargetElementTotallyScrolled = function isTargetElementTotallyScrolled(targetElement) {\n return targetElement ? targetElement.scrollHeight - targetElement.scrollTop <= targetElement.clientHeight : false;\n};\n\nvar handleScroll = function handleScroll(event, targetElement) {\n var clientY = event.targetTouches[0].clientY - initialClientY;\n\n if (allowTouchMove(event.target)) {\n return false;\n }\n\n if (targetElement && targetElement.scrollTop === 0 && clientY > 0) {\n // element is at the top of its scroll.\n return preventDefault(event);\n }\n\n if (isTargetElementTotallyScrolled(targetElement) && clientY < 0) {\n // element is at the bottom of its scroll.\n return preventDefault(event);\n }\n\n event.stopPropagation();\n return true;\n};\n\nexport var disableBodyScroll = function disableBodyScroll(targetElement, options) {\n // targetElement must be provided\n if (!targetElement) {\n // eslint-disable-next-line no-console\n console.error('disableBodyScroll unsuccessful - targetElement must be provided when calling disableBodyScroll on IOS devices.');\n return;\n }\n\n // disableBodyScroll must not have been called on this targetElement before\n if (locks.some(function (lock) {\n return lock.targetElement === targetElement;\n })) {\n return;\n }\n\n var lock = {\n targetElement: targetElement,\n options: options || {}\n };\n\n locks = [].concat(_toConsumableArray(locks), [lock]);\n\n if (isIosDevice) {\n targetElement.ontouchstart = function (event) {\n if (event.targetTouches.length === 1) {\n // detect single touch.\n initialClientY = event.targetTouches[0].clientY;\n }\n };\n targetElement.ontouchmove = function (event) {\n if (event.targetTouches.length === 1) {\n // detect single touch.\n handleScroll(event, targetElement);\n }\n };\n\n if (!documentListenerAdded) {\n document.addEventListener('touchmove', preventDefault, hasPassiveEvents ? { passive: false } : undefined);\n documentListenerAdded = true;\n }\n } else {\n setOverflowHidden(options);\n }\n};\n\nexport var clearAllBodyScrollLocks = function clearAllBodyScrollLocks() {\n if (isIosDevice) {\n // Clear all locks ontouchstart/ontouchmove handlers, and the references.\n locks.forEach(function (lock) {\n lock.targetElement.ontouchstart = null;\n lock.targetElement.ontouchmove = null;\n });\n\n if (documentListenerAdded) {\n document.removeEventListener('touchmove', preventDefault, hasPassiveEvents ? { passive: false } : undefined);\n documentListenerAdded = false;\n }\n\n // Reset initial clientY.\n initialClientY = -1;\n } else {\n restoreOverflowSetting();\n }\n\n locks = [];\n};\n\nexport var enableBodyScroll = function enableBodyScroll(targetElement) {\n if (!targetElement) {\n // eslint-disable-next-line no-console\n console.error('enableBodyScroll unsuccessful - targetElement must be provided when calling enableBodyScroll on IOS devices.');\n return;\n }\n\n locks = locks.filter(function (lock) {\n return lock.targetElement !== targetElement;\n });\n\n if (isIosDevice) {\n targetElement.ontouchstart = null;\n targetElement.ontouchmove = null;\n\n if (documentListenerAdded && locks.length === 0) {\n document.removeEventListener('touchmove', preventDefault, hasPassiveEvents ? { passive: false } : undefined);\n documentListenerAdded = false;\n }\n } else if (!locks.length) {\n restoreOverflowSetting();\n }\n};\n\n","import { useEffect } from 'react';\nimport { disableBodyScroll, enableBodyScroll } from 'body-scroll-lock';\nimport { Falsy } from '@lumx/react/utils';\n\n/**\n * Disables the scroll on the body to make it only usable in the current modal element.\n * When the modal element is not provided anymore, the scroll is restored.\n *\n * @param modalElement The modal element.\n */\nexport const useDisableBodyScroll = (modalElement: Element | Falsy): void => {\n useEffect(() => {\n if (!modalElement) {\n return undefined;\n }\n // Fixing the document overflow style to prevent a bug that scrolls the window to the top.\n const previousDocumentOverflow = document.documentElement.style.overflow;\n document.documentElement.style.overflow = 'visible';\n disableBodyScroll(modalElement);\n return () => {\n enableBodyScroll(modalElement);\n // Restore the previous overflow style.\n requestAnimationFrame(() => {\n document.documentElement.style.overflow = previousDocumentOverflow;\n });\n };\n }, [modalElement]);\n};\n"],"names":["useDisableBodyScroll","modalElement","useEffect","undefined","previousDocumentOverflow","document","documentElement","style","overflow","disableBodyScroll","enableBodyScroll","requestAnimationFrame"],"mappings":"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"}
package/esm/index.js CHANGED
@@ -40,7 +40,7 @@ import './_internal/useFocusTrap.js';
40
40
  import 'react-dom';
41
41
  import './_internal/ClickAwayProvider.js';
42
42
  export { D as Dialog } from './_internal/Dialog2.js';
43
- import 'lodash/uniq';
43
+ import 'lodash/pull';
44
44
  import './_internal/useDelayedVisibility.js';
45
45
  import './_internal/useDisableBodyScroll.js';
46
46
  export { D as DEFAULT_PROPS, a as Divider } from './_internal/Divider2.js';
@@ -85,7 +85,6 @@ import 'lodash';
85
85
  export { T as ThumbnailAspectRatio, a as ThumbnailVariant } from './_internal/types.js';
86
86
  export { T as Toolbar } from './_internal/Toolbar2.js';
87
87
  export { T as Tooltip } from './_internal/Tooltip2.js';
88
- import 'lodash/pull';
89
88
  import 'lodash/debounce';
90
89
  export { a as Uploader, U as UploaderVariant } from './_internal/Uploader2.js';
91
90
  export { U as UserBlock } from './_internal/UserBlock.js';
package/esm/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
package/package.json CHANGED
@@ -7,10 +7,10 @@
7
7
  },
8
8
  "dependencies": {
9
9
  "@juggle/resize-observer": "^3.2.0",
10
- "@lumx/core": "^2.0.0-alpha.0",
11
- "@lumx/icons": "^2.0.0-alpha.0",
10
+ "@lumx/core": "^2.0.1",
11
+ "@lumx/icons": "^2.0.1",
12
12
  "@popperjs/core": "^2.5.4",
13
- "body-scroll-lock": "^2.6.4",
13
+ "body-scroll-lock": "^3.1.5",
14
14
  "classnames": "^2.2.6",
15
15
  "react-is": "^16.13.0",
16
16
  "react-popper": "^2.2.4",
@@ -83,7 +83,7 @@
83
83
  "yarn": "^1.19.1"
84
84
  },
85
85
  "peerDependencies": {
86
- "lodash": "4.17.19",
86
+ "lodash": "4.17.21",
87
87
  "moment": "^2.24.0",
88
88
  "moment-range": "^4.0.2",
89
89
  "react": "^16.13.0",
@@ -123,9 +123,9 @@
123
123
  "storybook": "start-storybook -s ../site-demo/static/ -p 9000"
124
124
  },
125
125
  "sideEffects": false,
126
- "version": "2.0.0-alpha.0",
126
+ "version": "2.0.1",
127
127
  "resolutions": {
128
128
  "**/style-loader": "^1.0.0"
129
129
  },
130
- "gitHead": "5578fb0a73c6998d8812c9cf6cf022977c266b1f"
130
+ "gitHead": "564dc03017aa2a246dfb40040f2055e812129364"
131
131
  }