@supersoniks/concorde 1.1.46 → 1.1.47

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.
Files changed (46) hide show
  1. package/README.md +0 -0
  2. package/cli.js +0 -0
  3. package/concorde-core.bundle.js +20 -22
  4. package/concorde-core.es.js +777 -955
  5. package/concorde-customer.bundle.js +129 -0
  6. package/concorde-customer.es.js +22004 -0
  7. package/core/_types/types.d.ts +0 -1
  8. package/core/components/functional/date/date.js +15 -7
  9. package/core/components/functional/fetch/fetch.d.ts +1 -0
  10. package/core/components/functional/list/list.d.ts +33 -18
  11. package/core/components/functional/list/list.js +12 -22
  12. package/core/components/functional/queue/queue.d.ts +0 -2
  13. package/core/components/functional/queue/queue.js +11 -37
  14. package/core/components/functional/sdui/sdui.d.ts +1 -3
  15. package/core/components/functional/sdui/sdui.js +0 -3
  16. package/core/components/ui/_css/type.js +12 -12
  17. package/core/components/ui/button/button.d.ts +1 -0
  18. package/core/components/ui/button/button.js +37 -12
  19. package/core/components/ui/form/input/input.d.ts +0 -1
  20. package/core/components/ui/form/input/input.js +3 -10
  21. package/core/components/ui/form/input-autocomplete/input-autocomplete.d.ts +13 -93
  22. package/core/components/ui/form/input-autocomplete/input-autocomplete.js +52 -181
  23. package/core/components/ui/image/image.d.ts +2 -0
  24. package/core/components/ui/image/image.js +28 -0
  25. package/core/components/ui/pop/pop.js +6 -17
  26. package/core/components/ui/theme/css/tailwind.css +0 -0
  27. package/core/components/ui/theme/css/tailwind.d.ts +0 -0
  28. package/core/components/ui/theme/theme.js +8 -6
  29. package/core/components/ui/toast/toast.d.ts +1 -1
  30. package/core/components/ui/toast/types.d.ts +1 -1
  31. package/core/components/ui/ui.d.ts +0 -1
  32. package/core/components/ui/ui.js +0 -1
  33. package/core/mixins/Fetcher.d.ts +1 -0
  34. package/core/mixins/Fetcher.js +9 -10
  35. package/core/mixins/FormElement.d.ts +0 -1
  36. package/core/mixins/FormElement.js +2 -6
  37. package/core/utils/LocationHandler.js +9 -3
  38. package/core/utils/PublisherProxy.d.ts +0 -1
  39. package/core/utils/PublisherProxy.js +0 -1
  40. package/img/concorde-logo.svg +0 -0
  41. package/img/concorde.png +0 -0
  42. package/img/concorde_def.png +0 -0
  43. package/mixins.d.ts +1 -0
  44. package/package.json +1 -1
  45. package/svg/regular/plane.svg +0 -0
  46. package/svg/solid/plane.svg +0 -0
