react-ui-basics 0.0.209 → 0.0.210

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 (85) 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/Checkbox.d.ts +16 -0
  5. package/Checkbox.js +14 -52
  6. package/Checkbox.js.map +1 -1
  7. package/CircleProgress.d.ts +12 -0
  8. package/CircleProgress.js +8 -31
  9. package/CircleProgress.js.map +1 -1
  10. package/CommonFields.d.ts +18 -0
  11. package/CommonFields.js +18 -20
  12. package/CommonFields.js.map +1 -1
  13. package/DNDDraggable.js.map +1 -1
  14. package/DNDDroppable.js.map +1 -1
  15. package/Dialog.js.map +1 -1
  16. package/DropFileInput.d.ts +20 -0
  17. package/DropFileInput.js +6 -37
  18. package/DropFileInput.js.map +1 -1
  19. package/DroppableHorizontalList.js.map +1 -1
  20. package/DroppableList.js.map +1 -1
  21. package/Dropzone.js.map +1 -1
  22. package/FilteredList.js.map +1 -1
  23. package/FloatingActionButton.d.ts +19 -0
  24. package/FloatingActionButton.js +7 -28
  25. package/FloatingActionButton.js.map +1 -1
  26. package/FormUploadProgress.js.map +1 -1
  27. package/ImageGallery.js +7 -6
  28. package/ImageGallery.js.map +1 -1
  29. package/MaterialIcon.d.ts +11 -0
  30. package/MaterialIcon.js +3 -18
  31. package/MaterialIcon.js.map +1 -1
  32. package/Modal.js.map +1 -1
  33. package/ModalMenu.d.ts +15 -0
  34. package/ModalMenu.js +23 -62
  35. package/ModalMenu.js.map +1 -1
  36. package/ReadyListener.js.map +1 -1
  37. package/Scrollable.css +3 -0
  38. package/Scrollable.js.map +1 -1
  39. package/Size.d.ts +8 -0
  40. package/Size.js +36 -35
  41. package/Size.js.map +1 -1
  42. package/Snackbar.d.ts +12 -0
  43. package/Snackbar.js +40 -62
  44. package/Snackbar.js.map +1 -1
  45. package/SpinningProgress.d.ts +4 -0
  46. package/SpinningProgress.js +3 -18
  47. package/SpinningProgress.js.map +1 -1
  48. package/Switch.d.ts +17 -0
  49. package/Switch.js +13 -60
  50. package/Switch.js.map +1 -1
  51. package/Table.js +1 -1
  52. package/Table.js.map +1 -1
  53. package/TextField.js.map +1 -1
  54. package/Tools.d.ts +1 -1
  55. package/Tools.js.map +1 -1
  56. package/_virtual/_rollupPluginBabelHelpers.js.map +1 -1
  57. package/bundle.css +756 -752
  58. package/package.json +22 -22
  59. package/router/HistoryTools.js.map +1 -1
  60. package/router/Link.js.map +1 -1
  61. package/router/NavLink.js.map +1 -1
  62. package/router/Route.js.map +1 -1
  63. package/src/Checkbox.tsx +37 -0
  64. package/src/CircleProgress.tsx +29 -0
  65. package/src/{CommonFields.js → CommonFields.ts} +1 -1
  66. package/src/DropFileInput.tsx +32 -0
  67. package/src/FloatingActionButton.tsx +28 -0
  68. package/src/MaterialIcon.tsx +1830 -0
  69. package/src/{ModalMenu.js → ModalMenu.tsx} +18 -9
  70. package/src/Scrollable.css +3 -0
  71. package/src/Scrollable.scss +4 -0
  72. package/src/{Size.js → Size.tsx} +24 -22
  73. package/src/{Snackbar.js → Snackbar.tsx} +22 -16
  74. package/src/SpinningProgress.tsx +13 -0
  75. package/src/Switch.tsx +42 -0
  76. package/src/Table.tsx +1 -1
  77. package/src/Tools.ts +1 -1
  78. package/store/ProxyTools.js.map +1 -1
  79. package/src/Checkbox.js +0 -46
  80. package/src/CircleProgress.js +0 -32
  81. package/src/DropFileInput.js +0 -39
  82. package/src/FloatingActionButton.js +0 -29
  83. package/src/MaterialIcon.js +0 -1832
  84. package/src/SpinningProgress.js +0 -13
  85. package/src/Switch.js +0 -48
package/ModalMenu.js CHANGED
@@ -1,69 +1,30 @@
1
- import ReactConstants from "./ReactConstants"; import {clientHeight as __clientHeight, clientWidth as __clientWidth, createAccessor as __createAccessor, data as __data, height as __height, left as __left, length as __length, pageX as __pageX, pageY as __pageY, props as __props, scrollLeft as __scrollLeft, scrollTop as __scrollTop, state as __state, style as __style, target as __target, top as __top, value as __value, width as __width} from "./CommonFields"; import {toConsumableArray as __toConsumableArray} from "./_virtual/_rollupPluginBabelHelpers"; import {extends as __extends} from "./_virtual/_rollupPluginBabelHelpers"; import {inherits as __inherits} from "./_virtual/_rollupPluginBabelHelpers"; import './ModalMenu.css'; import { inherits as _inherits, createSuper as _createSuper, createClass as _createClass, classCallCheck as _classCallCheck, assertThisInitialized as _assertThisInitialized } from './_virtual/_rollupPluginBabelHelpers.js';
2
- import 'react';
3
- import ReactCreateElement from './ReactCreateElement.js';
4
- import { stateGS, render, PureComponent } from './ReactConstants.js';
1
+ import ReactConstants from "./ReactConstants"; import {clientHeight as __clientHeight, clientWidth as __clientWidth, createAccessor as __createAccessor, data as __data, height as __height, left as __left, length as __length, pageX as __pageX, pageY as __pageY, props as __props, scrollLeft as __scrollLeft, scrollTop as __scrollTop, state as __state, style as __style, target as __target, top as __top, value as __value, width as __width} from "./CommonFields"; import {toConsumableArray as __toConsumableArray} from "./_virtual/_rollupPluginBabelHelpers"; import {extends as __extends} from "./_virtual/_rollupPluginBabelHelpers"; import {inherits as __inherits} from "./_virtual/_rollupPluginBabelHelpers"; import './ModalMenu.css'; import { jsxs as jsxRuntime_1, jsx as jsxRuntime_2 } from 'react/jsx-runtime';
2
+ import { PureComponent, stateGS, render } from './ReactConstants.js';
5
3
  import { classNames } from './Tools.js';
6
4
  import Animated from './Animated.js';
7
5
  import Button from './Button.js';
8
6
  import MaterialIcon from './MaterialIcon.js';
9
7
 
10
- var ModalMenu = function (_PureComponent) {
11
- _inherits(ModalMenu, _PureComponent);
12
- var _super = _createSuper(ModalMenu);
13
- function ModalMenu(props) {
14
- var _this;
15
- _classCallCheck(this, ModalMenu);
16
- _this = _super.call(this, props);
17
- _this.state = {};
18
- var isOpen = stateGS(_assertThisInitialized(_this));
19
- var toggle = function toggle() {
20
- isOpen(!isOpen());
21
- };
22
- _this[ReactConstants[3]] = function () {
23
- var items = __props(_this).items;
24
- var filtered = (items || []).filter(function (it) {
25
- return !!it;
26
- });
27
- if (__length(filtered) === 0) return null;
28
- var open = isOpen();
29
- return ReactCreateElement("div", {
30
- [ReactConstants[5]]: classNames("ModalMenu", 'row', open && 'open')
31
- }, filtered.map(function (it, i) {
32
- return ReactCreateElement(Animated, {
33
- value: open,
34
- key: i,
35
- mounting: 200,
36
- unmounting: 200,
37
- mountingDelay: i * 50,
38
- unmountingDelay: (__length(filtered) - i - 1) * 50,
39
- styles: {
40
- mounting: {
41
- right: (__length(filtered) - i) * 36 + 5 + (__length(filtered) - i) * 5 + "px"
42
- }
43
- }
44
- }, ReactCreateElement(Button, {
45
- flat: true,
46
- round: true,
47
- [ReactConstants[6]]: it.action
48
- }, ReactCreateElement(MaterialIcon, {
49
- icon: it.icon
50
- })));
51
- }), ReactCreateElement(Button, {
52
- [ReactConstants[5]]: classNames("more", open && 'active'),
53
- flat: true,
54
- round: true,
55
- [ReactConstants[6]]: toggle
56
- }, ReactCreateElement(MaterialIcon, {
57
- icon: "more_vert"
58
- })), ReactCreateElement("div", {
59
- [ReactConstants[5]]: "separator"
60
- }));
61
- };
62
- return _this;
63
- }
64
- return _createClass(ModalMenu);
65
- }(PureComponent);
66
- var ModalMenu$1 = ModalMenu;
8
+ class ModalMenu extends PureComponent {
9
+ constructor(props) {
10
+ super(props);
11
+ this.state = {};
12
+ const isOpen = stateGS(this);
13
+ const toggle = () => {
14
+ isOpen(!isOpen());
15
+ };
16
+ this[ReactConstants[3]] = () => {
17
+ const { items } = __props(this);
18
+ const filtered = (items || []).filter(it => !!it);
19
+ if (__length(filtered) === 0)
20
+ return null;
21
+ const open = isOpen();
22
+ return jsxRuntime_1("div", __extends({ [ReactConstants[5]]: classNames("ModalMenu", 'row', open && 'open') }, { [ReactConstants[4]]: [filtered.map((it, i) => jsxRuntime_2(Animated, __extends({ value: open, mounting: 200, unmounting: 200, mountingDelay: i * 50, unmountingDelay: (__length(filtered) - i - 1) * 50, styles: {
23
+ mounting: { right: ((__length(filtered) - i) * 36 + 5 + (__length(filtered) - i) * 5) + `px` },
24
+ } }, { [ReactConstants[4]]: jsxRuntime_2(Button, __extends({ flat: true, round: true, [ReactConstants[6]]: it.action }, { [ReactConstants[4]]: jsxRuntime_2(MaterialIcon, { icon: it.icon }) })) }), i)), jsxRuntime_2(Button, __extends({ [ReactConstants[5]]: classNames("more", open && 'active'), flat: true, round: true, [ReactConstants[6]]: toggle }, { [ReactConstants[4]]: jsxRuntime_2(MaterialIcon, { icon: "more_vert" }) })), jsxRuntime_2("div", { [ReactConstants[5]]: "separator" })] }));
25
+ };
26
+ }
27
+ }
67
28
 
