@skbkontur/react-ui 4.25.2 → 4.26.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 (67) hide show
  1. package/CHANGELOG.md +19 -0
  2. package/README.md +41 -13
  3. package/cjs/components/Autocomplete/Autocomplete.md +76 -3
  4. package/cjs/components/Button/Button.md +38 -11
  5. package/cjs/components/Calendar/Calendar.md +40 -0
  6. package/cjs/components/DropdownMenu/DropdownMenu.md +39 -0
  7. package/cjs/components/FileUploader/FileUploader.d.ts +2 -0
  8. package/cjs/components/FileUploader/FileUploader.js +32 -9
  9. package/cjs/components/FileUploader/FileUploader.js.map +1 -1
  10. package/cjs/components/FileUploader/FileUploader.md +29 -0
  11. package/cjs/components/ScrollContainer/ScrollContainer.d.ts +1 -0
  12. package/cjs/components/ScrollContainer/ScrollContainer.js +6 -0
  13. package/cjs/components/ScrollContainer/ScrollContainer.js.map +1 -1
  14. package/cjs/hooks/useDrop.d.ts +1 -1
  15. package/cjs/hooks/useDrop.js.map +1 -1
  16. package/cjs/internal/FileUploaderControl/FileUploaderControlProvider.d.ts +5 -2
  17. package/cjs/internal/FileUploaderControl/FileUploaderControlProvider.js +16 -3
  18. package/cjs/internal/FileUploaderControl/FileUploaderControlProvider.js.map +1 -1
  19. package/cjs/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.d.ts +1 -0
  20. package/cjs/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.js +4 -2
  21. package/cjs/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.js.map +1 -1
  22. package/cjs/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.d.ts +1 -0
  23. package/cjs/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.js +3 -2
  24. package/cjs/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.js.map +1 -1
  25. package/cjs/internal/RenderContainer/RenderContainer.d.ts +2 -0
  26. package/cjs/internal/RenderContainer/RenderContainer.js +6 -3
  27. package/cjs/internal/RenderContainer/RenderContainer.js.map +1 -1
  28. package/cjs/internal/RenderContainer/RenderInnerContainer.js +3 -2
  29. package/cjs/internal/RenderContainer/RenderInnerContainer.js.map +1 -1
  30. package/cjs/internal/ZIndex/ZIndex.d.ts +7 -3
  31. package/cjs/internal/ZIndex/ZIndex.js +41 -3
  32. package/cjs/internal/ZIndex/ZIndex.js.map +1 -1
  33. package/cjs/lib/listenFocusOutside.js +4 -2
  34. package/cjs/lib/listenFocusOutside.js.map +1 -1
  35. package/components/Autocomplete/Autocomplete.md +76 -3
  36. package/components/Button/Button.md +38 -11
  37. package/components/Calendar/Calendar.md +40 -0
  38. package/components/DropdownMenu/DropdownMenu.md +39 -0
  39. package/components/FileUploader/FileUploader/FileUploader.js +30 -8
  40. package/components/FileUploader/FileUploader/FileUploader.js.map +1 -1
  41. package/components/FileUploader/FileUploader.d.ts +2 -0
  42. package/components/FileUploader/FileUploader.md +29 -0
  43. package/components/ScrollContainer/ScrollContainer/ScrollContainer.js +5 -0
  44. package/components/ScrollContainer/ScrollContainer/ScrollContainer.js.map +1 -1
  45. package/components/ScrollContainer/ScrollContainer.d.ts +1 -0
  46. package/hooks/useDrop/useDrop.js.map +1 -1
  47. package/hooks/useDrop.d.ts +1 -1
  48. package/internal/FileUploaderControl/FileUploaderControlProvider/FileUploaderControlProvider.js +12 -3
  49. package/internal/FileUploaderControl/FileUploaderControlProvider/FileUploaderControlProvider.js.map +1 -1
  50. package/internal/FileUploaderControl/FileUploaderControlProvider.d.ts +5 -2
  51. package/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile/FileUploaderFile.js +4 -2
  52. package/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile/FileUploaderFile.js.map +1 -1
  53. package/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.d.ts +1 -0
  54. package/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList/FileUploaderFileList.js +4 -2
  55. package/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList/FileUploaderFileList.js.map +1 -1
  56. package/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.d.ts +1 -0
  57. package/internal/RenderContainer/RenderContainer/RenderContainer.js +3 -1
  58. package/internal/RenderContainer/RenderContainer/RenderContainer.js.map +1 -1
  59. package/internal/RenderContainer/RenderContainer.d.ts +2 -0
  60. package/internal/RenderContainer/RenderInnerContainer/RenderInnerContainer.js +5 -4
  61. package/internal/RenderContainer/RenderInnerContainer/RenderInnerContainer.js.map +1 -1
  62. package/internal/ZIndex/ZIndex/ZIndex.js +55 -7
  63. package/internal/ZIndex/ZIndex/ZIndex.js.map +1 -1
  64. package/internal/ZIndex/ZIndex.d.ts +7 -3
  65. package/lib/listenFocusOutside/listenFocusOutside.js +3 -2
  66. package/lib/listenFocusOutside/listenFocusOutside.js.map +1 -1
  67. package/package.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"sources":["listenFocusOutside.ts"],"names":["ReactDOM","debounce","globalObject","isInstanceOf","isFirefox","handlers","addHandleEvent","document","body","addEventListener","handleNativeFocus","leading","trailing","capture","readyState","event","target","srcElement","forEach","handler","elements","some","containsTargetOrRenderContainer","unstable_batchedUpdates","callback","element","contains","container","findRenderContainer","node","rootNode","currentNode","parentNode","documentElement","Element","newContainerId","getAttribute","nextNode","querySelector","Error","listen","push","remove","index","indexOf","splice"],"mappings":"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","sourcesContent":["import ReactDOM from 'react-dom';\nimport debounce from 'lodash.debounce';\nimport { globalObject } from '@skbkontur/global-object';\n\nimport { isInstanceOf } from './isInstanceOf';\nimport { isFirefox } from './client';\n\ninterface FocusOutsideEventHandler {\n elements: Element[] | (() => Element[]);\n callback: (event: Event) => void;\n}\n\nconst handlers: FocusOutsideEventHandler[] = [];\n\nfunction addHandleEvent() {\n /**\n * Firefox do not supports 'focusin' event.\n * Focus events bubbles multiple time\n * without possibilty to cancell bubbling.\n * Using debounce to capture only first focus event\n * Mozilla Firefix\n * ¯\\_(ツ)_/¯\n */\n globalObject.document?.body.addEventListener(\n isFirefox ? 'focus' : ('focusin' as 'focus'),\n isFirefox ? debounce(handleNativeFocus, 0, { leading: true, trailing: false }) : handleNativeFocus,\n { capture: true },\n );\n}\n\nif (globalObject.document?.readyState === 'complete') {\n addHandleEvent();\n} else {\n globalObject.addEventListener?.('load', addHandleEvent);\n}\n\nfunction handleNativeFocus(event: UIEvent) {\n // FIXME: not safe casting\n const target: Element = (event.target || event.srcElement) as Element;\n\n handlers.forEach((handler) => {\n let elements = handler.elements;\n if (typeof elements === 'function') {\n elements = elements();\n }\n\n if (elements.some(containsTargetOrRenderContainer(target))) {\n return;\n }\n ReactDOM.unstable_batchedUpdates(() => handler.callback(event));\n });\n}\n\nexport function containsTargetOrRenderContainer(target: Element) {\n return (element: Element) => {\n if (!element) {\n return false;\n }\n if (element.contains(target)) {\n return true;\n }\n const container = findRenderContainer(target, element);\n return !!container && element.contains(container);\n };\n}\n\n/**\n * Searches RenderContainer placed in \"rootNode\" for \"node\"\n */\nexport function findRenderContainer(node: Element, rootNode: Element, container?: Element): Element | null {\n const currentNode = node.parentNode;\n if (\n !currentNode ||\n node === rootNode ||\n currentNode === rootNode ||\n currentNode === globalObject.document?.body ||\n currentNode === globalObject.document?.documentElement ||\n !isInstanceOf(currentNode, globalObject.Element)\n ) {\n return container ? container : null;\n }\n\n const newContainerId = currentNode.getAttribute('data-rendered-container-id');\n if (newContainerId) {\n const nextNode = globalObject.document?.querySelector(`[data-render-container-id~=\"${newContainerId}\"]`);\n\n if (!nextNode) {\n throw Error(`Origin node for render container was not found`);\n }\n\n return findRenderContainer(nextNode, rootNode, nextNode);\n }\n\n return findRenderContainer(currentNode, rootNode, container);\n}\n\nexport function listen(elements: Element[] | (() => Element[]), callback: (event: Event) => void) {\n const handler = {\n elements,\n callback,\n };\n handlers.push(handler);\n\n return {\n remove() {\n const index = handlers.indexOf(handler);\n if (index > -1) {\n handlers.splice(index, 1);\n }\n },\n };\n}\n"]}
