@schukai/monster 3.86.3 → 3.86.4
Sign up to get free protection for your applications and to get access to all the features.
- package/CHANGELOG.md +8 -0
- package/package.json +1 -1
- package/source/components/datatable/datasource/dom.mjs +3 -12
- package/source/components/datatable/datasource/rest.mjs +30 -31
- package/source/components/datatable/datatable.mjs +47 -7
- package/source/components/datatable/filter-button.mjs +3 -38
- package/source/components/datatable/filter.mjs +0 -1
- package/source/components/datatable/pagination.mjs +128 -10
- package/source/components/datatable/style/datatable.pcss +4 -11
- package/source/components/datatable/style/embedded-pagination.pcss +16 -61
- package/source/components/datatable/style/filter-button.pcss +10 -7
- package/source/components/datatable/style/filter.pcss +1 -1
- package/source/components/datatable/stylesheet/column-bar.mjs +13 -6
- package/source/components/datatable/stylesheet/datatable.mjs +14 -7
- package/source/components/datatable/stylesheet/embedded-pagination.mjs +1 -1
- package/source/components/datatable/stylesheet/filter-button.mjs +1 -1
- package/source/components/datatable/stylesheet/filter.mjs +1 -1
- package/source/components/datatable/stylesheet/pagination.mjs +13 -6
- package/source/types/version.mjs +1 -1
- package/test/cases/monster.mjs +1 -1
- package/test/web/test.html +2 -2
- package/test/web/tests.js +73 -24
package/CHANGELOG.md
CHANGED
package/package.json
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"author":"schukai GmbH","dependencies":{"@floating-ui/dom":"^1.6.12","@popperjs/core":"^2.11.8"},"description":"Monster is a simple library for creating fast, robust and lightweight websites.","homepage":"https://monsterjs.org/","keywords":["framework","web","dom","css","sass","mobile-first","app","front-end","templates","schukai","core","shopcloud","alvine","monster","buildmap","stack","observer","observable","uuid","node","nodelist","css-in-js","logger","log","theme"],"license":"AGPL 3.0","main":"source/monster.mjs","module":"source/monster.mjs","name":"@schukai/monster","repository":{"type":"git","url":"https://gitlab.schukai.com/oss/libraries/javascript/monster.git"},"type":"module","version":"3.86.
|
1
|
+
{"author":"schukai GmbH","dependencies":{"@floating-ui/dom":"^1.6.12","@popperjs/core":"^2.11.8"},"description":"Monster is a simple library for creating fast, robust and lightweight websites.","homepage":"https://monsterjs.org/","keywords":["framework","web","dom","css","sass","mobile-first","app","front-end","templates","schukai","core","shopcloud","alvine","monster","buildmap","stack","observer","observable","uuid","node","nodelist","css-in-js","logger","log","theme"],"license":"AGPL 3.0","main":"source/monster.mjs","module":"source/monster.mjs","name":"@schukai/monster","repository":{"type":"git","url":"https://gitlab.schukai.com/oss/libraries/javascript/monster.git"},"type":"module","version":"3.86.4"}
|
@@ -33,18 +33,6 @@ const dataChangeEventHandlerSymbol = Symbol("dataChangeEventHandler");
|
|
33
33
|
/**
|
34
34
|
* The Datasource component is a basic class for the datatable component.
|
35
35
|
*
|
36
|
-
* <img src="./images/dom.png">
|
37
|
-
*
|
38
|
-
* Dependencies: the system uses functions of the [monsterjs](https://monsterjs.org/) library
|
39
|
-
*
|
40
|
-
* @startuml dom.png
|
41
|
-
* skinparam monochrome true
|
42
|
-
* skinparam shadowing false
|
43
|
-
* HTMLElement <|-- CustomElement
|
44
|
-
* CustomElement <|-- Datasource
|
45
|
-
* Datasource <|-- Dom
|
46
|
-
* @enduml
|
47
|
-
*
|
48
36
|
* @copyright schukai GmbH
|
49
37
|
* @summary A dom datasource
|
50
38
|
*/
|
@@ -110,6 +98,9 @@ class Dom extends Datasource {
|
|
110
98
|
*/
|
111
99
|
reload() {}
|
112
100
|
|
101
|
+
/**
|
102
|
+
* @return {void}
|
103
|
+
*/
|
113
104
|
connectedCallback() {
|
114
105
|
super.connectedCallback();
|
115
106
|
|
@@ -99,36 +99,35 @@ class Rest extends Datasource {
|
|
99
99
|
}
|
100
100
|
|
101
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
|
-
*/
|
102
|
+
* To set the options via the HTML tag, the attribute `data-monster-options` must be used.
|
103
|
+
* @see {@link https://monsterjs.org/en/doc/#configurate-a-monster-control}
|
104
|
+
*
|
105
|
+
* The individual configuration values can be found in the table.
|
106
|
+
*
|
107
|
+
* @property {Object} templates Template definitions
|
108
|
+
* @property {string} templates.main Main template
|
109
|
+
* @property {Object} features Feature definitions
|
110
|
+
* @property {boolean} features.autoInit If true, the component is initialized automatically
|
111
|
+
* @property {boolean} features.filter If true, the component is initialized automatically
|
112
|
+
* @property {Object} autoInit Auto init definitions
|
113
|
+
* @property {boolean} autoInit.intersectionObserver If true, the intersection observer is initialized automatically
|
114
|
+
* @property {boolean} autoInit.oneTime If true, the intersection observer is initialized only once
|
115
|
+
* @property {Object} filter Filter definitions
|
116
|
+
* @property {string} filter.id The id of the filter control
|
117
|
+
* @property {Object} datatable Datatable definitions
|
118
|
+
* @property {string} datatable.id The id of the datatable control
|
119
|
+
* @property {Object} response Response definitions
|
120
|
+
* @property {Object} response.path Path definitions (changed in 3.56.0)
|
121
|
+
* @property {string} response.path.message Path to the message (changed in 3.56.0)
|
122
|
+
* @property {Object} read Read configuration
|
123
|
+
* @property {string} read.url The url of the rest api
|
124
|
+
* @property {string} read.method The method of the rest api
|
125
|
+
* @property {Object} read.parameters The parameters of the rest api
|
126
|
+
* @property {Object} read.parameters.filter The filter of the rest api
|
127
|
+
* @property {Object} read.parameters.orderBy The order by of the rest api
|
128
|
+
* @property {Object} read.parameters.page The page of the rest api
|
129
|
+
* @property {Object} write Write configuration
|
130
|
+
*/
|
132
131
|
get defaults() {
|
133
132
|
const restOptions = new RestAPI().defaults;
|
134
133
|
|
@@ -175,7 +174,7 @@ class Rest extends Datasource {
|
|
175
174
|
* @param {string} page
|
176
175
|
* @param {string} query
|
177
176
|
* @param {string} orderBy
|
178
|
-
* @return {
|
177
|
+
* @return {Rest}
|
179
178
|
*/
|
180
179
|
setParameters({ page, query, orderBy }) {
|
181
180
|
const parameters = this.getOption("read.parameters");
|
@@ -88,6 +88,12 @@ export { DataTable };
|
|
88
88
|
*/
|
89
89
|
const gridElementSymbol = Symbol("gridElement");
|
90
90
|
|
91
|
+
/**
|
92
|
+
* @private
|
93
|
+
* @type {symbol}
|
94
|
+
*/
|
95
|
+
const dataControlElementSymbol = Symbol("dataControlElement");
|
96
|
+
|
91
97
|
/**
|
92
98
|
* @private
|
93
99
|
* @type {symbol}
|
@@ -100,6 +106,12 @@ const gridHeadersElementSymbol = Symbol("gridHeadersElement");
|
|
100
106
|
*/
|
101
107
|
const columnBarElementSymbol = Symbol("columnBarElement");
|
102
108
|
|
109
|
+
/**
|
110
|
+
* @private
|
111
|
+
* @type {symbol}
|
112
|
+
*/
|
113
|
+
const resizeObserverSymbol = Symbol("resizeObserver");
|
114
|
+
|
103
115
|
/**
|
104
116
|
* The DataTable component is used to show the data from a data source.
|
105
117
|
*
|
@@ -233,6 +245,30 @@ class DataTable extends CustomElement {
|
|
233
245
|
return "monster-datatable";
|
234
246
|
}
|
235
247
|
|
248
|
+
/**
|
249
|
+
* @return {void}
|
250
|
+
*/
|
251
|
+
disconnectedCallback() {
|
252
|
+
super.disconnectedCallback();
|
253
|
+
if (this?.[resizeObserverSymbol] instanceof ResizeObserver) {
|
254
|
+
this[resizeObserverSymbol].disconnect();
|
255
|
+
}
|
256
|
+
}
|
257
|
+
|
258
|
+
/**
|
259
|
+
* @return {void}
|
260
|
+
*/
|
261
|
+
connectedCallback() {
|
262
|
+
const self = this;
|
263
|
+
super.connectedCallback();
|
264
|
+
|
265
|
+
this[resizeObserverSymbol] = new ResizeObserver((entries) => {
|
266
|
+
updateGrid.call(self);
|
267
|
+
});
|
268
|
+
|
269
|
+
this[resizeObserverSymbol].observe(this.parentNode);
|
270
|
+
}
|
271
|
+
|
236
272
|
/**
|
237
273
|
* @return void
|
238
274
|
*/
|
@@ -625,10 +661,6 @@ function updateConfigColumnBar() {
|
|
625
661
|
function initEventHandler() {
|
626
662
|
const self = this;
|
627
663
|
|
628
|
-
getWindow().addEventListener("resize", (event) => {
|
629
|
-
updateGrid.call(self);
|
630
|
-
});
|
631
|
-
|
632
664
|
self[columnBarElementSymbol].attachObserver(
|
633
665
|
new Observer((e) => {
|
634
666
|
updateHeaderFromColumnBar.call(self);
|
@@ -858,9 +890,13 @@ function updateGrid() {
|
|
858
890
|
if (styles !== "") sheet.replaceSync(styles);
|
859
891
|
this.shadowRoot.adoptedStyleSheets = [...DataTable.getCSSStyleSheet(), sheet];
|
860
892
|
|
861
|
-
const bodyWidth =
|
893
|
+
const bodyWidth = this.parentNode.clientWidth;
|
862
894
|
|
863
895
|
const breakpoint = this.getOption("responsive.breakpoint");
|
896
|
+
this[dataControlElementSymbol].classList.toggle(
|
897
|
+
"small",
|
898
|
+
bodyWidth <= breakpoint,
|
899
|
+
);
|
864
900
|
|
865
901
|
if (bodyWidth > breakpoint) {
|
866
902
|
this[gridElementSymbol].style.gridTemplateColumns =
|
@@ -875,7 +911,7 @@ function updateGrid() {
|
|
875
911
|
|
876
912
|
/**
|
877
913
|
* @private
|
878
|
-
* @param {
|
914
|
+
* @param {Header[]} headers
|
879
915
|
* @param {bool} doFetch
|
880
916
|
*/
|
881
917
|
function setDataSource({ orderBy }, doFetch) {
|
@@ -896,13 +932,17 @@ function setDataSource({ orderBy }, doFetch) {
|
|
896
932
|
|
897
933
|
/**
|
898
934
|
* @private
|
899
|
-
* @return {
|
935
|
+
* @return {DataTable}
|
900
936
|
*/
|
901
937
|
function initControlReferences() {
|
902
938
|
if (!this.shadowRoot) {
|
903
939
|
throw new Error("no shadow-root is defined");
|
904
940
|
}
|
905
941
|
|
942
|
+
this[dataControlElementSymbol] = this.shadowRoot.querySelector(
|
943
|
+
"[data-monster-role=control]",
|
944
|
+
);
|
945
|
+
|
906
946
|
this[gridElementSymbol] = this.shadowRoot.querySelector(
|
907
947
|
"[data-monster-role=datatable]",
|
908
948
|
);
|
@@ -20,44 +20,10 @@ import { ToggleButton } from "../host/toggle-button.mjs";
|
|
20
20
|
export { FilterButton };
|
21
21
|
|
22
22
|
/**
|
23
|
-
*
|
24
|
-
*
|
25
|
-
* <img src="./images/filter-button.png">
|
26
|
-
*
|
27
|
-
* Dependencies: the system uses functions of the [monsterjs](https://monsterjs.org/) library
|
28
|
-
*
|
29
|
-
* You can create this control either by specifying the HTML tag <monster-filter-button />` directly in the HTML or using
|
30
|
-
* Javascript via the `document.createElement('monster-filter-button');` method.
|
31
|
-
*
|
32
|
-
* ```html
|
33
|
-
* <monster-datatable-filter-button></monster-datatable-filter-button>
|
34
|
-
* ```
|
35
|
-
*
|
36
|
-
* Or you can create this CustomControl directly in Javascript:
|
37
|
-
*
|
38
|
-
* ```js
|
39
|
-
* import '@schukai/component-datatable/source/filter.mjs';
|
40
|
-
* document.createElement('monster-datatable-filter-button');
|
41
|
-
* ```
|
42
|
-
*
|
43
|
-
* The Body should have a class "hidden" to ensure that the styles are applied correctly.
|
44
|
-
*
|
45
|
-
* ```css
|
46
|
-
* body.hidden {
|
47
|
-
* visibility: hidden;
|
48
|
-
* }
|
49
|
-
* ```
|
50
|
-
*
|
51
|
-
* @startuml filter-button.png
|
52
|
-
* skinparam monochrome true
|
53
|
-
* skinparam shadowing false
|
54
|
-
* HTMLElement <|-- CustomElement
|
55
|
-
* CustomElement <|-- ToggleButton
|
56
|
-
* ToggleButton <|-- FilterButton
|
57
|
-
* @enduml
|
23
|
+
* A FilterButton is a button that can be used to show the filter.
|
58
24
|
*
|
59
25
|
* @copyright schukai GmbH
|
60
|
-
* @summary A
|
26
|
+
* @summary A Button that can be used to show the filter.
|
61
27
|
*/
|
62
28
|
class FilterButton extends ToggleButton {
|
63
29
|
/**
|
@@ -86,7 +52,6 @@ class FilterButton extends ToggleButton {
|
|
86
52
|
}
|
87
53
|
|
88
54
|
/**
|
89
|
-
*
|
90
55
|
* @return {string}
|
91
56
|
*/
|
92
57
|
static getTag() {
|
@@ -94,7 +59,7 @@ class FilterButton extends ToggleButton {
|
|
94
59
|
}
|
95
60
|
|
96
61
|
/**
|
97
|
-
* @return {
|
62
|
+
* @return {CSSStyleSheet[]}
|
98
63
|
*/
|
99
64
|
static getCSSStyleSheet() {
|
100
65
|
const styles = super.getCSSStyleSheet();
|
@@ -17,7 +17,8 @@ import {
|
|
17
17
|
CustomElement,
|
18
18
|
registerCustomElement,
|
19
19
|
} from "../../dom/customelement.mjs";
|
20
|
-
import { findElementWithSelectorUpwards } from "../../dom/util.mjs";
|
20
|
+
import { findElementWithSelectorUpwards, getWindow } from "../../dom/util.mjs";
|
21
|
+
import { DeadMansSwitch } from "../../util/deadmansswitch.mjs";
|
21
22
|
import { ThemeStyleSheet } from "../stylesheet/theme.mjs";
|
22
23
|
import { ATTRIBUTE_DATASOURCE_SELECTOR } from "./constants.mjs";
|
23
24
|
import { Datasource } from "./datasource.mjs";
|
@@ -51,6 +52,24 @@ const paginationElementSymbol = Symbol.for("paginationElement");
|
|
51
52
|
*/
|
52
53
|
const datasourceLinkedElementSymbol = Symbol("datasourceLinkedElement");
|
53
54
|
|
55
|
+
/**
|
56
|
+
* @private
|
57
|
+
* @type {symbol}
|
58
|
+
*/
|
59
|
+
const resizeObserverSymbol = Symbol("resizeObserver");
|
60
|
+
|
61
|
+
/**
|
62
|
+
* @private
|
63
|
+
* @type {symbol}
|
64
|
+
*/
|
65
|
+
const sizeDataSymbol = Symbol("sizeData");
|
66
|
+
|
67
|
+
/**
|
68
|
+
* @private
|
69
|
+
* @type {symbol}
|
70
|
+
*/
|
71
|
+
const debounceSizeSymbol = Symbol("debounceSize");
|
72
|
+
|
54
73
|
/**
|
55
74
|
* The Pagination component
|
56
75
|
*
|
@@ -148,6 +167,81 @@ class Pagination extends CustomElement {
|
|
148
167
|
return "monster-pagination";
|
149
168
|
}
|
150
169
|
|
170
|
+
/**
|
171
|
+
* @return {void}
|
172
|
+
*/
|
173
|
+
disconnectedCallback() {
|
174
|
+
super.disconnectedCallback();
|
175
|
+
if (this?.[resizeObserverSymbol] instanceof ResizeObserver) {
|
176
|
+
this[resizeObserverSymbol].disconnect();
|
177
|
+
}
|
178
|
+
}
|
179
|
+
|
180
|
+
/**
|
181
|
+
* @return {void}
|
182
|
+
*/
|
183
|
+
connectedCallback() {
|
184
|
+
const self = this;
|
185
|
+
super.connectedCallback();
|
186
|
+
|
187
|
+
const parentNode = this.parentNode;
|
188
|
+
if (!parentNode) {
|
189
|
+
return;
|
190
|
+
}
|
191
|
+
|
192
|
+
const parentParentNode = parentNode?.parentNode || parentNode;
|
193
|
+
|
194
|
+
const parentWidth = parentParentNode.clientWidth;
|
195
|
+
const ownWidth = this.clientWidth;
|
196
|
+
|
197
|
+
this[sizeDataSymbol] = {
|
198
|
+
last: {
|
199
|
+
parentWidth: parentParentNode.clientWidth || 0,
|
200
|
+
ownWidth: this.clientWidth || 0,
|
201
|
+
},
|
202
|
+
showNumbers: ownWidth < parentWidth,
|
203
|
+
};
|
204
|
+
|
205
|
+
handleDataSourceChanges.call(this);
|
206
|
+
|
207
|
+
setTimeout(() => {
|
208
|
+
this[resizeObserverSymbol] = new ResizeObserver((entries) => {
|
209
|
+
if (this[debounceSizeSymbol] instanceof DeadMansSwitch) {
|
210
|
+
try {
|
211
|
+
this[debounceSizeSymbol].touch();
|
212
|
+
return;
|
213
|
+
} catch (e) {
|
214
|
+
delete this[debounceSizeSymbol];
|
215
|
+
}
|
216
|
+
}
|
217
|
+
|
218
|
+
this[debounceSizeSymbol] = new DeadMansSwitch(400, () => {
|
219
|
+
queueMicrotask(() => {
|
220
|
+
const parentWidth = parentParentNode.clientWidth;
|
221
|
+
const ownWidth = this.clientWidth;
|
222
|
+
|
223
|
+
if (
|
224
|
+
this[sizeDataSymbol]?.last?.parentWidth === parentWidth &&
|
225
|
+
this[sizeDataSymbol]?.last?.ownWidth === ownWidth
|
226
|
+
) {
|
227
|
+
return;
|
228
|
+
}
|
229
|
+
|
230
|
+
this[sizeDataSymbol].last = {
|
231
|
+
parentWidth: parentWidth,
|
232
|
+
ownWidth: ownWidth,
|
233
|
+
};
|
234
|
+
|
235
|
+
this[sizeDataSymbol].showNumbers = ownWidth < parentWidth;
|
236
|
+
handleDataSourceChanges.call(this);
|
237
|
+
});
|
238
|
+
});
|
239
|
+
});
|
240
|
+
|
241
|
+
this[resizeObserverSymbol].observe(this?.parentNode?.parentNode);
|
242
|
+
}, 500);
|
243
|
+
}
|
244
|
+
|
151
245
|
/**
|
152
246
|
* @return {void}
|
153
247
|
*/
|
@@ -173,6 +267,7 @@ class Pagination extends CustomElement {
|
|
173
267
|
element.datasource.attachObserver(
|
174
268
|
new Observer(handleDataSourceChanges.bind(this)),
|
175
269
|
);
|
270
|
+
|
176
271
|
handleDataSourceChanges.call(this);
|
177
272
|
}
|
178
273
|
}
|
@@ -244,6 +339,10 @@ function initEventHandler() {
|
|
244
339
|
}
|
245
340
|
}
|
246
341
|
|
342
|
+
if (!(element instanceof HTMLElement)) {
|
343
|
+
return;
|
344
|
+
}
|
345
|
+
|
247
346
|
let page = null;
|
248
347
|
|
249
348
|
if (!element.hasAttribute("data-page-no")) {
|
@@ -264,7 +363,17 @@ function initEventHandler() {
|
|
264
363
|
return;
|
265
364
|
}
|
266
365
|
|
267
|
-
datasource.setParameters
|
366
|
+
if (typeof datasource.setParameters !== "function") {
|
367
|
+
return;
|
368
|
+
}
|
369
|
+
|
370
|
+
datasource.setParameters({ page });
|
371
|
+
|
372
|
+
if (typeof datasource.reload !== "function") {
|
373
|
+
return;
|
374
|
+
}
|
375
|
+
|
376
|
+
datasource.reload();
|
268
377
|
});
|
269
378
|
}
|
270
379
|
|
@@ -320,11 +429,18 @@ function handleDataSourceChanges() {
|
|
320
429
|
this.getOption("currentPage"),
|
321
430
|
this.getOption("pages"),
|
322
431
|
);
|
323
|
-
|
432
|
+
|
433
|
+
if (this?.[sizeDataSymbol]?.showNumbers !== true) {
|
434
|
+
pagination.items = [];
|
435
|
+
}
|
436
|
+
|
437
|
+
getWindow().requestAnimationFrame(() => {
|
438
|
+
this.setOption("pagination", pagination);
|
439
|
+
});
|
324
440
|
}
|
325
441
|
|
326
442
|
/**
|
327
|
-
*
|
443
|
+
* @private
|
328
444
|
* @param current
|
329
445
|
* @param max
|
330
446
|
* @return {object}
|
@@ -436,17 +552,19 @@ function getTemplate() {
|
|
436
552
|
<nav data-monster-role="pagination" role="navigation" aria-label="pagination">
|
437
553
|
<ul class="pagination-list" data-monster-insert="items path:pagination.items"
|
438
554
|
data-monster-select-this="true">
|
439
|
-
<li part="pagination-prev"
|
440
|
-
|
555
|
+
<li part="pagination-prev" data-monster-role="pagination-prev"><a
|
556
|
+
data-monster-role="pagination-prev"
|
557
|
+
data-monster-attributes="
|
441
558
|
class path:pagination.prevClass | prefix: previous,
|
442
559
|
data-page-no path:pagination.prevNo,
|
443
560
|
href path:pagination.prevHref | prefix: #"
|
444
|
-
|
445
|
-
<li part="pagination-next"
|
446
|
-
|
561
|
+
data-monster-replace="path:labels.previous">Previous</a></li>
|
562
|
+
<li part="pagination-next" data-monster-role="pagination-next"><a
|
563
|
+
data-monster-role="pagination-next"
|
564
|
+
data-monster-attributes="class path:pagination.nextClass | prefix: next,
|
447
565
|
data-page-no path:pagination.nextNo,
|
448
566
|
href path:pagination.nextHref | prefix: #"
|
449
|
-
|
567
|
+
data-monster-replace="path:labels.next">Next</a></li>
|
450
568
|
</ul>
|
451
569
|
</nav>
|
452
570
|
</div>
|
@@ -18,12 +18,6 @@
|
|
18
18
|
@import "../../style/theme.pcss";
|
19
19
|
@import "../../style/skeleton.pcss";
|
20
20
|
|
21
|
-
[data-monster-role="control"] {
|
22
|
-
container-type: inline-size ;
|
23
|
-
container-name: datatable;
|
24
|
-
@mixin text;
|
25
|
-
}
|
26
|
-
|
27
21
|
::slotted(monster-collapse) {
|
28
22
|
--monster-color-gradient-1: none;
|
29
23
|
--monster-color-gradient-2: none;
|
@@ -252,15 +246,14 @@ monster-state[data-monster-role=empty-without-action]::part(action) {
|
|
252
246
|
padding: var(--monster-space-7) 0;
|
253
247
|
}
|
254
248
|
|
255
|
-
|
256
|
-
@container datatable (max-width: 900px) {
|
249
|
+
[data-monster-role="control"].small {
|
257
250
|
|
258
251
|
|
259
|
-
[data-monster-role="datatable-headers"] {
|
252
|
+
& [data-monster-role="datatable-headers"] {
|
260
253
|
display: none;
|
261
254
|
}
|
262
255
|
|
263
|
-
[data-monster-role="table-container"] {
|
256
|
+
& [data-monster-role="table-container"] {
|
264
257
|
|
265
258
|
& .bar {
|
266
259
|
display: flex;
|
@@ -285,7 +278,7 @@ monster-state[data-monster-role=empty-without-action]::part(action) {
|
|
285
278
|
}
|
286
279
|
}
|
287
280
|
|
288
|
-
::slotted(.monster-button-group) {
|
281
|
+
& ::slotted(.monster-button-group) {
|
289
282
|
display: flex;
|
290
283
|
flex-direction: column !important;
|
291
284
|
}
|
@@ -7,6 +7,8 @@
|
|
7
7
|
@import "../../style/control.pcss";
|
8
8
|
@import "../../style/property.pcss";
|
9
9
|
|
10
|
+
|
11
|
+
|
10
12
|
[data-monster-role=pagination] {
|
11
13
|
@mixin text;
|
12
14
|
display: flex;
|
@@ -15,21 +17,27 @@
|
|
15
17
|
|
16
18
|
& ul {
|
17
19
|
display: flex;
|
18
|
-
flex-wrap:
|
20
|
+
flex-wrap: nowrap;
|
19
21
|
justify-content: center;
|
20
22
|
align-items: center;
|
21
23
|
list-style: none;
|
22
24
|
|
23
25
|
padding-left: 0;
|
24
26
|
margin: 20px 0;
|
27
|
+
|
25
28
|
|
26
29
|
}
|
27
30
|
|
28
31
|
& ul li {
|
29
32
|
|
30
33
|
margin: 0;
|
31
|
-
border-left: solid 1px
|
34
|
+
border-left: solid 1px var(--monster-theme-control-border-color);
|
32
35
|
padding: 0 10px;
|
36
|
+
|
37
|
+
display: flex;
|
38
|
+
align-items: center;
|
39
|
+
justify-content: center;
|
40
|
+
|
33
41
|
|
34
42
|
& a, & a:link, & a:visited, & a:hover, & a:active, & a:focus {
|
35
43
|
width: max-content;
|
@@ -73,7 +81,7 @@
|
|
73
81
|
}
|
74
82
|
}
|
75
83
|
|
76
|
-
@mixin viewport-7 {
|
84
|
+
@mixin viewport-7 {
|
77
85
|
|
78
86
|
& ul li {
|
79
87
|
padding: 0 2px;
|
@@ -92,67 +100,14 @@
|
|
92
100
|
}
|
93
101
|
|
94
102
|
}
|
95
|
-
/*
|
96
|
-
& [data-monster-error-state=hidden] {
|
97
|
-
display: none;
|
98
|
-
}
|
99
|
-
|
100
|
-
& [data-monster-loading-state=hidden] {
|
101
|
-
display: none;
|
102
|
-
}
|
103
|
-
*/
|
104
|
-
/** & .pagination-loading-state {
|
105
|
-
align-items: center;
|
106
|
-
display: flex;
|
107
103
|
|
108
|
-
&.hidden {
|
109
|
-
display: none;
|
110
|
-
}
|
111
104
|
|
112
|
-
|
105
|
+
}
|
113
106
|
|
114
|
-
& .pagination-error-state {
|
115
|
-
align-items: center;
|
116
|
-
display: flex;
|
117
107
|
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
width:2em;
|
123
|
-
height:2em;
|
124
|
-
margin:0 5px 0 2px;
|
108
|
+
@container (min-width: 800px) {
|
109
|
+
[data-monster-role=pagination] {
|
110
|
+
background-color: red;
|
111
|
+
color: red;
|
125
112
|
}
|
126
|
-
}*/
|
127
|
-
/*
|
128
|
-
& .pagination-state {
|
129
|
-
display: flex !important;
|
130
|
-
flex-wrap: nowrap;
|
131
|
-
flex-direction: row;
|
132
|
-
align-items: center;
|
133
|
-
justify-content: center;
|
134
|
-
|
135
|
-
& [data-monster-error-state] {
|
136
|
-
width:2em;
|
137
|
-
height:2em;
|
138
|
-
margin:0 5px 0 2px;
|
139
|
-
|
140
|
-
display: flex;
|
141
|
-
align-items: center;
|
142
|
-
justify-content: center;
|
143
|
-
}
|
144
|
-
|
145
|
-
& [data-monster-loading-state] {
|
146
|
-
width:2em;
|
147
|
-
height:2em;
|
148
|
-
margin:0 5px 0 2px;
|
149
|
-
}
|
150
|
-
|
151
|
-
|
152
|
-
}*/
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
157
113
|
}
|
158
|
-
|