68
- export { ModalMenu$1 as default };
29
+ export { ModalMenu as default };
69
30
  //# sourceMappingURL=ModalMenu.js.map
package/ModalMenu.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"ModalMenu.js","sources":["./src/ModalMenu.js"],"sourcesContent":["import React from 'react';\nimport ReactCreateElement from './ReactCreateElement';\nimport './ModalMenu.css'\nimport {PureComponent, stateGS, render} from \"./ReactConstants\";\nimport {classNames} from \"./Tools\";\nimport Animated from \"./Animated\";\nimport Button from \"./Button\";\nimport MaterialIcon from \"./MaterialIcon\";\n\nclass ModalMenu extends PureComponent {\n\n constructor(props) {\n super(props);\n this.state = {};\n const isOpen = stateGS(this);\n\n const toggle = () => {\n isOpen(!isOpen());\n };\n this[render] = () => {\n const {items} = this.props;\n const filtered = (items || []).filter(it => !!it);\n if (filtered.length === 0) return null;\n\n const open = isOpen();\n\n return <div className={classNames(\"ModalMenu\", 'row', open && 'open')}>\n {filtered.map((it, i) => <Animated value={open}\n key={i}\n mounting={200}\n unmounting={200}\n mountingDelay={i * 50}\n unmountingDelay={(filtered.length - i - 1) * 50}\n styles={{\n mounting: {right: ((filtered.length - i) * 36 + 5 + (filtered.length - i) * 5) + `px`},\n }}\n >\n <Button flat={true} round={true} onClick={it.action}>\n <MaterialIcon icon={it.icon}/>\n </Button>\n </Animated>)}\n\n <Button className={classNames(\"more\", open && 'active')} flat={true} round={true} onClick={toggle}>\n <MaterialIcon icon=\"more_vert\"/>\n </Button>\n\n <div className=\"separator\"/>\n </div>\n }\n }\n}\n\nexport default ModalMenu;"],"names":["ModalMenu","props","state","isOpen","stateGS","toggle","render","items","filtered","filter","it","length","open","classNames","map","i","mounting","right","action","icon","PureComponent"],"mappings":"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"}
1
+ {"version":3,"file":"ModalMenu.js","sources":["./src/ModalMenu.tsx"],"sourcesContent":[null],"names":["_jsxs","_jsx"],"mappings":";;;;;;;AAkBA,MAAM,SAAU,SAAQ,aAA6B,CAAA;AAEjD,IAAA,WAAA,CAAY,KAAK,EAAA;QACb,KAAK,CAAC,KAAK,CAAC,CAAC;AACb,QAAA,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;AAChB,QAAA,MAAM,MAAM,GAAG,OAAO,CAAU,IAAI,CAAC,CAAC;QAEtC,MAAM,MAAM,GAAG,MAAK;AAChB,YAAA,MAAM,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;AACtB,SAAC,CAAC;AACF,QAAA,IAAI,CAAC,MAAM,CAAC,GAAG,MAAK;AAChB,YAAA,MAAM,EAAC,KAAK,EAAC,GAAG,IAAI,CAAC,KAAK,CAAC;AAC3B,YAAA,MAAM,QAAQ,GAAG,CAAC,KAAK,IAAI,EAAE,EAAE,MAAM,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;AAClD,YAAA,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;AAAE,gBAAA,OAAO,IAAI,CAAC;AAEvC,YAAA,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC;AAEtB,YAAA,OAAOA,YAAK,CAAA,KAAA,EAAA,MAAA,CAAA,MAAA,CAAA,EAAA,SAAS,EAAE,UAAU,CAAC,WAAW,EAAE,KAAK,EAAE,IAAI,IAAI,MAAM,CAAC,EAAA,EAAA,EAAA,QAAA,EAAA,CAChE,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,KAAKC,YAAA,CAAC,QAAQ,EAAA,MAAA,CAAA,MAAA,CAAA,EAAC,KAAK,EAAE,IAAI,EAEX,QAAQ,EAAE,GAAG,EACb,UAAU,EAAE,GAAG,EACf,aAAa,EAAE,CAAC,GAAG,EAAE,EACrB,eAAe,EAAE,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,EAC/C,MAAM,EAAE;AACJ,4BAAA,QAAQ,EAAE,EAAC,KAAK,EAAE,CAAC,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,EAAC;AACzF,yBAAA,EAAA,EAAA,EAAA,QAAA,EAEhCA,YAAC,CAAA,MAAM,EAAC,MAAA,CAAA,MAAA,CAAA,EAAA,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,CAAC,MAAM,EAAA,EAAA,EAAA,QAAA,EAC/CA,YAAC,CAAA,YAAY,EAAC,EAAA,IAAI,EAAE,EAAE,CAAC,IAAI,EAAA,CAAG,EACzB,CAAA,CAAA,EAAA,CAAA,EAX2B,CAAC,CAY9B,CAAC,EAEZA,YAAA,CAAC,MAAM,EAAC,MAAA,CAAA,MAAA,CAAA,EAAA,SAAS,EAAE,UAAU,CAAC,MAAM,EAAE,IAAI,IAAI,QAAQ,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,gBAC7FA,YAAC,CAAA,YAAY,EAAC,EAAA,IAAI,EAAC,WAAW,EAAA,CAAE,EAC3B,CAAA,CAAA,EAETA,sBAAK,SAAS,EAAC,WAAW,EAAA,CAAE,KAC1B,CAAA;AACV,SAAC,CAAA;KACJ;AACJ;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"ReadyListener.js","sources":["./src/ReadyListener.js"],"sourcesContent":["import React from 'react';\nimport ReactCreateElement from './ReactCreateElement';\nimport {componentDidMount, render, componentWillUnmount, setState, props, state, componentDidUpdate, children, PureComponent} from \"./ReactConstants\";\nimport {orNoop} from \"./Tools\";\n\nexport const createReadyListener = () => {\n let indicator,\n count = 0;\n\n class NotReadyIndicator extends PureComponent {\n constructor(properties) {\n super(properties);\n const that = this;\n that.state = {r: true};\n indicator = that;\n that[render] = () => {\n const _props = props(that),\n renderer = _props[render],\n ready = state(that).r;\n\n if (renderer)\n return renderer(ready);\n else\n return (!ready && _props[children]) || null;\n };\n that[componentDidMount] = that[componentDidUpdate] = () => {\n orNoop(props(that).onChange)(state(that).r);\n }\n }\n }\n\n class NotReady extends PureComponent {\n constructor(props) {\n super(props);\n const that = this;\n that[componentDidMount] = () => {\n count++;\n setState(indicator, {r: false});\n };\n that[componentWillUnmount] = () => {\n setState(indicator, {r: --count === 0});\n };\n that[render] = () => null;\n }\n }\n\n return [NotReadyIndicator, NotReady]\n};\n"],"names":["createReadyListener","indicator","count","NotReadyIndicator","properties","that","state","r","render","_props","props","renderer","ready","children","componentDidMount","componentDidUpdate","orNoop","onChange","PureComponent","NotReady","setState","componentWillUnmount"],"mappings":"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"}
1
+ {"version":3,"file":"ReadyListener.js","sources":["./src/ReadyListener.js"],"sourcesContent":["import React from 'react';\nimport ReactCreateElement from './ReactCreateElement';\nimport {componentDidMount, render, componentWillUnmount, setState, props, state, componentDidUpdate, children, PureComponent} from \"./ReactConstants\";\nimport {orNoop} from \"./Tools\";\n\nexport const createReadyListener = () => {\n let indicator,\n count = 0;\n\n class NotReadyIndicator extends PureComponent {\n constructor(properties) {\n super(properties);\n const that = this;\n that.state = {r: true};\n indicator = that;\n that[render] = () => {\n const _props = props(that),\n renderer = _props[render],\n ready = state(that).r;\n\n if (renderer)\n return renderer(ready);\n else\n return (!ready && _props[children]) || null;\n };\n that[componentDidMount] = that[componentDidUpdate] = () => {\n orNoop(props(that).onChange)(state(that).r);\n }\n }\n }\n\n class NotReady extends PureComponent {\n constructor(props) {\n super(props);\n const that = this;\n that[componentDidMount] = () => {\n count++;\n setState(indicator, {r: false});\n };\n that[componentWillUnmount] = () => {\n setState(indicator, {r: --count === 0});\n };\n that[render] = () => null;\n }\n }\n\n return [NotReadyIndicator, NotReady]\n};\n"],"names":["createReadyListener","indicator","count","NotReadyIndicator","_PureComponent","_inherits","_super","_createSuper","properties","_this","_classCallCheck","call","that","_assertThisInitialized","state","r","render","_props","props","renderer","ready","children","componentDidMount","componentDidUpdate","orNoop","onChange","_createClass","PureComponent","NotReady","_PureComponent2","_super2","_this2","setState","componentWillUnmount"],"mappings":"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"}
package/Scrollable.css CHANGED
@@ -25,6 +25,9 @@
25
25
  .Scrollable.without-scroll-horizontal {
26
26
  max-width: unset;
27
27
  }
