@schukai/monster 3.4.2 → 3.7.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.
Files changed (109) hide show
  1. package/example/i18n/providers/embed.mjs +5 -0
  2. package/package.json +1 -1
  3. package/source/constants.mjs +4 -9
  4. package/source/constraints/abstract.mjs +4 -6
  5. package/source/constraints/abstractoperator.mjs +6 -12
  6. package/source/constraints/andoperator.mjs +3 -6
  7. package/source/constraints/invalid.mjs +3 -6
  8. package/source/constraints/isarray.mjs +6 -9
  9. package/source/constraints/isobject.mjs +4 -7
  10. package/source/constraints/namespace.mjs +1 -3
  11. package/source/constraints/oroperator.mjs +26 -25
  12. package/source/constraints/valid.mjs +3 -6
  13. package/source/data/buildmap.mjs +20 -36
  14. package/source/data/buildtree.mjs +29 -29
  15. package/source/data/datasource/namespace.mjs +1 -1
  16. package/source/data/datasource/server/restapi/writeerror.mjs +6 -6
  17. package/source/data/datasource/server/restapi.mjs +51 -65
  18. package/source/data/datasource/server/webconnect.mjs +26 -35
  19. package/source/data/datasource/server.mjs +17 -21
  20. package/source/data/datasource/storage/localstorage.mjs +8 -11
  21. package/source/data/datasource/storage/sessionstorage.mjs +8 -10
  22. package/source/data/datasource/storage.mjs +18 -22
  23. package/source/data/datasource.mjs +27 -43
  24. package/source/data/diff.mjs +20 -32
  25. package/source/data/extend.mjs +20 -14
  26. package/source/data/namespace.mjs +1 -3
  27. package/source/data/pathfinder.mjs +40 -67
  28. package/source/data/pipe.mjs +6 -10
  29. package/source/data/transformer.mjs +141 -157
  30. package/source/dom/assembler.mjs +6 -9
  31. package/source/dom/attributes.mjs +36 -48
  32. package/source/dom/constants.mjs +55 -71
  33. package/source/dom/customcontrol.mjs +16 -21
  34. package/source/dom/customelement.mjs +140 -164
  35. package/source/dom/events.mjs +17 -24
  36. package/source/dom/focusmanager.mjs +30 -48
  37. package/source/dom/locale.mjs +41 -10
  38. package/source/dom/namespace.mjs +1 -1
  39. package/source/dom/ready.mjs +7 -10
  40. package/source/dom/resource/data.mjs +38 -46
  41. package/source/dom/resource/link/namespace.mjs +1 -3
  42. package/source/dom/resource/link/stylesheet.mjs +7 -11
  43. package/source/dom/resource/link.mjs +36 -17
  44. package/source/dom/resource/namespace.mjs +1 -1
  45. package/source/dom/resource/script.mjs +23 -13
  46. package/source/dom/resource.mjs +47 -60
  47. package/source/dom/resourcemanager.mjs +36 -43
  48. package/source/dom/template.mjs +17 -24
  49. package/source/dom/theme.mjs +8 -12
  50. package/source/dom/updater.mjs +150 -196
  51. package/source/dom/util.mjs +11 -12
  52. package/source/dom/worker/factory.mjs +21 -25
  53. package/source/dom/worker/namespace.mjs +1 -1
  54. package/source/i18n/formatter.mjs +20 -24
  55. package/source/i18n/locale.mjs +40 -42
  56. package/source/i18n/namespace.mjs +1 -1
  57. package/source/i18n/provider.mjs +4 -7
  58. package/source/i18n/providers/embed.mjs +115 -0
  59. package/source/i18n/providers/fetch.mjs +33 -38
  60. package/source/i18n/translations.mjs +16 -20
  61. package/source/logging/handler/console.mjs +6 -10
  62. package/source/logging/handler.mjs +15 -18
  63. package/source/logging/logentry.mjs +8 -9
  64. package/source/logging/logger.mjs +73 -55
  65. package/source/logging/namespace.mjs +1 -1
  66. package/source/math/namespace.mjs +1 -1
  67. package/source/math/random.mjs +13 -14
  68. package/source/monster.mjs +132 -100
  69. package/source/net/namespace.mjs +1 -3
  70. package/source/net/webconnect/message.mjs +6 -8
  71. package/source/net/webconnect/namespace.mjs +1 -3
  72. package/source/net/webconnect.mjs +28 -39
  73. package/source/text/formatter.mjs +44 -55
  74. package/source/types/base.mjs +16 -26
  75. package/source/types/basewithoptions.mjs +8 -14
  76. package/source/types/binary.mjs +4 -5
  77. package/source/types/dataurl.mjs +19 -27
  78. package/source/types/global.mjs +14 -26
  79. package/source/types/id.mjs +4 -6
  80. package/source/types/is.mjs +11 -16
  81. package/source/types/mediatype.mjs +29 -44
  82. package/source/types/namespace.mjs +0 -1
  83. package/source/types/node.mjs +16 -22
  84. package/source/types/nodelist.mjs +10 -14
  85. package/source/types/noderecursiveiterator.mjs +11 -14
  86. package/source/types/observablequeue.mjs +13 -16
  87. package/source/types/observer.mjs +16 -23
  88. package/source/types/observerlist.mjs +18 -21
  89. package/source/types/proxyobserver.mjs +24 -37
  90. package/source/types/queue.mjs +8 -13
  91. package/source/types/randomid.mjs +10 -10
  92. package/source/types/regex.mjs +3 -5
  93. package/source/types/stack.mjs +4 -8
  94. package/source/types/tokenlist.mjs +24 -31
  95. package/source/types/typeof.mjs +5 -7
  96. package/source/types/uniquequeue.mjs +8 -13
  97. package/source/types/uuid.mjs +18 -25
  98. package/source/types/validate.mjs +26 -27
  99. package/source/types/version.mjs +17 -25
  100. package/source/util/clone.mjs +23 -32
  101. package/source/util/comparator.mjs +7 -15
  102. package/source/util/deadmansswitch.mjs +16 -23
  103. package/source/util/freeze.mjs +5 -7
  104. package/source/util/namespace.mjs +1 -1
  105. package/source/util/processing.mjs +33 -39
  106. package/source/util/trimspaces.mjs +17 -24
  107. package/test/cases/dom/locale.mjs +15 -0
  108. package/test/cases/i18n/providers/embed.mjs +72 -0
  109. package/test/cases/monster.mjs +1 -1
