@fluid-topics/ft-wc-utils 1.3.1 → 1.3.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.
@@ -72,7 +72,7 @@ export class SearchPlaceConverter {
72
72
  params.append(SearchPlaceQueryParams.QUERY, request.query);
73
73
  }
74
74
  // Only extract non-negative valueFilter since they are not supported by URLSearchParams
75
- const valueFilters = (_c = (_b = request.metadataFilters) === null || _b === void 0 ? void 0 : _b.filter(f => { var _a; return ((_a = f.valueFilter) === null || _a === void 0 ? void 0 : _a.negative) === false; })) !== null && _c !== void 0 ? _c : [];
75
+ const valueFilters = (_c = (_b = request.metadataFilters) === null || _b === void 0 ? void 0 : _b.filter(f => f.valueFilter && !f.valueFilter.negative)) !== null && _c !== void 0 ? _c : [];
76
76
  if (valueFilters.length > 0) {
77
77
  const serializedValues = valueFilters.map(f => {
78
78
  var _a, _b;
@@ -109,7 +109,7 @@ export class SearchPlaceConverter {
109
109
  params.append(SearchPlaceQueryParams.PER_PAGE, String(request.paging.perPage));
110
110
  }
111
111
  const otherQueryParams = (_m = request.otherQueryParams) !== null && _m !== void 0 ? _m : {};
112
- for (let key in otherQueryParams) {
112
+ for (const key in otherQueryParams) {
113
113
  params.append(key, otherQueryParams[key]);
114
114
  }
115
115
  // Use encodeURIComponent instead of URLSearchParams.toString() to encode the result
@@ -148,7 +148,7 @@ export class SearchPlaceConverter {
148
148
  const scope = (_c = params.get(SearchPlaceQueryParams.SCOPE)) !== null && _c !== void 0 ? _c : "default";
149
149
  const perPage = +((_d = params.get(SearchPlaceQueryParams.PER_PAGE)) !== null && _d !== void 0 ? _d : this.defaultPerPage);
150
150
  const otherQueryParams = {};
151
- for (let key of params.keys()) {
151
+ for (const key of params.keys()) {
152
152
  if (!isSearchPlaceQueryParams(key)) {
153
153
  otherQueryParams[key] = params.get(key);
154
154
  }
@@ -163,7 +163,7 @@ export class SearchPlaceConverter {
163
163
  facets: [],
164
164
  paging: {
165
165
  page: 1,
166
- perPage: minmax(1, isNaN(perPage) ? this.defaultPerPage : perPage, 1000)
166
+ perPage: minmax(1, isNaN(perPage) ? this.defaultPerPage : perPage, 1000),
167
167
  },
168
168
  otherQueryParams,
169
169
  };
@@ -177,7 +177,7 @@ export class SearchPlaceConverter {
177
177
  if ((_b = params.has(SearchPlaceQueryParams.PERIOD)) !== null && _b !== void 0 ? _b : "") {
178
178
  legacyFilters = [
179
179
  ...legacyFilters,
180
- ...this.parseLegacyPeriodFilter(((_c = params.get(SearchPlaceQueryParams.PERIOD)) !== null && _c !== void 0 ? _c : "").toUpperCase())
180
+ ...this.parseLegacyPeriodFilter(((_c = params.get(SearchPlaceQueryParams.PERIOD)) !== null && _c !== void 0 ? _c : "").toUpperCase()),
181
181
  ];
182
182
  }
183
183
  return [
@@ -203,8 +203,8 @@ export class SearchPlaceConverter {
203
203
  values: oneFilterSplit[1].split("_")
204
204
  .map(unquote)
205
205
  .map(value => this.unescapeFilterValue(value)),
206
- negative: false
207
- }
206
+ negative: false,
207
+ },
208
208
  }));
209
209
  }
210
210
  parseDateFilters(s) {
@@ -215,8 +215,8 @@ export class SearchPlaceConverter {
215
215
  .map(oneFilterSplit => ({
216
216
  key: oneFilterSplit[0],
217
217
  dateFilter: {
218
- type: FtDateFilterType[oneFilterSplit[1].toUpperCase()]
219
- }
218
+ type: FtDateFilterType[oneFilterSplit[1].toUpperCase()],
219
+ },
220
220
  }));
221
221
  }
222
222
  parseRangeFilters(s) {
@@ -228,24 +228,24 @@ export class SearchPlaceConverter {
228
228
  key: oneFilterSplit[0],
229
229
  rangeFilter: {
230
230
  from: oneFilterSplit[1].split("_")[0],
231
- to: oneFilterSplit[1].split("_")[1]
232
- }
231
+ to: oneFilterSplit[1].split("_")[1],
232
+ },
233
233
  }));
234
234
  }
235
235
  escapeFilters(s) {
236
- for (let [c, escaped, superEscaped] of this.filtersEscapeMapping) {
236
+ for (const [c, escaped, _] of this.filtersEscapeMapping) {
237
237
  s = s.replaceAll(c, escaped);
238
238
  }
239
239
  return s;
240
240
  }
241
241
  superEscapeFilters(s) {
242
- for (let [c, escaped, superEscaped] of this.filtersEscapeMapping) {
242
+ for (const [_, escaped, superEscaped] of this.filtersEscapeMapping) {
243
243
  s = s.replaceAll(escaped, superEscaped);
244
244
  }
245
245
  return s;
246
246
  }
247
247
  unescapeFilterValue(value) {
248
- for (let [c, escaped, superEscaped] of this.filtersEscapeMapping) {
248
+ for (const [c, _, superEscaped] of this.filtersEscapeMapping) {
249
249
  value = value.replace(superEscaped, c);
250
250
  }
251
251
  return value;
@@ -256,9 +256,9 @@ export class SearchPlaceConverter {
256
256
  {
257
257
  key: "ft:lastEdition",
258
258
  dateFilter: {
259
- type: FtDateFilterType[period]
260
- }
261
- }
259
+ type: FtDateFilterType[period],
260
+ },
261
+ },
262
262
  ];
263
263
  }
264
264
  if (period.startsWith("CUSTOM_")) {
@@ -268,9 +268,9 @@ export class SearchPlaceConverter {
268
268
  key: "ft:lastEdition",
269
269
  rangeFilter: {
270
270
  from: from,
271
- to: to
272
- }
273
- }
271
+ to: to,
272
+ },
273
+ },
274
274
  ];