1
+ {"version":3,"sources":["listenFocusOutside.ts"],"names":["ReactDOM","debounce","globalObject","PORTAL_INLET_ATTR","PORTAL_OUTLET_ATTR","isInstanceOf","isFirefox","handlers","addHandleEvent","document","body","addEventListener","handleNativeFocus","leading","trailing","capture","readyState","event","target","srcElement","forEach","handler","elements","some","containsTargetOrRenderContainer","unstable_batchedUpdates","callback","element","contains","container","findRenderContainer","node","rootNode","currentNode","parentNode","documentElement","Element","newContainerId","getAttribute","nextNode","querySelector","Error","listen","push","remove","index","indexOf","splice"],"mappings":"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","sourcesContent":["import ReactDOM from 'react-dom';\nimport debounce from 'lodash.debounce';\nimport { globalObject } from '@skbkontur/global-object';\n\nimport { PORTAL_INLET_ATTR, PORTAL_OUTLET_ATTR } from '../internal/RenderContainer';\n\nimport { isInstanceOf } from './isInstanceOf';\nimport { isFirefox } from './client';\n\ninterface FocusOutsideEventHandler {\n elements: Element[] | (() => Element[]);\n callback: (event: Event) => void;\n}\n\nconst handlers: FocusOutsideEventHandler[] = [];\n\nfunction addHandleEvent() {\n /**\n * Firefox do not supports 'focusin' event.\n * Focus events bubbles multiple time\n * without possibilty to cancell bubbling.\n * Using debounce to capture only first focus event\n * Mozilla Firefix\n * ¯\\_(ツ)_/¯\n */\n globalObject.document?.body.addEventListener(\n isFirefox ? 'focus' : ('focusin' as 'focus'),\n isFirefox ? debounce(handleNativeFocus, 0, { leading: true, trailing: false }) : handleNativeFocus,\n { capture: true },\n );\n}\n\nif (globalObject.document?.readyState === 'complete') {\n addHandleEvent();\n} else {\n globalObject.addEventListener?.('load', addHandleEvent);\n}\n\nfunction handleNativeFocus(event: UIEvent) {\n // FIXME: not safe casting\n const target: Element = (event.target || event.srcElement) as Element;\n\n handlers.forEach((handler) => {\n let elements = handler.elements;\n if (typeof elements === 'function') {\n elements = elements();\n }\n\n if (elements.some(containsTargetOrRenderContainer(target))) {\n return;\n }\n ReactDOM.unstable_batchedUpdates(() => handler.callback(event));\n });\n}\n\nexport function containsTargetOrRenderContainer(target: Element) {\n return (element: Element) => {\n if (!element) {\n return false;\n }\n if (element.contains(target)) {\n return true;\n }\n const container = findRenderContainer(target, element);\n return !!container && element.contains(container);\n };\n}\n\n/**\n * Searches RenderContainer placed in \"rootNode\" for \"node\"\n */\nexport function findRenderContainer(node: Element, rootNode: Element, container?: Element): Element | null {\n const currentNode = node.parentNode;\n if (\n !currentNode ||\n node === rootNode ||\n currentNode === rootNode ||\n currentNode === globalObject.document?.body ||\n currentNode === globalObject.document?.documentElement ||\n !isInstanceOf(currentNode, globalObject.Element)\n ) {\n return container ? container : null;\n }\n\n const newContainerId = currentNode.getAttribute(PORTAL_OUTLET_ATTR);\n if (newContainerId) {\n const nextNode = globalObject.document?.querySelector(`[${PORTAL_INLET_ATTR}~=\"${newContainerId}\"]`);\n\n if (!nextNode) {\n throw Error(`Origin node for render container was not found`);\n }\n\n return findRenderContainer(nextNode, rootNode, nextNode);\n }\n\n return findRenderContainer(currentNode, rootNode, container);\n}\n\nexport function listen(elements: Element[] | (() => Element[]), callback: (event: Event) => void) {\n const handler = {\n elements,\n callback,\n };\n handlers.push(handler);\n\n return {\n remove() {\n const index = handlers.indexOf(handler);\n if (index > -1) {\n handlers.splice(index, 1);\n }\n },\n };\n}\n"]}
package/package.json CHANGED
@@ -1,11 +1,11 @@
1
1
  {
2
2
  "name": "@skbkontur/react-ui",
3
- "version": "4.25.2",
3
+ "version": "4.26.0",
4
4
  "description": "UI Components",
5
5
  "main": "cjs/index.js",
6
6
  "module": "index.js",
7
7
  "sideEffects": false,
8
- "homepage": "https://tech.skbkontur.ru/react-ui/4.25.2/",
8
+ "homepage": "https://tech.skbkontur.ru/react-ui/4.26.0/",
9
9
  "repository": {
10
10
  "type": "git",
11
11
  "url": "git@github.com:skbkontur/retail-ui.git"