@@ -5,11 +5,11 @@
5
5
  * License text available at https://www.gnu.org/licenses/agpl-3.0.en.html
6
6
  */
7
7
 
8
- import {isArray, isObject} from "../types/is.mjs";
9
- import {validateInstance, validateString} from "../types/validate.mjs";
10
- import {getDocument} from "./util.mjs";
8
+ import { isArray, isObject } from "../types/is.mjs";
9
+ import { validateInstance, validateString } from "../types/validate.mjs";
10
+ import { getDocument } from "./util.mjs";
11
11
 
12
- export {fireEvent, fireCustomEvent, findTargetElementFromEvent}
12
+ export { fireEvent, fireCustomEvent, findTargetElementFromEvent };
13
13
 
14
14
  /**
15
15
  * The function sends an event
@@ -25,12 +25,10 @@ export {fireEvent, fireCustomEvent, findTargetElementFromEvent}
25
25
  * @summary Construct and send and event
26
26
  */
27
27
  function fireEvent(element, type) {
28
-
29
28
  const document = getDocument();
30
29
 
31
30
  if (element instanceof HTMLElement) {
32
-
33
- if (type === 'click') {
31
+ if (type === "click") {
34
32
  element.click();
35
33
  return;
36
34
  }
@@ -41,15 +39,13 @@ function fireEvent(element, type) {
41
39
  });
42
40
 
43
41
  element.dispatchEvent(event);
44
-
45
42
  } else if (element instanceof HTMLCollection || element instanceof NodeList) {
46
43
  for (let e of element) {
47
44
  fireEvent(e, type);
48
45
  }
49
46
  } else {
50
- throw new TypeError('value is not an instance of HTMLElement or HTMLCollection')
47
+ throw new TypeError("value is not an instance of HTMLElement or HTMLCollection");
51
48
  }
52
-
53
49
  }