275
275
  }
276
276
  return [];
@@ -1,6 +1,7 @@
1
1
  import { Constructor } from "../generic-types";
2
2
  import { ValidationRule } from "./ValidationRules";
3
3
  import { FtLitElement } from "../FtLitElement";
4
+ import { TemplateResult } from "lit";
4
5
  export type FtInputInterface<V> = {
5
6
  warningRules: Array<ValidationRule<V>>;
6
7
  errorRules: Array<ValidationRule<V>>;
@@ -23,6 +24,8 @@ export type FtInputInterface<V> = {
23
24
  onFocus(): void;
24
25
  onBlur(): void;
25
26
  triggerValidation(): void;
27
+ renderMessagesForScreenReader(): TemplateResult;
28
+ messagesForScreenReaderElementId: string;
26
29
  };
27
30
  export declare enum ValidateOn {
28
31
  blur = "blur",
@@ -4,7 +4,10 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
4
4
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
5
  return c > 3 && r && Object.defineProperty(target, key, r), r;
6
6
  };
7
- import { property, state, } from "lit/decorators.js";
7
+ import { property, state } from "lit/decorators.js";
8
+ import { repeat } from "lit/directives/repeat.js";
9
+ import { when } from "lit/directives/when.js";
10
+ import { html } from "lit";
8
11
  export var ValidateOn;
9
12
  (function (ValidateOn) {
10
13
  ValidateOn["blur"] = "blur";
@@ -67,6 +70,25 @@ export function toFtInput(ElementClass) {
67
70
  this.status = this.resolveStatus();
68
71
  this.dispatchEvent(new InputValidationEvent(this.status));
69
72
  }
73
+ get messagesForScreenReaderElementId() {
74
+ return "sr-helper-text-list";
75
+ }
76
+ renderMessagesForScreenReader() {
77
+ return html `
78
+ <ul aria-live="polite" id="${this.messagesForScreenReaderElementId}"
79
+ style="position:absolute;left:-10000px;top:auto;width:1px;height:1px;overflow:hidden;list-style:none;">
80
+ ${repeat(this.errorMessages, (v) => html `
81
+ <li>${v}</li>
82
+ `)}
83
+ ${repeat(this.warningMessages, (v) => html `
84
+ <li>${v}</li>
85
+ `)}
86
+ ${when((!this.errorMessages.length && !this.warningMessages.length && this.helperText), () => html `
87
+ <li>${this.helperText}</li>
88
+ `)}
89
+ </ul>
90
+ `;
91
+ }
70
92
  resolveStatus() {
71
93
  return this.forceStatus ? this.forceStatus :
72
94
  this.errorMessages.length ? Status.error :