react-ui-basics 0.0.137 → 0.0.141

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.
@@ -1,4 +1,4 @@
1
- import { inherits as _inherits, createSuper as _createSuper, classCallCheck as _classCallCheck, assertThisInitialized as _assertThisInitialized } from './_virtual/_rollupPluginBabelHelpers.js';
1
+ import { inherits as _inherits, createSuper as _createSuper, classCallCheck as _classCallCheck, assertThisInitialized as _assertThisInitialized, extends as _extends } from './_virtual/_rollupPluginBabelHelpers.js';
2
2
  import 'react';
3
3
  import ReactCreateElement from './ReactCreateElement.js';
4
4
  import Table from './Table.js';
@@ -18,9 +18,9 @@ var ScrollableTable = function (_PureComponent) {
18
18
  that[render] = function () {
19
19
  return ReactCreateElement("div", {
20
20
  className: "ScrollableTable"
21
- }, ReactCreateElement(Scrollable, {
21
+ }, ReactCreateElement(Scrollable, _extends({
22
22
  ref: scrollableRef
23
- }, ReactCreateElement(Table, props(that))));
23
+ }, props(that).scrollableProps), ReactCreateElement(Table, props(that))));
24
24
  };
25
25
  that.getScrollable = function () {
26
26
  return scrollableRef();
@@ -1 +1 @@
1
- {"version":3,"file":"ScrollableTable.js","sources":["../src/react-ui-basics/ScrollableTable.js"],"sourcesContent":["import React from 'react';\nimport ReactCreateElement from './ReactCreateElement';\nimport Table from \"./Table\";\nimport Scrollable from \"./Scrollable\";\nimport \"./ScrollableTable.css\";\nimport {props, render, PureComponent} from \"./ReactConstants\";\nimport {createRef} from \"./Tools\";\n\nclass ScrollableTable extends PureComponent {\n\n constructor(properties) {\n super(properties);\n const that = this;\n\n const scrollableRef = createRef();\n\n that[render] = () => {\n return <div className={`ScrollableTable`}>\n <Scrollable ref={scrollableRef}>\n <Table {...props(that)}/>\n </Scrollable>\n </div>;\n }\n that.getScrollable = () => scrollableRef()\n }\n}\n\nexport default ScrollableTable"],"names":["ScrollableTable","properties","that","scrollableRef","createRef","render","props","getScrollable","PureComponent"],"mappings":";;;;;;;;IAQMA;;;AAEF,2BAAYC,UAAZ,EAAwB;AAAA;AAAA;AACpB,8BAAMA,UAAN;AACA,QAAMC,IAAI,gCAAV;AAEA,QAAMC,aAAa,GAAGC,SAAS,EAA/B;AAEAF,IAAAA,IAAI,CAACG,MAAD,CAAJ,GAAe,YAAM;AACjB,aAAO;AAAK,QAAA,SAAS;AAAd,SACH,mBAAC,UAAD;AAAY,QAAA,GAAG,EAAEF;AAAjB,SACI,mBAAC,KAAD,EAAWG,KAAK,CAACJ,IAAD,CAAhB,CADJ,CADG,CAAP;AAKH,KAND;AAOAA,IAAAA,IAAI,CAACK,aAAL,GAAqB;AAAA,aAAMJ,aAAa,EAAnB;AAAA,KAArB;AAboB;AAcvB;;EAhByBK;AAmB9B,wBAAeR,eAAf;;;;"}
1
+ {"version":3,"file":"ScrollableTable.js","sources":["../src/react-ui-basics/ScrollableTable.js"],"sourcesContent":["import React from 'react';\nimport ReactCreateElement from './ReactCreateElement';\nimport Table from \"./Table\";\nimport Scrollable from \"./Scrollable\";\nimport \"./ScrollableTable.css\";\nimport {props, render, PureComponent} from \"./ReactConstants\";\nimport {createRef} from \"./Tools\";\n\nclass ScrollableTable extends PureComponent {\n\n constructor(properties) {\n super(properties);\n const that = this;\n\n const scrollableRef = createRef();\n\n that[render] = () => {\n return <div className={`ScrollableTable`}>\n <Scrollable ref={scrollableRef} {...props(that).scrollableProps}>\n <Table {...props(that)}/>\n </Scrollable>\n </div>;\n }\n that.getScrollable = () => scrollableRef()\n }\n}\n\nexport default ScrollableTable"],"names":["ScrollableTable","properties","that","scrollableRef","createRef","render","props","scrollableProps","getScrollable","PureComponent"],"mappings":";;;;;;;;IAQMA;;;AAEF,2BAAYC,UAAZ,EAAwB;AAAA;AAAA;AACpB,8BAAMA,UAAN;AACA,QAAMC,IAAI,gCAAV;AAEA,QAAMC,aAAa,GAAGC,SAAS,EAA/B;AAEAF,IAAAA,IAAI,CAACG,MAAD,CAAJ,GAAe,YAAM;AACjB,aAAO;AAAK,QAAA,SAAS;AAAd,SACH,mBAAC,UAAD;AAAY,QAAA,GAAG,EAAEF;AAAjB,SAAoCG,KAAK,CAACJ,IAAD,CAAL,CAAYK,eAAhD,GACI,mBAAC,KAAD,EAAWD,KAAK,CAACJ,IAAD,CAAhB,CADJ,CADG,CAAP;AAKH,KAND;AAOAA,IAAAA,IAAI,CAACM,aAAL,GAAqB;AAAA,aAAML,aAAa,EAAnB;AAAA,KAArB;AAboB;AAcvB;;EAhByBM;AAmB9B,wBAAeT,eAAf;;;;"}
package/Table.js CHANGED
@@ -1,4 +1,4 @@
1
- import { inherits as _inherits, createSuper as _createSuper, classCallCheck as _classCallCheck, objectSpread2 as _objectSpread2, defineProperty as _defineProperty, createClass as _createClass } from './_virtual/_rollupPluginBabelHelpers.js';
1
+ import { inherits as _inherits, createSuper as _createSuper, classCallCheck as _classCallCheck, toConsumableArray as _toConsumableArray, objectSpread2 as _objectSpread2, defineProperty as _defineProperty, createClass as _createClass } from './_virtual/_rollupPluginBabelHelpers.js';
2
2
  import React, { Component } from 'react';
3
3
  import ReactCreateElement from './ReactCreateElement.js';
4
4
  import PropTypes from 'prop-types';
@@ -25,16 +25,17 @@ var Table = function (_Component) {
25
25
  sortBy = _this$state.sortBy,
26
26
  sortOrder = _this$state.sortOrder,
27
27
  comparator = _this$state.comparator;
28
+ data = _toConsumableArray(data);
28
29
  if (sortBy) {
29
30
  var c = comparator;
30
31
  if (c && sortOrder === SORT_DESC) c = Comparators.inverse(c);
31
32
  data.sort(c || Comparators.of(sortBy, sortOrder, data));
32
- _this.setState({
33
- data: data
34
- }, function () {
35
- orNoop(_this.props.onSortChange)(sortBy, sortOrder);
36
- });
37
33
  }
34
+ _this.setState({
35
+ data: data
36
+ }, function () {
37
+ orNoop(_this.props.onSortChange)(sortBy, sortOrder);
38
+ });
38
39
  };
39
40
  _this.updateHeaders = function () {
40
41
  var headers = _this.headers;
@@ -107,14 +108,19 @@ var Table = function (_Component) {
107
108
  _createClass(Table, [{
108
109
  key: "componentDidMount",
109
110
  value: function componentDidMount() {
110
- var _this2 = this;
111
+ var _columns$find,
112
+ _this2 = this;
111
113
  var _this$props = this.props,
112
114
  sortBy = _this$props.sortBy,
113
115
  _this$props$sortOrder = _this$props.sortOrder,
114
- sortOrder = _this$props$sortOrder === void 0 ? SORT_ASC : _this$props$sortOrder;
116
+ sortOrder = _this$props$sortOrder === void 0 ? SORT_ASC : _this$props$sortOrder,
117
+ columns = _this$props.columns;
115
118
  this.setState({
116
119
  sortBy: sortBy,
117
- sortOrder: sortOrder
120
+ sortOrder: sortOrder,
121
+ comparator: (_columns$find = columns.find(function (it) {
122
+ return it.field === sortBy;
123
+ })) == null ? void 0 : _columns$find.comparator
118
124
  }, function () {
119
125
  return _this2.setData(_this2.props.data);
120
126
  });
@@ -124,25 +130,42 @@ var Table = function (_Component) {
124
130
  }, {
125
131
  key: "componentDidUpdate",
126
132
  value: function componentDidUpdate(prevProps, prevState, snapshot) {
127
- if (this.props.data !== prevProps.data) {
128
- this.setData(this.props.data);
133
+ var _this3 = this;
134
+ var _this$props2 = this.props,
135
+ sortBy = _this$props2.sortBy,
136
+ sortOrder = _this$props2.sortOrder,
137
+ columns = _this$props2.columns,
138
+ data = _this$props2.data;
139
+ if (sortBy !== prevProps.sortBy || sortOrder !== prevProps.sortOrder) {
140
+ var _columns$find2;
141
+ this.setState({
142
+ sortBy: sortBy,
143
+ sortOrder: sortOrder || SORT_ASC,
144
+ comparator: (_columns$find2 = columns.find(function (it) {
145
+ return it.field === sortBy;
146
+ })) == null ? void 0 : _columns$find2.comparator
147
+ }, function () {
148
+ return _this3.setData(data);
149
+ });
150
+ } else if (data !== prevProps.data) {
151
+ this.setData(data);
129
152
  }
130
153
  this.updateHeaders();
131
154
  }
132
155
  }, {
133
156
  key: "render",
134
157
  value: function render() {
135
- var _this3 = this;
136
- var _this$props2 = this.props,
137
- _this$props2$columns = _this$props2.columns,
138
- columns = _this$props2$columns === void 0 ? [] : _this$props2$columns,
139
- _this$props2$onRowCli = _this$props2.onRowClick,
140
- onRowClick = _this$props2$onRowCli === void 0 ? NOOP : _this$props2$onRowCli,
141
- disabled = _this$props2.disabled,
142
- className = _this$props2.className,
143
- rowClassName = _this$props2.rowClassName,
144
- _this$props2$toKey = _this$props2.toKey,
145
- toKey = _this$props2$toKey === void 0 ? getId : _this$props2$toKey;
158
+ var _this4 = this;
159
+ var _this$props3 = this.props,
160
+ _this$props3$columns = _this$props3.columns,
161
+ columns = _this$props3$columns === void 0 ? [] : _this$props3$columns,
162
+ _this$props3$onRowCli = _this$props3.onRowClick,
163
+ onRowClick = _this$props3$onRowCli === void 0 ? NOOP : _this$props3$onRowCli,
164
+ disabled = _this$props3.disabled,
165
+ className = _this$props3.className,
166
+ rowClassName = _this$props3.rowClassName,
167
+ _this$props3$toKey = _this$props3.toKey,
168
+ toKey = _this$props3$toKey === void 0 ? getId : _this$props3$toKey;
146
169
  var _this$state2 = this.state,
147
170
  sortBy = _this$state2.sortBy,
148
171
  sortOrder = _this$state2.sortOrder,
@@ -153,7 +176,7 @@ var Table = function (_Component) {
153
176
  className: classNames("Table", className)
154
177
  }, ReactCreateElement("thead", null, ReactCreateElement("tr", {
155
178
  ref: function ref(headers) {
156
- return _this3.headers = headers;
179
+ return _this4.headers = headers;
157
180
  }
158
181
  }, columns.filter(function (it) {
159
182
  return !!it;
@@ -162,7 +185,7 @@ var Table = function (_Component) {
162
185
  return ReactCreateElement("th", {
163
186
  key: i,
164
187
  onClick: function onClick(e) {
165
- return sortable && _this3.sort(e, column.field, column.comparator);
188
+ return sortable && _this4.sort(e, column.field, column.comparator);
166
189
  }
167
190
  }, ReactCreateElement("div", {
168
191
  className: classNames('hidden', sortable && 'sortable', sortBy === column.field && 'active')
@@ -186,7 +209,7 @@ var Table = function (_Component) {
186
209
  onClick: onRowClick,
187
210
  className: rowClassName,
188
211
  columns: columns,
189
- editingContext: _this3
212
+ editingContext: _this4
190
213
  });
191
214
  })));
192
215
  }
package/Table.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"Table.js","sources":["../src/react-ui-basics/Table.js"],"sourcesContent":["import React, {Component} from 'react';\nimport ReactCreateElement from './ReactCreateElement';\nimport './Table.css'\nimport PropTypes from \"prop-types\";\nimport TextField from \"./TextField\";\nimport AutocompleteSelect, {MODE_DEFAULT, MODE_MULTIPLE_MINI} from \"./AutocompleteSelect\";\nimport Switch from \"./Switch\";\nimport {Comparators, NOOP, classNames, preventDefault, stopPropagation, isFunction, isString, orNoop} from \"./Tools\";\nimport MaterialIcon from \"./MaterialIcon\";\n\nexport const SORT_ASC = Comparators.SORT_ASC;\nexport const SORT_DESC = Comparators.SORT_DESC;\n\nconst getId = item => item.id;\n\n\nclass Table extends Component {\n\n constructor(props) {\n super(props);\n this.state = {};\n }\n\n componentDidMount() {\n const {sortBy, sortOrder = SORT_ASC} = this.props;\n this.setState({sortBy, sortOrder}, () => this.setData(this.props.data));\n\n this.updateHeaders();\n this.updateHeadersInterval = setInterval(this.updateHeaders, 1000)\n };\n\n setData = (data) => {\n const {sortBy, sortOrder, comparator} = this.state;\n if (sortBy) {\n let c = comparator\n if(c && sortOrder === SORT_DESC)\n c = Comparators.inverse(c)\n\n data.sort(c || Comparators.of(sortBy, sortOrder, data));\n this.setState({data}, () => {\n orNoop(this.props.onSortChange)(sortBy, sortOrder)\n })\n }\n };\n\n componentDidUpdate(prevProps, prevState, snapshot) {\n if (this.props.data !== prevProps.data) {\n this.setData(this.props.data)\n }\n this.updateHeaders();\n };\n\n render() {\n const {columns = [], onRowClick = NOOP, disabled, className, rowClassName, toKey = getId} = this.props;\n const {sortBy, sortOrder, data = [], editing} = this.state;\n return (\n <table className={classNames(`Table`, className)}>\n <thead>\n <tr ref={headers => this.headers = headers}>\n {columns.filter(it => !!it).map((column, i) => {\n const sortable = column.sortable || column.sortable == null;\n return (\n <th key={i} onClick={e => sortable && this.sort(e, column.field, column.comparator)}>\n <div className={classNames('hidden', sortable && 'sortable', sortBy === column.field && 'active')}>\n {column.header}\n {column.header && sortBy === column.field && sortOrder === SORT_ASC && (<MaterialIcon icon={'keyboard_arrow_up'}/>)}\n {column.header && sortBy === column.field && sortOrder === SORT_DESC && (<MaterialIcon icon={'keyboard_arrow_down'}/>)}\n </div>\n <div className={classNames('fixed', sortable && 'sortable', sortBy === column.field && 'active')}>\n {column.header}\n {column.header && sortBy === column.field && sortOrder === SORT_ASC && (<MaterialIcon icon={'keyboard_arrow_up'}/>)}\n {column.header && sortBy === column.field && sortOrder === SORT_DESC && (<MaterialIcon icon={'keyboard_arrow_down'}/>)}\n </div>\n </th>\n );\n })}\n </tr>\n </thead>\n <tbody>\n {data.map(item => (<Row key={toKey(item)}\n item={item}\n disabled={disabled}\n editing={editing && editing.id === item.id ? editing : null}\n onClick={onRowClick}\n className={rowClassName}\n columns={columns}\n editingContext={this}\n />\n ))}\n </tbody>\n </table>\n );\n };\n\n componentWillUnmount() {\n clearInterval(this.updateHeadersInterval)\n };\n\n updateHeaders = () => {\n const headers = this.headers;\n\n const hidden = headers.querySelectorAll('.hidden');\n const fixed = headers.querySelectorAll('.fixed');\n for (let i = 0; i < hidden.length; i++) {\n fixed[i].style.width = hidden[i].offsetWidth + 'px'\n }\n };\n\n cancelEditing = () => this.setState({editing: false});\n\n setEditing = (item, columnIndex, field) => this.setState({editing: this.prepareEditing(item, field, columnIndex)});\n\n prepareEditing = (item, field, columnIndex) => ({id: item.id, value: item[field], columnIndex, item, field});\n\n handleInputChange = (event) => {\n const value = this.extractValue(event);\n this.setState({editing: {...this.state.editing, value}});\n };\n\n extractValue = (event) => {\n const target = event.target;\n return target.type === 'checkbox' ? target.checked : target.value;\n };\n\n selectNewValue = (value) => {\n this.setState({editing: {...this.state.editing, value}}, this.onFinishEditing);\n };\n\n onFinishEditing = (e) => {\n const editing = this.state.editing;\n if (editing.value === null)\n return;\n\n let value = editing.value;\n if (isString(value))\n value = value.trim();\n\n if (value === editing.item[editing.field])\n return this.cancelEditing();\n\n let updated = {\n ...editing.item,\n [editing.field]: value\n };\n this.props.onChange(updated, this.cancelEditing)\n };\n\n sort = (e, sortBy, comparator) => {\n preventDefault(e);\n this.setState({\n sortOrder: this.state.sortBy === sortBy && this.state.sortOrder === SORT_ASC ? SORT_DESC : SORT_ASC,\n comparator,\n sortBy\n }, () => this.setData(this.state.data));\n }\n}\n\nconst formatValue = (item, column) => {\n const value = (column.value !== undefined) ? column.value : item[column.field];\n if (column.formatter) {\n return column.formatter(value, item, column.format)\n } else {\n return '' + value\n }\n};\n\nconst Row = React.memo(({item, disabled, editing, onClick, className, columns, editingContext}) => {\n return <tr onClick={e => onClick(item)}\n className={classNames(disabled && disabled(item) && 'disabled', className && (isFunction(className) ? className(item) : className))}>\n {columns.filter(it => !!it).map((column, i) => {\n const isEditing = editing && editing.id === item.id && editing.columnIndex === i;\n const editable = isFunction(column.editable) ? column.editable(item) : !!column.editable;\n return (\n <td key={i}\n className={classNames(editable ? 'editable' : 'ro', isEditing && 'editing', column.className)}\n onClick={!isEditing && editable ? () => editingContext.setEditing(item, i, column.field) : NOOP}>\n {(isEditing || column.displayEditor) && !column.editor && (\n <TextField\n value={column.preEditor ? column.preEditor(editing.value) : editing.value}\n focused={true}\n onBlur={editingContext.cancelEditing}\n onChange={editingContext.handleInputChange}\n onKeyDown={e => {\n if (e.keyCode === 27/*escape*/) {\n preventDefault(e);\n editingContext.cancelEditing();\n }\n if (e.keyCode === 13/*enter*/) {\n preventDefault(e);\n editingContext.onFinishEditing();\n }\n }}\n />\n )}\n {(isEditing || column.displayEditor) && column.editor === 'Select' && (\n <AutocompleteSelect\n value={column.preEditor ? column.preEditor(editing.value) : editing.value}\n data={column.editorData}\n focused={true}\n withArrow={false}\n withFilter={false}\n selectedMode={'inline'}\n selectedComponent={column.editorSelectedComponent}\n mode={column.multiSelect ? MODE_MULTIPLE_MINI : MODE_DEFAULT}\n onChange={column.multiSelect && (column.onSelect ? (value => editingContext.selectNewValue(column.onSelect(value))) : editingContext.selectNewValue)}\n onSelect={!column.multiSelect && (column.onSelect ? (value => editingContext.selectNewValue(column.onSelect(value))) : editingContext.selectNewValue)}\n childComponent={column.editorChildCompononRowClickent}\n onCancel={editingContext.cancelEditing}\n prefilter={column.prefilter}\n />\n )}\n {(isEditing || column.displayEditor) && column.editor === 'Switch' && (\n <Switch onClick={e => {\n stopPropagation(e);\n preventDefault(e);\n editingContext.setState({\n editing: {\n ...editingContext.prepareEditing(item, column.field, i),\n value: !item[column.field]\n }\n }, editingContext.onFinishEditing);\n }} value={item[column.field]}/>\n )}\n {(isEditing || column.displayEditor) && isFunction(column.editor) && column.editor(item, editingContext.cancelEditing, isEditing)}\n {!isEditing && !column.displayEditor && formatValue(item, column)}\n </td>\n );\n })}\n </tr>\n }\n)\n\nTable.defaultProps = {\n columns: [],\n onRowClick: NOOP,\n toKey: getId,\n};\n\nif (window.isNotProductionEnvironment) {\n Table.propTypes = {\n className: PropTypes.string,\n rowClassName: PropTypes.oneOfType([PropTypes.string, PropTypes.func]),\n columns: PropTypes.arrayOf(PropTypes.shape({\n header: PropTypes.oneOfType([PropTypes.string, PropTypes.element]),\n className: PropTypes.string,\n sortable: PropTypes.bool,\n field: PropTypes.string,\n formatter: PropTypes.func,\n comparator: PropTypes.func,\n editable: PropTypes.oneOfType([PropTypes.bool, PropTypes.func]),\n editor: PropTypes.oneOfType([PropTypes.string, PropTypes.func]),\n displayEditor: PropTypes.bool,\n preEditor: PropTypes.func,\n })),\n data: PropTypes.array,\n disabled: PropTypes.func,\n onRowClick: PropTypes.func,\n onSortChange: PropTypes.func,\n onChange: PropTypes.func,\n toKey: PropTypes.func,\n };\n}\n\n\nexport default Table;"],"names":["SORT_ASC","Comparators","SORT_DESC","getId","item","id","Table","props","setData","data","state","sortBy","sortOrder","comparator","c","inverse","sort","of","setState","orNoop","onSortChange","updateHeaders","headers","hidden","querySelectorAll","fixed","i","length","style","width","offsetWidth","cancelEditing","editing","setEditing","columnIndex","field","prepareEditing","value","handleInputChange","event","extractValue","target","type","checked","selectNewValue","onFinishEditing","e","isString","trim","updated","onChange","preventDefault","updateHeadersInterval","setInterval","prevProps","prevState","snapshot","columns","onRowClick","NOOP","disabled","className","rowClassName","toKey","classNames","filter","it","map","column","sortable","header","clearInterval","Component","formatValue","undefined","formatter","format","Row","React","memo","onClick","editingContext","isFunction","isEditing","editable","displayEditor","editor","preEditor","keyCode","editorData","editorSelectedComponent","multiSelect","MODE_MULTIPLE_MINI","MODE_DEFAULT","onSelect","editorChildCompononRowClickent","prefilter","stopPropagation","defaultProps","window","isNotProductionEnvironment","propTypes","PropTypes","string","oneOfType","func","arrayOf","shape","element","bool","array"],"mappings":"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"}
1
+ {"version":3,"file":"Table.js","sources":["../src/react-ui-basics/Table.js"],"sourcesContent":["import React, {Component} from 'react';\nimport ReactCreateElement from './ReactCreateElement';\nimport './Table.css'\nimport PropTypes from \"prop-types\";\nimport TextField from \"./TextField\";\nimport AutocompleteSelect, {MODE_DEFAULT, MODE_MULTIPLE_MINI} from \"./AutocompleteSelect\";\nimport Switch from \"./Switch\";\nimport {Comparators, NOOP, classNames, preventDefault, stopPropagation, isFunction, isString, orNoop} from \"./Tools\";\nimport MaterialIcon from \"./MaterialIcon\";\n\nexport const SORT_ASC = Comparators.SORT_ASC;\nexport const SORT_DESC = Comparators.SORT_DESC;\n\nconst getId = item => item.id;\n\n\nclass Table extends Component {\n\n constructor(props) {\n super(props);\n this.state = {};\n }\n\n componentDidMount() {\n const {sortBy, sortOrder = SORT_ASC, columns} = this.props;\n this.setState({\n sortBy,\n sortOrder,\n comparator: columns.find(it => it.field === sortBy)?.comparator\n }, () => this.setData(this.props.data));\n\n this.updateHeaders();\n this.updateHeadersInterval = setInterval(this.updateHeaders, 1000)\n };\n\n setData = (data) => {\n const {sortBy, sortOrder, comparator} = this.state;\n data = [...data];\n if (sortBy) {\n let c = comparator\n if(c && sortOrder === SORT_DESC)\n c = Comparators.inverse(c)\n\n data.sort(c || Comparators.of(sortBy, sortOrder, data));\n }\n this.setState({data}, () => {\n orNoop(this.props.onSortChange)(sortBy, sortOrder)\n })\n };\n\n componentDidUpdate(prevProps, prevState, snapshot) {\n const {sortBy, sortOrder, columns, data} = this.props;\n if (sortBy !== prevProps.sortBy || sortOrder !== prevProps.sortOrder) {\n this.setState({\n sortBy,\n sortOrder: sortOrder || SORT_ASC,\n comparator: columns.find(it => it.field === sortBy)?.comparator\n }, () => this.setData(data));\n\n } else if (data !== prevProps.data) {\n this.setData(data)\n }\n this.updateHeaders();\n };\n\n render() {\n const {columns = [], onRowClick = NOOP, disabled, className, rowClassName, toKey = getId} = this.props;\n const {sortBy, sortOrder, data = [], editing} = this.state;\n return (\n <table className={classNames(`Table`, className)}>\n <thead>\n <tr ref={headers => this.headers = headers}>\n {columns.filter(it => !!it).map((column, i) => {\n const sortable = column.sortable || column.sortable == null;\n return (\n <th key={i} onClick={e => sortable && this.sort(e, column.field, column.comparator)}>\n <div className={classNames('hidden', sortable && 'sortable', sortBy === column.field && 'active')}>\n {column.header}\n {column.header && sortBy === column.field && sortOrder === SORT_ASC && (<MaterialIcon icon={'keyboard_arrow_up'}/>)}\n {column.header && sortBy === column.field && sortOrder === SORT_DESC && (<MaterialIcon icon={'keyboard_arrow_down'}/>)}\n </div>\n <div className={classNames('fixed', sortable && 'sortable', sortBy === column.field && 'active')}>\n {column.header}\n {column.header && sortBy === column.field && sortOrder === SORT_ASC && (<MaterialIcon icon={'keyboard_arrow_up'}/>)}\n {column.header && sortBy === column.field && sortOrder === SORT_DESC && (<MaterialIcon icon={'keyboard_arrow_down'}/>)}\n </div>\n </th>\n );\n })}\n </tr>\n </thead>\n <tbody>\n {data.map(item => (<Row key={toKey(item)}\n item={item}\n disabled={disabled}\n editing={editing && editing.id === item.id ? editing : null}\n onClick={onRowClick}\n className={rowClassName}\n columns={columns}\n editingContext={this}\n />\n ))}\n </tbody>\n </table>\n );\n };\n\n componentWillUnmount() {\n clearInterval(this.updateHeadersInterval)\n };\n\n updateHeaders = () => {\n const headers = this.headers;\n\n const hidden = headers.querySelectorAll('.hidden');\n const fixed = headers.querySelectorAll('.fixed');\n for (let i = 0; i < hidden.length; i++) {\n fixed[i].style.width = hidden[i].offsetWidth + 'px'\n }\n };\n\n cancelEditing = () => this.setState({editing: false});\n\n setEditing = (item, columnIndex, field) => this.setState({editing: this.prepareEditing(item, field, columnIndex)});\n\n prepareEditing = (item, field, columnIndex) => ({id: item.id, value: item[field], columnIndex, item, field});\n\n handleInputChange = (event) => {\n const value = this.extractValue(event);\n this.setState({editing: {...this.state.editing, value}});\n };\n\n extractValue = (event) => {\n const target = event.target;\n return target.type === 'checkbox' ? target.checked : target.value;\n };\n\n selectNewValue = (value) => {\n this.setState({editing: {...this.state.editing, value}}, this.onFinishEditing);\n };\n\n onFinishEditing = (e) => {\n const editing = this.state.editing;\n if (editing.value === null)\n return;\n\n let value = editing.value;\n if (isString(value))\n value = value.trim();\n\n if (value === editing.item[editing.field])\n return this.cancelEditing();\n\n let updated = {\n ...editing.item,\n [editing.field]: value\n };\n this.props.onChange(updated, this.cancelEditing)\n };\n\n sort = (e, sortBy, comparator) => {\n preventDefault(e);\n this.setState({\n sortOrder: this.state.sortBy === sortBy && this.state.sortOrder === SORT_ASC ? SORT_DESC : SORT_ASC,\n comparator,\n sortBy\n }, () => this.setData(this.state.data));\n }\n}\n\nconst formatValue = (item, column) => {\n const value = (column.value !== undefined) ? column.value : item[column.field];\n if (column.formatter) {\n return column.formatter(value, item, column.format)\n } else {\n return '' + value\n }\n};\n\nconst Row = React.memo(({item, disabled, editing, onClick, className, columns, editingContext}) => {\n return <tr onClick={e => onClick(item)}\n className={classNames(disabled && disabled(item) && 'disabled', className && (isFunction(className) ? className(item) : className))}>\n {columns.filter(it => !!it).map((column, i) => {\n const isEditing = editing && editing.id === item.id && editing.columnIndex === i;\n const editable = isFunction(column.editable) ? column.editable(item) : !!column.editable;\n return (\n <td key={i}\n className={classNames(editable ? 'editable' : 'ro', isEditing && 'editing', column.className)}\n onClick={!isEditing && editable ? () => editingContext.setEditing(item, i, column.field) : NOOP}>\n {(isEditing || column.displayEditor) && !column.editor && (\n <TextField\n value={column.preEditor ? column.preEditor(editing.value) : editing.value}\n focused={true}\n onBlur={editingContext.cancelEditing}\n onChange={editingContext.handleInputChange}\n onKeyDown={e => {\n if (e.keyCode === 27/*escape*/) {\n preventDefault(e);\n editingContext.cancelEditing();\n }\n if (e.keyCode === 13/*enter*/) {\n preventDefault(e);\n editingContext.onFinishEditing();\n }\n }}\n />\n )}\n {(isEditing || column.displayEditor) && column.editor === 'Select' && (\n <AutocompleteSelect\n value={column.preEditor ? column.preEditor(editing.value) : editing.value}\n data={column.editorData}\n focused={true}\n withArrow={false}\n withFilter={false}\n selectedMode={'inline'}\n selectedComponent={column.editorSelectedComponent}\n mode={column.multiSelect ? MODE_MULTIPLE_MINI : MODE_DEFAULT}\n onChange={column.multiSelect && (column.onSelect ? (value => editingContext.selectNewValue(column.onSelect(value))) : editingContext.selectNewValue)}\n onSelect={!column.multiSelect && (column.onSelect ? (value => editingContext.selectNewValue(column.onSelect(value))) : editingContext.selectNewValue)}\n childComponent={column.editorChildCompononRowClickent}\n onCancel={editingContext.cancelEditing}\n prefilter={column.prefilter}\n />\n )}\n {(isEditing || column.displayEditor) && column.editor === 'Switch' && (\n <Switch onClick={e => {\n stopPropagation(e);\n preventDefault(e);\n editingContext.setState({\n editing: {\n ...editingContext.prepareEditing(item, column.field, i),\n value: !item[column.field]\n }\n }, editingContext.onFinishEditing);\n }} value={item[column.field]}/>\n )}\n {(isEditing || column.displayEditor) && isFunction(column.editor) && column.editor(item, editingContext.cancelEditing, isEditing)}\n {!isEditing && !column.displayEditor && formatValue(item, column)}\n </td>\n );\n })}\n </tr>\n }\n)\n\nTable.defaultProps = {\n columns: [],\n onRowClick: NOOP,\n toKey: getId,\n};\n\nif (window.isNotProductionEnvironment) {\n Table.propTypes = {\n className: PropTypes.string,\n rowClassName: PropTypes.oneOfType([PropTypes.string, PropTypes.func]),\n columns: PropTypes.arrayOf(PropTypes.shape({\n header: PropTypes.oneOfType([PropTypes.string, PropTypes.element]),\n className: PropTypes.string,\n sortable: PropTypes.bool,\n field: PropTypes.string,\n formatter: PropTypes.func,\n comparator: PropTypes.func,\n editable: PropTypes.oneOfType([PropTypes.bool, PropTypes.func]),\n editor: PropTypes.oneOfType([PropTypes.string, PropTypes.func]),\n displayEditor: PropTypes.bool,\n preEditor: PropTypes.func,\n })),\n data: PropTypes.array,\n disabled: PropTypes.func,\n onRowClick: PropTypes.func,\n onSortChange: PropTypes.func,\n onChange: PropTypes.func,\n toKey: PropTypes.func,\n };\n}\n\n\nexport default Table;"],"names":["SORT_ASC","Comparators","SORT_DESC","getId","item","id","Table","props","setData","data","state","sortBy","sortOrder","comparator","c","inverse","sort","of","setState","orNoop","onSortChange","updateHeaders","headers","hidden","querySelectorAll","fixed","i","length","style","width","offsetWidth","cancelEditing","editing","setEditing","columnIndex","field","prepareEditing","value","handleInputChange","event","extractValue","target","type","checked","selectNewValue","onFinishEditing","e","isString","trim","updated","onChange","preventDefault","columns","find","it","updateHeadersInterval","setInterval","prevProps","prevState","snapshot","onRowClick","NOOP","disabled","className","rowClassName","toKey","classNames","filter","map","column","sortable","header","clearInterval","Component","formatValue","undefined","formatter","format","Row","React","memo","onClick","editingContext","isFunction","isEditing","editable","displayEditor","editor","preEditor","keyCode","editorData","editorSelectedComponent","multiSelect","MODE_MULTIPLE_MINI","MODE_DEFAULT","onSelect","editorChildCompononRowClickent","prefilter","stopPropagation","defaultProps","window","isNotProductionEnvironment","propTypes","PropTypes","string","oneOfType","func","arrayOf","shape","element","bool","array"],"mappings":"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"}
package/bundle.css CHANGED
@@ -1,68 +1,10 @@
1
- .Checkbox {
2
- position: relative;
3
- white-space: pre;
4
- }
5
-
6
- .Checkbox *, .Checkbox *:before, .Checkbox *:after {
7
- box-sizing: border-box;
8
- }
9
-
10
- .Checkbox label {
11
- font-family: Roboto, sans-serif;
12
- font-size: 14px;
13
- color: #1e252d;
14
- cursor: pointer;
15
- }
16
-
17
- .Checkbox label:before, .Checkbox label:after {
18
- content: "";
19
- position: absolute;
20
- left: 0;
21
- top: 0;
22
- }
23
-
24
- .Checkbox label:before {
25
- width: 20px;
26
- height: 20px;
27
- background: #fff;
28
- border: 2px solid #252525;
29
- border-radius: 2px;
30
- cursor: pointer;
31
- transition: background 0.3s;
32
- }
33
-
34
- .Checkbox input[type=checkbox] {
35
- outline: 0;
36
- margin-right: 10px;
37
- visibility: hidden;
38
- }
39
-
40
- .Checkbox input[type=checkbox]:checked + label:before {
41
- background: #4AC263;
42
- border: none;
43
- }
44
-
45
- .Checkbox input[type=checkbox]:checked + label:after {
46
- transform: rotate(-45deg);
47
- top: 6px;
48
- left: 4px;
49
- width: 12px;
50
- height: 6px;
51
- border: 2px solid #fff;
52
- border-top-style: none;
53
- border-right-style: none;
54
- }
55
-
56
- .Checkbox input[type=checkbox]:disabled + label {
57
- color: gray;
58
- }
59
-
60
- .Checkbox input[type=checkbox]:disabled + label:before {
61
- border-color: rgba(0, 0, 0, 0.26);
1
+ .animated {
2
+ transition: opacity 250ms ease;
3
+ opacity: 0;
62
4
  }
63
5
 
64
- .Checkbox input[type=checkbox]:disabled:checked + label:before {
65
- background: rgba(0, 0, 0, 0.26);
6
+ .animated.mounting, .animated.mounted {
7
+ opacity: 1;
66
8
  }
67
9
 
68
10
  .Button {
@@ -230,6 +172,128 @@
230
172
  border: 0;
231
173
  }
232
174
 
175
+ .Checkbox {
176
+ position: relative;
177
+ white-space: pre;
178
+ }
179
+
180
+ .Checkbox *, .Checkbox *:before, .Checkbox *:after {
181
+ box-sizing: border-box;
182
+ }
183
+
184
+ .Checkbox label {
185
+ font-family: Roboto, sans-serif;
186
+ font-size: 14px;
187
+ color: #1e252d;
188
+ cursor: pointer;
189
+ }
190
+
191
+ .Checkbox label:before, .Checkbox label:after {
192
+ content: "";
193
+ position: absolute;
194
+ left: 0;
195
+ top: 0;
196
+ }
197
+
198
+ .Checkbox label:before {
199
+ width: 20px;
200
+ height: 20px;
201
+ background: #fff;
202
+ border: 2px solid #252525;
203
+ border-radius: 2px;
204
+ cursor: pointer;
205
+ transition: background 0.3s;
206
+ }
207
+
208
+ .Checkbox input[type=checkbox] {
209
+ outline: 0;
210
+ margin-right: 10px;
211
+ visibility: hidden;
212
+ }
213
+
214
+ .Checkbox input[type=checkbox]:checked + label:before {
215
+ background: #4AC263;
216
+ border: none;
217
+ }
218
+
219
+ .Checkbox input[type=checkbox]:checked + label:after {
220
+ transform: rotate(-45deg);
221
+ top: 6px;
222
+ left: 4px;
223
+ width: 12px;
224
+ height: 6px;
225
+ border: 2px solid #fff;
226
+ border-top-style: none;
227
+ border-right-style: none;
228
+ }
229
+
230
+ .Checkbox input[type=checkbox]:disabled + label {
231
+ color: gray;
232
+ }
233
+
234
+ .Checkbox input[type=checkbox]:disabled + label:before {
235
+ border-color: rgba(0, 0, 0, 0.26);
236
+ }
237
+
238
+ .Checkbox input[type=checkbox]:disabled:checked + label:before {
239
+ background: rgba(0, 0, 0, 0.26);
240
+ }
241
+
242
+ .CircleProgress {
243
+ width: 48px;
244
+ height: 48px;
245
+ }
246
+
247
+ .CircleProgress .line {
248
+ stroke-width: 2px;
249
+ stroke: black;
250
+ stroke-linecap: square;
251
+ fill: none;
252
+ transition: stroke-dashoffset 0.2s ease;
253
+ }
254
+
255
+ .DialogModal {
256
+ overflow: hidden;
257
+ }
258
+
259
+ .DialogModal .content {
260
+ top: 20vh;
261
+ }
262
+
263
+ .Dialog {
264
+ background-color: white;
265
+ min-width: 460px;
266
+ max-width: 40vw;
267
+ padding: 15px;
268
+ }
269
+
270
+ .Dialog .title {
271
+ margin-bottom: 15px;
272
+ padding: 20px 50px 0px 30px;
273
+ font-size: 1.25rem;
274
+ line-height: 2rem;
275
+ font-weight: 400;
276
+ letter-spacing: 0.0125em;
277
+ }
278
+
279
+ .Dialog .description {
280
+ color: rgba(0, 0, 0, 0.54);
281
+ font-size: 1rem;
282
+ line-height: 1.5rem;
283
+ font-weight: 400;
284
+ letter-spacing: 0.03125em;
285
+ margin-top: 20px;
286
+ padding: 0 24px 24px;
287
+ }
288
+
289
+ .Dialog > div.row {
290
+ margin-bottom: 15px;
291
+ }
292
+
293
+ .Dialog > div.row:last-child {
294
+ margin-bottom: 0;
295
+ }
296
+
233
297
  .AutocompleteSelect {
234
298
  display: inline-flex;
235
299
  flex-flow: column;
@@ -525,60 +589,6 @@
525
589
  position: absolute;
526
590
  }
527
591
 
528
- .animated {
529
- transition: opacity 250ms ease;
530
- opacity: 0;
531
- }
532
-
533
- .animated.mounting, .animated.mounted {
534
- opacity: 1;
535
- }
536
-
537
- .CircleProgress {
538
- width: 48px;
539
- height: 48px;
540
- }
541
-
542
- .CircleProgress .line {
543
- stroke-width: 2px;
544
- stroke: black;
545
- stroke-linecap: square;
546
- fill: none;
547
- transition: stroke-dashoffset 0.2s ease;
548
- }
549
-
550
- .DNDContainer {
551
- position: relative;
552
- }
553
-
554
- .DNDContainer .Draggable[draggable=true], .DNDContainer .Draggable [draggable=true] {
555
- cursor: pointer;
556
- }
557
-
558
- .DNDContainer .Draggable.placeholder {
559
- opacity: 0.2;
560
- }
561
-
562
- .DNDContainer .Draggable.copy {
563
- position: absolute;
564
- box-sizing: border-box;
565
- will-change: transform;
566
- opacity: 0;
567
- }
568
-
569
- .DNDContainer .Draggable.dragged {
570
- z-index: 10;
571
- }
572
-
573
- .DNDContainer .overlay {
574
- position: absolute;
575
- top: 0;
576
- left: 0;
577
- right: 0;
578
- bottom: 0;
579
- pointer-events: none;
580
- }
581
-
582
592
  .DropFileInput {
583
593
  flex-grow: 1;
584
594
  }
@@ -606,209 +616,14 @@
606
616
  margin-right: 10px;
607
617
  }
608
618
 
609
- .Dropzone {
619
+ .FilteredList {
620
+ max-height: 250px;
610
621
  position: relative;
611
622
  }
612
623
 
613
- .Dropzone > .overlay {
614
- position: absolute;
615
- left: 0;
616
- right: 0;
617
- top: 0;
618
- bottom: 0;
619
- background-color: #38ADC4;
620
- z-index: 1;
621
- opacity: 0;
622
- transition: all 0.2s ease;
623
- transition-delay: 100ms;
624
- visibility: hidden;
625
- display: flex;
626
- justify-content: center;
627
- align-items: center;
628
- }
629
-
630
- .Dropzone > .overlay .drop {
631
- border-radius: 4px;
632
- border: 1px dashed #FFFFFF;
633
- position: absolute;
634
- top: 18px;
635
- left: 18px;
636
- right: 18px;
637
- bottom: 18px;
638
- display: flex;
639
- justify-content: center;
640
- align-items: center;
641
- font-weight: 500;
642
- font-size: 18px;
643
- color: #FFFFFF;
644
- }
645
-
646
- .Dropzone.dragging > .overlay {
647
- opacity: 0.7;
648
- visibility: visible;
649
- transition-delay: 0s;
650
- }
651
-
652
- .Dropzone.dragging > * {
653
- pointer-events: none;
654
- }
655
-
656
- .Dropzone > input.file {
657
- position: absolute;
658
- left: 0;
659
- right: 0;
660
- top: 0;
661
- bottom: 0;
662
- width: 100%;
663
- height: 100%;
664
- opacity: 0;
665
- cursor: pointer;
666
- z-index: 1;
667
- }
668
-
669
- .DialogModal {
670
- overflow: hidden;
671
- }
672
-
673
- .DialogModal .content {
674
- top: 20vh;
675
- }
676
-
677
- .Dialog {
678
- background-color: white;
679
- min-width: 460px;
680
- max-width: 40vw;
681
- padding: 15px;
682
- }
683
-
684
- .Dialog .title {
685
- margin-bottom: 15px;
686
- padding: 20px 50px 0px 30px;
687
- font-size: 1.25rem;
688
- line-height: 2rem;
689
- font-weight: 400;
690
- letter-spacing: 0.0125em;
691
- }
692
-
693
- .Dialog .description {
694
- color: rgba(0, 0, 0, 0.54);
695
- font-size: 1rem;
696
- line-height: 1.5rem;
697
- font-weight: 400;
698
- letter-spacing: 0.03125em;
699
- margin-top: 20px;
700
- padding: 0 24px 24px;
701
- }
702
-
703
- .Dialog > div.row {
704
- margin-bottom: 15px;
705
- }
706
-
707
- .Dialog > div.row:last-child {
708
- margin-bottom: 0;
709
- }
710
-
711
- .Button.FloatingActionButton {
712
- position: absolute;
713
- right: 16px;
714
- bottom: 16px;
715
- width: 56px;
716
- height: 56px;
717
- padding: 16px;
718
- transition: bottom 0.2s cubic-bezier(0.4, 0, 0.2, 1);
719
- }
720
-
721
- .Button.FloatingActionButton.raised {
722
- 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);
723
- }
724
-
725
- .Button.FloatingActionButton.mini {
726
- width: 40px;
727
- height: 40px;
728
- padding: 8px;
729
- }
730
-
731
- .Button.FloatingActionButton.hidden {
732
- bottom: -100px;
733
- }
734
-
735
- .FormUploadProgress {
736
- position: absolute;
737
- left: 0;
738
- right: 0;
739
- top: 0;
740
- bottom: 0;
741
- background-color: rgba(255, 255, 255, 0.6);
742
- z-index: 2;
743
- }
744
-
745
- .FormUploadProgress.animated.mounting, .FormUploadProgress.animated.mounted {
746
- transition-delay: 500ms;
747
- }
748
-
749
- .FormUploadProgress .wrapper {
750
- position: sticky;
751
- top: 40%;
752
- margin-top: 40%;
753
- margin-left: 50%;
754
- transform: translateX(-50%);
755
- display: flex;
756
- flex-flow: column;
757
- justify-content: center;
758
- align-items: center;
759
- }
760
-
761
- .FormUploadProgress .wrapper .CircleProgress, .FormUploadProgress .wrapper .SpinningProgress {
762
- position: absolute;
763
- width: 107px;
764
- height: 107px;
765
- top: 0;
766
- left: 0;
767
- }
768
-
769
- .FormUploadProgress .wrapper .CircleProgress .line, .FormUploadProgress .wrapper .SpinningProgress .line {
770
- stroke: #2196F3;
771
- }
772
-
773
- .FormUploadProgress .wrapper > .progress {
774
- width: 107px;
775
- height: 107px;
776
- min-height: 107px;
777
- display: flex;
778
- justify-content: center;
779
- align-items: center;
780
- box-shadow: 0px 4px 10px rgba(0, 0, 0, 0.25);
781
- border-radius: 50%;
782
- background: white;
783
- position: relative;
784
- }
785
-
786
- .FormUploadProgress .wrapper > .progress > .value {
787
- display: inline-block;
788
- margin-top: 5px;
789
- font-weight: bold;
790
- line-height: 16px;
791
- font-size: 13px;
792
- text-align: center;
793
- color: #818181;
794
- }
795
-
796
- .FormUploadProgress .wrapper .cancel {
797
- min-width: 107px;
798
- margin-top: 20px;
799
- background-color: white;
800
- color: #F96B5C;
801
- box-shadow: 0px 4px 10px rgba(0, 0, 0, 0.25);
802
- }
803
-
804
- .FilteredList {
805
- max-height: 250px;
806
- position: relative;
807
- }
808
-
809
- .FilteredList.popup {
810
- padding: 0;
811
- visibility: hidden;
624
+ .FilteredList.popup {
625
+ padding: 0;
626
+ visibility: hidden;
812
627
  position: absolute;
813
628
  background: white;
814
629
  z-index: 4;
@@ -882,74 +697,120 @@
882
697
  margin-bottom: 8px;
883
698
  }
884
699
 
885
- .Modal {
886
- display: block;
887
- position: fixed;
888
- top: 0;
700
+ .Dropzone {
701
+ position: relative;
702
+ }
703
+
704
+ .Dropzone > .overlay {
705
+ position: absolute;
889
706
  left: 0;
890
707
  right: 0;
891
- bottom: 100%;
892
- overflow-y: scroll;
893
- transition: bottom 0ms linear;
894
- transition-delay: 0.2s;
708
+ top: 0;
709
+ bottom: 0;
710
+ background-color: #38ADC4;
711
+ z-index: 1;
712
+ opacity: 0;
713
+ transition: all 0.2s ease;
714
+ transition-delay: 100ms;
715
+ visibility: hidden;
716
+ display: flex;
717
+ justify-content: center;
718
+ align-items: center;
895
719
  }
896
720
 
897
- .Modal.show {
721
+ .Dropzone > .overlay .drop {
722
+ border-radius: 4px;
723
+ border: 1px dashed #FFFFFF;
724
+ position: absolute;
725
+ top: 18px;
726
+ left: 18px;
727
+ right: 18px;
728
+ bottom: 18px;
729
+ display: flex;
730
+ justify-content: center;
731
+ align-items: center;
732
+ font-weight: 500;
733
+ font-size: 18px;
734
+ color: #FFFFFF;
735
+ }
736
+
737
+ .Dropzone.dragging > .overlay {
738
+ opacity: 0.7;
739
+ visibility: visible;
898
740
  transition-delay: 0s;
899
- bottom: 0;
900
741
  }
901
742
 
902
- .Modal > .overlay {
903
- position: fixed;
904
- top: 0;
905
- bottom: 100%;
906
- left: 0;
907
- right: 0;
908
- transition: opacity 0.2s cubic-bezier(0.4, 0, 0.2, 1);
909
- opacity: 0;
910
- background-color: black;
743
+ .Dropzone.dragging > * {
911
744
  pointer-events: none;
912
745
  }
913
746
 
914
- .Modal > .overlay.show {
915
- opacity: 0.5;
747
+ .Dropzone > input.file {
748
+ position: absolute;
749
+ left: 0;
750
+ right: 0;
751
+ top: 0;
916
752
  bottom: 0;
753
+ width: 100%;
754
+ height: 100%;
755
+ opacity: 0;
756
+ cursor: pointer;
757
+ z-index: 1;
917
758
  }
918
759
 
919
- .Modal > .content {
920
- left: 50%;
921
- top: 10vh;
922
- margin-bottom: 10vh;
923
- font-size: 16px;
924
- padding: 0;
925
- opacity: 0;
926
- transition: opacity 0.25s ease, transform 0.25s ease;
927
- transform: scaleY(0) translateY(-200px) translateX(-50%);
928
- transform-origin: top;
760
+ .Button.FloatingActionButton {
929
761
  position: absolute;
930
- border-radius: 2px;
931
- box-shadow: 0px 10px 20px rgba(0, 0, 0, 0.3);
762
+ right: 16px;
763
+ bottom: 16px;
764
+ width: 56px;
765
+ height: 56px;
766
+ padding: 16px;
767
+ transition: bottom 0.2s cubic-bezier(0.4, 0, 0.2, 1);
932
768
  }
933
769
 
934
- .Modal > .content.show {
935
- opacity: 1;
936
- transform: scaleY(1) translateY(0px) translateX(-50%);
770
+ .Button.FloatingActionButton.raised {
771
+ 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);
937
772
  }
938
773
 
939
- .Modal > .content > .Scrollable {
940
- overflow: visible;
941
- max-height: 80vh;
774
+ .Button.FloatingActionButton.mini {
775
+ width: 40px;
776
+ height: 40px;
777
+ padding: 8px;
942
778
  }
943
779
 
944
- .Modal > .content > .Scrollable > .viewport {
945
- min-width: 10px;
946
- min-height: 10px;
780
+ .Button.FloatingActionButton.hidden {
781
+ bottom: -100px;
947
782
  }
948
783
 
949
- .Modal > .content > .Button.close {
950
- top: 10px;
951
- right: 10px;
784
+ .DNDContainer {
785
+ position: relative;
786
+ }
787
+
788
+ .DNDContainer .Draggable[draggable=true], .DNDContainer .Draggable [draggable=true] {
789
+ cursor: pointer;
790
+ }
791
+
792
+ .DNDContainer .Draggable.placeholder {
793
+ opacity: 0.2;
794
+ }
795
+
796
+ .DNDContainer .Draggable.copy {
952
797
  position: absolute;
798
+ box-sizing: border-box;
799
+ will-change: transform;
800
+ opacity: 0;
801
+ }
802
+
803
+ .DNDContainer .Draggable.dragged {
804
+ z-index: 10;
805
+ }
806
+
807
+ .DNDContainer .overlay {
808
+ position: absolute;
809
+ top: 0;
810
+ left: 0;
811
+ right: 0;
812
+ bottom: 0;
813
+ pointer-events: none;
953
814
  }
954
815
 
955
816
  .ImageGallery {
@@ -1161,30 +1022,169 @@
1161
1022
  width: 100%;
1162
1023
  }
1163
1024
 
1164
- .ImageGallery .previews .preview.selected:after {
1165
- background: rgba(0, 0, 0, 0);
1025
+ .ImageGallery .previews .preview.selected:after {
1026
+ background: rgba(0, 0, 0, 0);
1027
+ }
1028
+
1029
+ .ImageGallery .previews > .arrow {
1030
+ position: absolute;
1031
+ top: 50%;
1032
+ height: 30px;
1033
+ width: 30px;
1034
+ min-width: 30px;
1035
+ min-height: 30px;
1036
+ margin-top: -15px;
1037
+ }
1038
+
1039
+ .ImageGallery .previews > .arrow.left {
1040
+ left: 0;
1041
+ }
1042
+
1043
+ .ImageGallery .previews > .arrow.right {
1044
+ right: 0;
1045
+ }
1046
+
1047
+ .ImageGallery .previews > .arrow .material-icons {
1048
+ font-size: 24px;
1049
+ }
1050
+
1051
+ .Modal {
1052
+ display: block;
1053
+ position: fixed;
1054
+ top: 0;
1055
+ left: 0;
1056
+ right: 0;
1057
+ bottom: 100%;
1058
+ overflow-y: scroll;
1059
+ transition: bottom 0ms linear;
1060
+ transition-delay: 0.2s;
1061
+ }
1062
+
1063
+ .Modal.show {
1064
+ transition-delay: 0s;
1065
+ bottom: 0;
1066
+ }
1067
+
1068
+ .Modal > .overlay {
1069
+ position: fixed;
1070
+ top: 0;
1071
+ bottom: 100%;
1072
+ left: 0;
1073
+ right: 0;
1074
+ transition: opacity 0.2s cubic-bezier(0.4, 0, 0.2, 1);
1075
+ opacity: 0;
1076
+ background-color: black;
1077
+ pointer-events: none;
1078
+ }
1079
+
1080
+ .Modal > .overlay.show {
1081
+ opacity: 0.5;
1082
+ bottom: 0;
1083
+ }
1084
+
1085
+ .Modal > .content {
1086
+ left: 50%;
1087
+ top: 10vh;
1088
+ margin-bottom: 10vh;
1089
+ font-size: 16px;
1090
+ padding: 0;
1091
+ opacity: 0;
1092
+ transition: opacity 0.25s ease, transform 0.25s ease;
1093
+ transform: scaleY(0) translateY(-200px) translateX(-50%);
1094
+ transform-origin: top;
1095
+ position: absolute;
1096
+ border-radius: 2px;
1097
+ box-shadow: 0px 10px 20px rgba(0, 0, 0, 0.3);
1098
+ }
1099
+
1100
+ .Modal > .content.show {
1101
+ opacity: 1;
1102
+ transform: scaleY(1) translateY(0px) translateX(-50%);
1103
+ }
1104
+
1105
+ .Modal > .content > .Scrollable {
1106
+ overflow: visible;
1107
+ max-height: 80vh;
1108
+ }
1109
+
1110
+ .Modal > .content > .Scrollable > .viewport {
1111
+ min-width: 10px;
1112
+ min-height: 10px;
1113
+ }
1114
+
1115
+ .Modal > .content > .Button.close {
1116
+ top: 10px;
1117
+ right: 10px;
1118
+ position: absolute;
1119
+ }
1120
+
1121
+ .FormUploadProgress {
1122
+ position: absolute;
1123
+ left: 0;
1124
+ right: 0;
1125
+ top: 0;
1126
+ bottom: 0;
1127
+ background-color: rgba(255, 255, 255, 0.6);
1128
+ z-index: 2;
1129
+ }
1130
+
1131
+ .FormUploadProgress.animated.mounting, .FormUploadProgress.animated.mounted {
1132
+ transition-delay: 500ms;
1133
+ }
1134
+
1135
+ .FormUploadProgress .wrapper {
1136
+ position: sticky;
1137
+ top: 40%;
1138
+ margin-top: 40%;
1139
+ margin-left: 50%;
1140
+ transform: translateX(-50%);
1141
+ display: flex;
1142
+ flex-flow: column;
1143
+ justify-content: center;
1144
+ align-items: center;
1166
1145
  }
1167
1146
 
1168
- .ImageGallery .previews > .arrow {
1147
+ .FormUploadProgress .wrapper .CircleProgress, .FormUploadProgress .wrapper .SpinningProgress {
1169
1148
  position: absolute;
1170
- top: 50%;
1171
- height: 30px;
1172
- width: 30px;
1173
- min-width: 30px;
1174
- min-height: 30px;
1175
- margin-top: -15px;
1149
+ width: 107px;
1150
+ height: 107px;
1151
+ top: 0;
1152
+ left: 0;
1176
1153
  }
1177
1154
 
1178
- .ImageGallery .previews > .arrow.left {
1179
- left: 0;
1155
+ .FormUploadProgress .wrapper .CircleProgress .line, .FormUploadProgress .wrapper .SpinningProgress .line {
1156
+ stroke: #2196F3;
1180
1157
  }
1181
1158
 
1182
- .ImageGallery .previews > .arrow.right {
1183
- right: 0;
1159
+ .FormUploadProgress .wrapper > .progress {
1160
+ width: 107px;
1161
+ height: 107px;
1162
+ min-height: 107px;
1163
+ display: flex;
1164
+ justify-content: center;
1165
+ align-items: center;
1166
+ box-shadow: 0px 4px 10px rgba(0, 0, 0, 0.25);
1167
+ border-radius: 50%;
1168
+ background: white;
1169
+ position: relative;
1184
1170
  }
1185
1171
 
1186
- .ImageGallery .previews > .arrow .material-icons {
1187
- font-size: 24px;
1172
+ .FormUploadProgress .wrapper > .progress > .value {
1173
+ display: inline-block;
1174
+ margin-top: 5px;
1175
+ font-weight: bold;
1176
+ line-height: 16px;
1177
+ font-size: 13px;
1178
+ text-align: center;
1179
+ color: #818181;
1180
+ }
1181
+
1182
+ .FormUploadProgress .wrapper .cancel {
1183
+ min-width: 107px;
1184
+ margin-top: 20px;
1185
+ background-color: white;
1186
+ color: #F96B5C;
1187
+ box-shadow: 0px 4px 10px rgba(0, 0, 0, 0.25);
1188
1188
  }
1189
1189
 
1190
1190
  .ModalMenu {
@@ -1319,6 +1319,104 @@
1319
1319
  will-change: left;
1320
1320
  }
1321
1321
 
1322
+ .Snackbar {
1323
+ transform: translateX(-50%);
1324
+ overflow: hidden;
1325
+ background-color: #323232;
1326
+ padding: 14px 24px 14px 24px;
1327
+ color: #fff;
1328
+ min-width: 288px;
1329
+ max-width: 568px;
1330
+ position: fixed;
1331
+ bottom: -50px;
1332
+ left: 50%;
1333
+ display: flex;
1334
+ flex-wrap: nowrap;
1335
+ align-items: center;
1336
+ opacity: 0;
1337
+ transition: bottom 0.25s ease, opacity 0.2s ease;
1338
+ border-radius: 4px;
1339
+ box-shadow: 0px 4px 4px rgba(0, 0, 0, 0.25);
1340
+ }
1341
+
1342
+ .Snackbar.shown {
1343
+ bottom: 15px;
1344
+ opacity: 1;
1345
+ }
1346
+
1347
+ .Snackbar .message {
1348
+ overflow: hidden;
1349
+ line-height: 1.2em;
1350
+ min-height: 1.2em;
1351
+ max-height: 2.4em;
1352
+ flex: 1;
1353
+ }
1354
+
1355
+ .Snackbar .action {
1356
+ text-transform: uppercase;
1357
+ font-weight: bold;
1358
+ margin-left: 48px;
1359
+ color: #bf3727;
1360
+ }
1361
+
1362
+ .Snackbar .action a {
1363
+ text-decoration: none;
1364
+ color: #bf3727;
1365
+ }
1366
+
1367
+ .SpinningProgress {
1368
+ width: 48px;
1369
+ height: 48px;
1370
+ position: relative;
1371
+ margin: 0 auto;
1372
+ }
1373
+
1374
+ .SpinningProgress:before {
1375
+ content: "";
1376
+ display: block;
1377
+ padding-top: 100%;
1378
+ }
1379
+
1380
+ .SpinningProgress .circular {
1381
+ animation: rotate 2s linear infinite;
1382
+ height: 100%;
1383
+ transform-origin: center center;
1384
+ width: 100%;
1385
+ position: absolute;
1386
+ top: 0;
1387
+ bottom: 0;
1388
+ left: 0;
1389
+ right: 0;
1390
+ margin: auto;
1391
+ }
1392
+
1393
+ .SpinningProgress .line {
1394
+ stroke: black;
1395
+ stroke-width: 2px;
1396
+ stroke-dasharray: 1, 96;
1397
+ stroke-dashoffset: 0;
1398
+ animation: dash 1.5s ease-in-out infinite, color 6s ease-in-out infinite;
1399
+ }
1400
+
1401
+ @keyframes rotate {
1402
+ 100% {
1403
+ transform: rotate(360deg);
1404
+ }
1405
+ }
1406
+ @keyframes dash {
1407
+ 0% {
1408
+ stroke-dasharray: 1, 96;
1409
+ stroke-dashoffset: 0;
1410
+ }
1411
+ 50% {
1412
+ stroke-dasharray: 43, 96;
1413
+ stroke-dashoffset: -17px;
1414
+ }
1415
+ 100% {
1416
+ stroke-dasharray: 43, 96;
1417
+ stroke-dashoffset: -53px;
1418
+ }
1419
+ }
1322
1420
  .Switch {
1323
1421
  display: inline-flex;
1324
1422
  padding-top: 5px;
@@ -1401,51 +1499,6 @@
1401
1499
  display: none;
1402
1500
  }
1403
1501
 
1404
- .Snackbar {
1405
- transform: translateX(-50%);
1406
- overflow: hidden;
1407
- background-color: #323232;
1408
- padding: 14px 24px 14px 24px;
1409
- color: #fff;
1410
- min-width: 288px;
1411
- max-width: 568px;
1412
- position: fixed;
1413
- bottom: -50px;
1414
- left: 50%;
1415
- display: flex;
1416
- flex-wrap: nowrap;
1417
- align-items: center;
1418
- opacity: 0;
1419
- transition: bottom 0.25s ease, opacity 0.2s ease;
1420
- border-radius: 4px;
1421
- box-shadow: 0px 4px 4px rgba(0, 0, 0, 0.25);
1422
- }
1423
-
1424
- .Snackbar.shown {
1425
- bottom: 15px;
1426
- opacity: 1;
1427
- }
1428
-
1429
- .Snackbar .message {
1430
- overflow: hidden;
1431
- line-height: 1.2em;
1432
- min-height: 1.2em;
1433
- max-height: 2.4em;
1434
- flex: 1;
1435
- }
1436
-
1437
- .Snackbar .action {
1438
- text-transform: uppercase;
1439
- font-weight: bold;
1440
- margin-left: 48px;
1441
- color: #bf3727;
1442
- }
1443
-
1444
- .Snackbar .action a {
1445
- text-decoration: none;
1446
- color: #bf3727;
1447
- }
1448
-
1449
1502
  .TextField {
1450
1503
  position: relative;
1451
1504
  width: 100%;
@@ -1589,59 +1642,6 @@
1589
1642
  animation-name: shake;
1590
1643
  }
1591
1644
 
1592
- .SpinningProgress {
1593
- width: 48px;
1594
- height: 48px;
1595
- position: relative;
1596
- margin: 0 auto;
1597
- }
1598
-
1599
- .SpinningProgress:before {
1600
- content: "";
1601
- display: block;
1602
- padding-top: 100%;
1603
- }
1604
-
1605
- .SpinningProgress .circular {
1606
- animation: rotate 2s linear infinite;
1607
- height: 100%;
1608
- transform-origin: center center;
1609
- width: 100%;
1610
- position: absolute;
1611
- top: 0;
1612
- bottom: 0;
1613
- left: 0;
1614
- right: 0;
1615
- margin: auto;
1616
- }
1617
-
1618
- .SpinningProgress .line {
1619
- stroke: black;
1620
- stroke-width: 2px;
1621
- stroke-dasharray: 1, 96;
1622
- stroke-dashoffset: 0;
1623
- animation: dash 1.5s ease-in-out infinite, color 6s ease-in-out infinite;
1624
- }
1625
-
1626
- @keyframes rotate {
1627
- 100% {
1628
- transform: rotate(360deg);
1629
- }
1630
- }
1631
- @keyframes dash {
1632
- 0% {
1633
- stroke-dasharray: 1, 96;
1634
- stroke-dashoffset: 0;
1635
- }
1636
- 50% {
1637
- stroke-dasharray: 43, 96;
1638
- stroke-dashoffset: -17px;
1639
- }
1640
- 100% {
1641
- stroke-dasharray: 43, 96;
1642
- stroke-dashoffset: -53px;
1643
- }
1644
- }
1645
1645
  .Table {
1646
1646
  font-family: Roboto, sans-serif;
1647
1647
  font-size: 14px;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-ui-basics",
3
- "version": "0.0.137",
3
+ "version": "0.0.141",
4
4
  "description": "",
5
5
  "module": "index.js",
6
6
  "_main": "index.cjs.js",