@supersoniks/concorde 1.1.23 → 1.1.25
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 +25 -31
- package/concorde-core.es.js +25 -31
- package/core/components/functional/configuration/configuration.js +2 -1
- package/core/components/functional/date/date.js +2 -1
- package/core/components/functional/example/example.js +2 -1
- package/core/components/functional/fetch/fetch.d.ts +0 -31
- package/core/components/functional/fetch/fetch.js +3 -2
- package/core/components/functional/if/if.d.ts +0 -3
- package/core/components/functional/if/if.js +3 -2
- package/core/components/functional/list/list.d.ts +0 -17
- package/core/components/functional/list/list.js +4 -3
- package/core/components/functional/queue/queue.d.ts +1 -8
- package/core/components/functional/queue/queue.js +10 -2
- package/core/components/functional/router/redirect.d.ts +0 -9
- package/core/components/functional/router/redirect.js +3 -2
- package/core/components/functional/router/router.d.ts +0 -14
- package/core/components/functional/router/router.js +3 -2
- package/core/components/functional/sonic-scope/sonic-scope.js +2 -1
- package/core/components/functional/states/states.d.ts +0 -15
- package/core/components/functional/states/states.js +3 -2
- package/core/components/functional/submit/submit.d.ts +0 -11
- package/core/components/functional/submit/submit.js +3 -2
- package/core/components/functional/subscriber/subscriber.d.ts +0 -3
- package/core/components/functional/subscriber/subscriber.js +3 -2
- package/core/components/ui/alert/alert.js +11 -11
- package/core/components/ui/badge/badge.js +3 -2
- package/core/components/ui/button/button.d.ts +4 -8
- package/core/components/ui/button/button.js +16 -9
- package/core/components/ui/card/card-footer.js +7 -1
- package/core/components/ui/card/card-header-descripton.js +6 -1
- package/core/components/ui/card/card-header.js +7 -1
- package/core/components/ui/card/card-main.js +7 -1
- package/core/components/ui/card/card.js +7 -1
- package/core/components/ui/divider/divider.js +2 -1
- package/core/components/ui/form/checkbox/checkbox.d.ts +1 -20
- package/core/components/ui/form/checkbox/checkbox.js +4 -3
- package/core/components/ui/form/fieldset/fieldset.js +5 -3
- package/core/components/ui/form/fieldset/legend.d.ts +3 -2
- package/core/components/ui/form/fieldset/legend.js +24 -15
- package/core/components/ui/form/form-actions/form-actions.d.ts +5 -0
- package/core/components/ui/form/{form-layout → form-actions}/form-actions.js +13 -5
- package/core/components/ui/form/form-layout/form-layout.js +3 -2
- package/core/components/ui/form/input/input.d.ts +3 -10
- package/core/components/ui/form/input/input.js +3 -2
- package/core/components/ui/form/radio/radio.d.ts +0 -6
- package/core/components/ui/form/radio/radio.js +3 -2
- package/core/components/ui/form/select/select.d.ts +0 -7
- package/core/components/ui/form/select/select.js +4 -3
- package/core/components/ui/form/textarea/textarea.js +7 -1
- package/core/components/ui/group/group.js +3 -2
- package/core/components/ui/icon/icon.d.ts +0 -4
- package/core/components/ui/icon/icon.js +9 -5
- package/core/components/ui/icon/icons.js +43 -17
- package/core/components/ui/icon/icons.json +1 -1
- package/core/components/ui/image/image.js +3 -2
- package/core/components/ui/link/link.js +6 -1
- package/core/components/ui/loader/loader.js +3 -2
- package/core/components/ui/menu/menu-item.js +5 -4
- package/core/components/ui/menu/menu.d.ts +2 -1
- package/core/components/ui/menu/menu.js +18 -13
- package/core/components/ui/modal/modal-actions.js +3 -2
- package/core/components/ui/modal/modal-close.js +4 -3
- package/core/components/ui/modal/modal-content.js +3 -2
- package/core/components/ui/modal/modal-subtitle.js +3 -2
- package/core/components/ui/modal/modal-title.js +3 -2
- package/core/components/ui/modal/modal.js +5 -4
- package/core/components/ui/pop/pop.js +3 -2
- package/core/components/ui/progress/progress.js +29 -7
- package/core/components/ui/table/table-caption.js +20 -2
- package/core/components/ui/table/table-tbody.js +8 -2
- package/core/components/ui/table/table-td.d.ts +3 -2
- package/core/components/ui/table/table-td.js +19 -11
- package/core/components/ui/table/table-tfoot.js +7 -1
- package/core/components/ui/table/table-th.d.ts +3 -1
- package/core/components/ui/table/table-th.js +27 -13
- package/core/components/ui/table/table-thead.js +8 -2
- package/core/components/ui/table/table-tr.js +7 -1
- package/core/components/ui/table/table.js +15 -2
- package/core/components/ui/tabs/tabs.js +2 -3
- package/core/components/ui/taxonomy/taxonomy.js +2 -1
- 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-collection/core-variables.js +9 -8
- package/core/components/ui/theme/theme-collection/dark.js +0 -4
- package/core/components/ui/theme/theme-collection/light.js +0 -1
- package/core/components/ui/theme/theme.d.ts +0 -1
- package/core/components/ui/theme/theme.js +3 -6
- package/core/components/ui/toast/message-subscriber.js +2 -1
- package/core/components/ui/toast/toast-item.d.ts +1 -0
- package/core/components/ui/toast/toast-item.js +61 -31
- package/core/components/ui/toast/toast.js +7 -6
- package/core/components/ui/tooltip/tooltip.js +7 -1
- package/core/components/ui/ui.d.ts +1 -0
- package/core/components/ui/ui.js +1 -0
- package/core/mixins/FormCheckable.d.ts +1 -0
- package/core/mixins/FormCheckable.js +12 -0
- package/mixins.d.ts +1 -0
- package/package.json +3 -3
- package/core/components/ui/form/form-layout/form-actions.d.ts +0 -6
|
@@ -6,6 +6,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
6
6
|
};
|
|
7
7
|
import { html, LitElement } from "lit";
|
|
8
8
|
import { customElement } from "lit/decorators.js";
|
|
9
|
+
const tagName = "sonic-radio";
|
|
9
10
|
let SonicConfiguration = class SonicConfiguration extends LitElement {
|
|
10
11
|
constructor() {
|
|
11
12
|
super(...arguments);
|
|
@@ -16,6 +17,6 @@ let SonicConfiguration = class SonicConfiguration extends LitElement {
|
|
|
16
17
|
}
|
|
17
18
|
};
|
|
18
19
|
SonicConfiguration = __decorate([
|
|
19
|
-
customElement(
|
|
20
|
+
customElement(tagName)
|
|
20
21
|
], SonicConfiguration);
|
|
21
22
|
export { SonicConfiguration };
|
|
@@ -10,6 +10,7 @@ import Subscriber from "@supersoniks/concorde/core/mixins/Subscriber";
|
|
|
10
10
|
import HTML from "@supersoniks/concorde/core/utils/HTML";
|
|
11
11
|
import Format from "@supersoniks/concorde/core/utils/Format";
|
|
12
12
|
import TemplatesContainer from "@supersoniks/concorde/core/mixins/TemplatesContainer";
|
|
13
|
+
const tagName = "sonic-date";
|
|
13
14
|
let SonicDate = class SonicDate extends Subscriber(TemplatesContainer(LitElement)) {
|
|
14
15
|
constructor() {
|
|
15
16
|
super(...arguments);
|
|
@@ -189,6 +190,6 @@ __decorate([
|
|
|
189
190
|
property({ type: Boolean })
|
|
190
191
|
], SonicDate.prototype, "renderIf", void 0);
|
|
191
192
|
SonicDate = __decorate([
|
|
192
|
-
customElement(
|
|
193
|
+
customElement(tagName)
|
|
193
194
|
], SonicDate);
|
|
194
195
|
export { SonicDate };
|
|
@@ -7,6 +7,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
7
7
|
import { html, LitElement } from "lit";
|
|
8
8
|
import { customElement, property } from "lit/decorators.js";
|
|
9
9
|
import Subscriber from "@supersoniks/concorde/core/mixins/Subscriber";
|
|
10
|
+
const tagName = "sonic-example"; // For Astro.build
|
|
10
11
|
let SonicComponent = class SonicComponent extends Subscriber(LitElement) {
|
|
11
12
|
constructor() {
|
|
12
13
|
super(...arguments);
|
|
@@ -20,6 +21,6 @@ __decorate([
|
|
|
20
21
|
property()
|
|
21
22
|
], SonicComponent.prototype, "text", void 0);
|
|
22
23
|
SonicComponent = __decorate([
|
|
23
|
-
customElement(
|
|
24
|
+
customElement(tagName)
|
|
24
25
|
], SonicComponent);
|
|
25
26
|
export { SonicComponent };
|
|
@@ -38,37 +38,6 @@ declare const Fetch_base: {
|
|
|
38
38
|
hasAttribute(attributeName: String): boolean;
|
|
39
39
|
};
|
|
40
40
|
} & (new (...args: any[]) => import("@supersoniks/concorde/core/mixins/Subscriber").SubscriberInterface) & typeof LitElement;
|
|
41
|
-
/**
|
|
42
|
-
* ###Fetch charge un contenu via un appel d'api web.
|
|
43
|
-
* Extends mixins : Fetcher, [Subscriber](./?path=/docs/miscallenous-🔔-subscriber--page)
|
|
44
|
-
*
|
|
45
|
-
* #### Configuration via les attributs
|
|
46
|
-
*
|
|
47
|
-
* | nom | sur quelle balise | Description | Exemple de valeur | défaut / requis |
|
|
48
|
-
* | -------------------------------------------------------------------------------------- |
|
|
49
|
-
* | serviceURL |Fetcher ou un de ses parents | URL de base des services. | http://la-billetterie.net/api/v2 | domain du site |
|
|
50
|
-
* | endpoint |Fetcher | point d'accès d'un service | user/2 | valeur de l'attribut dataProvider |
|
|
51
|
-
* | dataProvider |Fetcher ou un de ses parents | Identifiant d'un publisher qui stock les données, voir [subscriber](./?path=/docs/miscallenous-🔔-subscriber--page). | billetterie/user/2 | *REQUIS* |
|
|
52
|
-
* | key |Fetcher | extrait une sous propriété de la donnée chargée avant de l'assignée à son publisher | ma.data | null |
|
|
53
|
-
*
|
|
54
|
-
* *Si la données est `{ma:{data:{a:1,b:2}}}` et `key="ma.data"`, la données disponible dans le composant sera `{a:1, b:2}`*
|
|
55
|
-
|
|
56
|
-
#### Intégration auto de basic auth (pour tester une api qui nécessite une authentification)
|
|
57
|
-
|
|
58
|
-
* Fetch utilise le service pour générer le token et l'ajoute au header de l'appel qui récupère les données.
|
|
59
|
-
|
|
60
|
-
* | nom | sur quelle balise | Description | Exemple de valeur | défaut / requis |
|
|
61
|
-
* | -------------------------------------------------------------------------------------- |
|
|
62
|
-
* | userName | Fetcher ou un de ses parents | Nom de l'utilisateur | DjuDju | null |
|
|
63
|
-
* | password | Fetcher ou un de ses parents | mot de passe | pom_549 | null |
|
|
64
|
-
* | tokenProvider | Fetcher ou un de ses parents | point d'accès du service fournissant le token | auth | null |
|
|
65
|
-
* | token | Fetcher ou un de ses parents | A fournir à la place des autres attributs si on le possède | q<d34gb | null |
|
|
66
|
-
|
|
67
|
-
#### Autres choses utiles
|
|
68
|
-
* * L'attribut *noLoader* du composant permet de désactiver l'affichage du loader par défaut.
|
|
69
|
-
* * On peut appeler la methode invalidate() sur le publisher associé au composant pour declencher le rechargement des données.
|
|
70
|
-
* * endPoint est une propriété réctive, par conséquent, sa modification, manuelle via template ou data binbding provoque la mise à jour du contenu.
|
|
71
|
-
*/
|
|
72
41
|
export declare class Fetch extends Fetch_base {
|
|
73
42
|
static styles: import("lit").CSSResult[];
|
|
74
43
|
render(): import("lit-html").TemplateResult<1>;
|
|
@@ -39,6 +39,7 @@ import Fetcher from "@supersoniks/concorde/core/mixins/Fetcher";
|
|
|
39
39
|
* * On peut appeler la methode invalidate() sur le publisher associé au composant pour declencher le rechargement des données.
|
|
40
40
|
* * endPoint est une propriété réctive, par conséquent, sa modification, manuelle via template ou data binbding provoque la mise à jour du contenu.
|
|
41
41
|
*/
|
|
42
|
+
const tagName = "sonic-fetch"; // For Astro.build
|
|
42
43
|
let Fetch = class Fetch extends Fetcher(Subscriber(LitElement)) {
|
|
43
44
|
render() {
|
|
44
45
|
return html `<slot></slot>`;
|
|
@@ -52,11 +53,11 @@ Fetch.styles = [
|
|
|
52
53
|
`,
|
|
53
54
|
];
|
|
54
55
|
Fetch = __decorate([
|
|
55
|
-
customElement(
|
|
56
|
+
customElement(tagName)
|
|
56
57
|
], Fetch);
|
|
57
58
|
export { Fetch };
|
|
58
59
|
//Ajout pour custom-elements-manifesy pour storybook notamment
|
|
59
60
|
try {
|
|
60
|
-
customElements.define(
|
|
61
|
+
customElements.define(tagName, Fetch);
|
|
61
62
|
}
|
|
62
63
|
catch (e) { }
|
|
@@ -1,7 +1,4 @@
|
|
|
1
1
|
import { LitElement, nothing } from "lit";
|
|
2
|
-
/**
|
|
3
|
-
* Le composant *sonic-if* affiche son contenu dans le slot principal si sa propriété .condition est évaluée à true
|
|
4
|
-
*/
|
|
5
2
|
export declare class SonicIF extends LitElement {
|
|
6
3
|
static styles: import("lit").CSSResult;
|
|
7
4
|
/**
|
|
@@ -9,6 +9,7 @@ import { customElement, property } from "lit/decorators.js";
|
|
|
9
9
|
/**
|
|
10
10
|
* Le composant *sonic-if* affiche son contenu dans le slot principal si sa propriété .condition est évaluée à true
|
|
11
11
|
*/
|
|
12
|
+
const tagName = "sonic-if"; // For Astro.build
|
|
12
13
|
let SonicIF = class SonicIF extends LitElement {
|
|
13
14
|
constructor() {
|
|
14
15
|
super(...arguments);
|
|
@@ -33,11 +34,11 @@ __decorate([
|
|
|
33
34
|
property({ type: Boolean })
|
|
34
35
|
], SonicIF.prototype, "condition", void 0);
|
|
35
36
|
SonicIF = __decorate([
|
|
36
|
-
customElement(
|
|
37
|
+
customElement(tagName)
|
|
37
38
|
], SonicIF);
|
|
38
39
|
export { SonicIF };
|
|
39
40
|
//Ajout pour custom-elements-manifesy pour storybook notamment
|
|
40
41
|
try {
|
|
41
|
-
customElements.define(
|
|
42
|
+
customElements.define(tagName, SonicIF);
|
|
42
43
|
}
|
|
43
44
|
catch (e) { }
|
|
@@ -40,23 +40,6 @@ declare const List_base: {
|
|
|
40
40
|
hasAttribute(attributeName: String): boolean;
|
|
41
41
|
};
|
|
42
42
|
} & (new (...args: any[]) => import("@supersoniks/concorde/core/mixins/Subscriber").SubscriberInterface) & (new (...args: any[]) => import("@supersoniks/concorde/core/mixins/TemplatesContainer").TemplatesContainerInterface) & typeof LitElement;
|
|
43
|
-
/**
|
|
44
|
-
* ### List boucle sur sa propriété "props" et crée des éléments a partir des données en bouclant également sur ses templates.
|
|
45
|
-
*
|
|
46
|
-
* Extends mixins : Fetcher, [Subscriber](./?path=/docs/miscallenous-🔔-subscriber--page)
|
|
47
|
-
*
|
|
48
|
-
* * Si le composant possède un attribut *fetch*, il charge un contenu via un appel d'api web.<br>
|
|
49
|
-
* Voir [fetcher](./?path=/docs/core-components-functional-fetch--basic) pour la configuration des autres attributs.
|
|
50
|
-
* * Chaque élément créé est englobé dans un objet [Subscriber](./?path=/docs/miscallenous-🔔-subscriber--page).<br>
|
|
51
|
-
* Un dataProvider y est associé a l'adresse suivante *dataProvider-de-la-liste$/*index-de-la-ligne-courante*
|
|
52
|
-
* Les données de la ligne sont donc disponible pour les élements internes (subscribers, data-binding)
|
|
53
|
-
* * Lors du chargement un objet loader inline est affiché.
|
|
54
|
-
* * Si le résultat de la requête est un objet, il est imbriqué dans un tableau pour garantir le fonctionnement.<br>
|
|
55
|
-
* 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.
|
|
56
|
-
* * 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.
|
|
57
|
-
* * On peut appler la methode invalidate() sur son publishe pour declencher le rechargement des données
|
|
58
|
-
* *
|
|
59
|
-
*/
|
|
60
43
|
export declare class List extends List_base {
|
|
61
44
|
static styles: import("lit").CSSResult[];
|
|
62
45
|
itemPropertyMap: Object | null;
|
|
@@ -32,6 +32,7 @@ import TemplatesContainer from "@supersoniks/concorde/core/mixins/TemplatesConta
|
|
|
32
32
|
* * On peut appler la methode invalidate() sur son publishe pour declencher le rechargement des données
|
|
33
33
|
* *
|
|
34
34
|
*/
|
|
35
|
+
const tagName = "sonic-list";
|
|
35
36
|
let List = class List extends Fetcher(Subscriber(TemplatesContainer(LitElement))) {
|
|
36
37
|
constructor() {
|
|
37
38
|
super(...arguments);
|
|
@@ -63,7 +64,7 @@ let List = class List extends Fetcher(Subscriber(TemplatesContainer(LitElement))
|
|
|
63
64
|
renderNoResultState() {
|
|
64
65
|
return html `
|
|
65
66
|
<div class="sonic-no-result-container">
|
|
66
|
-
<sonic-icon
|
|
67
|
+
<sonic-icon name="emoji-puzzled" size="lg"></sonic-icon
|
|
67
68
|
><span class="sonic-no-result-text">${this.props}</span>
|
|
68
69
|
</div>`;
|
|
69
70
|
}
|
|
@@ -169,11 +170,11 @@ __decorate([
|
|
|
169
170
|
property({ type: String })
|
|
170
171
|
], List.prototype, "idKey", void 0);
|
|
171
172
|
List = __decorate([
|
|
172
|
-
customElement(
|
|
173
|
+
customElement(tagName)
|
|
173
174
|
], List);
|
|
174
175
|
export { List };
|
|
175
176
|
//Ajout pour custom-elements-manifest pour storybook notamment
|
|
176
177
|
try {
|
|
177
|
-
customElements.define(
|
|
178
|
+
customElements.define(tagName, List);
|
|
178
179
|
}
|
|
179
180
|
catch (e) { }
|
|
@@ -2,14 +2,6 @@ import { LitElement, nothing } from "lit";
|
|
|
2
2
|
import '@supersoniks/concorde/core/components/functional/list/list';
|
|
3
3
|
import { PublisherProxy } from "@supersoniks/concorde/core/utils/PublisherProxy.mjs";
|
|
4
4
|
declare const Queue_base: (new (...args: any[]) => import("@supersoniks/concorde/core/mixins/Subscriber").SubscriberInterface) & typeof LitElement;
|
|
5
|
-
/**
|
|
6
|
-
*### Une Queue charge du contenu par lot selon l'expression renseignée dans l'attribut *dataProviderExpression*.
|
|
7
|
-
* * Chaque lot est chargé par un composant [List](./?path=/docs/core-components-functional-list-list--basic) dont le dataProvider créé à partir de l'attribut dataProviderExpression
|
|
8
|
-
* * A l'initialisation elle regarde l'attribut dataFilterProvider qui donne l'adresse d'un [publisher](./?path=/docs/how-to-🥨-dialogue-inter-composant--page)
|
|
9
|
-
* Si cet attribut est touvé, Queue écoute le publisher fourni et se réinitialise à chaque modification du contenu de celui-ci.
|
|
10
|
-
* Les valeurs renseignées dans ce publisher sont ajoutées en get à chaque requête
|
|
11
|
-
* * la proriété *key* peut être utilisé pour cibler une propriété particulière du retour de l'api.
|
|
12
|
-
*/
|
|
13
5
|
export default class Queue extends Queue_base {
|
|
14
6
|
templates: Array<HTMLTemplateElement> | null;
|
|
15
7
|
lastRequestTime: number;
|
|
@@ -21,6 +13,7 @@ export default class Queue extends Queue_base {
|
|
|
21
13
|
targetRequestDuration: number;
|
|
22
14
|
limit: number;
|
|
23
15
|
offset: number;
|
|
16
|
+
filteredFields: string;
|
|
24
17
|
static instanceCounter: number;
|
|
25
18
|
connectedCallback(): void;
|
|
26
19
|
filterPublisher: PublisherProxy | null;
|
|
@@ -20,6 +20,7 @@ import '@supersoniks/concorde/core/components/functional/list/list';
|
|
|
20
20
|
* Les valeurs renseignées dans ce publisher sont ajoutées en get à chaque requête
|
|
21
21
|
* * la proriété *key* peut être utilisé pour cibler une propriété particulière du retour de l'api.
|
|
22
22
|
*/
|
|
23
|
+
const tagName = "sonic-queue";
|
|
23
24
|
let Queue = Queue_1 = class Queue extends Subscriber(LitElement) {
|
|
24
25
|
constructor() {
|
|
25
26
|
super(...arguments);
|
|
@@ -37,6 +38,7 @@ let Queue = Queue_1 = class Queue extends Subscriber(LitElement) {
|
|
|
37
38
|
*/
|
|
38
39
|
this.limit = 5;
|
|
39
40
|
this.offset = 0;
|
|
41
|
+
this.filteredFields = "";
|
|
40
42
|
this.filterPublisher = null;
|
|
41
43
|
this.filterTimeoutId = undefined;
|
|
42
44
|
/**
|
|
@@ -119,7 +121,10 @@ let Queue = Queue_1 = class Queue extends Subscriber(LitElement) {
|
|
|
119
121
|
let endpoint = split.shift();
|
|
120
122
|
let searchParams = new URLSearchParams(split.join("?"));
|
|
121
123
|
let filterData = (_a = this.filterPublisher) === null || _a === void 0 ? void 0 : _a.get();
|
|
124
|
+
let filteredFieldsArray = this.filteredFields.split(" ");
|
|
122
125
|
for (let f in filterData) {
|
|
126
|
+
if (this.filteredFields && !filteredFieldsArray.includes(f))
|
|
127
|
+
continue;
|
|
123
128
|
searchParams.set(f, filterData[f]);
|
|
124
129
|
}
|
|
125
130
|
dataProvider = endpoint + "?" + searchParams.toString();
|
|
@@ -184,6 +189,9 @@ __decorate([
|
|
|
184
189
|
__decorate([
|
|
185
190
|
property()
|
|
186
191
|
], Queue.prototype, "offset", void 0);
|
|
192
|
+
__decorate([
|
|
193
|
+
property()
|
|
194
|
+
], Queue.prototype, "filteredFields", void 0);
|
|
187
195
|
__decorate([
|
|
188
196
|
property({ type: String })
|
|
189
197
|
], Queue.prototype, "dataProviderExpression", void 0);
|
|
@@ -191,11 +199,11 @@ __decorate([
|
|
|
191
199
|
property({ type: String })
|
|
192
200
|
], Queue.prototype, "idKey", void 0);
|
|
193
201
|
Queue = Queue_1 = __decorate([
|
|
194
|
-
customElement(
|
|
202
|
+
customElement(tagName)
|
|
195
203
|
], Queue);
|
|
196
204
|
export default Queue;
|
|
197
205
|
//Ajout pour custom-elements-manifesy pour storybook notamment
|
|
198
206
|
try {
|
|
199
|
-
customElements.define(
|
|
207
|
+
customElements.define(tagName, Queue);
|
|
200
208
|
}
|
|
201
209
|
catch (e) { }
|
|
@@ -1,14 +1,5 @@
|
|
|
1
1
|
import { LitElement } from "lit";
|
|
2
2
|
declare const SonicRedirect_base: (new (...args: any[]) => import("@supersoniks/concorde/core/mixins/Subscriber").SubscriberInterface) & typeof LitElement;
|
|
3
|
-
/**
|
|
4
|
-
* sonic-redirect permet d'effectuer une redirection.
|
|
5
|
-
* * L'URL de redirection fournie dans l'attribut *to*.
|
|
6
|
-
* * La redirection est effectuée en fonction de la disponibilité d'une donnée issue du publisher à l'adresse fournie par l'attribut dataProvider
|
|
7
|
-
* * La donnée a trouver est renseignées via l'attribut *onData* qui peur repésenter un chemin dans la donnée via la dot syntaxe
|
|
8
|
-
* * Si la données est trouvée et qu'elle peut être évaluée à true alors la redirection est effectuée
|
|
9
|
-
* Par exemple : la données vaut {user:{id:2}} si onData="user.id"la redirection est effectuée.
|
|
10
|
-
* * Si l'attribut pushState est défini, alors la redirection est effectuée via pushState, sinon c'est document.location qui est modifié.
|
|
11
|
-
*/
|
|
12
3
|
export declare class SonicRedirect extends SonicRedirect_base {
|
|
13
4
|
udpateCallBack: () => void;
|
|
14
5
|
connectedCallback(): void;
|
|
@@ -18,6 +18,7 @@ import Objects from "@supersoniks/concorde/core/utils/Objects";
|
|
|
18
18
|
* Par exemple : la données vaut {user:{id:2}} si onData="user.id"la redirection est effectuée.
|
|
19
19
|
* * Si l'attribut pushState est défini, alors la redirection est effectuée via pushState, sinon c'est document.location qui est modifié.
|
|
20
20
|
*/
|
|
21
|
+
const tagName = "sonic-redirect";
|
|
21
22
|
let SonicRedirect = class SonicRedirect extends Subscriber(LitElement) {
|
|
22
23
|
constructor() {
|
|
23
24
|
super(...arguments);
|
|
@@ -47,11 +48,11 @@ let SonicRedirect = class SonicRedirect extends Subscriber(LitElement) {
|
|
|
47
48
|
}
|
|
48
49
|
};
|
|
49
50
|
SonicRedirect = __decorate([
|
|
50
|
-
customElement(
|
|
51
|
+
customElement(tagName)
|
|
51
52
|
], SonicRedirect);
|
|
52
53
|
export { SonicRedirect };
|
|
53
54
|
//Ajout pour la creation du cem notamment pour Storybook
|
|
54
55
|
try {
|
|
55
|
-
customElements.define(
|
|
56
|
+
customElements.define(tagName, SonicRedirect);
|
|
56
57
|
}
|
|
57
58
|
catch (e) { }
|
|
@@ -1,19 +1,5 @@
|
|
|
1
1
|
import { LitElement } from "lit";
|
|
2
2
|
declare const SonicRouter_base: (new (...args: any[]) => import("@supersoniks/concorde/core/mixins/Subscriber").SubscriberInterface) & (new (...args: any[]) => import("@supersoniks/concorde/core/mixins/TemplatesContainer").TemplatesContainerInterface) & typeof LitElement;
|
|
3
|
-
/**
|
|
4
|
-
* ### Le router observe les modification document.location et met à jour sa vu de la manière suivante :
|
|
5
|
-
* * Il boucle sur ses template enfants et test si la regexp contenue dans l'attribut *data-route* match document.location
|
|
6
|
-
* * Si oui le contenu du template est affiché
|
|
7
|
-
* * Si l'attribut dataProviderExpression est fourni le contenu est entouré d'une div :
|
|
8
|
-
* * L'attribut "dataProvider" de cette div est le resultat de l'appel à la fonction replace sur la propriété location avec comme paramettres la regexpe et dataproviderExpression.
|
|
9
|
-
* * On peut également utiliser les des expressions du type url-pattern pour les paramètres de la route voir les exemples
|
|
10
|
-
* * les subscribers/fetch... du template ser réfèrerons à ce dataProvider
|
|
11
|
-
*
|
|
12
|
-
* **Exemples **
|
|
13
|
-
* Avec location = /youpla/utilisateur/2 :
|
|
14
|
-
* * RegExp : data-route = /utilisateur/(\d+) et dataproviderExpression = /user/$1 l'attribut dataProvider vaudra "/user/2"
|
|
15
|
-
* * url-pattern : /*utilisateur/:id et dataproviderExpression = /user/:id l'attribut dataProvider vaudra "/user/2"
|
|
16
|
-
*/
|
|
17
3
|
export declare class SonicRouter extends SonicRouter_base {
|
|
18
4
|
templateValueAttribute: string;
|
|
19
5
|
connectedCallback(): void;
|
|
@@ -26,6 +26,7 @@ import TemplatesContainer from "@supersoniks/concorde/core/mixins/TemplatesConta
|
|
|
26
26
|
* * RegExp : data-route = /utilisateur/(\d+) et dataproviderExpression = /user/$1 l'attribut dataProvider vaudra "/user/2"
|
|
27
27
|
* * url-pattern : /*utilisateur/:id et dataproviderExpression = /user/:id l'attribut dataProvider vaudra "/user/2"
|
|
28
28
|
*/
|
|
29
|
+
const tagName = "sonic-router";
|
|
29
30
|
let SonicRouter = class SonicRouter extends Subscriber(TemplatesContainer(LitElement)) {
|
|
30
31
|
constructor() {
|
|
31
32
|
super(...arguments);
|
|
@@ -94,11 +95,11 @@ __decorate([
|
|
|
94
95
|
property()
|
|
95
96
|
], SonicRouter.prototype, "location", null);
|
|
96
97
|
SonicRouter = __decorate([
|
|
97
|
-
customElement(
|
|
98
|
+
customElement(tagName)
|
|
98
99
|
], SonicRouter);
|
|
99
100
|
export { SonicRouter };
|
|
100
101
|
//Ajout pour la creation du cem notamment pour Storybook
|
|
101
102
|
try {
|
|
102
|
-
customElements.define(
|
|
103
|
+
customElements.define(tagName, SonicRouter);
|
|
103
104
|
}
|
|
104
105
|
catch (e) { }
|
|
@@ -6,6 +6,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
6
6
|
};
|
|
7
7
|
import { html, LitElement } from "lit";
|
|
8
8
|
import { customElement } from "lit/decorators.js";
|
|
9
|
+
const tagName = "sonic-scope";
|
|
9
10
|
let SonicScope = class SonicScope extends LitElement {
|
|
10
11
|
createRenderRoot() {
|
|
11
12
|
return this;
|
|
@@ -15,6 +16,6 @@ let SonicScope = class SonicScope extends LitElement {
|
|
|
15
16
|
}
|
|
16
17
|
};
|
|
17
18
|
SonicScope = __decorate([
|
|
18
|
-
customElement(
|
|
19
|
+
customElement(tagName)
|
|
19
20
|
], SonicScope);
|
|
20
21
|
export { SonicScope };
|
|
@@ -1,20 +1,5 @@
|
|
|
1
1
|
import { LitElement } from "lit";
|
|
2
2
|
declare const SonicStates_base: (new (...args: any[]) => import("@supersoniks/concorde/core/mixins/Subscriber").SubscriberInterface) & (new (...args: any[]) => import("@supersoniks/concorde/core/mixins/TemplatesContainer").TemplatesContainerInterface) & typeof LitElement;
|
|
3
|
-
/**
|
|
4
|
-
* ### sonic-states affiche des états différents en fonction de la valeur d'une sous propriété de son dataProvider (attribut data-path en dot notation):
|
|
5
|
-
* * Il boucle sur ses template enfants et test si la regexp contenue dans l'attribut *data-value* match la valeur de la propriété
|
|
6
|
-
* * Si oui le contenu du template correspontant est affiché comme état.
|
|
7
|
-
* * Si l'attribut dataProviderExpression est fourni le contenu est entouré d'une div :
|
|
8
|
-
* * L'attribut "dataProvider" de cette div est le resultat de l'appel à la fonction replace sur valeur de la propriété avec comme paramettres la regexp et dataproviderExpression.
|
|
9
|
-
* * Les subscribers/fetch... du template se réfèrerons à ce dataProvider
|
|
10
|
-
* * On peut également utiliser les des expressions du type url-pattern pour les paramètres de la route voir les exemples
|
|
11
|
-
*
|
|
12
|
-
* **Exemples**
|
|
13
|
-
* Avec ma.propriete= 2 :
|
|
14
|
-
* * RegExp data-value = (\d+) et dataproviderExpression = /user/$1 l'attribut dataProvider vaudra "/user/2"
|
|
15
|
-
* * url-pattern data-value = :id et dataproviderExpression = /user/:id l'attribut dataProvider vaudra "/user/2"
|
|
16
|
-
*
|
|
17
|
-
*/
|
|
18
3
|
export declare class SonicStates extends SonicStates_base {
|
|
19
4
|
state: string;
|
|
20
5
|
inverted: Boolean;
|
|
@@ -27,6 +27,7 @@ import TemplatesContainer from "@supersoniks/concorde/core/mixins/TemplatesConta
|
|
|
27
27
|
* * url-pattern data-value = :id et dataproviderExpression = /user/:id l'attribut dataProvider vaudra "/user/2"
|
|
28
28
|
*
|
|
29
29
|
*/
|
|
30
|
+
const tagName = "sonic-states";
|
|
30
31
|
let SonicStates = class SonicStates extends Subscriber(TemplatesContainer(LitElement)) {
|
|
31
32
|
constructor() {
|
|
32
33
|
super(...arguments);
|
|
@@ -129,11 +130,11 @@ __decorate([
|
|
|
129
130
|
property({ type: Boolean, reflect: true })
|
|
130
131
|
], SonicStates.prototype, "inverted", void 0);
|
|
131
132
|
SonicStates = __decorate([
|
|
132
|
-
customElement(
|
|
133
|
+
customElement(tagName)
|
|
133
134
|
], SonicStates);
|
|
134
135
|
export { SonicStates };
|
|
135
136
|
//Ajout pour custom-elements-manifesy pour storybook notamment
|
|
136
137
|
try {
|
|
137
|
-
customElements.define(
|
|
138
|
+
customElements.define(tagName, SonicStates);
|
|
138
139
|
}
|
|
139
140
|
catch (e) { }
|
|
@@ -2,17 +2,6 @@ import "@supersoniks/concorde/core/components/ui/button/button";
|
|
|
2
2
|
import API from "@supersoniks/concorde/core/utils/api";
|
|
3
3
|
import { LitElement } from "lit";
|
|
4
4
|
declare const Submit_base: (new (...args: any[]) => import("@supersoniks/concorde/core/mixins/Subscriber").SubscriberInterface) & typeof LitElement;
|
|
5
|
-
/**
|
|
6
|
-
* ###L'élément submit permet d'envoyer des données en rest
|
|
7
|
-
* * Les données envoyées sont celles présentes dans le publisher dont l'adresse est renseignée via l'attribut *formDataProvider*.
|
|
8
|
-
* Cet attribut est également utilisé par les éléments de form comme *sonic-input*, ou *sonic-select*, qui remplissent ce publisher avec leur attribut *value* en fonction de leur attribut *name*
|
|
9
|
-
* * L'api est configuré à la manière d'un fetcher.
|
|
10
|
-
* * L'attribut *method* permet de choisir la méthode d'envoie : *put/delete/post*, *post* étant la méthode par défaut.
|
|
11
|
-
* * Si l'attribut *onClick* est présent, les données sont envoyées quand on click dans son contenu
|
|
12
|
-
* * Si l'attribut *onEnterKey* est présent, les données sont envoyées quand on appuie sur la touche entrée d'un élément contenu dans le *sonic-submit* ayant le focus
|
|
13
|
-
* * Pendant l'envoi, les éléments *sonic-submit* ayant le même attribut *dataProvider* ont la propriété *disabled="disabled"* ce qui a pour effet de désactiver leur contenu
|
|
14
|
-
* * L'attribut *clearedDataOnSuccess* peut être utilisé pour vider les données des dataProvider correspondants lorsque l'appel à l'api a fourni un résultat.
|
|
15
|
-
*/
|
|
16
5
|
export declare class Submit extends Submit_base {
|
|
17
6
|
static styles: import("lit").CSSResult;
|
|
18
7
|
submitResultKey: string | null;
|
|
@@ -32,6 +32,7 @@ import Objects from "@supersoniks/concorde/core/utils/Objects";
|
|
|
32
32
|
* * Pendant l'envoi, les éléments *sonic-submit* ayant le même attribut *dataProvider* ont la propriété *disabled="disabled"* ce qui a pour effet de désactiver leur contenu
|
|
33
33
|
* * L'attribut *clearedDataOnSuccess* peut être utilisé pour vider les données des dataProvider correspondants lorsque l'appel à l'api a fourni un résultat.
|
|
34
34
|
*/
|
|
35
|
+
const tagName = "sonic-submit";
|
|
35
36
|
let Submit = class Submit extends Subscriber(LitElement) {
|
|
36
37
|
constructor() {
|
|
37
38
|
super(...arguments);
|
|
@@ -126,11 +127,11 @@ __decorate([
|
|
|
126
127
|
property({ type: String })
|
|
127
128
|
], Submit.prototype, "endPoint", void 0);
|
|
128
129
|
Submit = __decorate([
|
|
129
|
-
customElement(
|
|
130
|
+
customElement(tagName)
|
|
130
131
|
], Submit);
|
|
131
132
|
export { Submit };
|
|
132
133
|
//Ajout pour la creation du cem notamment pour Storybook
|
|
133
134
|
try {
|
|
134
|
-
customElements.define(
|
|
135
|
+
customElements.define(tagName, Submit);
|
|
135
136
|
}
|
|
136
137
|
catch (e) { }
|
|
@@ -1,8 +1,5 @@
|
|
|
1
1
|
import { LitElement } from "lit";
|
|
2
2
|
declare const SonicSubscriber_base: (new (...args: any[]) => import("@supersoniks/concorde/core/mixins/Subscriber").SubscriberInterface) & typeof LitElement;
|
|
3
|
-
/**
|
|
4
|
-
* Voir la partie dédiée dans *MISCALLENOUS*
|
|
5
|
-
*/
|
|
6
3
|
export declare class SonicSubscriber extends SonicSubscriber_base {
|
|
7
4
|
noAutofill: boolean;
|
|
8
5
|
connectedCallback(): void;
|
|
@@ -10,6 +10,7 @@ import Subscriber from "@supersoniks/concorde/core/mixins/Subscriber";
|
|
|
10
10
|
/**
|
|
11
11
|
* Voir la partie dédiée dans *MISCALLENOUS*
|
|
12
12
|
*/
|
|
13
|
+
const tagName = "sonic-subscriber";
|
|
13
14
|
let SonicSubscriber = class SonicSubscriber extends Subscriber(LitElement) {
|
|
14
15
|
constructor() {
|
|
15
16
|
super(...arguments);
|
|
@@ -24,11 +25,11 @@ let SonicSubscriber = class SonicSubscriber extends Subscriber(LitElement) {
|
|
|
24
25
|
}
|
|
25
26
|
};
|
|
26
27
|
SonicSubscriber = __decorate([
|
|
27
|
-
customElement(
|
|
28
|
+
customElement(tagName)
|
|
28
29
|
], SonicSubscriber);
|
|
29
30
|
export { SonicSubscriber };
|
|
30
31
|
//Ajout pour Storybook
|
|
31
32
|
try {
|
|
32
|
-
customElements.define(
|
|
33
|
+
customElements.define(tagName, SonicSubscriber);
|
|
33
34
|
}
|
|
34
35
|
catch (e) { }
|
|
@@ -13,6 +13,7 @@ const icon = {
|
|
|
13
13
|
info: "info-empty",
|
|
14
14
|
default: "info-empty",
|
|
15
15
|
};
|
|
16
|
+
const tagName = 'sonic-alert';
|
|
16
17
|
/**
|
|
17
18
|
* Affiche un message en ligne.
|
|
18
19
|
* Soit par ses simples attributs "label" et "text", soit par son slot pour des messages plus complexes.
|
|
@@ -35,10 +36,10 @@ let Alert = class Alert extends LitElement {
|
|
|
35
36
|
render() {
|
|
36
37
|
return html `<div part="alert" class="alert">
|
|
37
38
|
<div>
|
|
38
|
-
${this.status && html `<sonic-icon
|
|
39
|
+
${this.status && html `<sonic-icon name=${icon[this.status]}></sonic-icon>`}
|
|
39
40
|
</div>
|
|
40
41
|
<div >
|
|
41
|
-
${this.label ? html `<span class="
|
|
42
|
+
${this.label ? html `<span class="label">${this.label} :</span>` : nothing}
|
|
42
43
|
${this.text} <slot><slot>
|
|
43
44
|
</div>
|
|
44
45
|
</div>`;
|
|
@@ -52,7 +53,7 @@ Alert.styles = [
|
|
|
52
53
|
--sc-alert-fw: var(--sc-font-weight-base);
|
|
53
54
|
--sc-alert-fst: var(--sc-font-style-base);
|
|
54
55
|
--sc-alert-fs: 1rem;
|
|
55
|
-
--sc-alert-
|
|
56
|
+
--sc-alert-label-fw: bold;
|
|
56
57
|
|
|
57
58
|
display: block;
|
|
58
59
|
font-size: var(--sc-alert-fs);
|
|
@@ -69,8 +70,8 @@ Alert.styles = [
|
|
|
69
70
|
border-radius: var(--sc-alert-rounded);
|
|
70
71
|
}
|
|
71
72
|
|
|
72
|
-
.
|
|
73
|
-
font-weight: var(--sc-alert-
|
|
73
|
+
.label {
|
|
74
|
+
font-weight: var(--sc-alert-label-fw);
|
|
74
75
|
}
|
|
75
76
|
|
|
76
77
|
:host([status="warning"]) {
|
|
@@ -102,14 +103,13 @@ Alert.styles = [
|
|
|
102
103
|
bottom: 0;
|
|
103
104
|
opacity: 0.08;
|
|
104
105
|
border-radius: var(--sc-alert-rounded);
|
|
105
|
-
pointer-events:none;
|
|
106
|
+
pointer-events: none;
|
|
106
107
|
}
|
|
107
108
|
:host([background]) > div {
|
|
108
|
-
z-index:2;
|
|
109
|
-
position:relative;
|
|
109
|
+
z-index: 2;
|
|
110
|
+
position: relative;
|
|
110
111
|
}
|
|
111
112
|
|
|
112
|
-
|
|
113
113
|
/*SIZE*/
|
|
114
114
|
:host([size="xs"]) {
|
|
115
115
|
--sc-alert-fs: 0.75rem;
|
|
@@ -146,10 +146,10 @@ __decorate([
|
|
|
146
146
|
property({ type: String, reflect: true })
|
|
147
147
|
], Alert.prototype, "status", void 0);
|
|
148
148
|
Alert = __decorate([
|
|
149
|
-
customElement(
|
|
149
|
+
customElement(tagName)
|
|
150
150
|
], Alert);
|
|
151
151
|
export { Alert };
|
|
152
152
|
try {
|
|
153
|
-
customElements.define(
|
|
153
|
+
customElements.define(tagName, Alert);
|
|
154
154
|
}
|
|
155
155
|
catch (e) { }
|
|
@@ -6,6 +6,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
6
6
|
};
|
|
7
7
|
import { html, LitElement, css } from "lit";
|
|
8
8
|
import { customElement, property } from "lit/decorators.js";
|
|
9
|
+
const tagName = 'sonic-badge';
|
|
9
10
|
/**
|
|
10
11
|
* Un badge simple avec deux slots, un nommé prefix et un nomé suffix de manière à pouvoir mettre (par exemple) une icone avant ou après le contenu.
|
|
11
12
|
* * Le badge est comparable au bouton car il possèdent tous les deux les propriétés *type* (primary...), *variant*(outline, ghost), size(xs...)...
|
|
@@ -166,11 +167,11 @@ __decorate([
|
|
|
166
167
|
property({ type: String, reflect: true })
|
|
167
168
|
], Badge.prototype, "size", void 0);
|
|
168
169
|
Badge = __decorate([
|
|
169
|
-
customElement(
|
|
170
|
+
customElement(tagName)
|
|
170
171
|
], Badge);
|
|
171
172
|
export { Badge };
|
|
172
173
|
//Ajout pour la creation du cem notamment pour Storybook
|
|
173
174
|
try {
|
|
174
|
-
customElements.define(
|
|
175
|
+
customElements.define(tagName, Badge);
|
|
175
176
|
}
|
|
176
177
|
catch (e) { }
|
|
@@ -9,6 +9,7 @@ declare const Button_base: {
|
|
|
9
9
|
radio: true | null;
|
|
10
10
|
_checked: true | null;
|
|
11
11
|
checked: true | null;
|
|
12
|
+
validateFormElement(): void;
|
|
12
13
|
setCheckedValue(checked: true | null): void;
|
|
13
14
|
handleChange(): void;
|
|
14
15
|
getValueForFormPublisher(): any;
|
|
@@ -18,12 +19,7 @@ declare const Button_base: {
|
|
|
18
19
|
updateDataValue(): void;
|
|
19
20
|
error: true | null;
|
|
20
21
|
autofocus: true | null;
|
|
21
|
-
disabled: true | null;
|
|
22
|
-
* Un bouton simple avec deux slots, un nommé préfix et un nomé suffix de manière à pouvoir mettre (par exemple) une icone avant ou après le contenu.
|
|
23
|
-
* * L'objet et ses slot sont en display flex avec direction / alignement et justifications configurables
|
|
24
|
-
* * Le bouton est comparable au badge car il possèdent tous les deux les propriétés *type* (primary...), *variant*(outline, ghost), size(xs...)...
|
|
25
|
-
* * Le bouton possède cependant et notamment une propriété href contrairement à un badge
|
|
26
|
-
*/
|
|
22
|
+
disabled: true | null;
|
|
27
23
|
required: true | null;
|
|
28
24
|
formDataProvider: string;
|
|
29
25
|
props: any;
|
|
@@ -82,7 +78,7 @@ export declare class Button extends Button_base {
|
|
|
82
78
|
/**
|
|
83
79
|
* Propriété align-items de *flex* appliquée à l'élément contenant les *slots*
|
|
84
80
|
*/
|
|
85
|
-
|
|
81
|
+
alignItems: string;
|
|
86
82
|
/**
|
|
87
83
|
* Propriété justify-content de *flex* appliquée à l'élément contenant les *slots*
|
|
88
84
|
*/
|
|
@@ -90,7 +86,7 @@ export declare class Button extends Button_base {
|
|
|
90
86
|
/**
|
|
91
87
|
* Propriété text-align du bouton
|
|
92
88
|
*/
|
|
93
|
-
|
|
89
|
+
align: "" | "right" | "left" | "center";
|
|
94
90
|
/**
|
|
95
91
|
* Propriété min-width du bouton
|
|
96
92
|
*/
|