@schukai/monster 4.25.0 → 4.25.2
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 +16 -0
- package/package.json +1 -1
- package/source/components/datatable/filter.mjs +152 -31
- package/source/components/datatable/style/datatable.pcss +29 -0
- package/source/components/datatable/style/filter.pcss +8 -3
- package/source/components/datatable/stylesheet/datatable.mjs +7 -14
- package/source/components/datatable/stylesheet/filter.mjs +7 -14
- package/source/components/form/select.mjs +2798 -2787
- package/source/components/form/style/action-button.pcss +0 -8
- package/source/components/form/style/select.pcss +6 -0
- package/source/components/form/stylesheet/action-button.mjs +6 -13
- package/source/components/form/stylesheet/button-bar.mjs +6 -13
- package/source/components/form/stylesheet/select.mjs +7 -14
- 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 +14 -25
package/CHANGELOG.md
CHANGED
package/package.json
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"author":"schukai GmbH","dependencies":{"@floating-ui/dom":"^1.7.1","@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":"4.25.
|
1
|
+
{"author":"schukai GmbH","dependencies":{"@floating-ui/dom":"^1.7.1","@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":"4.25.2"}
|
@@ -312,6 +312,15 @@ class Filter extends CustomElement {
|
|
312
312
|
query: null,
|
313
313
|
defaultQuery: null,
|
314
314
|
eventProcessing: true,
|
315
|
+
|
316
|
+
templateFormatter: {
|
317
|
+
marker: {
|
318
|
+
open: null,
|
319
|
+
close: null,
|
320
|
+
},
|
321
|
+
i18n: true,
|
322
|
+
},
|
323
|
+
|
315
324
|
});
|
316
325
|
}
|
317
326
|
|
@@ -428,7 +437,7 @@ function getTranslations() {
|
|
428
437
|
"query-not-changed":
|
429
438
|
"La requête de recherche n'a pas changé, donc aucune recherche n'est nécessaire.",
|
430
439
|
};
|
431
|
-
case "
|
440
|
+
case "es":
|
432
441
|
return {
|
433
442
|
search: "Buscar",
|
434
443
|
reset: "Restablecer",
|
@@ -472,7 +481,7 @@ function getTranslations() {
|
|
472
481
|
"query-not-changed":
|
473
482
|
"Søkeforespørselen har ikke endret seg, så ingen søk er nødvendig.",
|
474
483
|
};
|
475
|
-
case "
|
484
|
+
case "da":
|
476
485
|
return {
|
477
486
|
search: "Søg",
|
478
487
|
reset: "Nulstil",
|
@@ -483,7 +492,7 @@ function getTranslations() {
|
|
483
492
|
"query-not-changed":
|
484
493
|
"Søgeanmodningen er ikke ændret, så ingen søgning er nødvendig.",
|
485
494
|
};
|
486
|
-
case "
|
495
|
+
case "sv":
|
487
496
|
return {
|
488
497
|
search: "Sök",
|
489
498
|
reset: "Återställ",
|
@@ -494,6 +503,116 @@ function getTranslations() {
|
|
494
503
|
"query-not-changed":
|
495
504
|
"Sökförfrågan har inte ändrats, så ingen sökning krävs.",
|
496
505
|
};
|
506
|
+
case "nl":
|
507
|
+
return {
|
508
|
+
search: "Zoeken",
|
509
|
+
reset: "Resetten",
|
510
|
+
save: "Opslaan",
|
511
|
+
"filter-name": "Filternaam",
|
512
|
+
"empty-query-and-no-default":
|
513
|
+
"De zoekopdracht is leeg en er is geen standaardzoekopdracht.",
|
514
|
+
"query-not-changed":
|
515
|
+
"De zoekopdracht is niet gewijzigd, dus zoeken is niet nodig.",
|
516
|
+
};
|
517
|
+
case "fi":
|
518
|
+
return {
|
519
|
+
search: "Haku",
|
520
|
+
reset: "Palauta",
|
521
|
+
save: "Tallenna",
|
522
|
+
"filter-name": "Suodattimen nimi",
|
523
|
+
"empty-query-and-no-default":
|
524
|
+
"Hakukysely on tyhjä eikä oletushakua ole määritetty.",
|
525
|
+
"query-not-changed":
|
526
|
+
"Hakupyyntö ei ole muuttunut, joten hakua ei tarvita.",
|
527
|
+
};
|
528
|
+
case "cs":
|
529
|
+
return {
|
530
|
+
search: "Hledat",
|
531
|
+
reset: "Resetovat",
|
532
|
+
save: "Uložit",
|
533
|
+
"filter-name": "Název filtru",
|
534
|
+
"empty-query-and-no-default":
|
535
|
+
"Dotaz je prázdný a není nastavena žádná výchozí hodnota.",
|
536
|
+
"query-not-changed":
|
537
|
+
"Dotaz na hledání se nezměnil, takže hledání není nutné.",
|
538
|
+
};
|
539
|
+
case "pt":
|
540
|
+
return {
|
541
|
+
search: "Buscar",
|
542
|
+
reset: "Redefinir",
|
543
|
+
save: "Salvar",
|
544
|
+
"filter-name": "Nome do filtro",
|
545
|
+
"empty-query-and-no-default":
|
546
|
+
"A consulta está vazia e não há uma consulta padrão.",
|
547
|
+
"query-not-changed":
|
548
|
+
"A solicitação de pesquisa não foi alterada, portanto, nenhuma pesquisa é necessária.",
|
549
|
+
};
|
550
|
+
case "ru":
|
551
|
+
return {
|
552
|
+
search: "Поиск",
|
553
|
+
reset: "Сброс",
|
554
|
+
save: "Сохранить",
|
555
|
+
"filter-name": "Имя фильтра",
|
556
|
+
"empty-query-and-no-default":
|
557
|
+
"Запрос пуст и нет запроса по умолчанию.",
|
558
|
+
"query-not-changed":
|
559
|
+
"Поисковый запрос не изменился, поэтому поиск не требуется.",
|
560
|
+
};
|
561
|
+
case "zh":
|
562
|
+
return {
|
563
|
+
search: "搜索",
|
564
|
+
reset: "重置",
|
565
|
+
save: "保存",
|
566
|
+
"filter-name": "过滤器名称",
|
567
|
+
"empty-query-and-no-default":
|
568
|
+
"查询为空,且没有默认查询。",
|
569
|
+
"query-not-changed":
|
570
|
+
"搜索请求没有更改,因此不需要进行搜索。",
|
571
|
+
};
|
572
|
+
case "hi":
|
573
|
+
return {
|
574
|
+
search: "खोजें",
|
575
|
+
reset: "रीसेट करें",
|
576
|
+
save: "सहेजें",
|
577
|
+
"filter-name": "फ़िल्टर नाम",
|
578
|
+
"empty-query-and-no-default":
|
579
|
+
"क्वेरी खाली है और कोई डिफ़ॉल्ट क्वेरी नहीं है।",
|
580
|
+
"query-not-changed":
|
581
|
+
"खोज अनुरोध में कोई बदलाव नहीं हुआ है, इसलिए खोज आवश्यक नहीं है।",
|
582
|
+
};
|
583
|
+
case "bn":
|
584
|
+
return {
|
585
|
+
search: "অনুসন্ধান",
|
586
|
+
reset: "রিসেট",
|
587
|
+
save: "সংরক্ষণ করুন",
|
588
|
+
"filter-name": "ফিল্টারের নাম",
|
589
|
+
"empty-query-and-no-default":
|
590
|
+
"কোয়েরি খালি এবং কোনো ডিফল্ট কোয়েরি নেই।",
|
591
|
+
"query-not-changed":
|
592
|
+
"অনুসন্ধানের অনুরোধ পরিবর্তন হয়নি, তাই অনুসন্ধান প্রয়োজন নয়।",
|
593
|
+
};
|
594
|
+
case "ja":
|
595
|
+
return {
|
596
|
+
search: "検索",
|
597
|
+
reset: "リセット",
|
598
|
+
save: "保存",
|
599
|
+
"filter-name": "フィルター名",
|
600
|
+
"empty-query-and-no-default":
|
601
|
+
"クエリが空で、デフォルトクエリがありません。",
|
602
|
+
"query-not-changed":
|
603
|
+
"検索リクエストに変更がないため、検索は不要です。",
|
604
|
+
};
|
605
|
+
case "pa":
|
606
|
+
return {
|
607
|
+
search: "ਖੋਜੋ",
|
608
|
+
reset: "ਰੀਸੈੱਟ ਕਰੋ",
|
609
|
+
save: "ਸੇਵ ਕਰੋ",
|
610
|
+
"filter-name": "ਫਿਲਟਰ ਦਾ ਨਾਂ",
|
611
|
+
"empty-query-and-no-default":
|
612
|
+
"ਕੁਐਰੀ ਖਾਲੀ ਹੈ ਅਤੇ ਕੋਈ ਡਿਫੌਲਟ ਕੁਐਰੀ ਨਹੀਂ ਹੈ।",
|
613
|
+
"query-not-changed":
|
614
|
+
"ਖੋਜ ਦੀ ਬੇਨਤੀ ਵਿੱਚ ਕੋਈ ਤਬਦੀਲੀ ਨਹੀਂ ਆਈ ਹੈ, ਇਸ ਲਈ ਖੋਜ ਦੀ ਲੋੜ ਨਹੀਂ ਹੈ।",
|
615
|
+
};
|
497
616
|
default:
|
498
617
|
case "en":
|
499
618
|
return {
|
@@ -507,6 +626,7 @@ function getTranslations() {
|
|
507
626
|
"The search request has not changed, so no search is required.",
|
508
627
|
};
|
509
628
|
}
|
629
|
+
|
510
630
|
}
|
511
631
|
|
512
632
|
/**
|
@@ -1045,6 +1165,7 @@ function doSearch({ showEffect } = { showEffect: true }) {
|
|
1045
1165
|
return collectSearchQueries
|
1046
1166
|
.call(this)
|
1047
1167
|
.then((query) => {
|
1168
|
+
|
1048
1169
|
const buildQuery = buildSearchQuery.call(this, query);
|
1049
1170
|
if (buildQuery === null) {
|
1050
1171
|
const msg = this.getOption("labels.empty-query-and-no-default");
|
@@ -1087,6 +1208,7 @@ function doSearch({ showEffect } = { showEffect: true }) {
|
|
1087
1208
|
}
|
1088
1209
|
|
1089
1210
|
if (showEffect) {
|
1211
|
+
this[searchButtonElementSymbol].removeState();
|
1090
1212
|
this[searchButtonElementSymbol].setState(
|
1091
1213
|
"activity",
|
1092
1214
|
this.getOption("timeouts.message", 4000),
|
@@ -1492,34 +1614,33 @@ function getTemplate() {
|
|
1492
1614
|
<slot name="hidden"></slot>
|
1493
1615
|
</div>
|
1494
1616
|
<div data-monster-role="select-and-search">
|
1495
|
-
<monster-
|
1496
|
-
|
1497
|
-
|
1498
|
-
|
1499
|
-
|
1500
|
-
|
1501
|
-
|
1502
|
-
|
1503
|
-
|
1504
|
-
|
1505
|
-
|
1506
|
-
|
1507
|
-
|
1508
|
-
|
1509
|
-
|
1510
|
-
|
1511
|
-
|
1512
|
-
|
1513
|
-
|
1514
|
-
|
1515
|
-
|
1516
|
-
|
1517
|
-
|
1518
|
-
</
|
1519
|
-
|
1520
|
-
|
1521
|
-
|
1522
|
-
</monster-button>
|
1617
|
+
<monster-button-bar style="max-width: max-content">
|
1618
|
+
<monster-message-state-button data-monster-role="search-button" class="stretched-control">i18n{search}</monster-message-state-button>
|
1619
|
+
<monster-select class="stretched-control"
|
1620
|
+
data-monster-selected-template="summary"
|
1621
|
+
data-monster-option-type="checkbox"
|
1622
|
+
data-monster-option-filter-mode="options"
|
1623
|
+
data-monster-option-filter-position="popper"
|
1624
|
+
data-monster-role="filter-select"></monster-select>
|
1625
|
+
<monster-popper-button data-monster-role="save-button" class="stretched-control"
|
1626
|
+
data-monster-attributes="data-monster-visible path:features.storedConfig">
|
1627
|
+
<div slot="button">\${filter-save-label}</div>
|
1628
|
+
<div class="monster-form" data-monster-role="form">
|
1629
|
+
|
1630
|
+
<label for="filter-name">\${filter-name-label}
|
1631
|
+
<input name="filter-name"
|
1632
|
+
type="search"
|
1633
|
+
class="monster-margin-bottom-5"></label>
|
1634
|
+
<monster-message-state-button
|
1635
|
+
data-monster-role="save-action-button"
|
1636
|
+
data-monster-option-labels-button="\${filter-save-label}">
|
1637
|
+
</monster-message-state-button>
|
1638
|
+
|
1639
|
+
</div>
|
1640
|
+
</monster-popper-button>
|
1641
|
+
<monster-button data-monster-role="reset-button" class="stretched-control">i18n{reset}</monster-button>
|
1642
|
+
</monster-button>
|
1643
|
+
</monster-button-bar>
|
1523
1644
|
</div>
|
1524
1645
|
|
1525
1646
|
</div>
|
@@ -309,6 +309,35 @@ monster-state[data-monster-role=empty-without-action]::part(action) {
|
|
309
309
|
}
|
310
310
|
|
311
311
|
|
312
|
+
[data-monster-role=control].small {
|
313
|
+
|
314
|
+
::slotted(.monster-button-group) {
|
315
|
+
align-items: flex-end;
|
316
|
+
}
|
317
|
+
|
318
|
+
[data-monster-role=datatable] > div {
|
319
|
+
display: flex;
|
320
|
+
align-items: flex-start;
|
321
|
+
justify-content: flex-start;
|
322
|
+
|
323
|
+
&.start {
|
324
|
+
justify-content: flex-start;
|
325
|
+
}
|
326
|
+
|
327
|
+
&.end {
|
328
|
+
justify-content: flex-start;
|
329
|
+
}
|
330
|
+
|
331
|
+
&.center {
|
332
|
+
justify-content: flex-start;
|
333
|
+
}
|
334
|
+
|
335
|
+
}
|
336
|
+
|
337
|
+
}
|
338
|
+
|
339
|
+
|
340
|
+
|
312
341
|
|
313
342
|
|
314
343
|
|
@@ -76,11 +76,14 @@
|
|
76
76
|
place-content: center flex-end;
|
77
77
|
align-items: stretch;
|
78
78
|
display: flex;
|
79
|
-
flex-flow: row
|
79
|
+
flex-flow: row nowrap;
|
80
80
|
row-gap: 1.5rem;
|
81
81
|
column-gap: 0.5rem;
|
82
82
|
margin-top: 1rem;
|
83
83
|
|
84
|
+
width:100%;
|
85
|
+
justify-content: flex-end;
|
86
|
+
|
84
87
|
& monster-button {
|
85
88
|
display: flex;
|
86
89
|
}
|
@@ -117,7 +120,9 @@
|
|
117
120
|
|
118
121
|
|
119
122
|
@container filter (width < 500px) {
|
120
|
-
|
123
|
+
|
124
|
+
[data-monster-role=control] {
|
125
|
+
|
121
126
|
& [data-monster-role=layout] {
|
122
127
|
|
123
128
|
flex-flow: column nowrap;
|
@@ -141,7 +146,7 @@
|
|
141
146
|
flex-direction: column;
|
142
147
|
row-gap: 0.5rem;
|
143
148
|
column-gap: 0;
|
144
|
-
|
149
|
+
|
145
150
|
& monster-message-state-button {
|
146
151
|
width: 100%;
|
147
152
|
}
|