@@ -26,6 +26,5 @@ export type CoreJSType = string | number | boolean | null | {
26
26
  export type TypeAndRecordOfType<U> = U & Record<string | number, U>;
27
27
  export type PublisherContentType = CoreJSType & {
28
28
  __value?: CoreJSType;
29
- _key_?: number;
30
29
  };
31
30
  export type HTMLFormControl = HTMLInputElement | HTMLSelectElement | HTMLTextAreaElement;
@@ -45,7 +45,9 @@ let SonicDate = class SonicDate extends Subscriber(TemplatesContainer(LitElement
45
45
  }
46
46
  set wording_billet_periode_validite(value) {
47
47
  this._wording_billet_periode_validite = value;
48
- this.duAu = this.wording_billet_periode_validite.split("%s").map((str) => str.trim());
48
+ this.duAu = this.wording_billet_periode_validite
49
+ .split("%s")
50
+ .map((str) => str.trim());
49
51
  this.duAu.pop();
50
52
  this.requestUpdate();
51
53
  }
@@ -74,25 +76,31 @@ let SonicDate = class SonicDate extends Subscriber(TemplatesContainer(LitElement
74
76
  }
75
77
  const format = new Intl.DateTimeFormat(this.language || this.pageLanguage, options);
76
78
  parts = format.formatRangeToParts(start, end);
77
- //En mode design on cache les ","
78
- if (this.designMode) {
79
- parts.forEach((part) => (part.hidden = part.value.trim() == ","));
80
- }
81
79
  //on affiche du au uniquement si on a deux dates différentes
82
80
  if (!isSameDay) {
83
- const to = parts.find((part) => part.type == "literal" && part.source == "shared" && part.value.trim().length > 0);
81
+ const to = parts.find((part) => part.type == "literal" &&
82
+ part.source == "shared" &&
83
+ part.value.trim().length > 0);
84
84
  if (to) {
85
85
  to.value = " " + this.duAu[1] + " ";
86
86
  to.type = "to";
87
87
  }
88
88
  if (!this.designMode)
89
- parts.unshift({ type: "from", value: this.duAu[0] + " ", source: "shared" });
89
+ parts.unshift({
90
+ type: "from",
91
+ value: this.duAu[0] + " ",
92
+ source: "shared",
93
+ });
90
94
  }
91
95
  }
92
96
  else {
93
97
  const format = new Intl.DateTimeFormat(this.language || this.pageLanguage, options);
94
98
  parts = format.formatToParts(start);
95
99
  }
100
+ //En mode design on cache les ","
101
+ if (this.designMode) {
102
+ parts.forEach((part) => (part.hidden = part.value.trim() == ","));
103
+ }
96
104
  parts[0].value = Format.ucFirst(parts[0].value);
97
105
  return parts.filter((p) => p.hidden !== true);
98
106
  }
@@ -19,6 +19,7 @@ declare const Fetch_base: {
19
19
  onInvalidate?: (() => void) | undefined;
20
20
  disconnectedCallback(): void;
21
21
  connectedCallback(): void;
22
+ lazyLoadSpan?: HTMLSpanElement | undefined;
22
23
  handleLazyLoad(): void;
23
24
  onIntersection(entries: IntersectionObserverEntry[]): void;
24
25
  propertyMap: object;
@@ -5,6 +5,38 @@ import "@supersoniks/concorde/core/components/functional/subscriber/subscriber";
5
5
  import { DirectiveResult } from "lit/directive";
6
6
  import { TemplateContentDirective } from "lit/directives/template-content.js";
7
7
  import { TemplateResult } from "lit";
8
+ /**
9
+ * ### List boucle sur sa propriété "props" et crée des éléments a partir des données en bouclant également sur ses templates.
10
+ *
11
+ * Extends mixins : Fetcher, [Subscriber](./?path=/docs/miscallenous-🔔-subscriber--page)
12
+ *
13
+ * * Si le composant possède un attribut *fetch*, il charge un contenu via un appel d'api web.<br>
14
+ * Voir [fetcher](./?path=/docs/core-components-functional-fetch--basic) pour la configuration des autres attributs.
15
+ * * Chaque élément créé est englobé dans un objet [Subscriber](./?path=/docs/miscallenous-🔔-subscriber--page).<br>
16
+ * Un dataProvider y est associé a l'adresse suivante *dataProvider-de-la-liste$/*index-de-la-ligne-courante*
17
+ * Les données de la ligne sont donc disponible pour les élements internes (subscribers, data-binding)
18
+ * * Lors du chargement un objet loader inline est affiché.
19
+ * * Si le résultat de la requête est un objet, il est imbriqué dans un tableau pour garantir le fonctionnement.<br>
20
+ * Cependant, si l'attribut `extractValues` est présent, les valeurs des propriétés de l'objet sont mises dans dans un tableau pour le rendu.
21
+ * * La propriété _metadata_ est ajoutés à la donnée de chaque item. Elle contient les informations suivantes :
22
+ * * key : l'index de l'item dans la liste
23
+ * * even : true si l'index est pair
24
+ * * odd : true si l'index est impair
25
+ * * onlyChild : true si la liste ne contient qu'un seul item
26
+ * * firstChild : true si l'item est le premier de la liste
27
+ * * lastChild : true si l'item est le dernier de la liste
28
+ * * Si la liste ne contient aucun item, le template "no-item" est utilisé si il est défini.
29
+ * * On peut appler la methode invalidate() sur son publishe pour declencher le rechargement des données
30
+ * *
31
+ */
32
+ export type ListItemMetadata = {
33
+ key?: string;
34
+ even?: boolean;
35
+ odd?: boolean;
36
+ onlyChild?: boolean;
37
+ firstChild?: boolean;
38
+ lastChild?: boolean;
39
+ };
8
40
  declare const List_base: {
9
41
  new (...args: any[]): {
10
42
  api: import("../../../utils/api").default | null;
@@ -24,6 +56,7 @@ declare const List_base: {
24
56
  onInvalidate?: (() => void) | undefined;
25
57
  disconnectedCallback(): void;
26
58
  connectedCallback(): void;
59
+ lazyLoadSpan?: HTMLSpanElement | undefined;
27
60
  handleLazyLoad(): void;
28
61
  onIntersection(entries: IntersectionObserverEntry[]): void;
29
62
  propertyMap: object;
@@ -53,23 +86,6 @@ declare const List_base: {
53
86
  getBoundingClientRect(): DOMRect;
54
87
  };
55
88
  } & (new (...args: any[]) => import("@supersoniks/concorde/core/mixins/Subscriber").SubscriberInterface<import("../../../_types/types").CoreJSType>) & (new (...args: any[]) => import("@supersoniks/concorde/core/mixins/TemplatesContainer").TemplatesContainerInterface) & typeof LitElement;
56
- /**
57
- * ### List boucle sur sa propriété "props" et crée des éléments a partir des données en bouclant également sur ses templates.
58
- *
59
- * Extends mixins : Fetcher, [Subscriber](./?path=/docs/miscallenous-🔔-subscriber--page)
60
- *
61
- * * Si le composant possède un attribut *fetch*, il charge un contenu via un appel d'api web.<br>
62
- * Voir [fetcher](./?path=/docs/core-components-functional-fetch--basic) pour la configuration des autres attributs.
63
- * * Chaque élément créé est englobé dans un objet [Subscriber](./?path=/docs/miscallenous-🔔-subscriber--page).<br>
64
- * Un dataProvider y est associé a l'adresse suivante *dataProvider-de-la-liste$/*index-de-la-ligne-courante*
65
- * Les données de la ligne sont donc disponible pour les élements internes (subscribers, data-binding)
66
- * * Lors du chargement un objet loader inline est affiché.
67
- * * Si le résultat de la requête est un objet, il est imbriqué dans un tableau pour garantir le fonctionnement.<br>
68
- * Cependant, si l'attribut `extractValues` est présent, les valeurs des propriétés de l'objet sont mises dans dans un tableau pour le rendu.
69
- * * La propriété _key_ est ajoutés à la donnée de chaque item. Elle contient l'index dans le cas d'un liste simple ou la clés associée à la valeur si `extractValues` est définit.
70
- * * On peut appler la methode invalidate() sur son publishe pour declencher le rechargement des données
71
- * *
72
- */
73
89
  export declare class List extends List_base {
74
90
  itemPropertyMap?: object;
75
91
  /**
@@ -87,7 +103,6 @@ export declare class List extends List_base {
87
103
  renderNoResultState(): TemplateResult<1>;
88
104
  formatProps(): (import("../../../_types/types").CoreJSType[] & {
89
105
  __value?: import("../../../_types/types").CoreJSType | undefined;
90
- _key_?: number | undefined;
91
106
  } & {
92
107
  _sonic_http_response_?: Response | undefined;
93
108
  text?: string | undefined;
@@ -14,23 +14,6 @@ import "@supersoniks/concorde/core/components/functional/subscriber/subscriber";
14
14
  import Objects from "@supersoniks/concorde/core/utils/Objects";
15
15
  import TemplatesContainer from "@supersoniks/concorde/core/mixins/TemplatesContainer";
16
16
  const tagName = "sonic-list";
17
- /**
18
- * ### List boucle sur sa propriété "props" et crée des éléments a partir des données en bouclant également sur ses templates.
19
- *
20
- * Extends mixins : Fetcher, [Subscriber](./?path=/docs/miscallenous-🔔-subscriber--page)
21
- *
22
- * * Si le composant possède un attribut *fetch*, il charge un contenu via un appel d'api web.<br>
23
- * Voir [fetcher](./?path=/docs/core-components-functional-fetch--basic) pour la configuration des autres attributs.
24
- * * Chaque élément créé est englobé dans un objet [Subscriber](./?path=/docs/miscallenous-🔔-subscriber--page).<br>
25
- * Un dataProvider y est associé a l'adresse suivante *dataProvider-de-la-liste$/*index-de-la-ligne-courante*
26
- * Les données de la ligne sont donc disponible pour les élements internes (subscribers, data-binding)
27
- * * Lors du chargement un objet loader inline est affiché.
28
- * * Si le résultat de la requête est un objet, il est imbriqué dans un tableau pour garantir le fonctionnement.<br>
29
- * Cependant, si l'attribut `extractValues` est présent, les valeurs des propriétés de l'objet sont mises dans dans un tableau pour le rendu.
30
- * * La propriété _key_ est ajoutés à la donnée de chaque item. Elle contient l'index dans le cas d'un liste simple ou la clés associée à la valeur si `extractValues` est définit.
31
- * * On peut appler la methode invalidate() sur son publishe pour declencher le rechargement des données
32
- * *
33
- */
34
17
  let List = class List extends Fetcher(Subscriber(TemplatesContainer(LitElement))) {
35
18
  constructor() {
36
19
  super(...arguments);
@@ -155,10 +138,17 @@ let List = class List extends Fetcher(Subscriber(TemplatesContainer(LitElement))
155
138
  return nothing;
156
139
  if (typeof key != "string" && typeof key != "number")
157
140
  return nothing;
158
- const pub = this.publisher[key];
159
- pub._key_ = key + "";
141
+ const isLastChild = index >= length - 1;
142
+ const indexMod2 = index % 2;
143
+ const childPublisher = this.publisher[key];
144
+ /**
145
+ * Ajout de metatdonnées au publisher de l'enfant
146
+ */
147
+ //La prop key est gardée pour le moment pour compatibilité
148
+ //TODO : supprimer la prop key cquand c'est ok côté covoit.
149
+ childPublisher._key_ = key + "";
150
+ childPublisher._metadata_ = Object.assign(Object.assign({}, childPublisher._metadata_.get()), { key: key, even: indexMod2 == 0, odd: indexMod2 == 1, onlyChild: length == 1, firstChild: index == 0, lastChild: isLastChild });
160
151
  counter++;
161
- const isNotLast = index < length - 1;
162
152
  if (templatePart)
163
153
  counter = -1;
164
154
  return (item &&
@@ -166,7 +156,7 @@ let List = class List extends Fetcher(Subscriber(TemplatesContainer(LitElement))
166
156
  <sonic-subscriber
167
157
  ?debug=${this.defferedDebug === true}
168
158
  .bindPublisher=${function () {
169
- return pub;
159
+ return childPublisher;
170
160
  }}
171
161
  .propertyMap?=${this.itemPropertyMap}
172
162
  dataProvider="${this.dataProvider}/list-item/${key}"
@@ -175,7 +165,7 @@ let List = class List extends Fetcher(Subscriber(TemplatesContainer(LitElement))
175
165
  ? templateContent(templatePart)
176
166
  : templateContent(this.templateList[counter % templateCount])}
177
167
  </sonic-subscriber>
178
- ${separator && isNotLast ? templateContent(separator) : nothing}
168
+ ${separator && !isLastChild ? templateContent(separator) : nothing}
179
169
  `);
180
170
  })}
181
171
  `;
@@ -3,7 +3,6 @@ import "@supersoniks/concorde/core/components/functional/list/list";
3
3
  import { PublisherProxy } from "@supersoniks/concorde/core/utils/PublisherProxy";
4
4
  type QueueItem = {
5
5
  id: string;
6
- endPoint: string;
7
6
  dataProvider: string;
8
7
  offset: number;
9
8
  limit: number;
@@ -38,7 +37,6 @@ export default class Queue extends Queue_base {
38
37
  filteredFields: string;
39
38
  disconnectedCallback(): void;
40
39
  static instanceCounter: number;
41
- instanceId: number;
42
40
  localStorage: string;
43
41
  connectedCallback(): Promise<void>;
44
42
  filterPublisher: PublisherProxy | null;
@@ -52,7 +52,6 @@ let Queue = Queue_1 = class Queue extends Subscriber(LitElement, {}) {
52
52
  this.resultCount = 0;
53
53
  this.noLazyload = false;
54
54
  this.filteredFields = "";
55
- this.instanceId = 0;
56
55
  this.localStorage = "disabled";
57
56
  this.filterPublisher = null;
58
57
  this.searchHash = "";
@@ -82,7 +81,6 @@ let Queue = Queue_1 = class Queue extends Subscriber(LitElement, {}) {
82
81
  connectedCallback: { get: () => super.connectedCallback }
83
82
  });
84
83
  return __awaiter(this, void 0, void 0, function* () {
85
- this.instanceId = Queue_1.instanceCounter++;
86
84
  this.localStorage = this.getAttribute("localStorage") || this.localStorage;
87
85
  this.removeAttribute("localStorage");
88
86
  this.noShadowDom = "";
@@ -91,14 +89,9 @@ let Queue = Queue_1 = class Queue extends Subscriber(LitElement, {}) {
91
89
  if (!this.dataProvider)
92
90
  this.dataProvider =
93
91
  this.dataProviderExpression ||
94
- "sonic-queue-" +
95
- this.instanceId +
96
- "-" +
97
- Math.random().toString(36).substring(7);
92
+ "sonic-queue-" + Queue_1.instanceCounter++ + "-" + Math.random().toString(36).substring(7);
98
93
  if (!this.dataProviderExpression) {
99
- this.dataProviderExpression =
100
- HTML.getAncestorAttributeValue(this.parentElement, "dataProvider") ||
101
- "";
94
+ this.dataProviderExpression = HTML.getAncestorAttributeValue(this.parentElement, "dataProvider") || "";
102
95
  }
103
96
  _super.connectedCallback.call(this);
104
97
  this.key = this.getAttribute("key");
@@ -116,8 +109,7 @@ let Queue = Queue_1 = class Queue extends Subscriber(LitElement, {}) {
116
109
  this.next();
117
110
  return;
118
111
  }
119
- this.filterPublisher =
120
- PublisherManager.getInstance().get(dataFilterProvider);
112
+ this.filterPublisher = PublisherManager.getInstance().get(dataFilterProvider);
121
113
  (_a = this.filterPublisher) === null || _a === void 0 ? void 0 : _a.onInternalMutation(() => {
122
114
  this.updateFilteredContent();
123
115
  });
@@ -137,9 +129,7 @@ let Queue = Queue_1 = class Queue extends Subscriber(LitElement, {}) {
137
129
  let value = filterData[f];
138
130
  if (Array.isArray(value))
139
131
  value = value.filter((v) => v !== null);
140
- if ((this.filteredFields && !filteredFieldsArray.includes(f)) ||
141
- value == null ||
142
- value.toString() === "")
132
+ if ((this.filteredFields && !filteredFieldsArray.includes(f)) || value == null || value.toString() === "")
143
133
  continue;
144
134
  searchParams.set(f, filterData[f].toString());
145
135
  }
@@ -179,7 +169,6 @@ let Queue = Queue_1 = class Queue extends Subscriber(LitElement, {}) {
179
169
  * Un ne repasse donc à 0 qu'à partir du premier chargement.
180
170
  * */
181
171
  if (!this.nextHadEvent && e) {
182
- this.publisher.resultCount = 0;
183
172
  this.resultCount = 0;
184
173
  }
185
174
  this.nextHadEvent = !!e;
@@ -187,9 +176,7 @@ let Queue = Queue_1 = class Queue extends Subscriber(LitElement, {}) {
187
176
  if (e.detail.requestId < this.requestId)
188
177
  return;
189
178
  this.resultCount += e.detail.props.length;
190
- if (!e.detail.isFirstLoad ||
191
- !e.detail.props.length ||
192
- this.dataProviderExpression.indexOf("$offset") == -1) {
179
+ if (!e.detail.isFirstLoad || !e.detail.props.length || this.dataProviderExpression.indexOf("$offset") == -1) {
193
180
  this.publisher.resultCount = this.resultCount;
194
181
  return;
195
182
  }
@@ -202,8 +189,7 @@ let Queue = Queue_1 = class Queue extends Subscriber(LitElement, {}) {
202
189
  else {
203
190
  const props = this.props;
204
191
  const item = props[props.length - 1];
205
- offset =
206
- parseInt(item.offset.toString()) + parseInt(item.limit.toString());
192
+ offset = parseInt(item.offset.toString()) + parseInt(item.limit.toString());
207
193
  }
208
194
  if (requestDuration > 0 && e && !this.localStorage)
209
195
  this.limit = Math.round((this.limit / requestDuration) * this.targetRequestDuration);
@@ -211,18 +197,14 @@ let Queue = Queue_1 = class Queue extends Subscriber(LitElement, {}) {
211
197
  this.limit = 1;
212
198
  if (this.limit > 15)
213
199
  this.limit = 15;
214
- let dataProvider = this.dataProviderExpression
215
- .replace("$offset", offset + "")
216
- .replace("$limit", this.limit + "");
200
+ let dataProvider = this.dataProviderExpression.replace("$offset", offset + "").replace("$limit", this.limit + "");
217
201
  const split = dataProvider.split("?");
218
202
  const endpoint = split.shift();
219
203
  const searchParams = new URLSearchParams(split.join("?"));
220
204
  const filterData = (_a = this.filterPublisher) === null || _a === void 0 ? void 0 : _a.get();
221
205
  const filteredFieldsArray = this.filteredFields.split(" ");
222
206
  for (const f in filterData) {
223
- if ((this.filteredFields && filteredFieldsArray.includes(f)) ||
224
- filterData[f] == null ||
225
- filterData[f] == "")
207
+ if ((this.filteredFields && !filteredFieldsArray.includes(f)) || filterData[f] == null)
226
208
  continue;
227
209
  searchParams.set(f, filterData[f]);
228
210
  }
@@ -235,8 +217,7 @@ let Queue = Queue_1 = class Queue extends Subscriber(LitElement, {}) {
235
217
  ...this.props,
236
218
  {
237
219
  id: searchParams.toString() + "/" + this.props.length,
238
- dataProvider: dataProvider + "_item_from_queue_" + this.instanceId,
239
- endPoint: dataProvider,
220
+ dataProvider: dataProvider,
240
221
  offset: offset,
241
222
  limit: this.limit,
242
223
  },
@@ -258,23 +239,17 @@ let Queue = Queue_1 = class Queue extends Subscriber(LitElement, {}) {
258
239
  // }
259
240
  if (!Array.isArray(this.props))
260
241
  return nothing;
261
- let lazyload = !this.noLazyload;
262
- if (this.props.length == 1) {
263
- lazyload = false;
264
- }
265
242
  return html `
266
243
  ${map(this.props, (item, index) => {
267
244
  var _a;
268
- const templates = index == 0
269
- ? this.templates
270
- : (_a = this.templates) === null || _a === void 0 ? void 0 : _a.filter((elt) => elt.getAttribute("data-value") != "no-item");
245
+ const templates = index == 0 ? this.templates : (_a = this.templates) === null || _a === void 0 ? void 0 : _a.filter((elt) => elt.getAttribute("data-value") != "no-item");
271
246
  return html `
272
247
  <sonic-list
273
248
  fetch
274
249
  cache=${this.cache}
275
250
  displayContents
276
251
  lazyBoundsRatio=${this.lazyBoundsRatio}
277
- ?lazyload=${lazyload}
252
+ ?lazyload=${!this.noLazyload}
278
253
  localStorage=${this.localStorage}
279
254
  requestId=${this.requestId}
280
255
  .itemPropertyMap=${this.itemPropertyMap}
@@ -283,7 +258,6 @@ let Queue = Queue_1 = class Queue extends Subscriber(LitElement, {}) {
283
258
  key=${this.key}
284
259
  @loading=${this.resetDuration}
285
260
  dataProvider="${item.dataProvider}"
286
- endPoint="${item.endPoint}"
287
261
  idKey=${this.idKey}
288
262
  .templates=${templates}
289
263
  >
@@ -19,6 +19,7 @@ declare const SonicSDUI_base: {
19
19
  onInvalidate?: (() => void) | undefined;
20
20
  disconnectedCallback(): void;
21
21
  connectedCallback(): void;
22
+ lazyLoadSpan?: HTMLSpanElement | undefined;
22
23
  handleLazyLoad(): void;
23
24
  onIntersection(entries: IntersectionObserverEntry[]): void;
24
25
  propertyMap: object;
@@ -60,9 +61,6 @@ declare const SonicSDUI_base: {
60
61
  * Son format est décrit par le type SDUITransformDescription
61
62
  *
62
63
  * * Si le résultat de la requête est un objet, il est imbriqué dans un tableau pour garantir le fonctionnement.<br>
63
- * Cependant, si l'attribut `extractValues` est présent, les valeurs des propriétés de l'objet sont mises dans dans un tableau pour le rendu.
64
- * * La propriété _key_ est ajoutés à la donnée de chaque item. Elle contient l'index dans le cas d'un liste simple ou la clés associée à la valeur si `extractValues` est définit.
65
- * * On peut appler la methode invalidate() sur son publishe pour declencher le rechargement des données
66
64
  * *
67
65
  */
68
66
  export declare class SonicSDUI extends SonicSDUI_base {
@@ -32,9 +32,6 @@ const tagName = "sonic-sdui"; // For Astro.build
32
32
  * Son format est décrit par le type SDUITransformDescription
33
33
  *
34
34
  * * Si le résultat de la requête est un objet, il est imbriqué dans un tableau pour garantir le fonctionnement.<br>
35
- * Cependant, si l'attribut `extractValues` est présent, les valeurs des propriétés de l'objet sont mises dans dans un tableau pour le rendu.
36
- * * La propriété _key_ est ajoutés à la donnée de chaque item. Elle contient l'index dans le cas d'un liste simple ou la clés associée à la valeur si `extractValues` est définit.
37
- * * On peut appler la methode invalidate() sur son publishe pour declencher le rechargement des données
38
35
  * *
39
36
  */
40
37
  let SonicSDUI = class SonicSDUI extends Fetcher(Subscriber(LitElement)) {
@@ -1,8 +1,8 @@
1
1
  import { css } from "lit";
2
2
  export const typeColor = css `
3
- :host{
4
- --sc-color:inherit;
5
- color:var(--sc-color);
3
+ :host {
4
+ --sc-color: inherit;
5
+ color: var(--sc-color);
6
6
  }
7
7
 
8
8
  :host([type="primary"]) {
@@ -21,16 +21,16 @@ export const typeColor = css `
21
21
  --sc-color: var(--sc-success);
22
22
  }
23
23
 
24
- .inherit-color{
25
- color:var(--sc-color);
24
+ .inherit-color {
25
+ color: var(--sc-color);
26
26
  }
27
27
  `;
28
28
  export const typesBg = css `
29
- :host{
30
- --sc-color:inherit;
31
- --sc-bg:inherit;
32
- color:var(--sc-color);
33
- background:var(--sc-bg);
29
+ :host {
30
+ --sc-color: inherit;
31
+ --sc-bg: inherit;
32
+ color: var(--sc-color);
33
+ background: var(--sc-bg);
34
34
  }
35
35
 
36
36
  :host([type="primary"]) {
@@ -54,7 +54,7 @@ export const typesBg = css `
54
54
  --sc-bg: var(--sc-success);
55
55
  }
56
56
 
57
- .inherit-bg{
58
- color:inherit;
57
+ .inherit-bg {
58
+ color: inherit;
59
59
  }
60
60
  `;
@@ -151,6 +151,7 @@ export declare class Button extends Button_base {
151
151
  private _location;
152
152
  get location(): string;
153
153
  set location(value: string);
154
+ updated(changedProperties: Map<string | number | symbol, unknown>): void;
154
155
  render(): import("lit-html").TemplateResult<1>;
155
156
  onSlotChange(): void;
156
157
  }
@@ -6,7 +6,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
6
6
  };
7
7
  import LocationHandler from "@supersoniks/concorde/core/utils/LocationHandler";
8
8
  import { html, LitElement, css } from "lit";
9
- import { customElement, property, queryAssignedElements, state } from "lit/decorators.js";
9
+ import { customElement, property, queryAssignedElements, state, } from "lit/decorators.js";
10
10
  import { styleMap } from "lit/directives/style-map.js";
11
11
  import FormElement from "@supersoniks/concorde/core/mixins/FormElement";
12
12
  import FormCheckable from "@supersoniks/concorde/core/mixins/FormCheckable";
@@ -88,7 +88,6 @@ let Button = class Button extends FormCheckable(FormElement(Subscriber(LitElemen
88
88
  this._href = value;
89
89
  if (this.href && this.href.indexOf("http") != 0) {
90
90
  LocationHandler.onChange(this);
91
- this.location = document.location.href.replace(document.location.origin, "");
92
91
  }
93
92
  else
94
93
  LocationHandler.offChange(this);
@@ -113,7 +112,9 @@ let Button = class Button extends FormCheckable(FormElement(Subscriber(LitElemen
113
112
  * On on veut pouvoir rest un autre form que celui qui contient le bouton
114
113
  */
115
114
  const resetDataProvider = this.getAttribute("reset");
116
- const formPublisher = resetDataProvider ? PublisherManager.get(resetDataProvider) : this.getFormPublisher();
115
+ const formPublisher = resetDataProvider
116
+ ? PublisherManager.get(resetDataProvider)
117
+ : this.getFormPublisher();
117
118
  if (formPublisher)
118
119
  formPublisher.set({});
119
120
  }
@@ -141,7 +142,14 @@ let Button = class Button extends FormCheckable(FormElement(Subscriber(LitElemen
141
142
  }
142
143
  set location(value) {
143
144
  this._location = value;
144
- LocationHandler.updateComponentActiveState(this);
145
+ this.requestUpdate();
146
+ }
147
+ updated(changedProperties) {
148
+ if (changedProperties.has("location") ||
149
+ changedProperties.has("href") ||
150
+ changedProperties.has("autoActive")) {
151
+ LocationHandler.updateComponentActiveState(this);
152
+ }
145
153
  }
146
154
  render() {
147
155
  const btnStyles = {
@@ -160,10 +168,20 @@ let Button = class Button extends FormCheckable(FormElement(Subscriber(LitElemen
160
168
  aria-labelledby=${ifDefined(this.ariaLabelledby)}
161
169
  @click=${this.handleChange}
162
170
  >
163
- <slot @slotchange=${this.onSlotChange} part="prefix" name="prefix"></slot>
171
+ <slot
172
+ @slotchange=${this.onSlotChange}
173
+ part="prefix"
174
+ name="prefix"
175
+ ></slot>
164
176
  <slot part="main" class="main-slot"></slot>
165
- <slot @slotchange=${this.onSlotChange} part="suffix" name="suffix"></slot>
166
- ${this.loading == true ? html `<sonic-icon name="loader" class="loader"></sonic-icon>` : ""}
177
+ <slot
178
+ @slotchange=${this.onSlotChange}
179
+ part="suffix"
180
+ name="suffix"
181
+ ></slot>
182
+ ${this.loading == true
183
+ ? html `<sonic-icon name="loader" class="loader"></sonic-icon>`
184
+ : ""}
167
185
  </button>
168
186
  `;
169
187
  return this.href
@@ -172,7 +190,9 @@ let Button = class Button extends FormCheckable(FormElement(Subscriber(LitElemen
172
190
  target=${ifDefined(this.target)}
173
191
  aria-label=${ifDefined(this.ariaLabel)}
174
192
  aria-labelledby=${ifDefined(this.ariaLabelledby)}
175
- @click=${this.pushState || this.goBack !== null ? this.handleNavigation : null}
193
+ @click=${this.pushState || this.goBack !== null
194
+ ? this.handleNavigation
195
+ : null}
176
196
  >${btn}</a
177
197
  >`
178
198
  : html `${btn}`;
@@ -205,7 +225,10 @@ Button.styles = [
205
225
  --sc-btn-border-width: var(--sc-form-border-width);
206
226
  --sc-btn-border-color: transparent;
207
227
 
208
- --btn-outline-bg-hover: var(--sc-btn-outline-bg-hover, var(--sc-base-100));
228
+ --btn-outline-bg-hover: var(
229
+ --sc-btn-outline-bg-hover,
230
+ var(--sc-base-100)
231
+ );
209
232
  --sc-btn-ghost-bg-hover: var(--sc-base-100);
210
233
 
211
234
  --sc-btn-active-color: var(--sc-base);
@@ -243,8 +266,8 @@ Button.styles = [
243
266
  cursor: pointer;
244
267
  text-align: center;
245
268
  line-height: 1.1;
246
- border-radius: var(--sc-item-rounded-tl) var(--sc-item-rounded-tr) var(--sc-item-rounded-br)
247
- var(--sc-item-rounded-bl);
269
+ border-radius: var(--sc-item-rounded-tl) var(--sc-item-rounded-tr)
270
+ var(--sc-item-rounded-br) var(--sc-item-rounded-bl);
248
271
 
249
272
  background: var(--btn-bg);
250
273
  color: var(--btn-color);
@@ -254,7 +277,8 @@ Button.styles = [
254
277
  padding-left: var(--sc-btn-px);
255
278
  padding-right: var(--sc-btn-px);
256
279
 
257
- border: var(--sc-btn-border-width) var(--sc-btn-border-style) var(--sc-btn-border-color);
280
+ border: var(--sc-btn-border-width) var(--sc-btn-border-style)
281
+ var(--sc-btn-border-color);
258
282
  min-height: var(--sc-btn-height);
259
283
  }
260
284
 
@@ -471,6 +495,7 @@ Button.styles = [
471
495
  /*BOUTON Avec icone seulement*/
472
496
  :host([icon]) ::slotted(sonic-icon) {
473
497
  font-size: 1.2em;
498
+ vertical-align: middle;
474
499
  }
475
500
 
476
501
  /*Tooltip ne joue pas sur le layout*/
@@ -92,7 +92,6 @@ export declare class Input extends Input_base {
92
92
  connectedCallback(): void;
93
93
  disconnectedCallback(): void;
94
94
  willUpdate(changedProperties: PropertyValues): void;
95
- setSelectionRange(start: number, end: number): void;
96
95
  hasSlotOrProps(): void;
97
96
  inlineContentFocus(): void;
98
97
  changeTimeoutId?: ReturnType<typeof setTimeout>;
@@ -5,7 +5,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
5
5
  return c > 3 && r && Object.defineProperty(target, key, r), r;
6
6
  };
7
7
  import { html, LitElement, css } from "lit";
8
- import { customElement, property, queryAssignedNodes, state, } from "lit/decorators.js";
8
+ import { customElement, property, queryAssignedNodes, state } from "lit/decorators.js";
9
9
  import { query } from "lit/decorators/query.js";
10
10
  import { ifDefined } from "lit/directives/if-defined.js";
11
11
  import { formControl, label, description, passwordToggle, } from "@supersoniks/concorde/core/components/ui/form/css/form-control";
@@ -69,14 +69,10 @@ let Input = class Input extends FormInput(FormElement(Subscriber(LitElement))) {
69
69
  this.hasSlotOrProps();
70
70
  super.willUpdate(changedProperties);
71
71
  }
72
- setSelectionRange(start, end) {
73
- this.input.setSelectionRange(start, end);
74
- }
75
72
  hasSlotOrProps() {
76
73
  var _a, _b, _c, _d;
77
74
  this.hasLabel = this.label || ((_a = this.slotLabelNodes) === null || _a === void 0 ? void 0 : _a.length) ? true : false;
78
- this.hasDescription =
79
- this.description || ((_b = this.slotDescriptionNodes) === null || _b === void 0 ? void 0 : _b.length) ? true : false;
75
+ this.hasDescription = this.description || ((_b = this.slotDescriptionNodes) === null || _b === void 0 ? void 0 : _b.length) ? true : false;
80
76
  this.hasSuffix = ((_c = this.slotSuffixNodes) === null || _c === void 0 ? void 0 : _c.length) ? true : false;
81
77
  this.hasPrefix = ((_d = this.slotPrefixNodes) === null || _d === void 0 ? void 0 : _d.length) ? true : false;
82
78
  }
@@ -156,10 +152,7 @@ let Input = class Input extends FormInput(FormElement(Subscriber(LitElement))) {
156
152
  aria-label="Toggle password visibility"
157
153
  variant="unstyled"
158
154
  >
159
- <sonic-icon
160
- library="heroicons"
161
- name=${this.isPassword ? "eye" : "eye-slash"}
162
- ></sonic-icon>
155
+ <sonic-icon library="heroicons" name=${this.isPassword ? "eye" : "eye-slash"}></sonic-icon>
163
156
  </sonic-button>`
164
157
  : ""}
165
158
  <slot name="suffix" @slotchange=${this.hasSlotOrProps}></slot>