@finos/legend-application 15.0.18 → 15.0.19

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.
@@ -15,18 +15,23 @@
15
15
  */
16
16
  import { type ExtensionsConfigurationData } from '@finos/legend-shared';
17
17
  import type { LegendApplicationConfigurationInput } from './LegendApplication.js';
18
- import { type KeyedDocumentationEntry, type DocumentationEntryData, type ContextualDocumentationConfig, type ContextualDocumentationEntry, type DocumentationRegistryEntry } from '../stores/DocumentationService.js';
18
+ import { type KeyedDocumentationEntry, type DocumentationEntryData, type ContextualDocumentationConfig, type ContextualDocumentationEntry, type DocumentationRegistryEntry, type DocumentationLinkEntry } from '../stores/DocumentationService.js';
19
19
  import type { SettingOverrideConfigData } from '../stores/SettingService.js';
20
20
  export interface LegendApplicationVersionData {
21
21
  buildTime: string;
22
22
  version: string;
23
23
  commitSHA: string;
24
24
  }
25
+ export interface LegendApplicationLink {
26
+ url: string;
27
+ label: string;
28
+ }
25
29
  export interface LegendApplicationConfigurationData {
26
30
  appName: string;
27
31
  env: string;
28
32
  documentation?: {
29
33
  url: string;
34
+ links?: Record<string, LegendApplicationLink>;
30
35
  registry?: DocumentationRegistryEntry[];
31
36
  entries?: Record<string, DocumentationEntryData>;
32
37
  contextualEntries?: ContextualDocumentationConfig;
@@ -43,6 +48,7 @@ export declare abstract class LegendApplicationConfig {
43
48
  readonly env: string;
44
49
  readonly applicationStorageKey: string;
45
50
  readonly documentationUrl?: string | undefined;
51
+ readonly documentationLinkEntries?: DocumentationLinkEntry[];
46
52
  readonly documentationRegistryEntries: DocumentationRegistryEntry[];
47
53
  readonly keyedDocumentationEntries: KeyedDocumentationEntry[];
48
54
  readonly contextualDocEntries: ContextualDocumentationEntry[];
@@ -1 +1 @@
1
- {"version":3,"file":"LegendApplicationConfig.d.ts","sourceRoot":"","sources":["../../src/application/LegendApplicationConfig.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAGL,KAAK,2BAA2B,EAEjC,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAE,mCAAmC,EAAE,MAAM,wBAAwB,CAAC;AAClF,OAAO,EAGL,KAAK,uBAAuB,EAC5B,KAAK,sBAAsB,EAC3B,KAAK,6BAA6B,EAClC,KAAK,4BAA4B,EACjC,KAAK,0BAA0B,EAChC,MAAM,mCAAmC,CAAC;AAC3C,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AAE7E,MAAM,WAAW,4BAA4B;IAC3C,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,kCAAkC;IACjD,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ,aAAa,CAAC,EAAE;QACd,GAAG,EAAE,MAAM,CAAC;QACZ,QAAQ,CAAC,EAAE,0BAA0B,EAAE,CAAC;QACxC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,sBAAsB,CAAC,CAAC;QACjD,iBAAiB,CAAC,EAAE,6BAA6B,CAAC;KACnD,CAAC;IACF,WAAW,CAAC,EAAE;QACZ,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,iBAAiB,CAAC,EAAE,yBAAyB,CAAC;KAC/C,CAAC;IAIF,UAAU,CAAC,EAAE,2BAA2B,CAAC;CAC1C;AAED,8BAAsB,uBAAuB;IAC3C,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,qBAAqB,EAAE,MAAM,CAAC;IAGvC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/C,QAAQ,CAAC,4BAA4B,EAAE,0BAA0B,EAAE,CAAM;IACzE,QAAQ,CAAC,yBAAyB,EAAE,uBAAuB,EAAE,CAAM;IACnE,QAAQ,CAAC,oBAAoB,EAAE,4BAA4B,EAAE,CAAM;IAGnE,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;gBAGlC,KAAK,EAAE,mCAAmC,CAAC,kCAAkC,CAAC;IAyChF,SAAS,CAAC,MAAM,CAAC,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM;IAOxD,QAAQ,CAAC,+BAA+B,IAAI,MAAM;CACnD"}
1
+ {"version":3,"file":"LegendApplicationConfig.d.ts","sourceRoot":"","sources":["../../src/application/LegendApplicationConfig.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAGL,KAAK,2BAA2B,EAEjC,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAE,mCAAmC,EAAE,MAAM,wBAAwB,CAAC;AAClF,OAAO,EAGL,KAAK,uBAAuB,EAC5B,KAAK,sBAAsB,EAC3B,KAAK,6BAA6B,EAClC,KAAK,4BAA4B,EACjC,KAAK,0BAA0B,EAC/B,KAAK,sBAAsB,EAE5B,MAAM,mCAAmC,CAAC;AAC3C,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AAE7E,MAAM,WAAW,4BAA4B;IAC3C,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,qBAAqB;IACpC,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,kCAAkC;IACjD,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ,aAAa,CAAC,EAAE;QACd,GAAG,EAAE,MAAM,CAAC;QACZ,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC;QAC9C,QAAQ,CAAC,EAAE,0BAA0B,EAAE,CAAC;QACxC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,sBAAsB,CAAC,CAAC;QACjD,iBAAiB,CAAC,EAAE,6BAA6B,CAAC;KACnD,CAAC;IACF,WAAW,CAAC,EAAE;QACZ,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,iBAAiB,CAAC,EAAE,yBAAyB,CAAC;KAC/C,CAAC;IAIF,UAAU,CAAC,EAAE,2BAA2B,CAAC;CAC1C;AAED,8BAAsB,uBAAuB;IAC3C,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,qBAAqB,EAAE,MAAM,CAAC;IAGvC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/C,QAAQ,CAAC,wBAAwB,CAAC,EAAE,sBAAsB,EAAE,CAAM;IAClE,QAAQ,CAAC,4BAA4B,EAAE,0BAA0B,EAAE,CAAM;IACzE,QAAQ,CAAC,yBAAyB,EAAE,uBAAuB,EAAE,CAAM;IACnE,QAAQ,CAAC,oBAAoB,EAAE,4BAA4B,EAAE,CAAM;IAGnE,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;gBAGlC,KAAK,EAAE,mCAAmC,CAAC,kCAAkC,CAAC;IA4ChF,SAAS,CAAC,MAAM,CAAC,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM;IAOxD,QAAQ,CAAC,+BAA+B,IAAI,MAAM;CACnD"}
@@ -14,7 +14,7 @@
14
14
  * limitations under the License.
15
15
  */
16
16
  import { guaranteeNonEmptyString, guaranteeNonNullable, URL_SEPARATOR, } from '@finos/legend-shared';
17
- import { collectKeyedDocumentationEntriesFromConfig, collectContextualDocumentationEntries, } from '../stores/DocumentationService.js';
17
+ import { collectKeyedDocumentationEntriesFromConfig, collectContextualDocumentationEntries, collectDocumentationLinkEntryFromConfig, } from '../stores/DocumentationService.js';
18
18
  export class LegendApplicationConfig {
19
19
  appName;
20
20
  baseAddress;
@@ -22,6 +22,7 @@ export class LegendApplicationConfig {
22
22
  applicationStorageKey;
23
23
  // documentation
24
24
  documentationUrl;
25
+ documentationLinkEntries = [];
25
26
  documentationRegistryEntries = [];
26
27
  keyedDocumentationEntries = [];
27
28
  contextualDocEntries = [];
@@ -38,6 +39,7 @@ export class LegendApplicationConfig {
38
39
  this.getDefaultApplicationStorageKey();
39
40
  // Documentation
40
41
  this.documentationUrl = input.configData.documentation?.url;
42
+ this.documentationLinkEntries = collectDocumentationLinkEntryFromConfig(input.configData.documentation?.links ?? {});
41
43
  this.documentationRegistryEntries =
42
44
  input.configData.documentation?.registry ?? [];
43
45
  this.keyedDocumentationEntries = collectKeyedDocumentationEntriesFromConfig(input.configData.documentation?.entries ?? {});
@@ -1 +1 @@
1
- {"version":3,"file":"LegendApplicationConfig.js","sourceRoot":"","sources":["../../src/application/LegendApplicationConfig.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EACL,uBAAuB,EACvB,oBAAoB,EAEpB,aAAa,GACd,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACL,0CAA0C,EAC1C,qCAAqC,GAMtC,MAAM,mCAAmC,CAAC;AA4B3C,MAAM,OAAgB,uBAAuB;IAClC,OAAO,CAAS;IAChB,WAAW,CAAS;IACpB,GAAG,CAAS;IACZ,qBAAqB,CAAS;IAEvC,gBAAgB;IACP,gBAAgB,CAAsB;IACtC,4BAA4B,GAAiC,EAAE,CAAC;IAChE,yBAAyB,GAA8B,EAAE,CAAC;IAC1D,oBAAoB,GAAmC,EAAE,CAAC;IAEnE,UAAU;IACD,UAAU,CAAS;IACnB,mBAAmB,CAAS;IAC5B,kBAAkB,CAAS;IAEpC,YACE,KAA8E;QAE9E,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC;QACrC,IAAI,CAAC,OAAO,GAAG,uBAAuB,CACpC,KAAK,CAAC,UAAU,CAAC,OAAO,EACxB,kEAAkE,CACnE,CAAC;QACF,IAAI,CAAC,GAAG,GAAG,uBAAuB,CAChC,KAAK,CAAC,UAAU,CAAC,GAAG,EACpB,8DAA8D,CAC/D,CAAC;QACF,IAAI,CAAC,qBAAqB;YACxB,KAAK,CAAC,UAAU,CAAC,WAAW,EAAE,UAAU;gBACxC,IAAI,CAAC,+BAA+B,EAAE,CAAC;QAEzC,gBAAgB;QAChB,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC,UAAU,CAAC,aAAa,EAAE,GAAG,CAAC;QAC5D,IAAI,CAAC,4BAA4B;YAC/B,KAAK,CAAC,UAAU,CAAC,aAAa,EAAE,QAAQ,IAAI,EAAE,CAAC;QACjD,IAAI,CAAC,yBAAyB,GAAG,0CAA0C,CACzE,KAAK,CAAC,UAAU,CAAC,aAAa,EAAE,OAAO,IAAI,EAAE,CAC9C,CAAC;QACF,IAAI,CAAC,oBAAoB,GAAG,qCAAqC,CAC/D,KAAK,CAAC,UAAU,CAAC,aAAa,EAAE,iBAAiB,IAAI,EAAE,CACxD,CAAC;QAEF,UAAU;QACV,IAAI,CAAC,UAAU,GAAG,oBAAoB,CACpC,KAAK,CAAC,WAAW,CAAC,OAAO,EACzB,+DAA+D,CAChE,CAAC;QACF,IAAI,CAAC,mBAAmB,GAAG,oBAAoB,CAC7C,KAAK,CAAC,WAAW,CAAC,SAAS,EAC3B,iEAAiE,CAClE,CAAC;QACF,IAAI,CAAC,kBAAkB,GAAG,oBAAoB,CAC5C,KAAK,CAAC,WAAW,CAAC,SAAS,EAC3B,iEAAiE,CAClE,CAAC;IACJ,CAAC;IAES,MAAM,CAAC,kBAAkB,CAAC,GAAW;QAC7C,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE;YACxC,OAAO,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,GAAG,CAAC;SACrC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;CAGF"}
1
+ {"version":3,"file":"LegendApplicationConfig.js","sourceRoot":"","sources":["../../src/application/LegendApplicationConfig.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EACL,uBAAuB,EACvB,oBAAoB,EAEpB,aAAa,GACd,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACL,0CAA0C,EAC1C,qCAAqC,EAOrC,uCAAuC,GACxC,MAAM,mCAAmC,CAAC;AAkC3C,MAAM,OAAgB,uBAAuB;IAClC,OAAO,CAAS;IAChB,WAAW,CAAS;IACpB,GAAG,CAAS;IACZ,qBAAqB,CAAS;IAEvC,gBAAgB;IACP,gBAAgB,CAAsB;IACtC,wBAAwB,GAA8B,EAAE,CAAC;IACzD,4BAA4B,GAAiC,EAAE,CAAC;IAChE,yBAAyB,GAA8B,EAAE,CAAC;IAC1D,oBAAoB,GAAmC,EAAE,CAAC;IAEnE,UAAU;IACD,UAAU,CAAS;IACnB,mBAAmB,CAAS;IAC5B,kBAAkB,CAAS;IAEpC,YACE,KAA8E;QAE9E,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC;QACrC,IAAI,CAAC,OAAO,GAAG,uBAAuB,CACpC,KAAK,CAAC,UAAU,CAAC,OAAO,EACxB,kEAAkE,CACnE,CAAC;QACF,IAAI,CAAC,GAAG,GAAG,uBAAuB,CAChC,KAAK,CAAC,UAAU,CAAC,GAAG,EACpB,8DAA8D,CAC/D,CAAC;QACF,IAAI,CAAC,qBAAqB;YACxB,KAAK,CAAC,UAAU,CAAC,WAAW,EAAE,UAAU;gBACxC,IAAI,CAAC,+BAA+B,EAAE,CAAC;QAEzC,gBAAgB;QAChB,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC,UAAU,CAAC,aAAa,EAAE,GAAG,CAAC;QAC5D,IAAI,CAAC,wBAAwB,GAAG,uCAAuC,CACrE,KAAK,CAAC,UAAU,CAAC,aAAa,EAAE,KAAK,IAAI,EAAE,CAC5C,CAAC;QACF,IAAI,CAAC,4BAA4B;YAC/B,KAAK,CAAC,UAAU,CAAC,aAAa,EAAE,QAAQ,IAAI,EAAE,CAAC;QACjD,IAAI,CAAC,yBAAyB,GAAG,0CAA0C,CACzE,KAAK,CAAC,UAAU,CAAC,aAAa,EAAE,OAAO,IAAI,EAAE,CAC9C,CAAC;QACF,IAAI,CAAC,oBAAoB,GAAG,qCAAqC,CAC/D,KAAK,CAAC,UAAU,CAAC,aAAa,EAAE,iBAAiB,IAAI,EAAE,CACxD,CAAC;QAEF,UAAU;QACV,IAAI,CAAC,UAAU,GAAG,oBAAoB,CACpC,KAAK,CAAC,WAAW,CAAC,OAAO,EACzB,+DAA+D,CAChE,CAAC;QACF,IAAI,CAAC,mBAAmB,GAAG,oBAAoB,CAC7C,KAAK,CAAC,WAAW,CAAC,SAAS,EAC3B,iEAAiE,CAClE,CAAC;QACF,IAAI,CAAC,kBAAkB,GAAG,oBAAoB,CAC5C,KAAK,CAAC,WAAW,CAAC,SAAS,EAC3B,iEAAiE,CAClE,CAAC;IACJ,CAAC;IAES,MAAM,CAAC,kBAAkB,CAAC,GAAW;QAC7C,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE;YACxC,OAAO,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,GAAG,CAAC;SACrC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;CAGF"}
package/lib/index.css CHANGED
@@ -1,4 +1,4 @@
1
- /** @license @finos/legend-application v15.0.18
1
+ /** @license @finos/legend-application v15.0.19
2
2
  * Copyright (c) 2020-present, Goldman Sachs
3
3
  *
4
4
  * Licensed under the Apache License, Version 2.0 (the "License");
package/lib/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@finos/legend-application",
3
- "version": "15.0.18",
3
+ "version": "15.0.19",
4
4
  "description": "Legend application core",
5
5
  "keywords": [
6
6
  "legend",
@@ -15,6 +15,7 @@
15
15
  */
16
16
  import { type MarkdownText, type PlainObject, SerializationFactory } from '@finos/legend-shared';
17
17
  import type { GenericLegendApplicationStore } from './ApplicationStore.js';
18
+ import type { LegendApplicationLink } from '../application/LegendApplicationConfig.js';
18
19
  export type DocumentationRegistryEntry = {
19
20
  url: string;
20
21
  /**
@@ -61,7 +62,13 @@ export type KeyedDocumentationEntry = {
61
62
  key: string;
62
63
  content: DocumentationEntry;
63
64
  };
65
+ export type DocumentationLinkEntry = {
66
+ key: string;
67
+ label: string;
68
+ url: string;
69
+ };
64
70
  export declare const collectKeyedDocumentationEntriesFromConfig: (rawEntries: Record<string, DocumentationEntryData>) => KeyedDocumentationEntry[];
71
+ export declare const collectDocumentationLinkEntryFromConfig: (rawEntries: Record<string, LegendApplicationLink>) => DocumentationLinkEntry[];
65
72
  export type ContextualDocumentationConfig = Record<string, string>;
66
73
  export type ContextualDocumentationEntry = {
67
74
  context: string;
@@ -70,6 +77,7 @@ export type ContextualDocumentationEntry = {
70
77
  export declare const collectContextualDocumentationEntries: (config: ContextualDocumentationConfig) => ContextualDocumentationEntry[];
71
78
  export declare class DocumentationService {
72
79
  readonly url?: string | undefined;
80
+ readonly links?: DocumentationLinkEntry[] | undefined;
73
81
  private readonly docRegistry;
74
82
  private readonly contextualDocIndex;
75
83
  constructor(applicationStore: GenericLegendApplicationStore);
@@ -1 +1 @@
1
- {"version":3,"file":"DocumentationService.d.ts","sourceRoot":"","sources":["../../src/stores/DocumentationService.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EACL,KAAK,YAAY,EACjB,KAAK,WAAW,EAEhB,oBAAoB,EAGrB,MAAM,sBAAsB,CAAC;AAS9B,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,uBAAuB,CAAC;AAE3E,MAAM,MAAM,0BAA0B,GAAG;IACvC,GAAG,EAAE,MAAM,CAAC;IACZ;;;;;;;;;;;;OAYG;IACH,MAAM,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC7B;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG;IACtC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,sBAAsB,CAAC,CAAC;CACjD,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG;IACnC,YAAY,CAAC,EAAE,YAAY,GAAG,SAAS,CAAC;IACxC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACzB,OAAO,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;CAChC,CAAC;AAEF,qBAAa,kBAAkB;IAC7B,QAAQ,CAAC,GAAG,EAAG,MAAM,CAAC;IAEtB,YAAY,CAAC,EAAE,YAAY,GAAG,SAAS,CAAC;IACxC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACzB,OAAO,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IAE/B,MAAM,CAAC,QAAQ,CAAC,aAAa,2CAW3B;IAEF,MAAM,CAAC,MAAM,CACX,IAAI,EAAE,WAAW,CAAC,kBAAkB,CAAC,EACrC,gBAAgB,EAAE,MAAM,GACvB,kBAAkB;CAKtB;AAED,MAAM,MAAM,uBAAuB,GAAG;IACpC,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,kBAAkB,CAAC;CAC7B,CAAC;AAEF,eAAO,MAAM,0CAA0C,eACzC,OAAO,MAAM,EAAE,sBAAsB,CAAC,KACjD,uBAAuB,EAIrB,CAAC;AAEN,MAAM,MAAM,6BAA6B,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AACnE,MAAM,MAAM,4BAA4B,GAAG;IACzC,OAAO,EAAE,MAAM,CAAC;IAChB,gBAAgB,EAAE,MAAM,CAAC;CAC1B,CAAC;AACF,eAAO,MAAM,qCAAqC,WACxC,6BAA6B,KACpC,4BAA4B,EAI1B,CAAC;AAEN,qBAAa,oBAAoB;IAC/B,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAElC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAyC;IACrE,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAyC;gBAEhE,gBAAgB,EAAE,6BAA6B;IAkG3D,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,kBAAkB,GAAG,SAAS;IAIxD,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAIjC,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG,kBAAkB,GAAG,SAAS;IAIlE,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAI3C,gBAAgB,IAAI,kBAAkB,EAAE;IAIxC,kBAAkB,IAAI,MAAM,CAAC,MAAM,EAAE,sBAAsB,CAAC;IAQ5D,yBAAyB,IAAI,6BAA6B;CAO3D"}
1
+ {"version":3,"file":"DocumentationService.d.ts","sourceRoot":"","sources":["../../src/stores/DocumentationService.ts"],"names":[],"mappings":"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"}
@@ -13,7 +13,7 @@
13
13
  * See the License for the specific language governing permissions and
14
14
  * limitations under the License.
15
15
  */
16
- import { SerializationFactory, LogEvent, uniq, } from '@finos/legend-shared';
16
+ import { SerializationFactory, LogEvent, uniq, guaranteeNonEmptyString, } from '@finos/legend-shared';
17
17
  import { createModelSchema, custom, list, optional, primitive, } from 'serializr';
18
18
  import { APPLICATION_EVENT } from '../__lib__/LegendApplicationEvent.js';
19
19
  class DocumentationEntry {
@@ -41,17 +41,24 @@ export const collectKeyedDocumentationEntriesFromConfig = (rawEntries) => Object
41
41
  key: entry[0],
42
42
  content: DocumentationEntry.create(entry[1], entry[0]),
43
43
  }));
44
+ export const collectDocumentationLinkEntryFromConfig = (rawEntries) => Object.entries(rawEntries).map((entry) => ({
45
+ key: guaranteeNonEmptyString(entry[0], "Documentation link 'key' is missing"),
46
+ label: guaranteeNonEmptyString(entry[1].label, "Documentation link 'label' is missing"),
47
+ url: guaranteeNonEmptyString(entry[1].url, "Documentation link 'url' is missing"),
48
+ }));
44
49
  export const collectContextualDocumentationEntries = (config) => Object.entries(config).map((entry) => ({
45
50
  context: entry[0],
46
51
  documentationKey: entry[1],
47
52
  }));
48
53
  export class DocumentationService {
49
54
  url;
55
+ links;
50
56
  docRegistry = new Map();
51
57
  contextualDocIndex = new Map();
52
58
  constructor(applicationStore) {
53
59
  // set the main documenation site url
54
60
  this.url = applicationStore.config.documentationUrl;
61
+ this.links = applicationStore.config.documentationLinkEntries;
55
62
  /**
56
63
  * NOTE: the order of documentation entry overidding is (the later override the former):
57
64
  * 1. Natively specified: specified in the codebase (no overriding allowed within this group of documentation entries):
@@ -1 +1 @@
1
- {"version":3,"file":"DocumentationService.js","sourceRoot":"","sources":["../../src/stores/DocumentationService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DocumentationService.js","sourceRoot":"","sources":["../../src/stores/DocumentationService.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@finos/legend-application",
3
- "version": "15.0.18",
3
+ "version": "15.0.19",
4
4
  "description": "Legend application core",
5
5
  "keywords": [
6
6
  "legend",
@@ -29,6 +29,8 @@ import {
29
29
  type ContextualDocumentationConfig,
30
30
  type ContextualDocumentationEntry,
31
31
  type DocumentationRegistryEntry,
32
+ type DocumentationLinkEntry,
33
+ collectDocumentationLinkEntryFromConfig,
32
34
  } from '../stores/DocumentationService.js';
33
35
  import type { SettingOverrideConfigData } from '../stores/SettingService.js';
34
36
 
@@ -38,11 +40,17 @@ export interface LegendApplicationVersionData {
38
40
  commitSHA: string;
39
41
  }
40
42
 
43
+ export interface LegendApplicationLink {
44
+ url: string;
45
+ label: string;
46
+ }
47
+
41
48
  export interface LegendApplicationConfigurationData {
42
49
  appName: string;
43
50
  env: string;
44
51
  documentation?: {
45
52
  url: string;
53
+ links?: Record<string, LegendApplicationLink>;
46
54
  registry?: DocumentationRegistryEntry[];
47
55
  entries?: Record<string, DocumentationEntryData>;
48
56
  contextualEntries?: ContextualDocumentationConfig;
@@ -65,6 +73,7 @@ export abstract class LegendApplicationConfig {
65
73
 
66
74
  // documentation
67
75
  readonly documentationUrl?: string | undefined;
76
+ readonly documentationLinkEntries?: DocumentationLinkEntry[] = [];
68
77
  readonly documentationRegistryEntries: DocumentationRegistryEntry[] = [];
69
78
  readonly keyedDocumentationEntries: KeyedDocumentationEntry[] = [];
70
79
  readonly contextualDocEntries: ContextualDocumentationEntry[] = [];
@@ -92,6 +101,9 @@ export abstract class LegendApplicationConfig {
92
101
 
93
102
  // Documentation
94
103
  this.documentationUrl = input.configData.documentation?.url;
104
+ this.documentationLinkEntries = collectDocumentationLinkEntryFromConfig(
105
+ input.configData.documentation?.links ?? {},
106
+ );
95
107
  this.documentationRegistryEntries =
96
108
  input.configData.documentation?.registry ?? [];
97
109
  this.keyedDocumentationEntries = collectKeyedDocumentationEntriesFromConfig(
@@ -21,6 +21,7 @@ import {
21
21
  SerializationFactory,
22
22
  LogEvent,
23
23
  uniq,
24
+ guaranteeNonEmptyString,
24
25
  } from '@finos/legend-shared';
25
26
  import {
26
27
  createModelSchema,
@@ -31,6 +32,7 @@ import {
31
32
  } from 'serializr';
32
33
  import { APPLICATION_EVENT } from '../__lib__/LegendApplicationEvent.js';
33
34
  import type { GenericLegendApplicationStore } from './ApplicationStore.js';
35
+ import type { LegendApplicationLink } from '../application/LegendApplicationConfig.js';
34
36
 
35
37
  export type DocumentationRegistryEntry = {
36
38
  url: string;
@@ -104,6 +106,12 @@ export type KeyedDocumentationEntry = {
104
106
  content: DocumentationEntry;
105
107
  };
106
108
 
109
+ export type DocumentationLinkEntry = {
110
+ key: string;
111
+ label: string;
112
+ url: string;
113
+ };
114
+
107
115
  export const collectKeyedDocumentationEntriesFromConfig = (
108
116
  rawEntries: Record<string, DocumentationEntryData>,
109
117
  ): KeyedDocumentationEntry[] =>
@@ -112,6 +120,24 @@ export const collectKeyedDocumentationEntriesFromConfig = (
112
120
  content: DocumentationEntry.create(entry[1], entry[0]),
113
121
  }));
114
122
 
123
+ export const collectDocumentationLinkEntryFromConfig = (
124
+ rawEntries: Record<string, LegendApplicationLink>,
125
+ ): DocumentationLinkEntry[] =>
126
+ Object.entries(rawEntries).map((entry) => ({
127
+ key: guaranteeNonEmptyString(
128
+ entry[0],
129
+ "Documentation link 'key' is missing",
130
+ ),
131
+ label: guaranteeNonEmptyString(
132
+ entry[1].label,
133
+ "Documentation link 'label' is missing",
134
+ ),
135
+ url: guaranteeNonEmptyString(
136
+ entry[1].url,
137
+ "Documentation link 'url' is missing",
138
+ ),
139
+ }));
140
+
115
141
  export type ContextualDocumentationConfig = Record<string, string>;
116
142
  export type ContextualDocumentationEntry = {
117
143
  context: string;
@@ -127,6 +153,7 @@ export const collectContextualDocumentationEntries = (
127
153
 
128
154
  export class DocumentationService {
129
155
  readonly url?: string | undefined;
156
+ readonly links?: DocumentationLinkEntry[] | undefined;
130
157
 
131
158
  private readonly docRegistry = new Map<string, DocumentationEntry>();
132
159
  private readonly contextualDocIndex = new Map<string, DocumentationEntry>();
@@ -134,6 +161,7 @@ export class DocumentationService {
134
161
  constructor(applicationStore: GenericLegendApplicationStore) {
135
162
  // set the main documenation site url
136
163
  this.url = applicationStore.config.documentationUrl;
164
+ this.links = applicationStore.config.documentationLinkEntries;
137
165
 
138
166
  /**
139
167
  * NOTE: the order of documentation entry overidding is (the later override the former):