react-ui-basics 0.0.173 → 0.0.176

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 (141) hide show
  1. package/Animated.js.map +1 -0
  2. package/AutocompleteSelect.js.map +1 -0
  3. package/Button.js.map +1 -0
  4. package/Checkbox.js.map +1 -0
  5. package/CircleProgress.js.map +1 -0
  6. package/CommonFields.js.map +1 -0
  7. package/DNDContainer.js.map +1 -0
  8. package/DNDDraggable.js.map +1 -0
  9. package/DNDDroppable.js.map +1 -0
  10. package/Dialog.js.map +1 -0
  11. package/DropFileInput.js.map +1 -0
  12. package/DroppableHorizontalList.js.map +1 -0
  13. package/DroppableList.js.map +1 -0
  14. package/Dropzone.js.map +1 -0
  15. package/FilteredList.js.map +1 -0
  16. package/FloatingActionButton.js.map +1 -0
  17. package/FormUploadProgress.js.map +1 -0
  18. package/ImageGallery.js.map +1 -0
  19. package/MaterialIcon.js.map +1 -0
  20. package/Modal.js.map +1 -0
  21. package/ModalMenu.js.map +1 -0
  22. package/ReactConstants.js.map +1 -0
  23. package/ReactCreateElement.js.map +1 -0
  24. package/ReadyListener.js.map +1 -0
  25. package/Scrollable.js.map +1 -0
  26. package/ScrollableTable.js.map +1 -0
  27. package/Size.js.map +1 -0
  28. package/Snackbar.js.map +1 -0
  29. package/SpinningProgress.js.map +1 -0
  30. package/Switch.js.map +1 -0
  31. package/Table.d.ts +17 -2
  32. package/Table.js +27 -14
  33. package/Table.js.map +1 -0
  34. package/TextField.js +4 -2
  35. package/TextField.js.map +1 -0
  36. package/Tools.d.ts +2 -2
  37. package/Tools.js.map +1 -0
  38. package/bundle.css +505 -505
  39. package/index.js.map +1 -0
  40. package/package.json +4 -4
  41. package/router/HistoryTools.js.map +1 -1
  42. package/router/Link.js.map +1 -1
  43. package/router/NavLink.js.map +1 -1
  44. package/router/Route.js.map +1 -1
  45. package/router/index.js.map +1 -1
  46. package/src/Animated.css +7 -0
  47. package/src/Animated.js +219 -0
  48. package/src/Animated.scss +8 -0
  49. package/src/AutocompleteSelect.css +256 -0
  50. package/src/AutocompleteSelect.js +473 -0
  51. package/src/AutocompleteSelect.scss +322 -0
  52. package/src/Button.css +138 -0
  53. package/src/Button.js +104 -0
  54. package/src/Button.scss +177 -0
  55. package/src/Checkbox.css +56 -0
  56. package/src/Checkbox.js +52 -0
  57. package/src/Checkbox.scss +87 -0
  58. package/src/CircleProgress.css +11 -0
  59. package/src/CircleProgress.js +38 -0
  60. package/src/CircleProgress.scss +13 -0
  61. package/src/CommonFields.js +21 -0
  62. package/src/DNDContainer.css +26 -0
  63. package/src/DNDContainer.js +263 -0
  64. package/src/DNDContainer.scss +33 -0
  65. package/src/DNDDraggable.js +55 -0
  66. package/src/DNDDroppable.js +58 -0
  67. package/src/Dialog.css +36 -0
  68. package/src/Dialog.js +160 -0
  69. package/src/Dialog.scss +42 -0
  70. package/src/DropFileInput.css +24 -0
  71. package/src/DropFileInput.js +45 -0
  72. package/src/DropFileInput.scss +28 -0
  73. package/src/DroppableHorizontalList.js +190 -0
  74. package/src/DroppableList.css +14 -0
  75. package/src/DroppableList.js +201 -0
  76. package/src/DroppableList.scss +27 -0
  77. package/src/Dropzone.css +54 -0
  78. package/src/Dropzone.js +140 -0
  79. package/src/Dropzone.scss +66 -0
  80. package/src/FilteredList.css +68 -0
  81. package/src/FilteredList.js +196 -0
  82. package/src/FilteredList.scss +86 -0
  83. package/src/FloatingActionButton.css +20 -0
  84. package/src/FloatingActionButton.js +35 -0
  85. package/src/FloatingActionButton.scss +25 -0
  86. package/src/FormUploadProgress.css +61 -0
  87. package/src/FormUploadProgress.js +87 -0
  88. package/src/FormUploadProgress.scss +78 -0
  89. package/src/ImageGallery.css +196 -0
  90. package/src/ImageGallery.js +935 -0
  91. package/src/ImageGallery.scss +256 -0
  92. package/src/MaterialIcon.js +1837 -0
  93. package/src/Modal.css +61 -0
  94. package/src/Modal.js +160 -0
  95. package/src/Modal.scss +73 -0
  96. package/src/ModalMenu.css +30 -0
  97. package/src/ModalMenu.js +59 -0
  98. package/src/ModalMenu.scss +36 -0
  99. package/src/ReactConstants.ts +42 -0
  100. package/src/ReactCreateElement.js +5 -0
  101. package/src/ReadyListener.js +53 -0
  102. package/src/ResizeObserver.ts +50 -0
  103. package/src/Scrollable.css +80 -0
  104. package/src/Scrollable.js +388 -0
  105. package/src/Scrollable.scss +100 -0
  106. package/src/ScrollableTable.css +6 -0
  107. package/src/ScrollableTable.scss +12 -0
  108. package/src/ScrollableTable.tsx +39 -0
  109. package/src/Size.js +56 -0
  110. package/src/Snackbar.css +40 -0
  111. package/src/Snackbar.js +71 -0
  112. package/src/Snackbar.scss +47 -0
  113. package/src/SpinningProgress.css +49 -0
  114. package/src/SpinningProgress.js +19 -0
  115. package/src/SpinningProgress.scss +57 -0
  116. package/src/Switch.css +69 -0
  117. package/src/Switch.js +54 -0
  118. package/src/Switch.scss +73 -0
  119. package/src/Table.css +94 -0
  120. package/src/Table.scss +121 -0
  121. package/src/Table.tsx +360 -0
  122. package/src/TextField.css +122 -0
  123. package/src/TextField.js +162 -0
  124. package/src/TextField.scss +160 -0
  125. package/src/Tools.test.js +105 -0
  126. package/src/Tools.ts +231 -0
  127. package/src/global.css +1 -0
  128. package/src/global.scss +6 -0
  129. package/src/index.js +78 -0
  130. package/src/router/HistoryTools.js +32 -0
  131. package/src/router/Link.js +27 -0
  132. package/src/router/NavLink.js +25 -0
  133. package/src/router/README.md +55 -0
  134. package/src/router/Route.js +209 -0
  135. package/src/router/Route.test.js +139 -0
  136. package/src/router/index.js +14 -0
  137. package/src/store/ProxyTools.js +91 -0
  138. package/src/store/ProxyTools.test.js +97 -0
  139. package/src/store/Store.ts +91 -0
  140. package/store/ProxyTools.js.map +1 -1
  141. package/store/Store.js.map +1 -1
