react-ui-basics 0.0.141 → 0.0.144
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 +3 -3
- package/Animated.js.map +1 -1
- package/AutocompleteSelect.js +35 -32
- package/AutocompleteSelect.js.map +1 -1
- package/Button.js +3 -3
- package/Button.js.map +1 -1
- package/Checkbox.js +3 -3
- package/Checkbox.js.map +1 -1
- package/CircleProgress.js.map +1 -1
- package/DNDContainer.js.map +1 -1
- package/DNDDraggable.js +2 -2
- package/DNDDraggable.js.map +1 -1
- package/DNDDroppable.js +2 -2
- package/DNDDroppable.js.map +1 -1
- package/Dialog.js +4 -4
- package/Dialog.js.map +1 -1
- package/DropFileInput.js.map +1 -1
- package/DroppableHorizontalList.js +2 -2
- package/DroppableHorizontalList.js.map +1 -1
- package/DroppableList.js +10 -4
- package/DroppableList.js.map +1 -1
- package/Dropzone.js +2 -2
- package/Dropzone.js.map +1 -1
- package/FilteredList.js +6 -5
- package/FilteredList.js.map +1 -1
- package/FloatingActionButton.js.map +1 -1
- package/FormUploadProgress.js.map +1 -1
- package/ImageGallery.js +6 -6
- package/ImageGallery.js.map +1 -1
- package/MaterialIcon.js +1 -1
- package/MaterialIcon.js.map +1 -1
- package/Modal.js +3 -3
- package/Modal.js.map +1 -1
- package/ModalMenu.js +2 -2
- package/ModalMenu.js.map +1 -1
- package/ReactConstants.js.map +1 -1
- package/ReadyListener.js +3 -3
- package/ReadyListener.js.map +1 -1
- package/Scrollable.js +7 -4
- package/Scrollable.js.map +1 -1
- package/ScrollableTable.js +6 -2
- package/ScrollableTable.js.map +1 -1
- package/Size.js.map +1 -1
- package/Snackbar.js +2 -2
- package/Snackbar.js.map +1 -1
- package/SpinningProgress.js.map +1 -1
- package/Switch.js +3 -3
- package/Switch.js.map +1 -1
- package/Table.js.map +1 -1
- package/TextField.js +3 -3
- package/TextField.js.map +1 -1
- package/Tools.js +183 -205
- package/Tools.js.map +1 -1
- package/_virtual/_rollupPluginBabelHelpers.js.map +1 -1
- package/bundle.css +464 -464
- package/package.json +30 -27
- package/router/HistoryTools.js.map +1 -1
- package/router/Link.js.map +1 -1
- package/router/NavLink.js.map +1 -1
- package/router/Route.js +3 -3
- package/router/Route.js.map +1 -1
- package/router/index.js.map +1 -1
- package/store/ProxyTools.js.map +1 -1
- package/store/Store.js +43 -57
- package/store/Store.js.map +1 -1
- package/types/Tools.d.ts +36 -0
- package/types/store/Store.d.ts +21 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "react-ui-basics",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.144",
|
|
4
4
|
"description": "",
|
|
5
5
|
"module": "index.js",
|
|
6
6
|
"_main": "index.cjs.js",
|
|
@@ -40,32 +40,33 @@
|
|
|
40
40
|
"homepage": "https://github.com/wizzardo/react-ui-basics",
|
|
41
41
|
"license": "MIT",
|
|
42
42
|
"devDependencies": {
|
|
43
|
-
"@babel/core": "^7.
|
|
44
|
-
"@babel/plugin-external-helpers": "^7.
|
|
45
|
-
"@babel/plugin-proposal-class-properties": "^7.
|
|
46
|
-
"@babel/plugin-proposal-decorators": "^7.
|
|
47
|
-
"@babel/plugin-proposal-do-expressions": "^7.
|
|
48
|
-
"@babel/plugin-proposal-export-default-from": "^7.
|
|
49
|
-
"@babel/plugin-proposal-function-bind": "^7.
|
|
50
|
-
"@babel/plugin-proposal-logical-assignment-operators": "^7.
|
|
51
|
-
"@babel/plugin-proposal-nullish-coalescing-operator": "^7.
|
|
52
|
-
"@babel/plugin-proposal-optional-chaining": "^7.
|
|
53
|
-
"@babel/plugin-proposal-pipeline-operator": "^7.
|
|
54
|
-
"@babel/plugin-proposal-private-property-in-object": "^7.
|
|
43
|
+
"@babel/core": "^7.17.7",
|
|
44
|
+
"@babel/plugin-external-helpers": "^7.16.7",
|
|
45
|
+
"@babel/plugin-proposal-class-properties": "^7.16.7",
|
|
46
|
+
"@babel/plugin-proposal-decorators": "^7.17.2",
|
|
47
|
+
"@babel/plugin-proposal-do-expressions": "^7.16.7",
|
|
48
|
+
"@babel/plugin-proposal-export-default-from": "^7.16.7",
|
|
49
|
+
"@babel/plugin-proposal-function-bind": "^7.16.7",
|
|
50
|
+
"@babel/plugin-proposal-logical-assignment-operators": "^7.16.7",
|
|
51
|
+
"@babel/plugin-proposal-nullish-coalescing-operator": "^7.16.7",
|
|
52
|
+
"@babel/plugin-proposal-optional-chaining": "^7.16.7",
|
|
53
|
+
"@babel/plugin-proposal-pipeline-operator": "^7.17.6",
|
|
54
|
+
"@babel/plugin-proposal-private-property-in-object": "^7.16.7",
|
|
55
55
|
"@babel/plugin-syntax-dynamic-import": "^7.8.3",
|
|
56
|
-
"@babel/plugin-transform-runtime": "^7.
|
|
57
|
-
"@babel/preset-env": "^7.
|
|
58
|
-
"@babel/preset-react": "^7.
|
|
59
|
-
"@
|
|
60
|
-
"@storybook/addon-
|
|
61
|
-
"@storybook/addon-
|
|
62
|
-
"@storybook/addon-
|
|
63
|
-
"@storybook/
|
|
64
|
-
"@storybook/
|
|
65
|
-
"@storybook/
|
|
66
|
-
"
|
|
56
|
+
"@babel/plugin-transform-runtime": "^7.17.0",
|
|
57
|
+
"@babel/preset-env": "^7.16.11",
|
|
58
|
+
"@babel/preset-react": "^7.16.7",
|
|
59
|
+
"@rollup/plugin-typescript": "^8.3.1",
|
|
60
|
+
"@storybook/addon-actions": "^6.4.19",
|
|
61
|
+
"@storybook/addon-controls": "^6.4.19",
|
|
62
|
+
"@storybook/addon-links": "^6.4.19",
|
|
63
|
+
"@storybook/addon-storysource": "^6.4.19",
|
|
64
|
+
"@storybook/addons": "^6.4.19",
|
|
65
|
+
"@storybook/react": "^6.4.19",
|
|
66
|
+
"@storybook/source-loader": "^6.4.19",
|
|
67
|
+
"babel-loader": "^8.2.3",
|
|
67
68
|
"babel-plugin-transform-react-remove-prop-types": "^0.4.24",
|
|
68
|
-
"core-js": "^3.
|
|
69
|
+
"core-js": "^3.21.1",
|
|
69
70
|
"enzyme": "^3.11.0",
|
|
70
71
|
"enzyme-adapter-react-16": "^1.15.6",
|
|
71
72
|
"jest-enzyme": "^7.1.2",
|
|
@@ -74,15 +75,17 @@
|
|
|
74
75
|
"react-dom": "^16.11.0",
|
|
75
76
|
"react-scripts": "^4.0.3",
|
|
76
77
|
"react-test-renderer": "^16.8.6",
|
|
77
|
-
"rollup": "^2.
|
|
78
|
+
"rollup": "^2.70.1",
|
|
78
79
|
"rollup-plugin-babel": "^4.4.0",
|
|
79
80
|
"rollup-plugin-cleanup": "^3.2.1",
|
|
80
81
|
"rollup-plugin-commonjs": "^10.1.0",
|
|
82
|
+
"rollup-plugin-dts": "^4.2.0",
|
|
81
83
|
"rollup-plugin-json": "^4.0.0",
|
|
82
84
|
"rollup-plugin-node-resolve": "^5.2.0",
|
|
83
85
|
"rollup-plugin-replace": "^2.2.0",
|
|
84
86
|
"rollup-plugin-scss": "^3.0.0",
|
|
85
|
-
"sass": "^1.
|
|
87
|
+
"sass": "^1.49.9",
|
|
88
|
+
"typescript": "^4.6.2"
|
|
86
89
|
},
|
|
87
90
|
"browserslist": {
|
|
88
91
|
"production": [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HistoryTools.js","sources":["../../src/react-ui-basics/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);"],"names":["history","WINDOW","events","forEach","e","original","apply","arguments","fireEvent","name","event","DOCUMENT","createEvent","initEvent","dispatchEvent","pushLocation","path","location","pathname"],"mappings":";;AAEA,IAAMA,OAAO,GAAGC,MAAM,CAACD,OAAvB;AAEA,IAAME,MAAM,GAAG,CAAC,WAAD,EAAc,cAAd,CAAf;AACAA,MAAM,CAACC,OAAP,CAAe,UAAAC,CAAC,EAAI;AAChB,
|
|
1
|
+
{"version":3,"file":"HistoryTools.js","sources":["../../src/react-ui-basics/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);"],"names":["history","WINDOW","events","forEach","e","original","apply","arguments","fireEvent","name","event","DOCUMENT","createEvent","initEvent","dispatchEvent","pushLocation","path","location","pathname"],"mappings":";;AAEA,IAAMA,OAAO,GAAGC,MAAM,CAACD,OAAvB,CAAA;AAEA,IAAME,MAAM,GAAG,CAAC,WAAD,EAAc,cAAd,CAAf,CAAA;AACAA,MAAM,CAACC,OAAP,CAAe,UAAAC,CAAC,EAAI;AAChB,EAAA,IAAIC,QAAQ,GAAGL,OAAO,CAACI,CAAD,CAAtB,CAAA;AACAJ,EAAAA,OAAO,CAACI,CAAD,CAAP,GAAa,YAAY;AACrBC,IAAAA,QAAQ,CAACC,KAAT,CAAeN,OAAf,EAAwBO,SAAxB,CAAA,CAAA;AACAC,IAAAA,SAAS,CAACJ,CAAD,CAAT,CAAA;AACH,GAHD,CAAA;AAIH,CAND,CAAA,CAAA;AAQA,IAAMI,SAAS,GAAG,SAAZA,SAAY,CAACC,IAAD,EAAU;AACxB,EAAA,IAAMC,KAAK,GAAGC,QAAQ,CAACC,WAAT,CAAqB,OAArB,CAAd,CAAA;AACAF,EAAAA,KAAK,CAACG,SAAN,CAAgBJ,IAAhB,EAAsB,IAAtB,EAA4B,IAA5B,CAAA,CAAA;AACAR,EAAAA,MAAM,CAACa,aAAP,CAAqBJ,KAArB,CAAA,CAAA;AACH,CAJD,CAAA;IAMaK,YAAY,GAAG,SAAfA,YAAe,CAACC,IAAD,EAAA;AAAA,EAAUA,OAAAA,IAAI,KAAKf,MAAM,CAACgB,QAAP,CAAgBC,QAAzB,IAAqClB,OAAO,CAACE,MAAM,CAAC,CAAD,CAAP,CAAP,CAAmB,IAAnB,EAAyB,IAAzB,EAA+Bc,IAA/B,CAA/C,CAAA;AAAA;;;;"}
|
package/router/Link.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Link.js","sources":["../../src/react-ui-basics/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,IAAO;AAAA,
|
|
1
|
+
{"version":3,"file":"Link.js","sources":["../../src/react-ui-basics/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,IAAO,CAAA,IAAA,EAAA;AAAA,EAAEC,IAAAA,QAAF,QAAEA,QAAF;AAAA,MAAYC,IAAZ,QAAYA,IAAZ;AAAA,MAAkBC,SAAlB,QAAkBA,SAAlB,CAAA;AAAA,EACT,OAAA,kBAAA,CAAA,GAAA,EAAA;AAAG,IAAA,IAAI,EAAED,IAAT;AAAe,IAAA,SAAS,EAAEC,SAA1B;AAAqC,IAAA,OAAO,EAAE,SAACC,OAAAA,CAAAA,CAAD,EAAO;AACjD,MAAA,IAAI,CAACA,CAAC,CAACC,OAAP,EAAgB;AACZC,QAAAA,cAAc,CAACF,CAAD,CAAd,CAAA;AACAG,QAAAA,YAAY,CAACL,IAAD,CAAZ,CAAA;AACH,OAAA;AACJ,KAAA;AALD,GAAA,EAKID,QALJ,CADS,CAAA;AAAA,CAAb,CAAA;AAQA,IAAIO,MAAM,CAACC,0BAAX,EAAuC;AACnCT,EAAAA,IAAI,CAACU,SAAL,GAAiB;AACbR,IAAAA,IAAI,EAAES,SAAS,CAACC,MAAV,CAAiBC,UAAAA;AADV,GAAjB,CAAA;AAGH,CAAA;AAED,aAAeb,IAAf;;;;"}
|
package/router/NavLink.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NavLink.js","sources":["../../src/react-ui-basics/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,OAAU;AAAA,
|
|
1
|
+
{"version":3,"file":"NavLink.js","sources":["../../src/react-ui-basics/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,OAAU,CAAA,IAAA,EAAA;AAAA,EAAEC,IAAAA,QAAF,QAAEA,QAAF;AAAA,MAAYC,IAAZ,QAAYA,IAAZ;AAAA,MAAkBC,aAAlB,QAAkBA,aAAlB;AAAA,MAAiCC,SAAjC,QAAiCA,SAAjC;AAAA,MAA4CC,eAA5C,QAA4CA,eAA5C,CAAA;AAAA,EAAA,OACZ,mBAAC,KAAD,EAAA;AAAO,IAAA,IAAI,EAAEF,aAAa,IAAID,IAA9B;AACO,IAAA,UAAU,EAAE,SAAA,UAAA,CAAAI,OAAO,EAAA;AAAA,MAAA,OAAI,mBAAC,IAAD,EAAA;AAAM,QAAA,IAAI,EAAEJ,IAAZ;AAAkB,QAAA,SAAS,EAAEK,UAAU,CAACH,SAAD,EAAYE,OAAO,IAAID,eAAvB,CAAA;AAAvC,OAAA,EAClBJ,QADkB,CAAJ,CAAA;AAAA,KAAA;AAD1B,GADY,CAAA,CAAA;AAAA,CAAhB,CAAA;AAOA,IAAGO,MAAM,CAACC,0BAAV,EAAsC;AAClCT,EAAAA,OAAO,CAACU,SAAR,GAAoBC,IAAI,CAACD,SAAzB,CAAA;AACH,CAAA;AAED,gBAAeV,OAAf;;;;"}
|
package/router/Route.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { inherits as _inherits, createSuper as _createSuper, classCallCheck as _classCallCheck, assertThisInitialized as _assertThisInitialized, slicedToArray as _slicedToArray } from '../_virtual/_rollupPluginBabelHelpers.js';
|
|
1
|
+
import { inherits as _inherits, createSuper as _createSuper, classCallCheck as _classCallCheck, assertThisInitialized as _assertThisInitialized, slicedToArray as _slicedToArray, createClass as _createClass } from '../_virtual/_rollupPluginBabelHelpers.js';
|
|
2
2
|
import React from 'react';
|
|
3
3
|
import PropTypes from 'prop-types';
|
|
4
|
-
import { setOf, allPropsExcept, isDifferent, addEventListener,
|
|
4
|
+
import { setOf, allPropsExcept, isDifferent, addEventListener, removeEventListener, WINDOW, orNoop } from '../Tools.js';
|
|
5
5
|
import { propsGetter, stateGSs, componentDidUpdate, render, componentDidMount, componentWillUnmount, setState, PureComponent } from '../ReactConstants.js';
|
|
6
6
|
|
|
7
7
|
var historyEvents = ['popstate', 'pushState', 'replaceState'];
|
|
@@ -142,7 +142,7 @@ var Route = function (_PureComponent) {
|
|
|
142
142
|
};
|
|
143
143
|
return _this;
|
|
144
144
|
}
|
|
145
|
-
return Route;
|
|
145
|
+
return _createClass(Route);
|
|
146
146
|
}(PureComponent);
|
|
147
147
|
if (process.env.NODE_ENV !== 'production') {
|
|
148
148
|
Route.propTypes = {
|
package/router/Route.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Route.js","sources":["../../src/react-ui-basics/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 if (variable.indexOf('?') !== -1)\n variable = variable.substring(0, variable.indexOf('?'));\n\n const prefix = variableNameIndex && segment.substring(0, variableNameIndex);\n matcher = (p, params) => {\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","prefix","params","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":";;;;;;AAOA,IAAMA,aAAa,GAAG,CAAC,UAAD,EAAa,WAAb,EAA0B,cAA1B,CAAtB;AAEA,IAAMC,SAAS,GAAG,SAAZA,SAAY,CAACC,IAAD,EAAU;AACxB,MAAIA,IAAI,CAACC,MAAL,GAAc,CAAd,IAAmBD,IAAI,CAACE,WAAL,CAAiB,GAAjB,MAA0BF,IAAI,CAACC,MAAL,GAAc,CAA/D,EACI,OAAOD,IAAI,CAACG,SAAL,CAAe,CAAf,EAAkBH,IAAI,CAACC,MAAL,GAAc,CAAhC,CAAP;AAEJ,SAAOD,IAAP;AACH,CALD;AAOA,IAAMI,gBAAgB,GAAG,SAAnBA,gBAAmB,CAAAJ,IAAI,EAAI;AAC7B,MAAIK,OAAJ;AACA,MAAMC,QAAQ,GAAGN,IAAI,CAACO,KAAL,CAAW,GAAX,CAAjB;AACA,MAAMC,SAAS,GAAGF,QAAQ,CAACG,GAAT,CAAa,UAAAC,EAAE;AAAA,WAAIA,EAAE,KAAK,GAAP,IAAcA,EAAE,CAACC,OAAH,CAAW,GAAX,MAAoBD,EAAE,CAACT,MAAH,GAAY,CAAlD;AAAA,GAAf,CAAlB;AACA,MAAMW,iBAAiB,GAAGZ,IAAI,CAACW,OAAL,CAAa,GAAb,MAAsB,CAAC,CAAjD;AACA,MAAME,kBAAkB,GAAGb,IAAI,CAACW,OAAL,CAAa,GAAb,MAAsB,CAAC,CAAlD;AACA,MAAMG,WAAW,GAAGd,IAAI,CAACW,OAAL,CAAa,GAAb,MAAsB,CAAC,CAA3C;AAEA,MAAI,CAACE,kBAAD,IAAuB,CAACD,iBAAxB,IAA6C,CAACE,WAAlD,EAA+D;AAC3DT,IAAAA,OAAO,GAAG,iBAACU,CAAD;AAAA,aAAOA,CAAC,KAAKf,IAAb;AAAA,KAAV;AACH,GAFD,MAEO;AACH,QAAMgB,WAAW,GAAGhB,IAAI,CAACE,WAAL,CAAiB,GAAjB,MAA0BF,IAAI,CAACC,MAAL,GAAc,CAA5D;AACA,QAAMgB,QAAQ,GAAGX,QAAQ,CAACG,GAAT,CAAa,UAACS,OAAD,EAAUC,CAAV,EAAgB;AAC1C,UAAId,OAAJ;AACA,UAAMe,iBAAiB,GAAGF,OAAO,CAACP,OAAR,CAAgB,GAAhB,CAA1B;AACA,UAAIO,OAAO,KAAK,GAAhB,EACIb,OAAO,GAAG;AAAA,eAAM,IAAN;AAAA,OAAV,CADJ,KAEK,IAAIe,iBAAiB,KAAK,CAAC,CAA3B,EAA8B;AAC/B,YAAIC,QAAQ,GAAGH,OAAO,CAACf,SAAR,CAAkBiB,iBAAiB,GAAG,CAAtC,CAAf;AACA,YAAIC,QAAQ,CAACV,OAAT,CAAiB,GAAjB,MAA0B,CAAC,CAA/B,EACIU,QAAQ,GAAGA,QAAQ,CAAClB,SAAT,CAAmB,CAAnB,EAAsBkB,QAAQ,CAACV,OAAT,CAAiB,GAAjB,CAAtB,CAAX;AAEJ,YAAMW,MAAM,GAAGF,iBAAiB,IAAIF,OAAO,CAACf,SAAR,CAAkB,CAAlB,EAAqBiB,iBAArB,CAApC;AACAf,QAAAA,OAAO,GAAG,iBAACU,CAAD,EAAIQ,MAAJ,EAAe;AACrB,cAAI,CAACR,CAAD,IAAM,CAACP,SAAS,CAACW,CAAD,CAApB,EACI,OAAO,KAAP;AACJ,cAAIG,MAAJ,EAAY;AACR,gBAAIP,CAAC,CAACJ,OAAF,CAAUW,MAAV,MAAsB,CAA1B,EACIP,CAAC,GAAGA,CAAC,CAACZ,SAAF,CAAYiB,iBAAZ,CAAJ,CADJ,KAGI,OAAO,KAAP;AACP;AAEDG,UAAAA,MAAM,CAACF,QAAD,CAAN,GAAmBN,CAAnB;AACA,iBAAO,IAAP;AACH,SAZD;AAaH,OAnBI,MAmBE,IAAIG,OAAO,CAACP,OAAR,CAAgB,GAAhB,MAAyB,CAA7B,EAAgC;AACnC,YAAMa,GAAG,GAAGN,OAAO,CAACf,SAAR,CAAkB,CAAlB,CAAZ;AACAE,QAAAA,OAAO,GAAG,iBAACU,CAAD;AAAA,iBAAOA,CAAC,KAAKS,GAAb;AAAA,SAAV;AACH,OAHM,MAIHnB,OAAO,GAAG,iBAACU,CAAD;AAAA,eAAOA,CAAC,KAAKG,OAAb;AAAA,OAAV;AACJ,aAAOb,OAAP;AACH,KA9BgB,CAAjB;AAgCAA,IAAAA,OAAO,GAAG,iBAACL,IAAD,EAAOuB,MAAP,EAAkB;AACxB,UAAMjB,QAAQ,GAAGN,IAAI,CAACO,KAAL,CAAW,GAAX,CAAjB;AACA,UAAMN,MAAM,GAAGwB,IAAI,CAACC,GAAL,CAAST,QAAQ,CAAChB,MAAlB,EAA0BK,QAAQ,CAACL,MAAnC,CAAf,CAFwB;AAKxB,UAAI,CAACe,WAAD,IAAgBC,QAAQ,CAAChB,MAAT,GAAkBK,QAAQ,CAACL,MAA/C,EACI,OAAO,KAAP,CANoB;AASxB,WAAK,IAAIkB,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGlB,MAApB,EAA4BkB,CAAC,EAA7B,EAAiC;AAC7B,YAAI,CAACF,QAAQ,CAACE,CAAD,CAAR,CAAYb,QAAQ,CAACa,CAAD,CAApB,EAAyBI,MAAzB,CAAL,EACI,OAAO,KAAP;AACP,OAZuB;AAexB,WAAK,IAAIJ,EAAC,GAAGlB,MAAb,EAAqBkB,EAAC,GAAGX,SAAS,CAACP,MAAnC,EAA2CkB,EAAC,EAA5C,EAAgD;AAC5C,YAAI,CAACX,SAAS,CAACW,EAAD,CAAd,EACI,OAAO,KAAP;AACP;AAED,aAAO,IAAP;AACH,KArBD;AAsBH;AACD,SAAOd,OAAP;AACH,CApED;AAsEA,IAAMsB,iBAAiB,GAAG,SAApBA,iBAAoB,CAAA3B,IAAI,EAAI;AAC9B,MAAI4B,KAAK,CAACC,OAAN,CAAc7B,IAAd,CAAJ,EAAyB;AACrB,QAAMiB,QAAQ,GAAGjB,IAAI,CAACS,GAAL,CAAS,UAAAC,EAAE;AAAA,aAAIN,gBAAgB,CAACM,EAAD,CAApB;AAAA,KAAX,CAAjB;AACA,WAAO,UAACV,IAAD,EAAOuB,MAAP,EAAkB;AACrB,WAAK,IAAIJ,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGF,QAAQ,CAAChB,MAA7B,EAAqCkB,CAAC,EAAtC,EAA0C;AACtC,YAAIW,KAAK,GAAG,EAAZ;AACA,YAAIb,QAAQ,CAACE,CAAD,CAAR,CAAYnB,IAAZ,EAAkB8B,KAAlB,CAAJ,EAA8B;AAC1BC,UAAAA,MAAM,CAACC,MAAP,CAAcT,MAAd,EAAsBO,KAAtB;AACA,iBAAO,IAAP;AACH;AACJ;AACD,aAAO,KAAP;AACH,KATD;AAUH,GAZD,MAYO;AACH,WAAO1B,gBAAgB,CAACJ,IAAD,CAAvB;AACH;AACJ,CAhBD;AAkBA,IAAMiC,SAAS,GAAGC,KAAK,CAAC,CACpB,UADoB,EAEpB,MAFoB,EAGpB,YAHoB,EAIpB,UAJoB,CAAD,CAAvB;IAOMC;;;AAEF,iBAAYC,UAAZ,EAAwB;AAAA;AAAA;AACpB,8BAAMA,UAAN;AACA,QAAMC,IAAI,gCAAV;AACAA,IAAAA,IAAI,CAACC,KAAL,GAAa,EAAb;AACA,QAAIjC,OAAJ;AAEA,QAAMyB,KAAK,GAAGS,WAAW,CAACF,IAAD,CAAzB;AACA,oBAIIG,QAAQ,CAACH,IAAD,EAAO,CAAP,CAJZ;AAAA;AAAA,QACII,WADJ;AAAA,QAEIC,WAFJ;AAAA,QAGIC,gBAHJ;AAMA,QAAMC,OAAO,GAAG,SAAVA,OAAU,GAAM;AAClB,UAAIrB,MAAM,GAAG,EAAb;AACA,UAAIsB,SAAS,GAAG,EAAhB;AACA,UAAIC,UAAU,GAAGzC,OAAO,CAACN,SAAS,CAACgD,MAAM,CAACC,QAAP,CAAgBC,QAAjB,CAAV,EAAsC1B,MAAtC,CAAxB;AAEA,UAAM2B,MAAM,GAAGJ,UAAU,KAAKL,WAAW,EAAzC;AACAS,MAAAA,MAAM,KAAKL,SAAS,CAACJ,WAAD,CAAT,GAAyBK,UAA9B,CAAN;AAEA,UAAIK,WAAW,CAACT,WAAW,EAAZ,EAAgBnB,MAAhB,CAAf,EAAwC;AACpCsB,QAAAA,SAAS,CAACF,gBAAD,CAAT,GAA8BZ,MAAM,CAACC,MAAP,CAAcoB,cAAc,CAACtB,KAAK,EAAN,EAAUG,SAAV,CAA5B,EAAkDV,MAAlD,CAA9B;AACAsB,QAAAA,SAAS,CAACH,WAAD,CAAT,GAAyBnB,MAAzB;AACH,OAXiB;AAclB8B,MAAAA,QAAQ,CAAChB,IAAD,EAAOQ,SAAP,EAAkB,YAAM;AAC5BK,QAAAA,MAAM,IAAII,MAAM,CAACxB,KAAK,GAAGyB,QAAT,CAAN,CAAyBT,UAAzB,CAAV;AACH,OAFO,CAAR;AAGH,KAjBD;AAmBAT,IAAAA,IAAI,CAACmB,kBAAD,CAAJ,GAA2B,UAACC,SAAD,EAAYC,SAAZ,EAA0B;AACjD,UAAI5B,KAAK,OAAO2B,SAAhB,EAA2B;AACvB,YAAIE,WAAW,GAAG5B,MAAM,CAACC,MAAP,CAAcoB,cAAc,CAACtB,KAAK,EAAN,EAAUG,SAAV,CAA5B,EAAkDS,WAAW,EAA7D,CAAlB;AACA,YAAIS,WAAW,CAACQ,WAAD,EAAchB,gBAAgB,EAA9B,CAAf,EACIA,gBAAgB,CAACgB,WAAD,CAAhB;AACP;AACJ,KAND;AAQAtB,IAAAA,IAAI,CAACuB,MAAD,CAAJ,GAAe,YAAM;AACjB,mBAA+B9B,KAAK,EAApC;AAAA,UAAO+B,QAAP,UAAOA,QAAP;AAAA,UAAiBC,UAAjB,UAAiBA,UAAjB;AACA,aAAO,CAACA,UAAU,IAAIC,iBAAf,EAAkCtB,WAAW,EAA7C,EAAiDoB,QAAjD,EAA2DlB,gBAAgB,EAA3E,CAAP;AACH,KAHD;AAKAN,IAAAA,IAAI,CAAC2B,iBAAD,CAAJ,GAA0B,YAAM;AAC5B3D,MAAAA,OAAO,GAAGsB,iBAAiB,CAACG,KAAK,GAAG9B,IAAT,CAA3B;AAEAF,MAAAA,aAAa,CAACmE,OAAd,CAAsB,UAAAvD,EAAE,EAAI;AACxBwD,QAAAA,gBAAgB,CAACnB,MAAD,EAASrC,EAAT,EAAakC,OAAb,CAAhB;AACH,OAFD;AAGAA,MAAAA,OAAO;AACV,KAPD;AASAP,IAAAA,IAAI,CAAC8B,oBAAD,CAAJ,GAA6B,YAAM;AAC/BrE,MAAAA,aAAa,CAACmE,OAAd,CAAsB,UAAAvD,EAAE,EAAI;AACxB0D,QAAAA,mBAAmB,CAACrB,MAAD,EAASrC,EAAT,EAAakC,OAAb,CAAnB;AACH,OAFD;AAGH,KAJD;AAtDoB;AA2DvB;;EA7DeyB;AAgEpB,IAAIC,MAAM,CAACC,0BAAX,EAAuC;AACnCpC,EAAAA,KAAK,CAACqC,SAAN,GAAkB;AACdxE,IAAAA,IAAI,EAAEyE,SAAS,CAACC,SAAV,CAAoB,CACtBD,SAAS,CAACE,MADY,EAEtBF,SAAS,CAACG,OAAV,CAAkBH,SAAS,CAACE,MAA5B,CAFsB,CAApB,EAGHE,UAJW;AAKdf,IAAAA,UAAU,EAAEW,SAAS,CAACK,IALR;AAMdvB,IAAAA,QAAQ,EAAEkB,SAAS,CAACK;AANN,GAAlB;AAQH;AAED,IAAMf,iBAAiB,GAAG,SAApBA,iBAAoB,CAACgB,OAAD,EAAUlB,QAAV,EAAoB/B,KAApB,EAA8B;AACpD,MAAI,CAACiD,OAAD,IAAY,CAAClB,QAAjB,EAA2B,OAAO,IAAP;AAC3B,MAAI9B,MAAM,CAACiD,IAAP,CAAYlD,KAAZ,EAAmB7B,MAAnB,GAA4B,CAAhC,EAAmC;AAC/B,WAAOgF,KAAK,CAACC,QAAN,CAAezE,GAAf,CAAmBoD,QAAnB,EAA6B,UAAAsB,KAAK;AAAA,aAAIF,KAAK,CAACG,YAAN,CAAmBD,KAAnB,EAA0BrD,KAA1B,CAAJ;AAAA,KAAlC,CAAP;AACH;AACD,SAAO+B,QAAP;AACH,CAND;AAQA,cAAe1B,KAAf;;;;"}
|
|
1
|
+
{"version":3,"file":"Route.js","sources":["../../src/react-ui-basics/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 if (variable.indexOf('?') !== -1)\n variable = variable.substring(0, variable.indexOf('?'));\n\n const prefix = variableNameIndex && segment.substring(0, variableNameIndex);\n matcher = (p, params) => {\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","prefix","params","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/react-ui-basics/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,IADW;AAEXC,EAAAA,OAAO,EAAPA,OAFW;AAGXC,EAAAA,KAAK,EAALA;AAHW,CAAf;;;;"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../src/react-ui-basics/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,IADW;AAEXC,EAAAA,OAAO,EAAPA,OAFW;AAGXC,EAAAA,KAAK,EAALA,KAAAA;AAHW,CAAf;;;;"}
|
package/store/ProxyTools.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProxyTools.js","sources":["../../src/react-ui-basics/store/ProxyTools.js"],"sourcesContent":["import {UNDEFINED} from \"../Tools\";\n\nexport const createProxy = (target) => {\n if(!target)\n return target\n if (target.__isProxy)\n return target;\n\n let changedValue = UNDEFINED;\n let deletedKeys = UNDEFINED;\n let innerProxies = UNDEFINED\n const isChanged = () => changedValue || (innerProxies && Object.values(innerProxies).some(it => it.__changed));\n\n return new Proxy(target, {\n get: function (target, prop) {\n if (prop === '__isProxy')\n return true\n if (prop === '__changed')\n return isChanged();\n if (prop === 'bake')\n return () => {\n // console.log('bake', changedValue, innerProxies)\n if (!isChanged())\n return target\n\n if (changedValue && !innerProxies)\n return changedValue\n\n if (innerProxies) {\n const result = changedValue || {...target};\n\n for (let key in innerProxies) {\n result[key] = innerProxies[key].bake()\n }\n return result\n }\n\n throw new Error('state not implemented yet')\n }\n\n // console.log('get', {target, prop})\n const innerProxy = innerProxies && innerProxies[prop];\n if (innerProxy)\n return innerProxy\n\n const changed = changedValue && changedValue[prop]\n if (changed !== UNDEFINED)\n return changed\n\n if (deletedKeys && deletedKeys[prop])\n return null\n\n const value = target[prop];\n if (value && typeof value === 'object') {\n !innerProxies && (innerProxies = {})\n return innerProxies[prop] = createProxy(value)\n }\n\n return value;\n },\n set: function (target, prop, newval) {\n // console.log('set', {target, prop, newval})\n if (!changedValue) changedValue = Array.isArray(target) ? [...target] : {...target}\n\n if (newval && typeof newval === 'object') {\n !innerProxies && (innerProxies = {})\n innerProxies[prop] = newval = createProxy(newval)\n } else {\n innerProxies && (delete innerProxies[prop])\n }\n changedValue[prop] = newval\n // console.log('changedValue', changedValue)\n return true;\n },\n deleteProperty: function (target, prop) {\n // console.log('delete', {target, prop})\n !changedValue && (changedValue = Array.isArray(target) ? [...target] : {...target})\n\n if (!prop in changedValue)\n return false;\n\n delete changedValue[prop]\n innerProxies && delete innerProxies[prop]\n !deletedKeys && (deletedKeys = {})\n deletedKeys[prop] = true;\n return true;\n }\n })\n}\n"],"names":["createProxy","target","__isProxy","changedValue","UNDEFINED","deletedKeys","innerProxies","isChanged","Object","values","some","it","__changed","Proxy","get","prop","result","key","bake","Error","innerProxy","changed","value","set","newval","Array","isArray","deleteProperty"],"mappings":";;;IAEaA,WAAW,GAAG,SAAdA,WAAc,CAACC,MAAD,EAAY;AACnC,
|
|
1
|
+
{"version":3,"file":"ProxyTools.js","sources":["../../src/react-ui-basics/store/ProxyTools.js"],"sourcesContent":["import {UNDEFINED} from \"../Tools\";\n\nexport const createProxy = (target) => {\n if(!target)\n return target\n if (target.__isProxy)\n return target;\n\n let changedValue = UNDEFINED;\n let deletedKeys = UNDEFINED;\n let innerProxies = UNDEFINED\n const isChanged = () => changedValue || (innerProxies && Object.values(innerProxies).some(it => it.__changed));\n\n return new Proxy(target, {\n get: function (target, prop) {\n if (prop === '__isProxy')\n return true\n if (prop === '__changed')\n return isChanged();\n if (prop === 'bake')\n return () => {\n // console.log('bake', changedValue, innerProxies)\n if (!isChanged())\n return target\n\n if (changedValue && !innerProxies)\n return changedValue\n\n if (innerProxies) {\n const result = changedValue || {...target};\n\n for (let key in innerProxies) {\n result[key] = innerProxies[key].bake()\n }\n return result\n }\n\n throw new Error('state not implemented yet')\n }\n\n // console.log('get', {target, prop})\n const innerProxy = innerProxies && innerProxies[prop];\n if (innerProxy)\n return innerProxy\n\n const changed = changedValue && changedValue[prop]\n if (changed !== UNDEFINED)\n return changed\n\n if (deletedKeys && deletedKeys[prop])\n return null\n\n const value = target[prop];\n if (value && typeof value === 'object') {\n !innerProxies && (innerProxies = {})\n return innerProxies[prop] = createProxy(value)\n }\n\n return value;\n },\n set: function (target, prop, newval) {\n // console.log('set', {target, prop, newval})\n if (!changedValue) changedValue = Array.isArray(target) ? [...target] : {...target}\n\n if (newval && typeof newval === 'object') {\n !innerProxies && (innerProxies = {})\n innerProxies[prop] = newval = createProxy(newval)\n } else {\n innerProxies && (delete innerProxies[prop])\n }\n changedValue[prop] = newval\n // console.log('changedValue', changedValue)\n return true;\n },\n deleteProperty: function (target, prop) {\n // console.log('delete', {target, prop})\n !changedValue && (changedValue = Array.isArray(target) ? [...target] : {...target})\n\n if (!prop in changedValue)\n return false;\n\n delete changedValue[prop]\n innerProxies && delete innerProxies[prop]\n !deletedKeys && (deletedKeys = {})\n deletedKeys[prop] = true;\n return true;\n }\n })\n}\n"],"names":["createProxy","target","__isProxy","changedValue","UNDEFINED","deletedKeys","innerProxies","isChanged","Object","values","some","it","__changed","Proxy","get","prop","result","_objectSpread","key","bake","Error","innerProxy","changed","value","set","newval","Array","isArray","deleteProperty"],"mappings":"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"}
|
package/store/Store.js
CHANGED
|
@@ -1,70 +1,56 @@
|
|
|
1
|
-
import { classCallCheck as _classCallCheck, slicedToArray as _slicedToArray } from '../_virtual/_rollupPluginBabelHelpers.js';
|
|
2
1
|
import { useState, useEffect } from 'react';
|
|
3
2
|
import { createProxy } from './ProxyTools.js';
|
|
4
3
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
};
|
|
36
|
-
that.toString = function () {
|
|
37
|
-
return that.name;
|
|
38
|
-
};
|
|
39
|
-
};
|
|
4
|
+
let STORE = {};
|
|
5
|
+
let COUNTER = 0;
|
|
6
|
+
class Store {
|
|
7
|
+
constructor(initialState, name) {
|
|
8
|
+
this.listeners = [];
|
|
9
|
+
this.get = () => STORE[this.index];
|
|
10
|
+
this.set = (mutator) => {
|
|
11
|
+
const proxy = createProxy(STORE[this.index]);
|
|
12
|
+
mutator(proxy);
|
|
13
|
+
STORE[this.index] = proxy.bake();
|
|
14
|
+
this.listeners.forEach(fn => fn());
|
|
15
|
+
};
|
|
16
|
+
this.reset = () => {
|
|
17
|
+
STORE[this.index] = this.initialState;
|
|
18
|
+
};
|
|
19
|
+
this.subscribe = (fn) => {
|
|
20
|
+
this.listeners.push(fn);
|
|
21
|
+
};
|
|
22
|
+
this.unsubscribe = (fn) => {
|
|
23
|
+
this.listeners = this.listeners.filter(f => f !== fn);
|
|
24
|
+
};
|
|
25
|
+
this.toString = () => this.name;
|
|
26
|
+
let that = this;
|
|
27
|
+
that.name = name;
|
|
28
|
+
that.initialState = initialState;
|
|
29
|
+
const index = COUNTER++;
|
|
30
|
+
that.index = index;
|
|
31
|
+
STORE[index] = initialState;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
40
34
|
function getGlobalState() {
|
|
41
|
-
|
|
35
|
+
return STORE;
|
|
42
36
|
}
|
|
43
37
|
function resetGlobalState() {
|
|
44
|
-
|
|
38
|
+
STORE = {};
|
|
45
39
|
}
|
|
46
40
|
function replaceGlobalState(state) {
|
|
47
|
-
|
|
41
|
+
STORE = state;
|
|
48
42
|
}
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
var _useState = useState(selector(store.get())),
|
|
55
|
-
_useState2 = _slicedToArray(_useState, 2),
|
|
56
|
-
state = _useState2[0],
|
|
57
|
-
setState = _useState2[1];
|
|
58
|
-
var updateState = function updateState() {
|
|
59
|
-
setState(selector(store.get()));
|
|
60
|
-
};
|
|
61
|
-
useEffect(function () {
|
|
62
|
-
store.subscribe(updateState);
|
|
63
|
-
return function () {
|
|
64
|
-
return store.unsubscribe(updateState);
|
|
43
|
+
const defaultSelector = store => store;
|
|
44
|
+
const useStore = (store, selector = defaultSelector) => {
|
|
45
|
+
const [state, setState] = useState(selector(store.get()));
|
|
46
|
+
const updateState = () => {
|
|
47
|
+
setState(selector(store.get()));
|
|
65
48
|
};
|
|
66
|
-
|
|
67
|
-
|
|
49
|
+
useEffect(() => {
|
|
50
|
+
store.subscribe(updateState);
|
|
51
|
+
return () => store.unsubscribe(updateState);
|
|
52
|
+
});
|
|
53
|
+
return state;
|
|
68
54
|
};
|
|
69
55
|
|
|
70
56
|
export { Store, Store as default, getGlobalState, replaceGlobalState, resetGlobalState, useStore };
|
package/store/Store.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Store.js","sources":["../../src/react-ui-basics/store/Store.
|
|
1
|
+
{"version":3,"file":"Store.js","sources":["../../src/react-ui-basics/store/Store.ts"],"sourcesContent":[null],"names":[],"mappings":";;;AAOA,IAAI,KAAK,GAAW,EAAE,CAAA;AACtB,IAAI,OAAO,GAAG,CAAC,CAAA;MAEF,KAAK,CAAA;IAMd,WAAY,CAAA,YAAe,EAAE,IAAY,EAAA;QAJjC,IAAS,CAAA,SAAA,GAAsB,EAAE,CAAA;QAazC,IAAG,CAAA,GAAA,GAAG,MAAS,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;AAChC,QAAA,IAAA,CAAA,GAAG,GAAG,CAAC,OAAiB,KAAI;YACxB,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;YAC7C,OAAO,CAAC,KAAK,CAAC,CAAA;YACd,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,EAAE,CAAA;AAChC,YAAA,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,CAAA;AACtC,SAAC,CAAA;QAED,IAAK,CAAA,KAAA,GAAG,MAAK;YACT,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,YAAY,CAAA;AACzC,SAAC,CAAA;AAED,QAAA,IAAA,CAAA,SAAS,GAAG,CAAC,EAAc,KAAI;AAC3B,YAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;AAC3B,SAAC,CAAA;AAED,QAAA,IAAA,CAAA,WAAW,GAAG,CAAC,EAAc,KAAI;AAC7B,YAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAA;AACzD,SAAC,CAAA;AAED,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAc,IAAI,CAAC,IAAI,CAAC;QA5B/B,IAAI,IAAI,GAAG,IAAI,CAAC;AAChB,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;AACjB,QAAA,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;AACjC,QAAA,MAAM,KAAK,GAAG,OAAO,EAAE,CAAC;AACxB,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;AACnB,QAAA,KAAK,CAAC,KAAK,CAAC,GAAG,YAAY,CAAA;KAC9B;AAuBJ,CAAA;SAIe,cAAc,GAAA;AAC1B,IAAA,OAAO,KAAK,CAAA;AAChB,CAAC;SAEe,gBAAgB,GAAA;IAC5B,KAAK,GAAG,EAAE,CAAA;AACd,CAAC;AAEK,SAAU,kBAAkB,CAAC,KAAK,EAAA;IACpC,KAAK,GAAG,KAAK,CAAA;AACjB,CAAC;AAGD,MAAM,eAAe,GAAG,KAAK,IAAI,KAAK,CAAC;AAE1B,MAAA,QAAQ,GAAG,CAAO,KAAe,EAAE,QAAA,GAAqB,eAAe,KAAI;AACpF,IAAA,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAA;IAEzD,MAAM,WAAW,GAAG,MAAK;QACrB,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAA;AACnC,KAAC,CAAC;IAEF,SAAS,CAAC,MAAK;AACX,QAAA,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,CAAA;QAC5B,OAAO,MAAM,KAAK,CAAC,WAAW,CAAC,WAAW,CAAC,CAAA;AAC/C,KAAC,CAAC,CAAA;AAEF,IAAA,OAAO,KAAK,CAAA;AAChB;;;;"}
|
package/types/Tools.d.ts
ADDED
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
export declare const WINDOW: any;
|
|
2
|
+
export declare const DOCUMENT: any;
|
|
3
|
+
export declare function classNames(): string;
|
|
4
|
+
export declare const NOOP: () => void;
|
|
5
|
+
export declare const orNoop: (f: any) => any;
|
|
6
|
+
export declare const getRandomId: (prefix: any) => any;
|
|
7
|
+
export declare const ref: (name: any, component: any) => any;
|
|
8
|
+
export declare const createRef: () => () => any;
|
|
9
|
+
export declare const setOf: (list: any) => any;
|
|
10
|
+
export declare const allPropsExcept: (obj: any, except: any) => {};
|
|
11
|
+
export declare const continuousIncludes: (value: any, inc: any) => boolean;
|
|
12
|
+
export declare const debounce: (func: any, delay: any) => () => void;
|
|
13
|
+
export declare const memo: (func: any) => () => any;
|
|
14
|
+
export declare const typeOf: (v: any) => "string" | "number" | "bigint" | "boolean" | "symbol" | "undefined" | "object" | "function";
|
|
15
|
+
export declare const isFunction: (v: any) => boolean;
|
|
16
|
+
export declare const isString: (v: any) => boolean;
|
|
17
|
+
export declare const isObject: (v: any) => boolean;
|
|
18
|
+
export declare const isDifferent: (a: any, b: any) => any;
|
|
19
|
+
export declare const preventDefault: (e: any) => void;
|
|
20
|
+
export declare const stopPropagation: (e: any) => void;
|
|
21
|
+
export declare const setTimeout: (callback: (...args: any[]) => void, ms?: number, ...args: any[]) => any;
|
|
22
|
+
export declare const clearTimeout: (id: any) => void;
|
|
23
|
+
export declare const setInterval: () => any;
|
|
24
|
+
export declare const clearInterval: (id: any) => void;
|
|
25
|
+
export declare const requestAnimationFrame: (cb: any) => any;
|
|
26
|
+
export declare const addEventListener: (el: any, type: any, listener: any, options: any) => void;
|
|
27
|
+
export declare const removeEventListener: (el: any, type: any, listener: any, options: any) => void;
|
|
28
|
+
export declare const UNDEFINED: any;
|
|
29
|
+
export declare const isUndefined: (a: any) => boolean;
|
|
30
|
+
export declare class Comparators {
|
|
31
|
+
static SORT_ASC: string;
|
|
32
|
+
static SORT_DESC: string;
|
|
33
|
+
static of: (field: any, order: any, data: any) => any;
|
|
34
|
+
static chain: (comparators: any) => any;
|
|
35
|
+
static inverse: (comparator: any) => any;
|
|
36
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
interface Stores {
|
|
2
|
+
[indexedDB: number]: any;
|
|
3
|
+
}
|
|
4
|
+
export declare class Store<T> {
|
|
5
|
+
private name;
|
|
6
|
+
private listeners;
|
|
7
|
+
private initialState;
|
|
8
|
+
private index;
|
|
9
|
+
constructor(initialState: T, name: string);
|
|
10
|
+
get: () => T;
|
|
11
|
+
set: (mutator: (T: any) => T) => void;
|
|
12
|
+
reset: () => void;
|
|
13
|
+
subscribe: (fn: () => void) => void;
|
|
14
|
+
unsubscribe: (fn: () => void) => void;
|
|
15
|
+
toString: () => string;
|
|
16
|
+
}
|
|
17
|
+
export default Store;
|
|
18
|
+
export declare function getGlobalState(): Stores;
|
|
19
|
+
export declare function resetGlobalState(): void;
|
|
20
|
+
export declare function replaceGlobalState(state: any): void;
|
|
21
|
+
export declare const useStore: <T, R>(store: Store<T>, selector?: (T: any) => R) => R;
|