react-ui-basics 0.0.175 → 0.0.178

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 (162) hide show
  1. package/Animated.js.map +1 -1
  2. package/AutocompleteSelect.js.map +1 -1
  3. package/Button.js.map +1 -1
  4. package/CalendarMonthView.css +20 -0
  5. package/CalendarMonthView.d.ts +12 -0
  6. package/CalendarMonthView.js +52 -0
  7. package/CalendarMonthView.js.map +1 -0
  8. package/Checkbox.js.map +1 -1
  9. package/CircleProgress.js.map +1 -1
  10. package/CommonFields.js.map +1 -1
  11. package/DNDContainer.js.map +1 -1
  12. package/DNDDraggable.js.map +1 -1
  13. package/DNDDroppable.js.map +1 -1
  14. package/DatePicker.css +93 -0
  15. package/DatePicker.d.ts +32 -0
  16. package/DatePicker.js +116 -0
  17. package/DatePicker.js.map +1 -0
  18. package/DateTools.d.ts +39 -0
  19. package/DateTools.js +73 -0
  20. package/DateTools.js.map +1 -0
  21. package/Dialog.js.map +1 -1
  22. package/DropFileInput.js.map +1 -1
  23. package/DroppableHorizontalList.js.map +1 -1
  24. package/DroppableList.js.map +1 -1
  25. package/Dropzone.js.map +1 -1
  26. package/FilteredList.js.map +1 -1
  27. package/FloatingActionButton.js.map +1 -1
  28. package/FormUploadProgress.js.map +1 -1
  29. package/ImageGallery.js.map +1 -1
  30. package/MaterialIcon.js.map +1 -1
  31. package/Modal.js.map +1 -1
  32. package/ModalMenu.js.map +1 -1
  33. package/ReactConstants.js.map +1 -1
  34. package/ReactCreateElement.js.map +1 -1
  35. package/ReadyListener.js.map +1 -1
  36. package/Scrollable.js.map +1 -1
  37. package/ScrollableTable.js.map +1 -1
  38. package/Size.js.map +1 -1
  39. package/Snackbar.js.map +1 -1
  40. package/SpinningProgress.js.map +1 -1
  41. package/Switch.js.map +1 -1
  42. package/Table.js.map +1 -1
  43. package/Tabs.css +65 -0
  44. package/Tabs.d.ts +22 -0
  45. package/TextField.js.map +1 -1
  46. package/Tools.d.ts +2 -2
  47. package/Tools.js.map +1 -1
  48. package/bundle.css +726 -587
  49. package/index.js +4 -0
  50. package/index.js.map +1 -1
  51. package/package.json +1 -1
  52. package/router/HistoryTools.js.map +1 -1
  53. package/router/Link.js.map +1 -1
  54. package/router/NavLink.js.map +1 -1
  55. package/router/Route.js.map +1 -1
  56. package/router/index.js.map +1 -1
  57. package/src/Animated.css +7 -0
  58. package/src/Animated.js +219 -0
  59. package/src/Animated.scss +8 -0
  60. package/src/AutocompleteSelect.css +256 -0
  61. package/src/AutocompleteSelect.js +473 -0
  62. package/src/AutocompleteSelect.scss +322 -0
  63. package/src/Button.css +138 -0
  64. package/src/Button.js +104 -0
  65. package/src/Button.scss +177 -0
  66. package/src/CalendarMonthView.css +20 -0
  67. package/src/CalendarMonthView.scss +25 -0
  68. package/src/CalendarMonthView.tsx +80 -0
  69. package/src/Checkbox.css +56 -0
  70. package/src/Checkbox.js +52 -0
  71. package/src/Checkbox.scss +87 -0
  72. package/src/CircleProgress.css +11 -0
  73. package/src/CircleProgress.js +38 -0
  74. package/src/CircleProgress.scss +13 -0
  75. package/src/CommonFields.js +21 -0
  76. package/src/DNDContainer.css +26 -0
  77. package/src/DNDContainer.js +263 -0
  78. package/src/DNDContainer.scss +33 -0
  79. package/src/DNDDraggable.js +55 -0
  80. package/src/DNDDroppable.js +58 -0
  81. package/src/DatePicker.css +93 -0
  82. package/src/DatePicker.scss +118 -0
  83. package/src/DatePicker.tsx +179 -0
  84. package/src/DateTools.ts +85 -0
  85. package/src/Dialog.css +36 -0
  86. package/src/Dialog.js +160 -0
  87. package/src/Dialog.scss +42 -0
  88. package/src/DropFileInput.css +24 -0
  89. package/src/DropFileInput.js +45 -0
  90. package/src/DropFileInput.scss +28 -0
  91. package/src/DroppableHorizontalList.js +190 -0
  92. package/src/DroppableList.css +14 -0
  93. package/src/DroppableList.js +201 -0
  94. package/src/DroppableList.scss +27 -0
  95. package/src/Dropzone.css +54 -0
  96. package/src/Dropzone.js +140 -0
  97. package/src/Dropzone.scss +66 -0
  98. package/src/FilteredList.css +68 -0
  99. package/src/FilteredList.js +196 -0
  100. package/src/FilteredList.scss +86 -0
  101. package/src/FloatingActionButton.css +20 -0
  102. package/src/FloatingActionButton.js +35 -0
  103. package/src/FloatingActionButton.scss +25 -0
  104. package/src/FormUploadProgress.css +61 -0
  105. package/src/FormUploadProgress.js +87 -0
  106. package/src/FormUploadProgress.scss +78 -0
  107. package/src/ImageGallery.css +196 -0
  108. package/src/ImageGallery.js +935 -0
  109. package/src/ImageGallery.scss +256 -0
  110. package/src/MaterialIcon.js +1837 -0
  111. package/src/Modal.css +61 -0
  112. package/src/Modal.js +160 -0
  113. package/src/Modal.scss +73 -0
  114. package/src/ModalMenu.css +30 -0
  115. package/src/ModalMenu.js +59 -0
  116. package/src/ModalMenu.scss +36 -0
  117. package/src/ReactConstants.ts +42 -0
  118. package/src/ReactCreateElement.js +5 -0
  119. package/src/ReadyListener.js +53 -0
  120. package/src/ResizeObserver.ts +50 -0
  121. package/src/Scrollable.css +80 -0
  122. package/src/Scrollable.js +388 -0
  123. package/src/Scrollable.scss +100 -0
  124. package/src/ScrollableTable.css +6 -0
  125. package/src/ScrollableTable.scss +12 -0
  126. package/src/ScrollableTable.tsx +39 -0
  127. package/src/Size.js +56 -0
  128. package/src/Snackbar.css +40 -0
  129. package/src/Snackbar.js +71 -0
  130. package/src/Snackbar.scss +47 -0
  131. package/src/SpinningProgress.css +49 -0
  132. package/src/SpinningProgress.js +19 -0
  133. package/src/SpinningProgress.scss +57 -0
  134. package/src/Switch.css +69 -0
  135. package/src/Switch.js +54 -0
  136. package/src/Switch.scss +73 -0
  137. package/src/Table.css +94 -0
  138. package/src/Table.scss +121 -0
  139. package/src/Table.tsx +360 -0
  140. package/src/Tabs.css +65 -0
  141. package/src/Tabs.scss +77 -0
  142. package/src/Tabs.tsx +63 -0
  143. package/src/TextField.css +122 -0
  144. package/src/TextField.js +162 -0
  145. package/src/TextField.scss +160 -0
  146. package/src/Tools.test.js +105 -0
  147. package/src/Tools.ts +231 -0
  148. package/src/global.css +1 -0
  149. package/src/global.scss +6 -0
  150. package/src/index.js +84 -0
  151. package/src/router/HistoryTools.js +32 -0
  152. package/src/router/Link.js +27 -0
  153. package/src/router/NavLink.js +25 -0
  154. package/src/router/README.md +55 -0
  155. package/src/router/Route.js +209 -0
  156. package/src/router/Route.test.js +139 -0
  157. package/src/router/index.js +14 -0
  158. package/src/store/ProxyTools.js +91 -0
  159. package/src/store/ProxyTools.test.js +97 -0
  160. package/src/store/Store.ts +91 -0
  161. package/store/ProxyTools.js.map +1 -1
  162. package/store/Store.js.map +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"DroppableHorizontalList.js","sources":["../../../src/react-ui-basics/DroppableHorizontalList.js"],"sourcesContent":["import React, {Component} from 'react';\nimport ReactCreateElement from './ReactCreateElement';\nimport './DroppableList.css'\nimport DNDDroppable from \"./DNDDroppable\";\nimport {classNames, orNoop, setTimeout, NOOP} from \"./Tools\";\nimport DNDDraggable from \"./DNDDraggable\";\nimport {addListener} from \"./DNDContainer\";\nimport {stateGS, setState, propsGetter, props as getProps, render, componentDidUpdate, componentDidMount, children} from \"./ReactConstants\";\n\nclass DroppableHorizontalList extends Component {\n\n constructor(properties) {\n super(properties);\n const that = this;\n that.state = {};\n\n const props = propsGetter(that);\n const resetting = stateGS(that);\n const draggables = {};\n let list;\n\n const init = () => {\n list = [];\n React.Children.forEach(props()[children], child => {\n child && child.type === DNDDraggable && list.push(getProps(child).id);\n })\n };\n\n init();\n\n that[componentDidUpdate] = (prevProps) => {\n if (prevProps[children] !== props()[children]) {\n init();\n }\n };\n\n let dropped;\n let dragging;\n let oldIndex;\n let newIndex;\n\n that[componentDidMount] = () => {\n let inTransition = false;\n orNoop(props().provideDraggableEnhancer)(initializer => it => {\n orNoop(initializer)(it);\n it.createPositionListener = (e, style) => {\n const offset = e.pageX;\n return e => {\n e.pageX && (style.transform = 'translateX(' + (e.pageX - offset) + 'px)');\n };\n };\n it.initDraggedStyles = NOOP;\n it.onDragEnd = () => {\n const style = it.element.style;\n inTransition = true;\n setTimeout(() => {\n const droppingDuration = props().droppingDuration || 100;\n style.transition = 'transform ' + droppingDuration + 'ms linear';\n style.transform = '';\n style.zIndex = '10';\n setTimeout(() => {\n style.transition = '';\n style.zIndex = '';\n setTimeout(() => {\n inTransition = false;\n }, 50) // ignore mouseenter on the old position\n }, droppingDuration)\n }, 1);\n };\n addListener(it.element, it, 'mouseenter', (e) => {\n !(dragging || inTransition) && setState(it, {hover: true});\n });\n addListener(it.element, it, 'mouseleave', (e) => {\n !dragging && setState(it, {hover: false});\n });\n it.onUnmount = () => {\n delete draggables[getProps(it).id];\n };\n draggables[getProps(it).id] = it;\n })\n };\n\n const onHover = (e, draggable) => {\n const offset = e.pageX - that.scrollOffsetX;\n const transformLeft = 'translateX(' + draggable.width + 'px)';\n const transformRight = 'translateX(-' + draggable.width + 'px)';\n list.forEach((id, i) => {\n if (i !== oldIndex) {\n const d = draggables[id];\n const bounds = d.bounds;\n const style = d.element.style;\n if (i > oldIndex) {\n if (offset >= bounds.left)\n style.transform = transformRight;\n else\n style.transform = '';\n } else {\n if (offset <= bounds.right)\n style.transform = transformLeft;\n else\n style.transform = '';\n }\n }\n });\n\n let i = list.findIndex(id => {\n let bounds = draggables[id].bounds;\n return offset >= bounds.left && offset <= bounds.right\n });\n\n newIndex = i !== -1 ? i : list.length;\n };\n\n const onDragStart = (e, draggable) => {\n dragging = true;\n dropped = false;\n oldIndex = list.indexOf(getProps(draggable).id);\n that.scrollOffsetX = e.pageX - e.clientX;\n\n list.forEach((id) => {\n draggables[id].bounds = draggables[id].element.getBoundingClientRect();\n });\n };\n\n const reset = (ignoredIndex, transition) => {\n list.forEach((id, i) => {\n if (i !== ignoredIndex) {\n const s = draggables[id].element.style;\n s.transform = '';\n s.transition = transition;\n }\n });\n };\n\n const onDragEnd = (draggable) => {\n const index = list.indexOf(getProps(draggable).id);\n\n if (dropped) {\n reset(index, '');\n } else {\n resetting(true, () => {\n reset(index, '');\n });\n setTimeout(() => {\n resetting(false);\n }, props().droppingDuration || 100);\n }\n dragging = false;\n };\n const onDrop = (data) => {\n dropped = true;\n const draggable = draggables[list[oldIndex]];\n const style = draggable.element.style;\n\n const diff = (newIndex - oldIndex) * draggable.bounds.width;\n const transform = style.transform;\n const position = transform.substring(11, transform.length - 3);\n style.transform = 'translateX(' + (position - diff) + 'px)'; // set translateX against new position on the list to prevent long slide\n orNoop(props().onDrop)(data, oldIndex, newIndex);\n\n reset(newIndex, 'unset');\n };\n\n that[render] = () => {\n const _props = props();\n const {className, initializer} = _props;\n return <DNDDroppable className={classNames(\n 'DroppableList',\n className,\n resetting() && 'resetting',\n )}\n initializer={initializer}\n onHover={onHover}\n onDragStart={onDragStart}\n onDragEnd={onDragEnd}\n onDrop={onDrop}\n >\n {_props[children]}\n </DNDDroppable>;\n };\n }\n}\n\n\nexport default DroppableHorizontalList;"],"names":["DroppableHorizontalList","properties","that","state","props","propsGetter","resetting","stateGS","draggables","list","init","React","Children","forEach","children","child","type","DNDDraggable","push","getProps","id","componentDidUpdate","prevProps","dropped","dragging","oldIndex","newIndex","componentDidMount","inTransition","orNoop","provideDraggableEnhancer","initializer","it","createPositionListener","e","style","offset","pageX","transform","initDraggedStyles","NOOP","onDragEnd","element","setTimeout","droppingDuration","transition","zIndex","addListener","setState","hover","onUnmount","onHover","draggable","scrollOffsetX","transformLeft","width","transformRight","i","d","bounds","left","right","findIndex","length","onDragStart","indexOf","clientX","getBoundingClientRect","reset","ignoredIndex","s","index","onDrop","data","diff","position","substring","render","_props","className","classNames","Component"],"mappings":"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"}
