@schukai/monster 3.86.2 → 3.86.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (28) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/package.json +1 -1
  3. package/source/components/datatable/datasource/dom.mjs +3 -12
  4. package/source/components/datatable/datasource/rest.mjs +30 -31
  5. package/source/components/datatable/datatable.mjs +51 -8
  6. package/source/components/datatable/embedded-pagination.mjs +1 -26
  7. package/source/components/datatable/filter/input.mjs +1 -35
  8. package/source/components/datatable/filter/range.mjs +3 -3
  9. package/source/components/datatable/filter-button.mjs +3 -38
  10. package/source/components/datatable/filter.mjs +4 -37
  11. package/source/components/datatable/pagination.mjs +150 -60
  12. package/source/components/datatable/style/column-bar.pcss +7 -3
  13. package/source/components/datatable/style/datatable.pcss +29 -16
  14. package/source/components/datatable/style/embedded-pagination.pcss +16 -61
  15. package/source/components/datatable/style/filter-button.pcss +10 -7
  16. package/source/components/datatable/style/filter.pcss +1 -1
  17. package/source/components/datatable/style/pagination.pcss +0 -26
  18. package/source/components/datatable/stylesheet/column-bar.mjs +1 -1
  19. package/source/components/datatable/stylesheet/datatable.mjs +1 -1
  20. package/source/components/datatable/stylesheet/embedded-pagination.mjs +1 -1
  21. package/source/components/datatable/stylesheet/filter-button.mjs +1 -1
  22. package/source/components/datatable/stylesheet/filter.mjs +1 -1
  23. package/source/components/datatable/stylesheet/pagination.mjs +1 -1
  24. package/source/components/host/config-manager.mjs +0 -33
  25. package/source/types/version.mjs +1 -1
  26. package/test/cases/monster.mjs +1 -1
  27. package/test/web/test.html +2 -2
  28. package/test/web/tests.js +73 -24
@@ -17,16 +17,15 @@ 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";
24
25
  import { Observer } from "../../types/observer.mjs";
25
26
  import { ATTRIBUTE_ROLE } from "../../dom/constants.mjs";
26
27
  import { findTargetElementFromEvent } from "../../dom/events.mjs";
27
- import { EmbeddedPaginationStyleSheet } from "./stylesheet/embedded-pagination.mjs";
28
28
  import { PaginationStyleSheet } from "./stylesheet/pagination.mjs";
29
- //import {SpinnerStyleSheet} from "../stylesheet/spinner.mjs";
30
29
  import { DisplayStyleSheet } from "../stylesheet/display.mjs";
31
30
  import { isString } from "../../types/is.mjs";
32
31
  import { Pathfinder } from "../../data/pathfinder.mjs";
@@ -54,33 +53,28 @@ const paginationElementSymbol = Symbol.for("paginationElement");
54
53
  const datasourceLinkedElementSymbol = Symbol("datasourceLinkedElement");
55
54
 
56
55
  /**
57
- * The Pagination component is used to show the current page and the total number of pages.
58
- *
59
- * <img src="./images/pagination.png">
60
- *
61
- * You can create this control either by specifying the HTML tag <monster-pagination />` directly in the HTML or using
62
- * Javascript via the `document.createElement('monster-pagination');` method.
63
- *
64
- * ```html
65
- * <monster-pagination></monster-pagination>
66
- * ```
67
- *
68
- * Or you can create this CustomControl directly in Javascript:
69
- *
70
- * ```js
71
- * import '@schukai/component-datatable/source/pagination.mjs';
72
- * document.createElement('monster-pagination');
73
- * ```
74
- *
75
- * @startuml pagination.png
76
- * skinparam monochrome true
77
- * skinparam shadowing false
78
- * HTMLElement <|-- CustomElement
79
- * CustomElement <|-- Pagination
80
- * @enduml
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
+
73
+ /**
74
+ * The Pagination component
81
75
  *
82
76
  * @copyright schukai GmbH
83
- * @summary A datatable
77
+ * @summary The Pagination component is used to show the current page and the total number of pages.
84
78
  */
