@egen-civitas/esm-extensions 1.0.2 → 1.1.1
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/CHANGELOG.md +12 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/left-nav.d.ts +2 -2
- package/dist/left-nav.js +2 -2
- package/dist/nav-entry.d.ts +38 -0
- package/dist/nav-entry.d.ts.map +1 -0
- package/dist/nav-entry.js +15 -0
- package/dist/public.d.ts +1 -0
- package/dist/public.d.ts.map +1 -1
- package/dist/public.js +1 -0
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,17 @@
|
|
|
1
1
|
# @egen-civitas/esm-extensions
|
|
2
2
|
|
|
3
|
+
## 1.1.1
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- b49f9e8: Suppression définitive de la barre latérale globale : le conteneur `#egen-left-nav-container` est retiré du shell (il n'était plus que masqué) ainsi que ses règles CSS. `LeftNavMenu`, `useLeftNav`, `setLeftNav` et `unsetLeftNav` sont marqués `@deprecated` : la navigation de niveau 2 est portée par la TopBar (slot `topbar-level2-nav`) ; une app qui veut une navigation interne affiche sa propre barre latérale.
|
|
8
|
+
|
|
9
|
+
## 1.1.0
|
|
10
|
+
|
|
11
|
+
### Minor Changes
|
|
12
|
+
|
|
13
|
+
- 48e7980: Navigation de niveau 2 pilotée par les apps : nouveau type partagé `NavEntryMeta`, constante `TOPBAR_LEVEL2_NAV_SLOT` (`topbar-level2-nav`) et validateur `isNavEntryMeta` dans `esm-extensions`. La colonne de navigation latérale globale (`leftNav`) est retirée de la grille du shell : seuls la TopBar et le footer sont globaux ; une app qui veut une sidebar la fournit dans son propre contenu.
|
|
14
|
+
|
|
3
15
|
## 1.0.2
|
|
4
16
|
|
|
5
17
|
### Patch Changes
|
package/dist/index.d.ts
CHANGED
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC"}
|
package/dist/index.js
CHANGED
package/dist/left-nav.d.ts
CHANGED
|
@@ -25,13 +25,13 @@ export interface SetLeftNavParams {
|
|
|
25
25
|
/**
|
|
26
26
|
* Sets the current left nav context. Must be paired with {@link unsetLeftNav}.
|
|
27
27
|
*
|
|
28
|
-
* @deprecated
|
|
28
|
+
* @deprecated Il n'existe plus de barre latérale globale : la navigation de niveau 2 est portée par la TopBar (slot `topbar-level2-nav`, type `NavEntryMeta`). Une app qui a besoin d'une navigation interne affiche sa propre barre latérale.
|
|
29
29
|
*/
|
|
30
30
|
export declare function setLeftNav({ name, basePath, mode, componentContext, state }: SetLeftNavParams): void;
|
|
31
31
|
/**
|
|
32
32
|
* Unsets the left nav context if the current context is for the supplied name.
|
|
33
33
|
*
|
|
34
|
-
* @deprecated
|
|
34
|
+
* @deprecated Il n'existe plus de barre latérale globale : la navigation de niveau 2 est portée par la TopBar (slot `topbar-level2-nav`, type `NavEntryMeta`). Une app qui a besoin d'une navigation interne affiche sa propre barre latérale.
|
|
35
35
|
*/
|
|
36
36
|
export declare function unsetLeftNav(name: string): void;
|
|
37
37
|
export {};
|
package/dist/left-nav.js
CHANGED
|
@@ -7,7 +7,7 @@ import { createGlobalStore } from "@egen-civitas/esm-state";
|
|
|
7
7
|
/**
|
|
8
8
|
* Sets the current left nav context. Must be paired with {@link unsetLeftNav}.
|
|
9
9
|
*
|
|
10
|
-
* @deprecated
|
|
10
|
+
* @deprecated Il n'existe plus de barre latérale globale : la navigation de niveau 2 est portée par la TopBar (slot `topbar-level2-nav`, type `NavEntryMeta`). Une app qui a besoin d'une navigation interne affiche sa propre barre latérale.
|
|
11
11
|
*/ export function setLeftNav({ name, basePath, mode, componentContext, state }) {
|
|
12
12
|
leftNavStore.setState({
|
|
13
13
|
slotName: name,
|
|
@@ -20,7 +20,7 @@ import { createGlobalStore } from "@egen-civitas/esm-state";
|
|
|
20
20
|
/**
|
|
21
21
|
* Unsets the left nav context if the current context is for the supplied name.
|
|
22
22
|
*
|
|
23
|
-
* @deprecated
|
|
23
|
+
* @deprecated Il n'existe plus de barre latérale globale : la navigation de niveau 2 est portée par la TopBar (slot `topbar-level2-nav`, type `NavEntryMeta`). Une app qui a besoin d'une navigation interne affiche sa propre barre latérale.
|
|
24
24
|
*/ export function unsetLeftNav(name) {
|
|
25
25
|
if (leftNavStore.getState().slotName === name) {
|
|
26
26
|
leftNavStore.setState(leftNavStore.getInitialState(), true);
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/** @module @category Extension */
|
|
2
|
+
/**
|
|
3
|
+
* Nom du slot sur lequel chaque app déclare ses entrées de navigation
|
|
4
|
+
* (niveau 2 de la TopBar). Déclaré dans le `routes.json` de l'app :
|
|
5
|
+
* `{ "slot": "topbar-level2-nav", "component": "navEntry", "meta": NavEntryMeta }`.
|
|
6
|
+
*/
|
|
7
|
+
export declare const TOPBAR_LEVEL2_NAV_SLOT = "topbar-level2-nav";
|
|
8
|
+
/**
|
|
9
|
+
* Métadonnées d'une entrée de navigation du niveau 2 de la TopBar.
|
|
10
|
+
* Partagé par les apps (qui le déclarent dans `meta`) et par la TopBar
|
|
11
|
+
* (qui le lit via `useExtensionSlotMeta<NavEntryMeta>(TOPBAR_LEVEL2_NAV_SLOT)`).
|
|
12
|
+
*/
|
|
13
|
+
export interface NavEntryMeta {
|
|
14
|
+
/** Entrée de niveau 2 (ex. `informations`) ; regroupe les colonnes du méga-menu. */
|
|
15
|
+
section: string;
|
|
16
|
+
/** Colonne du méga-menu (ex. `news`). */
|
|
17
|
+
group: string;
|
|
18
|
+
/** Texte par défaut, utilisé si `labelKey` n'a pas de traduction. */
|
|
19
|
+
label: string;
|
|
20
|
+
/** Clé de traduction du libellé (optionnelle). */
|
|
21
|
+
labelKey?: string;
|
|
22
|
+
/** Description par défaut. */
|
|
23
|
+
description?: string;
|
|
24
|
+
/** Clé de traduction de la description (optionnelle). */
|
|
25
|
+
descriptionKey?: string;
|
|
26
|
+
/** Nom d'icône lucide (ex. `Star`), résolu par la TopBar dans une liste blanche. */
|
|
27
|
+
icon?: string;
|
|
28
|
+
/** Route cible, relative à la base SPA (ex. `informations/news`). Doit exister dans un `pages[].route`. */
|
|
29
|
+
route: string;
|
|
30
|
+
/** Libellé/clé de la section et du groupe, si différents de leur identifiant. */
|
|
31
|
+
sectionLabel?: string;
|
|
32
|
+
sectionLabelKey?: string;
|
|
33
|
+
groupLabel?: string;
|
|
34
|
+
groupLabelKey?: string;
|
|
35
|
+
}
|
|
36
|
+
/** Valide une `meta` d'extension : vrai si c'est une `NavEntryMeta` exploitable. */
|
|
37
|
+
export declare function isNavEntryMeta(meta: unknown): meta is NavEntryMeta;
|
|
38
|
+
//# sourceMappingURL=nav-entry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nav-entry.d.ts","sourceRoot":"","sources":["../src/nav-entry.ts"],"names":[],"mappings":"AAAA,kCAAkC;AAElC;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,sBAAsB,CAAC;AAE1D;;;;GAIG;AACH,MAAM,WAAW,YAAY;IAC3B,oFAAoF;IACpF,OAAO,EAAE,MAAM,CAAC;IAChB,yCAAyC;IACzC,KAAK,EAAE,MAAM,CAAC;IACd,qEAAqE;IACrE,KAAK,EAAE,MAAM,CAAC;IACd,kDAAkD;IAClD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,8BAA8B;IAC9B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,yDAAyD;IACzD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,oFAAoF;IACpF,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,2GAA2G;IAC3G,KAAK,EAAE,MAAM,CAAC;IACd,iFAAiF;IACjF,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,oFAAoF;AACpF,wBAAgB,cAAc,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,IAAI,YAAY,CAIlE"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/** @module @category Extension */ /**
|
|
2
|
+
* Nom du slot sur lequel chaque app déclare ses entrées de navigation
|
|
3
|
+
* (niveau 2 de la TopBar). Déclaré dans le `routes.json` de l'app :
|
|
4
|
+
* `{ "slot": "topbar-level2-nav", "component": "navEntry", "meta": NavEntryMeta }`.
|
|
5
|
+
*/ export const TOPBAR_LEVEL2_NAV_SLOT = 'topbar-level2-nav';
|
|
6
|
+
/** Valide une `meta` d'extension : vrai si c'est une `NavEntryMeta` exploitable. */ export function isNavEntryMeta(meta) {
|
|
7
|
+
if (!meta || typeof meta !== 'object') return false;
|
|
8
|
+
const m = meta;
|
|
9
|
+
return [
|
|
10
|
+
'section',
|
|
11
|
+
'group',
|
|
12
|
+
'label',
|
|
13
|
+
'route'
|
|
14
|
+
].every((k)=>typeof m[k] === 'string' && m[k].length > 0);
|
|
15
|
+
}
|
package/dist/public.d.ts
CHANGED
|
@@ -4,4 +4,5 @@ export { type CancelLoading, renderExtension } from './render.js';
|
|
|
4
4
|
export { type ExtensionMeta, type ExtensionRegistration, type ExtensionStore, type AssignedExtension, type ConnectedExtension, type ExtensionSlotState, getExtensionStore, } from './store.js';
|
|
5
5
|
export { type WorkspaceRegistration } from './workspaces.js';
|
|
6
6
|
export { type ExtensionData, type ComponentConfig } from './types.js';
|
|
7
|
+
export { TOPBAR_LEVEL2_NAV_SLOT, type NavEntryMeta, isNavEntryMeta } from './nav-entry.js';
|
|
7
8
|
//# sourceMappingURL=public.d.ts.map
|
package/dist/public.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"public.d.ts","sourceRoot":"","sources":["../src/public.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,EACtB,iBAAiB,EACjB,MAAM,EACN,MAAM,EACN,SAAS,EACT,qBAAqB,EACrB,qBAAqB,GACtB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,KAAK,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,KAAK,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACnG,OAAO,EAAE,KAAK,aAAa,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAClE,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,qBAAqB,EAC1B,KAAK,cAAc,EACnB,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EACvB,KAAK,kBAAkB,EACvB,iBAAiB,GAClB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,KAAK,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAC7D,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,eAAe,EAAE,MAAM,YAAY,CAAC"}
|
|
1
|
+
{"version":3,"file":"public.d.ts","sourceRoot":"","sources":["../src/public.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,EACtB,iBAAiB,EACjB,MAAM,EACN,MAAM,EACN,SAAS,EACT,qBAAqB,EACrB,qBAAqB,GACtB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,KAAK,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,KAAK,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACnG,OAAO,EAAE,KAAK,aAAa,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAClE,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,qBAAqB,EAC1B,KAAK,cAAc,EACnB,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EACvB,KAAK,kBAAkB,EACvB,iBAAiB,GAClB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,KAAK,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAC7D,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,eAAe,EAAE,MAAM,YAAY,CAAC;AACtE,OAAO,EAAE,sBAAsB,EAAE,KAAK,YAAY,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC"}
|
package/dist/public.js
CHANGED
|
@@ -2,3 +2,4 @@ export { getExtensionNameFromId, registerExtension, attach, detach, detachAll, g
|
|
|
2
2
|
export { setLeftNav, unsetLeftNav } from "./left-nav.js";
|
|
3
3
|
export { renderExtension } from "./render.js";
|
|
4
4
|
export { getExtensionStore } from "./store.js";
|
|
5
|
+
export { TOPBAR_LEVEL2_NAV_SLOT, isNavEntryMeta } from "./nav-entry.js";
|