react-ui-basics 0.0.186 → 0.0.188
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.
- package/Animated.js +20 -20
- package/Animated.js.map +1 -1
- package/AutocompleteSelect.js +56 -63
- package/AutocompleteSelect.js.map +1 -1
- package/Button.js +11 -11
- package/Button.js.map +1 -1
- package/Checkbox.js +7 -7
- package/Checkbox.js.map +1 -1
- package/CircleProgress.js.map +1 -1
- package/CommonFields.js.map +1 -1
- package/DNDContainer.js +1 -1
- package/DNDDraggable.js +6 -6
- package/DNDDraggable.js.map +1 -1
- package/DNDDroppable.js +4 -4
- package/DNDDroppable.js.map +1 -1
- package/DatePicker.css +1 -1
- package/Dialog.js +19 -19
- package/Dialog.js.map +1 -1
- package/DropFileInput.js +5 -5
- package/DropFileInput.js.map +1 -1
- package/DroppableHorizontalList.js +2 -2
- package/DroppableHorizontalList.js.map +1 -1
- package/DroppableList.js +2 -2
- package/DroppableList.js.map +1 -1
- package/Dropzone.js +10 -10
- package/Dropzone.js.map +1 -1
- package/FilteredList.css +2 -2
- package/FilteredList.js +22 -22
- package/FilteredList.js.map +1 -1
- package/FloatingActionButton.js +4 -4
- package/FloatingActionButton.js.map +1 -1
- package/FormUploadProgress.js +6 -6
- package/FormUploadProgress.js.map +1 -1
- package/ImageGallery.js +24 -28
- package/ImageGallery.js.map +1 -1
- package/MaterialIcon.js +1 -1
- package/MaterialIcon.js.map +1 -1
- package/Modal.js +14 -15
- package/Modal.js.map +1 -1
- package/ModalMenu.js +1 -1
- package/ModalMenu.js.map +1 -1
- package/ReactConstants.d.ts +3 -3
- package/ReactConstants.js.map +1 -1
- package/ReactCreateElement.js.map +1 -1
- package/ReadyListener.js +5 -5
- package/ReadyListener.js.map +1 -1
- package/Scrollable.js +3 -3
- package/Scrollable.js.map +1 -1
- package/Size.js.map +1 -1
- package/Snackbar.js +5 -5
- package/Snackbar.js.map +1 -1
- package/SpinningProgress.js.map +1 -1
- package/Switch.js +8 -8
- package/Switch.js.map +1 -1
- package/Table.css +1 -1
- package/Table.d.ts +28 -14
- package/Table.js +11 -9
- package/Table.js.map +1 -1
- package/TextField.css +7 -7
- package/TextField.js +28 -28
- package/TextField.js.map +1 -1
- package/Tools.d.ts +14 -5
- package/Tools.js +9 -13
- package/Tools.js.map +1 -1
- package/_virtual/_rollupPluginBabelHelpers.js.map +1 -1
- package/bundle.css +778 -778
- package/package.json +34 -32
- package/router/HistoryTools.js.map +1 -1
- package/router/Link.js +2 -2
- package/router/Link.js.map +1 -1
- package/router/NavLink.js +4 -4
- package/router/NavLink.js.map +1 -1
- package/router/Route.js +8 -8
- package/router/Route.js.map +1 -1
- package/router/index.js.map +1 -1
- package/src/DatePicker.css +1 -1
- package/src/FilteredList.css +2 -2
- package/src/ReactConstants.ts +3 -3
- package/src/Table.css +1 -1
- package/src/Table.tsx +61 -34
- package/src/TextField.css +7 -7
- package/src/Tools.ts +24 -11
- package/store/ProxyTools.js.map +1 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "react-ui-basics",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.188",
|
|
4
4
|
"description": "",
|
|
5
5
|
"module": "index.js",
|
|
6
6
|
"_main": "index.cjs.js",
|
|
@@ -41,52 +41,54 @@
|
|
|
41
41
|
"homepage": "https://github.com/wizzardo/react-ui-basics",
|
|
42
42
|
"license": "MIT",
|
|
43
43
|
"devDependencies": {
|
|
44
|
-
"@babel/core": "^7.
|
|
45
|
-
"@babel/plugin-external-helpers": "^7.
|
|
46
|
-
"@babel/plugin-proposal-class-properties": "^7.
|
|
47
|
-
"@babel/plugin-proposal-decorators": "^7.
|
|
48
|
-
"@babel/plugin-proposal-do-expressions": "^7.
|
|
49
|
-
"@babel/plugin-proposal-export-default-from": "^7.
|
|
50
|
-
"@babel/plugin-proposal-function-bind": "^7.
|
|
51
|
-
"@babel/plugin-proposal-logical-assignment-operators": "^7.
|
|
52
|
-
"@babel/plugin-proposal-nullish-coalescing-operator": "^7.
|
|
53
|
-
"@babel/plugin-proposal-optional-chaining": "^7.
|
|
54
|
-
"@babel/plugin-proposal-pipeline-operator": "^7.
|
|
55
|
-
"@babel/plugin-proposal-private-property-in-object": "^7.
|
|
44
|
+
"@babel/core": "^7.19.6",
|
|
45
|
+
"@babel/plugin-external-helpers": "^7.18.6",
|
|
46
|
+
"@babel/plugin-proposal-class-properties": "^7.18.6",
|
|
47
|
+
"@babel/plugin-proposal-decorators": "^7.19.6",
|
|
48
|
+
"@babel/plugin-proposal-do-expressions": "^7.18.6",
|
|
49
|
+
"@babel/plugin-proposal-export-default-from": "^7.18.10",
|
|
50
|
+
"@babel/plugin-proposal-function-bind": "^7.18.9",
|
|
51
|
+
"@babel/plugin-proposal-logical-assignment-operators": "^7.18.9",
|
|
52
|
+
"@babel/plugin-proposal-nullish-coalescing-operator": "^7.18.6",
|
|
53
|
+
"@babel/plugin-proposal-optional-chaining": "^7.18.9",
|
|
54
|
+
"@babel/plugin-proposal-pipeline-operator": "^7.18.9",
|
|
55
|
+
"@babel/plugin-proposal-private-property-in-object": "^7.18.6",
|
|
56
56
|
"@babel/plugin-syntax-dynamic-import": "^7.8.3",
|
|
57
|
-
"@babel/plugin-transform-runtime": "^7.
|
|
58
|
-
"@babel/preset-env": "^7.
|
|
59
|
-
"@babel/preset-react": "^7.
|
|
60
|
-
"@rollup/plugin-typescript": "^
|
|
61
|
-
"@storybook/addon-actions": "
|
|
62
|
-
"@storybook/addon-controls": "
|
|
63
|
-
"@storybook/addon-links": "
|
|
64
|
-
"@storybook/addon-storysource": "
|
|
65
|
-
"@storybook/addons": "
|
|
66
|
-
"@storybook/react": "
|
|
67
|
-
"@storybook/source-loader": "
|
|
68
|
-
"
|
|
57
|
+
"@babel/plugin-transform-runtime": "^7.19.6",
|
|
58
|
+
"@babel/preset-env": "^7.19.4",
|
|
59
|
+
"@babel/preset-react": "^7.18.6",
|
|
60
|
+
"@rollup/plugin-typescript": "^9.0.1",
|
|
61
|
+
"@storybook/addon-actions": "6.4.19",
|
|
62
|
+
"@storybook/addon-controls": "6.4.19",
|
|
63
|
+
"@storybook/addon-links": "6.4.19",
|
|
64
|
+
"@storybook/addon-storysource": "6.4.19",
|
|
65
|
+
"@storybook/addons": "6.4.19",
|
|
66
|
+
"@storybook/react": "6.4.19",
|
|
67
|
+
"@storybook/source-loader": "6.4.19",
|
|
68
|
+
"@types/react": "^17.0.50",
|
|
69
|
+
"@types/react-dom": "^17.0.17",
|
|
70
|
+
"babel-loader": "^8.2.5",
|
|
69
71
|
"babel-plugin-transform-react-remove-prop-types": "^0.4.24",
|
|
70
|
-
"core-js": "^3.
|
|
72
|
+
"core-js": "^3.25.5",
|
|
71
73
|
"enzyme": "^3.11.0",
|
|
72
74
|
"enzyme-adapter-react-16": "^1.15.6",
|
|
73
75
|
"jest-enzyme": "^7.1.2",
|
|
74
76
|
"npm-run-all": "^4.1.5",
|
|
75
77
|
"react": "^16.11.0",
|
|
76
78
|
"react-dom": "^16.11.0",
|
|
77
|
-
"react-scripts": "
|
|
78
|
-
"react-test-renderer": "^16.
|
|
79
|
-
"rollup": "^2.
|
|
79
|
+
"react-scripts": "4.0.3",
|
|
80
|
+
"react-test-renderer": "^16.11.0",
|
|
81
|
+
"rollup": "^2.79.1",
|
|
80
82
|
"rollup-plugin-babel": "^4.4.0",
|
|
81
83
|
"rollup-plugin-cleanup": "^3.2.1",
|
|
82
84
|
"rollup-plugin-commonjs": "^10.1.0",
|
|
83
|
-
"rollup-plugin-dts": "^4.2.
|
|
85
|
+
"rollup-plugin-dts": "^4.2.3",
|
|
84
86
|
"rollup-plugin-json": "^4.0.0",
|
|
85
87
|
"rollup-plugin-node-resolve": "^5.2.0",
|
|
86
88
|
"rollup-plugin-replace": "^2.2.0",
|
|
87
89
|
"rollup-plugin-scss": "^3.0.0",
|
|
88
|
-
"sass": "^1.
|
|
89
|
-
"typescript": "^4.
|
|
90
|
+
"sass": "^1.55.0",
|
|
91
|
+
"typescript": "^4.8.4"
|
|
90
92
|
},
|
|
91
93
|
"browserslist": {
|
|
92
94
|
"production": [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HistoryTools.js","sources":["../src/router/HistoryTools.js"],"sourcesContent":["import {DOCUMENT, WINDOW} from \"../Tools\";\n\nconst history = WINDOW.history;\n\nconst events = ['pushState', 'replaceState'];\nevents.forEach(e => {\n var original = history[e];\n history[e] = function () {\n original.apply(history, arguments);\n fireEvent(e);\n }\n});\n\nconst fireEvent = (name) => {\n const event = DOCUMENT.createEvent('Event');\n event.initEvent(name, true, true);\n WINDOW.dispatchEvent(event);\n};\n\nexport const pushLocation = (path) => path !== WINDOW.location.pathname && history[events[0]](null, null, path);\n\nexport const replaceLocation = (path) => history[events[1]](null, null, path);\n\nif (window['isNotProductionEnvironment']) {\n // will be removed in production build\n // needed only to prevent bundler to remove 'unused' functions\n window['history-tools'] = {\n replaceLocation\n }\n}"],"names":["history","WINDOW","events","forEach","e","original","apply","arguments","fireEvent","name","event","DOCUMENT","createEvent","initEvent","dispatchEvent","pushLocation","path","location","pathname","replaceLocation","window"],"mappings":";;AAEA,IAAMA,OAAO,GAAGC,MAAM,CAACD,
|
|
1
|
+
{"version":3,"file":"HistoryTools.js","sources":["../src/router/HistoryTools.js"],"sourcesContent":["import {DOCUMENT, WINDOW} from \"../Tools\";\n\nconst history = WINDOW.history;\n\nconst events = ['pushState', 'replaceState'];\nevents.forEach(e => {\n var original = history[e];\n history[e] = function () {\n original.apply(history, arguments);\n fireEvent(e);\n }\n});\n\nconst fireEvent = (name) => {\n const event = DOCUMENT.createEvent('Event');\n event.initEvent(name, true, true);\n WINDOW.dispatchEvent(event);\n};\n\nexport const pushLocation = (path) => path !== WINDOW.location.pathname && history[events[0]](null, null, path);\n\nexport const replaceLocation = (path) => history[events[1]](null, null, path);\n\nif (window['isNotProductionEnvironment']) {\n // will be removed in production build\n // needed only to prevent bundler to remove 'unused' functions\n window['history-tools'] = {\n replaceLocation\n }\n}"],"names":["history","WINDOW","events","forEach","e","original","apply","arguments","fireEvent","name","event","DOCUMENT","createEvent","initEvent","dispatchEvent","pushLocation","path","location","pathname","replaceLocation","window"],"mappings":";;AAEA,IAAMA,OAAO,GAAGC,MAAM,CAACD,OAAO,CAAA;AAE9B,IAAME,MAAM,GAAG,CAAC,WAAW,EAAE,cAAc,CAAC,CAAA;AAC5CA,MAAM,CAACC,OAAO,CAAC,UAAAC,CAAC,EAAI;AAChB,EAAA,IAAIC,QAAQ,GAAGL,OAAO,CAACI,CAAC,CAAC,CAAA;AACzBJ,EAAAA,OAAO,CAACI,CAAC,CAAC,GAAG,YAAY;AACrBC,IAAAA,QAAQ,CAACC,KAAK,CAACN,OAAO,EAAEO,SAAS,CAAC,CAAA;IAClCC,SAAS,CAACJ,CAAC,CAAC,CAAA;GACf,CAAA;AACL,CAAC,CAAC,CAAA;AAEF,IAAMI,SAAS,GAAG,SAAZA,SAAS,CAAIC,IAAI,EAAK;AACxB,EAAA,IAAMC,KAAK,GAAGC,QAAQ,CAACC,WAAW,CAAC,OAAO,CAAC,CAAA;EAC3CF,KAAK,CAACG,SAAS,CAACJ,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;AACjCR,EAAAA,MAAM,CAACa,aAAa,CAACJ,KAAK,CAAC,CAAA;AAC/B,CAAC,CAAA;IAEYK,YAAY,GAAG,SAAfA,YAAY,CAAIC,IAAI,EAAA;EAAA,OAAKA,IAAI,KAAKf,MAAM,CAACgB,QAAQ,CAACC,QAAQ,IAAIlB,OAAO,CAACE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,EAAEc,IAAI,CAAC,CAAA;AAAA,EAAA;IAElGG,eAAe,GAAG,SAAlBA,eAAe,CAAIH,IAAI,EAAA;AAAA,EAAA,OAAKhB,OAAO,CAACE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,EAAEc,IAAI,CAAC,CAAA;AAAA,EAAA;AAE7E,IAAII,MAAM,CAAC,4BAA4B,CAAC,EAAE;EAGtCA,MAAM,CAAC,eAAe,CAAC,GAAG;AACtBD,IAAAA,eAAe,EAAfA,eAAAA;GACH,CAAA;AACL;;;;"}
|
package/router/Link.js
CHANGED
|
@@ -6,8 +6,8 @@ import { preventDefault } from '../Tools.js';
|
|
|
6
6
|
|
|
7
7
|
var Link = function Link(_ref) {
|
|
8
8
|
var children = _ref[ReactConstants[4]],
|
|
9
|
-
|
|
10
|
-
|
|
9
|
+
href = _ref.href,
|
|
10
|
+
className = _ref[ReactConstants[5]];
|
|
11
11
|
return ReactCreateElement("a", {
|
|
12
12
|
href: href,
|
|
13
13
|
[ReactConstants[5]]: className,
|
package/router/Link.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Link.js","sources":["../src/router/Link.js"],"sourcesContent":["import React from 'react';\nimport ReactCreateElement from '../ReactCreateElement';\nimport PropTypes from 'prop-types';\nimport './HistoryTools'\nimport {pushLocation} from \"./HistoryTools\";\nimport {preventDefault} from \"../Tools\";\n\nconst Link = ({children, href, className}) =>\n <a href={href} className={className} onClick={(e) => {\n if (!e.ctrlKey) {\n preventDefault(e);\n pushLocation(href);\n }\n }}>{children}</a>;\n\nif (window.isNotProductionEnvironment) {\n Link.propTypes = {\n href: PropTypes.string.isRequired,\n };\n}\n\nexport default Link;"],"names":["Link","children","href","className","e","ctrlKey","preventDefault","pushLocation","window","isNotProductionEnvironment","propTypes","PropTypes","string","isRequired"],"mappings":";;;;;;AAOA,IAAMA,IAAI,GAAG,SAAPA,
|
|
1
|
+
{"version":3,"file":"Link.js","sources":["../src/router/Link.js"],"sourcesContent":["import React from 'react';\nimport ReactCreateElement from '../ReactCreateElement';\nimport PropTypes from 'prop-types';\nimport './HistoryTools'\nimport {pushLocation} from \"./HistoryTools\";\nimport {preventDefault} from \"../Tools\";\n\nconst Link = ({children, href, className}) =>\n <a href={href} className={className} onClick={(e) => {\n if (!e.ctrlKey) {\n preventDefault(e);\n pushLocation(href);\n }\n }}>{children}</a>;\n\nif (window.isNotProductionEnvironment) {\n Link.propTypes = {\n href: PropTypes.string.isRequired,\n };\n}\n\nexport default Link;"],"names":["Link","children","href","className","e","ctrlKey","preventDefault","pushLocation","window","isNotProductionEnvironment","propTypes","PropTypes","string","isRequired"],"mappings":";;;;;;AAOA,IAAMA,IAAI,GAAG,SAAPA,IAAI,CAAA,IAAA,EAAA;EAAA,IAAKC,QAAQ,QAARA,QAAQ;AAAEC,IAAAA,IAAI,QAAJA,IAAI;AAAEC,IAAAA,SAAS,QAATA,SAAS,CAAA;EAAA,OACpC,kBAAA,CAAA,GAAA,EAAA;AAAG,IAAA,IAAI,EAAED,IAAK;AAAC,IAAA,SAAS,EAAEC,SAAU;IAAC,OAAO,EAAE,SAACC,OAAAA,CAAAA,CAAC,EAAK;AACjD,MAAA,IAAI,CAACA,CAAC,CAACC,OAAO,EAAE;QACZC,cAAc,CAACF,CAAC,CAAC,CAAA;QACjBG,YAAY,CAACL,IAAI,CAAC,CAAA;AACtB,OAAA;AACJ,KAAA;AAAE,GAAA,EAAED,QAAQ,CAAK,CAAA;AAAA,CAAA,CAAA;AAErB,IAAIO,MAAM,CAACC,0BAA0B,EAAE;EACnCT,IAAI,CAACU,SAAS,GAAG;AACbR,IAAAA,IAAI,EAAES,SAAS,CAACC,MAAM,CAACC,UAAAA;GAC1B,CAAA;AACL,CAAA;AAEA,aAAeb,IAAI;;;;"}
|
package/router/NavLink.js
CHANGED
|
@@ -7,10 +7,10 @@ import { classNames } from '../Tools.js';
|
|
|
7
7
|
|
|
8
8
|
var NavLink = function NavLink(_ref) {
|
|
9
9
|
var children = _ref[ReactConstants[4]],
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
10
|
+
href = _ref.href,
|
|
11
|
+
highlightPath = _ref.highlightPath,
|
|
12
|
+
className = _ref[ReactConstants[5]],
|
|
13
|
+
activeClassName = _ref.activeClassName;
|
|
14
14
|
return ReactCreateElement(Route, {
|
|
15
15
|
path: highlightPath || href,
|
|
16
16
|
controller: function controller(matches) {
|
package/router/NavLink.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NavLink.js","sources":["../src/router/NavLink.js"],"sourcesContent":["import React from 'react';\nimport ReactCreateElement from '../ReactCreateElement';\nimport PropTypes from 'prop-types';\nimport './HistoryTools'\nimport Route from \"./Route\";\nimport Link from \"./Link\";\nimport {classNames} from \"../Tools\";\n\nconst NavLink = ({children, href, highlightPath, className, activeClassName}) =>\n <Route path={highlightPath || href}\n controller={matches => <Link href={href} className={classNames(className, matches && activeClassName)}>\n {children}\n </Link>}\n />;\n\nif(window.isNotProductionEnvironment) {\n NavLink.propTypes = Link.propTypes;\n}\n\nexport default NavLink;"],"names":["NavLink","children","href","highlightPath","className","activeClassName","matches","classNames","window","isNotProductionEnvironment","propTypes","Link"],"mappings":";;;;;;;AAQA,IAAMA,OAAO,GAAG,SAAVA,
|
|
1
|
+
{"version":3,"file":"NavLink.js","sources":["../src/router/NavLink.js"],"sourcesContent":["import React from 'react';\nimport ReactCreateElement from '../ReactCreateElement';\nimport PropTypes from 'prop-types';\nimport './HistoryTools'\nimport Route from \"./Route\";\nimport Link from \"./Link\";\nimport {classNames} from \"../Tools\";\n\nconst NavLink = ({children, href, highlightPath, className, activeClassName}) =>\n <Route path={highlightPath || href}\n controller={matches => <Link href={href} className={classNames(className, matches && activeClassName)}>\n {children}\n </Link>}\n />;\n\nif(window.isNotProductionEnvironment) {\n NavLink.propTypes = Link.propTypes;\n}\n\nexport default NavLink;"],"names":["NavLink","children","href","highlightPath","className","activeClassName","matches","classNames","window","isNotProductionEnvironment","propTypes","Link"],"mappings":";;;;;;;AAQA,IAAMA,OAAO,GAAG,SAAVA,OAAO,CAAA,IAAA,EAAA;EAAA,IAAKC,QAAQ,QAARA,QAAQ;AAAEC,IAAAA,IAAI,QAAJA,IAAI;AAAEC,IAAAA,aAAa,QAAbA,aAAa;AAAEC,IAAAA,SAAS,QAATA,SAAS;AAAEC,IAAAA,eAAe,QAAfA,eAAe,CAAA;AAAA,EAAA,OACvE,mBAAC,KAAK,EAAA;IAAC,IAAI,EAAEF,aAAa,IAAID,IAAK;IAC5B,UAAU,EAAE,oBAAAI,OAAO,EAAA;AAAA,MAAA,OAAI,mBAAC,IAAI,EAAA;AAAC,QAAA,IAAI,EAAEJ,IAAK;AAAC,QAAA,SAAS,EAAEK,UAAU,CAACH,SAAS,EAAEE,OAAO,IAAID,eAAe,CAAA;AAAE,OAAA,EACjGJ,QAAQ,CACN,CAAA;AAAA,KAAA;GACZ,CAAA,CAAA;AAAA,CAAA,CAAA;AAEN,IAAGO,MAAM,CAACC,0BAA0B,EAAE;AAClCT,EAAAA,OAAO,CAACU,SAAS,GAAGC,IAAI,CAACD,SAAS,CAAA;AACtC,CAAA;AAEA,gBAAeV,OAAO;;;;"}
|
package/router/Route.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
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 { inherits as _inherits, createSuper as _createSuper, classCallCheck as _classCallCheck, assertThisInitialized as _assertThisInitialized, slicedToArray as _slicedToArray
|
|
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 { inherits as _inherits, createSuper as _createSuper, createClass as _createClass, classCallCheck as _classCallCheck, assertThisInitialized as _assertThisInitialized, slicedToArray as _slicedToArray } from '../_virtual/_rollupPluginBabelHelpers.js';
|
|
2
2
|
import {toConsumableArray as __toConsumableArray} from "./../_virtual/_rollupPluginBabelHelpers"; import {extends as __extends} from "./../_virtual/_rollupPluginBabelHelpers"; import {inherits as __inherits} from "./../_virtual/_rollupPluginBabelHelpers"; import React from 'react';
|
|
3
3
|
import PropTypes from 'prop-types';
|
|
4
4
|
import { setOf, allPropsExcept, isDifferent, addEventListener, WINDOW, removeEventListener, orNoop } from '../Tools.js';
|
|
5
|
-
import { stateGSs, componentDidUpdate, render, componentDidMount, componentWillUnmount, propsGetter, setState
|
|
5
|
+
import { stateGSs, componentDidUpdate, render, componentDidMount, componentWillUnmount, PureComponent, propsGetter, setState } from '../ReactConstants.js';
|
|
6
6
|
|
|
7
7
|
var historyEvents = ['popstate', 'pushState', 'replaceState'];
|
|
8
8
|
var cleanPath = function cleanPath(path) {
|
|
@@ -105,10 +105,10 @@ var Route = function (_PureComponent) {
|
|
|
105
105
|
var matcher;
|
|
106
106
|
var props = propsGetter(that);
|
|
107
107
|
var _stateGSs = stateGSs(that, 3),
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
108
|
+
_stateGSs2 = _slicedToArray(_stateGSs, 3),
|
|
109
|
+
isRendering = _stateGSs2[0],
|
|
110
|
+
paramsState = _stateGSs2[1],
|
|
111
|
+
mergedPropsState = _stateGSs2[2];
|
|
112
112
|
var process = function process() {
|
|
113
113
|
var params = {};
|
|
114
114
|
var nextState = {};
|
|
@@ -131,8 +131,8 @@ var Route = function (_PureComponent) {
|
|
|
131
131
|
};
|
|
132
132
|
that[ReactConstants[3]] = function () {
|
|
133
133
|
var _props = props(),
|
|
134
|
-
|
|
135
|
-
|
|
134
|
+
children = _props[ReactConstants[4]],
|
|
135
|
+
controller = _props.controller;
|
|
136
136
|
return (controller || DefaultController)(isRendering(), children, mergedPropsState());
|
|
137
137
|
};
|
|
138
138
|
that[ReactConstants[0]] = function () {
|
package/router/Route.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Route.js","sources":["../src/router/Route.js"],"sourcesContent":["import React from 'react';\nimport ReactCreateElement from '../ReactCreateElement';\nimport PropTypes from 'prop-types';\nimport './HistoryTools'\nimport {allPropsExcept, isDifferent, orNoop, setOf, WINDOW, addEventListener, removeEventListener} from \"../Tools\";\nimport {componentDidUpdate, render, PureComponent, componentDidMount, componentWillUnmount, propsGetter, stateGSs, setState} from \"../ReactConstants\";\n\nconst historyEvents = ['popstate', 'pushState', 'replaceState'];\n\nconst cleanPath = (path) => {\n if (path.length > 1 && path.lastIndexOf('/') === path.length - 1)\n return path.substring(0, path.length - 1);\n\n return path;\n};\n\nconst createUrlMatcher = path => {\n let matcher;\n const segments = path.split('/');\n const optionals = segments.map(it => it === '*' || it.indexOf('?') === it.length - 1);\n const containsVariables = path.indexOf(':') !== -1;\n const containsAnySegment = path.indexOf('*') !== -1;\n const containsNot = path.indexOf('!') !== -1;\n\n if (!containsAnySegment && !containsVariables && !containsNot) {\n matcher = (p) => p === path\n } else {\n const endsWithAny = path.lastIndexOf('*') === path.length - 1;\n const matchers = segments.map((segment, i) => {\n let matcher;\n const variableNameIndex = segment.indexOf(':');\n if (segment === '*')\n matcher = () => true;\n else if (variableNameIndex !== -1) {\n let variable = segment.substring(variableNameIndex + 1);\n let regex = null\n if (variable.indexOf('?') !== -1)\n variable = variable.substring(0, variable.indexOf('?'));\n if (variable.indexOf('(') !== -1) {\n let regexStart = variable.indexOf('(');\n regex = new RegExp(variable.substring(regexStart))\n variable = variable.substring(0, regexStart);\n }\n\n const prefix = variableNameIndex && segment.substring(0, variableNameIndex);\n matcher = (p, params) => {\n if (regex && !!p && !p.match(regex))\n return false\n\n if (!p && !optionals[i])\n return false;\n if (prefix) {\n if (p.indexOf(prefix) === 0)\n p = p.substring(variableNameIndex);\n else\n return false;\n }\n\n params[variable] = p;\n return true;\n }\n } else if (segment.indexOf('!') === 0) {\n const not = segment.substring(1);\n matcher = (p) => p !== not;\n } else\n matcher = (p) => p === segment;\n return matcher;\n });\n\n matcher = (path, params) => {\n const segments = path.split('/');\n const length = Math.min(matchers.length, segments.length);\n\n // only exact match if mapping not ends with *\n if (!endsWithAny && matchers.length < segments.length)\n return false;\n\n // check that each segment matches\n for (let i = 0; i < length; i++) {\n if (!matchers[i](segments[i], params))\n return false;\n }\n\n // check that all other segments are optional\n for (let i = length; i < optionals.length; i++) {\n if (!optionals[i])\n return false;\n }\n\n return true;\n };\n }\n return matcher\n};\n\nconst createUrlMatchers = path => {\n if (Array.isArray(path)) {\n const matchers = path.map(it => createUrlMatcher(it));\n return (path, params) => {\n for (let i = 0; i < matchers.length; i++) {\n let props = {};\n if (matchers[i](path, props)) {\n Object.assign(params, props);\n return true;\n }\n }\n return false;\n }\n } else {\n return createUrlMatcher(path);\n }\n};\n\nconst selfProps = setOf([\n 'children',\n 'path',\n 'controller',\n 'onToggle',\n]);\n\nclass Route extends PureComponent {\n\n constructor(properties) {\n super(properties);\n const that = this;\n that.state = {};\n let matcher;\n\n const props = propsGetter(that);\n const [\n isRendering,\n paramsState,\n mergedPropsState,\n ] = stateGSs(that, 3);\n\n const process = () => {\n let params = {};\n let nextState = {};\n let isMatching = matcher(cleanPath(WINDOW.location.pathname), params);\n\n const toggle = isMatching !== isRendering();\n toggle && (nextState[isRendering] = isMatching);\n\n if (isDifferent(paramsState(), params)) {\n nextState[mergedPropsState] = Object.assign(allPropsExcept(props(), selfProps), params);\n nextState[paramsState] = params;\n }\n\n //set new state just once to avoid several renders\n setState(that, nextState, () => {\n toggle && orNoop(props().onToggle)(isMatching);\n })\n };\n\n that[componentDidUpdate] = (prevProps, prevState) => {\n if (props() !== prevProps) {\n let mergedProps = Object.assign(allPropsExcept(props(), selfProps), paramsState());\n if (isDifferent(mergedProps, mergedPropsState()))\n mergedPropsState(mergedProps);\n }\n };\n\n that[render] = () => {\n const {children, controller} = props();\n return (controller || DefaultController)(isRendering(), children, mergedPropsState());\n };\n\n that[componentDidMount] = () => {\n matcher = createUrlMatchers(props().path);\n\n historyEvents.forEach(it => {\n addEventListener(WINDOW, it, process);\n });\n process();\n };\n\n that[componentWillUnmount] = () => {\n historyEvents.forEach(it => {\n removeEventListener(WINDOW, it, process);\n });\n };\n }\n}\n\nif (window.isNotProductionEnvironment) {\n Route.propTypes = {\n path: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string)\n ]).isRequired,\n controller: PropTypes.func,\n onToggle: PropTypes.func,\n };\n}\n\nconst DefaultController = (matches, children, props) => {\n if (!matches || !children) return null;\n if (Object.keys(props).length > 0) {\n return React.Children.map(children, child => React.cloneElement(child, props));\n }\n return children;\n};\n\nexport default Route;"],"names":["historyEvents","cleanPath","path","length","lastIndexOf","substring","createUrlMatcher","matcher","segments","split","optionals","map","it","indexOf","containsVariables","containsAnySegment","containsNot","p","endsWithAny","matchers","segment","i","variableNameIndex","variable","regex","regexStart","RegExp","prefix","params","match","not","Math","min","createUrlMatchers","Array","isArray","props","Object","assign","selfProps","setOf","Route","properties","that","state","propsGetter","stateGSs","isRendering","paramsState","mergedPropsState","process","nextState","isMatching","WINDOW","location","pathname","toggle","isDifferent","allPropsExcept","setState","orNoop","onToggle","componentDidUpdate","prevProps","prevState","mergedProps","render","children","controller","DefaultController","componentDidMount","forEach","addEventListener","componentWillUnmount","removeEventListener","PureComponent","window","isNotProductionEnvironment","propTypes","PropTypes","oneOfType","string","arrayOf","isRequired","func","matches","keys","React","Children","child","cloneElement"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Route.js","sources":["../src/router/Route.js"],"sourcesContent":["import React from 'react';\nimport ReactCreateElement from '../ReactCreateElement';\nimport PropTypes from 'prop-types';\nimport './HistoryTools'\nimport {allPropsExcept, isDifferent, orNoop, setOf, WINDOW, addEventListener, removeEventListener} from \"../Tools\";\nimport {componentDidUpdate, render, PureComponent, componentDidMount, componentWillUnmount, propsGetter, stateGSs, setState} from \"../ReactConstants\";\n\nconst historyEvents = ['popstate', 'pushState', 'replaceState'];\n\nconst cleanPath = (path) => {\n if (path.length > 1 && path.lastIndexOf('/') === path.length - 1)\n return path.substring(0, path.length - 1);\n\n return path;\n};\n\nconst createUrlMatcher = path => {\n let matcher;\n const segments = path.split('/');\n const optionals = segments.map(it => it === '*' || it.indexOf('?') === it.length - 1);\n const containsVariables = path.indexOf(':') !== -1;\n const containsAnySegment = path.indexOf('*') !== -1;\n const containsNot = path.indexOf('!') !== -1;\n\n if (!containsAnySegment && !containsVariables && !containsNot) {\n matcher = (p) => p === path\n } else {\n const endsWithAny = path.lastIndexOf('*') === path.length - 1;\n const matchers = segments.map((segment, i) => {\n let matcher;\n const variableNameIndex = segment.indexOf(':');\n if (segment === '*')\n matcher = () => true;\n else if (variableNameIndex !== -1) {\n let variable = segment.substring(variableNameIndex + 1);\n let regex = null\n if (variable.indexOf('?') !== -1)\n variable = variable.substring(0, variable.indexOf('?'));\n if (variable.indexOf('(') !== -1) {\n let regexStart = variable.indexOf('(');\n regex = new RegExp(variable.substring(regexStart))\n variable = variable.substring(0, regexStart);\n }\n\n const prefix = variableNameIndex && segment.substring(0, variableNameIndex);\n matcher = (p, params) => {\n if (regex && !!p && !p.match(regex))\n return false\n\n if (!p && !optionals[i])\n return false;\n if (prefix) {\n if (p.indexOf(prefix) === 0)\n p = p.substring(variableNameIndex);\n else\n return false;\n }\n\n params[variable] = p;\n return true;\n }\n } else if (segment.indexOf('!') === 0) {\n const not = segment.substring(1);\n matcher = (p) => p !== not;\n } else\n matcher = (p) => p === segment;\n return matcher;\n });\n\n matcher = (path, params) => {\n const segments = path.split('/');\n const length = Math.min(matchers.length, segments.length);\n\n // only exact match if mapping not ends with *\n if (!endsWithAny && matchers.length < segments.length)\n return false;\n\n // check that each segment matches\n for (let i = 0; i < length; i++) {\n if (!matchers[i](segments[i], params))\n return false;\n }\n\n // check that all other segments are optional\n for (let i = length; i < optionals.length; i++) {\n if (!optionals[i])\n return false;\n }\n\n return true;\n };\n }\n return matcher\n};\n\nconst createUrlMatchers = path => {\n if (Array.isArray(path)) {\n const matchers = path.map(it => createUrlMatcher(it));\n return (path, params) => {\n for (let i = 0; i < matchers.length; i++) {\n let props = {};\n if (matchers[i](path, props)) {\n Object.assign(params, props);\n return true;\n }\n }\n return false;\n }\n } else {\n return createUrlMatcher(path);\n }\n};\n\nconst selfProps = setOf([\n 'children',\n 'path',\n 'controller',\n 'onToggle',\n]);\n\nclass Route extends PureComponent {\n\n constructor(properties) {\n super(properties);\n const that = this;\n that.state = {};\n let matcher;\n\n const props = propsGetter(that);\n const [\n isRendering,\n paramsState,\n mergedPropsState,\n ] = stateGSs(that, 3);\n\n const process = () => {\n let params = {};\n let nextState = {};\n let isMatching = matcher(cleanPath(WINDOW.location.pathname), params);\n\n const toggle = isMatching !== isRendering();\n toggle && (nextState[isRendering] = isMatching);\n\n if (isDifferent(paramsState(), params)) {\n nextState[mergedPropsState] = Object.assign(allPropsExcept(props(), selfProps), params);\n nextState[paramsState] = params;\n }\n\n //set new state just once to avoid several renders\n setState(that, nextState, () => {\n toggle && orNoop(props().onToggle)(isMatching);\n })\n };\n\n that[componentDidUpdate] = (prevProps, prevState) => {\n if (props() !== prevProps) {\n let mergedProps = Object.assign(allPropsExcept(props(), selfProps), paramsState());\n if (isDifferent(mergedProps, mergedPropsState()))\n mergedPropsState(mergedProps);\n }\n };\n\n that[render] = () => {\n const {children, controller} = props();\n return (controller || DefaultController)(isRendering(), children, mergedPropsState());\n };\n\n that[componentDidMount] = () => {\n matcher = createUrlMatchers(props().path);\n\n historyEvents.forEach(it => {\n addEventListener(WINDOW, it, process);\n });\n process();\n };\n\n that[componentWillUnmount] = () => {\n historyEvents.forEach(it => {\n removeEventListener(WINDOW, it, process);\n });\n };\n }\n}\n\nif (window.isNotProductionEnvironment) {\n Route.propTypes = {\n path: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string)\n ]).isRequired,\n controller: PropTypes.func,\n onToggle: PropTypes.func,\n };\n}\n\nconst DefaultController = (matches, children, props) => {\n if (!matches || !children) return null;\n if (Object.keys(props).length > 0) {\n return React.Children.map(children, child => React.cloneElement(child, props));\n }\n return children;\n};\n\nexport default Route;"],"names":["historyEvents","cleanPath","path","length","lastIndexOf","substring","createUrlMatcher","matcher","segments","split","optionals","map","it","indexOf","containsVariables","containsAnySegment","containsNot","p","endsWithAny","matchers","segment","i","variableNameIndex","variable","regex","regexStart","RegExp","prefix","params","match","not","Math","min","createUrlMatchers","Array","isArray","props","Object","assign","selfProps","setOf","Route","properties","that","state","propsGetter","stateGSs","isRendering","paramsState","mergedPropsState","process","nextState","isMatching","WINDOW","location","pathname","toggle","isDifferent","allPropsExcept","setState","orNoop","onToggle","componentDidUpdate","prevProps","prevState","mergedProps","render","children","controller","DefaultController","componentDidMount","forEach","addEventListener","componentWillUnmount","removeEventListener","PureComponent","window","isNotProductionEnvironment","propTypes","PropTypes","oneOfType","string","arrayOf","isRequired","func","matches","keys","React","Children","child","cloneElement"],"mappings":"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"}
|
package/router/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../src/router/index.js"],"sourcesContent":["import Link from \"./Link\";\nimport NavLink from \"./NavLink\";\nimport Route from \"./Route\";\n\nexport default {\n Link,\n NavLink,\n Route\n};\n"],"names":["Link","NavLink","Route"],"mappings":";;;;AAIA,YAAe;AACXA,EAAAA,IAAI,EAAJA,
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../src/router/index.js"],"sourcesContent":["import Link from \"./Link\";\nimport NavLink from \"./NavLink\";\nimport Route from \"./Route\";\n\nexport default {\n Link,\n NavLink,\n Route\n};\n"],"names":["Link","NavLink","Route"],"mappings":";;;;AAIA,YAAe;AACXA,EAAAA,IAAI,EAAJA,IAAI;AACJC,EAAAA,OAAO,EAAPA,OAAO;AACPC,EAAAA,KAAK,EAALA,KAAAA;AACJ,CAAC;;;;"}
|
package/src/DatePicker.css
CHANGED
package/src/FilteredList.css
CHANGED
|
@@ -28,7 +28,7 @@
|
|
|
28
28
|
align-items: center;
|
|
29
29
|
white-space: nowrap;
|
|
30
30
|
font-size: 14px;
|
|
31
|
-
color:
|
|
31
|
+
color: rgb(34, 34, 34);
|
|
32
32
|
height: 30px;
|
|
33
33
|
padding: 5px 10px;
|
|
34
34
|
padding-right: 15px;
|
|
@@ -49,7 +49,7 @@
|
|
|
49
49
|
margin-left: 0px;
|
|
50
50
|
}
|
|
51
51
|
.FilteredList .child.active {
|
|
52
|
-
background-color:
|
|
52
|
+
background-color: rgb(238, 238, 238);
|
|
53
53
|
}
|
|
54
54
|
.FilteredList .child {
|
|
55
55
|
margin-top: 8px;
|
package/src/ReactConstants.ts
CHANGED
|
@@ -5,13 +5,13 @@ export const props: <P>(that: React.Component<P>) => P = that => that.props;
|
|
|
5
5
|
export const propsGetter: <P>(that: React.Component<P>) => (() => P) = that => () => props(that);
|
|
6
6
|
// @ts-ignore //ignore incompatible casting EMPTY to S
|
|
7
7
|
export const state: <P, S>(that: React.Component<P, S>) => S = that => that.state || EMPTY;
|
|
8
|
-
export const setState = (that, data, cb?) => {
|
|
8
|
+
export const setState = (that: React.Component, data, cb?) => {
|
|
9
9
|
that.setState(data, cb);
|
|
10
10
|
};
|
|
11
|
-
export const stateFieldSetter = (that, key, cb
|
|
11
|
+
export const stateFieldSetter = (that, key, cb?: () => void) => (value, cb2?) => {
|
|
12
12
|
setState(that, {[key]: value}, cb2 || cb);
|
|
13
13
|
};
|
|
14
|
-
export const stateGS: ((that: React.Component) => (v
|
|
14
|
+
export const stateGS: (<T>(that: React.Component) => (v?: T, cb?: () => void) => T) = (that) => {
|
|
15
15
|
!that['sfc'] && (that['sfc'] = 0);
|
|
16
16
|
const key = '_' + (that['sfc']++);
|
|
17
17
|
const setter = stateFieldSetter(that, key);
|
package/src/Table.css
CHANGED
package/src/Table.tsx
CHANGED
|
@@ -3,9 +3,22 @@ import './Table.css'
|
|
|
3
3
|
import TextField from "./TextField";
|
|
4
4
|
import AutocompleteSelect, {MODE_DEFAULT, MODE_MULTIPLE_MINI} from "./AutocompleteSelect";
|
|
5
5
|
import Switch from "./Switch";
|
|
6
|
-
import {
|
|
6
|
+
import {
|
|
7
|
+
Comparators,
|
|
8
|
+
NOOP,
|
|
9
|
+
classNames,
|
|
10
|
+
preventDefault,
|
|
11
|
+
stopPropagation,
|
|
12
|
+
isFunction,
|
|
13
|
+
isString,
|
|
14
|
+
orNoop,
|
|
15
|
+
createRef,
|
|
16
|
+
setInterval,
|
|
17
|
+
createAccessor,
|
|
18
|
+
UNDEFINED
|
|
19
|
+
} from "./Tools";
|
|
7
20
|
import MaterialIcon from "./MaterialIcon";
|
|
8
|
-
import {componentDidUpdate, componentWillUnmount, render, PureComponent, propsGetter, componentDidMount, stateGSs} from "./ReactConstants";
|
|
21
|
+
import {componentDidUpdate, componentWillUnmount, render, PureComponent, propsGetter, componentDidMount, stateGSs, stateGS} from "./ReactConstants";
|
|
9
22
|
|
|
10
23
|
export const SORT_ASC = Comparators.SORT_ASC;
|
|
11
24
|
export const SORT_DESC = Comparators.SORT_DESC;
|
|
@@ -29,35 +42,39 @@ export interface RowProps<T> {
|
|
|
29
42
|
cancelEditing: () => void,
|
|
30
43
|
onFinishEditing: () => void,
|
|
31
44
|
handleInputChange: (e: ChangeEvent) => void,
|
|
32
|
-
setValue: (v: any, t: T, field:
|
|
33
|
-
setEditing: (t: T, i: number, value?: any) => void,
|
|
45
|
+
setValue: (v: any, t: T, field: keyof T) => void,
|
|
46
|
+
setEditing: (t: T, i: number, value?: any, focused?: boolean) => void,
|
|
34
47
|
onMouseDown?: (e: SyntheticEvent, row: number, column: number) => void,
|
|
35
48
|
onMouseUp?: (e: SyntheticEvent, row: number, column: number) => void,
|
|
36
49
|
onMouseEnter?: (e: SyntheticEvent, row: number, column: number) => void,
|
|
37
50
|
onMouseLeave?: (e: SyntheticEvent, row: number, column: number) => void,
|
|
38
51
|
}
|
|
39
52
|
|
|
40
|
-
export type Formatter<T, V> =
|
|
41
|
-
((value?: V, item?: T, format?: string) => ReactElement | string)
|
|
42
|
-
| ((value: V, item: T) => ReactElement | string)
|
|
43
|
-
| ((value: V) => ReactElement | string);
|
|
53
|
+
export type Formatter<T, V> = ((value: V, item?: T, format?: string) => ReactElement | string);
|
|
44
54
|
|
|
45
|
-
export type CellClassName<T> = (item: T, field:
|
|
55
|
+
export type CellClassName<T> = (item: T, field: keyof T, row: number, column: number) => string;
|
|
46
56
|
export type ColumnClassName<T> = string | CellClassName<T>
|
|
47
57
|
|
|
48
58
|
export interface TableColumn<T> {
|
|
49
|
-
field?:
|
|
59
|
+
field?: keyof T,
|
|
50
60
|
className?: ColumnClassName<T>,
|
|
51
|
-
onClick?: (e: SyntheticEvent, startEditing: () => void, item: T, field:
|
|
61
|
+
onClick?: (e: SyntheticEvent, startEditing: () => void, item: T, field: keyof T, row: number, column: number) => void,
|
|
52
62
|
comparator?: Comparator,
|
|
53
63
|
header?: string | ReactElement,
|
|
54
64
|
sortable?: boolean,
|
|
55
65
|
displayEditor?: boolean,
|
|
56
|
-
formatter?: Formatter<T,
|
|
66
|
+
formatter?: Formatter<T, T[keyof T]>,
|
|
57
67
|
format?: string,
|
|
58
68
|
editable?: boolean | ((t: T) => boolean),
|
|
59
69
|
editor?: typeof editorSelect | typeof editorSwitch | ((t: T, cancel: () => void, isEditing: boolean) => ReactElement),
|
|
60
|
-
preEditor?: (a:
|
|
70
|
+
preEditor?: (a: T[keyof T]) => any,
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
export interface TableColumnTyped<T, F extends keyof T> extends TableColumn<T>{
|
|
74
|
+
field?: F,
|
|
75
|
+
onClick?: (e: SyntheticEvent, startEditing: () => void, item: T, field: F, row: number, column: number) => void,
|
|
76
|
+
formatter?: Formatter<T, T[F]>,
|
|
77
|
+
preEditor?: (a: T[F]) => any,
|
|
61
78
|
}
|
|
62
79
|
|
|
63
80
|
export interface TableProps<T> {
|
|
@@ -86,10 +103,19 @@ export interface TableState<T> {
|
|
|
86
103
|
data?: T[],
|
|
87
104
|
}
|
|
88
105
|
|
|
106
|
+
export interface EditingState<T> {
|
|
107
|
+
id: number | string
|
|
108
|
+
value: any
|
|
109
|
+
columnIndex: number
|
|
110
|
+
item: T
|
|
111
|
+
field: keyof T
|
|
112
|
+
focused: boolean
|
|
113
|
+
}
|
|
114
|
+
|
|
89
115
|
class Table<T> extends Component<TableProps<T>, TableState<T>> {
|
|
90
|
-
startEditing: (item, columnIndex, value
|
|
116
|
+
startEditing: (item: T, columnIndex: number, value?, focused?: boolean) => void;
|
|
91
117
|
finishEditing: () => void;
|
|
92
|
-
|
|
118
|
+
getEditingState: () => EditingState<T>;
|
|
93
119
|
|
|
94
120
|
constructor(properties) {
|
|
95
121
|
super(properties);
|
|
@@ -106,20 +132,21 @@ class Table<T> extends Component<TableProps<T>, TableState<T>> {
|
|
|
106
132
|
}
|
|
107
133
|
};
|
|
108
134
|
|
|
109
|
-
const
|
|
135
|
+
const editingState = stateGS<EditingState<T>>(this)
|
|
136
|
+
const [dataState, sortByState, sortOrderState, comparatorState] = stateGSs(this, 4);
|
|
110
137
|
const comparatorGetter = createAccessor('comparator');
|
|
111
138
|
|
|
112
139
|
const cancelEditing = () => {
|
|
113
|
-
editingState(
|
|
140
|
+
editingState(null)
|
|
114
141
|
};
|
|
115
142
|
|
|
116
|
-
const setEditing = (item, columnIndex, value) => {
|
|
143
|
+
const setEditing = (item, columnIndex, value, focused = true) => {
|
|
117
144
|
const {columns} = props()
|
|
118
145
|
const field = columns[columnIndex].field
|
|
119
|
-
editingState({id: item.id, value: (value != null ? value : item[field]), columnIndex, item, field})
|
|
146
|
+
editingState({id: item.id, value: (value != null ? value : item[field]), columnIndex, item, field, focused: !!focused})
|
|
120
147
|
};
|
|
121
148
|
this.startEditing = setEditing
|
|
122
|
-
this.
|
|
149
|
+
this.getEditingState = () => editingState()
|
|
123
150
|
|
|
124
151
|
const handleInputChange = (event) => {
|
|
125
152
|
const target = event.target;
|
|
@@ -148,7 +175,7 @@ class Table<T> extends Component<TableProps<T>, TableState<T>> {
|
|
|
148
175
|
this.finishEditing = onFinishEditing
|
|
149
176
|
|
|
150
177
|
const setValue = (value, item, field) => {
|
|
151
|
-
editingState({item, field, value}, onFinishEditing)
|
|
178
|
+
editingState({...editingState(), item, field, value}, onFinishEditing)
|
|
152
179
|
};
|
|
153
180
|
|
|
154
181
|
|
|
@@ -262,12 +289,12 @@ const formatValue: (<T>(item: T, column: TableColumn<T>) => string | ReactElemen
|
|
|
262
289
|
return formatter ? (formatter as ((value?: any, item?: any, format?: string) => ReactElement))(value, item, column.format) : '' + value;
|
|
263
290
|
};
|
|
264
291
|
|
|
265
|
-
export interface TableColumnSelect extends TableColumn<
|
|
292
|
+
export interface TableColumnSelect<T> extends TableColumn<T> {
|
|
266
293
|
editorData?: any,
|
|
267
294
|
multiSelect?: any,
|
|
268
295
|
onSelect?: any,
|
|
269
296
|
editorSelectedComponent?: any,
|
|
270
|
-
|
|
297
|
+
editorChildComponent?: any,
|
|
271
298
|
prefilter?: any,
|
|
272
299
|
}
|
|
273
300
|
|
|
@@ -307,10 +334,10 @@ class Row<T> extends PureComponent<RowProps<T>> {
|
|
|
307
334
|
{displayEditor && !column.editor && (
|
|
308
335
|
<TextField
|
|
309
336
|
value={value}
|
|
310
|
-
focused={
|
|
337
|
+
focused={editing.focused}
|
|
311
338
|
onBlur={cancelEditing}
|
|
312
339
|
onChange={handleInputChange}
|
|
313
|
-
|
|
340
|
+
onKeyUp={e => {
|
|
314
341
|
if (e.keyCode === 27/*escape*/) {
|
|
315
342
|
preventDefault(e);
|
|
316
343
|
cancelEditing();
|
|
@@ -325,22 +352,22 @@ class Row<T> extends PureComponent<RowProps<T>> {
|
|
|
325
352
|
{displayEditor && column.editor === editorSelect && (
|
|
326
353
|
<AutocompleteSelect
|
|
327
354
|
value={value}
|
|
328
|
-
data={(column as TableColumnSelect).editorData}
|
|
355
|
+
data={(column as TableColumnSelect<T>).editorData}
|
|
329
356
|
focused={true}
|
|
330
357
|
withArrow={false}
|
|
331
358
|
withFilter={false}
|
|
332
359
|
selectedMode={'inline'}
|
|
333
|
-
selectedComponent={(column as TableColumnSelect).editorSelectedComponent}
|
|
334
|
-
mode={(column as TableColumnSelect).multiSelect ? MODE_MULTIPLE_MINI : MODE_DEFAULT}
|
|
335
|
-
onChange={(column as TableColumnSelect).multiSelect && ((column as TableColumnSelect).onSelect ? (value => {
|
|
336
|
-
setValue((column as TableColumnSelect).onSelect(value), item, column.field);
|
|
360
|
+
selectedComponent={(column as TableColumnSelect<T>).editorSelectedComponent}
|
|
361
|
+
mode={(column as TableColumnSelect<T>).multiSelect ? MODE_MULTIPLE_MINI : MODE_DEFAULT}
|
|
362
|
+
onChange={(column as TableColumnSelect<T>).multiSelect && ((column as TableColumnSelect<T>).onSelect ? (value => {
|
|
363
|
+
setValue((column as TableColumnSelect<T>).onSelect(value), item, column.field);
|
|
337
364
|
}) : value => setValue(value, item, column.field))}
|
|
338
|
-
onSelect={!(column as TableColumnSelect).multiSelect && ((column as TableColumnSelect).onSelect ? (value => {
|
|
339
|
-
setValue((column as TableColumnSelect).onSelect(value), item, column.field);
|
|
365
|
+
onSelect={!(column as TableColumnSelect<T>).multiSelect && ((column as TableColumnSelect<T>).onSelect ? (value => {
|
|
366
|
+
setValue((column as TableColumnSelect<T>).onSelect(value), item, column.field);
|
|
340
367
|
}) : value => setValue(value, item, column.field))}
|
|
341
|
-
childComponent={(column as TableColumnSelect).
|
|
368
|
+
childComponent={(column as TableColumnSelect<T>).editorChildComponent}
|
|
342
369
|
onCancel={cancelEditing}
|
|
343
|
-
prefilter={(column as TableColumnSelect).prefilter}
|
|
370
|
+
prefilter={(column as TableColumnSelect<T>).prefilter}
|
|
344
371
|
/>
|
|
345
372
|
)}
|
|
346
373
|
{displayEditor && column.editor === editorSwitch && (
|
package/src/TextField.css
CHANGED
|
@@ -34,7 +34,7 @@
|
|
|
34
34
|
}
|
|
35
35
|
.TextField > input:disabled + .border {
|
|
36
36
|
height: 0px;
|
|
37
|
-
border-bottom: 2px dotted
|
|
37
|
+
border-bottom: 2px dotted rgb(224, 224, 224);
|
|
38
38
|
}
|
|
39
39
|
.TextField > input::placeholder {
|
|
40
40
|
font-family: Roboto, sans-serif;
|
|
@@ -42,7 +42,7 @@
|
|
|
42
42
|
opacity: 1;
|
|
43
43
|
}
|
|
44
44
|
.TextField > .border {
|
|
45
|
-
border-bottom: 1px solid
|
|
45
|
+
border-bottom: 1px solid rgb(224, 224, 224);
|
|
46
46
|
height: 1px;
|
|
47
47
|
position: relative;
|
|
48
48
|
}
|
|
@@ -51,7 +51,7 @@
|
|
|
51
51
|
width: 0;
|
|
52
52
|
height: 2px;
|
|
53
53
|
min-height: 2px;
|
|
54
|
-
background-color:
|
|
54
|
+
background-color: rgb(0, 188, 212);
|
|
55
55
|
transition: all 0.2s ease;
|
|
56
56
|
position: absolute;
|
|
57
57
|
}
|
|
@@ -60,7 +60,7 @@
|
|
|
60
60
|
font-size: 10px;
|
|
61
61
|
min-height: 0;
|
|
62
62
|
line-height: 14px;
|
|
63
|
-
color:
|
|
63
|
+
color: rgb(244, 67, 54);
|
|
64
64
|
visibility: hidden;
|
|
65
65
|
opacity: 0;
|
|
66
66
|
transition: all 0.2s ease;
|
|
@@ -75,13 +75,13 @@
|
|
|
75
75
|
opacity: 1;
|
|
76
76
|
}
|
|
77
77
|
.TextField.errored > .border {
|
|
78
|
-
border-bottom-color:
|
|
78
|
+
border-bottom-color: rgb(244, 67, 54);
|
|
79
79
|
}
|
|
80
80
|
.TextField.errored > label {
|
|
81
|
-
color:
|
|
81
|
+
color: rgb(244, 67, 54);
|
|
82
82
|
}
|
|
83
83
|
.TextField.focused > label {
|
|
84
|
-
color:
|
|
84
|
+
color: rgb(0, 188, 212);
|
|
85
85
|
}
|
|
86
86
|
.TextField.focused > .border .line {
|
|
87
87
|
left: 0;
|