@schukai/monster 3.99.1 → 3.99.3

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,22 @@
2
2
 
3
3
 
4
4
 
5
+ ## [3.99.3] - 2025-01-11
6
+
7
+ ### Bug Fixes
8
+
9
+ - filter init, form readonly
10
+
11
+
12
+
13
+ ## [3.99.2] - 2025-01-10
14
+
15
+ ### Bug Fixes
16
+
17
+ - **datatable:** set order template [#187](https://gitlab.schukai.com/oss/libraries/javascript/monster/issues/187)
18
+
19
+
20
+
5
21
  ## [3.99.1] - 2025-01-10
6
22
 
7
23
  ### Bug Fixes
package/package.json CHANGED
@@ -1 +1 @@
1
- {"author":"schukai GmbH","dependencies":{"@floating-ui/dom":"^1.6.13","@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.99.1"}
1
+ {"author":"schukai GmbH","dependencies":{"@floating-ui/dom":"^1.6.13","@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.99.3"}
@@ -150,8 +150,13 @@ class DataSet extends CustomElement {
150
150
  */
151
151
  refresh() {
152
152
  // makes sure that handleDataSourceChanges is called
153
- this.setOption("data", {});
154
- return Promise.resolve(this);
153
+ return new Promise((resolve) => {
154
+ this.setOption("data", {});
155
+ queueMicrotask(() => {
156
+ handleDataSourceChanges.call(this);
157
+ resolve();
158
+ });
159
+ });
155
160
  }
156
161
 
157
162
  /**
@@ -118,7 +118,7 @@ class Rest extends Datasource {
118
118
  * @property {string} read.method The method of the rest api
119
119
  * @property {Object} read.parameters The parameters of the rest api
120
120
  * @property {Object} read.parameters.filter The filter of the rest api
121
- * @property {Object} read.parameters.orderBy The order by of the rest api
121
+ * @property {Object} read.parameters.order The order by of the rest api
122
122
  * @property {Object} read.parameters.page The page of the rest api
123
123
  * @property {string} read.mapping.currentPage The current page
124
124
  * @property {Object} write Write configuration
@@ -131,7 +131,7 @@ class Rest extends Datasource {
131
131
 
132
132
  restOptions.read.parameters = {
133
133
  filter: null,
134
- orderBy: null,
134
+ order: null,
135
135
  page: "1",
136
136
  };
137
137
 
@@ -175,10 +175,10 @@ class Rest extends Datasource {
175
175
  *
176
176
  * @param {string} page
177
177
  * @param {string} query
178
- * @param {string} orderBy
178
+ * @param {string} order
179
179
  * @return {Rest}
180
180
  */
181
- setParameters({ page, query, orderBy }) {
181
+ setParameters({ page, query, order }) {
182
182
  const parameters = this.getOption("read.parameters");
183
183
  if (query !== undefined) {
184
184
  parameters.query = `${query}`;
@@ -187,7 +187,7 @@ class Rest extends Datasource {
187
187
 
188
188
  // after a query the page is set to 1, so if the page is not set, it is set to 1
189
189
  if (page !== undefined) parameters.page = `${page}`;
190
- if (orderBy !== undefined) parameters.order = `${orderBy}`;
190
+ if (order !== undefined) parameters.order = `${order}`;
191
191
  this.setOption("read.parameters", parameters);
192
192
  return this;
193
193
  }
@@ -305,8 +305,8 @@ class Rest extends Datasource {
305
305
  param.page = "1";
306
306
  }
307
307
 
308
- if (param.orderBy === null || param.orderBy === undefined) {
309
- param.orderBy = "";
308
+ if (param.order === null || param.order === undefined) {
309
+ param.order = "";
310
310
  }
311
311
 
312
312
  const formatter = new Formatter(param);
@@ -21,6 +21,7 @@ import {
21
21
  validateIterable,
22
22
  validateInstance,
23
23
  } from "../../../types/validate.mjs";
24
+ import {Formatter} from "../../../text/formatter.mjs";
24
25
 
25
26
  export {
26
27
  Header,
@@ -104,6 +105,7 @@ class Header extends Base {
104
105
  mode: undefined,
105
106
  grid: undefined,
106
107
  features: undefined,
108
+ orderTemplate: undefined,
107
109
  };
108
110
  }
109
111
 
@@ -238,10 +240,11 @@ class Header extends Base {
238
240
 
239
241
  /**
240
242
  * @private
241
- * @param {Array<Header>} headers
243
+ * @param {Header[]} headers
244
+ * @param {string} delimiter
242
245
  * @return {string}
243
246
  */
244
- function createOrderStatement(headers) {
247
+ function createOrderStatement(headers, delimiter = ",") {
245
248
  validateIterable(headers);
246
249
 
247
250
  const oderStatement = [];
@@ -254,7 +257,7 @@ function createOrderStatement(headers) {
254
257
  }
255
258
  oderStatement.push(order);
256
259
  }
257
- return oderStatement.join(",");
260
+ return oderStatement.join(delimiter);
258
261
  }
259
262
 
260
263
  /**
@@ -274,7 +277,13 @@ function updateStruct() {
274
277
  }
275
278
 
276
279
  if (direction) {
277
- order = `${field} ${direction}`.trim();
280
+ const tmpl = this.getInternal("orderTemplate");
281
+ const formatter = new Formatter({
282
+ "direction": direction,
283
+ "label": label,
284
+ "field": field,
285
+ });
286
+ order = formatter.format(tmpl);
278
287
  }
279
288
 
280
289
  this.setInternal("order", order);