1
+ {"version":3,"file":"DroppableHorizontalList.js","sources":["./src/DroppableHorizontalList.js"],"sourcesContent":["import React, {Component} from 'react';\nimport ReactCreateElement from './ReactCreateElement';\nimport './DroppableList.css'\nimport DNDDroppable from \"./DNDDroppable\";\nimport {classNames, orNoop, setTimeout, NOOP} from \"./Tools\";\nimport DNDDraggable from \"./DNDDraggable\";\nimport {addListener} from \"./DNDContainer\";\nimport {stateGS, setState, propsGetter, props as getProps, render, componentDidUpdate, componentDidMount, children} from \"./ReactConstants\";\n\nclass DroppableHorizontalList extends Component {\n\n constructor(properties) {\n super(properties);\n const that = this;\n that.state = {};\n\n const props = propsGetter(that);\n const resetting = stateGS(that);\n const draggables = {};\n let list;\n\n const init = () => {\n list = [];\n React.Children.forEach(props()[children], child => {\n child && child.type === DNDDraggable && list.push(getProps(child).id);\n })\n };\n\n init();\n\n that[componentDidUpdate] = (prevProps) => {\n if (prevProps[children] !== props()[children]) {\n init();\n }\n };\n\n let dropped;\n let dragging;\n let oldIndex;\n let newIndex;\n\n that[componentDidMount] = () => {\n let inTransition = false;\n orNoop(props().provideDraggableEnhancer)(initializer => it => {\n orNoop(initializer)(it);\n it.createPositionListener = (e, style) => {\n const offset = e.pageX;\n return e => {\n e.pageX && (style.transform = 'translateX(' + (e.pageX - offset) + 'px)');\n };\n };\n it.initDraggedStyles = NOOP;\n it.onDragEnd = () => {\n const style = it.element.style;\n inTransition = true;\n setTimeout(() => {\n const droppingDuration = props().droppingDuration || 100;\n style.transition = 'transform ' + droppingDuration + 'ms linear';\n style.transform = '';\n style.zIndex = '10';\n setTimeout(() => {\n style.transition = '';\n style.zIndex = '';\n setTimeout(() => {\n inTransition = false;\n }, 50) // ignore mouseenter on the old position\n }, droppingDuration)\n }, 1);\n };\n addListener(it.element, it, 'mouseenter', (e) => {\n !(dragging || inTransition) && setState(it, {hover: true});\n });\n addListener(it.element, it, 'mouseleave', (e) => {\n !dragging && setState(it, {hover: false});\n });\n it.onUnmount = () => {\n delete draggables[getProps(it).id];\n };\n draggables[getProps(it).id] = it;\n })\n };\n\n const onHover = (e, draggable) => {\n const offset = e.pageX - that.scrollOffsetX;\n const transformLeft = 'translateX(' + draggable.width + 'px)';\n const transformRight = 'translateX(-' + draggable.width + 'px)';\n list.forEach((id, i) => {\n if (i !== oldIndex) {\n const d = draggables[id];\n const bounds = d.bounds;\n const style = d.element.style;\n if (i > oldIndex) {\n if (offset >= bounds.left)\n style.transform = transformRight;\n else\n style.transform = '';\n } else {\n if (offset <= bounds.right)\n style.transform = transformLeft;\n else\n style.transform = '';\n }\n }\n });\n\n let i = list.findIndex(id => {\n let bounds = draggables[id].bounds;\n return offset >= bounds.left && offset <= bounds.right\n });\n\n newIndex = i !== -1 ? i : list.length;\n };\n\n const onDragStart = (e, draggable) => {\n dragging = true;\n dropped = false;\n oldIndex = list.indexOf(getProps(draggable).id);\n that.scrollOffsetX = e.pageX - e.clientX;\n\n list.forEach((id) => {\n draggables[id].bounds = draggables[id].element.getBoundingClientRect();\n });\n };\n\n const reset = (ignoredIndex, transition) => {\n list.forEach((id, i) => {\n if (i !== ignoredIndex) {\n const s = draggables[id].element.style;\n s.transform = '';\n s.transition = transition;\n }\n });\n };\n\n const onDragEnd = (draggable) => {\n const index = list.indexOf(getProps(draggable).id);\n\n if (dropped) {\n reset(index, '');\n } else {\n resetting(true, () => {\n reset(index, '');\n });\n setTimeout(() => {\n resetting(false);\n }, props().droppingDuration || 100);\n }\n dragging = false;\n };\n const onDrop = (data) => {\n dropped = true;\n const draggable = draggables[list[oldIndex]];\n const style = draggable.element.style;\n\n const diff = (newIndex - oldIndex) * draggable.bounds.width;\n const transform = style.transform;\n const position = transform.substring(11, transform.length - 3);\n style.transform = 'translateX(' + (position - diff) + 'px)'; // set translateX against new position on the list to prevent long slide\n orNoop(props().onDrop)(data, oldIndex, newIndex);\n\n reset(newIndex, 'unset');\n };\n\n that[render] = () => {\n const _props = props();\n const {className, initializer} = _props;\n return <DNDDroppable className={classNames(\n 'DroppableList',\n className,\n resetting() && 'resetting',\n )}\n initializer={initializer}\n onHover={onHover}\n onDragStart={onDragStart}\n onDragEnd={onDragEnd}\n onDrop={onDrop}\n >\n {_props[children]}\n </DNDDroppable>;\n };\n }\n}\n\n\nexport default DroppableHorizontalList;"],"names":["DroppableHorizontalList","properties","that","state","props","propsGetter","resetting","stateGS","draggables","list","init","React","Children","forEach","children","child","type","DNDDraggable","push","getProps","id","componentDidUpdate","prevProps","dropped","dragging","oldIndex","newIndex","componentDidMount","inTransition","orNoop","provideDraggableEnhancer","initializer","it","createPositionListener","e","style","offset","pageX","transform","initDraggedStyles","NOOP","onDragEnd","element","setTimeout","droppingDuration","transition","zIndex","addListener","setState","hover","onUnmount","onHover","draggable","scrollOffsetX","transformLeft","width","transformRight","i","d","bounds","left","right","findIndex","length","onDragStart","indexOf","clientX","getBoundingClientRect","reset","ignoredIndex","s","index","onDrop","data","diff","position","substring","render","_props","className","classNames","Component"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"DroppableList.js","sources":["../../../src/react-ui-basics/DroppableList.js"],"sourcesContent":["import React, {Component} from 'react';\nimport ReactCreateElement from './ReactCreateElement';\nimport './DroppableList.css'\nimport DNDDroppable from \"./DNDDroppable\";\nimport {classNames, orNoop, setTimeout, NOOP} from \"./Tools\";\nimport DNDDraggable from \"./DNDDraggable\";\nimport {addListener} from \"./DNDContainer\";\nimport {stateGS, setState, propsGetter, props as getProps, render, componentDidUpdate, componentDidMount, children} from \"./ReactConstants\";\n\nclass DroppableList extends Component {\n\n constructor(properties) {\n super(properties);\n const that = this;\n that.state = {};\n\n const props = propsGetter(that);\n const resetting = stateGS(that);\n const draggables = {};\n let list;\n\n const init = () => {\n list = [];\n React.Children.forEach(props()[children], child => {\n child && child.type === DNDDraggable && list.push(getProps(child).id);\n })\n };\n\n init();\n\n that[componentDidUpdate] = (prevProps) => {\n if (prevProps[children] !== props()[children]) {\n init();\n }\n };\n\n let dropped;\n let dragging;\n let oldIndex;\n let newIndex;\n\n that[componentDidMount] = () => {\n let inTransition = false;\n orNoop(props().provideDraggableEnhancer)(initializer => it => {\n orNoop(initializer)(it);\n it.createPositionListener = (e, style) => {\n const offsetTop = e.pageY;\n return e => {\n e.pageY && (style.transform = 'translateY(' + (e.pageY - offsetTop - that.scrollDiff) + 'px)');\n };\n };\n it.initDraggedStyles = NOOP;\n it.onDragEnd = () => {\n const style = it.element.style;\n inTransition = true;\n setTimeout(() => {\n const droppingDuration = props().droppingDuration || 100;\n style.transition = 'transform ' + droppingDuration + 'ms linear';\n style.transform = '';\n style.zIndex = '10';\n setTimeout(() => {\n style.transition = '';\n style.zIndex = '';\n setTimeout(() => {\n inTransition = false;\n }, 50) // ignore mouseenter on the old position\n }, droppingDuration)\n }, 1);\n };\n addListener(it.element, it, 'mouseenter', (e) => {\n !(dragging || inTransition) && setState(it, {hover: true});\n });\n addListener(it.element, it, 'mouseleave', (e) => {\n !dragging && setState(it, {hover: false});\n });\n it.onUnmount = () => {\n delete draggables[getProps(it).id];\n };\n draggables[getProps(it).id] = it;\n })\n\n orNoop(props().provideScrollListener)(e => {\n if (!dragging)\n return\n\n that.scrollDiff = that.scroll - orNoop(props().getScrollPosition)() || 0;\n })\n };\n\n const onHover = (e, draggable) => {\n const y = e.pageY - that.scrollOffsetY - that.scrollDiff;\n const transformUp = 'translateY(' + draggable.height + 'px)';\n const transformDown = 'translateY(-' + draggable.height + 'px)';\n list.forEach((id, i) => {\n if (i !== oldIndex) {\n const d = draggables[id];\n const bounds = d.bounds;\n const style = d.element.style;\n if (i > oldIndex) {\n if (y >= bounds.top)\n style.transform = transformDown;\n else\n style.transform = '';\n } else {\n if (y <= bounds.bottom)\n style.transform = transformUp;\n else\n style.transform = '';\n }\n }\n });\n\n let i = list.findIndex(id => {\n let bounds = draggables[id].bounds;\n return y >= bounds.top && y <= bounds.bottom\n });\n\n newIndex = i !== -1 ? i : list.length;\n };\n\n const onDragStart = (e, draggable) => {\n dragging = true;\n dropped = false;\n oldIndex = list.indexOf(getProps(draggable).id);\n that.scrollOffsetY = e.pageY - e.clientY;\n that.scroll = orNoop(props().getScrollPosition)() || 0;\n that.scrollDiff = 0;\n\n list.forEach((id) => {\n draggables[id].bounds = draggables[id].element.getBoundingClientRect();\n });\n };\n\n const reset = (ignoredIndex, transition) => {\n list.forEach((id, i) => {\n if (i !== ignoredIndex) {\n const s = draggables[id].element.style;\n s.transform = '';\n s.transition = transition;\n }\n });\n };\n\n const onDragEnd = (draggable) => {\n const index = list.indexOf(getProps(draggable).id);\n\n if (dropped) {\n reset(index, '');\n } else {\n resetting(true, () => {\n reset(index, '');\n });\n setTimeout(() => {\n resetting(false);\n }, props().droppingDuration || 100);\n }\n dragging = false;\n };\n const onDrop = (data) => {\n dropped = true;\n const draggable = draggables[list[oldIndex]];\n const style = draggable.element.style;\n\n const diff = (newIndex - oldIndex) * draggable.bounds.height;\n const transform = style.transform;\n const position = transform.substring(11, transform.length - 3);\n style.transform = 'translateY(' + (position - diff) + 'px)'; // set translateY against new position on the list to prevent long slide\n\n orNoop(props().onDrop)(data, oldIndex, newIndex);\n\n reset(newIndex, 'unset');\n };\n\n that[render] = () => {\n const _props = props();\n const {className, initializer} = _props;\n return <DNDDroppable className={classNames(\n 'DroppableList',\n className,\n resetting() && 'resetting',\n )}\n initializer={initializer}\n onHover={onHover}\n onDragStart={onDragStart}\n onDragEnd={onDragEnd}\n onDrop={onDrop}\n >\n {_props[children]}\n </DNDDroppable>;\n };\n }\n}\n\n\nexport default DroppableList;"],"names":["DroppableList","properties","that","state","props","propsGetter","resetting","stateGS","draggables","list","init","React","Children","forEach","children","child","type","DNDDraggable","push","getProps","id","componentDidUpdate","prevProps","dropped","dragging","oldIndex","newIndex","componentDidMount","inTransition","orNoop","provideDraggableEnhancer","initializer","it","createPositionListener","e","style","offsetTop","pageY","transform","scrollDiff","initDraggedStyles","NOOP","onDragEnd","element","setTimeout","droppingDuration","transition","zIndex","addListener","setState","hover","onUnmount","provideScrollListener","scroll","getScrollPosition","onHover","draggable","y","scrollOffsetY","transformUp","height","transformDown","i","d","bounds","top","bottom","findIndex","length","onDragStart","indexOf","clientY","getBoundingClientRect","reset","ignoredIndex","s","index","onDrop","data","diff","position","substring","render","_props","className","classNames","Component"],"mappings":"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"}
1
+ {"version":3,"file":"DroppableList.js","sources":["./src/DroppableList.js"],"sourcesContent":["import React, {Component} from 'react';\nimport ReactCreateElement from './ReactCreateElement';\nimport './DroppableList.css'\nimport DNDDroppable from \"./DNDDroppable\";\nimport {classNames, orNoop, setTimeout, NOOP} from \"./Tools\";\nimport DNDDraggable from \"./DNDDraggable\";\nimport {addListener} from \"./DNDContainer\";\nimport {stateGS, setState, propsGetter, props as getProps, render, componentDidUpdate, componentDidMount, children} from \"./ReactConstants\";\n\nclass DroppableList extends Component {\n\n constructor(properties) {\n super(properties);\n const that = this;\n that.state = {};\n\n const props = propsGetter(that);\n const resetting = stateGS(that);\n const draggables = {};\n let list;\n\n const init = () => {\n list = [];\n React.Children.forEach(props()[children], child => {\n child && child.type === DNDDraggable && list.push(getProps(child).id);\n })\n };\n\n init();\n\n that[componentDidUpdate] = (prevProps) => {\n if (prevProps[children] !== props()[children]) {\n init();\n }\n };\n\n let dropped;\n let dragging;\n let oldIndex;\n let newIndex;\n\n that[componentDidMount] = () => {\n let inTransition = false;\n orNoop(props().provideDraggableEnhancer)(initializer => it => {\n orNoop(initializer)(it);\n it.createPositionListener = (e, style) => {\n const offsetTop = e.pageY;\n return e => {\n e.pageY && (style.transform = 'translateY(' + (e.pageY - offsetTop - that.scrollDiff) + 'px)');\n };\n };\n it.initDraggedStyles = NOOP;\n it.onDragEnd = () => {\n const style = it.element.style;\n inTransition = true;\n setTimeout(() => {\n const droppingDuration = props().droppingDuration || 100;\n style.transition = 'transform ' + droppingDuration + 'ms linear';\n style.transform = '';\n style.zIndex = '10';\n setTimeout(() => {\n style.transition = '';\n style.zIndex = '';\n setTimeout(() => {\n inTransition = false;\n }, 50) // ignore mouseenter on the old position\n }, droppingDuration)\n }, 1);\n };\n addListener(it.element, it, 'mouseenter', (e) => {\n !(dragging || inTransition) && setState(it, {hover: true});\n });\n addListener(it.element, it, 'mouseleave', (e) => {\n !dragging && setState(it, {hover: false});\n });\n it.onUnmount = () => {\n delete draggables[getProps(it).id];\n };\n draggables[getProps(it).id] = it;\n })\n\n orNoop(props().provideScrollListener)(e => {\n if (!dragging)\n return\n\n that.scrollDiff = that.scroll - orNoop(props().getScrollPosition)() || 0;\n })\n };\n\n const onHover = (e, draggable) => {\n const y = e.pageY - that.scrollOffsetY - that.scrollDiff;\n const transformUp = 'translateY(' + draggable.height + 'px)';\n const transformDown = 'translateY(-' + draggable.height + 'px)';\n list.forEach((id, i) => {\n if (i !== oldIndex) {\n const d = draggables[id];\n const bounds = d.bounds;\n const style = d.element.style;\n if (i > oldIndex) {\n if (y >= bounds.top)\n style.transform = transformDown;\n else\n style.transform = '';\n } else {\n if (y <= bounds.bottom)\n style.transform = transformUp;\n else\n style.transform = '';\n }\n }\n });\n\n let i = list.findIndex(id => {\n let bounds = draggables[id].bounds;\n return y >= bounds.top && y <= bounds.bottom\n });\n\n newIndex = i !== -1 ? i : list.length;\n };\n\n const onDragStart = (e, draggable) => {\n dragging = true;\n dropped = false;\n oldIndex = list.indexOf(getProps(draggable).id);\n that.scrollOffsetY = e.pageY - e.clientY;\n that.scroll = orNoop(props().getScrollPosition)() || 0;\n that.scrollDiff = 0;\n\n list.forEach((id) => {\n draggables[id].bounds = draggables[id].element.getBoundingClientRect();\n });\n };\n\n const reset = (ignoredIndex, transition) => {\n list.forEach((id, i) => {\n if (i !== ignoredIndex) {\n const s = draggables[id].element.style;\n s.transform = '';\n s.transition = transition;\n }\n });\n };\n\n const onDragEnd = (draggable) => {\n const index = list.indexOf(getProps(draggable).id);\n\n if (dropped) {\n reset(index, '');\n } else {\n resetting(true, () => {\n reset(index, '');\n });\n setTimeout(() => {\n resetting(false);\n }, props().droppingDuration || 100);\n }\n dragging = false;\n };\n const onDrop = (data) => {\n dropped = true;\n const draggable = draggables[list[oldIndex]];\n const style = draggable.element.style;\n\n const diff = (newIndex - oldIndex) * draggable.bounds.height;\n const transform = style.transform;\n const position = transform.substring(11, transform.length - 3);\n style.transform = 'translateY(' + (position - diff) + 'px)'; // set translateY against new position on the list to prevent long slide\n\n orNoop(props().onDrop)(data, oldIndex, newIndex);\n\n reset(newIndex, 'unset');\n };\n\n that[render] = () => {\n const _props = props();\n const {className, initializer} = _props;\n return <DNDDroppable className={classNames(\n 'DroppableList',\n className,\n resetting() && 'resetting',\n )}\n initializer={initializer}\n onHover={onHover}\n onDragStart={onDragStart}\n onDragEnd={onDragEnd}\n onDrop={onDrop}\n >\n {_props[children]}\n </DNDDroppable>;\n };\n }\n}\n\n\nexport default DroppableList;"],"names":["DroppableList","properties","that","state","props","propsGetter","resetting","stateGS","draggables","list","init","React","Children","forEach","children","child","type","DNDDraggable","push","getProps","id","componentDidUpdate","prevProps","dropped","dragging","oldIndex","newIndex","componentDidMount","inTransition","orNoop","provideDraggableEnhancer","initializer","it","createPositionListener","e","style","offsetTop","pageY","transform","scrollDiff","initDraggedStyles","NOOP","onDragEnd","element","setTimeout","droppingDuration","transition","zIndex","addListener","setState","hover","onUnmount","provideScrollListener","scroll","getScrollPosition","onHover","draggable","y","scrollOffsetY","transformUp","height","transformDown","i","d","bounds","top","bottom","findIndex","length","onDragStart","indexOf","clientY","getBoundingClientRect","reset","ignoredIndex","s","index","onDrop","data","diff","position","substring","render","_props","className","classNames","Component"],"mappings":"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"}
package/Dropzone.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"Dropzone.js","sources":["../../../src/react-ui-basics/Dropzone.js"],"sourcesContent":["import React from 'react';\nimport PropTypes from \"prop-types\";\nimport ReactCreateElement from './ReactCreateElement';\nimport './Dropzone.css'\nimport {classNames, setOf, preventDefault, stopPropagation, UNDEFINED, createRef} from \"./Tools\";\nimport {propsGetter, PureComponent, render, stateGS} from \"./ReactConstants\";\n\nconst toArray = (o) => {\n if (o instanceof Array)\n return o;\n\n const l = [];\n for (let i = 0; i < o.length; i++) {\n l.push(o[i])\n }\n return l;\n};\n\nconst prevent = (e) => {\n preventDefault(e);\n stopPropagation(e);\n return false;\n};\n\nconst ignoredTypes = setOf([\n 'text',\n 'Text',\n 'text/plain',\n]);\n\nconst ignore = dt => dt && (!dt.types[0] || ignoredTypes[dt.types[0]]);\n\nclass Dropzone extends PureComponent {\n\n constructor(properties) {\n super(properties);\n const that = this;\n that.state = {};\n\n let entries = [];\n\n const props = propsGetter(that);\n const isDragging = stateGS(that);\n\n const onDrop = (e) => {\n const dt = e.dataTransfer;\n const files = toArray(dt && dt.files || e.target.files);\n props().onDrop(files);\n isDragging(false);\n entries = [];\n prevent(e);\n };\n const onDragOver = (e) => {\n const dt = e.dataTransfer;\n if (ignore(dt)) return;\n\n dt && (dt.dropEffect = 'copy');\n !isDragging() && isDragging(true);\n prevent(e);\n };\n const onDragEnter = (e) => {\n const dt = e.dataTransfer;\n if (ignore(dt)) return;\n if (entries.indexOf(e.target) === -1) {\n entries.push(e.target)\n }\n\n dt && (dt.dropEffect = 'copy');\n !isDragging() && isDragging(true);\n prevent(e);\n };\n const onDragLeave = (e) => {\n entries = entries.filter(el => el !== e.target);\n\n if (entries.length === 0)\n isDragging(false);\n\n prevent(e)\n };\n\n const inputRef = createRef()\n\n that[render] = () => {\n const {children, className, disabled, clickable, multiple, droppable, overlayLabel, accept} = props();\n\n return <div className={classNames('Dropzone', className, isDragging() && 'dragging')}\n onDragLeave={!disabled && droppable && onDragLeave || UNDEFINED}\n onDragOver={!disabled && droppable && onDragOver || UNDEFINED}\n onDragEnter={!disabled && droppable && onDragEnter || UNDEFINED}\n onDrop={!disabled && droppable && onDrop || UNDEFINED}\n >\n {overlayLabel && <div className=\"overlay\">\n <div className={'drop'}>\n {overlayLabel}\n </div>\n </div>}\n {!disabled && clickable && <input className={'file'}\n ref={inputRef}\n type=\"file\"\n accept={accept}\n multiple={!!multiple}\n onClick={() => {\n inputRef().value = '';\n }}\n onChange={onDrop}/>}\n {children}\n </div>\n }\n }\n}\n\nDropzone.defaultProps = {\n clickable: true,\n multiple: true,\n droppable: true,\n};\n\nif (window.isNotProductionEnvironment) {\n Dropzone.propTypes = {\n className: PropTypes.string,\n overlayLabel: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.element\n ]),\n clickable: PropTypes.bool,\n droppable: PropTypes.bool,\n multiple: PropTypes.bool,\n disabled: PropTypes.bool,\n onDrop: PropTypes.func.isRequired,\n accept: PropTypes.string,\n };\n}\n\nexport default Dropzone;"],"names":["toArray","o","Array","l","i","length","push","prevent","e","preventDefault","stopPropagation","ignoredTypes","setOf","ignore","dt","types","Dropzone","properties","that","state","entries","props","propsGetter","isDragging","stateGS","onDrop","dataTransfer","files","target","onDragOver","dropEffect","onDragEnter","indexOf","onDragLeave","filter","el","inputRef","createRef","render","children","className","disabled","clickable","multiple","droppable","overlayLabel","accept","classNames","UNDEFINED","value","PureComponent","defaultProps","window","isNotProductionEnvironment","propTypes","PropTypes","string","oneOfType","element","bool","func","isRequired"],"mappings":";;;;;;;AAOA,IAAMA,OAAO,GAAG,SAAVA,OAAU,CAACC,CAAD,EAAO;AACnB,EAAA,IAAIA,CAAC,YAAYC,KAAjB,EACI,OAAOD,CAAP,CAAA;AAEJ,EAAME,IAAAA,CAAC,GAAG,EAAV,CAAA;AACA,EAAA,KAAK,IAAIC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGH,CAAC,CAACI,MAAtB,EAA8BD,CAAC,EAA/B,EAAmC;AAC/BD,IAAAA,CAAC,CAACG,IAAF,CAAOL,CAAC,CAACG,CAAD,CAAR,CAAA,CAAA;AACH,GAAA;AACD,EAAA,OAAOD,CAAP,CAAA;AACH,CATD,CAAA;AAWA,IAAMI,OAAO,GAAG,SAAVA,OAAU,CAACC,CAAD,EAAO;AACnBC,EAAAA,cAAc,CAACD,CAAD,CAAd,CAAA;AACAE,EAAAA,eAAe,CAACF,CAAD,CAAf,CAAA;AACA,EAAA,OAAO,KAAP,CAAA;AACH,CAJD,CAAA;AAMA,IAAMG,YAAY,GAAGC,KAAK,CAAC,CACvB,MADuB,EAEvB,MAFuB,EAGvB,YAHuB,CAAD,CAA1B,CAAA;AAMA,IAAMC,MAAM,GAAG,SAATA,MAAS,CAAAC,EAAE,EAAA;AAAA,EAAA,OAAIA,EAAE,KAAK,CAACA,EAAE,CAACC,KAAH,CAAS,CAAT,CAAD,IAAgBJ,YAAY,CAACG,EAAE,CAACC,KAAH,CAAS,CAAT,CAAD,CAAjC,CAAN,CAAA;AAAA,CAAjB,CAAA;IAEMC;;;AAEF,EAAA,SAAA,QAAA,CAAYC,UAAZ,EAAwB;AAAA,IAAA,IAAA,KAAA,CAAA;AAAA,IAAA,eAAA,CAAA,IAAA,EAAA,QAAA,CAAA,CAAA;AACpB,IAAA,KAAA,GAAA,MAAA,CAAA,IAAA,CAAA,IAAA,EAAMA,UAAN,CAAA,CAAA;AACA,IAAA,IAAMC,IAAI,GAAV,sBAAA,CAAA,KAAA,CAAA,CAAA;AACAA,IAAAA,IAAI,CAACC,KAAL,GAAa,EAAb,CAAA;AAEA,IAAIC,IAAAA,OAAO,GAAG,EAAd,CAAA;AAEA,IAAA,IAAMC,KAAK,GAAGC,WAAW,CAACJ,IAAD,CAAzB,CAAA;AACA,IAAA,IAAMK,UAAU,GAAGC,OAAO,CAACN,IAAD,CAA1B,CAAA;AAEA,IAAA,IAAMO,MAAM,GAAG,SAATA,MAAS,CAACjB,CAAD,EAAO;AAClB,MAAA,IAAMM,EAAE,GAAGN,CAAC,CAACkB,YAAb,CAAA;AACA,MAAA,IAAMC,KAAK,GAAG3B,OAAO,CAACc,EAAE,IAAIA,EAAE,CAACa,KAAT,IAAkBnB,CAAC,CAACoB,MAAF,CAASD,KAA5B,CAArB,CAAA;AACAN,MAAAA,KAAK,EAAA,CAAGI,MAAR,CAAeE,KAAf,CAAA,CAAA;AACAJ,MAAAA,UAAU,CAAC,KAAD,CAAV,CAAA;AACAH,MAAAA,OAAO,GAAG,EAAV,CAAA;AACAb,MAAAA,OAAO,CAACC,CAAD,CAAP,CAAA;AACH,KAPD,CAAA;AAQA,IAAA,IAAMqB,UAAU,GAAG,SAAbA,UAAa,CAACrB,CAAD,EAAO;AACtB,MAAA,IAAMM,EAAE,GAAGN,CAAC,CAACkB,YAAb,CAAA;AACA,MAAA,IAAIb,MAAM,CAACC,EAAD,CAAV,EAAgB,OAAA;AAEhBA,MAAAA,EAAE,KAAKA,EAAE,CAACgB,UAAH,GAAgB,MAArB,CAAF,CAAA;AACA,MAAA,CAACP,UAAU,EAAX,IAAiBA,UAAU,CAAC,IAAD,CAA3B,CAAA;AACAhB,MAAAA,OAAO,CAACC,CAAD,CAAP,CAAA;AACH,KAPD,CAAA;AAQA,IAAA,IAAMuB,WAAW,GAAG,SAAdA,WAAc,CAACvB,CAAD,EAAO;AACvB,MAAA,IAAMM,EAAE,GAAGN,CAAC,CAACkB,YAAb,CAAA;AACA,MAAA,IAAIb,MAAM,CAACC,EAAD,CAAV,EAAgB,OAAA;AAChB,MAAIM,IAAAA,OAAO,CAACY,OAAR,CAAgBxB,CAAC,CAACoB,MAAlB,CAAA,KAA8B,CAAC,CAAnC,EAAsC;AAClCR,QAAAA,OAAO,CAACd,IAAR,CAAaE,CAAC,CAACoB,MAAf,CAAA,CAAA;AACH,OAAA;AAEDd,MAAAA,EAAE,KAAKA,EAAE,CAACgB,UAAH,GAAgB,MAArB,CAAF,CAAA;AACA,MAAA,CAACP,UAAU,EAAX,IAAiBA,UAAU,CAAC,IAAD,CAA3B,CAAA;AACAhB,MAAAA,OAAO,CAACC,CAAD,CAAP,CAAA;AACH,KAVD,CAAA;AAWA,IAAA,IAAMyB,WAAW,GAAG,SAAdA,WAAc,CAACzB,CAAD,EAAO;AACvBY,MAAAA,OAAO,GAAGA,OAAO,CAACc,MAAR,CAAe,UAAAC,EAAE,EAAA;AAAA,QAAA,OAAIA,EAAE,KAAK3B,CAAC,CAACoB,MAAb,CAAA;AAAA,OAAjB,CAAV,CAAA;AAEA,MAAIR,IAAAA,OAAO,CAACf,MAAR,KAAmB,CAAvB,EACIkB,UAAU,CAAC,KAAD,CAAV,CAAA;AAEJhB,MAAAA,OAAO,CAACC,CAAD,CAAP,CAAA;AACH,KAPD,CAAA;AASA,IAAM4B,IAAAA,QAAQ,GAAGC,SAAS,EAA1B,CAAA;AAEAnB,IAAAA,IAAI,CAACoB,MAAD,CAAJ,GAAe,YAAM;AACjB,MAAA,IAAA,MAAA,GAA8FjB,KAAK,EAAnG;AAAA,UAAOkB,QAAP,UAAOA,QAAP;AAAA,UAAiBC,SAAjB,UAAiBA,SAAjB;AAAA,UAA4BC,QAA5B,UAA4BA,QAA5B;AAAA,UAAsCC,SAAtC,UAAsCA,SAAtC;AAAA,UAAiDC,QAAjD,UAAiDA,QAAjD;AAAA,UAA2DC,SAA3D,UAA2DA,SAA3D;AAAA,UAAsEC,YAAtE,UAAsEA,YAAtE;AAAA,UAAoFC,MAApF,UAAoFA,MAApF,CAAA;AAEA,MAAO,OAAA,kBAAA,CAAA,KAAA,EAAA;AAAK,QAAA,SAAS,EAAEC,UAAU,CAAC,UAAD,EAAaP,SAAb,EAAwBjB,UAAU,EAAM,IAAA,UAAxC,CAA1B;AACK,QAAA,WAAW,EAAE,CAACkB,QAAD,IAAaG,SAAb,IAA0BX,WAA1B,IAAyCe,SAD3D;AAEK,QAAA,UAAU,EAAE,CAACP,QAAD,IAAaG,SAAb,IAA0Bf,UAA1B,IAAwCmB,SAFzD;AAGK,QAAA,WAAW,EAAE,CAACP,QAAD,IAAaG,SAAb,IAA0Bb,WAA1B,IAAyCiB,SAH3D;AAIK,QAAA,MAAM,EAAE,CAACP,QAAD,IAAaG,SAAb,IAA0BnB,MAA1B,IAAoCuB,SAAAA;AAJjD,OAAA,EAMFH,YAAY,IAAI,kBAAA,CAAA,KAAA,EAAA;AAAK,QAAA,SAAS,EAAC,SAAA;AAAf,OACb,EAAA,kBAAA,CAAA,KAAA,EAAA;AAAK,QAAA,SAAS,EAAE,MAAA;AAAhB,OACKA,EAAAA,YADL,CADa,CANd,EAWF,CAACJ,QAAD,IAAaC,SAAb,IAA0B,kBAAA,CAAA,OAAA,EAAA;AAAO,QAAA,SAAS,EAAE,MAAlB;AACO,QAAA,GAAG,EAAEN,QADZ;AAEO,QAAA,IAAI,EAAC,MAFZ;AAGO,QAAA,MAAM,EAAEU,MAHf;AAIO,QAAA,QAAQ,EAAE,CAAC,CAACH,QAJnB;AAKO,QAAA,OAAO,EAAE,SAAM,OAAA,GAAA;AACXP,UAAAA,QAAQ,EAAA,CAAGa,KAAX,GAAmB,EAAnB,CAAA;AACH,SAPR;AAQO,QAAA,QAAQ,EAAExB,MAAAA;AARjB,OAXxB,CAAA,EAoBFc,QApBE,CAAP,CAAA;AAsBH,KAzBD,CAAA;AAhDoB,IAAA,OAAA,KAAA,CAAA;AA0EvB,GAAA;;EA5EkBW;AA+EvBlC,QAAQ,CAACmC,YAAT,GAAwB;AACpBT,EAAAA,SAAS,EAAE,IADS;AAEpBC,EAAAA,QAAQ,EAAE,IAFU;AAGpBC,EAAAA,SAAS,EAAE,IAAA;AAHS,CAAxB,CAAA;AAMA,IAAIQ,MAAM,CAACC,0BAAX,EAAuC;AACnCrC,EAAAA,QAAQ,CAACsC,SAAT,GAAqB;AACjBd,IAAAA,SAAS,EAAEe,SAAS,CAACC,MADJ;AAEjBX,IAAAA,YAAY,EAAEU,SAAS,CAACE,SAAV,CAAoB,CAC9BF,SAAS,CAACC,MADoB,EAE9BD,SAAS,CAACG,OAFoB,CAApB,CAFG;AAMjBhB,IAAAA,SAAS,EAAEa,SAAS,CAACI,IANJ;AAOjBf,IAAAA,SAAS,EAAEW,SAAS,CAACI,IAPJ;AAQjBhB,IAAAA,QAAQ,EAAEY,SAAS,CAACI,IARH;AASjBlB,IAAAA,QAAQ,EAAEc,SAAS,CAACI,IATH;AAUjBlC,IAAAA,MAAM,EAAE8B,SAAS,CAACK,IAAV,CAAeC,UAVN;AAWjBf,IAAAA,MAAM,EAAES,SAAS,CAACC,MAAAA;AAXD,GAArB,CAAA;AAaH,CAAA;AAED,iBAAexC,QAAf;;;;"}
1
+ {"version":3,"file":"Dropzone.js","sources":["./src/Dropzone.js"],"sourcesContent":["import React from 'react';\nimport PropTypes from \"prop-types\";\nimport ReactCreateElement from './ReactCreateElement';\nimport './Dropzone.css'\nimport {classNames, setOf, preventDefault, stopPropagation, UNDEFINED, createRef} from \"./Tools\";\nimport {propsGetter, PureComponent, render, stateGS} from \"./ReactConstants\";\n\nconst toArray = (o) => {\n if (o instanceof Array)\n return o;\n\n const l = [];\n for (let i = 0; i < o.length; i++) {\n l.push(o[i])\n }\n return l;\n};\n\nconst prevent = (e) => {\n preventDefault(e);\n stopPropagation(e);\n return false;\n};\n\nconst ignoredTypes = setOf([\n 'text',\n 'Text',\n 'text/plain',\n]);\n\nconst ignore = dt => dt && (!dt.types[0] || ignoredTypes[dt.types[0]]);\n\nclass Dropzone extends PureComponent {\n\n constructor(properties) {\n super(properties);\n const that = this;\n that.state = {};\n\n let entries = [];\n\n const props = propsGetter(that);\n const isDragging = stateGS(that);\n\n const onDrop = (e) => {\n const dt = e.dataTransfer;\n const files = toArray(dt && dt.files || e.target.files);\n props().onDrop(files);\n isDragging(false);\n entries = [];\n prevent(e);\n };\n const onDragOver = (e) => {\n const dt = e.dataTransfer;\n if (ignore(dt)) return;\n\n dt && (dt.dropEffect = 'copy');\n !isDragging() && isDragging(true);\n prevent(e);\n };\n const onDragEnter = (e) => {\n const dt = e.dataTransfer;\n if (ignore(dt)) return;\n if (entries.indexOf(e.target) === -1) {\n entries.push(e.target)\n }\n\n dt && (dt.dropEffect = 'copy');\n !isDragging() && isDragging(true);\n prevent(e);\n };\n const onDragLeave = (e) => {\n entries = entries.filter(el => el !== e.target);\n\n if (entries.length === 0)\n isDragging(false);\n\n prevent(e)\n };\n\n const inputRef = createRef()\n\n that[render] = () => {\n const {children, className, disabled, clickable, multiple, droppable, overlayLabel, accept} = props();\n\n return <div className={classNames('Dropzone', className, isDragging() && 'dragging')}\n onDragLeave={!disabled && droppable && onDragLeave || UNDEFINED}\n onDragOver={!disabled && droppable && onDragOver || UNDEFINED}\n onDragEnter={!disabled && droppable && onDragEnter || UNDEFINED}\n onDrop={!disabled && droppable && onDrop || UNDEFINED}\n >\n {overlayLabel && <div className=\"overlay\">\n <div className={'drop'}>\n {overlayLabel}\n </div>\n </div>}\n {!disabled && clickable && <input className={'file'}\n ref={inputRef}\n type=\"file\"\n accept={accept}\n multiple={!!multiple}\n onClick={() => {\n inputRef().value = '';\n }}\n onChange={onDrop}/>}\n {children}\n </div>\n }\n }\n}\n\nDropzone.defaultProps = {\n clickable: true,\n multiple: true,\n droppable: true,\n};\n\nif (window.isNotProductionEnvironment) {\n Dropzone.propTypes = {\n className: PropTypes.string,\n overlayLabel: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.element\n ]),\n clickable: PropTypes.bool,\n droppable: PropTypes.bool,\n multiple: PropTypes.bool,\n disabled: PropTypes.bool,\n onDrop: PropTypes.func.isRequired,\n accept: PropTypes.string,\n };\n}\n\nexport default Dropzone;"],"names":["toArray","o","Array","l","i","length","push","prevent","e","preventDefault","stopPropagation","ignoredTypes","setOf","ignore","dt","types","Dropzone","properties","that","state","entries","props","propsGetter","isDragging","stateGS","onDrop","dataTransfer","files","target","onDragOver","dropEffect","onDragEnter","indexOf","onDragLeave","filter","el","inputRef","createRef","render","children","className","disabled","clickable","multiple","droppable","overlayLabel","accept","classNames","UNDEFINED","value","PureComponent","defaultProps","window","isNotProductionEnvironment","propTypes","PropTypes","string","oneOfType","element","bool","func","isRequired"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"FilteredList.js","sources":["../../../src/react-ui-basics/FilteredList.js"],"sourcesContent":["import React from 'react';\nimport ReactCreateElement from './ReactCreateElement';\nimport './FilteredList.css'\nimport Scrollable from \"./Scrollable\";\nimport {classNames, orNoop, ref, stopPropagation, isFunction, isObject} from \"./Tools\";\nimport {PureComponent} from \"./ReactConstants\";\n\nexport const getLabel = (labels, id) => isFunction(labels) ? labels(id) : labels[id]\n\nclass FilteredList extends PureComponent {\n\n static defaultProps = {\n data: [],\n labels: {},\n selected: {},\n inline: false,\n selectSingle: true,\n filter: () => true,\n };\n\n constructor(props) {\n super(props);\n this.state = {selected: -1};\n this.hidden = {};\n this.elements = {};\n }\n\n componentDidMount() {\n orNoop(this.props.nextProvider)(this.next);\n orNoop(this.props.prevProvider)(this.prev);\n orNoop(this.props.selectedProvider)(this.selected);\n orNoop(this.props.resetProvider)(this.reset);\n\n this.updateList(this.props)\n }\n\n componentDidUpdate(prevProps, prevState, snapshot) {\n if (this.props.data === prevProps.data)\n return;\n\n this.updateList(this.props)\n }\n\n updateList = (props) => {\n const {data} = props;\n const {selected} = this.state;\n this.list = data || [];\n\n if (!this.list.includes(selected))\n this.setState({selected: -1})\n };\n\n render() {\n const {data, labels, filter, className, selected, inline, childComponent, childProps, style, scroll} = this.props;\n return (\n <Scrollable className={classNames('FilteredList', className, inline ? 'inline' : 'popup')}\n ref={ref('el', this)} style={style} scrollBarMode={scroll}>\n {(data || []).filter(id => id !== false && id != null).map(id => <ItemWrapper\n id={id}\n key={id}\n label={getLabel(labels, id)}\n childComponent={childComponent}\n childProps={childProps}\n element={el => this.elements[id] = el}\n onClick={e => {\n stopPropagation(e);\n this.onSelect(id);\n }}\n onMouseEnter={e => this.setState({selected: id})}\n onMouseLeave={e => id === this.state.selected && this.setState({selected: -1})}\n className={classNames('child', this.state.selected === id && 'active', selected === id || (isObject(selected) && selected[id]) && 'selected')}\n classProvider={it => (this.hidden[id] = !filter(it)) && 'hidden'}\n />)}\n </Scrollable>\n )\n }\n\n onSelect = (id) => {\n this.setState({selected: id});\n this.props.onSelect(id);\n };\n\n selected = () => {\n const {selected: value} = this.state;\n const {selectSingle} = this.props;\n\n\n if (value === -1 || this.hidden[value]) {\n let filtered = this.list.filter(id => !this.hidden[id]);\n if (selectSingle && filtered.length === 1)\n return filtered[0];\n\n return null;\n } else {\n return value;\n }\n };\n\n next = () => {\n const list = this.list;\n const selected = this.state.selected;\n let position = list.findIndex(id => selected === id);\n if (this.hidden[list[position]])\n position = -1;\n\n while (++position < list.length) {\n if (!this.hidden[list[position]])\n break\n }\n if (position < list.length) {\n let id = list[position];\n this.setState({selected: id});\n this.updateScroll(id)\n }\n };\n\n prev = () => {\n const list = this.list;\n const selected = this.state.selected;\n let position = list.findIndex(id => selected === id);\n if (this.hidden[list[position]])\n position = list.length;\n\n while (--position >= 0) {\n if (!this.hidden[list[position]])\n break\n }\n if (position >= 0) {\n let id = list[position];\n this.setState({selected: id});\n this.updateScroll(id)\n }\n };\n\n updateScroll = (id) => {\n let child = this.elements[id];\n let container = this.el;\n const scrollTop = container.getScroll();\n const height = container.getHeight();\n let isVisible = scrollTop <= child.offsetTop && scrollTop + height >= child.offsetTop + child.clientHeight;\n if (!isVisible) {\n let scrollToBottom = child.offsetTop + child.clientHeight - height;\n let scrollToTop = child.offsetTop;\n if (Math.abs(scrollTop - scrollToTop) < Math.abs(scrollTop - scrollToBottom)) {\n container.setScroll(scrollToTop)\n } else {\n container.setScroll(scrollToBottom)\n }\n }\n };\n\n reset = () => {\n this.setState({selected: -1});\n this.el.scrollTop = 0;\n };\n\n scrollTo = (id) => this.el.setScroll(this.elements[id] && this.elements[id].offsetTop);\n}\n\nexport default FilteredList;\n\nclass ItemWrapper extends React.Component {\n render() {\n const {id, label, onClick, onMouseDown, onMouseEnter, onMouseLeave, classProvider, className, childComponent, childProps} = this.props;\n const child = React.createElement(childComponent, {\n ...childProps,\n id,\n label,\n dataConsumer: (data) => this.data = data,\n });\n\n const cssClass = orNoop(classProvider)(this.data);\n return (\n <div className={classNames('ItemWrapper', cssClass, className)}\n onMouseEnter={onMouseEnter}\n onMouseLeave={onMouseLeave}\n onMouseDown={onMouseDown}\n onClick={onClick}\n ref={ref('el', this)}\n >\n {child}\n </div>\n )\n }\n\n componentDidMount() {\n orNoop(this.props.element)(this.el);\n this.forceUpdate();\n }\n}\n"],"names":["getLabel","labels","id","isFunction","FilteredList","props","updateList","data","selected","state","list","includes","setState","onSelect","value","selectSingle","hidden","filtered","filter","length","next","position","findIndex","updateScroll","prev","child","elements","container","el","scrollTop","getScroll","height","getHeight","isVisible","offsetTop","clientHeight","scrollToBottom","scrollToTop","Math","abs","setScroll","reset","scrollTo","orNoop","nextProvider","prevProvider","selectedProvider","resetProvider","prevProps","prevState","snapshot","className","inline","childComponent","childProps","style","scroll","classNames","ref","map","e","stopPropagation","isObject","it","PureComponent","defaultProps","ItemWrapper","label","onClick","onMouseDown","onMouseEnter","onMouseLeave","classProvider","React","createElement","dataConsumer","cssClass","element","forceUpdate","Component"],"mappings":"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"}
1
+ {"version":3,"file":"FilteredList.js","sources":["./src/FilteredList.js"],"sourcesContent":["import React from 'react';\nimport ReactCreateElement from './ReactCreateElement';\nimport './FilteredList.css'\nimport Scrollable from \"./Scrollable\";\nimport {classNames, orNoop, ref, stopPropagation, isFunction, isObject} from \"./Tools\";\nimport {PureComponent} from \"./ReactConstants\";\n\nexport const getLabel = (labels, id) => isFunction(labels) ? labels(id) : labels[id]\n\nclass FilteredList extends PureComponent {\n\n static defaultProps = {\n data: [],\n labels: {},\n selected: {},\n inline: false,\n selectSingle: true,\n filter: () => true,\n };\n\n constructor(props) {\n super(props);\n this.state = {selected: -1};\n this.hidden = {};\n this.elements = {};\n }\n\n componentDidMount() {\n orNoop(this.props.nextProvider)(this.next);\n orNoop(this.props.prevProvider)(this.prev);\n orNoop(this.props.selectedProvider)(this.selected);\n orNoop(this.props.resetProvider)(this.reset);\n\n this.updateList(this.props)\n }\n\n componentDidUpdate(prevProps, prevState, snapshot) {\n if (this.props.data === prevProps.data)\n return;\n\n this.updateList(this.props)\n }\n\n updateList = (props) => {\n const {data} = props;\n const {selected} = this.state;\n this.list = data || [];\n\n if (!this.list.includes(selected))\n this.setState({selected: -1})\n };\n\n render() {\n const {data, labels, filter, className, selected, inline, childComponent, childProps, style, scroll} = this.props;\n return (\n <Scrollable className={classNames('FilteredList', className, inline ? 'inline' : 'popup')}\n ref={ref('el', this)} style={style} scrollBarMode={scroll}>\n {(data || []).filter(id => id !== false && id != null).map(id => <ItemWrapper\n id={id}\n key={id}\n label={getLabel(labels, id)}\n childComponent={childComponent}\n childProps={childProps}\n element={el => this.elements[id] = el}\n onClick={e => {\n stopPropagation(e);\n this.onSelect(id);\n }}\n onMouseEnter={e => this.setState({selected: id})}\n onMouseLeave={e => id === this.state.selected && this.setState({selected: -1})}\n className={classNames('child', this.state.selected === id && 'active', selected === id || (isObject(selected) && selected[id]) && 'selected')}\n classProvider={it => (this.hidden[id] = !filter(it)) && 'hidden'}\n />)}\n </Scrollable>\n )\n }\n\n onSelect = (id) => {\n this.setState({selected: id});\n this.props.onSelect(id);\n };\n\n selected = () => {\n const {selected: value} = this.state;\n const {selectSingle} = this.props;\n\n\n if (value === -1 || this.hidden[value]) {\n let filtered = this.list.filter(id => !this.hidden[id]);\n if (selectSingle && filtered.length === 1)\n return filtered[0];\n\n return null;\n } else {\n return value;\n }\n };\n\n next = () => {\n const list = this.list;\n const selected = this.state.selected;\n let position = list.findIndex(id => selected === id);\n if (this.hidden[list[position]])\n position = -1;\n\n while (++position < list.length) {\n if (!this.hidden[list[position]])\n break\n }\n if (position < list.length) {\n let id = list[position];\n this.setState({selected: id});\n this.updateScroll(id)\n }\n };\n\n prev = () => {\n const list = this.list;\n const selected = this.state.selected;\n let position = list.findIndex(id => selected === id);\n if (this.hidden[list[position]])\n position = list.length;\n\n while (--position >= 0) {\n if (!this.hidden[list[position]])\n break\n }\n if (position >= 0) {\n let id = list[position];\n this.setState({selected: id});\n this.updateScroll(id)\n }\n };\n\n updateScroll = (id) => {\n let child = this.elements[id];\n let container = this.el;\n const scrollTop = container.getScroll();\n const height = container.getHeight();\n let isVisible = scrollTop <= child.offsetTop && scrollTop + height >= child.offsetTop + child.clientHeight;\n if (!isVisible) {\n let scrollToBottom = child.offsetTop + child.clientHeight - height;\n let scrollToTop = child.offsetTop;\n if (Math.abs(scrollTop - scrollToTop) < Math.abs(scrollTop - scrollToBottom)) {\n container.setScroll(scrollToTop)\n } else {\n container.setScroll(scrollToBottom)\n }\n }\n };\n\n reset = () => {\n this.setState({selected: -1});\n this.el.scrollTop = 0;\n };\n\n scrollTo = (id) => this.el.setScroll(this.elements[id] && this.elements[id].offsetTop);\n}\n\nexport default FilteredList;\n\nclass ItemWrapper extends React.Component {\n render() {\n const {id, label, onClick, onMouseDown, onMouseEnter, onMouseLeave, classProvider, className, childComponent, childProps} = this.props;\n const child = React.createElement(childComponent, {\n ...childProps,\n id,\n label,\n dataConsumer: (data) => this.data = data,\n });\n\n const cssClass = orNoop(classProvider)(this.data);\n return (\n <div className={classNames('ItemWrapper', cssClass, className)}\n onMouseEnter={onMouseEnter}\n onMouseLeave={onMouseLeave}\n onMouseDown={onMouseDown}\n onClick={onClick}\n ref={ref('el', this)}\n >\n {child}\n </div>\n )\n }\n\n componentDidMount() {\n orNoop(this.props.element)(this.el);\n this.forceUpdate();\n }\n}\n"],"names":["getLabel","labels","id","isFunction","FilteredList","props","updateList","data","selected","state","list","includes","setState","onSelect","value","selectSingle","hidden","filtered","filter","length","next","position","findIndex","updateScroll","prev","child","elements","container","el","scrollTop","getScroll","height","getHeight","isVisible","offsetTop","clientHeight","scrollToBottom","scrollToTop","Math","abs","setScroll","reset","scrollTo","orNoop","nextProvider","prevProvider","selectedProvider","resetProvider","prevProps","prevState","snapshot","className","inline","childComponent","childProps","style","scroll","classNames","ref","map","e","stopPropagation","isObject","it","PureComponent","defaultProps","ItemWrapper","label","onClick","onMouseDown","onMouseEnter","onMouseLeave","classProvider","React","createElement","dataConsumer","cssClass","element","forceUpdate","Component"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"FloatingActionButton.js","sources":["../../../src/react-ui-basics/FloatingActionButton.js"],"sourcesContent":["import React from 'react';\nimport ReactCreateElement from './ReactCreateElement';\nimport PropTypes from 'prop-types';\nimport './FloatingActionButton.css'\nimport Button from \"./Button\";\nimport {classNames} from \"./Tools\";\nimport MaterialIcon from \"./MaterialIcon\";\n\nconst FloatingActionButton = ({icon, onClick, mini, className, hidden}) => {\n return <Button onClick={onClick} round={true} className={classNames(\"FloatingActionButton\", className, mini && 'mini', hidden && 'hidden')}>\n <MaterialIcon icon={icon}/>\n </Button>;\n};\n\nif (window.isNotProductionEnvironment) {\n FloatingActionButton.propTypes = {\n icon: MaterialIcon.propTypes.icon,\n mini: PropTypes.bool,\n hidden: PropTypes.bool,\n };\n}\n\nFloatingActionButton.defaultProps = {\n icon: 'add',\n mini: false,\n hidden: false,\n};\n\nexport default FloatingActionButton;"],"names":["FloatingActionButton","icon","onClick","mini","className","hidden","classNames","window","isNotProductionEnvironment","propTypes","MaterialIcon","PropTypes","bool","defaultProps"],"mappings":";;;;;;;AAQA,IAAMA,oBAAoB,GAAG,SAAvBA,oBAAuB,CAA8C,IAAA,EAAA;AAAA,EAA5CC,IAAAA,IAA4C,QAA5CA,IAA4C;AAAA,MAAtCC,OAAsC,QAAtCA,OAAsC;AAAA,MAA7BC,IAA6B,QAA7BA,IAA6B;AAAA,MAAvBC,SAAuB,QAAvBA,SAAuB;AAAA,MAAZC,MAAY,QAAZA,MAAY,CAAA;AACvE,EAAA,OAAO,mBAAC,MAAD,EAAA;AAAQ,IAAA,OAAO,EAAEH,OAAjB;AAA0B,IAAA,KAAK,EAAE,IAAjC;AAAuC,IAAA,SAAS,EAAEI,UAAU,CAAC,sBAAD,EAAyBF,SAAzB,EAAoCD,IAAI,IAAI,MAA5C,EAAoDE,MAAM,IAAI,QAA9D,CAAA;AAA5D,GAAA,EACH,mBAAC,YAAD,EAAA;AAAc,IAAA,IAAI,EAAEJ,IAAAA;AAApB,GAAA,CADG,CAAP,CAAA;AAGH,CAJD,CAAA;AAMA,IAAIM,MAAM,CAACC,0BAAX,EAAuC;AACnCR,EAAAA,oBAAoB,CAACS,SAArB,GAAiC;AAC7BR,IAAAA,IAAI,EAAES,YAAY,CAACD,SAAb,CAAuBR,IADA;AAE7BE,IAAAA,IAAI,EAAEQ,SAAS,CAACC,IAFa;AAG7BP,IAAAA,MAAM,EAAEM,SAAS,CAACC,IAAAA;AAHW,GAAjC,CAAA;AAKH,CAAA;AAEDZ,oBAAoB,CAACa,YAArB,GAAoC;AAChCZ,EAAAA,IAAI,EAAE,KAD0B;AAEhCE,EAAAA,IAAI,EAAE,KAF0B;AAGhCE,EAAAA,MAAM,EAAE,KAAA;AAHwB,CAApC,CAAA;AAMA,6BAAeL,oBAAf;;;;"}
1
+ {"version":3,"file":"FloatingActionButton.js","sources":["./src/FloatingActionButton.js"],"sourcesContent":["import React from 'react';\nimport ReactCreateElement from './ReactCreateElement';\nimport PropTypes from 'prop-types';\nimport './FloatingActionButton.css'\nimport Button from \"./Button\";\nimport {classNames} from \"./Tools\";\nimport MaterialIcon from \"./MaterialIcon\";\n\nconst FloatingActionButton = ({icon, onClick, mini, className, hidden}) => {\n return <Button onClick={onClick} round={true} className={classNames(\"FloatingActionButton\", className, mini && 'mini', hidden && 'hidden')}>\n <MaterialIcon icon={icon}/>\n </Button>;\n};\n\nif (window.isNotProductionEnvironment) {\n FloatingActionButton.propTypes = {\n icon: MaterialIcon.propTypes.icon,\n mini: PropTypes.bool,\n hidden: PropTypes.bool,\n };\n}\n\nFloatingActionButton.defaultProps = {\n icon: 'add',\n mini: false,\n hidden: false,\n};\n\nexport default FloatingActionButton;"],"names":["FloatingActionButton","icon","onClick","mini","className","hidden","classNames","window","isNotProductionEnvironment","propTypes","MaterialIcon","PropTypes","bool","defaultProps"],"mappings":";;;;;;;AAQA,IAAMA,oBAAoB,GAAG,SAAvBA,oBAAuB,CAA8C,IAAA,EAAA;AAAA,EAA5CC,IAAAA,IAA4C,QAA5CA,IAA4C;AAAA,MAAtCC,OAAsC,QAAtCA,OAAsC;AAAA,MAA7BC,IAA6B,QAA7BA,IAA6B;AAAA,MAAvBC,SAAuB,QAAvBA,SAAuB;AAAA,MAAZC,MAAY,QAAZA,MAAY,CAAA;AACvE,EAAA,OAAO,mBAAC,MAAD,EAAA;AAAQ,IAAA,OAAO,EAAEH,OAAjB;AAA0B,IAAA,KAAK,EAAE,IAAjC;AAAuC,IAAA,SAAS,EAAEI,UAAU,CAAC,sBAAD,EAAyBF,SAAzB,EAAoCD,IAAI,IAAI,MAA5C,EAAoDE,MAAM,IAAI,QAA9D,CAAA;AAA5D,GAAA,EACH,mBAAC,YAAD,EAAA;AAAc,IAAA,IAAI,EAAEJ,IAAAA;AAApB,GAAA,CADG,CAAP,CAAA;AAGH,CAJD,CAAA;AAMA,IAAIM,MAAM,CAACC,0BAAX,EAAuC;AACnCR,EAAAA,oBAAoB,CAACS,SAArB,GAAiC;AAC7BR,IAAAA,IAAI,EAAES,YAAY,CAACD,SAAb,CAAuBR,IADA;AAE7BE,IAAAA,IAAI,EAAEQ,SAAS,CAACC,IAFa;AAG7BP,IAAAA,MAAM,EAAEM,SAAS,CAACC,IAAAA;AAHW,GAAjC,CAAA;AAKH,CAAA;AAEDZ,oBAAoB,CAACa,YAArB,GAAoC;AAChCZ,EAAAA,IAAI,EAAE,KAD0B;AAEhCE,EAAAA,IAAI,EAAE,KAF0B;AAGhCE,EAAAA,MAAM,EAAE,KAAA;AAHwB,CAApC,CAAA;AAMA,6BAAeL,oBAAf;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"FormUploadProgress.js","sources":["../../../src/react-ui-basics/FormUploadProgress.js"],"sourcesContent":["import React from 'react';\nimport ReactCreateElement from './ReactCreateElement';\nimport './FormUploadProgress.css'\nimport Button from \"./Button\";\nimport Animated from \"./Animated\";\nimport CircleProgress from \"./CircleProgress\";\nimport SpinningProgress from \"./SpinningProgress\";\nimport {formatAbbreviation, formatNumberWithMaxLength} from \"./Size\";\nimport PropTypes from \"prop-types\";\nimport {preventDefault} from \"./Tools\";\n\n\nconst defaultValueFormat = (value, loaded, total) => {\n if (total == null)\n return Math.floor(Number.isFinite(value) ? value : 0) + '%';\n\n const abbreviation = formatAbbreviation(total);\n return <>\n {formatNumberWithMaxLength(loaded, 1, abbreviation, 4)}\n /\n {formatNumberWithMaxLength(total, 1, abbreviation, 4)}\n <br/>\n {abbreviation}\n </>\n};\n\nconst FormUploadProgress = ({\n value,\n cancel,\n loaded,\n total,\n formatValue,\n processingLabel,\n cancelLabel,\n }) => {\n return (\n <Animated value={total > 0}>\n <div className=\"FormUploadProgress\">\n <div className=\"wrapper\">\n <div className=\"progress\">\n {loaded === total && <SpinningProgress/>}\n {loaded !== total && <CircleProgress value={value}/>}\n <div className={'value'}>{formatValue(value, loaded, total)}</div>\n </div>\n {cancel && <Button className={\"cancel\"} disabled={loaded === total} onClick={e => {\n preventDefault(e);\n cancel();\n }}>\n {loaded === total && processingLabel}\n {loaded !== total && cancelLabel}\n </Button>}\n </div>\n </div>\n </Animated>\n );\n};\n\nFormUploadProgress.defaultProps = {\n value: 0,\n formatValue: defaultValueFormat,\n};\n\nif (window.isNotProductionEnvironment) {\n FormUploadProgress.propTypes = {\n value: PropTypes.number,\n loaded: PropTypes.number,\n total: PropTypes.number,\n formatValue: PropTypes.func,\n processingLabel: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.element\n ]),\n cancelLabel: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.element\n ]),\n cancel: PropTypes.func,\n };\n}\n\nexport default FormUploadProgress;\n"],"names":["defaultValueFormat","value","loaded","total","Math","floor","Number","isFinite","abbreviation","formatAbbreviation","formatNumberWithMaxLength","FormUploadProgress","cancel","formatValue","processingLabel","cancelLabel","e","preventDefault","defaultProps","window","isNotProductionEnvironment","propTypes","PropTypes","number","func","oneOfType","string","element"],"mappings":"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"}
1
+ {"version":3,"file":"FormUploadProgress.js","sources":["./src/FormUploadProgress.js"],"sourcesContent":["import React from 'react';\nimport ReactCreateElement from './ReactCreateElement';\nimport './FormUploadProgress.css'\nimport Button from \"./Button\";\nimport Animated from \"./Animated\";\nimport CircleProgress from \"./CircleProgress\";\nimport SpinningProgress from \"./SpinningProgress\";\nimport {formatAbbreviation, formatNumberWithMaxLength} from \"./Size\";\nimport PropTypes from \"prop-types\";\nimport {preventDefault} from \"./Tools\";\n\n\nconst defaultValueFormat = (value, loaded, total) => {\n if (total == null)\n return Math.floor(Number.isFinite(value) ? value : 0) + '%';\n\n const abbreviation = formatAbbreviation(total);\n return <>\n {formatNumberWithMaxLength(loaded, 1, abbreviation, 4)}\n /\n {formatNumberWithMaxLength(total, 1, abbreviation, 4)}\n <br/>\n {abbreviation}\n </>\n};\n\nconst FormUploadProgress = ({\n value,\n cancel,\n loaded,\n total,\n formatValue,\n processingLabel,\n cancelLabel,\n }) => {\n return (\n <Animated value={total > 0}>\n <div className=\"FormUploadProgress\">\n <div className=\"wrapper\">\n <div className=\"progress\">\n {loaded === total && <SpinningProgress/>}\n {loaded !== total && <CircleProgress value={value}/>}\n <div className={'value'}>{formatValue(value, loaded, total)}</div>\n </div>\n {cancel && <Button className={\"cancel\"} disabled={loaded === total} onClick={e => {\n preventDefault(e);\n cancel();\n }}>\n {loaded === total && processingLabel}\n {loaded !== total && cancelLabel}\n </Button>}\n </div>\n </div>\n </Animated>\n );\n};\n\nFormUploadProgress.defaultProps = {\n value: 0,\n formatValue: defaultValueFormat,\n};\n\nif (window.isNotProductionEnvironment) {\n FormUploadProgress.propTypes = {\n value: PropTypes.number,\n loaded: PropTypes.number,\n total: PropTypes.number,\n formatValue: PropTypes.func,\n processingLabel: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.element\n ]),\n cancelLabel: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.element\n ]),\n cancel: PropTypes.func,\n };\n}\n\nexport default FormUploadProgress;\n"],"names":["defaultValueFormat","value","loaded","total","Math","floor","Number","isFinite","abbreviation","formatAbbreviation","formatNumberWithMaxLength","FormUploadProgress","cancel","formatValue","processingLabel","cancelLabel","e","preventDefault","defaultProps","window","isNotProductionEnvironment","propTypes","PropTypes","number","func","oneOfType","string","element"],"mappings":"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"}