@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.
- package/README.md +0 -0
- package/cli.js +0 -0
- package/concorde-core.bundle.js +20 -22
- package/concorde-core.es.js +777 -955
- package/concorde-customer.bundle.js +129 -0
- package/concorde-customer.es.js +22004 -0
- package/core/_types/types.d.ts +0 -1
- package/core/components/functional/date/date.js +15 -7
- package/core/components/functional/fetch/fetch.d.ts +1 -0
- package/core/components/functional/list/list.d.ts +33 -18
- package/core/components/functional/list/list.js +12 -22
- package/core/components/functional/queue/queue.d.ts +0 -2
- package/core/components/functional/queue/queue.js +11 -37
- package/core/components/functional/sdui/sdui.d.ts +1 -3
- package/core/components/functional/sdui/sdui.js +0 -3
- package/core/components/ui/_css/type.js +12 -12
- package/core/components/ui/button/button.d.ts +1 -0
- package/core/components/ui/button/button.js +37 -12
- package/core/components/ui/form/input/input.d.ts +0 -1
- package/core/components/ui/form/input/input.js +3 -10
- package/core/components/ui/form/input-autocomplete/input-autocomplete.d.ts +13 -93
- package/core/components/ui/form/input-autocomplete/input-autocomplete.js +52 -181
- package/core/components/ui/image/image.d.ts +2 -0
- package/core/components/ui/image/image.js +28 -0
- package/core/components/ui/pop/pop.js +6 -17
- package/core/components/ui/theme/css/tailwind.css +0 -0
- package/core/components/ui/theme/css/tailwind.d.ts +0 -0
- package/core/components/ui/theme/theme.js +8 -6
- package/core/components/ui/toast/toast.d.ts +1 -1
- package/core/components/ui/toast/types.d.ts +1 -1
- package/core/components/ui/ui.d.ts +0 -1
- package/core/components/ui/ui.js +0 -1
- package/core/mixins/Fetcher.d.ts +1 -0
- package/core/mixins/Fetcher.js +9 -10
- package/core/mixins/FormElement.d.ts +0 -1
- package/core/mixins/FormElement.js +2 -6
- package/core/utils/LocationHandler.js +9 -3
- package/core/utils/PublisherProxy.d.ts +0 -1
- package/core/utils/PublisherProxy.js +0 -1
- package/img/concorde-logo.svg +0 -0
- package/img/concorde.png +0 -0
- package/img/concorde_def.png +0 -0
- package/mixins.d.ts +1 -0
- package/package.json +1 -1
- package/svg/regular/plane.svg +0 -0
- package/svg/solid/plane.svg +0 -0
package/core/_types/types.d.ts
CHANGED
|
@@ -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
|
|
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" &&
|
|
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({
|
|
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
|
|
159
|
-
|
|
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
|
|
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 &&
|
|
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
|
|
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=${
|
|
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
|
|
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
|
-
|
|
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
|
|
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
|
|
166
|
-
|
|
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
|
|
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(
|
|
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)
|
|
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)
|
|
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
|
|
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>
|