@@ -0,0 +1,140 @@
1
+ import ReactConstants from "./../ReactConstants";
2
+ 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";
3
+ import React from 'react';
4
+ import {toConsumableArray as __toConsumableArray} from "./../_virtual/_rollupPluginBabelHelpers";
5
+ import {extends as __extends} from "./../_virtual/_rollupPluginBabelHelpers";
6
+ import {inherits as __inherits} from "./../_virtual/_rollupPluginBabelHelpers";
7
+ import './Dropzone.css';
8
+ import PropTypes from "prop-types";
9
+ import ReactCreateElement from './ReactCreateElement';
10
+ import './Dropzone.css'
11
+ import {classNames, setOf, preventDefault, stopPropagation, UNDEFINED, createRef} from "./Tools";
12
+ import {propsGetter, PureComponent, render, stateGS} from "./ReactConstants";
13
+
14
+ const toArray = (o) => {
15
+ if (o instanceof Array)
16
+ return o;
17
+
18
+ const l = [];
19
+ for (let i = 0; i < __length(o); i++) {
20
+ l.push(o[i])
21
+ }
22
+ return l;
23
+ };
24
+
25
+ const prevent = (e) => {
26
+ preventDefault(e);
27
+ stopPropagation(e);
28
+ return false;
29
+ };
30
+
31
+ const ignoredTypes = setOf([
32
+ 'text',
33
+ 'Text',
34
+ 'text/plain',
35
+ ]);
36
+
37
+ const ignore = dt => dt && (!dt.types[0] || ignoredTypes[dt.types[0]]);
38
+
39
+ class Dropzone extends PureComponent {
40
+
41
+ constructor(properties) {
42
+ super(properties);
43
+ const that = this;
44
+ that.state = {};
45
+
46
+ let entries = [];
47
+
48
+ const props = propsGetter(that);
49
+ const isDragging = stateGS(that);
50
+
51
+ const onDrop = (e) => {
52
+ const dt = e.dataTransfer;
53
+ const files = toArray(dt && dt.files || __target(e).files);
54
+ props().onDrop(files);
55
+ isDragging(false);
56
+ entries = [];
57
+ prevent(e);
58
+ };
59
+ const onDragOver = (e) => {
60
+ const dt = e.dataTransfer;
61
+ if (ignore(dt)) return;
62
+
63
+ dt && (dt.dropEffect = 'copy');
64
+ !isDragging() && isDragging(true);
65
+ prevent(e);
66
+ };
67
+ const onDragEnter = (e) => {
68
+ const dt = e.dataTransfer;
69
+ if (ignore(dt)) return;
70
+ if (entries.indexOf(__target(e)) === -1) {
71
+ entries.push(__target(e))
72
+ }
73
+
74
+ dt && (dt.dropEffect = 'copy');
75
+ !isDragging() && isDragging(true);
76
+ prevent(e);
77
+ };
78
+ const onDragLeave = (e) => {
79
+ entries = entries.filter(el => el !== __target(e));
80
+
81
+ if (__length(entries) === 0)
82
+ isDragging(false);
83
+
84
+ prevent(e)
85
+ };
86
+
87
+ const inputRef = createRef()
88
+
89
+ that[ReactConstants[3]] = () => {
90
+ const {children, className, disabled, clickable, multiple, droppable, overlayLabel, accept} = props();
91
+
92
+ return <div className={classNames('Dropzone', className, isDragging() && 'dragging')}
93
+ onDragLeave={!disabled && droppable && onDragLeave || UNDEFINED}
94
+ onDragOver={!disabled && droppable && onDragOver || UNDEFINED}
95
+ onDragEnter={!disabled && droppable && onDragEnter || UNDEFINED}
96
+ onDrop={!disabled && droppable && onDrop || UNDEFINED}
97
+ >
98
+ {overlayLabel && <div className="overlay">
99
+ <div className={'drop'}>
100
+ {overlayLabel}
101
+ </div>
102
+ </div>}
103
+ {!disabled && clickable && <input className={'file'}
104
+ ref={inputRef}
105
+ type="file"
106
+ accept={accept}
107
+ multiple={!!multiple}
108
+ onClick={() => {
109
+ inputRef().value = '';
110
+ }}
111
+ onChange={onDrop}/>}
112
+ {children}
113
+ </div>
114
+ }
115
+ }
116
+ }
117
+
118
+ Dropzone.defaultProps = {
119
+ clickable: true,
120
+ multiple: true,
121
+ droppable: true,
122
+ };
123
+
124
+ if (process.env.NODE_ENV !== 'production') {
125
+ Dropzone.propTypes = {
126
+ [ReactConstants[5]]: PropTypes.string,
127
+ overlayLabel: PropTypes.oneOfType([
128
+ PropTypes.string,
129
+ PropTypes.element
130
+ ]),
131
+ clickable: PropTypes.bool,
132
+ droppable: PropTypes.bool,
133
+ multiple: PropTypes.bool,
134
+ disabled: PropTypes.bool,
135
+ onDrop: PropTypes.func.isRequired,
136
+ accept: PropTypes.string,
137
+ };
138
+ }
139
+
140
+ export default Dropzone;
@@ -0,0 +1,66 @@
1
+ .Dropzone {
2
+ position: relative;
3
+
4
+ > .overlay {
5
+ position: absolute;
6
+ left: 0;
7
+ right: 0;
8
+ top: 0;
9
+ bottom: 0;
10
+ background-color: #38ADC4;
11
+ z-index: 1;
12
+ opacity: 0;
13
+ transition: all 0.2s ease;
14
+ transition-delay: 100ms;
15
+ visibility: hidden;
16
+
17
+ display: flex;
18
+ justify-content: center;
19
+ align-items: center;
20
+
21
+
22
+ .drop {
23
+ border-radius: 4px;
24
+ border: 1px dashed #FFFFFF;
25
+ position: absolute;
26
+ top: 18px;
27
+ left: 18px;
28
+ right: 18px;
29
+ bottom: 18px;
30
+
31
+ display: flex;
32
+ justify-content: center;
33
+ align-items: center;
34
+
35
+ font-weight: 500;
36
+ font-size: 18px;
37
+
38
+ color: #FFFFFF;
39
+ }
40
+ }
41
+
42
+ &.dragging {
43
+ > .overlay {
44
+ opacity: 0.7;
45
+ visibility: visible;
46
+ transition-delay: 0s;
47
+ }
48
+
49
+ > * {
50
+ pointer-events: none;
51
+ }
52
+ }
53
+
54
+ > input.file {
55
+ position: absolute;
56
+ left: 0;
57
+ right: 0;
58
+ top: 0;
59
+ bottom: 0;
60
+ width: 100%;
61
+ height: 100%;
62
+ opacity: 0;
63
+ cursor: pointer;
64
+ z-index: 1;
65
+ }
66
+ }
@@ -0,0 +1,68 @@
1
+ .FilteredList {
2
+ max-height: 250px;
3
+ position: relative;
4
+ }
5
+ .FilteredList.popup {
6
+ padding: 0;
7
+ visibility: hidden;
8
+ position: absolute;
9
+ background: white;
10
+ z-index: 4;
11
+ box-shadow: 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12);
12
+ transition: all 0.2s ease-out;
13
+ top: calc(100% + 4px);
14
+ opacity: 0;
15
+ border-radius: 2px;
16
+ }
17
+ .FilteredList.popup.visible {
18
+ opacity: 1;
19
+ visibility: visible;
20
+ }
21
+ .FilteredList.inline {
22
+ max-height: 225px;
23
+ margin-top: 5px;
24
+ }
25
+ .FilteredList .child {
26
+ display: flex;
27
+ flex-flow: row nowrap;
28
+ align-items: center;
29
+ white-space: nowrap;
30
+ font-size: 14px;
31
+ color: #222222;
32
+ height: 30px;
33
+ padding: 5px 10px;
34
+ padding-right: 15px;
35
+ cursor: pointer;
36
+ overflow: hidden;
37
+ transition: 0.2s cubic-bezier(0.4, 0, 0.2, 1);
38
+ border-left: 5px solid #4AC263;
39
+ padding-left: 15px;
40
+ margin-left: -5px;
41
+ }
42
+ .FilteredList .child.hidden {
43
+ height: 0 !important;
44
+ padding: 0 !important;
45
+ }
46
+ .FilteredList .child.selected {
47
+ background-color: #F0F0F0;
48
+ padding-left: 10px;
49
+ margin-left: 0px;
50
+ }
51
+ .FilteredList .child.active {
52
+ background-color: #eeeeee;
53
+ }
54
+ .FilteredList .child {
55
+ margin-top: 8px;
56
+ }
57
+ .FilteredList .child.hidden {
58
+ margin-top: 0;
59
+ }
60
+ .FilteredList .child:not(.hidden) ~ .child {
61
+ margin-top: 0;
62
+ }
63
+ .FilteredList .child:not(.hidden) ~ .child:last-child {
64
+ margin-bottom: 8px;
65
+ }
66
+ .FilteredList .child:not(.hidden):last-child {
67
+ margin-bottom: 8px;
68
+ }
@@ -0,0 +1,196 @@
1
+ import ReactConstants from "./../ReactConstants";
2
+ 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";
3
+ import React from 'react';
4
+ import {toConsumableArray as __toConsumableArray} from "./../_virtual/_rollupPluginBabelHelpers";
5
+ import {extends as __extends} from "./../_virtual/_rollupPluginBabelHelpers";
6
+ import {inherits as __inherits} from "./../_virtual/_rollupPluginBabelHelpers";
7
+ import './FilteredList.css';
8
+ import ReactCreateElement from './ReactCreateElement';
9
+ import './FilteredList.css'
10
+ import Scrollable from "./Scrollable";
11
+ import {classNames, orNoop, ref, stopPropagation, isFunction, isObject} from "./Tools";
12
+ import {PureComponent} from "./ReactConstants";
13
+
14
+ export const getLabel = (labels, id) => isFunction(labels) ? labels(id) : labels[id]
15
+
16
+ class FilteredList extends PureComponent {
17
+
18
+ static defaultProps = {
19
+ data: [],
20
+ labels: {},
21
+ selected: {},
22
+ inline: false,
23
+ selectSingle: true,
24
+ filter: () => true,
25
+ };
26
+
27
+ constructor(props) {
28
+ super(props);
29
+ this.state = {selected: -1};
30
+ this.hidden = {};
31
+ this.elements = {};
32
+ }
33
+
34
+ componentDidMount() {
35
+ orNoop(__props(this).nextProvider)(this.next);
36
+ orNoop(__props(this).prevProvider)(this.prev);
37
+ orNoop(__props(this).selectedProvider)(this.selected);
38
+ orNoop(__props(this).resetProvider)(this.reset);
39
+
40
+ this.updateList(__props(this))
41
+ }
42
+
43
+ componentDidUpdate(prevProps, prevState, snapshot) {
44
+ if (__props(this).data === __data(prevProps))
45
+ return;
46
+
47
+ this.updateList(__props(this))
48
+ }
49
+
50
+ updateList = (props) => {
51
+ const {data} = props;
52
+ const {selected} = __state(this);
53
+ this.list = data || [];
54
+
55
+ if (!this.list.includes(selected))
56
+ this.setState({selected: -1})
57
+ };
58
+
59
+ render() {
60
+ const {data, labels, filter, className, selected, inline, childComponent, childProps, style, scroll} = __props(this);
61
+ return (
62
+ <Scrollable className={classNames('FilteredList', className, inline ? 'inline' : 'popup')}
63
+ ref={ref('el', this)} style={style} scrollBarMode={scroll}>
64
+ {(data || []).filter(id => id !== false && id != null).map(id => <ItemWrapper
65
+ id={id}
66
+ key={id}
67
+ label={getLabel(labels, id)}
68
+ childComponent={childComponent}
69
+ childProps={childProps}
70
+ element={el => this.elements[id] = el}
71
+ onClick={e => {
72
+ stopPropagation(e);
73
+ this.onSelect(id);
74
+ }}
75
+ onMouseEnter={e => this.setState({selected: id})}
76
+ onMouseLeave={e => id === __state(this).selected && this.setState({selected: -1})}
77
+ className={classNames('child', __state(this).selected === id && 'active', selected === id || (isObject(selected) && selected[id]) && 'selected')}
78
+ classProvider={it => (this.hidden[id] = !filter(it)) && 'hidden'}
79
+ />)}
80
+ </Scrollable>
81
+ )
82
+ }
83
+
84
+ onSelect = (id) => {
85
+ this.setState({selected: id});
86
+ __props(this).onSelect(id);
87
+ };
88
+
89
+ selected = () => {
90
+ const {selected: value} = __state(this);
91
+ const {selectSingle} = __props(this);
92
+
93
+
94
+ if (value === -1 || this.hidden[value]) {
95
+ let filtered = this.list.filter(id => !this.hidden[id]);
96
+ if (selectSingle && __length(filtered) === 1)
97
+ return filtered[0];
98
+
99
+ return null;
100
+ } else {
101
+ return value;
102
+ }
103
+ };
104
+
105
+ next = () => {
106
+ const list = this.list;
107
+ const selected = __state(this).selected;
108
+ let position = list.findIndex(id => selected === id);
109
+ if (this.hidden[list[position]])
110
+ position = -1;
111
+
112
+ while (++position < __length(list)) {
113
+ if (!this.hidden[list[position]])
114
+ break
115
+ }
116
+ if (position < __length(list)) {
117
+ let id = list[position];
118
+ this.setState({selected: id});
119
+ this.updateScroll(id)
120
+ }
121
+ };
122
+
123
+ prev = () => {
124
+ const list = this.list;
125
+ const selected = __state(this).selected;
126
+ let position = list.findIndex(id => selected === id);
127
+ if (this.hidden[list[position]])
128
+ position = __length(list);
129
+
130
+ while (--position >= 0) {
131
+ if (!this.hidden[list[position]])
132
+ break
133
+ }
134
+ if (position >= 0) {
135
+ let id = list[position];
136
+ this.setState({selected: id});
137
+ this.updateScroll(id)
138
+ }
139
+ };
140
+
141
+ updateScroll = (id) => {
142
+ let child = this.elements[id];
143
+ let container = this.el;
144
+ const scrollTop = container.getScroll();
145
+ const height = container.getHeight();
146
+ let isVisible = scrollTop <= child.offsetTop && scrollTop + height >= child.offsetTop + __clientHeight(child);
147
+ if (!isVisible) {
148
+ let scrollToBottom = child.offsetTop + __clientHeight(child) - height;
149
+ let scrollToTop = child.offsetTop;
150
+ if (Math.abs(scrollTop - scrollToTop) < Math.abs(scrollTop - scrollToBottom)) {
151
+ container.setScroll(scrollToTop)
152
+ } else {
153
+ container.setScroll(scrollToBottom)
154
+ }
155
+ }
156
+ };
157
+
158
+ reset = () => {
159
+ this.setState({selected: -1});
160
+ this.el.scrollTop = 0;
161
+ };
162
+
163
+ scrollTo = (id) => this.el.setScroll(this.elements[id] && this.elements[id].offsetTop);
164
+ }
165
+
166
+ export default FilteredList;
167
+
168
+ class ItemWrapper extends React.Component {
169
+ render() {
170
+ const {id, label, onClick, onMouseDown, onMouseEnter, onMouseLeave, classProvider, className, childComponent, childProps} = __props(this);
171
+ const child = React.createElement(childComponent, {
172
+ ...childProps,
173
+ id,
174
+ label,
175
+ dataConsumer: (data) => this.data = data,
176
+ });
177
+
178
+ const cssClass = orNoop(classProvider)(__data(this));
179
+ return (
180
+ <div className={classNames('ItemWrapper', cssClass, className)}
181
+ onMouseEnter={onMouseEnter}
182
+ onMouseLeave={onMouseLeave}
183
+ onMouseDown={onMouseDown}
184
+ onClick={onClick}
185
+ ref={ref('el', this)}
186
+ >
187
+ {child}
188
+ </div>
189
+ )
190
+ }
191
+
192
+ componentDidMount() {
193
+ orNoop(__props(this).element)(this.el);
194
+ this.forceUpdate();
195
+ }
196
+ }
@@ -0,0 +1,86 @@
1
+ @import "./global.scss";
2
+
3
+ .FilteredList {
4
+ max-height: 250px;
5
+ position: relative;
6
+
7
+ &.popup {
8
+ padding: 0;
9
+ visibility: hidden;
10
+ position: absolute;
11
+ background: white;
12
+ z-index: 4;
13
+ box-shadow: 0 3px 1px -2px rgba(0, 0, 0, .2), 0 2px 2px 0 rgba(0, 0, 0, .14), 0 1px 5px 0 rgba(0, 0, 0, .12);
14
+ transition: all 0.2s ease-out;
15
+ top: calc(100% + 4px);
16
+ opacity: 0;
17
+ border-radius: 2px;
18
+
19
+ &.visible {
20
+ opacity: 1;
21
+ visibility: visible;
22
+ }
23
+ }
24
+
25
+ &.inline {
26
+ max-height: 225px;
27
+ margin-top: 5px;
28
+ }
29
+
30
+ .child {
31
+ display: flex;
32
+ flex-flow: row nowrap;
33
+ align-items: center;
34
+ white-space: nowrap;
35
+
36
+ font-size: 14px;
37
+ color: rgb(34, 34, 34);
38
+ height: 30px;
39
+ padding: 5px 10px;
40
+ padding-right: 15px;
41
+ cursor: pointer;
42
+ overflow: hidden;
43
+ transition: 0.2s cubic-bezier(.4, 0, .2, 1);
44
+
45
+ border-left: 5px solid #4AC263;
46
+ padding-left: 15px;
47
+ margin-left: -5px;
48
+
49
+ &.hidden {
50
+ height: 0 !important;
51
+ padding: 0 !important;
52
+ }
53
+
54
+ &.selected {
55
+ background-color: #F0F0F0;
56
+ padding-left: 10px;
57
+ margin-left: 0px;
58
+ }
59
+
60
+ &.active {
61
+ background-color: rgb(238, 238, 238);
62
+ }
63
+ }
64
+
65
+ .child {
66
+ margin-top: 8px;
67
+
68
+ &.hidden {
69
+ margin-top: 0;
70
+ }
71
+
72
+ &:not(.hidden) {
73
+ ~ .child {
74
+ margin-top: 0;
75
+
76
+ &:last-child {
77
+ margin-bottom: 8px;
78
+ }
79
+ }
80
+
81
+ &:last-child {
82
+ margin-bottom: 8px;
83
+ }
84
+ }
85
+ }
86
+ }
@@ -0,0 +1,20 @@
1
+ .Button.FloatingActionButton {
2
+ position: absolute;
3
+ right: 16px;
4
+ bottom: 16px;
5
+ width: 56px;
6
+ height: 56px;
7
+ padding: 16px;
8
+ transition: bottom 0.2s cubic-bezier(0.4, 0, 0.2, 1);
9
+ }
10
+ .Button.FloatingActionButton.raised {
11
+ transition: bottom 0.2s cubic-bezier(0.4, 0, 0.2, 1), color 0.2s ease-out, background-color 0.2s ease-out, box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);
12
+ }
13
+ .Button.FloatingActionButton.mini {
14
+ width: 40px;
15
+ height: 40px;
16
+ padding: 8px;
17
+ }
18
+ .Button.FloatingActionButton.hidden {
19
+ bottom: -100px;
20
+ }
@@ -0,0 +1,35 @@
1
+ import ReactConstants from "./../ReactConstants";
2
+ 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";
3
+ import React from 'react';
4
+ import {toConsumableArray as __toConsumableArray} from "./../_virtual/_rollupPluginBabelHelpers";
5
+ import {extends as __extends} from "./../_virtual/_rollupPluginBabelHelpers";
6
+ import {inherits as __inherits} from "./../_virtual/_rollupPluginBabelHelpers";
7
+ import './FloatingActionButton.css';
8
+ import ReactCreateElement from './ReactCreateElement';
9
+ import PropTypes from 'prop-types';
10
+ import './FloatingActionButton.css'
11
+ import Button from "./Button";
12
+ import {classNames} from "./Tools";
13
+ import MaterialIcon from "./MaterialIcon";
14
+
15
+ const FloatingActionButton = ({icon, onClick, mini, className, hidden}) => {
16
+ return <Button onClick={onClick} round={true} className={classNames("FloatingActionButton", className, mini && 'mini', hidden && 'hidden')}>
17
+ <MaterialIcon icon={icon}/>
18
+ </Button>;
19
+ };
20
+
21
+ if (process.env.NODE_ENV !== 'production') {
22
+ FloatingActionButton.propTypes = {
23
+ icon: MaterialIcon.propTypes.icon,
24
+ mini: PropTypes.bool,
25
+ hidden: PropTypes.bool,
26
+ };
27
+ }
28
+
29
+ FloatingActionButton.defaultProps = {
30
+ icon: 'add',
31
+ mini: false,
32
+ hidden: false,
33
+ };
34
+
35
+ export default FloatingActionButton;
@@ -0,0 +1,25 @@
1
+ .Button.FloatingActionButton {
2
+ position: absolute;
3
+ right: 16px;
4
+ bottom: 16px;
5
+
6
+ width: 56px;
7
+ height: 56px;
8
+ padding: 16px;
9
+
10
+ transition: bottom 0.2s cubic-bezier(0.4, 0, 0.2, 1);
11
+
12
+ &.raised {
13
+ transition: bottom 0.2s cubic-bezier(0.4, 0, 0.2, 1), color 0.2s ease-out, background-color 0.2s ease-out, box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1)
14
+ }
15
+
16
+ &.mini {
17
+ width: 40px;
18
+ height: 40px;
19
+ padding: 8px;
20
+ }
21
+
22
+ &.hidden {
23
+ bottom: -100px;
24
+ }
25
+ }
@@ -0,0 +1,61 @@
1
+ .FormUploadProgress {
2
+ position: absolute;
3
+ left: 0;
4
+ right: 0;
5
+ top: 0;
6
+ bottom: 0;
7
+ background-color: rgba(255, 255, 255, 0.6);
8
+ z-index: 2;
9
+ }
10
+ .FormUploadProgress.animated.mounting, .FormUploadProgress.animated.mounted {
11
+ transition-delay: 500ms;
12
+ }
13
+ .FormUploadProgress .wrapper {
14
+ position: sticky;
15
+ top: 40%;
16
+ margin-top: 40%;
17
+ margin-left: 50%;
18
+ transform: translateX(-50%);
19
+ display: flex;
20
+ flex-flow: column;
21
+ justify-content: center;
22
+ align-items: center;
23
+ }
24
+ .FormUploadProgress .wrapper .CircleProgress, .FormUploadProgress .wrapper .SpinningProgress {
25
+ position: absolute;
26
+ width: 107px;
27
+ height: 107px;
28
+ top: 0;
29
+ left: 0;
30
+ }
31
+ .FormUploadProgress .wrapper .CircleProgress .line, .FormUploadProgress .wrapper .SpinningProgress .line {
32
+ stroke: #2196F3;
33
+ }
34
+ .FormUploadProgress .wrapper > .progress {
35
+ width: 107px;
36
+ height: 107px;
37
+ min-height: 107px;
38
+ display: flex;
39
+ justify-content: center;
40
+ align-items: center;
41
+ box-shadow: 0px 4px 10px rgba(0, 0, 0, 0.25);
42
+ border-radius: 50%;
43
+ background: white;
44
+ position: relative;
45
+ }
46
+ .FormUploadProgress .wrapper > .progress > .value {
47
+ display: inline-block;
48
+ margin-top: 5px;
49
+ font-weight: bold;
50
+ line-height: 16px;
51
+ font-size: 13px;
52
+ text-align: center;
53
+ color: #818181;
54
+ }
55
+ .FormUploadProgress .wrapper .cancel {
56
+ min-width: 107px;
57
+ margin-top: 20px;
58
+ background-color: white;
59
+ color: #F96B5C;
60
+ box-shadow: 0px 4px 10px rgba(0, 0, 0, 0.25);
61
+ }