react-ui-basics 0.0.208 → 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 (87) 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 +13 -6
  39. package/Scrollable.js.map +1 -1
  40. package/Size.d.ts +8 -0
  41. package/Size.js +36 -35
  42. package/Size.js.map +1 -1
  43. package/Snackbar.d.ts +12 -0
  44. package/Snackbar.js +40 -62
  45. package/Snackbar.js.map +1 -1
  46. package/SpinningProgress.d.ts +4 -0
  47. package/SpinningProgress.js +3 -18
  48. package/SpinningProgress.js.map +1 -1
  49. package/Switch.d.ts +17 -0
  50. package/Switch.js +13 -60
  51. package/Switch.js.map +1 -1
  52. package/Table.js +1 -1
  53. package/Table.js.map +1 -1
  54. package/TextField.js.map +1 -1
  55. package/Tools.d.ts +1 -1
  56. package/Tools.js.map +1 -1
  57. package/_virtual/_rollupPluginBabelHelpers.js.map +1 -1
  58. package/bundle.css +902 -898
  59. package/package.json +22 -22
  60. package/router/HistoryTools.js.map +1 -1
  61. package/router/Link.js.map +1 -1
  62. package/router/NavLink.js.map +1 -1
  63. package/router/Route.js.map +1 -1
  64. package/src/Checkbox.tsx +37 -0
  65. package/src/CircleProgress.tsx +29 -0
  66. package/src/{CommonFields.js → CommonFields.ts} +1 -1
  67. package/src/DropFileInput.tsx +32 -0
  68. package/src/FloatingActionButton.tsx +28 -0
  69. package/src/MaterialIcon.tsx +1830 -0
  70. package/src/{ModalMenu.js → ModalMenu.tsx} +18 -9
  71. package/src/Scrollable.css +3 -0
  72. package/src/Scrollable.js +16 -5
  73. package/src/Scrollable.scss +4 -0
  74. package/src/{Size.js → Size.tsx} +24 -22
  75. package/src/{Snackbar.js → Snackbar.tsx} +22 -16
  76. package/src/SpinningProgress.tsx +13 -0
  77. package/src/Switch.tsx +42 -0
  78. package/src/Table.tsx +1 -1
  79. package/src/Tools.ts +1 -1
  80. package/store/ProxyTools.js.map +1 -1
  81. package/src/Checkbox.js +0 -46
  82. package/src/CircleProgress.js +0 -32
  83. package/src/DropFileInput.js +0 -39
  84. package/src/FloatingActionButton.js +0 -29
  85. package/src/MaterialIcon.js +0 -1832
  86. package/src/SpinningProgress.js +0 -13
  87. 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 CHANGED
@@ -8,6 +8,7 @@ import { stateGS, componentDidMount, componentWillUnmount, componentDidUpdate, r
8
8
  var SCROLLBAR_MODE_HIDDEN = 'hidden';
9
9
  var SCROLLBAR_MODE_VISIBLE = 'visible';
10
10
  var SCROLLBAR_MODE_AUTO = 'auto';
11
+ var SCROLLBAR_RESIZE_DISABLED = 'disabled';
11
12
  var NATIVE_SCROLL_WIDTH = -1;
12
13
  var NATIVE_SCROLL_HEIGHT = -1;
13
14
  var WITHOUT_SCROLL = 'without-scroll';
@@ -260,11 +261,17 @@ var Scrollable = function (_PureComponent) {
260
261
  var position = __scrollLeft(viewport) / (scrollWidth - offsetWidth);
261
262
  styleOf(thumbH).left = position * (scrollbarWidth - offsetWidthOf(thumbH)) + 'px';
262
263
  };
263
- initTimeout = setTimeout(function () {
264
- resizeInterval = setInterval(function () {
264
+ var update;
265
+ var sbm = scrollBarModeOf(props());
266
+ var hsbm = horizontalScrollBarModeOf(props());
267
+ if (sbm !== SCROLLBAR_RESIZE_DISABLED && !hsbm === SCROLLBAR_RESIZE_DISABLED) {
268
+ update = function update() {
265
269
  updateVerticalScrollbar();
266
270
  updateHorizontalScrollbar();
267
- }, 50);
271
+ };
272
+ } else if (sbm !== SCROLLBAR_RESIZE_DISABLED) update = updateVerticalScrollbar;else update = updateVerticalScrollbar;
273
+ initTimeout = setTimeout(function () {
274
+ resizeInterval = setInterval(update, 50);
268
275
  }, 200);
269
276
  };
270
277
  that[ReactConstants[0]] = init;
@@ -320,8 +327,8 @@ Scrollable.defaultProps = {
320
327
  };
321
328
  if (process.env.NODE_ENV !== 'production') {
322
329
  Scrollable.propTypes = {
323
- scrollBarMode: PropTypes.oneOf([SCROLLBAR_MODE_AUTO, SCROLLBAR_MODE_HIDDEN, SCROLLBAR_MODE_VISIBLE]),
324
- horizontalScrollBarMode: PropTypes.oneOf([SCROLLBAR_MODE_AUTO, SCROLLBAR_MODE_HIDDEN, SCROLLBAR_MODE_VISIBLE]),
330
+ scrollBarMode: PropTypes.oneOf([SCROLLBAR_MODE_AUTO, SCROLLBAR_MODE_HIDDEN, SCROLLBAR_MODE_VISIBLE, SCROLLBAR_RESIZE_DISABLED]),
331
+ horizontalScrollBarMode: PropTypes.oneOf([SCROLLBAR_MODE_AUTO, SCROLLBAR_MODE_HIDDEN, SCROLLBAR_MODE_VISIBLE, SCROLLBAR_RESIZE_DISABLED]),
325
332
  [ReactConstants[5]]: PropTypes.string,
326
333
  style: PropTypes.object,
327
334
  onScrolledToBottom: PropTypes.func,
@@ -330,5 +337,5 @@ if (process.env.NODE_ENV !== 'production') {
330
337
  };
331
338
  }
332
339
 
333
- export { SCROLLBAR_MODE_AUTO, SCROLLBAR_MODE_HIDDEN, SCROLLBAR_MODE_VISIBLE, Scrollable$1 as default };
340
+ export { SCROLLBAR_MODE_AUTO, SCROLLBAR_MODE_HIDDEN, SCROLLBAR_MODE_VISIBLE, SCROLLBAR_RESIZE_DISABLED, Scrollable$1 as default };
334
341
  //# sourceMappingURL=Scrollable.js.map
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';\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 initTimeout = setTimeout(() => {\n resizeInterval = setInterval(() => {\n updateVerticalScrollbar();\n updateHorizontalScrollbar();\n }, 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]),\n horizontalScrollBarMode: PropTypes.oneOf([SCROLLBAR_MODE_AUTO, SCROLLBAR_MODE_HIDDEN, SCROLLBAR_MODE_VISIBLE]),\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","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","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;