dry-ux 1.31.0 → 1.33.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.
@@ -1,5 +1,6 @@
1
1
  declare type Args<T = void> = {
2
2
  args: T;
3
+ loader?: boolean;
3
4
  skip?: {
4
5
  authCheck?: boolean;
5
6
  errorHandler?: boolean;
@@ -12,6 +13,8 @@ export declare type DajaxiceFn<TArgs = void> = <TResult = any>(args: ArgType<TAr
12
13
  * This function is used to create a type safe proxy for the Dajaxice functions.
13
14
  * @param modules: The modules object from the Dajaxice generated file.
14
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.
15
18
  * @returns A type safe proxy for calling Dajaxice functions.
16
19
  */
17
20
  export declare const DajaxiceProxy: <TModule>({ modules, authCheck, onError, loader, }: {
@@ -7,16 +7,18 @@ const Loader_1 = require("../ui-utils/Loader");
7
7
  * This function is used to create a type safe proxy for the Dajaxice functions.
8
8
  * @param modules: The modules object from the Dajaxice generated file.
9
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.
10
12
  * @returns A type safe proxy for calling Dajaxice functions.
11
13
  */
12
- const DajaxiceProxy = ({ modules, authCheck, onError, loader: showLoader, }) => new Proxy(modules, {
14
+ const DajaxiceProxy = ({ modules, authCheck, onError, loader: showLoaderGlobal, }) => new Proxy(modules, {
13
15
  get(target, module) {
14
16
  return new Proxy({}, {
15
17
  get(target, method) {
16
- return function ({ args, skip } = {}) {
18
+ return function ({ args, skip, loader: showLoaderLocal, } = {}) {
17
19
  return new Promise((resolve, reject) => {
18
20
  const methodName = window["Dajaxice"][module][method];
19
- const loader = showLoader && !(skip === null || skip === void 0 ? void 0 : skip.loader) ? new Loader_1.Loader() : undefined;
21
+ const loader = (showLoaderGlobal || showLoaderLocal) && !(skip === null || skip === void 0 ? void 0 : skip.loader) ? new Loader_1.Loader() : undefined;
20
22
  const hideLoader = () => {
21
23
  try {
22
24
  loader === null || loader === void 0 ? void 0 : loader.hide();
package/dist/index.d.ts CHANGED
@@ -10,3 +10,4 @@ export { DajaxiceFn, DajaxiceProxy } from "./helpers/DajaxiceProxy";
10
10
  export { ErrorBoundary } from "./error/ErrorBoundary";
11
11
  export { ErrorScreen } from "./error/ErrorScreen";
12
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.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;
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; } });
@@ -39,3 +39,5 @@ var ErrorScreen_1 = require("./error/ErrorScreen");
39
39
  Object.defineProperty(exports, "ErrorScreen", { enumerable: true, get: function () { return ErrorScreen_1.ErrorScreen; } });
40
40
  var Loader_1 = require("./ui-utils/Loader");
41
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; } });
@@ -1,8 +1,8 @@
1
1
  export declare class Loader {
2
- private css;
2
+ private readonly spinnerStyles;
3
+ private readonly elementId;
3
4
  get element(): HTMLElement;
4
5
  show(): void;
5
6
  hide(): void;
6
- private addStyles;
7
7
  private addElementsIfNotExists;
8
8
  }
@@ -1,132 +1,14 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Loader = void 0;
4
+ const SpinnerStyles_1 = require("./SpinnerStyles");
4
5
  class Loader {
5
6
  constructor() {
6
- this.css = `/* Absolute Center Spinner */
7
- #dry-ux-loader {
8
- position: fixed;
9
- z-index: 999;
10
- height: 2em;
11
- width: 2em;
12
- overflow: show;
13
- margin: auto;
14
- top: 0;
15
- left: 0;
16
- bottom: 0;
17
- right: 0;
18
- visibility: hidden;
19
- }
20
-
21
- /* Transparent Overlay */
22
- #dry-ux-loader:before {
23
- content: '';
24
- display: block;
25
- position: fixed;
26
- top: 0;
27
- left: 0;
28
- width: 100%;
29
- height: 100%;
30
- background-color: rgba(0,0,0,0.3);
31
- }
32
-
33
- /* :not(:required) hides these rules from IE9 and below */
34
- #dry-ux-loader:not(:required) {
35
- /* hide "loading..." text */
36
- font: 0/0 a;
37
- color: transparent;
38
- text-shadow: none;
39
- background-color: transparent;
40
- border: 0;
41
- }
42
-
43
- #dry-ux-loader:not(:required):after {
44
- content: '';
45
- display: block;
46
- font-size: 10px;
47
- width: 1em;
48
- height: 1em;
49
- margin-top: -0.5em;
50
- -webkit-animation: spinner 1500ms infinite linear;
51
- -moz-animation: spinner 1500ms infinite linear;
52
- -ms-animation: spinner 1500ms infinite linear;
53
- -o-animation: spinner 1500ms infinite linear;
54
- animation: spinner 1500ms infinite linear;
55
- border-radius: 0.5em;
56
- -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;
57
- 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;
58
- }
59
-
60
- /* Animation */
61
-
62
- @-webkit-keyframes spinner {
63
- 0% {
64
- -webkit-transform: rotate(0deg);
65
- -moz-transform: rotate(0deg);
66
- -ms-transform: rotate(0deg);
67
- -o-transform: rotate(0deg);
68
- transform: rotate(0deg);
69
- }
70
- 100% {
71
- -webkit-transform: rotate(360deg);
72
- -moz-transform: rotate(360deg);
73
- -ms-transform: rotate(360deg);
74
- -o-transform: rotate(360deg);
75
- transform: rotate(360deg);
76
- }
77
- }
78
- @-moz-keyframes spinner {
79
- 0% {
80
- -webkit-transform: rotate(0deg);
81
- -moz-transform: rotate(0deg);
82
- -ms-transform: rotate(0deg);
83
- -o-transform: rotate(0deg);
84
- transform: rotate(0deg);
85
- }
86
- 100% {
87
- -webkit-transform: rotate(360deg);
88
- -moz-transform: rotate(360deg);
89
- -ms-transform: rotate(360deg);
90
- -o-transform: rotate(360deg);
91
- transform: rotate(360deg);
92
- }
93
- }
94
- @-o-keyframes spinner {
95
- 0% {
96
- -webkit-transform: rotate(0deg);
97
- -moz-transform: rotate(0deg);
98
- -ms-transform: rotate(0deg);
99
- -o-transform: rotate(0deg);
100
- transform: rotate(0deg);
101
- }
102
- 100% {
103
- -webkit-transform: rotate(360deg);
104
- -moz-transform: rotate(360deg);
105
- -ms-transform: rotate(360deg);
106
- -o-transform: rotate(360deg);
107
- transform: rotate(360deg);
108
- }
109
- }
110
- @keyframes spinner {
111
- 0% {
112
- -webkit-transform: rotate(0deg);
113
- -moz-transform: rotate(0deg);
114
- -ms-transform: rotate(0deg);
115
- -o-transform: rotate(0deg);
116
- transform: rotate(0deg);
117
- }
118
- 100% {
119
- -webkit-transform: rotate(360deg);
120
- -moz-transform: rotate(360deg);
121
- -ms-transform: rotate(360deg);
122
- -o-transform: rotate(360deg);
123
- transform: rotate(360deg);
124
- }
125
- }
126
- `;
7
+ this.spinnerStyles = new SpinnerStyles_1.SpinnerStyles();
8
+ this.elementId = "dry-ux-loader";
127
9
  }
128
10
  get element() {
129
- return document.getElementById("dry-ux-loader");
11
+ return document.getElementById(this.elementId);
130
12
  }
131
13
  show() {
132
14
  this.addElementsIfNotExists();
@@ -137,19 +19,12 @@ class Loader {
137
19
  this.element.style.visibility = "hidden";
138
20
  }
139
21
  }
140
- addStyles() {
141
- let el = document.createElement("style");
142
- el.innerText = this.css;
143
- document.head.appendChild(el);
144
- return el;
145
- }
146
22
  addElementsIfNotExists() {
147
- if (!document.getElementById("dry-ux-loader-styles")) {
148
- this.addStyles();
149
- }
23
+ this.spinnerStyles.add();
150
24
  if (!this.element) {
151
25
  let el = document.createElement("div");
152
- el.id = "dry-ux-loader";
26
+ el.id = this.elementId;
27
+ el.className = "dry-ux-spinner fullscreen";
153
28
  document.body.appendChild(el);
154
29
  }
155
30
  }
@@ -0,0 +1,2 @@
1
+ import * as React from "react";
2
+ export declare const Spinner: React.MemoExoticComponent<() => JSX.Element>;
@@ -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,5 @@
1
+ export declare class SpinnerStyles {
2
+ private readonly css;
3
+ private readonly id;
4
+ add(): HTMLStyleElement;
5
+ }
@@ -0,0 +1,145 @@
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
+ display: inline-block;
37
+ }
38
+
39
+ /* :not(:required) hides these rules from IE9 and below */
40
+ .dry-ux-spinner:not(:required) {
41
+ /* hide "loading..." text */
42
+ font: 0/0 a;
43
+ color: transparent;
44
+ text-shadow: none;
45
+ background-color: transparent;
46
+ border: 0;
47
+ }
48
+
49
+ .dry-ux-spinner:not(:required):after {
50
+ content: '';
51
+ display: block;
52
+ font-size: 10px;
53
+ width: 1em;
54
+ height: 1em;
55
+ margin-top: -0.5em;
56
+ -webkit-animation: spinner 1500ms infinite linear;
57
+ -moz-animation: spinner 1500ms infinite linear;
58
+ -ms-animation: spinner 1500ms infinite linear;
59
+ -o-animation: spinner 1500ms infinite linear;
60
+ animation: spinner 1500ms infinite linear;
61
+ border-radius: 0.5em;
62
+ -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;
63
+ 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;
64
+ }
65
+
66
+ /* Animation */
67
+
68
+ @-webkit-keyframes spinner {
69
+ 0% {
70
+ -webkit-transform: rotate(0deg);
71
+ -moz-transform: rotate(0deg);
72
+ -ms-transform: rotate(0deg);
73
+ -o-transform: rotate(0deg);
74
+ transform: rotate(0deg);
75
+ }
76
+ 100% {
77
+ -webkit-transform: rotate(360deg);
78
+ -moz-transform: rotate(360deg);
79
+ -ms-transform: rotate(360deg);
80
+ -o-transform: rotate(360deg);
81
+ transform: rotate(360deg);
82
+ }
83
+ }
84
+ @-moz-keyframes spinner {
85
+ 0% {
86
+ -webkit-transform: rotate(0deg);
87
+ -moz-transform: rotate(0deg);
88
+ -ms-transform: rotate(0deg);
89
+ -o-transform: rotate(0deg);
90
+ transform: rotate(0deg);
91
+ }
92
+ 100% {
93
+ -webkit-transform: rotate(360deg);
94
+ -moz-transform: rotate(360deg);
95
+ -ms-transform: rotate(360deg);
96
+ -o-transform: rotate(360deg);
97
+ transform: rotate(360deg);
98
+ }
99
+ }
100
+ @-o-keyframes spinner {
101
+ 0% {
102
+ -webkit-transform: rotate(0deg);
103
+ -moz-transform: rotate(0deg);
104
+ -ms-transform: rotate(0deg);
105
+ -o-transform: rotate(0deg);
106
+ transform: rotate(0deg);
107
+ }
108
+ 100% {
109
+ -webkit-transform: rotate(360deg);
110
+ -moz-transform: rotate(360deg);
111
+ -ms-transform: rotate(360deg);
112
+ -o-transform: rotate(360deg);
113
+ transform: rotate(360deg);
114
+ }
115
+ }
116
+ @keyframes spinner {
117
+ 0% {
118
+ -webkit-transform: rotate(0deg);
119
+ -moz-transform: rotate(0deg);
120
+ -ms-transform: rotate(0deg);
121
+ -o-transform: rotate(0deg);
122
+ transform: rotate(0deg);
123
+ }
124
+ 100% {
125
+ -webkit-transform: rotate(360deg);
126
+ -moz-transform: rotate(360deg);
127
+ -ms-transform: rotate(360deg);
128
+ -o-transform: rotate(360deg);
129
+ transform: rotate(360deg);
130
+ }
131
+ }
132
+ `;
133
+ this.id = "dry-ux-loader-styles";
134
+ }
135
+ add() {
136
+ if (!document.getElementById(this.id)) {
137
+ let el = document.createElement("style");
138
+ el.innerText = this.css;
139
+ el.id = this.id;
140
+ document.head.appendChild(el);
141
+ return el;
142
+ }
143
+ }
144
+ }
145
+ exports.SpinnerStyles = SpinnerStyles;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dry-ux",
3
- "version": "1.31.0",
3
+ "version": "1.33.0",
4
4
  "description": "",
5
5
  "main": "dist/index",
6
6
  "scripts": {