28
+ .Scrollable.undefined-horizontal {
29
+ max-width: unset;
30
+ }
28
31
  .Scrollable.without-scroll {
29
32
  padding-right: 0;
30
33
  max-height: unset;
package/Scrollable.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"Scrollable.js","sources":["./src/Scrollable.js"],"sourcesContent":["import React from 'react';\nimport ReactCreateElement from './ReactCreateElement';\nimport PropTypes from 'prop-types';\nimport './Scrollable.css'\nimport {\n classNames,\n preventDefault,\n WINDOW,\n addEventListener,\n removeEventListener,\n setTimeout,\n clearTimeout,\n setInterval,\n clearInterval,\n createRef,\n orNoop,\n NOOP,\n ref\n} from \"./Tools\";\nimport {propsGetter, stateGS, PureComponent, render, componentDidMount, componentDidUpdate, componentWillUnmount} from \"./ReactConstants\";\n\nexport const SCROLLBAR_MODE_HIDDEN = 'hidden';\nexport const SCROLLBAR_MODE_VISIBLE = 'visible';\nexport const SCROLLBAR_MODE_AUTO = 'auto';\nexport const SCROLLBAR_RESIZE_DISABLED = 'disabled';\n\nlet NATIVE_SCROLL_WIDTH = -1;\nlet NATIVE_SCROLL_HEIGHT = -1;\n\nconst WITHOUT_SCROLL = 'without-scroll';\nconst WITH_SCROLL = 'with-scroll';\n\nconst createFieldGetter = field => el => el[field];\nconst scrollHeightOf = createFieldGetter('scrollHeight');\nconst scrollWidthOf = createFieldGetter('scrollWidth');\nconst offsetHeightOf = createFieldGetter('offsetHeight');\nconst offsetWidthOf = createFieldGetter('offsetWidth');\nconst styleOf = createFieldGetter('style');\nconst scrollBarModeOf = createFieldGetter('scrollBarMode');\nconst onScroll = createFieldGetter('onScroll');\nconst horizontalScrollBarModeOf = createFieldGetter('horizontalScrollBarMode');\n\nclass Scrollable extends PureComponent {\n\n constructor(properties) {\n super(properties);\n const that = this;\n that.state = {};\n\n const props = propsGetter(that);\n const status = stateGS(that);\n const statusH = stateGS(that);\n\n const viewportRef = createRef();\n const scrollbarRef = createRef();\n const horizontalScrollbarRef = createRef();\n const thumbRef = createRef();\n const horizontalThumbRef = createRef();\n\n let resizeInterval;\n let initTimeout;\n\n const clear = () => {\n clearInterval(resizeInterval);\n clearTimeout(initTimeout);\n };\n\n const init = () => {\n clear();\n\n if (scrollBarModeOf(props()) === SCROLLBAR_MODE_HIDDEN && horizontalScrollBarModeOf(props()) === SCROLLBAR_MODE_HIDDEN) {\n status(WITHOUT_SCROLL);\n statusH(WITHOUT_SCROLL);\n return;\n }\n\n const viewport = viewportRef();\n const scrollbar = scrollbarRef();\n const scrollbarH = horizontalScrollbarRef();\n const container = that.el;\n const thumb = thumbRef();\n const thumbH = horizontalThumbRef();\n\n let scrolling = false;\n let scrolledToBottom = false;\n let scrolledToTop = false;\n let adjustedScrollWidth = false;\n let lastY = 0;\n let lastX = 0;\n let ratio = 0;\n let ratioH = 0;\n const onScrollListener = onScroll(props())\n\n viewport.onscroll = (e) => {\n const scrollHeight = scrollHeightOf(viewport);\n const offsetHeight = offsetHeightOf(viewport);\n const scrollWidth = scrollWidthOf(viewport);\n const offsetWidth = offsetWidthOf(viewport);\n const scrollbarHeight = offsetHeightOf(scrollbar);\n const scrollbarWidth = offsetWidthOf(scrollbarH);\n let position = viewport.scrollTop / (scrollHeight - offsetHeight);\n const positionH = viewport.scrollLeft / (scrollWidth - offsetWidth);\n\n if (position > 1) {\n viewport.scrollTop = scrollHeight - offsetHeight;\n position = 1\n }\n\n styleOf(thumb).top = (position * (scrollbarHeight - offsetHeightOf(thumb))) + 'px';\n styleOf(thumbH).left = (positionH * (scrollbarWidth - offsetWidthOf(thumbH))) + 'px';\n\n if (position >= 0.98) {\n !scrolledToBottom && orNoop(props().onScrolledToBottom)();\n scrolledToBottom = true;\n } else {\n scrolledToBottom = false;\n }\n\n if (position <= 0.02) {\n !scrolledToTop && orNoop(props().onScrolledToTop)();\n scrolledToTop = true;\n } else {\n scrolledToTop = false;\n }\n\n onScrollListener && onScrollListener(e)\n };\n const reset = () => {\n removeEventListener(WINDOW, 'mouseup', reset);\n removeEventListener(WINDOW, 'mousemove', moveListener);\n viewport.style.scrollBehavior = ''\n scrolling = false;\n };\n const moveListener = (e) => {\n if (!scrolling)\n return;\n\n if (scrolling === 'v') {\n viewport.scrollTop += (e.clientY - lastY) * ratio;\n lastY = e.clientY;\n } else if (scrolling === 'h') {\n viewport.scrollLeft += (e.clientX - lastX) * ratioH;\n lastX = e.clientX;\n }\n };\n thumb.onmousedown = (e) => {\n lastY = e.clientY;\n scrolling = 'v';\n ratio = scrollHeightOf(viewport) / offsetHeightOf(viewport);\n viewport.style.scrollBehavior = 'unset'\n\n addEventListener(WINDOW, 'mouseup', reset);\n addEventListener(WINDOW, 'mousemove', moveListener);\n };\n thumb.ondragstart = preventDefault;\n thumb.onmouseup = reset;\n\n thumbH.onmousedown = (e) => {\n lastX = e.clientX;\n scrolling = 'h';\n ratioH = scrollWidthOf(viewport) / offsetWidthOf(viewport);\n viewport.style.scrollBehavior = 'unset'\n\n addEventListener(WINDOW, 'mouseup', reset);\n addEventListener(WINDOW, 'mousemove', moveListener);\n };\n thumbH.ondragstart = preventDefault;\n thumbH.onmouseup = reset;\n\n scrollbar.onclick = (e) => {\n if (e.target === scrollbar) {\n let thumbPosition = parseInt(styleOf(thumb).top);\n viewport.scrollTop += offsetHeightOf(viewport) * 0.9 * (e.offsetY < thumbPosition ? -1 : 1);\n }\n };\n scrollbarH.onclick = (e) => {\n if (e.target === scrollbarH) {\n let thumbPosition = parseInt(styleOf(thumbH).left);\n viewport.scrollLeft += offsetWidthOf(viewport) * 0.9 * (e.offsetX < thumbPosition ? -1 : 1);\n }\n };\n\n const adjustScrollWidth = () => {\n if (NATIVE_SCROLL_WIDTH < 0) {\n NATIVE_SCROLL_WIDTH = viewport.offsetWidth - viewport.clientWidth;\n if (NATIVE_SCROLL_WIDTH === 0 && scrollHeightOf(viewport) !== offsetHeightOf(viewport)) {\n NATIVE_SCROLL_WIDTH = -1;\n }\n }\n if (NATIVE_SCROLL_HEIGHT < 0) {\n NATIVE_SCROLL_HEIGHT = viewport.offsetHeight - viewport.clientHeight;\n if (NATIVE_SCROLL_HEIGHT === 0 && scrollWidthOf(viewport) !== offsetWidthOf(viewport)) {\n NATIVE_SCROLL_HEIGHT = -1;\n }\n }\n\n if (!adjustedScrollWidth) {\n if (NATIVE_SCROLL_WIDTH >= 0 && status() !== WITHOUT_SCROLL) {\n styleOf(viewport).paddingRight = (NATIVE_SCROLL_WIDTH) + scrollbar.clientWidth + 'px';\n styleOf(viewport).marginRight = -(NATIVE_SCROLL_WIDTH) - scrollbar.clientWidth + 'px';\n }\n if (NATIVE_SCROLL_HEIGHT >= 0 && statusH() !== WITHOUT_SCROLL) {\n styleOf(viewport).paddingBottom = (NATIVE_SCROLL_HEIGHT) + scrollbarH.clientHeight + 'px';\n styleOf(viewport).marginBottom = -(NATIVE_SCROLL_HEIGHT) - scrollbarH.clientHeight + 'px';\n }\n adjustedScrollWidth = true;\n }\n };\n\n adjustScrollWidth();\n\n const showScrollbar = (scrollbar, viewport, adjustScrollWidth) => {\n styleOf(scrollbar).visibility = 'inherit';\n styleOf(scrollbar).bottom = '0'; //enable scrollbar\n styleOf(viewport).overflowY = '';\n adjustScrollWidth();\n status() !== WITH_SCROLL && status(WITH_SCROLL);\n };\n\n const hideScrollbar = (scrollbar, viewport) => {\n styleOf(scrollbar).visibility = 'hidden'; //disable scrollbar\n styleOf(viewport).overflowY = 'inherit';\n styleOf(viewport).paddingRight = '0';\n styleOf(viewport).marginRight = '0';\n status() !== WITHOUT_SCROLL && status(WITHOUT_SCROLL);\n };\n\n const showHorizontalScrollbar = (scrollbar, viewport, adjustScrollWidth) => {\n styleOf(scrollbar).visibility = 'inherit';\n styleOf(scrollbar).right = '0'; //enable scrollbar\n styleOf(viewport).overflowX = '';\n adjustScrollWidth();\n statusH() !== WITH_SCROLL && statusH(WITH_SCROLL);\n };\n\n const hideHorizontalScrollbar = (scrollbar, viewport) => {\n styleOf(scrollbar).visibility = 'hidden'; //disable scrollbar\n styleOf(viewport).overflowX = 'inherit';\n styleOf(viewport).paddingBottom = '0';\n styleOf(viewport).marginBottom = '0';\n statusH() !== WITHOUT_SCROLL && statusH(WITHOUT_SCROLL);\n };\n\n const updateVerticalScrollbar = () => {\n const scrollHeight = scrollHeightOf(viewport);\n const scrollbarHeight = offsetHeightOf(scrollbar);\n\n !adjustedScrollWidth && adjustScrollWidth();\n\n const newRatio = scrollHeight / scrollbarHeight;\n if ((ratio === newRatio && Number.isFinite(newRatio)) || Number.isNaN(newRatio)) return;\n\n const offsetHeight = offsetHeightOf(viewport);\n const horizontalScrollBarOffset = statusH() !== WITHOUT_SCROLL ? scrollbarH.clientHeight + Math.max(NATIVE_SCROLL_HEIGHT, 0) : 0;\n\n let containerOffsetHeight = offsetHeightOf(container) + horizontalScrollBarOffset;\n if (containerOffsetHeight === scrollHeight && status() === WITHOUT_SCROLL)\n return;\n\n if (props().autoScrollTop && scrollHeight - offsetHeight - viewport.scrollTop <= 20 && newRatio < ratio && Number.isFinite(newRatio) && Number.isFinite(ratio)) {\n viewport.scrollTop = 0; // scroll to top if scrollbar gets smaller\n }\n\n ratio = newRatio;\n styleOf(thumb).height = (scrollbarHeight / newRatio) + 'px';\n\n styleOf(container).height = scrollHeight - horizontalScrollBarOffset + 'px';\n containerOffsetHeight = offsetHeightOf(container) + horizontalScrollBarOffset;\n\n if (scrollBarModeOf(props()) === SCROLLBAR_MODE_HIDDEN) {\n if (status() !== WITHOUT_SCROLL)\n hideScrollbar(scrollbar, viewport);\n\n return\n }\n\n if (containerOffsetHeight < scrollHeight) {\n adjustedScrollWidth = false;\n showScrollbar(scrollbar, viewport, adjustScrollWidth);\n } else {\n hideScrollbar(scrollbar, viewport);\n }\n\n scrolledToBottom = false;\n scrolledToTop = false;\n\n const position = viewport.scrollTop / (scrollHeight - offsetHeight);\n styleOf(thumb).top = (position * (scrollbarHeight - offsetHeightOf(thumb))) + 'px';\n };\n\n const updateHorizontalScrollbar = () => {\n\n const scrollWidth = scrollWidthOf(viewport);\n const scrollbarWidth = offsetWidthOf(scrollbarH);\n\n !adjustedScrollWidth && adjustScrollWidth();\n\n const newRatio = scrollWidth / scrollbarWidth;\n if ((ratioH === newRatio && Number.isFinite(newRatio)) || Number.isNaN(newRatio)) return;\n\n const offsetWidth = offsetWidthOf(viewport);\n\n const verticalScrollBarOffset = status() !== WITHOUT_SCROLL ? scrollbar.clientWidth + Math.max(NATIVE_SCROLL_WIDTH, 0) : 0;\n let containerOffsetWidth = offsetWidthOf(container) + verticalScrollBarOffset;\n\n if (containerOffsetWidth === scrollWidth && statusH() === WITHOUT_SCROLL)\n return;\n\n ratioH = newRatio;\n styleOf(thumbH).width = (scrollbarWidth / newRatio) + 'px';\n\n\n if (horizontalScrollBarModeOf(props()) === SCROLLBAR_MODE_HIDDEN) {\n if (statusH() !== WITHOUT_SCROLL)\n hideHorizontalScrollbar(scrollbarH, viewport);\n\n return\n }\n\n styleOf(container).width = (scrollWidth - verticalScrollBarOffset) + 'px';\n containerOffsetWidth = offsetWidthOf(container) + verticalScrollBarOffset;\n\n if (containerOffsetWidth < scrollWidth) {\n adjustedScrollWidth = false;\n showHorizontalScrollbar(scrollbarH, viewport, adjustScrollWidth);\n } else {\n hideHorizontalScrollbar(scrollbarH, viewport);\n }\n\n const position = viewport.scrollLeft / (scrollWidth - offsetWidth);\n styleOf(thumbH).left = (position * (scrollbarWidth - offsetWidthOf(thumbH))) + 'px';\n };\n\n let update;\n let sbm = scrollBarModeOf(props());\n let hsbm = horizontalScrollBarModeOf(props());\n if (sbm !== SCROLLBAR_RESIZE_DISABLED && !hsbm === SCROLLBAR_RESIZE_DISABLED) {\n update = () => {\n updateVerticalScrollbar();\n updateHorizontalScrollbar();\n };\n } else if (sbm !== SCROLLBAR_RESIZE_DISABLED)\n update = updateVerticalScrollbar\n else\n update = updateVerticalScrollbar\n\n initTimeout = setTimeout(() => {\n resizeInterval = setInterval(update, 50);\n }, 200)\n };\n\n that[componentDidMount] = init;\n that[componentWillUnmount] = clear;\n\n that[componentDidUpdate] = (prevProps) => {\n if (scrollBarModeOf(props()) !== scrollBarModeOf(prevProps))\n init();\n else if (onScroll(props()) !== onScroll(prevProps))\n init();\n };\n\n that.setScroll = (y) => {\n viewportRef().scrollTop = y\n };\n that.getScroll = () => viewportRef().scrollTop;\n that.getScrollHeight = () => scrollHeightOf(viewportRef());\n that.getHeight = () => that.el.clientHeight;\n\n that[render] = () => {\n const _props = props();\n const {className, children} = _props;\n return (\n <div className={classNames('Scrollable', className, status() || WITH_SCROLL, statusH() + '-horizontal')} style={styleOf(_props)} ref={ref('el', this)}>\n <div className=\"viewport\" ref={viewportRef}>\n {children}\n </div>\n <div className={classNames('scrollbar', scrollBarModeOf(_props) || SCROLLBAR_MODE_AUTO)} ref={scrollbarRef}>\n <div className=\"thumb\" ref={thumbRef}/>\n </div>\n <div className={classNames('scrollbar horizontal', horizontalScrollBarModeOf(_props))} ref={horizontalScrollbarRef}>\n <div className=\"thumb\" ref={horizontalThumbRef}/>\n </div>\n </div>\n )\n };\n }\n}\n\nexport default Scrollable\n\nScrollable.defaultProps = {\n autoScrollTop: true,\n horizontalScrollBarMode: SCROLLBAR_MODE_HIDDEN\n};\n\nif (window.isNotProductionEnvironment) {\n Scrollable.propTypes = {\n scrollBarMode: PropTypes.oneOf([SCROLLBAR_MODE_AUTO, SCROLLBAR_MODE_HIDDEN, SCROLLBAR_MODE_VISIBLE, SCROLLBAR_RESIZE_DISABLED]),\n horizontalScrollBarMode: PropTypes.oneOf([SCROLLBAR_MODE_AUTO, SCROLLBAR_MODE_HIDDEN, SCROLLBAR_MODE_VISIBLE, SCROLLBAR_RESIZE_DISABLED]),\n className: PropTypes.string,\n style: PropTypes.object,\n onScrolledToBottom: PropTypes.func,\n onScrolledToTop: PropTypes.func,\n autoScrollTop: PropTypes.bool,\n }\n}"],"names":["SCROLLBAR_MODE_HIDDEN","SCROLLBAR_MODE_VISIBLE","SCROLLBAR_MODE_AUTO","SCROLLBAR_RESIZE_DISABLED","NATIVE_SCROLL_WIDTH","NATIVE_SCROLL_HEIGHT","WITHOUT_SCROLL","WITH_SCROLL","createFieldGetter","field","el","scrollHeightOf","scrollWidthOf","offsetHeightOf","offsetWidthOf","styleOf","scrollBarModeOf","onScroll","horizontalScrollBarModeOf","Scrollable","properties","that","state","props","propsGetter","status","stateGS","statusH","viewportRef","createRef","scrollbarRef","horizontalScrollbarRef","thumbRef","horizontalThumbRef","resizeInterval","initTimeout","clear","clearInterval","clearTimeout","init","viewport","scrollbar","scrollbarH","container","thumb","thumbH","scrolling","scrolledToBottom","scrolledToTop","adjustedScrollWidth","lastY","lastX","ratio","ratioH","onScrollListener","onscroll","e","scrollHeight","offsetHeight","scrollWidth","offsetWidth","scrollbarHeight","scrollbarWidth","position","scrollTop","positionH","scrollLeft","top","left","orNoop","onScrolledToBottom","onScrolledToTop","reset","removeEventListener","WINDOW","moveListener","style","scrollBehavior","clientY","clientX","onmousedown","addEventListener","ondragstart","preventDefault","onmouseup","onclick","target","thumbPosition","parseInt","offsetY","offsetX","adjustScrollWidth","clientWidth","clientHeight","paddingRight","marginRight","paddingBottom","marginBottom","showScrollbar","visibility","bottom","overflowY","hideScrollbar","showHorizontalScrollbar","right","overflowX","hideHorizontalScrollbar","updateVerticalScrollbar","newRatio","Number","isFinite","isNaN","horizontalScrollBarOffset","Math","max","containerOffsetHeight","autoScrollTop","height","updateHorizontalScrollbar","verticalScrollBarOffset","containerOffsetWidth","width","update","sbm","hsbm","setTimeout","setInterval","componentDidMount","componentWillUnmount","componentDidUpdate","prevProps","setScroll","y","getScroll","getScrollHeight","getHeight","render","_props","className","children","classNames","ref","PureComponent","defaultProps","horizontalScrollBarMode","window","isNotProductionEnvironment","propTypes","scrollBarMode","PropTypes","oneOf","string","object","func","bool"],"mappings":"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"}
1
+ {"version":3,"file":"Scrollable.js","sources":["./src/Scrollable.js"],"sourcesContent":["import React from 'react';\nimport ReactCreateElement from './ReactCreateElement';\nimport PropTypes from 'prop-types';\nimport './Scrollable.css'\nimport {\n classNames,\n preventDefault,\n WINDOW,\n addEventListener,\n removeEventListener,\n setTimeout,\n clearTimeout,\n setInterval,\n clearInterval,\n createRef,\n orNoop,\n NOOP,\n ref\n} from \"./Tools\";\nimport {propsGetter, stateGS, PureComponent, render, componentDidMount, componentDidUpdate, componentWillUnmount} from \"./ReactConstants\";\n\nexport const SCROLLBAR_MODE_HIDDEN = 'hidden';\nexport const SCROLLBAR_MODE_VISIBLE = 'visible';\nexport const SCROLLBAR_MODE_AUTO = 'auto';\nexport const SCROLLBAR_RESIZE_DISABLED = 'disabled';\n\nlet NATIVE_SCROLL_WIDTH = -1;\nlet NATIVE_SCROLL_HEIGHT = -1;\n\nconst WITHOUT_SCROLL = 'without-scroll';\nconst WITH_SCROLL = 'with-scroll';\n\nconst createFieldGetter = field => el => el[field];\nconst scrollHeightOf = createFieldGetter('scrollHeight');\nconst scrollWidthOf = createFieldGetter('scrollWidth');\nconst offsetHeightOf = createFieldGetter('offsetHeight');\nconst offsetWidthOf = createFieldGetter('offsetWidth');\nconst styleOf = createFieldGetter('style');\nconst scrollBarModeOf = createFieldGetter('scrollBarMode');\nconst onScroll = createFieldGetter('onScroll');\nconst horizontalScrollBarModeOf = createFieldGetter('horizontalScrollBarMode');\n\nclass Scrollable extends PureComponent {\n\n constructor(properties) {\n super(properties);\n const that = this;\n that.state = {};\n\n const props = propsGetter(that);\n const status = stateGS(that);\n const statusH = stateGS(that);\n\n const viewportRef = createRef();\n const scrollbarRef = createRef();\n const horizontalScrollbarRef = createRef();\n const thumbRef = createRef();\n const horizontalThumbRef = createRef();\n\n let resizeInterval;\n let initTimeout;\n\n const clear = () => {\n clearInterval(resizeInterval);\n clearTimeout(initTimeout);\n };\n\n const init = () => {\n clear();\n\n if (scrollBarModeOf(props()) === SCROLLBAR_MODE_HIDDEN && horizontalScrollBarModeOf(props()) === SCROLLBAR_MODE_HIDDEN) {\n status(WITHOUT_SCROLL);\n statusH(WITHOUT_SCROLL);\n return;\n }\n\n const viewport = viewportRef();\n const scrollbar = scrollbarRef();\n const scrollbarH = horizontalScrollbarRef();\n const container = that.el;\n const thumb = thumbRef();\n const thumbH = horizontalThumbRef();\n\n let scrolling = false;\n let scrolledToBottom = false;\n let scrolledToTop = false;\n let adjustedScrollWidth = false;\n let lastY = 0;\n let lastX = 0;\n let ratio = 0;\n let ratioH = 0;\n const onScrollListener = onScroll(props())\n\n viewport.onscroll = (e) => {\n const scrollHeight = scrollHeightOf(viewport);\n const offsetHeight = offsetHeightOf(viewport);\n const scrollWidth = scrollWidthOf(viewport);\n const offsetWidth = offsetWidthOf(viewport);\n const scrollbarHeight = offsetHeightOf(scrollbar);\n const scrollbarWidth = offsetWidthOf(scrollbarH);\n let position = viewport.scrollTop / (scrollHeight - offsetHeight);\n const positionH = viewport.scrollLeft / (scrollWidth - offsetWidth);\n\n if (position > 1) {\n viewport.scrollTop = scrollHeight - offsetHeight;\n position = 1\n }\n\n styleOf(thumb).top = (position * (scrollbarHeight - offsetHeightOf(thumb))) + 'px';\n styleOf(thumbH).left = (positionH * (scrollbarWidth - offsetWidthOf(thumbH))) + 'px';\n\n if (position >= 0.98) {\n !scrolledToBottom && orNoop(props().onScrolledToBottom)();\n scrolledToBottom = true;\n } else {\n scrolledToBottom = false;\n }\n\n if (position <= 0.02) {\n !scrolledToTop && orNoop(props().onScrolledToTop)();\n scrolledToTop = true;\n } else {\n scrolledToTop = false;\n }\n\n onScrollListener && onScrollListener(e)\n };\n const reset = () => {\n removeEventListener(WINDOW, 'mouseup', reset);\n removeEventListener(WINDOW, 'mousemove', moveListener);\n viewport.style.scrollBehavior = ''\n scrolling = false;\n };\n const moveListener = (e) => {\n if (!scrolling)\n return;\n\n if (scrolling === 'v') {\n viewport.scrollTop += (e.clientY - lastY) * ratio;\n lastY = e.clientY;\n } else if (scrolling === 'h') {\n viewport.scrollLeft += (e.clientX - lastX) * ratioH;\n lastX = e.clientX;\n }\n };\n thumb.onmousedown = (e) => {\n lastY = e.clientY;\n scrolling = 'v';\n ratio = scrollHeightOf(viewport) / offsetHeightOf(viewport);\n viewport.style.scrollBehavior = 'unset'\n\n addEventListener(WINDOW, 'mouseup', reset);\n addEventListener(WINDOW, 'mousemove', moveListener);\n };\n thumb.ondragstart = preventDefault;\n thumb.onmouseup = reset;\n\n thumbH.onmousedown = (e) => {\n lastX = e.clientX;\n scrolling = 'h';\n ratioH = scrollWidthOf(viewport) / offsetWidthOf(viewport);\n viewport.style.scrollBehavior = 'unset'\n\n addEventListener(WINDOW, 'mouseup', reset);\n addEventListener(WINDOW, 'mousemove', moveListener);\n };\n thumbH.ondragstart = preventDefault;\n thumbH.onmouseup = reset;\n\n scrollbar.onclick = (e) => {\n if (e.target === scrollbar) {\n let thumbPosition = parseInt(styleOf(thumb).top);\n viewport.scrollTop += offsetHeightOf(viewport) * 0.9 * (e.offsetY < thumbPosition ? -1 : 1);\n }\n };\n scrollbarH.onclick = (e) => {\n if (e.target === scrollbarH) {\n let thumbPosition = parseInt(styleOf(thumbH).left);\n viewport.scrollLeft += offsetWidthOf(viewport) * 0.9 * (e.offsetX < thumbPosition ? -1 : 1);\n }\n };\n\n const adjustScrollWidth = () => {\n if (NATIVE_SCROLL_WIDTH < 0) {\n NATIVE_SCROLL_WIDTH = viewport.offsetWidth - viewport.clientWidth;\n if (NATIVE_SCROLL_WIDTH === 0 && scrollHeightOf(viewport) !== offsetHeightOf(viewport)) {\n NATIVE_SCROLL_WIDTH = -1;\n }\n }\n if (NATIVE_SCROLL_HEIGHT < 0) {\n NATIVE_SCROLL_HEIGHT = viewport.offsetHeight - viewport.clientHeight;\n if (NATIVE_SCROLL_HEIGHT === 0 && scrollWidthOf(viewport) !== offsetWidthOf(viewport)) {\n NATIVE_SCROLL_HEIGHT = -1;\n }\n }\n\n if (!adjustedScrollWidth) {\n if (NATIVE_SCROLL_WIDTH >= 0 && status() !== WITHOUT_SCROLL) {\n styleOf(viewport).paddingRight = (NATIVE_SCROLL_WIDTH) + scrollbar.clientWidth + 'px';\n styleOf(viewport).marginRight = -(NATIVE_SCROLL_WIDTH) - scrollbar.clientWidth + 'px';\n }\n if (NATIVE_SCROLL_HEIGHT >= 0 && statusH() !== WITHOUT_SCROLL) {\n styleOf(viewport).paddingBottom = (NATIVE_SCROLL_HEIGHT) + scrollbarH.clientHeight + 'px';\n styleOf(viewport).marginBottom = -(NATIVE_SCROLL_HEIGHT) - scrollbarH.clientHeight + 'px';\n }\n adjustedScrollWidth = true;\n }\n };\n\n adjustScrollWidth();\n\n const showScrollbar = (scrollbar, viewport, adjustScrollWidth) => {\n styleOf(scrollbar).visibility = 'inherit';\n styleOf(scrollbar).bottom = '0'; //enable scrollbar\n styleOf(viewport).overflowY = '';\n adjustScrollWidth();\n status() !== WITH_SCROLL && status(WITH_SCROLL);\n };\n\n const hideScrollbar = (scrollbar, viewport) => {\n styleOf(scrollbar).visibility = 'hidden'; //disable scrollbar\n styleOf(viewport).overflowY = 'inherit';\n styleOf(viewport).paddingRight = '0';\n styleOf(viewport).marginRight = '0';\n status() !== WITHOUT_SCROLL && status(WITHOUT_SCROLL);\n };\n\n const showHorizontalScrollbar = (scrollbar, viewport, adjustScrollWidth) => {\n styleOf(scrollbar).visibility = 'inherit';\n styleOf(scrollbar).right = '0'; //enable scrollbar\n styleOf(viewport).overflowX = '';\n adjustScrollWidth();\n statusH() !== WITH_SCROLL && statusH(WITH_SCROLL);\n };\n\n const hideHorizontalScrollbar = (scrollbar, viewport) => {\n styleOf(scrollbar).visibility = 'hidden'; //disable scrollbar\n styleOf(viewport).overflowX = 'inherit';\n styleOf(viewport).paddingBottom = '0';\n styleOf(viewport).marginBottom = '0';\n statusH() !== WITHOUT_SCROLL && statusH(WITHOUT_SCROLL);\n };\n\n const updateVerticalScrollbar = () => {\n const scrollHeight = scrollHeightOf(viewport);\n const scrollbarHeight = offsetHeightOf(scrollbar);\n\n !adjustedScrollWidth && adjustScrollWidth();\n\n const newRatio = scrollHeight / scrollbarHeight;\n if ((ratio === newRatio && Number.isFinite(newRatio)) || Number.isNaN(newRatio)) return;\n\n const offsetHeight = offsetHeightOf(viewport);\n const horizontalScrollBarOffset = statusH() !== WITHOUT_SCROLL ? scrollbarH.clientHeight + Math.max(NATIVE_SCROLL_HEIGHT, 0) : 0;\n\n let containerOffsetHeight = offsetHeightOf(container) + horizontalScrollBarOffset;\n if (containerOffsetHeight === scrollHeight && status() === WITHOUT_SCROLL)\n return;\n\n if (props().autoScrollTop && scrollHeight - offsetHeight - viewport.scrollTop <= 20 && newRatio < ratio && Number.isFinite(newRatio) && Number.isFinite(ratio)) {\n viewport.scrollTop = 0; // scroll to top if scrollbar gets smaller\n }\n\n ratio = newRatio;\n styleOf(thumb).height = (scrollbarHeight / newRatio) + 'px';\n\n styleOf(container).height = scrollHeight - horizontalScrollBarOffset + 'px';\n containerOffsetHeight = offsetHeightOf(container) + horizontalScrollBarOffset;\n\n if (scrollBarModeOf(props()) === SCROLLBAR_MODE_HIDDEN) {\n if (status() !== WITHOUT_SCROLL)\n hideScrollbar(scrollbar, viewport);\n\n return\n }\n\n if (containerOffsetHeight < scrollHeight) {\n adjustedScrollWidth = false;\n showScrollbar(scrollbar, viewport, adjustScrollWidth);\n } else {\n hideScrollbar(scrollbar, viewport);\n }\n\n scrolledToBottom = false;\n scrolledToTop = false;\n\n const position = viewport.scrollTop / (scrollHeight - offsetHeight);\n styleOf(thumb).top = (position * (scrollbarHeight - offsetHeightOf(thumb))) + 'px';\n };\n\n const updateHorizontalScrollbar = () => {\n\n const scrollWidth = scrollWidthOf(viewport);\n const scrollbarWidth = offsetWidthOf(scrollbarH);\n\n !adjustedScrollWidth && adjustScrollWidth();\n\n const newRatio = scrollWidth / scrollbarWidth;\n if ((ratioH === newRatio && Number.isFinite(newRatio)) || Number.isNaN(newRatio)) return;\n\n const offsetWidth = offsetWidthOf(viewport);\n\n const verticalScrollBarOffset = status() !== WITHOUT_SCROLL ? scrollbar.clientWidth + Math.max(NATIVE_SCROLL_WIDTH, 0) : 0;\n let containerOffsetWidth = offsetWidthOf(container) + verticalScrollBarOffset;\n\n if (containerOffsetWidth === scrollWidth && statusH() === WITHOUT_SCROLL)\n return;\n\n ratioH = newRatio;\n styleOf(thumbH).width = (scrollbarWidth / newRatio) + 'px';\n\n\n if (horizontalScrollBarModeOf(props()) === SCROLLBAR_MODE_HIDDEN) {\n if (statusH() !== WITHOUT_SCROLL)\n hideHorizontalScrollbar(scrollbarH, viewport);\n\n return\n }\n\n styleOf(container).width = (scrollWidth - verticalScrollBarOffset) + 'px';\n containerOffsetWidth = offsetWidthOf(container) + verticalScrollBarOffset;\n\n if (containerOffsetWidth < scrollWidth) {\n adjustedScrollWidth = false;\n showHorizontalScrollbar(scrollbarH, viewport, adjustScrollWidth);\n } else {\n hideHorizontalScrollbar(scrollbarH, viewport);\n }\n\n const position = viewport.scrollLeft / (scrollWidth - offsetWidth);\n styleOf(thumbH).left = (position * (scrollbarWidth - offsetWidthOf(thumbH))) + 'px';\n };\n\n let update;\n let sbm = scrollBarModeOf(props());\n let hsbm = horizontalScrollBarModeOf(props());\n if (sbm !== SCROLLBAR_RESIZE_DISABLED && !hsbm === SCROLLBAR_RESIZE_DISABLED) {\n update = () => {\n updateVerticalScrollbar();\n updateHorizontalScrollbar();\n };\n } else if (sbm !== SCROLLBAR_RESIZE_DISABLED)\n update = updateVerticalScrollbar\n else\n update = updateVerticalScrollbar\n\n initTimeout = setTimeout(() => {\n resizeInterval = setInterval(update, 50);\n }, 200)\n };\n\n that[componentDidMount] = init;\n that[componentWillUnmount] = clear;\n\n that[componentDidUpdate] = (prevProps) => {\n if (scrollBarModeOf(props()) !== scrollBarModeOf(prevProps))\n init();\n else if (onScroll(props()) !== onScroll(prevProps))\n init();\n };\n\n that.setScroll = (y) => {\n viewportRef().scrollTop = y\n };\n that.getScroll = () => viewportRef().scrollTop;\n that.getScrollHeight = () => scrollHeightOf(viewportRef());\n that.getHeight = () => that.el.clientHeight;\n\n that[render] = () => {\n const _props = props();\n const {className, children} = _props;\n return (\n <div className={classNames('Scrollable', className, status() || WITH_SCROLL, statusH() + '-horizontal')} style={styleOf(_props)} ref={ref('el', this)}>\n <div className=\"viewport\" ref={viewportRef}>\n {children}\n </div>\n <div className={classNames('scrollbar', scrollBarModeOf(_props) || SCROLLBAR_MODE_AUTO)} ref={scrollbarRef}>\n <div className=\"thumb\" ref={thumbRef}/>\n </div>\n <div className={classNames('scrollbar horizontal', horizontalScrollBarModeOf(_props))} ref={horizontalScrollbarRef}>\n <div className=\"thumb\" ref={horizontalThumbRef}/>\n </div>\n </div>\n )\n };\n }\n}\n\nexport default Scrollable\n\nScrollable.defaultProps = {\n autoScrollTop: true,\n horizontalScrollBarMode: SCROLLBAR_MODE_HIDDEN\n};\n\nif (window.isNotProductionEnvironment) {\n Scrollable.propTypes = {\n scrollBarMode: PropTypes.oneOf([SCROLLBAR_MODE_AUTO, SCROLLBAR_MODE_HIDDEN, SCROLLBAR_MODE_VISIBLE, SCROLLBAR_RESIZE_DISABLED]),\n horizontalScrollBarMode: PropTypes.oneOf([SCROLLBAR_MODE_AUTO, SCROLLBAR_MODE_HIDDEN, SCROLLBAR_MODE_VISIBLE, SCROLLBAR_RESIZE_DISABLED]),\n className: PropTypes.string,\n style: PropTypes.object,\n onScrolledToBottom: PropTypes.func,\n onScrolledToTop: PropTypes.func,\n autoScrollTop: PropTypes.bool,\n }\n}"],"names":["SCROLLBAR_MODE_HIDDEN","SCROLLBAR_MODE_VISIBLE","SCROLLBAR_MODE_AUTO","SCROLLBAR_RESIZE_DISABLED","NATIVE_SCROLL_WIDTH","NATIVE_SCROLL_HEIGHT","WITHOUT_SCROLL","WITH_SCROLL","createFieldGetter","field","el","scrollHeightOf","scrollWidthOf","offsetHeightOf","offsetWidthOf","styleOf","scrollBarModeOf","onScroll","horizontalScrollBarModeOf","Scrollable","_PureComponent","_inherits","_super","_createSuper","properties","_this","_classCallCheck","call","that","_assertThisInitialized","state","props","propsGetter","status","stateGS","statusH","viewportRef","createRef","scrollbarRef","horizontalScrollbarRef","thumbRef","horizontalThumbRef","resizeInterval","initTimeout","clear","clearInterval","clearTimeout","init","viewport","scrollbar","scrollbarH","container","thumb","thumbH","scrolling","scrolledToBottom","scrolledToTop","adjustedScrollWidth","lastY","lastX","ratio","ratioH","onScrollListener","onscroll","e","scrollHeight","offsetHeight","scrollWidth","offsetWidth","scrollbarHeight","scrollbarWidth","position","scrollTop","positionH","scrollLeft","top","left","orNoop","onScrolledToBottom","onScrolledToTop","reset","removeEventListener","WINDOW","moveListener","style","scrollBehavior","clientY","clientX","onmousedown","addEventListener","ondragstart","preventDefault","onmouseup","onclick","target","thumbPosition","parseInt","offsetY","offsetX","adjustScrollWidth","clientWidth","clientHeight","paddingRight","marginRight","paddingBottom","marginBottom","showScrollbar","visibility","bottom","overflowY","hideScrollbar","showHorizontalScrollbar","right","overflowX","hideHorizontalScrollbar","updateVerticalScrollbar","newRatio","Number","isFinite","isNaN","horizontalScrollBarOffset","Math","max","containerOffsetHeight","autoScrollTop","height","updateHorizontalScrollbar","verticalScrollBarOffset","containerOffsetWidth","width","update","sbm","hsbm","setTimeout","setInterval","componentDidMount","componentWillUnmount","componentDidUpdate","prevProps","setScroll","y","getScroll","getScrollHeight","getHeight","render","_props","className","children","ReactCreateElement","classNames","ref","_createClass","PureComponent","defaultProps","horizontalScrollBarMode","window","isNotProductionEnvironment","propTypes","scrollBarMode","PropTypes","oneOf","string","object","func","bool"],"mappings":"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"}
package/Size.d.ts ADDED
@@ -0,0 +1,8 @@
1
+ /// <reference types="react" />
2
+ export declare type ToAbbreviationType = 'B' | 'KB' | 'MB' | 'GB';
3
+ export declare const formatNumberWithMaxLength: (size: number, fractionalLength: number, toAbbreviation?: ToAbbreviationType, maxLength?: number) => any;
4
+ export declare const formatAbbreviation: (size: number) => "B" | "KB" | "MB" | "GB";
5
+ declare const Size: ({ value }: {
6
+ value: number;
7
+ }) => JSX.Element;
8
+ export default Size;
package/Size.js CHANGED
@@ -1,42 +1,43 @@
1
- import ReactConstants from "./ReactConstants"; import {clientHeight as __clientHeight, clientWidth as __clientWidth, createAccessor as __createAccessor, data as __data, height as __height, left as __left, length as __length, pageX as __pageX, pageY as __pageY, props as __props, scrollLeft as __scrollLeft, scrollTop as __scrollTop, state as __state, style as __style, target as __target, top as __top, value as __value, width as __width} from "./CommonFields"; import {toConsumableArray as __toConsumableArray} from "./_virtual/_rollupPluginBabelHelpers"; import {extends as __extends} from "./_virtual/_rollupPluginBabelHelpers"; import {inherits as __inherits} from "./_virtual/_rollupPluginBabelHelpers"; import 'react';
2
- import ReactCreateElement from './ReactCreateElement.js';
1
+ import ReactConstants from "./ReactConstants"; import {clientHeight as __clientHeight, clientWidth as __clientWidth, createAccessor as __createAccessor, data as __data, height as __height, left as __left, length as __length, pageX as __pageX, pageY as __pageY, props as __props, scrollLeft as __scrollLeft, scrollTop as __scrollTop, state as __state, style as __style, target as __target, top as __top, value as __value, width as __width} from "./CommonFields"; import {toConsumableArray as __toConsumableArray} from "./_virtual/_rollupPluginBabelHelpers"; import {extends as __extends} from "./_virtual/_rollupPluginBabelHelpers"; import {inherits as __inherits} from "./_virtual/_rollupPluginBabelHelpers"; import { jsxs as jsxRuntime_1 } from 'react/jsx-runtime';
3
2
  import { isUndefined } from './Tools.js';