85
79
  class Pagination extends CustomElement {
86
80
  /**
@@ -106,13 +100,23 @@ class Pagination extends CustomElement {
106
100
  *
107
101
  * @property {Object} templates Template definitions
108
102
  * @property {string} templates.main Main template
109
- * @property {int} offset Current offset
110
- * @property {int} nextOffset Next offset
111
- * @property {int} prevOffset Previous offset
112
- * @property {int} objectsPerPage Number of objects per page
113
- * @property {int} currentPage Current page
114
- * @property {int} pages Total number of pages
115
- * @property {int} total Total number of objects
103
+ * @property {Object} datasource Datasource configuration
104
+ * @property {string} datasource.selector Datasource selector
105
+ * @property {Object} labels Label definitions
106
+ * @property {string} labels.page Page label
107
+ * @property {string} labels.description Description label
108
+ * @property {string} labels.previous Previous label
109
+ * @property {string} labels.next Next label
110
+ * @property {string} labels.of Of label
111
+ * @property {string} href Href
112
+ * @property {number} currentPage Current page
113
+ * @property {number} pages Pages
114
+ * @property {number} objectsPerPage Objects per page
115
+ * @property {Object} mapping Mapping
116
+ * @property {string} mapping.pages Pages mapping
117
+ * @property {string} mapping.objectsPerPage Objects per page mapping
118
+ * @property {string} mapping.currentPage Current page mapping
119
+ * @property {Object} pagination Pagination
116
120
  */
117
121
  get defaults() {
118
122
  return Object.assign(
@@ -147,18 +151,6 @@ class Pagination extends CustomElement {
147
151
  currentPage: "sys.pagination.currentPage",
148
152
  },
149
153
 
150
- // classes: {
151
- // // spinner: "monster-spinner monster-theme-primary-3",
152
- // // spinnerContainer: "monster-theme-primary-1 ",
153
- // // error: "monster-theme-error-2 monster-bg-color-primary-2",
154
- // // errorContainer: "monster-theme-primary-1",
155
- // },
156
-
157
- // state: {
158
- // // spinner: false,
159
- // // error: false,
160
- // },
161
-
162
154
  pagination: {
163
155
  items: [],
164
156
  },
@@ -176,8 +168,82 @@ class Pagination extends CustomElement {
176
168
  }
177
169
 
178
170
  /**
179
- *
180
- * @return {Monster.Components.Form.Form}
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
+
245
+ /**
246
+ * @return {void}
181
247
  */
182
248
  [assembleMethodSymbol]() {
183
249
  super[assembleMethodSymbol]();
@@ -201,6 +267,8 @@ class Pagination extends CustomElement {
201
267
  element.datasource.attachObserver(
202
268
  new Observer(handleDataSourceChanges.bind(this)),
203
269
  );
270
+
271
+ handleDataSourceChanges.call(this);
204
272
  }
205
273
  }
206
274
 
@@ -213,8 +281,7 @@ class Pagination extends CustomElement {
213
281
  }
214
282
 
215
283
  /**
216
- *
217
- * @return [CSSStyleSheet]
284
+ * @return {CSSStyleSheet[]}
218
285
  */
219
286
  static getCSSStyleSheet() {
220
287
  return [this.getControlCSSStyleSheet(), DisplayStyleSheet, ThemeStyleSheet];
@@ -272,6 +339,10 @@ function initEventHandler() {
272
339
  }
273
340
  }
274
341
 
342
+ if (!(element instanceof HTMLElement)) {
343
+ return;
344
+ }
345
+
275
346
  let page = null;
276
347
 
277
348
  if (!element.hasAttribute("data-page-no")) {
@@ -292,7 +363,17 @@ function initEventHandler() {
292
363
  return;
293
364
  }
294
365
 
295
- datasource.setParameters({ page }).reload();
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();
296
377
  });
297
378
  }
298
379
 
@@ -348,11 +429,18 @@ function handleDataSourceChanges() {
348
429
  this.getOption("currentPage"),
349
430
  this.getOption("pages"),
350
431
  );
351
- this.setOption("pagination", pagination);
432
+
433
+ if (this?.[sizeDataSymbol]?.showNumbers !== true) {
434
+ pagination.items = [];
435
+ }
436
+
437
+ getWindow().requestAnimationFrame(() => {
438
+ this.setOption("pagination", pagination);
439
+ });
352
440
  }