54
50
 
55
51
  /**
@@ -66,38 +62,34 @@ function fireEvent(element, type) {
66
62
  * @summary Construct and send and event
67
63
  */
68
64
  function fireCustomEvent(element, type, detail) {
69
-
70
65
  const document = getDocument();
71
66
 
72
67
  if (element instanceof HTMLElement) {
73
-
74
68
  if (!isObject(detail)) {
75
- detail = {detail};
69
+ detail = { detail };
76
70
  }
77
71
 
78
72
  let event = new CustomEvent(validateString(type), {
79
73
  bubbles: true,
80
74
  cancelable: true,
81
- detail
75
+ detail,
82
76
  });
83
77
 
84
78
  element.dispatchEvent(event);
85
-
86
79
  } else if (element instanceof HTMLCollection || element instanceof NodeList) {
87
80
  for (let e of element) {
88
81
  fireCustomEvent(e, type, detail);
89
82
  }
90
83
  } else {
91
- throw new TypeError('value is not an instance of HTMLElement or HTMLCollection')
84
+ throw new TypeError("value is not an instance of HTMLElement or HTMLCollection");
92
85
  }
93
-
94
86
  }
95
87
 
96
88
  /**
97
89
  * This function gets the path `Event.composedPath()` from an event and tries to find the next element
98
90
  * up the tree `element.closest()` with the attribute and value. If no value, or a value that is undefined or null,
99
91
  * is specified, only the attribute is searched.
100
- *
92
+ *
101
93
  * @license AGPLv3
102
94
  * @since 1.14.0
103
95
  * @param {Event} event
@@ -112,8 +104,8 @@ function fireCustomEvent(element, type, detail) {
112
104
  function findTargetElementFromEvent(event, attributeName, attributeValue) {
113
105
  validateInstance(event, Event);
114
106
 
115
- if (typeof event.composedPath !== 'function') {
116
- throw new Error('unsupported event');
107
+ if (typeof event.composedPath !== "function") {
108
+ throw new Error("unsupported event");
117
109
  }
118
110
 
119
111
  const path = event.composedPath();
@@ -123,14 +115,15 @@ function findTargetElementFromEvent(event, attributeName, attributeValue) {
123
115
  for (let i = 0; i < path.length; i++) {
124
116
  const o = path[i];
125
117
 
126
- if (o instanceof HTMLElement &&
127
- o.hasAttribute(attributeName)
128
- && (attributeValue === undefined || o.getAttribute(attributeName) === attributeValue)) {
118
+ if (
119
+ o instanceof HTMLElement &&
120
+ o.hasAttribute(attributeName) &&
121
+ (attributeValue === undefined || o.getAttribute(attributeName) === attributeValue)
122
+ ) {
129
123
  return o;
130
124
  }
131
125
  }
132
126
  }
133
127
 
134
128
  return undefined;
135
-
136
129
  }
@@ -5,34 +5,32 @@
5
5
  * License text available at https://www.gnu.org/licenses/agpl-3.0.en.html
6
6
  */
7
7
 
8
- import {extend} from "../data/extend.mjs";
9
- import {BaseWithOptions} from "../types/basewithoptions.mjs";
10
- import {getGlobalObject} from "../types/global.mjs";
11
- import {isArray} from "../types/is.mjs";
12
- import {Stack} from "../types/stack.mjs";
13
- import {validateInstance, validateString} from "../types/validate.mjs";
14
- import {instanceSymbol} from '../constants.mjs';
15
- export {FocusManager}
8
+ import { extend } from "../data/extend.mjs";
9
+ import { BaseWithOptions } from "../types/basewithoptions.mjs";
10
+ import { getGlobalObject } from "../types/global.mjs";
11
+ import { isArray } from "../types/is.mjs";
12
+ import { Stack } from "../types/stack.mjs";
13
+ import { validateInstance, validateString } from "../types/validate.mjs";
14
+ import { instanceSymbol } from "../constants.mjs";
15
+ export { FocusManager };
16
16
 
