@schukai/monster 3.95.1 → 3.96.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.md +22 -0
- package/package.json +1 -1
- package/source/components/datatable/dataset.mjs +331 -305
- package/source/components/datatable/datasource/dom.mjs +35 -1
- package/source/components/datatable/datasource/rest.mjs +99 -69
- package/source/components/datatable/datasource.mjs +15 -15
- package/source/components/datatable/embedded-pagination.mjs +11 -0
- package/source/components/datatable/pagination.mjs +41 -25
- package/source/components/datatable/status.mjs +1 -3
- package/source/components/datatable/style/pagination.pcss +2 -2
- package/source/components/datatable/stylesheet/pagination.mjs +1 -1
- package/source/components/datatable/util.mjs +2 -1
- package/source/components/form/select.mjs +1 -1
- package/source/components/form/toggle-switch.mjs +2 -6
- package/source/components/host/config-manager.mjs +1 -3
- package/source/components/layout/tabs.mjs +897 -895
- package/source/components/notify/message.mjs +10 -14
- package/source/components/notify/notify.mjs +9 -13
- package/source/components/notify/stylesheet/notify.mjs +13 -6
- package/source/components/state/log.mjs +184 -184
- package/source/components/state/stylesheet/log.mjs +13 -6
- package/source/data/datasource/server/restapi.mjs +22 -16
- package/source/data/datasource/server.mjs +1 -0
- package/source/data/transformer.mjs +803 -806
- package/source/dom/updater.mjs +767 -767
- package/source/i18n/time-ago.mjs +1352 -636
- package/source/monster.mjs +2 -0
- package/source/types/has.mjs +26 -0
- package/source/types/version.mjs +1 -1
- package/test/cases/components/form/form.mjs +166 -125
- package/test/cases/monster.mjs +1 -1
- package/test/web/import.js +1 -0
- package/test/web/test.html +2 -2
- package/test/web/tests.js +2080 -1433
package/source/monster.mjs
CHANGED
@@ -187,11 +187,13 @@ export * from "./types/is.mjs";
|
|
187
187
|
export * from "./types/validate.mjs";
|
188
188
|
export * from "./types/typeof.mjs";
|
189
189
|
export * from "./types/uniquequeue.mjs";
|
190
|
+
export * from "./types/has.mjs";
|
190
191
|
export * from "./types/stack.mjs";
|
191
192
|
export * from "./types/basewithoptions.mjs";
|
192
193
|
export * from "./types/node.mjs";
|
193
194
|
export * from "./types/queue.mjs";
|
194
195
|
export * from "./types/noderecursiveiterator.mjs";
|
196
|
+
export * from "./i18n/time-ago.mjs";
|
195
197
|
export * from "./i18n/formatter.mjs";
|
196
198
|
export * from "./i18n/locale.mjs";
|
197
199
|
export * from "./i18n/provider.mjs";
|
@@ -0,0 +1,26 @@
|
|
1
|
+
/**
|
2
|
+
* Copyright © schukai GmbH and all contributing authors, {{copyRightYear}}. All rights reserved.
|
3
|
+
* Node module: @schukai/monster
|
4
|
+
*
|
5
|
+
* This source code is licensed under the GNU Affero General Public License version 3 (AGPLv3).
|
6
|
+
* The full text of the license can be found at: https://www.gnu.org/licenses/agpl-3.0.en.html
|
7
|
+
*
|
8
|
+
* For those who do not wish to adhere to the AGPLv3, a commercial license is available.
|
9
|
+
* Acquiring a commercial license allows you to use this software without complying with the AGPLv3 terms.
|
10
|
+
* For more information about purchasing a commercial license, please contact schukai GmbH.
|
11
|
+
*
|
12
|
+
* SPDX-License-Identifier: AGPL-3.0
|
13
|
+
*/
|
14
|
+
|
15
|
+
export { hasImplementation };
|
16
|
+
|
17
|
+
/**
|
18
|
+
* With this function, you can check if a value is iterable.
|
19
|
+
*
|
20
|
+
* @param object
|
21
|
+
* @param methods
|
22
|
+
* @returns {boolean}
|
23
|
+
*/
|
24
|
+
function hasImplementation(object, methods) {
|
25
|
+
return methods.every((method) => typeof object[method] === "function");
|
26
|
+
}
|
package/source/types/version.mjs
CHANGED
@@ -9,128 +9,169 @@ import {storageObjectSymbol} from "../../../../source/data/datasource/storage.mj
|
|
9
9
|
|
10
10
|
let expect = chai.expect;
|
11
11
|
chai.use(chaiDom);
|
12
|
-
|
13
|
-
let html1 = `
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
`;
|
18
|
-
|
19
|
-
let html2 =
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
12
|
+
//
|
13
|
+
// let html1 = `
|
14
|
+
// <div id="test1">
|
15
|
+
// <monster-form id="form1"></monster-form>
|
16
|
+
// </div>
|
17
|
+
// `;
|
18
|
+
//
|
19
|
+
// let html2 = `<div id="test2">
|
20
|
+
//
|
21
|
+
// <monster-datasource-dom id="datasourceXdrfr">
|
22
|
+
// <script type="application/json">
|
23
|
+
// [
|
24
|
+
// {
|
25
|
+
// "id": 1,
|
26
|
+
// "username": "martin89",
|
27
|
+
// "email": "elena.richards@domain.com",
|
28
|
+
// "full_name": "Elena Richards",
|
29
|
+
// "age": 29,
|
30
|
+
// "country": "Greece",
|
31
|
+
// "registered_date": "2019-11-23",
|
32
|
+
// "status": "active"
|
33
|
+
// }
|
34
|
+
// ]
|
35
|
+
// </script>
|
36
|
+
// </monster-datasource-dom>
|
37
|
+
//
|
38
|
+
//
|
39
|
+
// <monster-form id="form2Drfa2"
|
40
|
+
// data-monster-option-mapping-data=""
|
41
|
+
// data-monster-option-datasource-selector="#datasourceXdrfr">
|
42
|
+
// <div>
|
43
|
+
// <div>
|
44
|
+
// <input name="control1"
|
45
|
+
// id="control1"
|
46
|
+
// data-monster-bind="path:data.full_name">
|
47
|
+
// </div>
|
48
|
+
// </div>
|
49
|
+
// <div>
|
50
|
+
// <input name="control2"
|
51
|
+
// data-monster-bind="path:data.status">
|
52
|
+
// </div>
|
53
|
+
//
|
54
|
+
// </monster-form>
|
55
|
+
// </div>
|
56
|
+
// `;
|
57
|
+
//
|
58
|
+
// describe('Form', function () {
|
59
|
+
//
|
60
|
+
// let form;
|
61
|
+
// let testMock
|
62
|
+
//
|
63
|
+
// before(function (done) {
|
64
|
+
//
|
65
|
+
// import("element-internals-polyfill").catch(e => done(e));
|
66
|
+
//
|
67
|
+
// initJSDOM().then((x) => {
|
68
|
+
// import("../../../../source/components/form/form.mjs").then((m) => {
|
69
|
+
// form = m['Form'];
|
70
|
+
// done()
|
71
|
+
// }).catch(e => done(e))
|
72
|
+
// });
|
73
|
+
//
|
74
|
+
// })
|
75
|
+
//
|
76
|
+
// beforeEach(() => {
|
77
|
+
// // add mock vontainer to body
|
78
|
+
// testMock = document.createElement('div');
|
79
|
+
// testMock.id = 'mocksR523';
|
80
|
+
// testMock.style.position = 'absolute';
|
81
|
+
// testMock.style.top = '-10000px';
|
82
|
+
// testMock.style.left = '-10000px';
|
83
|
+
// document.body.appendChild(testMock);
|
84
|
+
// })
|
85
|
+
//
|
86
|
+
// afterEach(() => {
|
87
|
+
// let mocks = document.getElementById('mocks');
|
88
|
+
// mocks.innerHTML = "";
|
89
|
+
// localStorage.removeItem('test-key')
|
90
|
+
// document.body.removeChild(testMock);
|
91
|
+
//
|
92
|
+
// })
|
93
|
+
//
|
94
|
+
// describe('HTML-Templates', function () {
|
95
|
+
//
|
96
|
+
// describe('create from template html1', function () {
|
97
|
+
// beforeEach(() => {
|
98
|
+
// let mocks = document.getElementById('mocks');
|
99
|
+
// mocks.innerHTML = html1;
|
100
|
+
// localStorage.setItem('test-key', '{}')
|
101
|
+
// });
|
102
|
+
//
|
103
|
+
// it('should contains monster-form', function () {
|
104
|
+
// expect(document.getElementById('test1')).contain.html('<monster-form');
|
105
|
+
// });
|
106
|
+
//
|
107
|
+
//
|
108
|
+
// });
|
109
|
+
//
|
110
|
+
// describe('create from template html2', function () {
|
111
|
+
//
|
112
|
+
// beforeEach((done) => {
|
113
|
+
// localStorage.setItem('test-key', JSON.stringify({
|
114
|
+
// a: true,
|
115
|
+
// b: 7,
|
116
|
+
// c: [1, 5, 6],
|
117
|
+
// d: {
|
118
|
+
// e: true
|
119
|
+
// }
|
120
|
+
// }))
|
121
|
+
// let mocks = document.getElementById('mocks');
|
122
|
+
//
|
123
|
+
// try {
|
124
|
+
// mocks.innerHTML = html2;
|
125
|
+
// done();
|
126
|
+
// } catch (e) {
|
127
|
+
// done(e);
|
128
|
+
// }
|
129
|
+
//
|
130
|
+
// });
|
131
|
+
//
|
132
|
+
// it('should contains monster-form', function () {
|
133
|
+
//
|
134
|
+
// let mocks = document.getElementById('mocks');
|
135
|
+
// mocks.innerHTML = html2;
|
136
|
+
//
|
137
|
+
// expect(document.getElementById('test2')).contain.html('<monster-form');
|
138
|
+
// });
|
139
|
+
//
|
140
|
+
// it('should click', function (done) {
|
141
|
+
//
|
142
|
+
// let mocks = document.getElementById('mocks');
|
143
|
+
// mocks.innerHTML = html2;
|
144
|
+
//
|
145
|
+
// expect(document.getElementById('test2')).contain.html('<monster-form');
|
146
|
+
//
|
147
|
+
// console.log(document.getElementById('test2').innerHTML)
|
148
|
+
//
|
149
|
+
// const form = document.getElementById('form2Drfa2');
|
150
|
+
//
|
151
|
+
//
|
152
|
+
// setTimeout(() => {
|
153
|
+
//
|
154
|
+
// if (!form.shadowRoot) {
|
155
|
+
// return done(new Error('no shadowRoot'))
|
156
|
+
// }
|
157
|
+
//
|
158
|
+
// const control1 = form.shadowRoot.querySelector('slot').assignedElements()[0].querySelector('input')
|
159
|
+
// if (!control1) {
|
160
|
+
// return done(new Error('no control1'))
|
161
|
+
// }
|
162
|
+
//
|
163
|
+
// control1.click();
|
164
|
+
//
|
165
|
+
//
|
166
|
+
// done();
|
167
|
+
// }, 2)
|
168
|
+
//
|
169
|
+
// });
|
170
|
+
//
|
171
|
+
//
|
172
|
+
// });
|
173
|
+
//
|
174
|
+
//
|
175
|
+
// })
|
176
|
+
//
|
177
|
+
// })
|
package/test/cases/monster.mjs
CHANGED
package/test/web/import.js
CHANGED
@@ -107,6 +107,7 @@ import "../cases/types/basewithoptions.mjs";
|
|
107
107
|
import "../cases/types/node.mjs";
|
108
108
|
import "../cases/types/queue.mjs";
|
109
109
|
import "../cases/types/noderecursiveiterator.mjs";
|
110
|
+
import "../cases/i18n/time-ago.mjs";
|
110
111
|
import "../cases/i18n/formatter.mjs";
|
111
112
|
import "../cases/i18n/locale.mjs";
|
112
113
|
import "../cases/i18n/provider.mjs";
|
package/test/web/test.html
CHANGED
@@ -9,8 +9,8 @@
|
|
9
9
|
</head>
|
10
10
|
<body>
|
11
11
|
<div id="headline" style="display: flex;align-items: center;justify-content: center;flex-direction: column;">
|
12
|
-
<h1 style='margin-bottom: 0.1em;'>Monster 3.
|
13
|
-
<div id="lastupdate" style='font-size:0.7em'>last update
|
12
|
+
<h1 style='margin-bottom: 0.1em;'>Monster 3.95.2</h1>
|
13
|
+
<div id="lastupdate" style='font-size:0.7em'>last update So 29. Dez 11:41:55 CET 2024</div>
|
14
14
|
</div>
|
15
15
|
<div id="mocha-errors"
|
16
16
|
style="color: red;font-weight: bold;display: flex;align-items: center;justify-content: center;flex-direction: column;margin:20px;"></div>
|