@optionfactory/ful 4.0.15 → 4.0.16

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/dist/ful.mjs CHANGED
@@ -1461,15 +1461,15 @@ class Input extends ParsedElement {
1461
1461
  _fragment(type, slots) {
1462
1462
  return this.template().withOverlay({ type, slots }).render();
1463
1463
  }
1464
- render({ slots, observed, disabled, skipValueSetup }) {
1464
+ render({ slots, observed, disabled, skipObservedSetup }) {
1465
1465
  const type = this._type();
1466
1466
  const fragment = this._fragment(type, slots);
1467
1467
  this._input = fragment.querySelector("input,textarea");
1468
1468
 
1469
1469
  Attributes.forward('input-', this, this._input);
1470
- this.disabled = disabled;
1471
- this.readonly = observed.readonly;
1472
- if(!skipValueSetup){
1470
+ if (!skipObservedSetup) {
1471
+ this.disabled = disabled;
1472
+ this.readonly = observed.readonly;
1473
1473
  this.value = observed.value;
1474
1474
  }
1475
1475
 
@@ -2992,7 +2992,8 @@ class Table extends ParsedElement {
2992
2992
  }, this.#latestRequest.sortRequest, this.#latestRequest.filterRequest);
2993
2993
  });
2994
2994
  this.addEventListener('sort-requested', async (/** @type any */e) => {
2995
- await this.load(this.#latestRequest.pageRequest, e.detail.value, this.#latestRequest.filterRequest);
2995
+ const sortRequest = e.detail.value.order ? e.detail.value : null;
2996
+ await this.load(this.#latestRequest.pageRequest, sortRequest, this.#latestRequest.filterRequest);
2996
2997
  this.#sorters.forEach(s => s.order = null);
2997
2998
  e.target.order = e.detail.value.order;
2998
2999
  });
@@ -3077,10 +3078,13 @@ class InstantFilter extends Input {
3077
3078
  #value1;
3078
3079
  #value2;
3079
3080
  render(conf) {
3080
- super.render({...conf, skipValueSetup: true});
3081
+ super.render({...conf, skipObservedSetup: true});
3081
3082
  this.#operator = this.querySelector('[data-ref=operator]');
3082
3083
  this.#value1 = this.querySelector('[data-ref=value1]');
3083
3084
  this.#value2 = this.querySelector('[data-ref=value2]');
3085
+
3086
+ this.disabled = conf.disabled;
3087
+ this.readonly = conf.observed.readonly;
3084
3088
  this.value = conf.observed.value;
3085
3089
 
3086
3090
  this.addEventListener('click', (evt) => {
@@ -3112,6 +3116,19 @@ class InstantFilter extends Input {
3112
3116
  this.#value1.value = values[0] ? Instant.isoToLocal(values[0]) : values[0];
3113
3117
  this.#value2.value = values[1] ? Instant.isoToLocal(values[1]) : values[1];
3114
3118
  }
3119
+ set readonly(v) {
3120
+ this.#value2.readOnly = v;
3121
+ super.readonly = v;
3122
+ }
3123
+ set disabled(d) {
3124
+ Attributes.toggle(this.#value2, 'disabled', d);
3125
+ super.disabled = d;
3126
+ }
3127
+ formResetCallback() {
3128
+ const v = this.getAttribute("value");
3129
+ this.value = v === null ? null : JSON.parse(v);
3130
+ }
3131
+
3115
3132
  }
3116
3133
 
3117
3134
  class LocalDateFilter extends Input {
@@ -3145,13 +3162,16 @@ class LocalDateFilter extends Input {
3145
3162
  #value1;
3146
3163
  #value2;
3147
3164
  render(conf) {
3148
- super.render({...conf, skipValueSetup: true});
3165
+ super.render({...conf, skipObservedSetup: true});
3149
3166
 
3150
3167
  this.#operator = this.querySelector('[data-ref=operator]');
3151
3168
  this.#value1 = this.querySelector('[data-ref=value1]');
3152
3169
  this.#value2 = this.querySelector('[data-ref=value2]');
3170
+
3171
+ this.disabled = conf.disabled;
3172
+ this.readonly = conf.observed.readonly;
3153
3173
  this.value = conf.observed.value;
3154
-
3174
+
3155
3175
  this.addEventListener('click', (evt) => {
3156
3176
  const target = /** @type HTMLElement */(evt.target);
3157
3177
  if (!target.matches('ul > li > a')) {
@@ -3180,6 +3200,18 @@ class LocalDateFilter extends Input {
3180
3200
  this.#value1.value = values[0];
3181
3201
  this.#value2.value = values[1];
3182
3202
  }
3203
+ set readonly(v) {
3204
+ this.#value2.readOnly = v;
3205
+ super.readonly = v;
3206
+ }
3207
+ set disabled(d) {
3208
+ Attributes.toggle(this.#value2, 'disabled', d);
3209
+ super.disabled = d;
3210
+ }
3211
+ formResetCallback() {
3212
+ const v = this.getAttribute("value");
3213
+ this.value = v === null ? null : JSON.parse(v);
3214
+ }
3183
3215
  }
3184
3216
 
3185
3217
  class TextFilter extends Input {
@@ -3208,10 +3240,13 @@ class TextFilter extends Input {
3208
3240
  #operator;
3209
3241
  #value;
3210
3242
  render(conf) {
3211
- super.render({...conf, skipValueSetup: true});
3243
+ super.render({...conf, skipObservedSetup: true});
3212
3244
 
3213
3245
  this.#operator = this.querySelector('[data-ref=operator]');
3214
3246
  this.#value = this.querySelector('[data-ref=value]');
3247
+
3248
+ this.disabled = conf.disabled;
3249
+ this.readonly = conf.observed.readonly;
3215
3250
  this.value = conf.observed.value;
3216
3251
 
3217
3252
  this.addEventListener('click', (evt) => {
@@ -3225,12 +3260,10 @@ class TextFilter extends Input {
3225
3260
  btn.innerHTML = target.innerHTML;
3226
3261
  });
3227
3262
  }
3228
-
3229
3263
  get value() {
3230
3264
  const operator = this.#operator.getAttribute('value');
3231
3265
  return this.#value.value === '' ? undefined : [operator, 'IGNORE_CASE', this.#value.value];
3232
3266
  }
3233
-
3234
3267
  set value(v) {
3235
3268
  if (v === null || v === undefined) {
3236
3269
  this.#value.value = '';
@@ -3240,6 +3273,10 @@ class TextFilter extends Input {
3240
3273
  this.#operator.setAttribute('value', operator);
3241
3274
  this.#value.value = value;
3242
3275
  }
3276
+ formResetCallback() {
3277
+ const v = this.getAttribute("value");
3278
+ this.value = v === null ? null : JSON.parse(v);
3279
+ }
3243
3280
  }
3244
3281
 
3245
3282
  class LocalizationModule {