@schukai/monster 4.25.0 → 4.25.1

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 CHANGED
@@ -2,6 +2,14 @@
2
2
 
3
3
 
4
4
 
5
+ ## [4.25.1] - 2025-06-30
6
+
7
+ ### Bug Fixes
8
+
9
+ - optimize small devices css
10
+
11
+
12
+
5
13
  ## [4.25.0] - 2025-06-30
6
14
 
7
15
  ### Add Features
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.0"}
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"}
@@ -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 "sp":
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 "dk":
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 "sw":
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");
@@ -1492,34 +1613,33 @@ function getTemplate() {
1492
1613
  <slot name="hidden"></slot>
1493
1614
  </div>
1494
1615
  <div data-monster-role="select-and-search">
1495
- <monster-message-state-button data-monster-role="search-button" class="stretched-control"
1496
- data-monster-replace="path:labels.search">
1497
- </monster-message-state-button>
1498
- <monster-select class="stretched-control"
1499
- data-monster-selected-template="summary"
1500
- data-monster-option-type="checkbox"
1501
- data-monster-option-filter-mode="options"
1502
- data-monster-option-filter-position="popper"
1503
- data-monster-role="filter-select"></monster-select>
1504
- <monster-popper-button data-monster-role="save-button" class="stretched-control"
1505
- data-monster-attributes="data-monster-visible path:features.storedConfig">
1506
- <div slot="button">\${filter-save-label}</div>
1507
- <div class="monster-form" data-monster-role="form">
1508
-
1509
- <label for="filter-name">\${filter-name-label}
1510
- <input name="filter-name"
1511
- type="search"
1512
- class="monster-margin-bottom-5"></label>
1513
- <monster-message-state-button
1514
- data-monster-role="save-action-button"
1515
- data-monster-option-labels-button="\${filter-save-label}">
1516
- </monster-message-state-button>
1517
-
1518
- </div>
1519
- </monster-popper-button>
1520
- <monster-button data-monster-role="reset-button" class="stretched-control"
1521
- data-monster-replace="path:labels.reset">
1522
- </monster-button>
1616
+ <monster-button-bar style="max-width: max-content">
1617
+ <monster-message-state-button data-monster-role="search-button" class="stretched-control">i18n{search}</monster-message-state-button>
1618
+ <monster-select class="stretched-control"
1619
+ data-monster-selected-template="summary"
1620
+ data-monster-option-type="checkbox"
1621
+ data-monster-option-filter-mode="options"
1622
+ data-monster-option-filter-position="popper"
1623
+ data-monster-role="filter-select"></monster-select>
1624
+ <monster-popper-button data-monster-role="save-button" class="stretched-control"
1625
+ data-monster-attributes="data-monster-visible path:features.storedConfig">
1626
+ <div slot="button">\${filter-save-label}</div>
1627
+ <div class="monster-form" data-monster-role="form">
1628
+
1629
+ <label for="filter-name">\${filter-name-label}
1630
+ <input name="filter-name"
1631
+ type="search"
1632
+ class="monster-margin-bottom-5"></label>
1633
+ <monster-message-state-button
1634
+ data-monster-role="save-action-button"
1635
+ data-monster-option-labels-button="\${filter-save-label}">
1636
+ </monster-message-state-button>
1637
+
1638
+ </div>
1639
+ </monster-popper-button>
1640
+ <monster-button data-monster-role="reset-button" class="stretched-control">i18n{reset}</monster-button>
1641
+ </monster-button>
1642
+ </monster-button-bar>
1523
1643
  </div>
1524
1644
 
1525
1645
  </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-reverse nowrap;
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
- & [data-monster-role=control] {
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
  }