17
17
  /**
18
18
  * @private
19
19
  * @type {string}
20
20
  */
21
- const KEY_DOCUMENT = 'document';
21
+ const KEY_DOCUMENT = "document";
22
22
 
23
23
  /**
24
24
  * @private
25
25
  * @type {string}
26
26
  */
27
- const KEY_CONTEXT = 'context';
28
-
27
+ const KEY_CONTEXT = "context";
29
28
 
30
29
  /**
31
30
  * @private
32
31
  * @type {Symbol}
33
32
  */
34
- const stackSymbol = Symbol('stack');
35
-
33
+ const stackSymbol = Symbol("stack");
36
34
 
37
35
  /**
38
36
  * With the focusmanager the focus can be stored in a document, recalled and moved.
@@ -44,8 +42,7 @@ const stackSymbol = Symbol('stack');
44
42
  * @throws {Error} unsupported locale
45
43
  * @summary Handle the focus
46
44
  */
47
- class FocusManager extends BaseWithOptions {
48
-
45
+ class FocusManager extends BaseWithOptions {
49
46
  /**
50
47
  *
51
48
  * @param {Object|undefined} options
@@ -66,15 +63,14 @@ const stackSymbol = Symbol('stack');
66
63
  return Symbol.for("@schukai/monster/dom/focusmanager");
67
64
  }
68
65
 
69
-
70
66
  /**
71
67
  * @property {HTMLDocument} document the document object into which the node is to be appended
72
68
  */
73
69
  get defaults() {
74
70
  return extend({}, super.defaults, {
75
- [KEY_DOCUMENT]: getGlobalObject('document'),
71
+ [KEY_DOCUMENT]: getGlobalObject("document"),
76
72
  [KEY_CONTEXT]: undefined,
77
- })
73
+ });
78
74
  }
79
75
 
80
76
  /**
@@ -84,10 +80,9 @@ const stackSymbol = Symbol('stack');
84
80
  * @return {Monster.DOM.FocusManager}
85
81
  */
86
82
  storeFocus() {
87
-
88
83
  const active = this.getActive();
89
84
  if (active instanceof Node) {
90
- this[stackSymbol].push(active)
85
+ this[stackSymbol].push(active);
91
86
  }
92
87
  return this;
93
88
  }
@@ -98,7 +93,6 @@ const stackSymbol = Symbol('stack');
98
93
  * @return {Monster.DOM.FocusManager}
99
94
  */
100
95
  restoreFocus() {
101
-
102
96
  const last = this[stackSymbol].pop();
103
97
  if (last instanceof Node) {
104
98
  this.focus(last);
@@ -115,12 +109,11 @@ const stackSymbol = Symbol('stack');
115
109
  * @return {Monster.DOM.FocusManager}
116
110
  */
117
111
  focus(element, preventScroll) {
118
-
119
- validateInstance(element, Node)
112
+ validateInstance(element, Node);
120
113
 
121
114
  element.focus({
122
- preventScroll: preventScroll ?? false
123
- })
115
+ preventScroll: preventScroll ?? false,
116
+ });
124
117
 
125
118
  return this;
126
119
  }
@@ -141,32 +134,32 @@ const stackSymbol = Symbol('stack');
141
134
  * @throws {TypeError} value is not an instance of
142
135
  */
