@schukai/monster 1.25.0 → 1.28.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/CHANGELOG +43 -0
- package/README.md +4 -4
- package/dist/modules/constants.js +1 -1
- package/dist/modules/constraints/abstract.js +1 -1
- package/dist/modules/constraints/abstractoperator.js +1 -1
- package/dist/modules/constraints/andoperator.js +1 -1
- package/dist/modules/constraints/invalid.js +1 -1
- package/dist/modules/constraints/isarray.js +1 -1
- package/dist/modules/constraints/isobject.js +1 -1
- package/dist/modules/constraints/namespace.js +1 -1
- package/dist/modules/constraints/oroperator.js +1 -1
- package/dist/modules/constraints/valid.js +1 -1
- package/dist/modules/data/buildmap.js +2 -2
- package/dist/modules/data/buildtree.js +2 -0
- package/dist/modules/data/datasource/namespace.js +1 -1
- package/dist/modules/data/datasource/restapi/writeerror.js +1 -1
- package/dist/modules/data/datasource/restapi.js +1 -1
- package/dist/modules/data/datasource/storage/localstorage.js +1 -1
- package/dist/modules/data/datasource/storage/namespace.js +1 -1
- package/dist/modules/data/datasource/storage/sessionstorage.js +1 -1
- package/dist/modules/data/datasource/storage.js +1 -1
- package/dist/modules/data/datasource.js +1 -1
- package/dist/modules/data/diff.js +1 -1
- package/dist/modules/data/extend.js +1 -1
- package/dist/modules/data/namespace.js +1 -1
- package/dist/modules/data/pathfinder.js +1 -1
- package/dist/modules/data/pipe.js +1 -1
- package/dist/modules/data/transformer.js +1 -1
- package/dist/modules/dom/assembler.js +1 -1
- package/dist/modules/dom/attributes.js +2 -2
- package/dist/modules/dom/constants.js +2 -2
- package/dist/modules/dom/customcontrol.js +1 -1
- package/dist/modules/dom/customelement.js +1 -1
- package/dist/modules/dom/events.js +1 -1
- package/dist/modules/dom/focusmanager.js +1 -1
- package/dist/modules/dom/locale.js +1 -1
- package/dist/modules/dom/namespace.js +1 -1
- package/dist/modules/dom/resource/data.js +1 -1
- package/dist/modules/dom/resource/link/stylesheet.js +1 -1
- package/dist/modules/dom/resource/link.js +1 -1
- package/dist/modules/dom/resource/script.js +1 -1
- package/dist/modules/dom/resource.js +1 -1
- package/dist/modules/dom/resourcemanager.js +1 -1
- package/dist/modules/dom/template.js +2 -2
- package/dist/modules/dom/theme.js +1 -1
- package/dist/modules/dom/updater.js +2 -2
- package/dist/modules/dom/util.js +1 -1
- package/dist/modules/dom/worker/factory.js +1 -1
- package/dist/modules/i18n/formatter.js +2 -0
- package/dist/modules/i18n/locale.js +1 -1
- package/dist/modules/i18n/namespace.js +1 -1
- package/dist/modules/i18n/provider.js +1 -1
- package/dist/modules/i18n/providers/fetch.js +1 -1
- package/dist/modules/i18n/providers/namespace.js +1 -1
- package/dist/modules/i18n/translations.js +1 -1
- package/dist/modules/logging/handler/console.js +1 -1
- package/dist/modules/logging/handler/namespace.js +1 -1
- package/dist/modules/logging/handler.js +1 -1
- package/dist/modules/logging/logentry.js +1 -1
- package/dist/modules/logging/logger.js +1 -1
- package/dist/modules/logging/namespace.js +1 -1
- package/dist/modules/math/namespace.js +1 -1
- package/dist/modules/math/random.js +1 -1
- package/dist/modules/monster.js +1 -1
- package/dist/modules/namespace.js +1 -1
- package/dist/modules/text/formatter.js +2 -2
- package/dist/modules/text/namespace.js +1 -1
- package/dist/modules/types/base.js +1 -1
- package/dist/modules/types/basewithoptions.js +1 -1
- package/dist/modules/types/binary.js +1 -1
- package/dist/modules/types/dataurl.js +1 -1
- package/dist/modules/types/global.js +1 -1
- package/dist/modules/types/id.js +1 -1
- package/dist/modules/types/is.js +2 -2
- package/dist/modules/types/mediatype.js +1 -1
- package/dist/modules/types/namespace.js +1 -1
- package/dist/modules/types/node.js +2 -0
- package/dist/modules/types/nodelist.js +2 -0
- package/dist/modules/types/noderecursiveiterator.js +2 -0
- package/dist/modules/types/observer.js +1 -1
- package/dist/modules/types/observerlist.js +1 -1
- package/dist/modules/types/proxyobserver.js +1 -1
- package/dist/modules/types/queue.js +1 -1
- package/dist/modules/types/randomid.js +1 -1
- package/dist/modules/types/regex.js +2 -0
- package/dist/modules/types/stack.js +1 -1
- package/dist/modules/types/tokenlist.js +1 -1
- package/dist/modules/types/typeof.js +1 -1
- package/dist/modules/types/uniquequeue.js +1 -1
- package/dist/modules/types/uuid.js +1 -1
- package/dist/modules/types/validate.js +1 -1
- package/dist/modules/types/version.js +2 -2
- package/dist/modules/util/clone.js +1 -1
- package/dist/modules/util/comparator.js +1 -1
- package/dist/modules/util/freeze.js +1 -1
- package/dist/modules/util/namespace.js +1 -1
- package/dist/modules/util/processing.js +1 -1
- package/dist/modules/util/trimspaces.js +1 -1
- package/dist/monster.dev.js +1181 -708
- package/dist/monster.dev.js.map +1 -1
- package/dist/monster.js +2 -2
- package/package.json +13 -2
- package/source/constraints/abstract.js +5 -0
- package/source/constraints/abstractoperator.js +5 -0
- package/source/constraints/andoperator.js +10 -5
- package/source/constraints/invalid.js +8 -3
- package/source/constraints/isarray.js +9 -4
- package/source/constraints/isobject.js +8 -3
- package/source/constraints/oroperator.js +10 -5
- package/source/constraints/valid.js +8 -3
- package/source/data/buildmap.js +27 -13
- package/source/data/buildtree.js +129 -0
- package/source/data/datasource/restapi.js +3 -3
- package/source/data/datasource/storage/localstorage.js +2 -2
- package/source/data/datasource/storage/sessionstorage.js +2 -2
- package/source/data/datasource/storage.js +3 -3
- package/source/data/datasource.js +3 -3
- package/source/data/diff.js +3 -3
- package/source/data/extend.js +2 -2
- package/source/data/pathfinder.js +4 -4
- package/source/data/pipe.js +3 -3
- package/source/data/transformer.js +3 -3
- package/source/dom/assembler.js +2 -2
- package/source/dom/attributes.js +111 -28
- package/source/dom/constants.js +17 -1
- package/source/dom/customcontrol.js +1 -1
- package/source/dom/customelement.js +1 -1
- package/source/dom/events.js +6 -7
- package/source/dom/focusmanager.js +6 -7
- package/source/dom/locale.js +8 -4
- package/source/dom/resource/data.js +2 -2
- package/source/dom/resource/link/stylesheet.js +2 -2
- package/source/dom/resource/link.js +2 -2
- package/source/dom/resource/script.js +2 -2
- package/source/dom/resource.js +2 -2
- package/source/dom/resourcemanager.js +2 -2
- package/source/dom/template.js +55 -15
- package/source/dom/theme.js +3 -3
- package/source/dom/updater.js +158 -98
- package/source/dom/util.js +6 -6
- package/source/dom/worker/factory.js +2 -2
- package/source/i18n/formatter.js +140 -0
- package/source/i18n/locale.js +6 -4
- package/source/i18n/provider.js +2 -2
- package/source/i18n/providers/fetch.js +18 -3
- package/source/i18n/translations.js +18 -9
- package/source/logging/handler/console.js +2 -2
- package/source/logging/handler.js +2 -2
- package/source/logging/logentry.js +2 -2
- package/source/logging/logger.js +2 -2
- package/source/math/random.js +2 -2
- package/source/namespace.js +1 -1
- package/source/text/formatter.js +190 -48
- package/source/types/base.js +2 -2
- package/source/types/basewithoptions.js +2 -2
- package/source/types/binary.js +4 -4
- package/source/types/dataurl.js +4 -4
- package/source/types/global.js +4 -4
- package/source/types/id.js +6 -3
- package/source/types/is.js +100 -82
- package/source/types/mediatype.js +4 -4
- package/source/types/node.js +210 -0
- package/source/types/nodelist.js +129 -0
- package/source/types/noderecursiveiterator.js +148 -0
- package/source/types/observer.js +3 -3
- package/source/types/observerlist.js +2 -2
- package/source/types/proxyobserver.js +5 -5
- package/source/types/queue.js +4 -4
- package/source/types/randomid.js +2 -2
- package/source/types/regex.js +49 -0
- package/source/types/stack.js +2 -2
- package/source/types/tokenlist.js +2 -2
- package/source/types/typeof.js +3 -3
- package/source/types/uniquequeue.js +2 -2
- package/source/types/uuid.js +2 -2
- package/source/types/validate.js +20 -20
- package/source/types/version.js +6 -6
- package/source/util/clone.js +2 -2
- package/source/util/comparator.js +3 -3
- package/source/util/freeze.js +2 -2
- package/source/util/processing.js +3 -3
- package/source/util/trimspaces.js +2 -2
- package/test/cases/data/buildtree.js +212 -0
- package/test/cases/dom/attributes.js +46 -19
- package/test/cases/dom/resource/link/stylesheet.js +1 -1
- package/test/cases/dom/template.js +72 -14
- package/test/cases/dom/updater.js +102 -75
- package/test/cases/i18n/formatter.js +66 -0
- package/test/cases/monster.js +1 -1
- package/test/cases/text/formatter.js +36 -5
- package/test/cases/types/node.js +252 -0
- package/test/cases/types/nodelist.js +71 -0
- package/test/cases/types/noderecursiveiterator.js +75 -0
- package/test/cases/types/regex.js +32 -0
- package/test/util/jsdom.js +0 -1
- package/test/web/import.js +6 -0
- package/test/web/monster-dev.html +3 -3
- package/test/web/monster.html +2 -2
- package/test/web/test.html +3 -3
- package/test/web/tests.js +3 -3
package/source/dom/locale.js
CHANGED
|
@@ -17,13 +17,17 @@ const DEFAULT_LANGUAGE = 'en';
|
|
|
17
17
|
/**
|
|
18
18
|
* With this function you can read the language version set by the document.
|
|
19
19
|
* For this the attribute `lang` in the html tag is read. If no attribute is set, `en` is used as default.
|
|
20
|
+
*
|
|
21
|
+
* ```html
|
|
22
|
+
* <html lang="en">
|
|
23
|
+
* ```
|
|
20
24
|
*
|
|
21
25
|
* You can call the function via the monster namespace `new Monster.DOM.getLocaleOfDocument()`.
|
|
22
26
|
*
|
|
23
27
|
* ```
|
|
24
28
|
* <script type="module">
|
|
25
|
-
* import {
|
|
26
|
-
*
|
|
29
|
+
* import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/monster.js';
|
|
30
|
+
* new Monster.DOM.getLocaleOfDocument()
|
|
27
31
|
* </script>
|
|
28
32
|
* ```
|
|
29
33
|
*
|
|
@@ -31,8 +35,8 @@ const DEFAULT_LANGUAGE = 'en';
|
|
|
31
35
|
*
|
|
32
36
|
* ```
|
|
33
37
|
* <script type="module">
|
|
34
|
-
* import {getLocaleOfDocument} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.
|
|
35
|
-
*
|
|
38
|
+
* import {getLocaleOfDocument} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/modules/dom/locale.js';
|
|
39
|
+
* new getLocaleOfDocument()
|
|
36
40
|
* </script>
|
|
37
41
|
* ```
|
|
38
42
|
*
|
|
@@ -27,7 +27,7 @@ import {KEY_DOCUMENT, KEY_QUERY, referenceSymbol, Resource} from "../resource.js
|
|
|
27
27
|
*
|
|
28
28
|
* ```
|
|
29
29
|
* <script type="module">
|
|
30
|
-
* import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.
|
|
30
|
+
* import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/monster.js';
|
|
31
31
|
* new Monster.DOM.Resource.Data()
|
|
32
32
|
* </script>
|
|
33
33
|
* ```
|
|
@@ -36,7 +36,7 @@ import {KEY_DOCUMENT, KEY_QUERY, referenceSymbol, Resource} from "../resource.js
|
|
|
36
36
|
*
|
|
37
37
|
* ```
|
|
38
38
|
* <script type="module">
|
|
39
|
-
* import {Data} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.
|
|
39
|
+
* import {Data} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/modules/dom/resource/data.js';
|
|
40
40
|
* new Data()
|
|
41
41
|
* </script>
|
|
42
42
|
* ```
|
|
@@ -16,7 +16,7 @@ import {Link} from "../link.js";
|
|
|
16
16
|
*
|
|
17
17
|
* ```
|
|
18
18
|
* <script type="module">
|
|
19
|
-
* import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.
|
|
19
|
+
* import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/monster.js';
|
|
20
20
|
* new Monster.DOM.Resource.Link.Stylesheet()
|
|
21
21
|
* </script>
|
|
22
22
|
* ```
|
|
@@ -25,7 +25,7 @@ import {Link} from "../link.js";
|
|
|
25
25
|
*
|
|
26
26
|
* ```
|
|
27
27
|
* <script type="module">
|
|
28
|
-
* import {Style} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.
|
|
28
|
+
* import {Style} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/modules/dom/resource/link/stylesheet.js';
|
|
29
29
|
* new Stylesheet()
|
|
30
30
|
* </script>
|
|
31
31
|
* ```
|
|
@@ -24,7 +24,7 @@ import {KEY_DOCUMENT, referenceSymbol, Resource} from "../resource.js";
|
|
|
24
24
|
*
|
|
25
25
|
* ```
|
|
26
26
|
* <script type="module">
|
|
27
|
-
* import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.
|
|
27
|
+
* import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/monster.js';
|
|
28
28
|
* new Monster.DOM.Resource.Link()
|
|
29
29
|
* </script>
|
|
30
30
|
* ```
|
|
@@ -33,7 +33,7 @@ import {KEY_DOCUMENT, referenceSymbol, Resource} from "../resource.js";
|
|
|
33
33
|
*
|
|
34
34
|
* ```
|
|
35
35
|
* <script type="module">
|
|
36
|
-
* import {Link} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.
|
|
36
|
+
* import {Link} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/modules/dom/resource/link.js';
|
|
37
37
|
* new Link()
|
|
38
38
|
* </script>
|
|
39
39
|
* ```
|
|
@@ -25,7 +25,7 @@ import {KEY_DOCUMENT, referenceSymbol, Resource} from "../resource.js";
|
|
|
25
25
|
*
|
|
26
26
|
* ```
|
|
27
27
|
* <script type="module">
|
|
28
|
-
* import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.
|
|
28
|
+
* import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/monster.js';
|
|
29
29
|
* new Monster.DOM.Resource.Script()
|
|
30
30
|
* </script>
|
|
31
31
|
* ```
|
|
@@ -34,7 +34,7 @@ import {KEY_DOCUMENT, referenceSymbol, Resource} from "../resource.js";
|
|
|
34
34
|
*
|
|
35
35
|
* ```
|
|
36
36
|
* <script type="module">
|
|
37
|
-
* import {Script} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.
|
|
37
|
+
* import {Script} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/modules/dom/resource/script.js';
|
|
38
38
|
* new Script()
|
|
39
39
|
* </script>
|
|
40
40
|
* ```
|
package/source/dom/resource.js
CHANGED
|
@@ -47,7 +47,7 @@ export const referenceSymbol = Symbol('reference');
|
|
|
47
47
|
*
|
|
48
48
|
* ```
|
|
49
49
|
* <script type="module">
|
|
50
|
-
* import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.
|
|
50
|
+
* import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/monster.js';
|
|
51
51
|
* new Monster.DOM.Resource()
|
|
52
52
|
* </script>
|
|
53
53
|
* ```
|
|
@@ -56,7 +56,7 @@ export const referenceSymbol = Symbol('reference');
|
|
|
56
56
|
*
|
|
57
57
|
* ```
|
|
58
58
|
* <script type="module">
|
|
59
|
-
* import {Resource} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.
|
|
59
|
+
* import {Resource} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/modules/dom/resource.js';
|
|
60
60
|
* new Resource()
|
|
61
61
|
* </script>
|
|
62
62
|
* ```
|
|
@@ -21,7 +21,7 @@ import {Script} from "./resource/script.js";
|
|
|
21
21
|
*
|
|
22
22
|
* ```
|
|
23
23
|
* <script type="module">
|
|
24
|
-
* import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.
|
|
24
|
+
* import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/monster.js';
|
|
25
25
|
* new Monster.DOM.ResourceManager()
|
|
26
26
|
* </script>
|
|
27
27
|
* ```
|
|
@@ -30,7 +30,7 @@ import {Script} from "./resource/script.js";
|
|
|
30
30
|
*
|
|
31
31
|
* ```
|
|
32
32
|
* <script type="module">
|
|
33
|
-
* import {Resource} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.
|
|
33
|
+
* import {Resource} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/modules/dom/resourcemanager.js';
|
|
34
34
|
* new ResourceManager()
|
|
35
35
|
* </script>
|
|
36
36
|
* ```
|
package/source/dom/template.js
CHANGED
|
@@ -7,6 +7,7 @@ import {assignToNamespace, Monster} from '../namespace.js';
|
|
|
7
7
|
import {Base} from '../types/base.js';
|
|
8
8
|
import {getGlobalFunction, getGlobalObject} from '../types/global.js';
|
|
9
9
|
import {validateInstance, validateString} from "../types/validate.js";
|
|
10
|
+
import {ATTRIBUTE_TEMPLATE_PREFIX} from "./constants.js";
|
|
10
11
|
import {getDocumentTheme} from "./theme.js";
|
|
11
12
|
|
|
12
13
|
/**
|
|
@@ -14,7 +15,7 @@ import {getDocumentTheme} from "./theme.js";
|
|
|
14
15
|
*
|
|
15
16
|
* ```
|
|
16
17
|
* <script type="module">
|
|
17
|
-
* import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.
|
|
18
|
+
* import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/monster.js';
|
|
18
19
|
* new Monster.DOM.Template()
|
|
19
20
|
* </script>
|
|
20
21
|
* ```
|
|
@@ -23,7 +24,7 @@ import {getDocumentTheme} from "./theme.js";
|
|
|
23
24
|
*
|
|
24
25
|
* ```
|
|
25
26
|
* <script type="module">
|
|
26
|
-
* import {Template} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.
|
|
27
|
+
* import {Template} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/modules/dom/template.js';
|
|
27
28
|
* new Template()
|
|
28
29
|
* </script>
|
|
29
30
|
* ```
|
|
@@ -78,14 +79,14 @@ class Template extends Base {
|
|
|
78
79
|
*
|
|
79
80
|
* If no theme was specified, the default theme is `monster`.
|
|
80
81
|
*
|
|
81
|
-
* Now it is looked if there is a template with the given ID and theme `id-theme` and if yes it is returned.
|
|
82
|
+
* Now it is looked if there is a template with the given ID and theme `id-theme` and if yes it is returned.
|
|
82
83
|
* If there is no template a search for a template with the given ID `id` is done. If this is also not found, an error is thrown.
|
|
83
|
-
*
|
|
84
|
+
*
|
|
84
85
|
* You can call the method via the monster namespace `Monster.DOM.findDocumentTemplate()`.
|
|
85
86
|
*
|
|
86
87
|
* ```
|
|
87
88
|
* <script type="module">
|
|
88
|
-
* import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.
|
|
89
|
+
* import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/monster.js';
|
|
89
90
|
* Monster.DOM.findDocumentTemplate()
|
|
90
91
|
* </script>
|
|
91
92
|
* ```
|
|
@@ -94,14 +95,14 @@ class Template extends Base {
|
|
|
94
95
|
*
|
|
95
96
|
* ```
|
|
96
97
|
* <script type="module">
|
|
97
|
-
* import {findTemplate} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.
|
|
98
|
+
* import {findTemplate} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/modules/dom/template.js';
|
|
98
99
|
* findDocumentTemplate()
|
|
99
100
|
* </script>
|
|
100
101
|
* ```
|
|
101
102
|
*
|
|
102
103
|
* @example
|
|
103
104
|
*
|
|
104
|
-
* import { findDocumentTemplate } from "https://cdn.jsdelivr.net/npm/@schukai/monster@1.
|
|
105
|
+
* import { findDocumentTemplate } from "https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/modules/dom/template.js";
|
|
105
106
|
*
|
|
106
107
|
* const template = document.createElement("template");
|
|
107
108
|
* template.id = "myTemplate";
|
|
@@ -122,8 +123,8 @@ class Template extends Base {
|
|
|
122
123
|
* document
|
|
123
124
|
* .querySelector("html")
|
|
124
125
|
* .setAttribute("data-monster-theme-name", "myTheme");
|
|
125
|
-
*
|
|
126
|
-
* // now we don't get the default template,
|
|
126
|
+
*
|
|
127
|
+
* // now we don't get the default template,
|
|
127
128
|
* // but the template with the theme in the id
|
|
128
129
|
* const template2 = findDocumentTemplate("myTemplate");
|
|
129
130
|
* console.log(template2.createDocumentFragment());
|
|
@@ -141,9 +142,22 @@ class Template extends Base {
|
|
|
141
142
|
function findDocumentTemplate(id, currentNode) {
|
|
142
143
|
validateString(id);
|
|
143
144
|
|
|
145
|
+
const document = getGlobalObject('document');
|
|
146
|
+
const HTMLTemplateElement = getGlobalFunction('HTMLTemplateElement');
|
|
147
|
+
const DocumentFragment = getGlobalFunction('DocumentFragment');
|
|
148
|
+
const Document = getGlobalFunction('Document');
|
|
149
|
+
|
|
150
|
+
|
|
151
|
+
let prefixID;
|
|
152
|
+
|
|
144
153
|
if (!(currentNode instanceof Document || currentNode instanceof DocumentFragment)) {
|
|
145
154
|
|
|
146
155
|
if (currentNode instanceof Node) {
|
|
156
|
+
|
|
157
|
+
if (currentNode.hasAttribute(ATTRIBUTE_TEMPLATE_PREFIX)) {
|
|
158
|
+
prefixID = currentNode.getAttribute(ATTRIBUTE_TEMPLATE_PREFIX)
|
|
159
|
+
}
|
|
160
|
+
|
|
147
161
|
currentNode = currentNode.getRootNode();
|
|
148
162
|
|
|
149
163
|
if (!(currentNode instanceof Document || currentNode instanceof DocumentFragment)) {
|
|
@@ -153,27 +167,53 @@ function findDocumentTemplate(id, currentNode) {
|
|
|
153
167
|
}
|
|
154
168
|
|
|
155
169
|
if (!(currentNode instanceof Document || currentNode instanceof DocumentFragment)) {
|
|
156
|
-
currentNode =
|
|
170
|
+
currentNode = document;
|
|
157
171
|
}
|
|
158
172
|
}
|
|
159
173
|
|
|
160
|
-
|
|
161
|
-
|
|
174
|
+
let template;
|
|
162
175
|
let theme = getDocumentTheme()
|
|
176
|
+
|
|
177
|
+
if (prefixID) {
|
|
178
|
+
let themedPrefixID = prefixID + '-' + id + '-' + theme.getName();
|
|
179
|
+
|
|
180
|
+
// current + themedPrefixID
|
|
181
|
+
template = currentNode.getElementById(themedPrefixID);
|
|
182
|
+
if (template instanceof HTMLTemplateElement) {
|
|
183
|
+
return new Template(template);
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
// document + themedPrefixID
|
|
187
|
+
template = document.getElementById(themedPrefixID);
|
|
188
|
+
if (template instanceof HTMLTemplateElement) {
|
|
189
|
+
return new Template(template);
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
|
|
163
193
|
let themedID = id + '-' + theme.getName();
|
|
164
194
|
|
|
165
|
-
|
|
195
|
+
// current + themedID
|
|
196
|
+
template = currentNode.getElementById(themedID);
|
|
166
197
|
if (template instanceof HTMLTemplateElement) {
|
|
167
198
|
return new Template(template);
|
|
168
199
|
}
|
|
169
200
|
|
|
201
|
+
// document + themedID
|
|
202
|
+
template = document.getElementById(themedID);
|
|
203
|
+
if (template instanceof HTMLTemplateElement) {
|
|
204
|
+
return new Template(template);
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
// current + ID
|
|
170
208
|
template = currentNode.getElementById(id);
|
|
171
209
|
if (template instanceof HTMLTemplateElement) {
|
|
172
210
|
return new Template(template);
|
|
173
211
|
}
|
|
174
212
|
|
|
175
|
-
|
|
176
|
-
|
|
213
|
+
// document + ID
|
|
214
|
+
template = document.getElementById(id);
|
|
215
|
+
if (template instanceof HTMLTemplateElement) {
|
|
216
|
+
return new Template(template);
|
|
177
217
|
}
|
|
178
218
|
|
|
179
219
|
throw new Error("template " + id + " not found.")
|
package/source/dom/theme.js
CHANGED
|
@@ -15,7 +15,7 @@ import {ATTRIBUTE_THEME_NAME, DEFAULT_THEME} from "./constants.js";
|
|
|
15
15
|
*
|
|
16
16
|
* ```
|
|
17
17
|
* <script type="module">
|
|
18
|
-
* import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.
|
|
18
|
+
* import {Monster} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/monster.js';
|
|
19
19
|
* console.log(new Monster.DOM.Theme())
|
|
20
20
|
* </script>
|
|
21
21
|
* ```
|
|
@@ -24,14 +24,14 @@ import {ATTRIBUTE_THEME_NAME, DEFAULT_THEME} from "./constants.js";
|
|
|
24
24
|
*
|
|
25
25
|
* ```
|
|
26
26
|
* <script type="module">
|
|
27
|
-
* import {Theme} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.
|
|
27
|
+
* import {Theme} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/modules/dom/theme.js';
|
|
28
28
|
* console.log(new Theme())
|
|
29
29
|
* </script>
|
|
30
30
|
* ```
|
|
31
31
|
*
|
|
32
32
|
* @example
|
|
33
33
|
*
|
|
34
|
-
* import {getDocumentTheme} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.
|
|
34
|
+
* import {getDocumentTheme} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@1.28.0/dist/modules/dom/theme.js';
|
|
35
35
|
*
|
|
36
36
|
* const theme = getDocumentTheme();
|
|
37
37
|
* console.log(theme.getName());
|