dry-ux 1.30.0 → 1.32.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/dist/helpers/DajaxiceProxy.d.ts +11 -2
- package/dist/helpers/DajaxiceProxy.js +32 -6
- package/dist/index.d.ts +2 -0
- package/dist/index.js +5 -1
- package/dist/ui-utils/Loader.d.ts +8 -0
- package/dist/ui-utils/Loader.js +32 -0
- package/dist/ui-utils/Spinner.d.ts +2 -0
- package/dist/ui-utils/Spinner.js +12 -0
- package/dist/ui-utils/SpinnerStyles.d.ts +5 -0
- package/dist/ui-utils/SpinnerStyles.js +144 -0
- package/package.json +1 -1
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
declare type Args<T = void> = {
|
|
2
2
|
args: T;
|
|
3
|
-
|
|
3
|
+
loader?: boolean;
|
|
4
|
+
skip?: {
|
|
5
|
+
authCheck?: boolean;
|
|
6
|
+
errorHandler?: boolean;
|
|
7
|
+
loader?: boolean;
|
|
8
|
+
};
|
|
4
9
|
};
|
|
5
10
|
declare type ArgType<T> = T extends void ? Omit<Args, "args"> | void : Args<T>;
|
|
6
11
|
export declare type DajaxiceFn<TArgs = void> = <TResult = any>(args: ArgType<TArgs>) => Promise<TResult>;
|
|
@@ -8,13 +13,17 @@ export declare type DajaxiceFn<TArgs = void> = <TResult = any>(args: ArgType<TAr
|
|
|
8
13
|
* This function is used to create a type safe proxy for the Dajaxice functions.
|
|
9
14
|
* @param modules: The modules object from the Dajaxice generated file.
|
|
10
15
|
* @param authCheck The auth check object. If undefined, it will not check for authentication.
|
|
16
|
+
* @param onError: Default handler for error
|
|
17
|
+
* @param loader: If true, it will show a loader when a Dajaxice function is called.
|
|
11
18
|
* @returns A type safe proxy for calling Dajaxice functions.
|
|
12
19
|
*/
|
|
13
|
-
export declare const DajaxiceProxy: <TModule>({ modules, authCheck, }: {
|
|
20
|
+
export declare const DajaxiceProxy: <TModule>({ modules, authCheck, onError, loader, }: {
|
|
14
21
|
modules: TModule;
|
|
15
22
|
authCheck?: {
|
|
16
23
|
url: string;
|
|
17
24
|
redirectUrl: string;
|
|
18
25
|
};
|
|
26
|
+
onError?: (error: any) => void;
|
|
27
|
+
loader?: boolean;
|
|
19
28
|
}) => TModule;
|
|
20
29
|
export {};
|
|
@@ -2,28 +2,54 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.DajaxiceProxy = void 0;
|
|
4
4
|
const utilities_1 = require("./utilities");
|
|
5
|
+
const Loader_1 = require("../ui-utils/Loader");
|
|
5
6
|
/**
|
|
6
7
|
* This function is used to create a type safe proxy for the Dajaxice functions.
|
|
7
8
|
* @param modules: The modules object from the Dajaxice generated file.
|
|
8
9
|
* @param authCheck The auth check object. If undefined, it will not check for authentication.
|
|
10
|
+
* @param onError: Default handler for error
|
|
11
|
+
* @param loader: If true, it will show a loader when a Dajaxice function is called.
|
|
9
12
|
* @returns A type safe proxy for calling Dajaxice functions.
|
|
10
13
|
*/
|
|
11
|
-
const DajaxiceProxy = ({ modules, authCheck, }) => new Proxy(modules, {
|
|
14
|
+
const DajaxiceProxy = ({ modules, authCheck, onError, loader: showLoaderGlobal, }) => new Proxy(modules, {
|
|
12
15
|
get(target, module) {
|
|
13
16
|
return new Proxy({}, {
|
|
14
17
|
get(target, method) {
|
|
15
|
-
return function ({ args,
|
|
18
|
+
return function ({ args, skip, loader: showLoaderLocal, } = {}) {
|
|
16
19
|
return new Promise((resolve, reject) => {
|
|
17
20
|
const methodName = window["Dajaxice"][module][method];
|
|
21
|
+
const loader = (showLoaderGlobal || showLoaderLocal) && !(skip === null || skip === void 0 ? void 0 : skip.loader) ? new Loader_1.Loader() : undefined;
|
|
22
|
+
const hideLoader = () => {
|
|
23
|
+
try {
|
|
24
|
+
loader === null || loader === void 0 ? void 0 : loader.hide();
|
|
25
|
+
}
|
|
26
|
+
catch (e) { }
|
|
27
|
+
};
|
|
18
28
|
if (methodName) {
|
|
19
|
-
const
|
|
20
|
-
|
|
29
|
+
const handleError = (e) => {
|
|
30
|
+
try {
|
|
31
|
+
!(skip === null || skip === void 0 ? void 0 : skip.errorHandler) && (onError === null || onError === void 0 ? void 0 : onError(e));
|
|
32
|
+
}
|
|
33
|
+
catch (e) { }
|
|
34
|
+
hideLoader();
|
|
35
|
+
reject(e);
|
|
36
|
+
};
|
|
37
|
+
const handleSuccess = (result) => {
|
|
38
|
+
hideLoader();
|
|
39
|
+
resolve(result);
|
|
40
|
+
};
|
|
41
|
+
const fn = () => methodName(handleSuccess, args, {
|
|
42
|
+
error_callback: handleError,
|
|
21
43
|
});
|
|
22
|
-
|
|
44
|
+
try {
|
|
45
|
+
loader === null || loader === void 0 ? void 0 : loader.show();
|
|
46
|
+
}
|
|
47
|
+
catch (e) { }
|
|
48
|
+
if ((skip === null || skip === void 0 ? void 0 : skip.authCheck) || !authCheck) {
|
|
23
49
|
fn();
|
|
24
50
|
}
|
|
25
51
|
else {
|
|
26
|
-
(0, utilities_1.fnWithAuthCheck)(fn, authCheck.url, authCheck.redirectUrl).catch(
|
|
52
|
+
(0, utilities_1.fnWithAuthCheck)(fn, authCheck.url, authCheck.redirectUrl).catch(handleError);
|
|
27
53
|
}
|
|
28
54
|
}
|
|
29
55
|
else {
|
package/dist/index.d.ts
CHANGED
|
@@ -9,3 +9,5 @@ export { flatten, unflatten } from "./helpers/flat";
|
|
|
9
9
|
export { DajaxiceFn, DajaxiceProxy } from "./helpers/DajaxiceProxy";
|
|
10
10
|
export { ErrorBoundary } from "./error/ErrorBoundary";
|
|
11
11
|
export { ErrorScreen } from "./error/ErrorScreen";
|
|
12
|
+
export { Loader } from "./ui-utils/Loader";
|
|
13
|
+
export { Spinner } from "./ui-utils/Spinner";
|
package/dist/index.js
CHANGED
|
@@ -14,7 +14,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
exports.ErrorScreen = exports.ErrorBoundary = exports.DajaxiceProxy = exports.unflatten = exports.flatten = exports.classSet = exports.DryUXProvider = exports.Money = exports.DryUXRenderer = exports.DryUXContext = exports.useDryUxContext = void 0;
|
|
17
|
+
exports.Spinner = exports.Loader = exports.ErrorScreen = exports.ErrorBoundary = exports.DajaxiceProxy = exports.unflatten = exports.flatten = exports.classSet = exports.DryUXProvider = exports.Money = exports.DryUXRenderer = exports.DryUXContext = exports.useDryUxContext = void 0;
|
|
18
18
|
var UIUtilProvider_1 = require("./ui-utils/UIUtilProvider");
|
|
19
19
|
Object.defineProperty(exports, "useDryUxContext", { enumerable: true, get: function () { return UIUtilProvider_1.useUIUtilContext; } });
|
|
20
20
|
Object.defineProperty(exports, "DryUXContext", { enumerable: true, get: function () { return UIUtilProvider_1.UIUtilContext; } });
|
|
@@ -37,3 +37,7 @@ var ErrorBoundary_1 = require("./error/ErrorBoundary");
|
|
|
37
37
|
Object.defineProperty(exports, "ErrorBoundary", { enumerable: true, get: function () { return ErrorBoundary_1.ErrorBoundary; } });
|
|
38
38
|
var ErrorScreen_1 = require("./error/ErrorScreen");
|
|
39
39
|
Object.defineProperty(exports, "ErrorScreen", { enumerable: true, get: function () { return ErrorScreen_1.ErrorScreen; } });
|
|
40
|
+
var Loader_1 = require("./ui-utils/Loader");
|
|
41
|
+
Object.defineProperty(exports, "Loader", { enumerable: true, get: function () { return Loader_1.Loader; } });
|
|
42
|
+
var Spinner_1 = require("./ui-utils/Spinner");
|
|
43
|
+
Object.defineProperty(exports, "Spinner", { enumerable: true, get: function () { return Spinner_1.Spinner; } });
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Loader = void 0;
|
|
4
|
+
const SpinnerStyles_1 = require("./SpinnerStyles");
|
|
5
|
+
class Loader {
|
|
6
|
+
constructor() {
|
|
7
|
+
this.spinnerStyles = new SpinnerStyles_1.SpinnerStyles();
|
|
8
|
+
this.elementId = "dry-ux-loader";
|
|
9
|
+
}
|
|
10
|
+
get element() {
|
|
11
|
+
return document.getElementById(this.elementId);
|
|
12
|
+
}
|
|
13
|
+
show() {
|
|
14
|
+
this.addElementsIfNotExists();
|
|
15
|
+
this.element.style.visibility = "visible";
|
|
16
|
+
}
|
|
17
|
+
hide() {
|
|
18
|
+
if (this.element) {
|
|
19
|
+
this.element.style.visibility = "hidden";
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
addElementsIfNotExists() {
|
|
23
|
+
this.spinnerStyles.add();
|
|
24
|
+
if (!this.element) {
|
|
25
|
+
let el = document.createElement("div");
|
|
26
|
+
el.id = this.elementId;
|
|
27
|
+
el.className = "dry-ux-spinner fullscreen";
|
|
28
|
+
document.body.appendChild(el);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
exports.Loader = Loader;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Spinner = void 0;
|
|
4
|
+
const React = require("react");
|
|
5
|
+
const SpinnerStyles_1 = require("./SpinnerStyles");
|
|
6
|
+
exports.Spinner = React.memo(() => {
|
|
7
|
+
React.useEffect(() => {
|
|
8
|
+
const spinnerStyles = new SpinnerStyles_1.SpinnerStyles();
|
|
9
|
+
spinnerStyles.add();
|
|
10
|
+
}, []);
|
|
11
|
+
return React.createElement("div", { className: "dry-ux-spinner" });
|
|
12
|
+
});
|
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SpinnerStyles = void 0;
|
|
4
|
+
class SpinnerStyles {
|
|
5
|
+
constructor() {
|
|
6
|
+
this.css = `
|
|
7
|
+
/* Absolute Center Spinner */
|
|
8
|
+
.dry-ux-spinner.fullscreen {
|
|
9
|
+
position: fixed;
|
|
10
|
+
z-index: 999;
|
|
11
|
+
height: 2em;
|
|
12
|
+
width: 2em;
|
|
13
|
+
overflow: show;
|
|
14
|
+
margin: auto;
|
|
15
|
+
top: 0;
|
|
16
|
+
left: 0;
|
|
17
|
+
bottom: 0;
|
|
18
|
+
right: 0;
|
|
19
|
+
visibility: hidden;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
/* Transparent Overlay */
|
|
23
|
+
.dry-ux-spinner.fullscreen:before {
|
|
24
|
+
content: '';
|
|
25
|
+
display: block;
|
|
26
|
+
position: fixed;
|
|
27
|
+
top: 0;
|
|
28
|
+
left: 0;
|
|
29
|
+
width: 100%;
|
|
30
|
+
height: 100%;
|
|
31
|
+
background-color: rgba(0,0,0,0.3);
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
.dry-ux-spinner:not(.fullscreen) {
|
|
35
|
+
padding: 20px
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
/* :not(:required) hides these rules from IE9 and below */
|
|
39
|
+
.dry-ux-spinner:not(:required) {
|
|
40
|
+
/* hide "loading..." text */
|
|
41
|
+
font: 0/0 a;
|
|
42
|
+
color: transparent;
|
|
43
|
+
text-shadow: none;
|
|
44
|
+
background-color: transparent;
|
|
45
|
+
border: 0;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
.dry-ux-spinner:not(:required):after {
|
|
49
|
+
content: '';
|
|
50
|
+
display: block;
|
|
51
|
+
font-size: 10px;
|
|
52
|
+
width: 1em;
|
|
53
|
+
height: 1em;
|
|
54
|
+
margin-top: -0.5em;
|
|
55
|
+
-webkit-animation: spinner 1500ms infinite linear;
|
|
56
|
+
-moz-animation: spinner 1500ms infinite linear;
|
|
57
|
+
-ms-animation: spinner 1500ms infinite linear;
|
|
58
|
+
-o-animation: spinner 1500ms infinite linear;
|
|
59
|
+
animation: spinner 1500ms infinite linear;
|
|
60
|
+
border-radius: 0.5em;
|
|
61
|
+
-webkit-box-shadow: rgba(0, 0, 0, 0.75) 1.5em 0 0 0, rgba(0, 0, 0, 0.75) 1.1em 1.1em 0 0, rgba(0, 0, 0, 0.75) 0 1.5em 0 0, rgba(0, 0, 0, 0.75) -1.1em 1.1em 0 0, rgba(0, 0, 0, 0.5) -1.5em 0 0 0, rgba(0, 0, 0, 0.5) -1.1em -1.1em 0 0, rgba(0, 0, 0, 0.75) 0 -1.5em 0 0, rgba(0, 0, 0, 0.75) 1.1em -1.1em 0 0;
|
|
62
|
+
box-shadow: rgba(0, 0, 0, 0.75) 1.5em 0 0 0, rgba(0, 0, 0, 0.75) 1.1em 1.1em 0 0, rgba(0, 0, 0, 0.75) 0 1.5em 0 0, rgba(0, 0, 0, 0.75) -1.1em 1.1em 0 0, rgba(0, 0, 0, 0.75) -1.5em 0 0 0, rgba(0, 0, 0, 0.75) -1.1em -1.1em 0 0, rgba(0, 0, 0, 0.75) 0 -1.5em 0 0, rgba(0, 0, 0, 0.75) 1.1em -1.1em 0 0;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
/* Animation */
|
|
66
|
+
|
|
67
|
+
@-webkit-keyframes spinner {
|
|
68
|
+
0% {
|
|
69
|
+
-webkit-transform: rotate(0deg);
|
|
70
|
+
-moz-transform: rotate(0deg);
|
|
71
|
+
-ms-transform: rotate(0deg);
|
|
72
|
+
-o-transform: rotate(0deg);
|
|
73
|
+
transform: rotate(0deg);
|
|
74
|
+
}
|
|
75
|
+
100% {
|
|
76
|
+
-webkit-transform: rotate(360deg);
|
|
77
|
+
-moz-transform: rotate(360deg);
|
|
78
|
+
-ms-transform: rotate(360deg);
|
|
79
|
+
-o-transform: rotate(360deg);
|
|
80
|
+
transform: rotate(360deg);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
@-moz-keyframes spinner {
|
|
84
|
+
0% {
|
|
85
|
+
-webkit-transform: rotate(0deg);
|
|
86
|
+
-moz-transform: rotate(0deg);
|
|
87
|
+
-ms-transform: rotate(0deg);
|
|
88
|
+
-o-transform: rotate(0deg);
|
|
89
|
+
transform: rotate(0deg);
|
|
90
|
+
}
|
|
91
|
+
100% {
|
|
92
|
+
-webkit-transform: rotate(360deg);
|
|
93
|
+
-moz-transform: rotate(360deg);
|
|
94
|
+
-ms-transform: rotate(360deg);
|
|
95
|
+
-o-transform: rotate(360deg);
|
|
96
|
+
transform: rotate(360deg);
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
@-o-keyframes spinner {
|
|
100
|
+
0% {
|
|
101
|
+
-webkit-transform: rotate(0deg);
|
|
102
|
+
-moz-transform: rotate(0deg);
|
|
103
|
+
-ms-transform: rotate(0deg);
|
|
104
|
+
-o-transform: rotate(0deg);
|
|
105
|
+
transform: rotate(0deg);
|
|
106
|
+
}
|
|
107
|
+
100% {
|
|
108
|
+
-webkit-transform: rotate(360deg);
|
|
109
|
+
-moz-transform: rotate(360deg);
|
|
110
|
+
-ms-transform: rotate(360deg);
|
|
111
|
+
-o-transform: rotate(360deg);
|
|
112
|
+
transform: rotate(360deg);
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
@keyframes spinner {
|
|
116
|
+
0% {
|
|
117
|
+
-webkit-transform: rotate(0deg);
|
|
118
|
+
-moz-transform: rotate(0deg);
|
|
119
|
+
-ms-transform: rotate(0deg);
|
|
120
|
+
-o-transform: rotate(0deg);
|
|
121
|
+
transform: rotate(0deg);
|
|
122
|
+
}
|
|
123
|
+
100% {
|
|
124
|
+
-webkit-transform: rotate(360deg);
|
|
125
|
+
-moz-transform: rotate(360deg);
|
|
126
|
+
-ms-transform: rotate(360deg);
|
|
127
|
+
-o-transform: rotate(360deg);
|
|
128
|
+
transform: rotate(360deg);
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
`;
|
|
132
|
+
this.id = "dry-ux-loader-styles";
|
|
133
|
+
}
|
|
134
|
+
add() {
|
|
135
|
+
if (!document.getElementById(this.id)) {
|
|
136
|
+
let el = document.createElement("style");
|
|
137
|
+
el.innerText = this.css;
|
|
138
|
+
el.id = this.id;
|
|
139
|
+
document.head.appendChild(el);
|
|
140
|
+
return el;
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
exports.SpinnerStyles = SpinnerStyles;
|