@egen-civitas/esm-extensions 1.1.1 → 1.2.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 +18 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/nav-behavior.d.ts +54 -0
- package/dist/nav-behavior.d.ts.map +1 -0
- package/dist/nav-behavior.js +41 -0
- package/dist/nav-entry.d.ts +23 -2
- package/dist/nav-entry.d.ts.map +1 -1
- package/dist/nav-entry.js +16 -3
- package/dist/public.d.ts +2 -1
- package/dist/public.d.ts.map +1 -1
- package/dist/public.js +2 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,23 @@
|
|
|
1
1
|
# @egen-civitas/esm-extensions
|
|
2
2
|
|
|
3
|
+
## 1.2.1
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- bd97b0e: Correctif de 1.2.0 : `registerNavBehavior` et `getNavBehavior` (ainsi que les types `NavBehavior`, `NavBehaviorTarget`, `NavSelectContext`) étaient documentés dans l'API publique mais absents du point d'entrée du package, donc inutilisables par les apps. `esm-extensions` les exporte désormais, et `esm-framework` les réexporte. Un test vérifie que chaque module de l'API publique (`public.ts`) est bien exporté par `index.ts`.
|
|
8
|
+
|
|
9
|
+
## 1.2.0
|
|
10
|
+
|
|
11
|
+
### Minor Changes
|
|
12
|
+
|
|
13
|
+
- 6700454: Navigation de niveau 2 de la TopBar : contextualisation par espace et surcharge de comportement par app (changements additifs, sans rupture).
|
|
14
|
+
|
|
15
|
+
- `NavEntryMeta.workspaces` : espaces (`intranet`, `extranet`…) où l'entrée apparaît ; absent, vide ou `'*'` = tous. Nouveau helper `isNavEntryInWorkspace` et constante `NAV_ALL_WORKSPACES`.
|
|
16
|
+
- `NavEntryMeta.group` devient facultatif : une entrée sans `group` est un lien simple (une section à entrée unique devient un bouton direct, sans menu déroulant).
|
|
17
|
+
- `NavEntryMeta.sectionRoute` : route du bouton de la section lui-même.
|
|
18
|
+
- `registerNavBehavior({ entry } | { section }, { onSelect })` / `getNavBehavior` : une app remplace (ou enrichit via `ctx.runDefault()`) la logique globale appliquée au clic sur son bouton de navigation.
|
|
19
|
+
- Mocks `esm-framework` (`mock` et `mock-jest`) : `registerNavBehavior`, `getNavBehavior` et réexport des constantes/validateurs purs.
|
|
20
|
+
|
|
3
21
|
## 1.1.1
|
|
4
22
|
|
|
5
23
|
### Patch Changes
|
package/dist/index.d.ts
CHANGED
|
@@ -2,6 +2,7 @@ export * from './extensions.js';
|
|
|
2
2
|
export * from './helpers.js';
|
|
3
3
|
export * from './left-nav.js';
|
|
4
4
|
export * from './nav-entry.js';
|
|
5
|
+
export * from './nav-behavior.js';
|
|
5
6
|
export * from './modals.js';
|
|
6
7
|
export * from './workspaces.js';
|
|
7
8
|
export * from './workspaces2.js';
|
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,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"}
|
|
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,mBAAmB,CAAC;AAClC,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
|
@@ -2,6 +2,7 @@ export * from "./extensions.js";
|
|
|
2
2
|
export * from "./helpers.js";
|
|
3
3
|
export * from "./left-nav.js";
|
|
4
4
|
export * from "./nav-entry.js";
|
|
5
|
+
export * from "./nav-behavior.js";
|
|
5
6
|
export * from "./modals.js";
|
|
6
7
|
export * from "./workspaces.js";
|
|
7
8
|
export * from "./workspaces2.js";
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cible d'un comportement de navigation : une entrée (le lien d'un menu, identifiée par le nom de
|
|
3
|
+
* son extension dans `routes.json`) ou une section (le bouton de niveau 2, identifié par `section`).
|
|
4
|
+
*/
|
|
5
|
+
export type NavBehaviorTarget = {
|
|
6
|
+
entry: string;
|
|
7
|
+
} | {
|
|
8
|
+
section: string;
|
|
9
|
+
};
|
|
10
|
+
/** Contexte transmis à `NavBehavior.onSelect` quand l'utilisateur active un bouton de navigation. */
|
|
11
|
+
export interface NavSelectContext {
|
|
12
|
+
/** Ce qui a été activé. */
|
|
13
|
+
target: NavBehaviorTarget;
|
|
14
|
+
/** Route visée, relative à la base SPA (ex. `annuaire/contacts`) ; absente pour une section sans `sectionRoute`. */
|
|
15
|
+
route?: string;
|
|
16
|
+
/** Identifiant de l'espace actif (ex. `intranet`). */
|
|
17
|
+
workspaceId: string;
|
|
18
|
+
/**
|
|
19
|
+
* Exécute la logique globale de la TopBar (son, fermeture du menu, navigation). Un comportement
|
|
20
|
+
* qui REMPLACE le défaut peut ne pas l'appeler ; un qui l'ENRICHIT l'appelle (avant ou après).
|
|
21
|
+
*/
|
|
22
|
+
runDefault: () => void;
|
|
23
|
+
}
|
|
24
|
+
export interface NavBehavior {
|
|
25
|
+
/** Remplace la logique globale appliquée au clic. Appeler `ctx.runDefault()` pour la conserver. */
|
|
26
|
+
onSelect: (ctx: NavSelectContext) => void;
|
|
27
|
+
}
|
|
28
|
+
interface NavBehaviorStore {
|
|
29
|
+
behaviors: Record<string, NavBehavior>;
|
|
30
|
+
}
|
|
31
|
+
/** @internal */
|
|
32
|
+
export declare const navBehaviorStore: import("zustand").StoreApi<NavBehaviorStore>;
|
|
33
|
+
/**
|
|
34
|
+
* Déclare le comportement d'un bouton de navigation du niveau 2 de la TopBar, à appeler au
|
|
35
|
+
* démarrage de l'app (`startupApp`). Sans comportement déclaré, la TopBar applique sa logique
|
|
36
|
+
* globale. Un seul comportement par cible : le dernier enregistré l'emporte.
|
|
37
|
+
*
|
|
38
|
+
* @returns Une fonction qui retire ce comportement (sans effet s'il a été remplacé depuis).
|
|
39
|
+
*
|
|
40
|
+
* @example
|
|
41
|
+
* ```ts
|
|
42
|
+
* registerNavBehavior({ entry: 'annuaire-nav-contacts' }, {
|
|
43
|
+
* onSelect: ({ runDefault }) => {
|
|
44
|
+
* trackEvent('annuaire.contacts');
|
|
45
|
+
* runDefault();
|
|
46
|
+
* },
|
|
47
|
+
* });
|
|
48
|
+
* ```
|
|
49
|
+
*/
|
|
50
|
+
export declare function registerNavBehavior(target: NavBehaviorTarget, behavior: NavBehavior): () => void;
|
|
51
|
+
/** Comportement déclaré pour une cible, s'il y en a un. */
|
|
52
|
+
export declare function getNavBehavior(target: NavBehaviorTarget): NavBehavior | undefined;
|
|
53
|
+
export {};
|
|
54
|
+
//# sourceMappingURL=nav-behavior.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nav-behavior.d.ts","sourceRoot":"","sources":["../src/nav-behavior.ts"],"names":[],"mappings":"AAGA;;;GAGG;AACH,MAAM,MAAM,iBAAiB,GAAG;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAExE,qGAAqG;AACrG,MAAM,WAAW,gBAAgB;IAC/B,2BAA2B;IAC3B,MAAM,EAAE,iBAAiB,CAAC;IAC1B,oHAAoH;IACpH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,sDAAsD;IACtD,WAAW,EAAE,MAAM,CAAC;IACpB;;;OAGG;IACH,UAAU,EAAE,MAAM,IAAI,CAAC;CACxB;AAED,MAAM,WAAW,WAAW;IAC1B,mGAAmG;IACnG,QAAQ,EAAE,CAAC,GAAG,EAAE,gBAAgB,KAAK,IAAI,CAAC;CAC3C;AAED,UAAU,gBAAgB;IACxB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;CACxC;AAED,gBAAgB;AAChB,eAAO,MAAM,gBAAgB,8CAA0E,CAAC;AAKxG;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,iBAAiB,EAAE,QAAQ,EAAE,WAAW,GAAG,MAAM,IAAI,CAShG;AAED,2DAA2D;AAC3D,wBAAgB,cAAc,CAAC,MAAM,EAAE,iBAAiB,GAAG,WAAW,GAAG,SAAS,CAEjF"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/** @module @category Extension */ import { createGlobalStore } from "@egen-civitas/esm-state";
|
|
2
|
+
/** @internal */ export const navBehaviorStore = createGlobalStore('nav-behaviors', {
|
|
3
|
+
behaviors: {}
|
|
4
|
+
});
|
|
5
|
+
const keyOf = (target)=>'entry' in target ? `entry:${target.entry}` : `section:${target.section}`;
|
|
6
|
+
/**
|
|
7
|
+
* Déclare le comportement d'un bouton de navigation du niveau 2 de la TopBar, à appeler au
|
|
8
|
+
* démarrage de l'app (`startupApp`). Sans comportement déclaré, la TopBar applique sa logique
|
|
9
|
+
* globale. Un seul comportement par cible : le dernier enregistré l'emporte.
|
|
10
|
+
*
|
|
11
|
+
* @returns Une fonction qui retire ce comportement (sans effet s'il a été remplacé depuis).
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* ```ts
|
|
15
|
+
* registerNavBehavior({ entry: 'annuaire-nav-contacts' }, {
|
|
16
|
+
* onSelect: ({ runDefault }) => {
|
|
17
|
+
* trackEvent('annuaire.contacts');
|
|
18
|
+
* runDefault();
|
|
19
|
+
* },
|
|
20
|
+
* });
|
|
21
|
+
* ```
|
|
22
|
+
*/ export function registerNavBehavior(target, behavior) {
|
|
23
|
+
const key = keyOf(target);
|
|
24
|
+
navBehaviorStore.setState((s)=>({
|
|
25
|
+
behaviors: {
|
|
26
|
+
...s.behaviors,
|
|
27
|
+
[key]: behavior
|
|
28
|
+
}
|
|
29
|
+
}));
|
|
30
|
+
return ()=>{
|
|
31
|
+
const { behaviors } = navBehaviorStore.getState();
|
|
32
|
+
if (behaviors[key] !== behavior) return;
|
|
33
|
+
const { [key]: _removed, ...rest } = behaviors;
|
|
34
|
+
navBehaviorStore.setState({
|
|
35
|
+
behaviors: rest
|
|
36
|
+
});
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
/** Comportement déclaré pour une cible, s'il y en a un. */ export function getNavBehavior(target) {
|
|
40
|
+
return navBehaviorStore.getState().behaviors[keyOf(target)];
|
|
41
|
+
}
|
package/dist/nav-entry.d.ts
CHANGED
|
@@ -13,8 +13,12 @@ export declare const TOPBAR_LEVEL2_NAV_SLOT = "topbar-level2-nav";
|
|
|
13
13
|
export interface NavEntryMeta {
|
|
14
14
|
/** Entrée de niveau 2 (ex. `informations`) ; regroupe les colonnes du méga-menu. */
|
|
15
15
|
section: string;
|
|
16
|
-
/**
|
|
17
|
-
|
|
16
|
+
/**
|
|
17
|
+
* Colonne du méga-menu (ex. `news`). Facultative : une entrée sans `group` est un lien simple.
|
|
18
|
+
* Une section dont toutes les entrées sont sans `group` et qui n'en a qu'une devient un bouton
|
|
19
|
+
* direct (sans menu déroulant) ; avec plusieurs, un menu à une seule colonne sans titre.
|
|
20
|
+
*/
|
|
21
|
+
group?: string;
|
|
18
22
|
/** Texte par défaut, utilisé si `labelKey` n'a pas de traduction. */
|
|
19
23
|
label: string;
|
|
20
24
|
/** Clé de traduction du libellé (optionnelle). */
|
|
@@ -32,7 +36,24 @@ export interface NavEntryMeta {
|
|
|
32
36
|
sectionLabelKey?: string;
|
|
33
37
|
groupLabel?: string;
|
|
34
38
|
groupLabelKey?: string;
|
|
39
|
+
/**
|
|
40
|
+
* Espaces (Intranet, Extranet…) dans lesquels l'entrée apparaît, par identifiant d'espace
|
|
41
|
+
* (ex. `['intranet']`). Absent, vide ou contenant `'*'` : tous les espaces. Toutes les
|
|
42
|
+
* entrées d'une même `section` n'ont pas à partager la même liste : la section d'un espace
|
|
43
|
+
* est composée des seules entrées qui y sont visibles.
|
|
44
|
+
*/
|
|
45
|
+
workspaces?: string[];
|
|
46
|
+
/**
|
|
47
|
+
* Route du bouton de la section lui-même (cliquable en plus de son menu), relative à la base SPA.
|
|
48
|
+
* Doit exister dans un `pages[].route`. Si plusieurs entrées d'une section la renseignent, la
|
|
49
|
+
* première dans l'ordre du slot l'emporte.
|
|
50
|
+
*/
|
|
51
|
+
sectionRoute?: string;
|
|
35
52
|
}
|
|
53
|
+
/** Valeur de `NavEntryMeta.workspaces` qui désigne « tous les espaces ». */
|
|
54
|
+
export declare const NAV_ALL_WORKSPACES = "*";
|
|
36
55
|
/** Valide une `meta` d'extension : vrai si c'est une `NavEntryMeta` exploitable. */
|
|
37
56
|
export declare function isNavEntryMeta(meta: unknown): meta is NavEntryMeta;
|
|
57
|
+
/** Vrai si l'entrée doit être affichée dans l'espace `workspaceId` (voir `NavEntryMeta.workspaces`). */
|
|
58
|
+
export declare function isNavEntryInWorkspace(meta: NavEntryMeta, workspaceId: string): boolean;
|
|
38
59
|
//# sourceMappingURL=nav-entry.d.ts.map
|
package/dist/nav-entry.d.ts.map
CHANGED
|
@@ -1 +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
|
|
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;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,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;IACvB;;;;;OAKG;IACH,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,4EAA4E;AAC5E,eAAO,MAAM,kBAAkB,MAAM,CAAC;AAEtC,oFAAoF;AACpF,wBAAgB,cAAc,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,IAAI,YAAY,CAelE;AAED,wGAAwG;AACxG,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAItF"}
|
package/dist/nav-entry.js
CHANGED
|
@@ -3,13 +3,26 @@
|
|
|
3
3
|
* (niveau 2 de la TopBar). Déclaré dans le `routes.json` de l'app :
|
|
4
4
|
* `{ "slot": "topbar-level2-nav", "component": "navEntry", "meta": NavEntryMeta }`.
|
|
5
5
|
*/ export const TOPBAR_LEVEL2_NAV_SLOT = 'topbar-level2-nav';
|
|
6
|
+
/** Valeur de `NavEntryMeta.workspaces` qui désigne « tous les espaces ». */ export const NAV_ALL_WORKSPACES = '*';
|
|
6
7
|
/** Valide une `meta` d'extension : vrai si c'est une `NavEntryMeta` exploitable. */ export function isNavEntryMeta(meta) {
|
|
7
8
|
if (!meta || typeof meta !== 'object') return false;
|
|
8
9
|
const m = meta;
|
|
9
|
-
|
|
10
|
+
if (![
|
|
10
11
|
'section',
|
|
11
|
-
'group',
|
|
12
12
|
'label',
|
|
13
13
|
'route'
|
|
14
|
-
].every((k)=>typeof m[k] === 'string' && m[k].length > 0)
|
|
14
|
+
].every((k)=>typeof m[k] === 'string' && m[k].length > 0)) {
|
|
15
|
+
return false;
|
|
16
|
+
}
|
|
17
|
+
if (m.group !== undefined && (typeof m.group !== 'string' || m.group.length === 0)) return false;
|
|
18
|
+
if (m.sectionRoute !== undefined && (typeof m.sectionRoute !== 'string' || m.sectionRoute.length === 0)) return false;
|
|
19
|
+
if (m.workspaces !== undefined && !(Array.isArray(m.workspaces) && m.workspaces.every((w)=>typeof w === 'string'))) {
|
|
20
|
+
return false;
|
|
21
|
+
}
|
|
22
|
+
return true;
|
|
23
|
+
}
|
|
24
|
+
/** Vrai si l'entrée doit être affichée dans l'espace `workspaceId` (voir `NavEntryMeta.workspaces`). */ export function isNavEntryInWorkspace(meta, workspaceId) {
|
|
25
|
+
const { workspaces } = meta;
|
|
26
|
+
if (!workspaces || workspaces.length === 0) return true;
|
|
27
|
+
return workspaces.includes(NAV_ALL_WORKSPACES) || workspaces.includes(workspaceId);
|
|
15
28
|
}
|
package/dist/public.d.ts
CHANGED
|
@@ -4,5 +4,6 @@ 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
|
+
export { TOPBAR_LEVEL2_NAV_SLOT, NAV_ALL_WORKSPACES, type NavEntryMeta, isNavEntryMeta, isNavEntryInWorkspace, } from './nav-entry.js';
|
|
8
|
+
export { type NavBehavior, type NavBehaviorTarget, type NavSelectContext, registerNavBehavior, getNavBehavior, } from './nav-behavior.js';
|
|
8
9
|
//# 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;AACtE,OAAO,
|
|
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,EACL,sBAAsB,EACtB,kBAAkB,EAClB,KAAK,YAAY,EACjB,cAAc,EACd,qBAAqB,GACtB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,KAAK,WAAW,EAChB,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACrB,mBAAmB,EACnB,cAAc,GACf,MAAM,mBAAmB,CAAC"}
|
package/dist/public.js
CHANGED
|
@@ -2,4 +2,5 @@ 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";
|
|
5
|
+
export { TOPBAR_LEVEL2_NAV_SLOT, NAV_ALL_WORKSPACES, isNavEntryMeta, isNavEntryInWorkspace } from "./nav-entry.js";
|
|
6
|
+
export { registerNavBehavior, getNavBehavior } from "./nav-behavior.js";
|