@rivtn/noseur 1.0.0
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/LICENSE +21 -0
- package/README.md +2 -0
- package/dist/esm/Template.d.ts +7 -0
- package/dist/esm/Template.js +13 -0
- package/dist/esm/compose/Composed.css +437 -0
- package/dist/esm/compose/exotic/ColorPicker.d.ts +41 -0
- package/dist/esm/compose/exotic/ColorPicker.js +85 -0
- package/dist/esm/compose/exotic/ColorSlider.d.ts +30 -0
- package/dist/esm/compose/exotic/ColorSlider.js +99 -0
- package/dist/esm/compose/form/ComposedPassword.d.ts +25 -0
- package/dist/esm/compose/form/ComposedPassword.js +103 -0
- package/dist/esm/compose/form/DateTimeInput.d.ts +28 -0
- package/dist/esm/compose/form/DateTimeInput.js +154 -0
- package/dist/esm/compose/form/DateTimePicker.d.ts +341 -0
- package/dist/esm/compose/form/DateTimePicker.js +1265 -0
- package/dist/esm/compose/form/FormControl.d.ts +33 -0
- package/dist/esm/compose/form/FormControl.js +163 -0
- package/dist/esm/compose/form/FormGroup.d.ts +14 -0
- package/dist/esm/compose/form/FormGroup.js +58 -0
- package/dist/esm/compose/overlay/Alert.d.ts +56 -0
- package/dist/esm/compose/overlay/Alert.js +267 -0
- package/dist/esm/constants/Alignment.d.ts +17 -0
- package/dist/esm/constants/Alignment.js +18 -0
- package/dist/esm/constants/Direction.d.ts +26 -0
- package/dist/esm/constants/Direction.js +22 -0
- package/dist/esm/constants/Orientation.d.ts +8 -0
- package/dist/esm/constants/Orientation.js +9 -0
- package/dist/esm/constants/Scheme.d.ts +39 -0
- package/dist/esm/constants/Scheme.js +43 -0
- package/dist/esm/constants/Transition.d.ts +81 -0
- package/dist/esm/constants/Transition.js +85 -0
- package/dist/esm/constants/Types.d.ts +74 -0
- package/dist/esm/constants/Types.js +14 -0
- package/dist/esm/core/ComponentBaseProps.d.ts +53 -0
- package/dist/esm/core/ComponentBaseProps.js +33 -0
- package/dist/esm/core/noseur.css +2390 -0
- package/dist/esm/data/Column.d.ts +235 -0
- package/dist/esm/data/Column.js +98 -0
- package/dist/esm/data/Data.css +213 -0
- package/dist/esm/data/Data.d.ts +98 -0
- package/dist/esm/data/Data.js +142 -0
- package/dist/esm/data/List.d.ts +14 -0
- package/dist/esm/data/List.js +117 -0
- package/dist/esm/data/Table.d.ts +22 -0
- package/dist/esm/data/Table.js +236 -0
- package/dist/esm/form/Button.d.ts +35 -0
- package/dist/esm/form/Button.js +131 -0
- package/dist/esm/form/Calendar.d.ts +20 -0
- package/dist/esm/form/Calendar.js +46 -0
- package/dist/esm/form/Checkbox.d.ts +20 -0
- package/dist/esm/form/Checkbox.js +155 -0
- package/dist/esm/form/ColorMap.d.ts +22 -0
- package/dist/esm/form/ColorMap.js +43 -0
- package/dist/esm/form/ColorPalette.d.ts +28 -0
- package/dist/esm/form/ColorPalette.js +87 -0
- package/dist/esm/form/Dropdown.d.ts +78 -0
- package/dist/esm/form/Dropdown.js +360 -0
- package/dist/esm/form/FileInput.d.ts +134 -0
- package/dist/esm/form/FileInput.js +523 -0
- package/dist/esm/form/Form.css +467 -0
- package/dist/esm/form/Input.d.ts +45 -0
- package/dist/esm/form/Input.js +186 -0
- package/dist/esm/form/RadioButton.d.ts +21 -0
- package/dist/esm/form/RadioButton.js +178 -0
- package/dist/esm/form/Slider.d.ts +21 -0
- package/dist/esm/form/Slider.js +163 -0
- package/dist/esm/hooks/useSearchParams.d.ts +15 -0
- package/dist/esm/hooks/useSearchParams.js +50 -0
- package/dist/esm/hooks/useSubscription.d.ts +9 -0
- package/dist/esm/hooks/useSubscription.js +26 -0
- package/dist/esm/index.d.ts +60 -0
- package/dist/esm/index.js +73 -0
- package/dist/esm/layout/GridView.d.ts +23 -0
- package/dist/esm/layout/GridView.js +34 -0
- package/dist/esm/layout/Layout.css +5 -0
- package/dist/esm/misc/Misc.css +164 -0
- package/dist/esm/misc/ProgressBar.d.ts +22 -0
- package/dist/esm/misc/ProgressBar.js +86 -0
- package/dist/esm/overlay/Dialog.d.ts +46 -0
- package/dist/esm/overlay/Dialog.js +290 -0
- package/dist/esm/overlay/Message.d.ts +35 -0
- package/dist/esm/overlay/Message.js +187 -0
- package/dist/esm/overlay/Overlay.css +382 -0
- package/dist/esm/overlay/Popover.d.ts +30 -0
- package/dist/esm/overlay/Popover.js +245 -0
- package/dist/esm/overlay/Portal.d.ts +11 -0
- package/dist/esm/overlay/Portal.js +29 -0
- package/dist/esm/overlay/Toast.d.ts +49 -0
- package/dist/esm/overlay/Toast.js +341 -0
- package/dist/esm/panel/Accordion.d.ts +26 -0
- package/dist/esm/panel/Accordion.js +127 -0
- package/dist/esm/panel/Panel.css +317 -0
- package/dist/esm/panel/Panel.d.ts +43 -0
- package/dist/esm/panel/Panel.js +125 -0
- package/dist/esm/panel/ScrollPanel.d.ts +27 -0
- package/dist/esm/panel/ScrollPanel.js +43 -0
- package/dist/esm/panel/TabPane.d.ts +82 -0
- package/dist/esm/panel/TabPane.js +237 -0
- package/dist/esm/presentation/Chart.d.ts +49 -0
- package/dist/esm/presentation/Chart.js +62 -0
- package/dist/esm/presentation/Paginator.d.ts +90 -0
- package/dist/esm/presentation/Paginator.js +331 -0
- package/dist/esm/presentation/Presentation.css +23 -0
- package/dist/esm/sensor/DragSensor.d.ts +50 -0
- package/dist/esm/sensor/DragSensor.js +156 -0
- package/dist/esm/sensor/ViewportSensor.d.ts +18 -0
- package/dist/esm/sensor/ViewportSensor.js +85 -0
- package/dist/esm/utils/BoolHelper.d.ts +13 -0
- package/dist/esm/utils/BoolHelper.js +105 -0
- package/dist/esm/utils/Classname.d.ts +9 -0
- package/dist/esm/utils/Classname.js +20 -0
- package/dist/esm/utils/ColorHelper.d.ts +127 -0
- package/dist/esm/utils/ColorHelper.js +198 -0
- package/dist/esm/utils/DOMUtils.d.ts +142 -0
- package/dist/esm/utils/DOMUtils.js +759 -0
- package/dist/esm/utils/DateHelper.d.ts +115 -0
- package/dist/esm/utils/DateHelper.js +338 -0
- package/dist/esm/utils/Debugger.d.ts +12 -0
- package/dist/esm/utils/Debugger.js +30 -0
- package/dist/esm/utils/FileHelper.d.ts +8 -0
- package/dist/esm/utils/FileHelper.js +65 -0
- package/dist/esm/utils/FunctionStackManager.d.ts +13 -0
- package/dist/esm/utils/FunctionStackManager.js +59 -0
- package/dist/esm/utils/InputHelper.d.ts +37 -0
- package/dist/esm/utils/InputHelper.js +70 -0
- package/dist/esm/utils/MicroBuilder.d.ts +24 -0
- package/dist/esm/utils/MicroBuilder.js +61 -0
- package/dist/esm/utils/ObjectHelper.d.ts +51 -0
- package/dist/esm/utils/ObjectHelper.js +334 -0
- package/dist/esm/utils/StringHelper.d.ts +10 -0
- package/dist/esm/utils/StringHelper.js +54 -0
- package/dist/esm/utils/Subscriber.d.ts +14 -0
- package/dist/esm/utils/Subscriber.js +27 -0
- package/dist/esm/utils/Timer.d.ts +32 -0
- package/dist/esm/utils/Timer.js +68 -0
- package/dist/esm/utils/TypeChecker.d.ts +12 -0
- package/dist/esm/utils/TypeChecker.js +38 -0
- package/package.json +63 -0
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
// TODO update to be able to maintain states and data
|
|
2
|
+
export class Timer {
|
|
3
|
+
timer;
|
|
4
|
+
startTime;
|
|
5
|
+
cbs;
|
|
6
|
+
isInterval;
|
|
7
|
+
totalTicks = 0;
|
|
8
|
+
elapseTicks = 0;
|
|
9
|
+
options = {};
|
|
10
|
+
constructor(options, ...args) {
|
|
11
|
+
this.cbs = options.cbs;
|
|
12
|
+
this.options["args"] = args;
|
|
13
|
+
this.isInterval = options.isInterval;
|
|
14
|
+
this.options["timeout"] = options.timeout;
|
|
15
|
+
this.options["delay"] = options.delay ?? 1000;
|
|
16
|
+
this.totalTicks = this.elapseTicks = options.timeout / this.options["delay"];
|
|
17
|
+
}
|
|
18
|
+
start(__resumed__ = false) {
|
|
19
|
+
const timeoutMethod = this.isInterval ? setInterval : setTimeout;
|
|
20
|
+
this.startTime = new Date().getTime();
|
|
21
|
+
this.timer = timeoutMethod((...args) => {
|
|
22
|
+
this.cbs?.action && this.cbs?.action(...args);
|
|
23
|
+
if (!this.isInterval) {
|
|
24
|
+
this.cbs?.onAction && this.cbs?.onAction(100);
|
|
25
|
+
this.cbs?.onEnd && this.cbs?.onEnd();
|
|
26
|
+
return;
|
|
27
|
+
}
|
|
28
|
+
const percentageTick = 100 - (((--this.elapseTicks) * 100) / this.totalTicks);
|
|
29
|
+
this.cbs?.onAction && this.cbs?.onAction(percentageTick);
|
|
30
|
+
if (percentageTick >= 100) {
|
|
31
|
+
this.startTime = undefined;
|
|
32
|
+
clearTimeout(this.timer);
|
|
33
|
+
this.timer = undefined;
|
|
34
|
+
this.cbs?.onEnd && this.cbs?.onEnd();
|
|
35
|
+
}
|
|
36
|
+
}, (this.isInterval ? this.options["delay"] : this.options["timeout"]), ...this.options["args"]);
|
|
37
|
+
if (!__resumed__)
|
|
38
|
+
this.cbs?.onStart && this.cbs.onStart();
|
|
39
|
+
}
|
|
40
|
+
stop() {
|
|
41
|
+
this.startTime = undefined;
|
|
42
|
+
clearTimeout(this.timer);
|
|
43
|
+
this.timer = undefined;
|
|
44
|
+
this.cbs?.onStop && this.cbs.onStop();
|
|
45
|
+
}
|
|
46
|
+
pause() {
|
|
47
|
+
if (!this.startTime)
|
|
48
|
+
return;
|
|
49
|
+
this.stop();
|
|
50
|
+
this.cbs?.onPause && this.cbs.onPause();
|
|
51
|
+
this.options["timeout"] -= (new Date()).getTime() - this.startTime;
|
|
52
|
+
}
|
|
53
|
+
resume() {
|
|
54
|
+
this.start(true);
|
|
55
|
+
this.cbs?.onResume && this.cbs.onResume();
|
|
56
|
+
}
|
|
57
|
+
restart(timeout) {
|
|
58
|
+
this.stop();
|
|
59
|
+
this.start();
|
|
60
|
+
if (timeout) {
|
|
61
|
+
this.totalTicks = this.elapseTicks = timeout / this.options["delay"];
|
|
62
|
+
}
|
|
63
|
+
else {
|
|
64
|
+
this.elapseTicks = this.totalTicks;
|
|
65
|
+
}
|
|
66
|
+
this.cbs?.onRestart && this.cbs.onRestart();
|
|
67
|
+
}
|
|
68
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export declare const TypeChecker: {
|
|
2
|
+
isString(data: any): data is string;
|
|
3
|
+
isTypeOfAny(obj: any, compares: string[]): boolean;
|
|
4
|
+
isFunction(obj: any): boolean;
|
|
5
|
+
isReactElement(obj: any): boolean;
|
|
6
|
+
isDict(obj: any): any;
|
|
7
|
+
isObject(obj: any): any;
|
|
8
|
+
isArray(obj: any): any;
|
|
9
|
+
isNumber(obj: any): any;
|
|
10
|
+
isBoolean(obj: any): boolean;
|
|
11
|
+
isNativeEqualrableType(obj: any): any;
|
|
12
|
+
};
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { BoolHelper } from "./BoolHelper";
|
|
3
|
+
export const TypeChecker = {
|
|
4
|
+
isString(data) {
|
|
5
|
+
return typeof data === 'string';
|
|
6
|
+
},
|
|
7
|
+
isTypeOfAny(obj, compares) {
|
|
8
|
+
return BoolHelper.equalsAny(typeof obj, compares);
|
|
9
|
+
},
|
|
10
|
+
isFunction(obj) {
|
|
11
|
+
if (!obj)
|
|
12
|
+
return false;
|
|
13
|
+
return typeof obj == "function" && (obj instanceof Function) || !!(obj && obj.constructor && obj.call && obj.apply);
|
|
14
|
+
},
|
|
15
|
+
isReactElement(obj) {
|
|
16
|
+
if (!obj)
|
|
17
|
+
return false;
|
|
18
|
+
return React.isValidElement(obj);
|
|
19
|
+
},
|
|
20
|
+
isDict(obj) {
|
|
21
|
+
return obj && typeof obj === 'object' && obj !== null && !(obj instanceof Array) && !(obj instanceof Date);
|
|
22
|
+
},
|
|
23
|
+
isObject(obj) {
|
|
24
|
+
return obj && typeof obj === 'object';
|
|
25
|
+
},
|
|
26
|
+
isArray(obj) {
|
|
27
|
+
return obj && Array.isArray(obj);
|
|
28
|
+
},
|
|
29
|
+
isNumber(obj) {
|
|
30
|
+
return obj && ((obj != null) && (obj !== '') && !isNaN(Number(obj.toString())));
|
|
31
|
+
},
|
|
32
|
+
isBoolean(obj) {
|
|
33
|
+
return TypeChecker.isTypeOfAny(obj, ["boolean"]);
|
|
34
|
+
},
|
|
35
|
+
isNativeEqualrableType(obj) {
|
|
36
|
+
return TypeChecker.isTypeOfAny(obj, ["string", "boolean"]) || TypeChecker.isNumber(obj) || TypeChecker.isFunction(obj);
|
|
37
|
+
},
|
|
38
|
+
};
|
package/package.json
ADDED
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@rivtn/noseur",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "Eccentric, managed and configurable react components",
|
|
5
|
+
"main": "./dist/cjs/index.js",
|
|
6
|
+
"module": "./dist/esm/index.js",
|
|
7
|
+
"types": "./dist/esm/index.d.ts",
|
|
8
|
+
"scripts": {
|
|
9
|
+
"build": "tsc",
|
|
10
|
+
"clean": "sh -c 'rm -Rf dist'",
|
|
11
|
+
"update": "npx -y npm-check-updates -u",
|
|
12
|
+
"_build:css": "sass src/ -o dist/esm/ ",
|
|
13
|
+
"showcase": "sh -c 'cd showcase; npm run watch'",
|
|
14
|
+
"lint": "eslint \"{**/*,*}.{js,ts,jsx,tsx}\"",
|
|
15
|
+
"build:css": "sass --no-source-map src:dist/esm",
|
|
16
|
+
"test": "echo \"Error: no test specified\" && exit 1",
|
|
17
|
+
"build:css:production": "sass --no-source-map --style=compressed src:dist/esm",
|
|
18
|
+
"pack": "npm run clean && npm run build && npm run build:css && npm pack"
|
|
19
|
+
},
|
|
20
|
+
"files": [
|
|
21
|
+
"dist",
|
|
22
|
+
"LICENSE",
|
|
23
|
+
"README.md"
|
|
24
|
+
],
|
|
25
|
+
"repository": {
|
|
26
|
+
"type": "git",
|
|
27
|
+
"url": "git+https://github.com/rivtn/noseur.git"
|
|
28
|
+
},
|
|
29
|
+
"keywords": [
|
|
30
|
+
"react",
|
|
31
|
+
"component",
|
|
32
|
+
"ui",
|
|
33
|
+
"theme",
|
|
34
|
+
"ronuse",
|
|
35
|
+
"rivtn"
|
|
36
|
+
],
|
|
37
|
+
"author": "Adewale Azeez",
|
|
38
|
+
"license": "MIT",
|
|
39
|
+
"bugs": {
|
|
40
|
+
"url": "https://github.com/rivtn/noseur/issues"
|
|
41
|
+
},
|
|
42
|
+
"homepage": "https://rivtn.github.io/noseur",
|
|
43
|
+
"dependencies": {
|
|
44
|
+
"@types/chart.js": "^4.0.1",
|
|
45
|
+
"@types/react": "^19.2.14",
|
|
46
|
+
"@types/react-dom": "^19.2.3",
|
|
47
|
+
"@types/react-transition-group": "^4.4.12",
|
|
48
|
+
"chart.js": "^4.5.1",
|
|
49
|
+
"react": "^19.2.5",
|
|
50
|
+
"react-dom": "^19.2.5",
|
|
51
|
+
"react-router-dom": "^7.14.0",
|
|
52
|
+
"react-transition-group": "^4.4.5",
|
|
53
|
+
"sass": "^1.99.0",
|
|
54
|
+
"tslib": "^2.8.1",
|
|
55
|
+
"typescript": "^6.0.2"
|
|
56
|
+
},
|
|
57
|
+
"devDependencies": {
|
|
58
|
+
"@typescript-eslint/eslint-plugin": "^8.58.1",
|
|
59
|
+
"@typescript-eslint/parser": "^8.58.1",
|
|
60
|
+
"eslint-plugin-react": "^7.37.5",
|
|
61
|
+
"eslint-plugin-react-hooks": "^7.0.1"
|
|
62
|
+
}
|
|
63
|
+
}
|