@supersoniks/concorde 4.5.0 → 4.5.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build-infos.json +1 -1
- package/concorde-core.bundle.js +228 -227
- package/concorde-core.es.js +1871 -1820
- package/dist/concorde-core.bundle.js +228 -227
- package/dist/concorde-core.es.js +1871 -1820
- package/package.json +5 -1
- package/src/core/components/ui/modal/modal-utils.ts +46 -0
- package/src/core/components/ui/modal/modal.ts +33 -8
- package/src/core/decorators/api.ts +3 -3
- package/src/core/decorators/subscriber/ancestorAttribute.ts +5 -4
- package/src/core/decorators/subscriber/bind.ts +9 -7
- package/src/core/decorators/subscriber/common.ts +22 -2
- package/src/core/decorators/subscriber/dynamicPropertyWatch.spec.ts +125 -0
- package/src/core/decorators/subscriber/dynamicPropertyWatch.ts +157 -72
- package/src/core/decorators/subscriber/onAssign.ts +2 -2
- package/src/core/decorators/subscriber/publish.ts +2 -2
- package/src/docs/example/decorators-demo-bind-demos.ts +6 -2
- package/src/docs/example/decorators-demo-geo.ts +10 -9
- package/src/docs/example/decorators-demo-subscribe-publish-get-demos.ts +1 -5
- package/src/docs/example/decorators-demo.ts +2 -2
- package/src/docs/search/docs-search.json +0 -45
- package/src/tsconfig.json +12 -0
- package/src/tsconfig.tsbuildinfo +1 -1
|
@@ -1,104 +1,189 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
4
|
-
*
|
|
2
|
+
* Surveillance des props utilisées dans les chemins dynamiques (`${userIndex}`, etc.).
|
|
3
|
+
*
|
|
4
|
+
* Modèle :
|
|
5
|
+
* - `observeDynamicProperty()` enregistre une prop + un handler à appeler si elle change ;
|
|
6
|
+
* - un seul `requestAnimationFrame` appelle `notifyObservedPropertyChanges()` ;
|
|
7
|
+
* - pour chaque prop observée : `lastValue` vs valeur lue sur le composant ;
|
|
8
|
+
* - plusieurs passes dans la même frame si un handler en modifie une autre ;
|
|
9
|
+
* - garde anti-boucle si une prop ne cesse de changer.
|
|
5
10
|
*/
|
|
6
11
|
|
|
7
|
-
|
|
12
|
+
import { getValueFromExpression } from "./dynamicPath";
|
|
8
13
|
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
14
|
+
/** Une prop du composant lue à chaque frame, avec les handlers à déclencher si elle change. */
|
|
15
|
+
type ObservedProperty = {
|
|
16
|
+
/** Dernière valeur vue lors de la dernière notification. */
|
|
17
|
+
lastValue: unknown;
|
|
18
|
+
/** Handlers enregistrés par les décorateurs (@bind, @get, …). */
|
|
19
|
+
onChangeHandlers: Set<() => void>;
|
|
20
|
+
};
|
|
21
|
+
|
|
22
|
+
/** Nom de prop → état d'observation, pour un composant donné. */
|
|
23
|
+
type ObservedProperties = Map<string, ObservedProperty>;
|
|
24
|
+
|
|
25
|
+
const observedPropertiesByComponent = new WeakMap<object, ObservedProperties>();
|
|
26
|
+
/** Composants ayant au moins une prop observée. */
|
|
27
|
+
const componentsBeingPolled = new Set<object>();
|
|
28
|
+
|
|
29
|
+
/** Un seul rAF pour toutes les instances et toutes les props observées. */
|
|
30
|
+
let animationFrameId: number | null = null;
|
|
31
|
+
/** Passes de réconciliation dans une même frame avant alerte boucle infinie. */
|
|
32
|
+
const MAX_NOTIFICATION_PASSES_PER_FRAME = 8;
|
|
33
|
+
|
|
34
|
+
function getObservedProperties(component: object): ObservedProperties {
|
|
35
|
+
let observedProperties = observedPropertiesByComponent.get(component);
|
|
36
|
+
if (!observedProperties) {
|
|
37
|
+
observedProperties = new Map();
|
|
38
|
+
observedPropertiesByComponent.set(component, observedProperties);
|
|
30
39
|
}
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
40
|
+
return observedProperties;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
/** Compare lastValue à la valeur actuelle ; retourne les handlers à exécuter. */
|
|
44
|
+
function findHandlersForChangedProperties(
|
|
45
|
+
component: object,
|
|
46
|
+
observedProperties: ObservedProperties,
|
|
47
|
+
): Set<() => void> {
|
|
48
|
+
const handlersToRun = new Set<() => void>();
|
|
49
|
+
for (const [propertyName, observed] of observedProperties) {
|
|
50
|
+
const currentValue = getValueFromExpression(component, propertyName);
|
|
51
|
+
if (!Object.is(observed.lastValue, currentValue)) {
|
|
52
|
+
observed.lastValue = currentValue;
|
|
53
|
+
observed.onChangeHandlers.forEach((handler) => handlersToRun.add(handler));
|
|
54
|
+
}
|
|
34
55
|
}
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
56
|
+
return handlersToRun;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
/** Détecte les props observées qui ont changé et appelle leurs handlers (plusieurs passes si cascade). */
|
|
60
|
+
function notifyObservedPropertyChanges(): void {
|
|
61
|
+
animationFrameId = null;
|
|
62
|
+
|
|
63
|
+
let pass = 0;
|
|
64
|
+
let propertiesChangedThisFrame = true;
|
|
65
|
+
|
|
66
|
+
while (propertiesChangedThisFrame && pass < MAX_NOTIFICATION_PASSES_PER_FRAME) {
|
|
67
|
+
propertiesChangedThisFrame = false;
|
|
68
|
+
pass += 1;
|
|
69
|
+
|
|
70
|
+
for (const component of componentsBeingPolled) {
|
|
71
|
+
const observedProperties = observedPropertiesByComponent.get(component);
|
|
72
|
+
if (!observedProperties || observedProperties.size === 0) continue;
|
|
73
|
+
|
|
74
|
+
const handlersToRun = findHandlersForChangedProperties(
|
|
75
|
+
component,
|
|
76
|
+
observedProperties,
|
|
77
|
+
);
|
|
78
|
+
if (handlersToRun.size === 0) continue;
|
|
79
|
+
|
|
80
|
+
propertiesChangedThisFrame = true;
|
|
81
|
+
handlersToRun.forEach((handler) => handler());
|
|
41
82
|
}
|
|
42
|
-
}
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
if (propertiesChangedThisFrame) {
|
|
86
|
+
console.warn(
|
|
87
|
+
"[concorde] dynamic property watch: limite de passes atteinte, boucle infinie probable",
|
|
88
|
+
);
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
if (componentsBeingPolled.size > 0) {
|
|
92
|
+
scheduleObservedPropertyChanges();
|
|
93
|
+
}
|
|
43
94
|
}
|
|
44
95
|
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
if (
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
96
|
+
function scheduleObservedPropertyChanges(): void {
|
|
97
|
+
if (animationFrameId !== null) return;
|
|
98
|
+
animationFrameId = requestAnimationFrame(notifyObservedPropertyChanges);
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
function cancelScheduledObservedPropertyChangesIfIdle(): void {
|
|
102
|
+
if (componentsBeingPolled.size === 0 && animationFrameId !== null) {
|
|
103
|
+
cancelAnimationFrame(animationFrameId);
|
|
104
|
+
animationFrameId = null;
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
/**
|
|
109
|
+
* Observe une prop du composant utilisée dans un chemin dynamique.
|
|
110
|
+
* Retourne une fonction de désinscription.
|
|
111
|
+
*
|
|
112
|
+
* Les deux premiers paramètres sont ignorés (legacy API des décorateurs).
|
|
113
|
+
*/
|
|
114
|
+
export function observeDynamicProperty(
|
|
115
|
+
_legacyWatcherStoreKey: PropertyKey,
|
|
116
|
+
_legacyHookedStoreKey: PropertyKey,
|
|
117
|
+
component: object,
|
|
118
|
+
dependencyPropertyName: string,
|
|
119
|
+
onDependencyChange: () => void,
|
|
120
|
+
): () => void {
|
|
121
|
+
const propertyName = String(dependencyPropertyName);
|
|
122
|
+
const observedProperties = getObservedProperties(component);
|
|
123
|
+
|
|
124
|
+
let observed = observedProperties.get(propertyName);
|
|
125
|
+
if (!observed) {
|
|
126
|
+
observed = {
|
|
127
|
+
lastValue: getValueFromExpression(component, propertyName),
|
|
128
|
+
onChangeHandlers: new Set(),
|
|
129
|
+
};
|
|
130
|
+
observedProperties.set(propertyName, observed);
|
|
131
|
+
}
|
|
132
|
+
observed.onChangeHandlers.add(onDependencyChange);
|
|
133
|
+
|
|
134
|
+
componentsBeingPolled.add(component);
|
|
135
|
+
scheduleObservedPropertyChanges();
|
|
136
|
+
|
|
137
|
+
return () => {
|
|
138
|
+
const currentObservedProperties =
|
|
139
|
+
observedPropertiesByComponent.get(component);
|
|
140
|
+
if (!currentObservedProperties) return;
|
|
141
|
+
|
|
142
|
+
const currentObserved = currentObservedProperties.get(propertyName);
|
|
143
|
+
if (!currentObserved) return;
|
|
144
|
+
|
|
145
|
+
currentObserved.onChangeHandlers.delete(onDependencyChange);
|
|
146
|
+
if (currentObserved.onChangeHandlers.size === 0) {
|
|
147
|
+
currentObservedProperties.delete(propertyName);
|
|
75
148
|
}
|
|
76
|
-
|
|
77
|
-
|
|
149
|
+
|
|
150
|
+
if (currentObservedProperties.size === 0) {
|
|
151
|
+
observedPropertiesByComponent.delete(component);
|
|
152
|
+
componentsBeingPolled.delete(component);
|
|
153
|
+
cancelScheduledObservedPropertyChangesIfIdle();
|
|
78
154
|
}
|
|
79
155
|
};
|
|
80
|
-
(proto as InstanceStores)[hookedStoreKey] = true;
|
|
81
156
|
}
|
|
82
157
|
|
|
83
|
-
/**
|
|
158
|
+
/** @deprecated Alias conservé pour les décorateurs existants. */
|
|
159
|
+
export const registerDynamicPropertyWatcher = observeDynamicProperty;
|
|
160
|
+
|
|
161
|
+
/** @deprecated No-op conservé pour compatibilité API. */
|
|
162
|
+
export function ensureDynamicPropertiesWillUpdate(
|
|
163
|
+
_watcherStoreKey: PropertyKey,
|
|
164
|
+
_hookedStoreKey: PropertyKey,
|
|
165
|
+
_instance: object,
|
|
166
|
+
): void {}
|
|
167
|
+
|
|
168
|
+
/** Clés legacy ignorées par `@bind`. */
|
|
84
169
|
export const bindDynamicWatchKeys = {
|
|
85
170
|
watcherStore: Symbol("__bindDynamicWatcherStore__"),
|
|
86
171
|
hooked: Symbol("__bindDynamicWillUpdateHooked__"),
|
|
87
172
|
} as const;
|
|
88
173
|
|
|
89
|
-
/** Clés
|
|
174
|
+
/** Clés legacy ignorées par `@publish`. */
|
|
90
175
|
export const publishDynamicWatchKeys = {
|
|
91
176
|
watcherStore: "__publishDynamicWatcherStore__",
|
|
92
177
|
hooked: "__publishDynamicWillUpdateHooked__",
|
|
93
178
|
} as const;
|
|
94
179
|
|
|
95
|
-
/** Clés
|
|
180
|
+
/** Clés legacy ignorées par `@get`. */
|
|
96
181
|
export const getDynamicWatchKeys = {
|
|
97
182
|
watcherStore: "__getDynamicWatcherStore__",
|
|
98
183
|
hooked: "__getDynamicWillUpdateHooked__",
|
|
99
184
|
} as const;
|
|
100
185
|
|
|
101
|
-
/** Clés
|
|
186
|
+
/** Clés legacy ignorées par `@onAssign`. */
|
|
102
187
|
export const onAssignDynamicWatchKeys = {
|
|
103
188
|
watcherStore: Symbol("__onAssignDynamicWatcherStore__"),
|
|
104
189
|
hooked: Symbol("__onAssignDynamicWillUpdateHooked__"),
|
|
@@ -3,7 +3,7 @@ import { ConnectedComponent, setSubscribable } from "./common";
|
|
|
3
3
|
import { extractDynamicDependencies, resolveDynamicPath } from "./dynamicPath";
|
|
4
4
|
import {
|
|
5
5
|
onAssignDynamicWatchKeys,
|
|
6
|
-
|
|
6
|
+
observeDynamicProperty,
|
|
7
7
|
} from "./dynamicPropertyWatch";
|
|
8
8
|
import { getPublisherFromPath } from "./publisherPath";
|
|
9
9
|
|
|
@@ -141,7 +141,7 @@ export function onAssign(...values: Array<string>) {
|
|
|
141
141
|
for (const conf of confs) {
|
|
142
142
|
if (conf.pathConfig.isDynamic) {
|
|
143
143
|
for (const dependency of conf.pathConfig.dynamicDependencies) {
|
|
144
|
-
const unsubscribe =
|
|
144
|
+
const unsubscribe = observeDynamicProperty(
|
|
145
145
|
onAssignDynamicWatchKeys.watcherStore,
|
|
146
146
|
onAssignDynamicWatchKeys.hooked,
|
|
147
147
|
component,
|
|
@@ -7,7 +7,7 @@ import { ConnectedComponent, setSubscribable } from "./common";
|
|
|
7
7
|
import { extractDynamicDependencies, resolveDynamicPath } from "./dynamicPath";
|
|
8
8
|
import {
|
|
9
9
|
publishDynamicWatchKeys,
|
|
10
|
-
|
|
10
|
+
observeDynamicProperty,
|
|
11
11
|
} from "./dynamicPropertyWatch";
|
|
12
12
|
import { getPublisherFromPath } from "./publisherPath";
|
|
13
13
|
|
|
@@ -116,7 +116,7 @@ export function publish<T, U = any>(
|
|
|
116
116
|
if (dynamicDependencies.length) {
|
|
117
117
|
for (const dependency of dynamicDependencies) {
|
|
118
118
|
state.cleanupWatchers.push(
|
|
119
|
-
|
|
119
|
+
observeDynamicProperty(
|
|
120
120
|
publishDynamicWatchKeys.watcherStore,
|
|
121
121
|
publishDynamicWatchKeys.hooked,
|
|
122
122
|
comp,
|
|
@@ -92,7 +92,9 @@ export class DemoBindReflect extends LitElement {
|
|
|
92
92
|
}
|
|
93
93
|
|
|
94
94
|
type BindReflectDemoData = { count: number };
|
|
95
|
-
const bindReflectDemoKey = new DataProviderKey<BindReflectDemoData>(
|
|
95
|
+
const bindReflectDemoKey = new DataProviderKey<BindReflectDemoData>(
|
|
96
|
+
"bindReflectDemo",
|
|
97
|
+
);
|
|
96
98
|
|
|
97
99
|
@customElement("demo-bind-key")
|
|
98
100
|
export class DemoBindKey extends LitElement {
|
|
@@ -110,7 +112,9 @@ export class DemoBindKey extends LitElement {
|
|
|
110
112
|
render() {
|
|
111
113
|
return html`
|
|
112
114
|
<div class="mb-3">
|
|
113
|
-
<p
|
|
115
|
+
<p>
|
|
116
|
+
@bind with DataProviderKey<number> (type-safe): ${this.count}
|
|
117
|
+
</p>
|
|
114
118
|
</div>
|
|
115
119
|
<sonic-button @click=${() => this.count++}>Increment</sonic-button>
|
|
116
120
|
`;
|
|
@@ -17,19 +17,19 @@ export const geoApiDemoConfiguration: APIConfiguration = {
|
|
|
17
17
|
};
|
|
18
18
|
|
|
19
19
|
const docsDemoGeoApiConfigurationId = "docsDemoGeoApiConfiguration";
|
|
20
|
-
PublisherManager.get(docsDemoGeoApiConfigurationId).set(
|
|
21
|
-
|
|
22
|
-
export const docsDemoGeoApiConfigurationKey = new DataProviderKey<APIConfiguration>(
|
|
23
|
-
docsDemoGeoApiConfigurationId,
|
|
20
|
+
PublisherManager.get(docsDemoGeoApiConfigurationId).set(
|
|
21
|
+
geoApiDemoConfiguration,
|
|
24
22
|
);
|
|
25
23
|
|
|
24
|
+
export const docsDemoGeoApiConfigurationKey =
|
|
25
|
+
new DataProviderKey<APIConfiguration>(docsDemoGeoApiConfigurationId);
|
|
26
|
+
|
|
26
27
|
export const geoCommunesApiGetEndpoint = new Endpoint<GeoCommuneRow[]>(
|
|
27
28
|
"communes?limit=5&fields=nom,code",
|
|
28
29
|
);
|
|
29
30
|
|
|
30
|
-
export const docsDemoDynApiConfKeyTemplate =
|
|
31
|
-
"docsDemoDynApiConf${configSlot}"
|
|
32
|
-
);
|
|
31
|
+
export const docsDemoDynApiConfKeyTemplate =
|
|
32
|
+
new DataProviderKey<APIConfiguration>("docsDemoDynApiConf${configSlot}");
|
|
33
33
|
|
|
34
34
|
PublisherManager.get("docsDemoDynApiConfA").set(geoApiDemoConfiguration);
|
|
35
35
|
PublisherManager.get("docsDemoDynApiConfB").set({
|
|
@@ -41,5 +41,6 @@ export const geoCommunesApiGetEndpointDynamic = new Endpoint<GeoCommuneRow[]>(
|
|
|
41
41
|
"communes?limit=${communeLimit}&fields=nom,code",
|
|
42
42
|
);
|
|
43
43
|
|
|
44
|
-
export const geoCommunesApiGetPublishKey =
|
|
45
|
-
|
|
44
|
+
export const geoCommunesApiGetPublishKey = new DataProviderKey<
|
|
45
|
+
ApiGetResult<GeoCommuneRow[]>
|
|
46
|
+
>(geoCommunesApiGetEndpoint.path);
|
|
@@ -1,10 +1,6 @@
|
|
|
1
1
|
import { html, LitElement } from "lit";
|
|
2
2
|
import { customElement, property, state } from "lit/decorators.js";
|
|
3
|
-
import {
|
|
4
|
-
get,
|
|
5
|
-
publish,
|
|
6
|
-
subscribe,
|
|
7
|
-
} from "@supersoniks/concorde/decorators";
|
|
3
|
+
import { get, publish, subscribe } from "@supersoniks/concorde/decorators";
|
|
8
4
|
import type {
|
|
9
5
|
APIConfiguration,
|
|
10
6
|
ApiGetResult,
|
|
@@ -443,8 +443,8 @@ export class DemoWaitAncestorsReadySection extends LitElement {
|
|
|
443
443
|
return html`
|
|
444
444
|
<div class="space-y-4">
|
|
445
445
|
<p class="text-sm text-neutral-600 dark:text-neutral-400">
|
|
446
|
-
Parent défini au chargement. Ajout dynamique de l’enfant —
|
|
447
|
-
immédiate si l’ancêtre est prêt.
|
|
446
|
+
Parent défini au chargement. Ajout dynamique de l’enfant —
|
|
447
|
+
initialisation immédiate si l’ancêtre est prêt.
|
|
448
448
|
</p>
|
|
449
449
|
<sonic-button ?disabled=${this.childInDom} @click=${this.addChild}>
|
|
450
450
|
${this.childInDom ? "Child added" : "Add child dynamically"}
|
|
@@ -3469,51 +3469,6 @@
|
|
|
3469
3469
|
}
|
|
3470
3470
|
}
|
|
3471
3471
|
},
|
|
3472
|
-
{
|
|
3473
|
-
"search": "const userKey = new DataProviderKey("demoUser");\nconst settingsKey = new DataProviderKey("demoUserSettings");\n",
|
|
3474
|
-
"files": {
|
|
3475
|
-
"docs/_decorators/on-assign.md": {
|
|
3476
|
-
"title": "@onAssign",
|
|
3477
|
-
"hashes": {
|
|
3478
|
-
"example-with-dataproviderkey-type-safe": {
|
|
3479
|
-
"count": 1,
|
|
3480
|
-
"title": "Example with `DataProviderKey` (type-safe)",
|
|
3481
|
-
"type": "paragraph"
|
|
3482
|
-
}
|
|
3483
|
-
}
|
|
3484
|
-
}
|
|
3485
|
-
}
|
|
3486
|
-
},
|
|
3487
|
-
{
|
|
3488
|
-
"search": "@customElement("demo-on-assign-typed")\nexport class DemoOnAssignTyped extends LitElement {\n @state() user: User | null = null;\n @state() settings: Settings | null = null;\n",
|
|
3489
|
-
"files": {
|
|
3490
|
-
"docs/_decorators/on-assign.md": {
|
|
3491
|
-
"title": "@onAssign",
|
|
3492
|
-
"hashes": {
|
|
3493
|
-
"example-with-dataproviderkey-type-safe": {
|
|
3494
|
-
"count": 1,
|
|
3495
|
-
"title": "Example with `DataProviderKey` (type-safe)",
|
|
3496
|
-
"type": "paragraph"
|
|
3497
|
-
}
|
|
3498
|
-
}
|
|
3499
|
-
}
|
|
3500
|
-
}
|
|
3501
|
-
},
|
|
3502
|
-
{
|
|
3503
|
-
"search": " @onAssign(userKey, settingsKey)\n handleReady(user: User, settings: Settings) {\n this.user = user;\n this.settings = settings;\n this.requestUpdate();\n }\n}\n \n\n",
|
|
3504
|
-
"files": {
|
|
3505
|
-
"docs/_decorators/on-assign.md": {
|
|
3506
|
-
"title": "@onAssign",
|
|
3507
|
-
"hashes": {
|
|
3508
|
-
"example-with-dataproviderkey-type-safe": {
|
|
3509
|
-
"count": 1,
|
|
3510
|
-
"title": "Example with `DataProviderKey` (type-safe)",
|
|
3511
|
-
"type": "paragraph"
|
|
3512
|
-
}
|
|
3513
|
-
}
|
|
3514
|
-
}
|
|
3515
|
-
}
|
|
3516
|
-
},
|
|
3517
3472
|
{
|
|
3518
3473
|
"search": "The path uses dot notation to navigate through the publisher structure:\n",
|
|
3519
3474
|
"files": {
|
package/src/tsconfig.json
CHANGED
|
@@ -612,6 +612,15 @@
|
|
|
612
612
|
"./ui/modal/modal-title": [
|
|
613
613
|
"/sites/concorde/src/core/components/ui/modal/modal-title.ts"
|
|
614
614
|
],
|
|
615
|
+
"./modal-utils": [
|
|
616
|
+
"/sites/concorde/src/core/components/ui/modal/modal-utils.ts"
|
|
617
|
+
],
|
|
618
|
+
"./ui/modal-utils": [
|
|
619
|
+
"/sites/concorde/src/core/components/ui/modal/modal-utils.ts"
|
|
620
|
+
],
|
|
621
|
+
"./ui/modal/modal-utils": [
|
|
622
|
+
"/sites/concorde/src/core/components/ui/modal/modal-utils.ts"
|
|
623
|
+
],
|
|
615
624
|
"./modal": [
|
|
616
625
|
"/sites/concorde/src/core/components/ui/modal/modal.ts"
|
|
617
626
|
],
|
|
@@ -801,6 +810,9 @@
|
|
|
801
810
|
"./decorators/subscriber/dynamicPath": [
|
|
802
811
|
"/sites/concorde/src/core/decorators/subscriber/dynamicPath.ts"
|
|
803
812
|
],
|
|
813
|
+
"./decorators/subscriber/dynamicPropertyWatch.spec": [
|
|
814
|
+
"/sites/concorde/src/core/decorators/subscriber/dynamicPropertyWatch.spec.ts"
|
|
815
|
+
],
|
|
804
816
|
"./decorators/subscriber/dynamicPropertyWatch": [
|
|
805
817
|
"/sites/concorde/src/core/decorators/subscriber/dynamicPropertyWatch.ts"
|
|
806
818
|
],
|
package/src/tsconfig.tsbuildinfo
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"root":["./components.ts","./concorde-loaded.ts","./dataprovider.ts","./decorators.ts","./directives.ts","./index.ts","./mixins.ts","./utils.ts","./core/core.ts","./core/_types/endpoint.ts","./core/_types/key.ts","./core/_types/types.ts","./core/components/functional/functional.ts","./core/components/functional/date/date.ts","./core/components/functional/example/example.ts","./core/components/functional/fetch/fetch.ts","./core/components/functional/if/if.test.ts","./core/components/functional/if/if.ts","./core/components/functional/list/list.demo.ts","./core/components/functional/list/list.spec.ts","./core/components/functional/list/list.ts","./core/components/functional/mix/mix.ts","./core/components/functional/queue/queue.demo.ts","./core/components/functional/queue/queue.ts","./core/components/functional/router/redirect.ts","./core/components/functional/router/router.demo.ts","./core/components/functional/router/router.spec.ts","./core/components/functional/router/router.ts","./core/components/functional/sdui/SDUIDescriptorTransformer.ts","./core/components/functional/sdui/sdui-utils.ts","./core/components/functional/sdui/sdui.ts","./core/components/functional/sdui/types.ts","./core/components/functional/sonic-scope/sonic-scope.ts","./core/components/functional/states/states.demo.ts","./core/components/functional/states/states.spec.ts","./core/components/functional/states/states.ts","./core/components/functional/submit/submit.ts","./core/components/functional/subscriber/subscriber.ts","./core/components/functional/translation/translation.ts","./core/components/functional/value/value.ts","./core/components/ui/ui.ts","./core/components/ui/_css/scroll.ts","./core/components/ui/_css/shadow.ts","./core/components/ui/_css/size.ts","./core/components/ui/_css/type.ts","./core/components/ui/alert/alert.ts","./core/components/ui/alert-messages/alert-messages.ts","./core/components/ui/badge/badge.ts","./core/components/ui/button/button.ts","./core/components/ui/captcha/altchaStyles.ts","./core/components/ui/captcha/captcha.ts","./core/components/ui/card/card-footer.ts","./core/components/ui/card/card-header-descripton.ts","./core/components/ui/card/card-header.ts","./core/components/ui/card/card-main.ts","./core/components/ui/card/card.ts","./core/components/ui/divider/divider.ts","./core/components/ui/form/checkbox/checkbox.ts","./core/components/ui/form/css/form-control.ts","./core/components/ui/form/fieldset/fieldset.ts","./core/components/ui/form/fieldset/legend-description.ts","./core/components/ui/form/fieldset/legend.ts","./core/components/ui/form/form-actions/form-actions.ts","./core/components/ui/form/form-layout/form-layout.ts","./core/components/ui/form/input/input.ts","./core/components/ui/form/input/password-helper.ts","./core/components/ui/form/input/same-value-helper.ts","./core/components/ui/form/input-autocomplete/input-autocomplete.ts","./core/components/ui/form/radio/radio.ts","./core/components/ui/form/select/select.ts","./core/components/ui/form/switch/switch.ts","./core/components/ui/form/textarea/textarea.ts","./core/components/ui/group/group.ts","./core/components/ui/icon/icon.stories.ts","./core/components/ui/icon/icon.ts","./core/components/ui/icon/icons.ts","./core/components/ui/image/image.ts","./core/components/ui/link/link.ts","./core/components/ui/loader/loader.stories.ts","./core/components/ui/loader/loader.ts","./core/components/ui/loader/styles/fixed.ts","./core/components/ui/loader/styles/inline.ts","./core/components/ui/menu/menu-item.ts","./core/components/ui/menu/menu.ts","./core/components/ui/modal/modal-actions.ts","./core/components/ui/modal/modal-close.ts","./core/components/ui/modal/modal-content.ts","./core/components/ui/modal/modal-subtitle.ts","./core/components/ui/modal/modal-title.ts","./core/components/ui/modal/modal.ts","./core/components/ui/pop/pop.ts","./core/components/ui/progress/progress.ts","./core/components/ui/table/table-caption.ts","./core/components/ui/table/table-tbody.ts","./core/components/ui/table/table-td.ts","./core/components/ui/table/table-tfoot.ts","./core/components/ui/table/table-th.ts","./core/components/ui/table/table-thead.ts","./core/components/ui/table/table-tr.ts","./core/components/ui/table/table.ts","./core/components/ui/theme/theme.ts","./core/components/ui/theme/theme-collection/core-variables.ts","./core/components/ui/theme/theme-collection/dark.ts","./core/components/ui/theme/theme-collection/light.ts","./core/components/ui/toast/message-subscriber.ts","./core/components/ui/toast/toast-item.ts","./core/components/ui/toast/toast.ts","./core/components/ui/toast/types.ts","./core/components/ui/tooltip/tooltip.ts","./core/decorators/Subscriber.ts","./core/decorators/api.spec.ts","./core/decorators/api.ts","./core/decorators/lifecycle.ts","./core/decorators/subscriber/ancestorAttribute.ts","./core/decorators/subscriber/autoFill.ts","./core/decorators/subscriber/autoSubscribe.ts","./core/decorators/subscriber/bind.ts","./core/decorators/subscriber/common.ts","./core/decorators/subscriber/dynamicPath.ts","./core/decorators/subscriber/dynamicPropertyWatch.ts","./core/decorators/subscriber/onAssign.ts","./core/decorators/subscriber/publish.spec.ts","./core/decorators/subscriber/publish.ts","./core/decorators/subscriber/publisherPath.ts","./core/decorators/subscriber/subscribe.spec.ts","./core/decorators/subscriber/subscribe.ts","./core/directives/DataProvider.ts","./core/directives/Wording.ts","./core/mixins/Fetcher.ts","./core/mixins/FormCheckable.ts","./core/mixins/FormElement.ts","./core/mixins/FormInput.ts","./core/mixins/Subscriber.ts","./core/mixins/TemplatesContainer.ts","./core/mixins/mixins.ts","./core/utils/Arrays.ts","./core/utils/DataBindObserver.ts","./core/utils/Electron.ts","./core/utils/Format.ts","./core/utils/HTML.ts","./core/utils/LocationHandler.ts","./core/utils/Objects.ts","./core/utils/PublisherProxy.ts","./core/utils/Utils.ts","./core/utils/aesCrypto.ts","./core/utils/api.ts","./core/utils/dataProviderKey.spec.ts","./core/utils/dataProviderKey.ts","./core/utils/endpoint.spec.ts","./core/utils/endpoint.ts","./core/utils/route.spec.ts","./core/utils/route.ts","./core/utils/url-pattern.ts","./test-utils/TestUtils.ts"],"version":"5.9.2"}
|
|
1
|
+
{"root":["./components.ts","./concorde-loaded.ts","./dataprovider.ts","./decorators.ts","./directives.ts","./index.ts","./mixins.ts","./utils.ts","./core/core.ts","./core/_types/endpoint.ts","./core/_types/key.ts","./core/_types/types.ts","./core/components/functional/functional.ts","./core/components/functional/date/date.ts","./core/components/functional/example/example.ts","./core/components/functional/fetch/fetch.ts","./core/components/functional/if/if.test.ts","./core/components/functional/if/if.ts","./core/components/functional/list/list.demo.ts","./core/components/functional/list/list.spec.ts","./core/components/functional/list/list.ts","./core/components/functional/mix/mix.ts","./core/components/functional/queue/queue.demo.ts","./core/components/functional/queue/queue.ts","./core/components/functional/router/redirect.ts","./core/components/functional/router/router.demo.ts","./core/components/functional/router/router.spec.ts","./core/components/functional/router/router.ts","./core/components/functional/sdui/SDUIDescriptorTransformer.ts","./core/components/functional/sdui/sdui-utils.ts","./core/components/functional/sdui/sdui.ts","./core/components/functional/sdui/types.ts","./core/components/functional/sonic-scope/sonic-scope.ts","./core/components/functional/states/states.demo.ts","./core/components/functional/states/states.spec.ts","./core/components/functional/states/states.ts","./core/components/functional/submit/submit.ts","./core/components/functional/subscriber/subscriber.ts","./core/components/functional/translation/translation.ts","./core/components/functional/value/value.ts","./core/components/ui/ui.ts","./core/components/ui/_css/scroll.ts","./core/components/ui/_css/shadow.ts","./core/components/ui/_css/size.ts","./core/components/ui/_css/type.ts","./core/components/ui/alert/alert.ts","./core/components/ui/alert-messages/alert-messages.ts","./core/components/ui/badge/badge.ts","./core/components/ui/button/button.ts","./core/components/ui/captcha/altchaStyles.ts","./core/components/ui/captcha/captcha.ts","./core/components/ui/card/card-footer.ts","./core/components/ui/card/card-header-descripton.ts","./core/components/ui/card/card-header.ts","./core/components/ui/card/card-main.ts","./core/components/ui/card/card.ts","./core/components/ui/divider/divider.ts","./core/components/ui/form/checkbox/checkbox.ts","./core/components/ui/form/css/form-control.ts","./core/components/ui/form/fieldset/fieldset.ts","./core/components/ui/form/fieldset/legend-description.ts","./core/components/ui/form/fieldset/legend.ts","./core/components/ui/form/form-actions/form-actions.ts","./core/components/ui/form/form-layout/form-layout.ts","./core/components/ui/form/input/input.ts","./core/components/ui/form/input/password-helper.ts","./core/components/ui/form/input/same-value-helper.ts","./core/components/ui/form/input-autocomplete/input-autocomplete.ts","./core/components/ui/form/radio/radio.ts","./core/components/ui/form/select/select.ts","./core/components/ui/form/switch/switch.ts","./core/components/ui/form/textarea/textarea.ts","./core/components/ui/group/group.ts","./core/components/ui/icon/icon.stories.ts","./core/components/ui/icon/icon.ts","./core/components/ui/icon/icons.ts","./core/components/ui/image/image.ts","./core/components/ui/link/link.ts","./core/components/ui/loader/loader.stories.ts","./core/components/ui/loader/loader.ts","./core/components/ui/loader/styles/fixed.ts","./core/components/ui/loader/styles/inline.ts","./core/components/ui/menu/menu-item.ts","./core/components/ui/menu/menu.ts","./core/components/ui/modal/modal-actions.ts","./core/components/ui/modal/modal-close.ts","./core/components/ui/modal/modal-content.ts","./core/components/ui/modal/modal-subtitle.ts","./core/components/ui/modal/modal-title.ts","./core/components/ui/modal/modal-utils.ts","./core/components/ui/modal/modal.ts","./core/components/ui/pop/pop.ts","./core/components/ui/progress/progress.ts","./core/components/ui/table/table-caption.ts","./core/components/ui/table/table-tbody.ts","./core/components/ui/table/table-td.ts","./core/components/ui/table/table-tfoot.ts","./core/components/ui/table/table-th.ts","./core/components/ui/table/table-thead.ts","./core/components/ui/table/table-tr.ts","./core/components/ui/table/table.ts","./core/components/ui/theme/theme.ts","./core/components/ui/theme/theme-collection/core-variables.ts","./core/components/ui/theme/theme-collection/dark.ts","./core/components/ui/theme/theme-collection/light.ts","./core/components/ui/toast/message-subscriber.ts","./core/components/ui/toast/toast-item.ts","./core/components/ui/toast/toast.ts","./core/components/ui/toast/types.ts","./core/components/ui/tooltip/tooltip.ts","./core/decorators/Subscriber.ts","./core/decorators/api.spec.ts","./core/decorators/api.ts","./core/decorators/lifecycle.ts","./core/decorators/subscriber/ancestorAttribute.ts","./core/decorators/subscriber/autoFill.ts","./core/decorators/subscriber/autoSubscribe.ts","./core/decorators/subscriber/bind.ts","./core/decorators/subscriber/common.ts","./core/decorators/subscriber/dynamicPath.ts","./core/decorators/subscriber/dynamicPropertyWatch.spec.ts","./core/decorators/subscriber/dynamicPropertyWatch.ts","./core/decorators/subscriber/onAssign.ts","./core/decorators/subscriber/publish.spec.ts","./core/decorators/subscriber/publish.ts","./core/decorators/subscriber/publisherPath.ts","./core/decorators/subscriber/subscribe.spec.ts","./core/decorators/subscriber/subscribe.ts","./core/directives/DataProvider.ts","./core/directives/Wording.ts","./core/mixins/Fetcher.ts","./core/mixins/FormCheckable.ts","./core/mixins/FormElement.ts","./core/mixins/FormInput.ts","./core/mixins/Subscriber.ts","./core/mixins/TemplatesContainer.ts","./core/mixins/mixins.ts","./core/utils/Arrays.ts","./core/utils/DataBindObserver.ts","./core/utils/Electron.ts","./core/utils/Format.ts","./core/utils/HTML.ts","./core/utils/LocationHandler.ts","./core/utils/Objects.ts","./core/utils/PublisherProxy.ts","./core/utils/Utils.ts","./core/utils/aesCrypto.ts","./core/utils/api.ts","./core/utils/dataProviderKey.spec.ts","./core/utils/dataProviderKey.ts","./core/utils/endpoint.spec.ts","./core/utils/endpoint.ts","./core/utils/route.spec.ts","./core/utils/route.ts","./core/utils/url-pattern.ts","./test-utils/TestUtils.ts"],"version":"5.9.2"}
|