4
3
 
5
- var Size = function Size(_ref) {
6
- var value = __value(_ref);
7
- return ReactCreateElement("span", {
8
- [ReactConstants[5]]: "Size"
9
- }, formatNumber(value, 1), "\xA0", formatAbbreviation(value));
4
+ const formatNumber = (size, fractionalLength, toAbbreviation) => {
5
+ if (size < 1000 && !toAbbreviation || toAbbreviation === 'B')
6
+ return size + '';
7
+ size /= 1024;
8
+ if (size < 1000 && !toAbbreviation || toAbbreviation === 'KB')
9
+ return size.toFixed(fractionalLength);
10
+ size /= 1024;
11
+ if (size < 1000 && !toAbbreviation || toAbbreviation === 'MB')
12
+ return size.toFixed(fractionalLength);
13
+ size /= 1024;
14
+ return size.toFixed(fractionalLength);
10
15
  };
11
- var formatNumberWithMaxLength = function formatNumberWithMaxLength(size, fractionalLength, toAbbreviation, maxLength) {
12
- var result;
13
- if (isUndefined(fractionalLength)) fractionalLength = 1;
14
- if (isUndefined(maxLength)) maxLength = -1;
15
- do {
16
- result = formatNumber(size, fractionalLength, toAbbreviation);
17
- fractionalLength--;
18
- } while (maxLength !== -1 && fractionalLength >= 0 && __length(result) > maxLength);
19
- return result;
16
+ const formatNumberWithMaxLength = (size, fractionalLength, toAbbreviation, maxLength) => {
17
+ let result;
18
+ if (isUndefined(fractionalLength))
19
+ fractionalLength = 1;
20
+ if (isUndefined(maxLength))
21
+ maxLength = -1;
22
+ do {
23
+ result = formatNumber(size, fractionalLength, toAbbreviation);
24
+ fractionalLength--;
25
+ } while (maxLength !== -1 && fractionalLength >= 0 && __length(result) > maxLength);
26
+ return result;
20
27
  };
21
- function formatNumber(size, fractionalLength, toAbbreviation) {
22
- if (size < 1000 && !toAbbreviation || toAbbreviation === 'B') return size + '';
23
- size /= 1024;
24
- if (size < 1000 && !toAbbreviation || toAbbreviation === 'KB') return size.toFixed(fractionalLength);
25
- size /= 1024;
26
- if (size < 1000 && !toAbbreviation || toAbbreviation === 'MB') return size.toFixed(fractionalLength);
27
- size /= 1024;
28
- return size.toFixed(fractionalLength);
29
- }
30
- var formatAbbreviation = function formatAbbreviation(size) {
31
- if (size < 1000) return 'B';
32
- size /= 1024;
33
- if (size < 1000) return 'KB';
34
- size /= 1024;
35
- if (size < 1000) return 'MB';
36
- size /= 1024;
37
- return 'GB';
28
+ const formatAbbreviation = (size) => {
29
+ if (size < 1000)
30
+ return 'B';
31
+ size /= 1024;
32
+ if (size < 1000)
33
+ return 'KB';
34
+ size /= 1024;
35
+ if (size < 1000)
36
+ return 'MB';
37
+ size /= 1024;
38
+ return 'GB';
38
39
  };
39
- var Size$1 = Size;
40
+ const Size = ({ value }) => (jsxRuntime_1("span", __extends({ [ReactConstants[5]]: "Size" }, { [ReactConstants[4]]: [formatNumber(value, 1), "\u00A0", formatAbbreviation(value)] })));
40
41
 
41
- export { Size$1 as default, formatAbbreviation, formatNumberWithMaxLength };
42
+ export { Size as default, formatAbbreviation, formatNumberWithMaxLength };
42
43
  //# sourceMappingURL=Size.js.map
package/Size.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"Size.js","sources":["./src/Size.js"],"sourcesContent":["import React from 'react';\nimport ReactCreateElement from './ReactCreateElement';\nimport {isUndefined} from \"./Tools\";\n\nconst Size = ({value}) => (\n <span className=\"Size\">\n {formatNumber(value, 1)}&nbsp;{formatAbbreviation(value)}\n </span>\n);\n\nexport const formatNumberWithMaxLength = (size, fractionalLength, toAbbreviation, maxLength) => {\n let result;\n if (isUndefined(fractionalLength))\n fractionalLength = 1;\n if (isUndefined(maxLength))\n maxLength = -1;\n\n do {\n result = formatNumber(size, fractionalLength, toAbbreviation);\n fractionalLength--;\n } while (maxLength !== -1 && fractionalLength >= 0 && result.length > maxLength);\n return result;\n};\n\nfunction formatNumber(size, fractionalLength, toAbbreviation) {\n if (size < 1000 && !toAbbreviation || toAbbreviation === 'B')\n return size + '';\n size /= 1024;\n if (size < 1000 && !toAbbreviation || toAbbreviation === 'KB')\n return size.toFixed(fractionalLength);\n size /= 1024;\n if (size < 1000 && !toAbbreviation || toAbbreviation === 'MB')\n return size.toFixed(fractionalLength);\n size /= 1024;\n return size.toFixed(fractionalLength);\n};\n\nexport const formatAbbreviation = (size) => {\n if (size < 1000)\n return 'B';\n size /= 1024;\n if (size < 1000)\n return 'KB';\n size /= 1024;\n if (size < 1000)\n return 'MB';\n size /= 1024;\n return 'GB';\n};\n\nexport default Size"],"names":["Size","value","formatNumber","formatAbbreviation","formatNumberWithMaxLength","size","fractionalLength","toAbbreviation","maxLength","result","isUndefined","length","toFixed"],"mappings":";;;;AAIA,IAAMA,IAAI,GAAG,SAAPA,IAAI,CAAA,IAAA,EAAA;EAAA,IAAKC,KAAK,QAALA,KAAK,CAAA;EAAA,OAChB,kBAAA,CAAA,MAAA,EAAA;AAAM,IAAA,SAAS,EAAC,MAAA;GACXC,EAAAA,YAAY,CAACD,KAAK,EAAE,CAAC,CAAC,EAAA,MAAA,EAAQE,kBAAkB,CAACF,KAAK,CAAC,CACrD,CAAA;AAAA,CACV,CAAA;AAEYG,IAAAA,yBAAyB,GAAG,SAA5BA,yBAAyB,CAAIC,IAAI,EAAEC,gBAAgB,EAAEC,cAAc,EAAEC,SAAS,EAAK;AAC5F,EAAA,IAAIC,MAAM,CAAA;AACV,EAAA,IAAIC,WAAW,CAACJ,gBAAgB,CAAC,EAC7BA,gBAAgB,GAAG,CAAC,CAAA;EACxB,IAAII,WAAW,CAACF,SAAS,CAAC,EACtBA,SAAS,GAAG,CAAC,CAAC,CAAA;EAElB,GAAG;IACCC,MAAM,GAAGP,YAAY,CAACG,IAAI,EAAEC,gBAAgB,EAAEC,cAAc,CAAC,CAAA;AAC7DD,IAAAA,gBAAgB,EAAE,CAAA;AACtB,GAAC,QAAQE,SAAS,KAAK,CAAC,CAAC,IAAIF,gBAAgB,IAAI,CAAC,IAAIG,MAAM,CAACE,MAAM,GAAGH,SAAS,EAAA;AAC/E,EAAA,OAAOC,MAAM,CAAA;AACjB,EAAC;AAED,SAASP,YAAY,CAACG,IAAI,EAAEC,gBAAgB,EAAEC,cAAc,EAAE;AAC1D,EAAA,IAAIF,IAAI,GAAG,IAAI,IAAI,CAACE,cAAc,IAAIA,cAAc,KAAK,GAAG,EACxD,OAAOF,IAAI,GAAG,EAAE,CAAA;AACpBA,EAAAA,IAAI,IAAI,IAAI,CAAA;AACZ,EAAA,IAAIA,IAAI,GAAG,IAAI,IAAI,CAACE,cAAc,IAAIA,cAAc,KAAK,IAAI,EACzD,OAAOF,IAAI,CAACO,OAAO,CAACN,gBAAgB,CAAC,CAAA;AACzCD,EAAAA,IAAI,IAAI,IAAI,CAAA;AACZ,EAAA,IAAIA,IAAI,GAAG,IAAI,IAAI,CAACE,cAAc,IAAIA,cAAc,KAAK,IAAI,EACzD,OAAOF,IAAI,CAACO,OAAO,CAACN,gBAAgB,CAAC,CAAA;AACzCD,EAAAA,IAAI,IAAI,IAAI,CAAA;AACZ,EAAA,OAAOA,IAAI,CAACO,OAAO,CAACN,gBAAgB,CAAC,CAAA;AACzC,CAAA;IAEaH,kBAAkB,GAAG,SAArBA,kBAAkB,CAAIE,IAAI,EAAK;AACxC,EAAA,IAAIA,IAAI,GAAG,IAAI,EACX,OAAO,GAAG,CAAA;AACdA,EAAAA,IAAI,IAAI,IAAI,CAAA;AACZ,EAAA,IAAIA,IAAI,GAAG,IAAI,EACX,OAAO,IAAI,CAAA;AACfA,EAAAA,IAAI,IAAI,IAAI,CAAA;AACZ,EAAA,IAAIA,IAAI,GAAG,IAAI,EACX,OAAO,IAAI,CAAA;AACfA,EAAAA,IAAI,IAAI,IAAI,CAAA;AACZ,EAAA,OAAO,IAAI,CAAA;AACf,EAAC;AAED,aAAeL,IAAI;;;;"}
1
+ {"version":3,"file":"Size.js","sources":["./src/Size.tsx"],"sourcesContent":[null],"names":["_jsxs"],"mappings":";;;AAMA,MAAM,YAAY,GAAG,CAAC,IAAY,EAAE,gBAAwB,EAAE,cAAmC,KAAI;IACjG,IAAI,IAAI,GAAG,IAAI,IAAI,CAAC,cAAc,IAAI,cAAc,KAAK,GAAG;QACxD,OAAO,IAAI,GAAG,EAAE,CAAC;IACrB,IAAI,IAAI,IAAI,CAAC;IACb,IAAI,IAAI,GAAG,IAAI,IAAI,CAAC,cAAc,IAAI,cAAc,KAAK,IAAI;AACzD,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAC1C,IAAI,IAAI,IAAI,CAAC;IACb,IAAI,IAAI,GAAG,IAAI,IAAI,CAAC,cAAc,IAAI,cAAc,KAAK,IAAI;AACzD,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAC1C,IAAI,IAAI,IAAI,CAAC;AACb,IAAA,OAAO,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;AAC1C,CAAC,CAAC;AAEK,MAAM,yBAAyB,GAAG,CAAC,IAAY,EAAE,gBAAwB,EAAE,cAAmC,EAAE,SAAkB,KAAI;AACzI,IAAA,IAAI,MAAM,CAAC;IACX,IAAI,WAAW,CAAC,gBAAgB,CAAC;QAC7B,gBAAgB,GAAG,CAAC,CAAC;IACzB,IAAI,WAAW,CAAC,SAAS,CAAC;QACtB,SAAS,GAAG,CAAC,CAAC,CAAC;IAEnB,GAAG;QACC,MAAM,GAAG,YAAY,CAAC,IAAI,EAAE,gBAAgB,EAAE,cAAc,CAAC,CAAC;AAC9D,QAAA,gBAAgB,EAAE,CAAC;AACtB,KAAA,QAAQ,SAAS,KAAK,CAAC,CAAC,IAAI,gBAAgB,IAAI,CAAC,IAAI,MAAM,CAAC,MAAM,GAAG,SAAS,EAAE;AACjF,IAAA,OAAO,MAAM,CAAC;AAClB,EAAE;AAEW,MAAA,kBAAkB,GAAG,CAAC,IAAY,KAAI;IAC/C,IAAI,IAAI,GAAG,IAAI;AACX,QAAA,OAAO,GAAG,CAAC;IACf,IAAI,IAAI,IAAI,CAAC;IACb,IAAI,IAAI,GAAG,IAAI;AACX,QAAA,OAAO,IAAI,CAAC;IAChB,IAAI,IAAI,IAAI,CAAC;IACb,IAAI,IAAI,GAAG,IAAI;AACX,QAAA,OAAO,IAAI,CAAC;IAChB,IAAI,IAAI,IAAI,CAAC;AACb,IAAA,OAAO,IAAI,CAAC;AAChB,EAAE;AAEF,MAAM,IAAI,GAAG,CAAC,EAAC,KAAK,EAAoB,MACpCA,YAAM,CAAA,MAAA,EAAA,MAAA,CAAA,MAAA,CAAA,EAAA,SAAS,EAAC,MAAM,EACjB,EAAA,EAAA,QAAA,EAAA,CAAA,YAAY,CAAC,KAAK,EAAE,CAAC,CAAC,EAAA,QAAA,EAAQ,kBAAkB,CAAC,KAAK,CAAC,CACrD,EAAA,CAAA,CAAA;;;;"}
package/Snackbar.d.ts ADDED
@@ -0,0 +1,12 @@
1
+ import './Snackbar.css';
2
+ import { PureComponent } from "./ReactConstants";
3
+ export interface SnackbarProps {
4
+ className?: string;
5
+ text?: string;
6
+ container?: Element;
7
+ }
8
+ declare class Snackbar extends PureComponent<SnackbarProps> {
9
+ constructor(properties: any);
10
+ show(text: string, className: string): void;
11
+ }
12
+ export default Snackbar;
package/Snackbar.js CHANGED
@@ -1,68 +1,46 @@
1
- import ReactConstants from "./ReactConstants"; import {clientHeight as __clientHeight, clientWidth as __clientWidth, createAccessor as __createAccessor, data as __data, height as __height, left as __left, length as __length, pageX as __pageX, pageY as __pageY, props as __props, scrollLeft as __scrollLeft, scrollTop as __scrollTop, state as __state, style as __style, target as __target, top as __top, value as __value, width as __width} from "./CommonFields"; import {toConsumableArray as __toConsumableArray} from "./_virtual/_rollupPluginBabelHelpers"; import {extends as __extends} from "./_virtual/_rollupPluginBabelHelpers"; import {inherits as __inherits} from "./_virtual/_rollupPluginBabelHelpers"; import './Snackbar.css'; import { inherits as _inherits, createSuper as _createSuper, createClass as _createClass, classCallCheck as _classCallCheck, assertThisInitialized as _assertThisInitialized, slicedToArray as _slicedToArray } from './_virtual/_rollupPluginBabelHelpers.js';
2
- import 'react';
1
+ import ReactConstants from "./ReactConstants"; import {clientHeight as __clientHeight, clientWidth as __clientWidth, createAccessor as __createAccessor, data as __data, height as __height, left as __left, length as __length, pageX as __pageX, pageY as __pageY, props as __props, scrollLeft as __scrollLeft, scrollTop as __scrollTop, state as __state, style as __style, target as __target, top as __top, value as __value, width as __width} from "./CommonFields"; import {toConsumableArray as __toConsumableArray} from "./_virtual/_rollupPluginBabelHelpers"; import {extends as __extends} from "./_virtual/_rollupPluginBabelHelpers"; import {inherits as __inherits} from "./_virtual/_rollupPluginBabelHelpers"; import './Snackbar.css'; import { jsx as jsxRuntime_2 } from 'react/jsx-runtime';
3
2
  import ReactDOM from 'react-dom';
4
- import ReactCreateElement from './ReactCreateElement.js';
5
- import PropTypes from 'prop-types';
6
3
  import { clearTimeout, classNames, setTimeout } from './Tools.js';
7
- import { stateGSs, componentWillUnmount, render, props, className, PureComponent } from './ReactConstants.js';
4
+ import { PureComponent, stateGSs, componentWillUnmount, render, props, className } from './ReactConstants.js';
8
5
 
9
- var shown = 'shown';
10
- var Snackbar = function (_PureComponent) {
11
- _inherits(Snackbar, _PureComponent);
12
- var _super = _createSuper(Snackbar);
13
- function Snackbar(properties) {
14
- var _this;
15
- _classCallCheck(this, Snackbar);
16
- _this = _super.call(this, properties);
17
- var that = _assertThisInitialized(_this);
18
- that.state = {};
19
- var _stateGSs = stateGSs(_assertThisInitialized(_this), 3),
20
- _stateGSs2 = _slicedToArray(_stateGSs, 3),
21
- isShow = _stateGSs2[0],
22
- getText = _stateGSs2[1],
23
- clazzName = _stateGSs2[2];
24
- var timeout;
25
- that[ReactConstants[1]] = function () {
26
- clearTimeout(timeout);
27
- };
28
- that[ReactConstants[3]] = function () {
29
- var _props = props(that);
30
- var container = _props.container;
31
- var el = ReactCreateElement("div", {
32
- [ReactConstants[5]]: classNames("Snackbar", _props[ReactConstants[5]], isShow() && shown, clazzName())
33
- }, ReactCreateElement("div", {
34
- [ReactConstants[5]]: "message"
35
- }, getText() || _props.text));
36
- return container ? ReactDOM.createPortal(el, container) : el;
37
- };
38
- var hide = function hide() {
39
- isShow(false);
40
- clazzName(null);
41
- };
42
- that.show = function (text, className) {
43
- if (isShow()) {
44
- clearTimeout(timeout);
45
- isShow(false);
46
- timeout = setTimeout(that.show, 260, text, className);
47
- } else {
48
- isShow(true);
49
- getText(text);
50
- clazzName(className);
51
- timeout = setTimeout(hide, 3000);
52
- }
53
- };
54
- return _this;
55
- }
56
- return _createClass(Snackbar);
57
- }(PureComponent);
58
- if (process.env.NODE_ENV !== 'production') {
59
- Snackbar.propTypes = {
60
- [ReactConstants[5]]: PropTypes.string,
61
- text: PropTypes.string,
62
- container: PropTypes.node
63
- };
6
+ const shown = 'shown';
7
+ class Snackbar extends PureComponent {
8
+ constructor(properties) {
9
+ super(properties);
10
+ const that = this;
11
+ that.state = {};
12
+ const [isShow, getText, clazzName] = stateGSs(this, 3);
13
+ let timeout;
14
+ that[ReactConstants[1]] = () => {
15
+ clearTimeout(timeout);
16
+ };
17
+ that[ReactConstants[3]] = () => {
18
+ const _props = props(that);
19
+ const { container } = _props;
20
+ const el = jsxRuntime_2("div", __extends({ [ReactConstants[5]]: classNames(`Snackbar`, _props[ReactConstants[5]], isShow() && shown, clazzName()) }, { [ReactConstants[4]]: jsxRuntime_2("div", __extends({ [ReactConstants[5]]: "message" }, { [ReactConstants[4]]: getText() || _props.text })) }));
21
+ return container ? ReactDOM.createPortal(el, container) : el;
22
+ };
23
+ const hide = () => {
24
+ isShow(false);
25
+ clazzName(null);
26
+ };
27
+ that.show = (text, className) => {
28
+ if (isShow()) {
29
+ clearTimeout(timeout);
30
+ isShow(false);
31
+ timeout = setTimeout(that.show, 260, text, className);
32
+ }
33
+ else {
34
+ isShow(true);
35
+ getText(text);
36
+ clazzName(className);
37
+ timeout = setTimeout(hide, 3000);
38
+ }
39
+ };
40
+ }
41
+ show(text, className) {
42
+ }
64
43
  }
65
- var Snackbar$1 = Snackbar;
66
44
 
67
- export { Snackbar$1 as default };
45
+ export { Snackbar as default };
68
46
  //# sourceMappingURL=Snackbar.js.map