353
441
 
354
442
  /**
355
- *
443
+ * @private
356
444
  * @param current
357
445
  * @param max
358
446
  * @return {object}
@@ -464,17 +552,19 @@ function getTemplate() {
464
552
  <nav data-monster-role="pagination" role="navigation" aria-label="pagination">
465
553
  <ul class="pagination-list" data-monster-insert="items path:pagination.items"
466
554
  data-monster-select-this="true">
467
- <li part="pagination-prev"><a data-monster-role="pagination-prev"
468
- data-monster-attributes="
555
+ <li part="pagination-prev" data-monster-role="pagination-prev"><a
556
+ data-monster-role="pagination-prev"
557
+ data-monster-attributes="
469
558
  class path:pagination.prevClass | prefix: previous,
470
559
  data-page-no path:pagination.prevNo,
471
560
  href path:pagination.prevHref | prefix: #"
472
- data-monster-replace="path:labels.previous">Previous</a></li>
473
- <li part="pagination-next"><a data-monster-role="pagination-next"
474
- data-monster-attributes="class path:pagination.nextClass | prefix: next,
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,
475
565
  data-page-no path:pagination.nextNo,
476
566
  href path:pagination.nextHref | prefix: #"
477
- data-monster-replace="path:labels.next">Next</a></li>
567
+ data-monster-replace="path:labels.next">Next</a></li>
478
568
  </ul>
479
569
  </nav>
480
570
  </div>
@@ -97,16 +97,20 @@
97
97
  & a[data-monster-role=settings-button] {
98
98
  display: flex;
99
99
  align-items: center;
100
-
101
100
  color: var(--monster-color-primary-1);
102
101
  background: none;
103
-
104
102
  white-space: nowrap;
105
103
 
106
104
  &:after {
107
- content: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='currentColor' viewBox='0 0 16 16'%3E%3Cpath d='M0 1.5A1.5 1.5 0 0 1 1.5 0h13A1.5 1.5 0 0 1 16 1.5v13a1.5 1.5 0 0 1-1.5 1.5h-13A1.5 1.5 0 0 1 0 14.5v-13zM1.5 1a.5.5 0 0 0-.5.5v13a.5.5 0 0 0 .5.5H5V1H1.5zM10 15V1H6v14h4zm1 0h3.5a.5.5 0 0 0 .5-.5v-13a.5.5 0 0 0-.5-.5H11v14z'/%3E%3C/svg%3E");
105
+ content: "";
106
+ display: block;
107
+ width: 20px;
108
+ height: 16px;
108
109
  margin: 2px 3px 0 5px;
109
110
  padding-top: 4px;
111
+ background-color: var(--monster-color-primary-1);
112
+ mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M0 1.5A1.5 1.5 0 0 1 1.5 0h13A1.5 1.5 0 0 1 16 1.5v13a1.5 1.5 0 0 1-1.5 1.5h-13A1.5 1.5 0 0 1 0 14.5v-13zM1.5 1a.5.5 0 0 0-.5.5v13a.5.5 0 0 0 .5.5H5V1H1.5zM10 15V1H6v14h4zm1 0h3.5a.5.5 0 0 0 .5-.5v-13a.5.5 0 0 0-.5-.5H11v14z' fill='%23000'/%3E%3C/svg%3E");
113
+ mask-size: cover;
110
114
  }
111
115
  }
112
116
 
@@ -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;
@@ -188,20 +182,40 @@
188
182
  max-width: 100%;
189
183
 
190
184
  & a[data-monster-sortable]:after {
191
- content: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='currentColor' viewBox='0 0 16 16'%3E%3Cpath fill-rule='evenodd' d='M11.5 15a.5.5 0 0 0 .5-.5V2.707l3.146 3.147a.5.5 0 0 0 .708-.708l-4-4a.5.5 0 0 0-.708 0l-4 4a.5.5 0 1 0 .708.708L11 2.707V14.5a.5.5 0 0 0 .5.5zm-7-14a.5.5 0 0 1 .5.5v11.793l3.146-3.147a.5.5 0 0 1 .708.708l-4 4a.5.5 0 0 1-.708 0l-4-4a.5.5 0 0 1 .708-.708L4 13.293V1.5a.5.5 0 0 1 .5-.5z'/%3E%3C/svg%3E");
192
- margin: 0 3px 0 5px
185
+ content: "";
186
+ display: inline-block;
187
+ width: 16px;
188
+ height: 16px;
189
+ margin: 0 3px 0 5px;
190
+ background-color: var(--monster-color-primary-1);
191
+ mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3E%3Cpath fill-rule='evenodd' d='M11.5 15a.5.5 0 0 0 .5-.5V2.707l3.146 3.147a.5.5 0 0 0 .708-.708l-4-4a.5.5 0 0 0-.708 0l-4 4a.5.5 0 1 0 .708.708L11 2.707V14.5a.5.5 0 0 0 .5.5zm-7-14a.5.5 0 0 1 .5.5v11.793l3.146-3.147a.5.5 0 0 1 .708.708l-4 4a.5.5 0 0 1-.708 0l-4-4a.5.5 0 0 1 .708-.708L4 13.293V1.5a.5.5 0 0 1 .5-.5z'/%3E%3C/svg%3E");
192
+ mask-size: cover;
193
193
  }
194
194
 
195
195
  & a[data-monster-sortable~=DESC i]:after {
196
- content: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='currentColor' viewBox='0 0 16 16'%3E%3Cpath fill-rule='evenodd' d='M8 15a.5.5 0 0 0 .5-.5V2.707l3.146 3.147a.5.5 0 0 0 .708-.708l-4-4a.5.5 0 0 0-.708 0l-4 4a.5.5 0 1 0 .708.708L7.5 2.707V14.5a.5.5 0 0 0 .5.5z'/%3E%3C/svg%3E");
196
+ content: "";
197
+ display: inline-block;
198
+ width: 16px;
199
+ height: 16px;
200
+ margin: 0 3px 0 5px;
201
+ background-color: var(--monster-color-primary-1);
202
+ mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='currentColor' viewBox='0 0 16 16'%3E%3Cpath fill-rule='evenodd' d='M8 15a.5.5 0 0 0 .5-.5V2.707l3.146 3.147a.5.5 0 0 0 .708-.708l-4-4a.5.5 0 0 0-.708 0l-4 4a.5.5 0 1 0 .708.708L7.5 2.707V14.5a.5.5 0 0 0 .5.5z'/%3E%3C/svg%3E");
203
+ mask-size: cover;
197
204
  }
198
205
 
199
206
  & a[data-monster-sortable~=ASC i]:after {
200
- content: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='currentColor' viewBox='0 0 16 16'%3E%3Cpath fill-rule='evenodd' d='M8 1a.5.5 0 0 1 .5.5v11.793l3.146-3.147a.5.5 0 0 1 .708.708l-4 4a.5.5 0 0 1-.708 0l-4-4a.5.5 0 0 1 .708-.708L7.5 13.293V1.5A.5.5 0 0 1 8 1z'/%3E%3C/svg%3E");
207
+ content: "";
208
+ display: inline-block;
209
+ width: 16px;
210
+ height: 16px;
211
+ margin: 0 3px 0 5px;
212
+ background-color: var(--monster-color-primary-1);
213
+ mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='currentColor' viewBox='0 0 16 16'%3E%3Cpath fill-rule='evenodd' d='M8 1a.5.5 0 0 1 .5.5v11.793l3.146-3.147a.5.5 0 0 1 .708.708l-4 4a.5.5 0 0 1-.708 0l-4-4a.5.5 0 0 1 .708-.708L7.5 13.293V1.5A.5.5 0 0 1 8 1z'/%3E%3C/svg%3E");
214
+ mask-size: cover;
201
215
  }
202
-
203
216
  }
204
217
 
218
+
205
219
  & .flex-start {
206
220
  justify-content: flex-start;
207
221
  }
@@ -232,15 +246,14 @@ monster-state[data-monster-role=empty-without-action]::part(action) {
232
246
  padding: var(--monster-space-7) 0;
233
247
  }
234
248
 
235
-
236
- @container datatable (max-width: 900px) {
249
+ [data-monster-role="control"].small {
237
250
 
238
251
 
239
- [data-monster-role="datatable-headers"] {
252
+ & [data-monster-role="datatable-headers"] {
240
253
  display: none;
241
254
  }
242
255
 
243
- [data-monster-role="table-container"] {
256
+ & [data-monster-role="table-container"] {
244
257
 
245
258
  & .bar {
246
259
  display: flex;
@@ -265,7 +278,7 @@ monster-state[data-monster-role=empty-without-action]::part(action) {
265
278
  }
266
279
  }
267
280
 
268
- ::slotted(.monster-button-group) {
281
+ & ::slotted(.monster-button-group) {
269
282
  display: flex;
270
283
  flex-direction: column !important;
271
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: 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 black;
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
- &.hidden {
119
- display: none;
120
- }
121
- & .state-icon-container {
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
-
@@ -5,18 +5,21 @@
5
5
 
6
6
 
7
7
  [data-monster-role="control"] {
8
-
9
8
  & a {
10
9
  display: flex;
11
10
  align-items: center;
12
-
13
- color: var(--monster-color-primary-1);
14
11
  background: none;
12
+ color: var(--monster-color-primary-1);
15
13
 
16
14
  &:after {
17
- content: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='currentColor' class='bi bi-filter-square' viewBox='0 0 16 16'%3E%3Cpath d='M14 1a1 1 0 0 1 1 1v12a1 1 0 0 1-1 1H2a1 1 0 0 1-1-1V2a1 1 0 0 1 1-1h12zM2 0a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V2a2 2 0 0 0-2-2H2z'/%3E%3Cpath d='M6 11.5a.5.5 0 0 1 .5-.5h3a.5.5 0 0 1 0 1h-3a.5.5 0 0 1-.5-.5zm-2-3a.5.5 0 0 1 .5-.5h7a.5.5 0 0 1 0 1h-7a.5.5 0 0 1-.5-.5zm-2-3a.5.5 0 0 1 .5-.5h11a.5.5 0 0 1 0 1h-11a.5.5 0 0 1-.5-.5z'/%3E%3C/svg%3E");
18
- margin: 2px 3px 0 5px;
19
- padding-top: 4px;
15
+ content: "";
16
+ display: inline-block;
17
+ width: 16px;
18
+ height: 16px;
19
+ background-color: var(--monster-color-primary-1);
20
+ mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='currentColor' class='bi bi-filter-square' viewBox='0 0 16 16'%3E%3Cpath d='M14 1a1 1 0 0 1 1 1v12a1 1 0 0 1-1 1H2a1 1 0 0 1-1-1V2a1 1 0 0 1 1-1h12zM2 0a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V2a2 2 0 0 0-2-2H2z'/%3E%3Cpath d='M6 11.5a.5.5 0 0 1 .5-.5h3a.5.5 0 0 1 0 1h-3a.5.5 0 0 1-.5-.5zm-2-3a.5.5 0 0 1 .5-.5h7a.5.5 0 0 1 0 1h-7a.5.5 0 0 1-.5-.5zm-2-3a.5.5 0 0 1 .5-.5h11a.5.5 0 0 1 0 1h-11a.5.5 0 0 1-.5-.5z'/%3E%3C/svg%3E");
21
+ mask-size: cover;
22
+ margin: 0 3px 0 5px;
20
23
  }
21
24
  }
22
- }
25
+ }
@@ -97,7 +97,7 @@
97
97
  }
98
98
 
99
99
  & monster-select {
100
- min-width: 350px;
100
+ min-width: 150px;
101
101
  }
102
102
 
103
103
  & [data-monster-visible=false] {
@@ -51,33 +51,7 @@
51
51
  cursor: not-allowed;
52
52
  }
53
53
  }
54
- /*
55
- & .pagination-loading-state {
56
- align-items: center;
57
- display: flex;
58
-
59
- &.hidden {
60
- display: none;
61
- }
62
-
63
- }
64
-
65
-
66
- & .pagination-error-state {
67
- align-items: center;
68
- display: flex;
69
-
70
- &.hidden {
71
- display: none;
72
- }
73
-
74
- }
75
54
 
76
- & .state-icon-container {
77
- width:2em;
78
- height:2em;
79
- margin:0 5px 0 2px;
80
- }*/
81
55
 
82
56
  }
83
57