react-ui-basics 0.0.175 → 0.0.176
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/Animated.js.map +1 -1
- package/AutocompleteSelect.js.map +1 -1
- package/Button.js.map +1 -1
- package/Checkbox.js.map +1 -1
- package/CircleProgress.js.map +1 -1
- package/CommonFields.js.map +1 -1
- package/DNDContainer.js.map +1 -1
- package/DNDDraggable.js.map +1 -1
- package/DNDDroppable.js.map +1 -1
- package/Dialog.js.map +1 -1
- package/DropFileInput.js.map +1 -1
- package/DroppableHorizontalList.js.map +1 -1
- package/DroppableList.js.map +1 -1
- package/Dropzone.js.map +1 -1
- package/FilteredList.js.map +1 -1
- package/FloatingActionButton.js.map +1 -1
- package/FormUploadProgress.js.map +1 -1
- package/ImageGallery.js.map +1 -1
- package/MaterialIcon.js.map +1 -1
- package/Modal.js.map +1 -1
- package/ModalMenu.js.map +1 -1
- package/ReactConstants.js.map +1 -1
- package/ReactCreateElement.js.map +1 -1
- package/ReadyListener.js.map +1 -1
- package/Scrollable.js.map +1 -1
- package/ScrollableTable.js.map +1 -1
- package/Size.js.map +1 -1
- package/Snackbar.js.map +1 -1
- package/SpinningProgress.js.map +1 -1
- package/Switch.js.map +1 -1
- package/Table.js.map +1 -1
- package/TextField.js.map +1 -1
- package/Tools.d.ts +2 -2
- package/Tools.js.map +1 -1
- package/bundle.css +596 -596
- package/package.json +1 -1
- 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.map +1 -1
- package/router/index.js.map +1 -1
- package/src/Animated.css +7 -0
- package/src/Animated.js +219 -0
- package/src/Animated.scss +8 -0
- package/src/AutocompleteSelect.css +256 -0
- package/src/AutocompleteSelect.js +473 -0
- package/src/AutocompleteSelect.scss +322 -0
- package/src/Button.css +138 -0
- package/src/Button.js +104 -0
- package/src/Button.scss +177 -0
- package/src/Checkbox.css +56 -0
- package/src/Checkbox.js +52 -0
- package/src/Checkbox.scss +87 -0
- package/src/CircleProgress.css +11 -0
- package/src/CircleProgress.js +38 -0
- package/src/CircleProgress.scss +13 -0
- package/src/CommonFields.js +21 -0
- package/src/DNDContainer.css +26 -0
- package/src/DNDContainer.js +263 -0
- package/src/DNDContainer.scss +33 -0
- package/src/DNDDraggable.js +55 -0
- package/src/DNDDroppable.js +58 -0
- package/src/Dialog.css +36 -0
- package/src/Dialog.js +160 -0
- package/src/Dialog.scss +42 -0
- package/src/DropFileInput.css +24 -0
- package/src/DropFileInput.js +45 -0
- package/src/DropFileInput.scss +28 -0
- package/src/DroppableHorizontalList.js +190 -0
- package/src/DroppableList.css +14 -0
- package/src/DroppableList.js +201 -0
- package/src/DroppableList.scss +27 -0
- package/src/Dropzone.css +54 -0
- package/src/Dropzone.js +140 -0
- package/src/Dropzone.scss +66 -0
- package/src/FilteredList.css +68 -0
- package/src/FilteredList.js +196 -0
- package/src/FilteredList.scss +86 -0
- package/src/FloatingActionButton.css +20 -0
- package/src/FloatingActionButton.js +35 -0
- package/src/FloatingActionButton.scss +25 -0
- package/src/FormUploadProgress.css +61 -0
- package/src/FormUploadProgress.js +87 -0
- package/src/FormUploadProgress.scss +78 -0
- package/src/ImageGallery.css +196 -0
- package/src/ImageGallery.js +935 -0
- package/src/ImageGallery.scss +256 -0
- package/src/MaterialIcon.js +1837 -0
- package/src/Modal.css +61 -0
- package/src/Modal.js +160 -0
- package/src/Modal.scss +73 -0
- package/src/ModalMenu.css +30 -0
- package/src/ModalMenu.js +59 -0
- package/src/ModalMenu.scss +36 -0
- package/src/ReactConstants.ts +42 -0
- package/src/ReactCreateElement.js +5 -0
- package/src/ReadyListener.js +53 -0
- package/src/ResizeObserver.ts +50 -0
- package/src/Scrollable.css +80 -0
- package/src/Scrollable.js +388 -0
- package/src/Scrollable.scss +100 -0
- package/src/ScrollableTable.css +6 -0
- package/src/ScrollableTable.scss +12 -0
- package/src/ScrollableTable.tsx +39 -0
- package/src/Size.js +56 -0
- package/src/Snackbar.css +40 -0
- package/src/Snackbar.js +71 -0
- package/src/Snackbar.scss +47 -0
- package/src/SpinningProgress.css +49 -0
- package/src/SpinningProgress.js +19 -0
- package/src/SpinningProgress.scss +57 -0
- package/src/Switch.css +69 -0
- package/src/Switch.js +54 -0
- package/src/Switch.scss +73 -0
- package/src/Table.css +94 -0
- package/src/Table.scss +121 -0
- package/src/Table.tsx +360 -0
- package/src/TextField.css +122 -0
- package/src/TextField.js +162 -0
- package/src/TextField.scss +160 -0
- package/src/Tools.test.js +105 -0
- package/src/Tools.ts +231 -0
- package/src/global.css +1 -0
- package/src/global.scss +6 -0
- package/src/index.js +78 -0
- package/src/router/HistoryTools.js +32 -0
- package/src/router/Link.js +27 -0
- package/src/router/NavLink.js +25 -0
- package/src/router/README.md +55 -0
- package/src/router/Route.js +209 -0
- package/src/router/Route.test.js +139 -0
- package/src/router/index.js +14 -0
- package/src/store/ProxyTools.js +91 -0
- package/src/store/ProxyTools.test.js +97 -0
- package/src/store/Store.ts +91 -0
- package/store/ProxyTools.js.map +1 -1
- package/store/Store.js.map +1 -1
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import {useEffect, useState} from "react";
|
|
2
|
+
import {createProxy} from "./ProxyTools";
|
|
3
|
+
|
|
4
|
+
interface Stores {
|
|
5
|
+
[index: number]: any
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
let STORES: Stores = {}
|
|
9
|
+
let COUNTER = 0
|
|
10
|
+
|
|
11
|
+
export class Store<T> {
|
|
12
|
+
private name: string
|
|
13
|
+
private listeners: Array<() => void> = []
|
|
14
|
+
private initialState: T
|
|
15
|
+
private index: number
|
|
16
|
+
|
|
17
|
+
constructor(initialState: T, name?: string) {
|
|
18
|
+
let that = this;
|
|
19
|
+
that.name = name;
|
|
20
|
+
that.initialState = initialState;
|
|
21
|
+
const index = COUNTER++;
|
|
22
|
+
that.index = index;
|
|
23
|
+
STORES[index] = initialState
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
get = (): T => STORES[this.index]
|
|
27
|
+
set = (mutator: (oldState: T) => T | void) => {
|
|
28
|
+
const proxy = createProxy(STORES[this.index]);
|
|
29
|
+
const result = mutator(proxy);
|
|
30
|
+
if (!result || result === proxy)
|
|
31
|
+
STORES[this.index] = proxy.bake()
|
|
32
|
+
else
|
|
33
|
+
STORES[this.index] = result
|
|
34
|
+
|
|
35
|
+
this.listeners.forEach(fn => fn())
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
reset = () => {
|
|
39
|
+
STORES[this.index] = this.initialState
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
subscribe = (fn: () => void) => {
|
|
43
|
+
this.listeners.push(fn)
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
unsubscribe = (fn: () => void) => {
|
|
47
|
+
this.listeners = this.listeners.filter(f => f !== fn)
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
toString = (): string => this.name;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
export default Store;
|
|
54
|
+
|
|
55
|
+
export function getGlobalState() {
|
|
56
|
+
return STORES
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
export function resetGlobalState() {
|
|
60
|
+
STORES = {}
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
export function replaceGlobalState(state) {
|
|
64
|
+
STORES = state
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
|
|
68
|
+
export type Selector<T, R> = (t: T) => R;
|
|
69
|
+
|
|
70
|
+
export const defaultSelector = <T>(store: T): T => store;
|
|
71
|
+
|
|
72
|
+
export function useStore<T, R>(store: Store<T>, selector: Selector<T, R>): R
|
|
73
|
+
export function useStore<T>(store: Store<T>, selector?: undefined): T
|
|
74
|
+
export function useStore<T, R>(store: Store<T>, selector?: Selector<T, R>): R {
|
|
75
|
+
if (!selector)
|
|
76
|
+
selector = (defaultSelector as Selector<T, R>)
|
|
77
|
+
|
|
78
|
+
const [state, setState] = useState(selector(store.get()))
|
|
79
|
+
|
|
80
|
+
const updateState = () => {
|
|
81
|
+
setState(selector(store.get()))
|
|
82
|
+
};
|
|
83
|
+
|
|
84
|
+
useEffect(() => {
|
|
85
|
+
updateState()
|
|
86
|
+
store.subscribe(updateState)
|
|
87
|
+
return () => store.unsubscribe(updateState)
|
|
88
|
+
})
|
|
89
|
+
|
|
90
|
+
return state
|
|
91
|
+
}
|
package/store/ProxyTools.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProxyTools.js","sources":["
|
|
1
|
+
{"version":3,"file":"ProxyTools.js","sources":["../src/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 || (Array.isArray(target) ? [...target] : {...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","Array","isArray","key","bake","Error","innerProxy","changed","value","set","newval","_objectSpread","deleteProperty"],"mappings":"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"}
|
package/store/Store.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Store.js","sources":["
|
|
1
|
+
{"version":3,"file":"Store.js","sources":["../src/store/Store.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|