143
136
  getFocusable(query) {
144
-
145
137
  let contextElement = this.getOption(KEY_CONTEXT);
146
138
  if (contextElement === undefined) {
147
139
  contextElement = this.getOption(KEY_DOCUMENT);
148
140
  }
149
141
 
150
- validateInstance(contextElement, Node)
142
+ validateInstance(contextElement, Node);
151
143
 
152
144
  if (query !== undefined) {
153
145
  validateString(query);
154
146
  }
155
147
 
156
- return [...contextElement.querySelectorAll(
157
- 'details, button, input, [tabindex]:not([tabindex="-1"]), select, textarea, a[href], body'
158
- )].filter((element) => {
159
-
148
+ return [
149
+ ...contextElement.querySelectorAll(
150
+ 'details, button, input, [tabindex]:not([tabindex="-1"]), select, textarea, a[href], body',
151
+ ),
152
+ ].filter((element) => {
160
153
  if (query !== undefined && !element.matches(query)) {
161
154
  return false;
162
155
  }
163
156
 
164
- if (element.hasAttribute('disabled')) return false;
165
- if (element.getAttribute("aria-hidden") === 'true') return false;
157
+ if (element.hasAttribute("disabled")) return false;
158
+ if (element.getAttribute("aria-hidden") === "true") return false;
166
159
 
167
160
  const rect = element.getBoundingClientRect();
168
- if(rect.width===0) return false;
169
- if(rect.height===0) return false;
161
+ if (rect.width === 0) return false;
162
+ if (rect.height === 0) return false;
170
163
 
171
164
  return true;
172
165
  });
@@ -177,7 +170,6 @@ const stackSymbol = Symbol('stack');
177
170
  * @return {Monster.DOM.FocusManager}
178
171
  */
179
172
  focusNext(query) {
180
-
181
173
  const current = this.getActive();
182
174
  const focusable = this.getFocusable(query);
183
175
 
@@ -194,7 +186,7 @@ const stackSymbol = Symbol('stack');
194
186
  this.focus(focusable[0]);
195
187
  }
196
188
  } else {
197
- this.focus(focusable[0])
189
+ this.focus(focusable[0]);
198
190
  }
199
191
 
200
192
  return this;
@@ -205,7 +197,6 @@ const stackSymbol = Symbol('stack');
205
197
  * @return {Monster.DOM.FocusManager}
206
198
  */
207
199
  focusPrev(query) {
208
-
209
200
  const current = this.getActive();
210
201
  const focusable = this.getFocusable(query);
211
202
 
@@ -222,18 +213,9 @@ const stackSymbol = Symbol('stack');
222
213
  this.focus(focusable[focusable.length - 1]);
223
214
  }
224
215
  } else {
225
- this.focus(focusable[focusable.length - 1])
216
+ this.focus(focusable[focusable.length - 1]);
226
217
  }
227
218
 
228
219
  return this;
229
220
  }
230
-
231
-
232
221
  }
233
-
234
-
235
-
236
-
237
-
238
-
239
-
@@ -5,17 +5,17 @@
5
5
  * License text available at https://www.gnu.org/licenses/agpl-3.0.en.html
6
6
  */
7
7
 
8
- import {parseLocale} from "../i18n/locale.mjs";
8
+ import { parseLocale } from "../i18n/locale.mjs";
9
+ import { getDocument } from "./util.mjs";
10
+ import { getGlobalObject } from "../types/global.mjs";
9
11
 
10
- import {getDocument} from "./util.mjs";
11
-
12
- export {getLocaleOfDocument}
12
+ export { getLocaleOfDocument };
13
13
 
14
14
  /**
15
15
  * @private
16
16
  * @type {string}
17
17
  */
18
- const DEFAULT_LANGUAGE = 'en';
18
+ const DEFAULT_LANGUAGE = "en";
19
19
 
20
20
  /**
21
21
  * With this function you can read the language version set by the document.
@@ -36,16 +36,47 @@ const DEFAULT_LANGUAGE = 'en';
36
36
  * @summary Tries to determine the locale used
37
37
  */
38
38
  function getLocaleOfDocument() {
39
-
40
39
  const document = getDocument();
41
40
 
42
- let html = document.querySelector('html')
43
- if (html instanceof HTMLElement && html.hasAttribute('lang')) {
44
- let locale = html.getAttribute('lang');
41
+ let html = document.querySelector("html");
42
+ if (html instanceof HTMLElement && html.hasAttribute("lang")) {
43
+ let locale = html.getAttribute("lang");
45
44
  if (locale) {
46
- return new parseLocale(locale)
45
+ return new parseLocale(locale);
47
46
  }
48
47
  }
49
48
 
49
+ let navigatorLanguage = getNavigatorLanguage();
50
+ if (navigatorLanguage) {
51
+ return parseLocale(navigatorLanguage);
52
+ }
53
+
50
54
  return parseLocale(DEFAULT_LANGUAGE);
51
55
  }
56
+
57
+ /**
58
+ * @private
59
+ * @returns {string|undefined|*}
60
+ * @see https://developer.mozilla.org/en-US/docs/Web/API/Navigator/language
61
+ * @see https://developer.mozilla.org/en-US/docs/Web/API/Navigator/languages
62
+ */
63
+ const getNavigatorLanguage = () => {
64
+ const navigator = getGlobalObject("navigator");
65
+ if (navigator === undefined) {
66
+ return undefined;
67
+ }
68
+
69
+ if (navigator.hasOwnProperty("language")) {
70
+ const language = navigator.language;
71
+ if (typeof language === "string" && language.length > 0) {
72
+ return language;
73
+ }
74
+ }
75
+
76
+ const languages = navigator?.languages;
77
+ if (Array.isArray(languages) && languages.length > 0) {
78
+ return languages[0];
79
+ }
80
+
81
+ return undefined;
82
+ };
@@ -10,4 +10,4 @@
10
10
  * @memberOf Monster
11
11
  * @author schukai GmbH
12
12
  */
13
- const ns = {};
13
+ const ns = {};
@@ -5,9 +5,9 @@
5
5
  * License text available at https://www.gnu.org/licenses/agpl-3.0.en.html
6
6
  */
7
7
 
8
- import {getDocument, getWindow} from "./util.mjs";
8
+ import { getDocument, getWindow } from "./util.mjs";
9
9
 
10
- export {domReady, windowReady}
10
+ export { domReady, windowReady };
11
11
 
12
12
  /**
13
13
  * This variable is a promise that is fulfilled as soon as the dom is available.
@@ -28,18 +28,16 @@ export {domReady, windowReady}
28
28
  * @see https://developer.mozilla.org/en-US/docs/Web/API/Document/DOMContentLoaded_event
29
29
  * @see https://developer.mozilla.org/en-US/docs/Web/API/Document/readyState
30
30
  */
31
- const domReady = new Promise(resolve => {
32
-
31
+ const domReady = new Promise((resolve) => {
33
32
  const document = getDocument();
34
33
 
35
34
  if (document.readyState === "loading") {
36
- document.addEventListener('DOMContentLoaded', resolve);
35
+ document.addEventListener("DOMContentLoaded", resolve);
37
36
  } else {
38
37
  resolve();
39
38
  }
40
39
  });
41
40
 
42
-
43
41
  /**
44
42
  * This variable is a promise that is fulfilled as soon as the windows is available.
45
43
  *
@@ -55,14 +53,13 @@ const domReady = new Promise(resolve => {
55
53
  * @see https://developer.mozilla.org/en-US/docs/Web/API/Window/load_event
56
54
  * @see https://developer.mozilla.org/en-US/docs/Web/API/Document/readyState
57
55
  */
58
- const windowReady = new Promise(resolve => {
59
-
56
+ const windowReady = new Promise((resolve) => {
60
57
  const document = getDocument();
61
58
  const window = getWindow();
62
59
 
63
- if (document.readyState === 'complete') {
60
+ if (document.readyState === "complete") {
64
61
  resolve();
65
62
  } else {
66
- window.addEventListener('load', resolve);
63
+ window.addEventListener("load", resolve);
67
64
  }
68
65
  });
@@ -5,9 +5,9 @@
5
5
  * License text available at https://www.gnu.org/licenses/agpl-3.0.en.html
6
6
  */
7
7
 
8
- import {internalStateSymbol} from "../../constants.mjs";
9
- import {extend} from "../../data/extend.mjs";
10
- import {getGlobalFunction} from "../../types/global.mjs";
8
+ import { internalStateSymbol } from "../../constants.mjs";
9
+ import { extend } from "../../data/extend.mjs";
10
+ import { getGlobalFunction } from "../../types/global.mjs";
11
11
  import {
12
12
  ATTRIBUTE_CLASS,
13
13
  ATTRIBUTE_ERRORMESSAGE,
@@ -15,11 +15,11 @@ import {
15
15
  ATTRIBUTE_SRC,
16
16
  ATTRIBUTE_TITLE,
17
17
  ATTRIBUTE_TYPE,
18
- TAG_SCRIPT
18
+ TAG_SCRIPT,
19
19
  } from "../constants.mjs";
20
- import {KEY_DOCUMENT, KEY_QUERY, referenceSymbol, Resource} from "../resource.mjs";
21
- import {instanceSymbol} from '../../constants.mjs';
22
- export {Data}
20
+ import { KEY_DOCUMENT, KEY_QUERY, referenceSymbol, Resource } from "../resource.mjs";
21
+ import { instanceSymbol } from "../../constants.mjs";
22
+ export { Data };
23
23
 
24
24
  /**
25
25
  * This class is used by the resource manager to embed data.
@@ -31,7 +31,6 @@ export {Data}
31
31
  * @summary A Data Resource class
32
32
  */
33
33
  class Data extends Resource {
34
-
35
34
  /**
36
35
  * @property {string} mode=cors https://developer.mozilla.org/en-US/docs/Web/API/fetch
37
36
  * @property {string} credentials=same-origin https://developer.mozilla.org/en-US/docs/Web/API/fetch
@@ -39,10 +38,10 @@ class Data extends Resource {
39
38
  */
40
39
  get defaults() {
41
40
  return extend({}, super.defaults, {
42
- mode: 'cors',
43
- credentials: 'same-origin',
44
- type: 'application/json',
45
- })
41
+ mode: "cors",
42
+ credentials: "same-origin",
43
+ type: "application/json",
44
+ });
46
45
  }
47
46
 
48
47
  /**
@@ -61,7 +60,6 @@ class Data extends Resource {
61
60
  * @return {Monster.DOM.Resource}
62
61
  */
63
62
  connect() {
64
-
65
63
  if (!(this[referenceSymbol] instanceof HTMLElement)) {
66
64
  this.create();
67
65
  }
@@ -79,14 +77,12 @@ class Data extends Resource {
79
77
  return Symbol.for("@schukai/monster/dom/resource/data");
80
78
  }
81
79
 
82
-
83
80
  /**
84
81
  * @return {string}
85
82
  */
86
83
  static getURLAttribute() {
87
- return ATTRIBUTE_SRC
84
+ return ATTRIBUTE_SRC;
88
85
  }
89
-
90
86
  }
91
87
 
92
88
  /**
@@ -108,7 +104,6 @@ function createElement() {
108
104
  return self;
109
105
  }
110
106
 
111
-
112
107
  /**
113
108
  * @private
114
109
  * @return {Promise}
@@ -117,44 +112,41 @@ function createElement() {
117
112
  function appendToDocument() {
118
113
  const self = this;
119
114
 
120
- const targetNode = document.querySelector(self.getOption(KEY_QUERY, 'head'))
115
+ const targetNode = document.querySelector(self.getOption(KEY_QUERY, "head"));
121
116
  if (!(targetNode instanceof HTMLElement)) {
122
- throw new Error('target not found')
117
+ throw new Error("target not found");
123
118
  }
124
119
 
125
120
  targetNode.appendChild(self[referenceSymbol]);
126
121
 
127
- getGlobalFunction('fetch')(self.getOption(ATTRIBUTE_SRC), {
128
- method: 'GET', // *GET, POST, PUT, DELETE, etc.
129
- mode: self.getOption('mode', 'cors'), // no-cors, *cors, same-origin
130
- cache: 'no-cache', // *default, no-cache, reload, force-cache, only-if-cached
131
- credentials: self.getOption('credentials', 'same-origin'), // include, *same-origin, omit
122
+ getGlobalFunction("fetch")(self.getOption(ATTRIBUTE_SRC), {
123
+ method: "GET", // *GET, POST, PUT, DELETE, etc.
124
+ mode: self.getOption("mode", "cors"), // no-cors, *cors, same-origin
125
+ cache: "no-cache", // *default, no-cache, reload, force-cache, only-if-cached
126
+ credentials: self.getOption("credentials", "same-origin"), // include, *same-origin, omit
132
127
  headers: {
133
- 'Accept': self.getOption('type', 'application/json')
128
+ Accept: self.getOption("type", "application/json"),
134
129
  },
135
- redirect: 'follow', // manual, *follow, error
136
- referrerPolicy: 'no-referrer', // no-referrer,
137
- }).then(response => {
138
-
139
- return response.text()
140
-
141
-
142
- }).then(text => {
143
-
144
- const textNode = document.createTextNode(text);
145
- self[referenceSymbol].appendChild(textNode);
146
-
147
- self[internalStateSymbol].getSubject()['loaded'] = true;
148
-
149
-
150
- }).catch(e => {
151
- self[internalStateSymbol].setSubject({
152
- loaded: true,
153
- error: e.toString(),
130
+ redirect: "follow", // manual, *follow, error
131
+ referrerPolicy: "no-referrer", // no-referrer,
132
+ })
133
+ .then((response) => {
134
+ return response.text();
154
135
  })
136
+ .then((text) => {
137
+ const textNode = document.createTextNode(text);
138
+ self[referenceSymbol].appendChild(textNode);
155
139
 
156
- targetNode.setAttribute(ATTRIBUTE_ERRORMESSAGE, e.toString());
157
- })
140
+ self[internalStateSymbol].getSubject()["loaded"] = true;
141
+ })
142
+ .catch((e) => {
143
+ self[internalStateSymbol].setSubject({
144
+ loaded: true,
145
+ error: e.toString(),
146
+ });
147
+
148
+ targetNode.setAttribute(ATTRIBUTE_ERRORMESSAGE, e.toString());
149
+ });
158
150
 
159
151
  return self;
160
152
  }
@@ -3,8 +3,6 @@
3
3
  * SPDX-License-Identifier: AGPL-3.0
4
4
  */
5
5
 
6
-
7
-
8
6
  /**
9
7
  * In this namespace you will find classes and methods for links
10
8
  *
@@ -12,4 +10,4 @@
12
10
  * @memberOf Monster
13
11
  * @author schukai GmbH
14
12
  */
15
- const ns = {};
13
+ const ns = {};
@@ -5,10 +5,10 @@
5
5
  * License text available at https://www.gnu.org/licenses/agpl-3.0.en.html
6
6
  */
7
7
 
8
- import {extend} from "../../../data/extend.mjs";
9
- import {Link} from "../link.mjs";
10
- import {instanceSymbol} from '../../../constants.mjs';
11
- export {Stylesheet}
8
+ import { extend } from "../../../data/extend.mjs";
9
+ import { Link } from "../link.mjs";
10
+ import { instanceSymbol } from "../../../constants.mjs";
11
+ export { Stylesheet };
12
12
 
13
13
  /**
14
14
  * This class is used by the resource manager to embed external resources.
@@ -21,14 +21,13 @@ export {Stylesheet}
21
21
  * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/link
22
22
  */
23
23
  class Stylesheet extends Link {
24
-
25
24
  /**
26
25
  * @property {string} rel {@link https://developer.mozilla.org/en-US/docs/Web/HTML/Element/link#attr-rel}
27
26
  */
28
27
  get defaults() {
29
28
  return extend({}, super.defaults, {
30
- rel: 'stylesheet'
31
- })
29
+ rel: "stylesheet",
30
+ });
32
31
  }
33
32
 
34
33
  /**
@@ -37,9 +36,6 @@ class Stylesheet extends Link {
37
36
  * @since 2.1.0
38
37
  */
39
38
  static get [instanceSymbol]() {
40
- return Symbol.for("@schukai/monster/dom/resource/link/stylesheet")
39
+ return Symbol.for("@schukai/monster/dom/resource/link/stylesheet");
41
40
  }
42
-
43
-
44
41
  }
45
-