diff --git a/apps/showcase/e2e-playwright/sanity/screenshots/visual-sanity.e2e.ts/chromium/component-replacement.png b/apps/showcase/e2e-playwright/sanity/screenshots/visual-sanity.e2e.ts/chromium/component-replacement.png index 5955c0d6b0..75663b08b6 100644 Binary files a/apps/showcase/e2e-playwright/sanity/screenshots/visual-sanity.e2e.ts/chromium/component-replacement.png and b/apps/showcase/e2e-playwright/sanity/screenshots/visual-sanity.e2e.ts/chromium/component-replacement.png differ diff --git a/apps/showcase/e2e-playwright/sanity/screenshots/visual-sanity.e2e.ts/chromium/configuration.png b/apps/showcase/e2e-playwright/sanity/screenshots/visual-sanity.e2e.ts/chromium/configuration.png index 0efb9cd2e2..c8c895fd48 100644 Binary files a/apps/showcase/e2e-playwright/sanity/screenshots/visual-sanity.e2e.ts/chromium/configuration.png and b/apps/showcase/e2e-playwright/sanity/screenshots/visual-sanity.e2e.ts/chromium/configuration.png differ diff --git a/apps/showcase/e2e-playwright/sanity/screenshots/visual-sanity.e2e.ts/chromium/design-token.png b/apps/showcase/e2e-playwright/sanity/screenshots/visual-sanity.e2e.ts/chromium/design-token.png index 4a2f82b9a4..c81641053a 100644 Binary files a/apps/showcase/e2e-playwright/sanity/screenshots/visual-sanity.e2e.ts/chromium/design-token.png and b/apps/showcase/e2e-playwright/sanity/screenshots/visual-sanity.e2e.ts/chromium/design-token.png differ diff --git a/apps/showcase/e2e-playwright/sanity/screenshots/visual-sanity.e2e.ts/chromium/dynamic-content.png b/apps/showcase/e2e-playwright/sanity/screenshots/visual-sanity.e2e.ts/chromium/dynamic-content.png index ded1182c5c..53df51eda6 100644 Binary files a/apps/showcase/e2e-playwright/sanity/screenshots/visual-sanity.e2e.ts/chromium/dynamic-content.png and b/apps/showcase/e2e-playwright/sanity/screenshots/visual-sanity.e2e.ts/chromium/dynamic-content.png differ diff --git a/apps/showcase/e2e-playwright/sanity/screenshots/visual-sanity.e2e.ts/chromium/home.png b/apps/showcase/e2e-playwright/sanity/screenshots/visual-sanity.e2e.ts/chromium/home.png index 2b21a69e58..540a7530a2 100644 Binary files a/apps/showcase/e2e-playwright/sanity/screenshots/visual-sanity.e2e.ts/chromium/home.png and b/apps/showcase/e2e-playwright/sanity/screenshots/visual-sanity.e2e.ts/chromium/home.png differ diff --git a/apps/showcase/e2e-playwright/sanity/screenshots/visual-sanity.e2e.ts/chromium/localization.png b/apps/showcase/e2e-playwright/sanity/screenshots/visual-sanity.e2e.ts/chromium/localization.png index 8e3d306aca..f4ae4f108b 100644 Binary files a/apps/showcase/e2e-playwright/sanity/screenshots/visual-sanity.e2e.ts/chromium/localization.png and b/apps/showcase/e2e-playwright/sanity/screenshots/visual-sanity.e2e.ts/chromium/localization.png differ diff --git a/apps/showcase/e2e-playwright/sanity/screenshots/visual-sanity.e2e.ts/chromium/placeholder.png b/apps/showcase/e2e-playwright/sanity/screenshots/visual-sanity.e2e.ts/chromium/placeholder.png index f9c7e35dda..5aa4e3be3c 100644 Binary files a/apps/showcase/e2e-playwright/sanity/screenshots/visual-sanity.e2e.ts/chromium/placeholder.png and b/apps/showcase/e2e-playwright/sanity/screenshots/visual-sanity.e2e.ts/chromium/placeholder.png differ diff --git a/apps/showcase/e2e-playwright/sanity/screenshots/visual-sanity.e2e.ts/chromium/rules-engine.png b/apps/showcase/e2e-playwright/sanity/screenshots/visual-sanity.e2e.ts/chromium/rules-engine.png index 29c1a84219..82b652e60a 100644 Binary files a/apps/showcase/e2e-playwright/sanity/screenshots/visual-sanity.e2e.ts/chromium/rules-engine.png and b/apps/showcase/e2e-playwright/sanity/screenshots/visual-sanity.e2e.ts/chromium/rules-engine.png differ diff --git a/apps/showcase/e2e-playwright/sanity/screenshots/visual-sanity.e2e.ts/chromium/run-app-locally.png b/apps/showcase/e2e-playwright/sanity/screenshots/visual-sanity.e2e.ts/chromium/run-app-locally.png index 605ee97601..55605eea6a 100644 Binary files a/apps/showcase/e2e-playwright/sanity/screenshots/visual-sanity.e2e.ts/chromium/run-app-locally.png and b/apps/showcase/e2e-playwright/sanity/screenshots/visual-sanity.e2e.ts/chromium/run-app-locally.png differ diff --git a/apps/showcase/e2e-playwright/sanity/screenshots/visual-sanity.e2e.ts/chromium/sdk-generator.png b/apps/showcase/e2e-playwright/sanity/screenshots/visual-sanity.e2e.ts/chromium/sdk-generator.png index 283ccfcce1..caa84e5c62 100644 Binary files a/apps/showcase/e2e-playwright/sanity/screenshots/visual-sanity.e2e.ts/chromium/sdk-generator.png and b/apps/showcase/e2e-playwright/sanity/screenshots/visual-sanity.e2e.ts/chromium/sdk-generator.png differ diff --git a/apps/showcase/package.json b/apps/showcase/package.json index e5e2aae21f..2602f24e3e 100644 --- a/apps/showcase/package.json +++ b/apps/showcase/package.json @@ -72,14 +72,17 @@ "ag-grid-angular": "~32.3.0", "ag-grid-community": "~32.3.0", "bootstrap": "5.3.3", - "highlight.js": "^11.8.0", + "clipboard": "^2.0.11", "intl-messageformat": "~10.7.0", + "marked": "^12.0.0", "monaco-editor": "~0.52.0", - "ngx-highlightjs": "^12.0.0", + "ngx-markdown": "^18.1.0", "ngx-monaco-editor-v2": "^18.0.0", "ngx-monaco-tree": "^18.1.0", "pixelmatch": "^5.2.1", "pngjs": "^7.0.0", + "prism-themes": "^1.9.0", + "prismjs": "^1.28.0", "rxjs": "^7.8.1", "sass-loader": "^14.0.0", "tslib": "^2.6.2", diff --git a/apps/showcase/project.json b/apps/showcase/project.json index 031c3b95f7..53593a4d0e 100644 --- a/apps/showcase/project.json +++ b/apps/showcase/project.json @@ -77,6 +77,7 @@ ], "styles": [ "apps/showcase/src/styles.scss", + "prism-themes/themes/prism-vsc-dark-plus.css", { "inject": false, "input": "apps/showcase/src/style/dark-theme/dark-theme.scss", @@ -88,7 +89,18 @@ "bundleName": "horizon-theme" } ], - "scripts": [] + "scripts": [ + "clipboard", + "prismjs", + "prismjs/components/prism-bash", + "prismjs/components/prism-css", + "prismjs/components/prism-json", + "prismjs/components/prism-markdown", + "prismjs/components/prism-markup", + "prismjs/components/prism-regex", + "prismjs/components/prism-typescript", + "prismjs/components/prism-yaml" + ] }, "configurations": { "production": { diff --git a/apps/showcase/src/app/app.module.ts b/apps/showcase/src/app/app.module.ts index 15e66292a2..e6dfa50f86 100644 --- a/apps/showcase/src/app/app.module.ts +++ b/apps/showcase/src/app/app.module.ts @@ -3,7 +3,7 @@ import {PetApi} from '@o3r-training/showcase-sdk'; import { registerLocaleData } from '@angular/common'; import localeEN from '@angular/common/locales/en'; import localeFR from '@angular/common/locales/fr'; -import { isDevMode, NgModule } from '@angular/core'; +import { isDevMode, NgModule, SecurityContext } from '@angular/core'; import { BrowserModule } from '@angular/platform-browser'; import { BrowserAnimationsModule } from '@angular/platform-browser/animations'; import { NgbOffcanvasModule } from '@ng-bootstrap/ng-bootstrap'; @@ -26,11 +26,12 @@ import { import { ConsoleLogger, Logger, LOGGER_CLIENT_TOKEN, LoggerService } from '@o3r/logger'; import { OTTER_RULES_ENGINE_DEVTOOLS_OPTIONS, RulesEngineRunnerModule } from '@o3r/rules-engine'; import { OTTER_STYLING_DEVTOOLS_OPTIONS, StylingDevtoolsModule } from '@o3r/styling'; -import { HIGHLIGHT_OPTIONS } from 'ngx-highlightjs'; -import { ScrollBackTopPresComponent, SidenavPresComponent } from '../components/index'; +import { CLIPBOARD_OPTIONS, provideMarkdown } from 'ngx-markdown'; +import { ClipboardButtonPresComponent, ScrollBackTopPresComponent, SidenavPresComponent } from '../components/index'; import { DatePickerHebrewInputPresComponent } from '../components/utilities/date-picker-input-hebrew'; import { AppRoutingModule } from './app-routing.module'; import { AppComponent } from './app.component'; +import { markedAlert } from '../helpers/marked-alert-extension'; const runtimeChecks: Partial = { @@ -113,19 +114,6 @@ export function registerCustomComponents(): Map { ], providers: [ {provide: MESSAGE_FORMAT_CONFIG, useValue: {}}, - { - provide: HIGHLIGHT_OPTIONS, - useValue: { - coreLibraryLoader: () => import('highlight.js/lib/core'), - languages: { - bash: () => import('highlight.js/lib/languages/bash'), - css: () => import('highlight.js/lib/languages/css'), - json: () => import('highlight.js/lib/languages/json'), - typescript: () => import('highlight.js/lib/languages/typescript'), - xml: () => import('highlight.js/lib/languages/xml') - } - } - }, {provide: LOGGER_CLIENT_TOKEN, useValue: new ConsoleLogger()}, {provide: PetApi, useFactory: petApiFactory, deps: [LoggerService]}, {provide: OTTER_CONFIGURATION_DEVTOOLS_OPTIONS, useValue: {isActivatedOnBootstrap: true}}, @@ -133,7 +121,18 @@ export function registerCustomComponents(): Map { {provide: OTTER_RULES_ENGINE_DEVTOOLS_OPTIONS, useValue: {isActivatedOnBootstrap: true}}, {provide: OTTER_COMPONENTS_DEVTOOLS_OPTIONS, useValue: {isActivatedOnBootstrap: true}}, {provide: OTTER_APPLICATION_DEVTOOLS_OPTIONS, useValue: {isActivatedOnBootstrap: true, appName: 'showcase'}}, - {provide: OTTER_STYLING_DEVTOOLS_OPTIONS, useValue: {isActivatedOnBootstrap: true}} + {provide: OTTER_STYLING_DEVTOOLS_OPTIONS, useValue: {isActivatedOnBootstrap: true}}, + provideMarkdown({ + clipboardOptions: { + provide: CLIPBOARD_OPTIONS, + useValue: { + buttonComponent: ClipboardButtonPresComponent + } + }, + markedExtensions: [markedAlert()], + /* Templates are only internal, no need to sanitize */ + sanitize: SecurityContext.NONE + }) ], bootstrap: [AppComponent] }) diff --git a/apps/showcase/src/app/component-replacement/component-replacement.component.ts b/apps/showcase/src/app/component-replacement/component-replacement.component.ts index 0abdb0ff5a..edeb922751 100644 --- a/apps/showcase/src/app/component-replacement/component-replacement.component.ts +++ b/apps/showcase/src/app/component-replacement/component-replacement.component.ts @@ -5,7 +5,7 @@ import { IN_PAGE_NAV_PRES_DIRECTIVES, InPageNavPresComponent } from '../../compo import { AsyncPipe } from '@angular/common'; import { ComponentReplacementPresComponent } from '../../components/showcase/component-replacement/component-replacement-pres.component'; import { RouterModule } from '@angular/router'; -import { CopyTextPresComponent } from '../../components/utilities/copy-text/copy-text-pres.component'; +import { MarkdownModule } from 'ngx-markdown'; @O3rComponent({ componentType: 'Page' }) @Component({ @@ -15,7 +15,14 @@ import { CopyTextPresComponent } from '../../components/utilities/copy-text/copy encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, - imports: [RouterModule, InPageNavPresComponent, AsyncPipe, IN_PAGE_NAV_PRES_DIRECTIVES, ComponentReplacementPresComponent, CopyTextPresComponent] + imports: [ + RouterModule, + InPageNavPresComponent, + AsyncPipe, + IN_PAGE_NAV_PRES_DIRECTIVES, + ComponentReplacementPresComponent, + MarkdownModule + ] }) export class ComponentReplacementComponent implements AfterViewInit { private readonly inPageNavPresService = inject(InPageNavPresService); diff --git a/apps/showcase/src/app/component-replacement/component-replacement.spec.ts b/apps/showcase/src/app/component-replacement/component-replacement.spec.ts index 56c9b62815..c0ddec72e7 100644 --- a/apps/showcase/src/app/component-replacement/component-replacement.spec.ts +++ b/apps/showcase/src/app/component-replacement/component-replacement.spec.ts @@ -3,6 +3,7 @@ import { ComponentFixture, TestBed } from '@angular/core/testing'; import { ComponentReplacementComponent } from './component-replacement.component'; import { RouterModule } from '@angular/router'; import { AsyncPipe } from '@angular/common'; +import { provideMarkdown } from 'ngx-markdown'; import { ComponentReplacementPresComponent } from '../../components/showcase/component-replacement/component-replacement-pres.component'; describe('ComponentReplacementComponent', () => { @@ -13,7 +14,8 @@ describe('ComponentReplacementComponent', () => { await TestBed.configureTestingModule({ imports: [ComponentReplacementComponent, RouterModule.forRoot([]), - AsyncPipe] + AsyncPipe], + providers: [provideMarkdown()] }).overrideComponent(ComponentReplacementComponent, { remove: { imports: [ComponentReplacementPresComponent] } }).compileComponents(); diff --git a/apps/showcase/src/app/component-replacement/component-replacement.template.html b/apps/showcase/src/app/component-replacement/component-replacement.template.html index c50894436c..ca51178e9d 100644 --- a/apps/showcase/src/app/component-replacement/component-replacement.template.html +++ b/apps/showcase/src/app/component-replacement/component-replacement.template.html @@ -28,7 +28,11 @@

Example

How to install

To use the component replacement mechanism you'll need to install the @o3r/components package.

- + + ```bash + ng add @o3r/components + ``` +

References

diff --git a/apps/showcase/src/app/configuration/configuration.component.ts b/apps/showcase/src/app/configuration/configuration.component.ts index 728dade313..d7a6066679 100644 --- a/apps/showcase/src/app/configuration/configuration.component.ts +++ b/apps/showcase/src/app/configuration/configuration.component.ts @@ -3,7 +3,8 @@ import { AfterViewInit, ChangeDetectionStrategy, Component, computed, inject, Qu import { RouterModule } from '@angular/router'; import { ConfigurationBaseServiceModule } from '@o3r/configuration'; import { O3rComponent } from '@o3r/core'; -import { ConfigurationPresComponent, CopyTextPresComponent, IN_PAGE_NAV_PRES_DIRECTIVES, InPageNavLink, InPageNavLinkDirective, InPageNavPresService } from '../../components/index'; +import { MarkdownModule } from 'ngx-markdown'; +import { ConfigurationPresComponent, IN_PAGE_NAV_PRES_DIRECTIVES, InPageNavLink, InPageNavLinkDirective, InPageNavPresService } from '../../components/index'; import { ConfigurationPresConfig } from '../../components/showcase/configuration/configuration-pres.config'; const CONFIG_OVERRIDE: ConfigurationPresConfig = { @@ -24,9 +25,9 @@ const CONFIG_OVERRIDE: ConfigurationPresConfig = { RouterModule, ConfigurationPresComponent, ConfigurationBaseServiceModule, - CopyTextPresComponent, IN_PAGE_NAV_PRES_DIRECTIVES, - AsyncPipe + AsyncPipe, + MarkdownModule ], templateUrl: './configuration.template.html', styleUrls: ['./configuration.style.scss'], diff --git a/apps/showcase/src/app/configuration/configuration.spec.ts b/apps/showcase/src/app/configuration/configuration.spec.ts index 9228792f2e..f2460ebb38 100644 --- a/apps/showcase/src/app/configuration/configuration.spec.ts +++ b/apps/showcase/src/app/configuration/configuration.spec.ts @@ -3,6 +3,7 @@ import { ComponentFixture, TestBed } from '@angular/core/testing'; import { RouterModule } from '@angular/router'; import { StoreModule } from '@ngrx/store'; import { O3rElement } from '@o3r/testing/core'; +import { provideMarkdown } from 'ngx-markdown'; import { ConfigurationComponent } from './configuration.component'; import { ConfigurationFixtureComponent } from './configuration.fixture'; let componentFixture: ConfigurationFixtureComponent; @@ -18,7 +19,8 @@ describe('ConfigurationComponent', () => { StoreModule.forRoot(), RouterModule.forRoot([]), AsyncPipe - ] + ], + providers: [provideMarkdown()] }); fixture = TestBed.createComponent(ConfigurationComponent); component = fixture.componentInstance; diff --git a/apps/showcase/src/app/configuration/configuration.template.html b/apps/showcase/src/app/configuration/configuration.template.html index ee7e208f5a..3cd03dded2 100644 --- a/apps/showcase/src/app/configuration/configuration.template.html +++ b/apps/showcase/src/app/configuration/configuration.template.html @@ -28,7 +28,7 @@

Examples

- +
@@ -43,19 +43,39 @@

Examples

How to install

- + + ```bash + ng add @o3r/configuration + ``` +

How to generate a configurable component

- + + ```bash + ng g component ComponentName --use-otter-config + ``` +

How to add configuration to a component

- + + ```bash + ng g configuration-to-component --path='path/to/the/component/class/file' + ``` +

Metadata

How to extract

- + + ```bash + ng run project-name:extract-components + ``` +

It will extract components' configuration and generate the two following files: component.config.metadata.json and component.class.metadata.json

Check the list of options available by running:

- + + ```bash + ng run project-name:extract-components --help + ``` +

References

diff --git a/apps/showcase/src/app/design-token/design-token.component.ts b/apps/showcase/src/app/design-token/design-token.component.ts index fca6b8e65c..835e687b84 100644 --- a/apps/showcase/src/app/design-token/design-token.component.ts +++ b/apps/showcase/src/app/design-token/design-token.component.ts @@ -2,7 +2,8 @@ import { AsyncPipe } from '@angular/common'; import { AfterViewInit, ChangeDetectionStrategy, Component, inject, QueryList, ViewChildren, ViewEncapsulation } from '@angular/core'; import { RouterLink } from '@angular/router'; import { O3rComponent } from '@o3r/core'; -import { CopyTextPresComponent, DesignTokenPresComponent, IN_PAGE_NAV_PRES_DIRECTIVES, InPageNavLink, InPageNavLinkDirective, InPageNavPresService } from '../../components'; +import { MarkdownModule } from 'ngx-markdown'; +import { DesignTokenPresComponent, IN_PAGE_NAV_PRES_DIRECTIVES, InPageNavLink, InPageNavLinkDirective, InPageNavPresService } from '../../components'; @O3rComponent({ componentType: 'Page' }) @Component({ @@ -10,10 +11,10 @@ import { CopyTextPresComponent, DesignTokenPresComponent, IN_PAGE_NAV_PRES_DIREC standalone: true, imports: [ AsyncPipe, - CopyTextPresComponent, DesignTokenPresComponent, RouterLink, - IN_PAGE_NAV_PRES_DIRECTIVES + IN_PAGE_NAV_PRES_DIRECTIVES, + MarkdownModule ], templateUrl: './design-token.template.html', styleUrl: './design-token.style.scss', diff --git a/apps/showcase/src/app/design-token/design-token.spec.ts b/apps/showcase/src/app/design-token/design-token.spec.ts index ecf2affa47..6f294895f7 100644 --- a/apps/showcase/src/app/design-token/design-token.spec.ts +++ b/apps/showcase/src/app/design-token/design-token.spec.ts @@ -1,5 +1,6 @@ import { ComponentFixture, TestBed } from '@angular/core/testing'; import { RouterModule } from '@angular/router'; +import { provideMarkdown } from 'ngx-markdown'; import { DesignTokenComponent } from './design-token.component'; @@ -12,7 +13,8 @@ describe('DesignTokenComponent', () => { imports: [ DesignTokenComponent, RouterModule.forRoot([]) - ] + ], + providers: [provideMarkdown()] }) .compileComponents(); diff --git a/apps/showcase/src/app/design-token/design-token.template.html b/apps/showcase/src/app/design-token/design-token.template.html index 47190e0750..ac7b0d72e2 100644 --- a/apps/showcase/src/app/design-token/design-token.template.html +++ b/apps/showcase/src/app/design-token/design-token.template.html @@ -37,11 +37,23 @@

Examples

Source code

How to install

- + + ```bash + ng add @o3r/design + ``` +

How to add design-tokens to a component

- -

How to extract design-tokens from Sass files

- + + ```bash + ng g design-token-to-component --path='path/to/the/component/class/file' + ``` + +

How to extract design-tokens from Sass files

+ + ```bash + ng g extract-token --component-file-patterns='path/to/the/components/**/*.scss' + ``` +

References

    diff --git a/apps/showcase/src/app/dynamic-content/dynamic-content.component.ts b/apps/showcase/src/app/dynamic-content/dynamic-content.component.ts index 75ba288ae0..cb4f290390 100644 --- a/apps/showcase/src/app/dynamic-content/dynamic-content.component.ts +++ b/apps/showcase/src/app/dynamic-content/dynamic-content.component.ts @@ -3,7 +3,8 @@ import { AfterViewInit, ChangeDetectionStrategy, Component, inject, QueryList, V import { RouterModule } from '@angular/router'; import { O3rComponent } from '@o3r/core'; import { DynamicContentModule } from '@o3r/dynamic-content'; -import { CopyTextPresComponent, DynamicContentPresComponent, IN_PAGE_NAV_PRES_DIRECTIVES, InPageNavLink, InPageNavLinkDirective, InPageNavPresService } from '../../components/index'; +import { MarkdownModule } from 'ngx-markdown'; +import { DynamicContentPresComponent, IN_PAGE_NAV_PRES_DIRECTIVES, InPageNavLink, InPageNavLinkDirective, InPageNavPresService } from '../../components/index'; @O3rComponent({ componentType: 'Page' }) @Component({ @@ -14,8 +15,8 @@ import { CopyTextPresComponent, DynamicContentPresComponent, IN_PAGE_NAV_PRES_DI DynamicContentModule, IN_PAGE_NAV_PRES_DIRECTIVES, DynamicContentPresComponent, - CopyTextPresComponent, - AsyncPipe + AsyncPipe, + MarkdownModule ], templateUrl: './dynamic-content.template.html', styleUrls: ['./dynamic-content.style.scss'], diff --git a/apps/showcase/src/app/dynamic-content/dynamic-content.spec.ts b/apps/showcase/src/app/dynamic-content/dynamic-content.spec.ts index d261e29c3a..7c2ee25a87 100644 --- a/apps/showcase/src/app/dynamic-content/dynamic-content.spec.ts +++ b/apps/showcase/src/app/dynamic-content/dynamic-content.spec.ts @@ -2,6 +2,7 @@ import { AsyncPipe } from '@angular/common'; import { ComponentFixture, TestBed } from '@angular/core/testing'; import { RouterModule } from '@angular/router'; import { O3rElement } from '@o3r/testing/core'; +import { provideMarkdown } from 'ngx-markdown'; import { DynamicContentComponent } from './dynamic-content.component'; import { DynamicContentFixtureComponent } from './dynamic-content.fixture'; let componentFixture: DynamicContentFixtureComponent; @@ -16,7 +17,8 @@ describe('DynamicContentComponent', () => { DynamicContentComponent, RouterModule.forRoot([]), AsyncPipe - ] + ], + providers: [provideMarkdown()] }); fixture = TestBed.createComponent(DynamicContentComponent); component = fixture.componentInstance; diff --git a/apps/showcase/src/app/dynamic-content/dynamic-content.template.html b/apps/showcase/src/app/dynamic-content/dynamic-content.template.html index c3ab3c62cc..3b6c785f37 100644 --- a/apps/showcase/src/app/dynamic-content/dynamic-content.template.html +++ b/apps/showcase/src/app/dynamic-content/dynamic-content.template.html @@ -22,7 +22,7 @@

    Example

    - +
    @@ -37,7 +37,11 @@

    Example

    How to install

    - + + ```bash + ng add @o3r/dynamic-content + ``` +

    References

    diff --git a/apps/showcase/src/app/home/home.component.ts b/apps/showcase/src/app/home/home.component.ts index 095ced79f9..5096ae2d4c 100644 --- a/apps/showcase/src/app/home/home.component.ts +++ b/apps/showcase/src/app/home/home.component.ts @@ -1,13 +1,13 @@ import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core'; import { O3rComponent } from '@o3r/core'; import { DynamicContentModule } from '@o3r/dynamic-content'; -import { CopyTextPresComponent } from '../../components'; +import { MarkdownModule } from 'ngx-markdown'; @O3rComponent({ componentType: 'Page' }) @Component({ selector: 'o3r-home', standalone: true, - imports: [DynamicContentModule, CopyTextPresComponent], + imports: [DynamicContentModule, MarkdownModule], templateUrl: './home.template.html', styleUrls: ['./home.style.scss'], encapsulation: ViewEncapsulation.None, diff --git a/apps/showcase/src/app/home/home.spec.ts b/apps/showcase/src/app/home/home.spec.ts index 844597a045..50f649718e 100644 --- a/apps/showcase/src/app/home/home.spec.ts +++ b/apps/showcase/src/app/home/home.spec.ts @@ -1,4 +1,5 @@ import { ComponentFixture, TestBed } from '@angular/core/testing'; +import { provideMarkdown } from 'ngx-markdown'; import { HomeComponent } from './home.component'; describe('HomeComponent', () => { @@ -7,7 +8,8 @@ describe('HomeComponent', () => { beforeEach(() => { TestBed.configureTestingModule({ - imports: [HomeComponent] + imports: [HomeComponent], + providers: [provideMarkdown()] }); fixture = TestBed.createComponent(HomeComponent); component = fixture.componentInstance; diff --git a/apps/showcase/src/app/home/home.template.html b/apps/showcase/src/app/home/home.template.html index 66c35b884d..f26d6f0d0d 100644 --- a/apps/showcase/src/app/home/home.template.html +++ b/apps/showcase/src/app/home/home.template.html @@ -19,20 +19,40 @@

    Get started with Otter

    Setup the project ...

    Create a new project (npm) - + + ```bash + npm create @o3r <your-project> + ``` + or (yarn) - + + ```bash + yarn create @o3r <your-project> + ``` +

    ... and start to create

    A new application: - + + ```bash + ng g application <app-name> + ``` + A new SDK: - + + ```bash + ng g sdk <sdk-name> + ``` + Or a new library: - + + ```bash + ng g library <lib-name> + ``` +

    diff --git a/apps/showcase/src/app/localization/localization.component.ts b/apps/showcase/src/app/localization/localization.component.ts index d0ba6cbd70..fecf0f211d 100644 --- a/apps/showcase/src/app/localization/localization.component.ts +++ b/apps/showcase/src/app/localization/localization.component.ts @@ -2,7 +2,8 @@ import { AsyncPipe } from '@angular/common'; import { AfterViewInit, ChangeDetectionStrategy, Component, inject, QueryList, ViewChildren, ViewEncapsulation } from '@angular/core'; import { RouterModule } from '@angular/router'; import { O3rComponent } from '@o3r/core'; -import { CopyTextPresComponent, IN_PAGE_NAV_PRES_DIRECTIVES, InPageNavLink, InPageNavLinkDirective, InPageNavPresService, LocalizationPresComponent } from '../../components/index'; +import { MarkdownModule } from 'ngx-markdown'; +import { IN_PAGE_NAV_PRES_DIRECTIVES, InPageNavLink, InPageNavLinkDirective, InPageNavPresService, LocalizationPresComponent } from '../../components/index'; @O3rComponent({ componentType: 'Page' }) @Component({ @@ -11,9 +12,9 @@ import { CopyTextPresComponent, IN_PAGE_NAV_PRES_DIRECTIVES, InPageNavLink, InPa imports: [ RouterModule, LocalizationPresComponent, - CopyTextPresComponent, IN_PAGE_NAV_PRES_DIRECTIVES, - AsyncPipe + AsyncPipe, + MarkdownModule ], templateUrl: './localization.template.html', styleUrls: ['./localization.style.scss'], diff --git a/apps/showcase/src/app/localization/localization.spec.ts b/apps/showcase/src/app/localization/localization.spec.ts index d7aababe73..5452577c52 100644 --- a/apps/showcase/src/app/localization/localization.spec.ts +++ b/apps/showcase/src/app/localization/localization.spec.ts @@ -5,6 +5,7 @@ import { RouterModule } from '@angular/router'; import { TranslateCompiler, TranslateFakeCompiler } from '@ngx-translate/core'; import { LocalizationService } from '@o3r/localization'; import { mockTranslationModules } from '@o3r/testing/localization'; +import { provideMarkdown } from 'ngx-markdown'; import { LocalizationComponent } from './localization.component'; const localizationConfiguration = { language: 'en' }; const mockTranslations = { @@ -25,7 +26,8 @@ describe('LocalizationComponent', () => { LocalizationComponent, ...mockTranslationModules(localizationConfiguration, mockTranslations, mockTranslationsCompilerProvider), AsyncPipe - ] + ], + providers: [provideMarkdown()] }); fixture = TestBed.createComponent(LocalizationComponent); component = fixture.componentInstance; diff --git a/apps/showcase/src/app/localization/localization.template.html b/apps/showcase/src/app/localization/localization.template.html index e3e35a4e63..f482579888 100644 --- a/apps/showcase/src/app/localization/localization.template.html +++ b/apps/showcase/src/app/localization/localization.template.html @@ -28,33 +28,73 @@

    Example

    Source code

How to install

- + + ```bash + ng add @o3r/localization + ``` +

How to generate a localized component

- + + ```bash + ng g component ComponentName --use-localization + ``` +

How to add localization to a component

- + + ```bash + ng g localization-to-component --path='path/to/the/component/class/file' + ``` +

How to add a localization key to a component

- + + ```bash + ng g localization-key-to-component --path='path/to/the/component/class/file' --key='localizationKey' --value='defaultValue' + ``` +

Localization bundle

How to generate a component bundle

- + + ```bash + ng run project-name:i18n + ``` +

It will create an i18n folder in the component folder, with an en-GB.json file containing the mapping between the localization key and the associated default value.

Check the list of options available by running:

- + + ```bash + ng run project-name:i18n --help + ``` +

How to generate an application bundle

- + + ```bash + ng run project-name:generate-translations + ``` +

It will create the application bundle for each supported language.

Check the list of options available by running:

- + + ```bash + ng run project-name:generate-translations --help + ``` +

Metadata

How to extract

- + + ```bash + ng run project-name:extract-translations + ``` +

It will extract components' translations and generate the following file: localisation.metadata.json

Check the list of options available by running:

- + + ```bash + ng run project-name:extract-translations --help + ``` +

References

diff --git a/apps/showcase/src/app/rules-engine/rules-engine.component.ts b/apps/showcase/src/app/rules-engine/rules-engine.component.ts index b5491ae784..d31563114f 100644 --- a/apps/showcase/src/app/rules-engine/rules-engine.component.ts +++ b/apps/showcase/src/app/rules-engine/rules-engine.component.ts @@ -26,8 +26,9 @@ import { Ruleset, UnaryOperator } from '@o3r/rules-engine'; +import { MarkdownModule } from 'ngx-markdown'; import { firstValueFrom } from 'rxjs'; -import { CopyTextPresComponent, IN_PAGE_NAV_PRES_DIRECTIVES, InPageNavLink, InPageNavLinkDirective, InPageNavPresService, RulesEnginePresComponent } from '../../components/index'; +import { IN_PAGE_NAV_PRES_DIRECTIVES, InPageNavLink, InPageNavLinkDirective, InPageNavPresService, RulesEnginePresComponent } from '../../components/index'; import { environment } from '../../environments/environment.development'; import { TripFactsService } from '../../facts/index'; import { duringSummer } from '../../operators/index'; @@ -51,11 +52,11 @@ import { duringSummer } from '../../operators/index'; ConfigOverrideStoreModule, AssetPathOverrideStoreModule, LocalizationOverrideStoreModule, - CopyTextPresComponent, RouterModule, IN_PAGE_NAV_PRES_DIRECTIVES, NgbNavModule, - AsyncPipe + AsyncPipe, + MarkdownModule ], templateUrl: './rules-engine.template.html', styleUrls: ['./rules-engine.style.scss'], diff --git a/apps/showcase/src/app/rules-engine/rules-engine.spec.ts b/apps/showcase/src/app/rules-engine/rules-engine.spec.ts index 3591c67cb6..57cf9d75be 100644 --- a/apps/showcase/src/app/rules-engine/rules-engine.spec.ts +++ b/apps/showcase/src/app/rules-engine/rules-engine.spec.ts @@ -7,6 +7,7 @@ import { TranslateCompiler, TranslateFakeCompiler } from '@ngx-translate/core'; import { LocalizationService } from '@o3r/localization'; import { RulesEngineRunnerModule } from '@o3r/rules-engine'; import { mockTranslationModules } from '@o3r/testing/localization'; +import { provideMarkdown } from 'ngx-markdown'; import { RulesEngineComponent } from './rules-engine.component'; import { RouterModule } from '@angular/router'; @@ -33,7 +34,8 @@ describe('RulesEngineComponent', () => { RouterModule.forRoot([]), ...mockTranslationModules(localizationConfiguration, mockTranslations, mockTranslationsCompilerProvider), AsyncPipe - ] + ], + providers: [provideMarkdown()] }); global.fetch = jest.fn(() => Promise.resolve({ diff --git a/apps/showcase/src/app/rules-engine/rules-engine.template.html b/apps/showcase/src/app/rules-engine/rules-engine.template.html index 8f77711156..9fed5a2e0e 100644 --- a/apps/showcase/src/app/rules-engine/rules-engine.template.html +++ b/apps/showcase/src/app/rules-engine/rules-engine.template.html @@ -42,7 +42,7 @@

Example


You can check that New-York will be available if you select dates during the summer (between June 21st and September 21st).

- + @@ -81,23 +81,43 @@

Example

How to install

- + + ```bash + ng add @o3r/rules-engine + ``` +

How to create a new fact

- + + ```bash + ng g facts-service FactsName + ``` +

How to create a new operator

- + + ```bash + ng g operator OperatorName + ``` +

Metadata

How to extract

- + + ```bash + ng run project-name:extract-rules-engine + ``` +

It will extract application facts and operators in the following files: rules.facts.metadata.json and rules.operators.metadata.json

Check the list of options available by running:

- + + ```bash + ng run project-name:extract-rules-engine --help + ``` +

References

    diff --git a/apps/showcase/src/app/run-app-locally/run-app-locally.component.ts b/apps/showcase/src/app/run-app-locally/run-app-locally.component.ts index ed05ddc93b..018590549a 100644 --- a/apps/showcase/src/app/run-app-locally/run-app-locally.component.ts +++ b/apps/showcase/src/app/run-app-locally/run-app-locally.component.ts @@ -1,12 +1,12 @@ import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core'; import { O3rComponent } from '@o3r/core'; -import { CopyTextPresComponent } from '../../components/index'; +import { MarkdownModule } from 'ngx-markdown'; @O3rComponent({ componentType: 'Page' }) @Component({ selector: 'o3r-run-app-locally', standalone: true, - imports: [CopyTextPresComponent], + imports: [MarkdownModule], templateUrl: './run-app-locally.template.html', styleUrls: ['./run-app-locally.style.scss'], encapsulation: ViewEncapsulation.None, diff --git a/apps/showcase/src/app/run-app-locally/run-app-locally.spec.ts b/apps/showcase/src/app/run-app-locally/run-app-locally.spec.ts index 2a017fbe22..59c8179218 100644 --- a/apps/showcase/src/app/run-app-locally/run-app-locally.spec.ts +++ b/apps/showcase/src/app/run-app-locally/run-app-locally.spec.ts @@ -1,4 +1,5 @@ import { ComponentFixture, TestBed } from '@angular/core/testing'; +import { provideMarkdown } from 'ngx-markdown'; import { RunAppLocallyComponent } from './run-app-locally.component'; @@ -8,7 +9,8 @@ describe('RunAppLocallyComponent', () => { beforeEach(() => { TestBed.configureTestingModule({ - imports: [RunAppLocallyComponent] + imports: [RunAppLocallyComponent], + providers: [provideMarkdown()] }); fixture = TestBed.createComponent(RunAppLocallyComponent); component = fixture.componentInstance; diff --git a/apps/showcase/src/app/run-app-locally/run-app-locally.template.html b/apps/showcase/src/app/run-app-locally/run-app-locally.template.html index 698b24db48..f30f239ae8 100644 --- a/apps/showcase/src/app/run-app-locally/run-app-locally.template.html +++ b/apps/showcase/src/app/run-app-locally/run-app-locally.template.html @@ -2,7 +2,7 @@

    How to run this application locally

    Do not hesitate to run the application locally (Prerequisites software)

    - +

    Play with the Otter chrome extension

    diff --git a/apps/showcase/src/app/sdk/sdk.component.ts b/apps/showcase/src/app/sdk/sdk.component.ts index c5c7f39467..70f319b495 100644 --- a/apps/showcase/src/app/sdk/sdk.component.ts +++ b/apps/showcase/src/app/sdk/sdk.component.ts @@ -2,8 +2,8 @@ import { AsyncPipe } from '@angular/common'; import { AfterViewInit, ChangeDetectionStrategy, Component, inject, QueryList, ViewChildren, ViewEncapsulation } from '@angular/core'; import { RouterLink } from '@angular/router'; import { O3rComponent } from '@o3r/core'; +import { MarkdownModule } from 'ngx-markdown'; import { - CopyTextPresComponent, IN_PAGE_NAV_PRES_DIRECTIVES, InPageNavLink, InPageNavLinkDirective, @@ -16,11 +16,11 @@ import { selector: 'o3r-sdk', standalone: true, imports: [ - CopyTextPresComponent, RouterLink, SdkPresComponent, IN_PAGE_NAV_PRES_DIRECTIVES, - AsyncPipe + AsyncPipe, + MarkdownModule ], templateUrl: './sdk.template.html', styleUrls: ['./sdk.style.scss'], diff --git a/apps/showcase/src/app/sdk/sdk.spec.ts b/apps/showcase/src/app/sdk/sdk.spec.ts index 0c13a2917c..0ab8bcbac1 100644 --- a/apps/showcase/src/app/sdk/sdk.spec.ts +++ b/apps/showcase/src/app/sdk/sdk.spec.ts @@ -3,6 +3,7 @@ import { PetApiFixture } from '@o3r-training/showcase-sdk/fixtures'; import { AsyncPipe } from '@angular/common'; import { ComponentFixture, TestBed } from '@angular/core/testing'; import { RouterModule } from '@angular/router'; +import { provideMarkdown } from 'ngx-markdown'; import { SdkComponent } from './sdk.component'; import '@angular/localize/init'; @@ -21,7 +22,8 @@ describe('SdkComponent', () => { AsyncPipe ], providers: [ - {provide: PetApi, useValue: petApiFixture} + {provide: PetApi, useValue: petApiFixture}, + provideMarkdown() ] }); fixture = TestBed.createComponent(SdkComponent); diff --git a/apps/showcase/src/app/sdk/sdk.template.html b/apps/showcase/src/app/sdk/sdk.template.html index fbbbb4787c..1e240fcde7 100644 --- a/apps/showcase/src/app/sdk/sdk.template.html +++ b/apps/showcase/src/app/sdk/sdk.template.html @@ -33,7 +33,11 @@

    Example

    How to use

    - + + ```bash + yarn create @ama-sdk typescript <project-name> [--spec-path=./path/to/spec.yaml] + ``` +

    References

    diff --git a/apps/showcase/src/components/utilities/clipboard-button/clipboard-button-pres.component.ts b/apps/showcase/src/components/utilities/clipboard-button/clipboard-button-pres.component.ts new file mode 100644 index 0000000000..c7d31ae93c --- /dev/null +++ b/apps/showcase/src/components/utilities/clipboard-button/clipboard-button-pres.component.ts @@ -0,0 +1,20 @@ +import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core'; +import { O3rComponent } from '@o3r/core'; + +@O3rComponent({ componentType: 'Component' }) +@Component({ + selector: 'o3r-clipboard-button-pres', + standalone: true, + templateUrl: './clipboard-button-pres.template.html', + styleUrls: ['./clipboard-button-pres.style.scss'], + encapsulation: ViewEncapsulation.None, + changeDetection: ChangeDetectionStrategy.OnPush +}) +export class ClipboardButtonPresComponent { + /** + * Copy the text into the clipboard + */ + public copy() { + // TODO snackbar + } +} diff --git a/apps/showcase/src/components/utilities/clipboard-button/clipboard-button-pres.spec.ts b/apps/showcase/src/components/utilities/clipboard-button/clipboard-button-pres.spec.ts new file mode 100644 index 0000000000..0a6542ffae --- /dev/null +++ b/apps/showcase/src/components/utilities/clipboard-button/clipboard-button-pres.spec.ts @@ -0,0 +1,21 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { ClipboardButtonPresComponent } from './clipboard-button-pres.component'; + +describe('ClipboardButtonPresComponent', () => { + let component: ClipboardButtonPresComponent; + let fixture: ComponentFixture; + + beforeEach(() => { + TestBed.configureTestingModule({ + imports: [ClipboardButtonPresComponent] + }); + fixture = TestBed.createComponent(ClipboardButtonPresComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/apps/showcase/src/components/utilities/clipboard-button/clipboard-button-pres.style.scss b/apps/showcase/src/components/utilities/clipboard-button/clipboard-button-pres.style.scss new file mode 100644 index 0000000000..e69de29bb2 diff --git a/apps/showcase/src/components/utilities/clipboard-button/clipboard-button-pres.template.html b/apps/showcase/src/components/utilities/clipboard-button/clipboard-button-pres.template.html new file mode 100644 index 0000000000..0f0169e28f --- /dev/null +++ b/apps/showcase/src/components/utilities/clipboard-button/clipboard-button-pres.template.html @@ -0,0 +1 @@ + diff --git a/apps/showcase/src/components/utilities/clipboard-button/index.ts b/apps/showcase/src/components/utilities/clipboard-button/index.ts new file mode 100644 index 0000000000..7de4d03d0f --- /dev/null +++ b/apps/showcase/src/components/utilities/clipboard-button/index.ts @@ -0,0 +1 @@ +export * from './clipboard-button-pres.component'; diff --git a/apps/showcase/src/components/utilities/copy-text/copy-text-pres.component.ts b/apps/showcase/src/components/utilities/copy-text/copy-text-pres.component.ts deleted file mode 100644 index 10edba31e1..0000000000 --- a/apps/showcase/src/components/utilities/copy-text/copy-text-pres.component.ts +++ /dev/null @@ -1,39 +0,0 @@ -import { Clipboard, ClipboardModule } from '@angular/cdk/clipboard'; -import { ChangeDetectionStrategy, Component, inject, Input, ViewEncapsulation } from '@angular/core'; -import { O3rComponent } from '@o3r/core'; -import { HighlightModule } from 'ngx-highlightjs'; - -@O3rComponent({ componentType: 'Component' }) -@Component({ - selector: 'o3r-copy-text-pres', - standalone: true, - imports: [ClipboardModule, HighlightModule], - templateUrl: './copy-text-pres.template.html', - styleUrls: ['./copy-text-pres.style.scss'], - encapsulation: ViewEncapsulation.None, - changeDetection: ChangeDetectionStrategy.OnPush -}) -export class CopyTextPresComponent { - /** Text to display and copy */ - @Input() - public text = ''; - - /** Should the text be wrapped if too long */ - @Input() - public wrap = false; - - /** Language of the code snippet, it will be guessed among the available languages if not provided */ - @Input() - public language?: string; - - public defaultLanguages = ['bash', 'css', 'html', 'json', 'typescript'] as const; - - private readonly clipboard = inject(Clipboard); - - /** - * Copy the text into the clipboard - */ - public copy() { - this.clipboard.copy(this.text); - } -} diff --git a/apps/showcase/src/components/utilities/copy-text/copy-text-pres.spec.ts b/apps/showcase/src/components/utilities/copy-text/copy-text-pres.spec.ts deleted file mode 100644 index 8b43349a08..0000000000 --- a/apps/showcase/src/components/utilities/copy-text/copy-text-pres.spec.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { ComponentFixture, TestBed } from '@angular/core/testing'; - -import { CopyTextPresComponent } from './copy-text-pres.component'; - -describe('CopyTextPresComponent', () => { - let component: CopyTextPresComponent; - let fixture: ComponentFixture; - - beforeEach(() => { - TestBed.configureTestingModule({ - imports: [CopyTextPresComponent] - }); - fixture = TestBed.createComponent(CopyTextPresComponent); - component = fixture.componentInstance; - fixture.detectChanges(); - }); - - it('should create', () => { - expect(component).toBeTruthy(); - }); -}); diff --git a/apps/showcase/src/components/utilities/copy-text/copy-text-pres.style.scss b/apps/showcase/src/components/utilities/copy-text/copy-text-pres.style.scss deleted file mode 100644 index 8de810f4c6..0000000000 --- a/apps/showcase/src/components/utilities/copy-text/copy-text-pres.style.scss +++ /dev/null @@ -1,20 +0,0 @@ -o3r-copy-text-pres { - max-width: 100%; - - .d-flex { - padding: .25rem 1rem .25rem .25rem; - margin-bottom: 1rem; - } - - .btn { - margin-top: 0.25rem; - } - - pre { - margin-bottom: 0; - } - - .hljs { - background: none; - } -} diff --git a/apps/showcase/src/components/utilities/copy-text/copy-text-pres.template.html b/apps/showcase/src/components/utilities/copy-text/copy-text-pres.template.html deleted file mode 100644 index f8b53729e9..0000000000 --- a/apps/showcase/src/components/utilities/copy-text/copy-text-pres.template.html +++ /dev/null @@ -1,4 +0,0 @@ -
    -
    - -
    diff --git a/apps/showcase/src/components/utilities/copy-text/index.ts b/apps/showcase/src/components/utilities/copy-text/index.ts deleted file mode 100644 index bafdbf13ef..0000000000 --- a/apps/showcase/src/components/utilities/copy-text/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export * from './copy-text-pres.component'; - diff --git a/apps/showcase/src/components/utilities/index.ts b/apps/showcase/src/components/utilities/index.ts index 635a61647a..4e29dc732a 100644 --- a/apps/showcase/src/components/utilities/index.ts +++ b/apps/showcase/src/components/utilities/index.ts @@ -1,4 +1,4 @@ -export * from './copy-text/index'; +export * from './clipboard-button/index'; export * from './date-picker-input/index'; export * from './date-picker-input-hebrew/index'; export * from './in-page-nav/index'; diff --git a/apps/showcase/src/helpers/marked-alert-extension.ts b/apps/showcase/src/helpers/marked-alert-extension.ts new file mode 100644 index 0000000000..10e869cd01 --- /dev/null +++ b/apps/showcase/src/helpers/marked-alert-extension.ts @@ -0,0 +1,89 @@ +import {type MarkedExtension, type Tokens} from 'marked'; + +const variants = ['note', 'tip', 'important', 'warning', 'caution']; +const cssVariantMapping: Record = { + note: 'info', + tip: 'tip', + important: 'info', + warning: 'warning', + caution: 'danger' +}; +const iconVariantMapping: Record = { + note: 'fa-info-circle', + tip: 'fa-lightbulb', + important: 'fa-info-circle', + warning: 'fa-exclamation-triangle', + caution: 'fa-minus-circle' +}; +function createSyntaxPattern(type: string) { + return `^(?:\\[!${type.toUpperCase()}])\\s*?\n*`; +} +function ucfirst(str: string) { + return str.slice(0, 1).toUpperCase() + str.slice(1).toLowerCase(); +} + +/** + * Marked extension to support GitHub like alerts + * Forked from https://github.com/bent10/marked-extensions/tree/main/packages/alert to match Design Factory + */ +export function markedAlert(): MarkedExtension { + return { + walkTokens: (token) => { + if (token.type !== 'blockquote') { + return; + } + + const matchedVariant = variants.find((type) => + new RegExp(createSyntaxPattern(type)).test(token.text) + ); + + if (matchedVariant) { + const typeRegexp = new RegExp(createSyntaxPattern(matchedVariant)); + + Object.assign(token, { + type: 'alert', + meta: { + className: `alert alert-${cssVariantMapping[matchedVariant]}`, + variant: matchedVariant, + icon: iconVariantMapping[matchedVariant] + } + }); + + const firstLine = token.tokens?.[0] as Tokens.Paragraph; + const firstLineText = firstLine.raw?.replace(typeRegexp, '').trim(); + + if (firstLineText) { + const patternToken = firstLine.tokens[0] as Tokens.Text; + + Object.assign(patternToken, { + raw: patternToken.raw.replace(typeRegexp, ''), + text: patternToken.text.replace(typeRegexp, '') + }); + + if (firstLine.tokens[1]?.type === 'br') { + firstLine.tokens.splice(1, 1); + } + } else { + token.tokens?.shift(); + } + } + }, + extensions: [ + { + name: 'alert', + level: 'block', + renderer({ meta, tokens = [] }) { + let tmpl = `
    \n`; + tmpl += `

    `; + tmpl += ``; + tmpl += `${ucfirst(meta.variant)}`; + tmpl += '

    \n'; + tmpl += this.parser.parse(tokens); + tmpl += '
    \n'; + + return tmpl; + } + } + ] + }; +} diff --git a/apps/showcase/src/style/dark-theme/dark-theme.scss b/apps/showcase/src/style/dark-theme/dark-theme.scss index 0bec2cdd63..f55eccba8c 100644 --- a/apps/showcase/src/style/dark-theme/dark-theme.scss +++ b/apps/showcase/src/style/dark-theme/dark-theme.scss @@ -1,4 +1,3 @@ -@import "highlight.js/styles/a11y-dark.css"; :root { /* --- BEGIN THEME Auto-generated --- */ diff --git a/apps/showcase/src/styles.scss b/apps/showcase/src/styles.scss index 74ac9f9a38..3b94d20248 100644 --- a/apps/showcase/src/styles.scss +++ b/apps/showcase/src/styles.scss @@ -1,5 +1,4 @@ @use '@design-factory/design-factory/design-factory.css'; -@import "highlight.js/styles/github.css"; @import "./style/theme.scss"; code { @@ -27,14 +26,8 @@ h1, h2 { z-index: inherit; } -.hljs-built_in, .hljs-symbol { - color: #cb3544; -} -.hljs-doctag, .hljs-keyword, .hljs-meta .hljs-keyword, .hljs-template-tag, .hljs-template-variable, .hljs-type, .hljs-variable.language_ { - color: #cb3544; -} -.hljs-name, .hljs-quote, .hljs-selector-tag, .hljs-selector-pseudo { - color: #1f7e36; +.markdown-clipboard-toolbar button { + --df-btn-icononly-size: 1.85em; } // Start overrides of design factory diff --git a/package.json b/package.json index 6600284e9f..0fc126c8c1 100644 --- a/package.json +++ b/package.json @@ -222,6 +222,7 @@ "bootstrap": "5.3.3", "bootstrap-icons": "^1.11.3", "browserslist": "^4.21.4", + "clipboard": "^2.0.11", "commit-and-tag-version": "^12.0.0", "concurrently": "^8.0.0", "cpy-cli": "^5.0.0", @@ -233,7 +234,6 @@ "eslint-plugin-prefer-arrow": "~1.2.3", "eslint-plugin-unicorn": "^54.0.0", "globby": "^11.1.0", - "highlight.js": "^11.8.0", "husky": "~9.1.0", "intl-messageformat": "~10.7.0", "isomorphic-fetch": "~3.0.0", @@ -244,15 +244,18 @@ "jsonpath-plus": "~10.1.0", "lighthouse": "~12.2.0", "lint-staged": "^15.0.0", + "marked": "^12.0.0", "minimist": "^1.2.6", "ng-packagr": "~18.2.0", - "ngx-highlightjs": "^12.0.0", + "ngx-markdown": "^18.1.0", "npm-run-all2": "^6.0.0", "nx": "~19.5.0", "nx-cloud": "^19.1.0", "playwright-lighthouse": "~4.0.0", "postcss": "~8.4.31", "postcss-scss": "~4.0.9", + "prism-themes": "^1.9.0", + "prismjs": "^1.28.0", "react": "^18.0.0", "react-dom": "^18.0.0", "replace-in-files-cli": "^2.2.0", diff --git a/tools/github-actions/new-version/packaged-action/LICENSE.txt b/tools/github-actions/new-version/packaged-action/LICENSE.txt index 7ee631dd7c..4ec329636a 100644 --- a/tools/github-actions/new-version/packaged-action/LICENSE.txt +++ b/tools/github-actions/new-version/packaged-action/LICENSE.txt @@ -94,6 +94,33 @@ FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. @o3r/new-version +Copyright Amadeus SAS + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this +list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, +this list of conditions and the following disclaimer in the documentation and/or +other materials provided with the distribution. + +3. Neither the name of the copyright holder nor the names of its contributors +may be used to endorse or promote products derived from this software without +specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR +ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + @octokit/auth-token MIT diff --git a/yarn.lock b/yarn.lock index 9495e728e5..0d4c832ca8 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1576,6 +1576,23 @@ __metadata: languageName: node linkType: hard +"@antfu/install-pkg@npm:^0.4.0": + version: 0.4.1 + resolution: "@antfu/install-pkg@npm:0.4.1" + dependencies: + package-manager-detector: "npm:^0.2.0" + tinyexec: "npm:^0.3.0" + checksum: 10/3ffd59fa5a21dcb4951a037f5c91dfbfc152adfef9e7ba231a968f108aa28c1cd22213c437a8d34f2bfea8c2b9a6df20447eb04be15b534a8e9e21a9dcf203c0 + languageName: node + linkType: hard + +"@antfu/utils@npm:^0.7.10": + version: 0.7.10 + resolution: "@antfu/utils@npm:0.7.10" + checksum: 10/c8c2797aeab3e88f0095dea5736d2f16137a7213195e568246792b2cceecb184234f018346dc07c252c62e4d9085c09ce6bd180da833266cafa65133fb03e075 + languageName: node + linkType: hard + "@apidevtools/json-schema-ref-parser@npm:9.0.6": version: 9.0.6 resolution: "@apidevtools/json-schema-ref-parser@npm:9.0.6" @@ -3481,6 +3498,13 @@ __metadata: languageName: node linkType: hard +"@braintree/sanitize-url@npm:^7.0.1": + version: 7.1.0 + resolution: "@braintree/sanitize-url@npm:7.1.0" + checksum: 10/b25cc5358bedfd97d8378d23ab43493e56a805bd82fdb092088bdd9db6aa3f6c32859d36526f570fb2c67a5a4f9ce579aacd52c3872db4285e4c34fb9947dfc0 + languageName: node + linkType: hard + "@capacitor/browser@npm:^6.0.0": version: 6.0.3 resolution: "@capacitor/browser@npm:6.0.3" @@ -3517,6 +3541,48 @@ __metadata: languageName: node linkType: hard +"@chevrotain/cst-dts-gen@npm:11.0.3": + version: 11.0.3 + resolution: "@chevrotain/cst-dts-gen@npm:11.0.3" + dependencies: + "@chevrotain/gast": "npm:11.0.3" + "@chevrotain/types": "npm:11.0.3" + lodash-es: "npm:4.17.21" + checksum: 10/601d23fa3312bd0e32816bd3f9ca2dcba775a52192a082fd6c5e4a2e8ee068523401191babbe2c346d6d2551900a67b549f2f74d7ebb7d5b2ee1b6fa3c8857a0 + languageName: node + linkType: hard + +"@chevrotain/gast@npm:11.0.3": + version: 11.0.3 + resolution: "@chevrotain/gast@npm:11.0.3" + dependencies: + "@chevrotain/types": "npm:11.0.3" + lodash-es: "npm:4.17.21" + checksum: 10/7169453a8fbfa994e91995523dea09eab87ab23062ad93f6e51f4a3b03f5e2958e0a8b99d5ca6fa067fccfbbbb8bcf1a4573ace2e1b5a455f6956af9eaccb35a + languageName: node + linkType: hard + +"@chevrotain/regexp-to-ast@npm:11.0.3": + version: 11.0.3 + resolution: "@chevrotain/regexp-to-ast@npm:11.0.3" + checksum: 10/7387a1c61c5a052de41e1172b33eaaedea166fcdb1ffe4c381b86d00051a8014855a031d28fb658768a62c833ef5f5b0689d0c40de3d7bed556f8fea24396e69 + languageName: node + linkType: hard + +"@chevrotain/types@npm:11.0.3": + version: 11.0.3 + resolution: "@chevrotain/types@npm:11.0.3" + checksum: 10/49a82b71d2de8ceb2383ff2709fa61d245f2ab2e42790b70c57102c80846edaa318d0b3645aedc904d23ea7bd9be8a58f2397b1341760a15eb5aa95a1336e2a9 + languageName: node + linkType: hard + +"@chevrotain/utils@npm:11.0.3": + version: 11.0.3 + resolution: "@chevrotain/utils@npm:11.0.3" + checksum: 10/29b5d84373a7761ad055c53e2f540a67b5b56550d5be1c473149f6b8923eef87ff391ce021c06ac7653843b0149f6ff0cf30b5e48c3f825d295eb06a6c517bd3 + languageName: node + linkType: hard + "@colors/colors@npm:1.5.0": version: 1.5.0 resolution: "@colors/colors@npm:1.5.0" @@ -4987,6 +5053,28 @@ __metadata: languageName: node linkType: hard +"@iconify/types@npm:^2.0.0": + version: 2.0.0 + resolution: "@iconify/types@npm:2.0.0" + checksum: 10/1b3425ecbc0eef44f23d3f27355ae7ef306d5119c566f013ef1849995b016e1fdcc5af6b74c3bc0554485d70cf5179cb9c1095b14d662a55abcae1148e1a13c9 + languageName: node + linkType: hard + +"@iconify/utils@npm:^2.1.32": + version: 2.1.33 + resolution: "@iconify/utils@npm:2.1.33" + dependencies: + "@antfu/install-pkg": "npm:^0.4.0" + "@antfu/utils": "npm:^0.7.10" + "@iconify/types": "npm:^2.0.0" + debug: "npm:^4.3.6" + kolorist: "npm:^1.8.0" + local-pkg: "npm:^0.5.0" + mlly: "npm:^1.7.1" + checksum: 10/22b8bb836af3ccb6393c3bd5283d954628b6b2e00acab4e18dc7e170bd6252cc63f8370aa8e197351a11d56262cb8c572397cadc0a5ebeafc89427454c8bb936 + languageName: node + linkType: hard + "@inquirer/checkbox@npm:^2.4.7": version: 2.5.0 resolution: "@inquirer/checkbox@npm:2.5.0" @@ -5753,6 +5841,15 @@ __metadata: languageName: node linkType: hard +"@mermaid-js/parser@npm:^0.3.0": + version: 0.3.0 + resolution: "@mermaid-js/parser@npm:0.3.0" + dependencies: + langium: "npm:3.0.0" + checksum: 10/39abb7a369f023edcc691505cac07dcbc786217d739fdab2e37537438ccf2786de71c64f3a62a34e72ee6ed2bd4b70bf80417185b68e50b747b0af112e5f3ef3 + languageName: node + linkType: hard + "@microsoft/tsdoc@npm:~0.15.0": version: 0.15.0 resolution: "@microsoft/tsdoc@npm:0.15.0" @@ -8828,6 +8925,7 @@ __metadata: bootstrap: "npm:5.3.3" bootstrap-icons: "npm:^1.11.3" browserslist: "npm:^4.21.4" + clipboard: "npm:^2.0.11" commit-and-tag-version: "npm:^12.0.0" concurrently: "npm:^8.0.0" cpy-cli: "npm:^5.0.0" @@ -8839,7 +8937,6 @@ __metadata: eslint-plugin-prefer-arrow: "npm:~1.2.3" eslint-plugin-unicorn: "npm:^54.0.0" globby: "npm:^11.1.0" - highlight.js: "npm:^11.8.0" husky: "npm:~9.1.0" intl-messageformat: "npm:~10.7.0" isomorphic-fetch: "npm:~3.0.0" @@ -8850,9 +8947,10 @@ __metadata: jsonpath-plus: "npm:~10.1.0" lighthouse: "npm:~12.2.0" lint-staged: "npm:^15.0.0" + marked: "npm:^12.0.0" minimist: "npm:^1.2.6" ng-packagr: "npm:~18.2.0" - ngx-highlightjs: "npm:^12.0.0" + ngx-markdown: "npm:^18.1.0" npm-run-all2: "npm:^6.0.0" nx: "npm:~19.5.0" nx-cloud: "npm:^19.1.0" @@ -8861,6 +8959,8 @@ __metadata: pngjs: "npm:^7.0.0" postcss: "npm:~8.4.31" postcss-scss: "npm:~4.0.9" + prism-themes: "npm:^1.9.0" + prismjs: "npm:^1.28.0" react: "npm:^18.0.0" react-dom: "npm:^18.0.0" replace-in-files-cli: "npm:^2.2.0" @@ -9757,6 +9857,7 @@ __metadata: ag-grid-angular: "npm:~32.3.0" ag-grid-community: "npm:~32.3.0" bootstrap: "npm:5.3.3" + clipboard: "npm:^2.0.11" concurrently: "npm:^8.0.0" eslint: "npm:^8.57.0" eslint-import-resolver-node: "npm:^0.3.9" @@ -9765,7 +9866,6 @@ __metadata: eslint-plugin-prefer-arrow: "npm:~1.2.3" eslint-plugin-unicorn: "npm:^54.0.0" globby: "npm:^11.1.0" - highlight.js: "npm:^11.8.0" intl-messageformat: "npm:~10.7.0" jest: "npm:~29.7.0" jest-environment-jsdom: "npm:~29.7.0" @@ -9773,14 +9873,17 @@ __metadata: jest-preset-angular: "npm:~14.2.0" jsonc-eslint-parser: "npm:~2.4.0" lighthouse: "npm:~12.2.0" + marked: "npm:^12.0.0" minimist: "npm:^1.2.6" monaco-editor: "npm:~0.52.0" - ngx-highlightjs: "npm:^12.0.0" + ngx-markdown: "npm:^18.1.0" ngx-monaco-editor-v2: "npm:^18.0.0" ngx-monaco-tree: "npm:^18.1.0" pixelmatch: "npm:^5.2.1" playwright-lighthouse: "npm:~4.0.0" pngjs: "npm:^7.0.0" + prism-themes: "npm:^1.9.0" + prismjs: "npm:^1.28.0" rimraf: "npm:^5.0.1" rxjs: "npm:^7.8.1" sass-loader: "npm:^14.0.0" @@ -13220,6 +13323,278 @@ __metadata: languageName: node linkType: hard +"@types/d3-array@npm:*": + version: 3.2.1 + resolution: "@types/d3-array@npm:3.2.1" + checksum: 10/4a9ecacaa859cff79e10dcec0c79053f027a4749ce0a4badeaff7400d69a9c44eb8210b147916b6ff5309be049030e7d68a0e333294ff3fa11c44aa1af4ba458 + languageName: node + linkType: hard + +"@types/d3-axis@npm:*": + version: 3.0.6 + resolution: "@types/d3-axis@npm:3.0.6" + dependencies: + "@types/d3-selection": "npm:*" + checksum: 10/8af56b629a0597ac8ef5051b6ad5390818462d8e588e1b52fb181808b1c0525d12a658730fad757e1ae256d0db170a0e29076acdef21acc98b954608d1c37b84 + languageName: node + linkType: hard + +"@types/d3-brush@npm:*": + version: 3.0.6 + resolution: "@types/d3-brush@npm:3.0.6" + dependencies: + "@types/d3-selection": "npm:*" + checksum: 10/4095cee2512d965732147493c471a8dd97dfb5967479d9aef43397f8b0e074b03296302423b8379c4274f9249b52bd1d74cc021f98d4f64b5a8a4a7e6fe48335 + languageName: node + linkType: hard + +"@types/d3-chord@npm:*": + version: 3.0.6 + resolution: "@types/d3-chord@npm:3.0.6" + checksum: 10/ca9ba8b00debd24a2b51527b9c3db63eafa5541c08dc721d1c52ca19960c5cec93a7b1acfc0ec072dbca31d134924299755e20a4d1d4ee04b961fc0de841b418 + languageName: node + linkType: hard + +"@types/d3-color@npm:*": + version: 3.1.3 + resolution: "@types/d3-color@npm:3.1.3" + checksum: 10/1cf0f512c09357b25d644ab01b54200be7c9b15c808333b0ccacf767fff36f17520b2fcde9dad45e1bd7ce84befad39b43da42b4fded57680fa2127006ca3ece + languageName: node + linkType: hard + +"@types/d3-contour@npm:*": + version: 3.0.6 + resolution: "@types/d3-contour@npm:3.0.6" + dependencies: + "@types/d3-array": "npm:*" + "@types/geojson": "npm:*" + checksum: 10/e7b7e3972aa71003c21f2c864116ffb95a9175a62ec56ec656a855e5198a66a0830b2ad7fc26811214cfa8c98cdf4190d7d351913ca0913f799fbcf2a4c99b2d + languageName: node + linkType: hard + +"@types/d3-delaunay@npm:*": + version: 6.0.4 + resolution: "@types/d3-delaunay@npm:6.0.4" + checksum: 10/cb8d2c9ed0b39ade3107b9792544a745b2de3811a6bd054813e9dc708b1132fbacd796e54c0602c11b3a14458d14487c5276c1affb7c2b9f25fe55fff88d6d25 + languageName: node + linkType: hard + +"@types/d3-dispatch@npm:*": + version: 3.0.6 + resolution: "@types/d3-dispatch@npm:3.0.6" + checksum: 10/f82076c7d205885480d363c92c19b8e0d6b9e529a3a78ce772f96a7cc4cce01f7941141f148828337035fac9676b13e7440565530491d560fdf12e562cb56573 + languageName: node + linkType: hard + +"@types/d3-drag@npm:*": + version: 3.0.7 + resolution: "@types/d3-drag@npm:3.0.7" + dependencies: + "@types/d3-selection": "npm:*" + checksum: 10/93aba299c3a8d41ee326c5304ab694ceea135ed115c3b2ccab727a5d9bfc935f7f36d3fc416c013010eb755ac536c52adfcb15c195f241dc61f62650cc95088e + languageName: node + linkType: hard + +"@types/d3-dsv@npm:*": + version: 3.0.7 + resolution: "@types/d3-dsv@npm:3.0.7" + checksum: 10/8507f542135cae472781dff1c3b391eceedad0f2032d24ac4a0814e72e2f6877e4ddcb66f44627069977ee61029dc0a729edf659ed73cbf1040f55a7451f05ef + languageName: node + linkType: hard + +"@types/d3-ease@npm:*": + version: 3.0.2 + resolution: "@types/d3-ease@npm:3.0.2" + checksum: 10/d8f92a8a7a008da71f847a16227fdcb53a8938200ecdf8d831ab6b49aba91e8921769761d3bfa7e7191b28f62783bfd8b0937e66bae39d4dd7fb0b63b50d4a94 + languageName: node + linkType: hard + +"@types/d3-fetch@npm:*": + version: 3.0.7 + resolution: "@types/d3-fetch@npm:3.0.7" + dependencies: + "@types/d3-dsv": "npm:*" + checksum: 10/d496475cec7750f75740936e750a0150ca45e924a4f4697ad2c564f3a8f6c4ebc1b1edf8e081936e896532516731dbbaf2efd4890d53274a8eae13f51f821557 + languageName: node + linkType: hard + +"@types/d3-force@npm:*": + version: 3.0.10 + resolution: "@types/d3-force@npm:3.0.10" + checksum: 10/9c35abed2af91b94fc72d6b477188626e628ed89a01016437502c1deaf558da934b5d0cc808c2f2979ac853b6302b3d6ef763eddaff3a55552a55c0be710d5ca + languageName: node + linkType: hard + +"@types/d3-format@npm:*": + version: 3.0.4 + resolution: "@types/d3-format@npm:3.0.4" + checksum: 10/b937ecd2712d4aa38d5b4f5daab9cc8a576383868be1809e046aec99eeb1f1798c139f2e862dc400a82494c763be46087d154891773417f8eb53c73762ba3eb8 + languageName: node + linkType: hard + +"@types/d3-geo@npm:*": + version: 3.1.0 + resolution: "@types/d3-geo@npm:3.1.0" + dependencies: + "@types/geojson": "npm:*" + checksum: 10/e759d98470fe605ff0088247af81c3197cefce72b16eafe8acae606216c3e0a9f908df4e7cd5005ecfe13b8ac8396a51aaa0d282f3ca7d1c3850313a13fac905 + languageName: node + linkType: hard + +"@types/d3-hierarchy@npm:*": + version: 3.1.7 + resolution: "@types/d3-hierarchy@npm:3.1.7" + checksum: 10/9ff6cdedf5557ef9e1e7a65ca3c6846c895c84c1184e11ec6fa48565e96ebf5482d8be5cc791a8bc7f7debbd0e62604ee3da3ddca4f9d58bf6c8b4030567c6c6 + languageName: node + linkType: hard + +"@types/d3-interpolate@npm:*": + version: 3.0.4 + resolution: "@types/d3-interpolate@npm:3.0.4" + dependencies: + "@types/d3-color": "npm:*" + checksum: 10/72a883afd52c91132598b02a8cdfced9e783c54ca7e4459f9e29d5f45d11fb33f2cabc844e42fd65ba6e28f2a931dcce1add8607d2f02ef6fb8ea5b83ae84127 + languageName: node + linkType: hard + +"@types/d3-path@npm:*": + version: 3.1.0 + resolution: "@types/d3-path@npm:3.1.0" + checksum: 10/7348d65c9b37c7023590d4e5ef11e37f9eee62df9fa23e0758da1fbd66a1cbff40e37cbe0b85e9388ab900451e9c18a5a973469e9fd725c8c85c4a3f84647b9d + languageName: node + linkType: hard + +"@types/d3-polygon@npm:*": + version: 3.0.2 + resolution: "@types/d3-polygon@npm:3.0.2" + checksum: 10/7cf1eadb54f02dd3617512b558f4c0f3811f8a6a8c887d9886981c3cc251db28b68329b2b0707d9f517231a72060adbb08855227f89bef6ef30caedc0a67cab2 + languageName: node + linkType: hard + +"@types/d3-quadtree@npm:*": + version: 3.0.6 + resolution: "@types/d3-quadtree@npm:3.0.6" + checksum: 10/4c260c9857d496b7f112cf57680c411c1912cc72538a5846c401429e3ed89a097c66410cfd38b394bfb4733ec2cb47d345b4eb5e202cbfb8e78ab044b535be02 + languageName: node + linkType: hard + +"@types/d3-random@npm:*": + version: 3.0.3 + resolution: "@types/d3-random@npm:3.0.3" + checksum: 10/2c126dda6846f6c7e02c9123a30b4cdf27f3655d19b78456bbb330fbac27acceeeb987318055d3964dba8e6450377ff737db91d81f27c81ca6f4522c9b994ef2 + languageName: node + linkType: hard + +"@types/d3-scale-chromatic@npm:*": + version: 3.0.3 + resolution: "@types/d3-scale-chromatic@npm:3.0.3" + checksum: 10/cc5488af1136c3f9e28aa3c3ee2dc3e5e843c666f64360fb3870f0b8679cd2ee844edaa5a93504a9665deb98cb3c2ae2257d610c338fa8caa4a31ab6fdeb2f15 + languageName: node + linkType: hard + +"@types/d3-scale@npm:*": + version: 4.0.8 + resolution: "@types/d3-scale@npm:4.0.8" + dependencies: + "@types/d3-time": "npm:*" + checksum: 10/376e4f2199ee6db70906651587a4521976920fa5eaa847a976c434e7a8171cbfeeab515cc510c5130b1f64fcf95b9750a7fd21dfc0a40fc3398641aa7dd4e7e2 + languageName: node + linkType: hard + +"@types/d3-selection@npm:*": + version: 3.0.11 + resolution: "@types/d3-selection@npm:3.0.11" + checksum: 10/2d2d993b9e9553d066566cb22916c632e5911090db99e247bd8c32855a344e6b7c25b674f3c27956c367a6b3b1214b09931ce854788c3be2072003e01f2c75d7 + languageName: node + linkType: hard + +"@types/d3-shape@npm:*": + version: 3.1.6 + resolution: "@types/d3-shape@npm:3.1.6" + dependencies: + "@types/d3-path": "npm:*" + checksum: 10/75abf403ec5b8c11e761256aa6b3546533d61e2e12f15c82bed6b606e963dcdfb9868a2038c46099173c8830423b35ddaf14d1162f96ad9da18a2e90b0fa7d25 + languageName: node + linkType: hard + +"@types/d3-time-format@npm:*": + version: 4.0.3 + resolution: "@types/d3-time-format@npm:4.0.3" + checksum: 10/9dfc1516502ac1c657d6024bdb88b6dc7e21dd7bff88f6187616cf9a0108250f63507a2004901ece4f97cc46602005a2ca2d05c6dbe53e8a0f6899bd60d4ff7a + languageName: node + linkType: hard + +"@types/d3-time@npm:*": + version: 3.0.3 + resolution: "@types/d3-time@npm:3.0.3" + checksum: 10/4e6bf24ec422f0893747e5020592e107bb3d96764a43d5f0bff666202bd71f052c73f735b50ec66296a6efd5766ca40b6a4e8ce3bbc61217dbe9467340608c12 + languageName: node + linkType: hard + +"@types/d3-timer@npm:*": + version: 3.0.2 + resolution: "@types/d3-timer@npm:3.0.2" + checksum: 10/1643eebfa5f4ae3eb00b556bbc509444d88078208ec2589ddd8e4a24f230dd4cf2301e9365947e70b1bee33f63aaefab84cd907822aae812b9bc4871b98ab0e1 + languageName: node + linkType: hard + +"@types/d3-transition@npm:*": + version: 3.0.9 + resolution: "@types/d3-transition@npm:3.0.9" + dependencies: + "@types/d3-selection": "npm:*" + checksum: 10/dad647c485440f176117e8a45f31aee9427d8d4dfa174eaa2f01e702641db53ad0f752a144b20987c7189723c4f0afe0bf0f16d95b2a91aa28937eee4339c161 + languageName: node + linkType: hard + +"@types/d3-zoom@npm:*": + version: 3.0.8 + resolution: "@types/d3-zoom@npm:3.0.8" + dependencies: + "@types/d3-interpolate": "npm:*" + "@types/d3-selection": "npm:*" + checksum: 10/cc6ba975cf4f55f94933413954d81b87feb1ee8b8cee8f2202cf526f218dcb3ba240cbeb04ed80522416201c4a7394b37de3eb695d840a36d190dfb2d3e62cb5 + languageName: node + linkType: hard + +"@types/d3@npm:^7.4.3": + version: 7.4.3 + resolution: "@types/d3@npm:7.4.3" + dependencies: + "@types/d3-array": "npm:*" + "@types/d3-axis": "npm:*" + "@types/d3-brush": "npm:*" + "@types/d3-chord": "npm:*" + "@types/d3-color": "npm:*" + "@types/d3-contour": "npm:*" + "@types/d3-delaunay": "npm:*" + "@types/d3-dispatch": "npm:*" + "@types/d3-drag": "npm:*" + "@types/d3-dsv": "npm:*" + "@types/d3-ease": "npm:*" + "@types/d3-fetch": "npm:*" + "@types/d3-force": "npm:*" + "@types/d3-format": "npm:*" + "@types/d3-geo": "npm:*" + "@types/d3-hierarchy": "npm:*" + "@types/d3-interpolate": "npm:*" + "@types/d3-path": "npm:*" + "@types/d3-polygon": "npm:*" + "@types/d3-quadtree": "npm:*" + "@types/d3-random": "npm:*" + "@types/d3-scale": "npm:*" + "@types/d3-scale-chromatic": "npm:*" + "@types/d3-selection": "npm:*" + "@types/d3-shape": "npm:*" + "@types/d3-time": "npm:*" + "@types/d3-time-format": "npm:*" + "@types/d3-timer": "npm:*" + "@types/d3-transition": "npm:*" + "@types/d3-zoom": "npm:*" + checksum: 10/12234aa093c8661546168becdd8956e892b276f525d96f65a7b32fed886fc6a569fe5a1171bff26fef2a5663960635f460c9504a6f2d242ba281a2b6c8c6465c + languageName: node + linkType: hard + "@types/detect-port@npm:^1.3.0": version: 1.3.5 resolution: "@types/detect-port@npm:1.3.5" @@ -13241,6 +13616,15 @@ __metadata: languageName: node linkType: hard +"@types/dompurify@npm:^3.0.5": + version: 3.0.5 + resolution: "@types/dompurify@npm:3.0.5" + dependencies: + "@types/trusted-types": "npm:*" + checksum: 10/e544b3ce53c41215cabff3d89256ff707c7ee8e0c9a1b5034b22014725d288b16e6942cdcdeeb4221c578c3421a6a4721aa0676431f55d7abd18c07368855c5e + languageName: node + linkType: hard + "@types/ejs@npm:^3.1.1, @types/ejs@npm:^3.1.2": version: 3.1.5 resolution: "@types/ejs@npm:3.1.5" @@ -13370,6 +13754,13 @@ __metadata: languageName: node linkType: hard +"@types/geojson@npm:*": + version: 7946.0.14 + resolution: "@types/geojson@npm:7946.0.14" + checksum: 10/ae511bee6488ae3bd5a3a3347aedb0371e997b14225b8983679284e22fa4ebd88627c6e3ff8b08bf4cc35068cb29310c89427311ffc9322c255615821a922e71 + languageName: node + linkType: hard + "@types/glob@npm:^8.0.0": version: 8.1.0 resolution: "@types/glob@npm:8.1.0" @@ -13890,6 +14281,13 @@ __metadata: languageName: node linkType: hard +"@types/trusted-types@npm:*": + version: 2.0.7 + resolution: "@types/trusted-types@npm:2.0.7" + checksum: 10/8e4202766a65877efcf5d5a41b7dd458480b36195e580a3b1085ad21e948bc417d55d6f8af1fd2a7ad008015d4117d5fdfe432731157da3c68678487174e4ba3 + languageName: node + linkType: hard + "@types/unist@npm:*, @types/unist@npm:^3.0.0": version: 3.0.3 resolution: "@types/unist@npm:3.0.3" @@ -16973,6 +17371,31 @@ __metadata: languageName: node linkType: hard +"chevrotain-allstar@npm:~0.3.0": + version: 0.3.1 + resolution: "chevrotain-allstar@npm:0.3.1" + dependencies: + lodash-es: "npm:^4.17.21" + peerDependencies: + chevrotain: ^11.0.0 + checksum: 10/a12c0e408c17920b5f8fc095b7981d15609a63b3795946005fdfc77a5bbc692bbdb196ea29ad4655f55bfa7c93bbcbe7fe2e5782475bf65761b33f13a4aa1a77 + languageName: node + linkType: hard + +"chevrotain@npm:~11.0.3": + version: 11.0.3 + resolution: "chevrotain@npm:11.0.3" + dependencies: + "@chevrotain/cst-dts-gen": "npm:11.0.3" + "@chevrotain/gast": "npm:11.0.3" + "@chevrotain/regexp-to-ast": "npm:11.0.3" + "@chevrotain/types": "npm:11.0.3" + "@chevrotain/utils": "npm:11.0.3" + lodash-es: "npm:4.17.21" + checksum: 10/8fa6253e51320dd4c3d386315b925734943e509d7954a2cd917746c0604461191bea57b0fb8fbab1903e0508fd94bfd35ebd0f8eace77cd0f3f42a9ee4f8f676 + languageName: node + linkType: hard + "chokidar@npm:>=3.0.0 <4.0.0, chokidar@npm:^3.5.2, chokidar@npm:^3.5.3, chokidar@npm:^3.6.0": version: 3.6.0 resolution: "chokidar@npm:3.6.0" @@ -17222,6 +17645,17 @@ __metadata: languageName: node linkType: hard +"clipboard@npm:^2.0.11": + version: 2.0.11 + resolution: "clipboard@npm:2.0.11" + dependencies: + good-listener: "npm:^1.2.2" + select: "npm:^1.1.2" + tiny-emitter: "npm:^2.0.0" + checksum: 10/929e92c5667d53cb3beb9482d2e6fe7612588fb3c08982a6001a65ea306b38cd462412a902a7ced75dac3c2eac2e075f5d4be1297e0bf1a9e891e10bb7150b47 + languageName: node + linkType: hard + "cliui@npm:^6.0.0": version: 6.0.0 resolution: "cliui@npm:6.0.0" @@ -17482,7 +17916,7 @@ __metadata: languageName: node linkType: hard -"commander@npm:7.2.0, commander@npm:^7.2.0": +"commander@npm:7, commander@npm:7.2.0, commander@npm:^7.2.0": version: 7.2.0 resolution: "commander@npm:7.2.0" checksum: 10/9973af10727ad4b44f26703bf3e9fdc323528660a7590efe3aa9ad5042b4584c0deed84ba443f61c9d6f02dade54a5a5d3c95e306a1e1630f8374ae6db16c06d @@ -17694,6 +18128,13 @@ __metadata: languageName: node linkType: hard +"confbox@npm:^0.1.8": + version: 0.1.8 + resolution: "confbox@npm:0.1.8" + checksum: 10/4ebcfb1c6a3b25276734ec5722e88768eb61fc02f98e11960b845c5c62bc27fd05f493d2a8244d9675b24ef95afe4c0d511cdcad02c72f5eeea463cc26687999 + languageName: node + linkType: hard + "configstore@npm:^5.0.1": version: 5.0.1 resolution: "configstore@npm:5.0.1" @@ -18142,6 +18583,24 @@ __metadata: languageName: node linkType: hard +"cose-base@npm:^1.0.0": + version: 1.0.3 + resolution: "cose-base@npm:1.0.3" + dependencies: + layout-base: "npm:^1.0.0" + checksum: 10/52e1f4ae173738aebe14395e3f865dc10ce430156554bab52f4b8ef0c583375644348c2a226b83d97eebc7d35340919e7bc10d23a3e2fe51b853bf56f27b5da7 + languageName: node + linkType: hard + +"cose-base@npm:^2.2.0": + version: 2.2.0 + resolution: "cose-base@npm:2.2.0" + dependencies: + layout-base: "npm:^2.0.0" + checksum: 10/4d4b16a84188b8f9419d9dbaffca62561f0e0ee125569339782141111aaf2bec1d180270bbaf5a13ac956f6a8c6b74ab2431e456da239982046b9ddb612bde6a + languageName: node + linkType: hard + "cosmiconfig-typescript-loader@npm:^5.0.0": version: 5.1.0 resolution: "cosmiconfig-typescript-loader@npm:5.1.0" @@ -18623,45 +19082,437 @@ __metadata: languageName: node linkType: hard -"dargs@npm:^7.0.0": - version: 7.0.0 - resolution: "dargs@npm:7.0.0" - checksum: 10/b8f1e3cba59c42e1f13a114ad4848c3fc1cf7470f633ee9e9f1043762429bc97d91ae31b826fb135eefde203a3fdb20deb0c0a0222ac29d937b8046085d668d1 +"cytoscape-cose-bilkent@npm:^4.1.0": + version: 4.1.0 + resolution: "cytoscape-cose-bilkent@npm:4.1.0" + dependencies: + cose-base: "npm:^1.0.0" + peerDependencies: + cytoscape: ^3.2.0 + checksum: 10/9ec2999159af62f1a251bf1e146a9a779085c4fdb1b8146596208f0097c0512fc4bffda53d3b00c87a1e8ae5024db3ebfb97162115216f5b4d024e314f4a03bb languageName: node linkType: hard -"dargs@npm:^8.0.0": - version: 8.1.0 - resolution: "dargs@npm:8.1.0" - checksum: 10/33f1b8f5f08e72c8a28355a87c0e1a9b6a0fec99252ecd9cf4735e65dd5f2e19747c860251ed5747b38e7204c7915fd7a7146aee5aaef5882c69169aae8b1d09 +"cytoscape-fcose@npm:^2.2.0": + version: 2.2.0 + resolution: "cytoscape-fcose@npm:2.2.0" + dependencies: + cose-base: "npm:^2.2.0" + peerDependencies: + cytoscape: ^3.2.0 + checksum: 10/927aa3b29c1d514c6513c5a785d7af7a8d0499eb166de1f42b958ef20d264ef9cbe238da0b65ae01860424972dce1c73017cf2afdae4f02f9a247f7031b00de3 languageName: node linkType: hard -"dashdash@npm:^1.12.0": - version: 1.14.1 - resolution: "dashdash@npm:1.14.1" +"cytoscape@npm:^3.29.2": + version: 3.30.3 + resolution: "cytoscape@npm:3.30.3" + checksum: 10/41d9c5fd276a130bb7fbf27d0072ff2362b2ada8ef23fa63704fec57a31b65500c374a7a25d037bfb38d63fcf74a0f1723504497be8786b98fd548a5c41db355 + languageName: node + linkType: hard + +"d3-array@npm:1 - 2": + version: 2.12.1 + resolution: "d3-array@npm:2.12.1" dependencies: - assert-plus: "npm:^1.0.0" - checksum: 10/137b287fa021201ce100cef772c8eeeaaafdd2aa7282864022acf3b873021e54cb809e9c060fa164840bf54ff72d00d6e2d8da1ee5a86d7200eeefa1123a8f7f + internmap: "npm:^1.0.0" + checksum: 10/9fdfb91f428915006e126090fe9aa9d5fcbecc78e925eceb32de9dfb989135f6ad940a8f1b086d0b569523679f85453c5335772aa9e6d5d41b480c2610857c7f languageName: node linkType: hard -"data-uri-to-buffer@npm:^4.0.0": - version: 4.0.1 - resolution: "data-uri-to-buffer@npm:4.0.1" - checksum: 10/0d0790b67ffec5302f204c2ccca4494f70b4e2d940fea3d36b09f0bb2b8539c2e86690429eb1f1dc4bcc9e4df0644193073e63d9ee48ac9fce79ec1506e4aa4c +"d3-array@npm:2 - 3, d3-array@npm:2.10.0 - 3, d3-array@npm:2.5.0 - 3, d3-array@npm:3, d3-array@npm:^3.2.0": + version: 3.2.4 + resolution: "d3-array@npm:3.2.4" + dependencies: + internmap: "npm:1 - 2" + checksum: 10/5800c467f89634776a5977f6dae3f4e127d91be80f1d07e3e6e35303f9de93e6636d014b234838eea620f7469688d191b3f41207a30040aab750a63c97ec1d7c languageName: node linkType: hard -"data-uri-to-buffer@npm:^6.0.2": - version: 6.0.2 - resolution: "data-uri-to-buffer@npm:6.0.2" - checksum: 10/8b6927c33f9b54037f442856be0aa20e5fd49fa6c9c8ceece408dc306445d593ad72d207d57037c529ce65f413b421da800c6827b1dbefb607b8056f17123a61 +"d3-axis@npm:3": + version: 3.0.0 + resolution: "d3-axis@npm:3.0.0" + checksum: 10/15ec43ecbd4e7b606fcda60f67a522e45576dfd6aa83dff47f3e91ef6c8448841a09cd91f630b492250dcec67c6ea64463510ead5e632ff6b827aeefae1d42ad languageName: node linkType: hard -"data-urls@npm:^3.0.2": - version: 3.0.2 +"d3-brush@npm:3": + version: 3.0.0 + resolution: "d3-brush@npm:3.0.0" + dependencies: + d3-dispatch: "npm:1 - 3" + d3-drag: "npm:2 - 3" + d3-interpolate: "npm:1 - 3" + d3-selection: "npm:3" + d3-transition: "npm:3" + checksum: 10/fa3a461b62f0f0ee6fe41f5babf45535a0a8f6d4999f675fb1dce932ee02eff72dec14c7296af31ca15998dc0141ccf5d02aa6499363f8bf2941d90688a1d644 + languageName: node + linkType: hard + +"d3-chord@npm:3": + version: 3.0.1 + resolution: "d3-chord@npm:3.0.1" + dependencies: + d3-path: "npm:1 - 3" + checksum: 10/4febcdca4fdc8ba91fc4f7545f4b6321c440150dff80c1ebef887db07bb4200395dfebede63b257393259de07f914da10842da5ab3135e1e281e33ad153e0849 + languageName: node + linkType: hard + +"d3-color@npm:1 - 3, d3-color@npm:3": + version: 3.1.0 + resolution: "d3-color@npm:3.1.0" + checksum: 10/536ba05bfd9f4fcd6fa289b5974f5c846b21d186875684637e22bf6855e6aba93e24a2eb3712985c6af3f502fbbfa03708edb72f58142f626241a8a17258e545 + languageName: node + linkType: hard + +"d3-contour@npm:4": + version: 4.0.2 + resolution: "d3-contour@npm:4.0.2" + dependencies: + d3-array: "npm:^3.2.0" + checksum: 10/0b252267e0c3c5e97d7e0c720bd35654de99f981199f7240d7dd1acfd4e2d5bf1638829f6db486452eff9c38608efa4a6ab5a0d1525131735c011ee7be3cb4ba + languageName: node + linkType: hard + +"d3-delaunay@npm:6": + version: 6.0.4 + resolution: "d3-delaunay@npm:6.0.4" + dependencies: + delaunator: "npm:5" + checksum: 10/4588e2872d4154daaf2c3f34fefe74e43b909cc460238a7b02823907ca6dd109f2c488c57c8551f1a2607fe4b44fdf24e3a190cea29bca70ef5606678dd9e2de + languageName: node + linkType: hard + +"d3-dispatch@npm:1 - 3, d3-dispatch@npm:3": + version: 3.0.1 + resolution: "d3-dispatch@npm:3.0.1" + checksum: 10/2b82f41bf4ef88c2f9033dfe32815b67e2ef1c5754a74137a74c7d44d6f0d6ecfa934ac56ed8afe358f6c1f06462e8aa42ca0a388397b5b77a42721570e80487 + languageName: node + linkType: hard + +"d3-drag@npm:2 - 3, d3-drag@npm:3": + version: 3.0.0 + resolution: "d3-drag@npm:3.0.0" + dependencies: + d3-dispatch: "npm:1 - 3" + d3-selection: "npm:3" + checksum: 10/80bc689935e5a46ee92b2d7f71e1c792279382affed9fbcf46034bff3ff7d3f50cf61a874da4bdf331037292b9e7dca5c6401a605d4bb699fdcb4e0c87e176ec + languageName: node + linkType: hard + +"d3-dsv@npm:1 - 3, d3-dsv@npm:3": + version: 3.0.1 + resolution: "d3-dsv@npm:3.0.1" + dependencies: + commander: "npm:7" + iconv-lite: "npm:0.6" + rw: "npm:1" + bin: + csv2json: bin/dsv2json.js + csv2tsv: bin/dsv2dsv.js + dsv2dsv: bin/dsv2dsv.js + dsv2json: bin/dsv2json.js + json2csv: bin/json2dsv.js + json2dsv: bin/json2dsv.js + json2tsv: bin/json2dsv.js + tsv2csv: bin/dsv2dsv.js + tsv2json: bin/dsv2json.js + checksum: 10/a628ac42a272466940f713f310db2e5246690b22035121dc1230077070c9135fb7c9b4d260f093fcadf63b0528202a1953107448a4be3a860c4f42f50d09504d + languageName: node + linkType: hard + +"d3-ease@npm:1 - 3, d3-ease@npm:3": + version: 3.0.1 + resolution: "d3-ease@npm:3.0.1" + checksum: 10/985d46e868494e9e6806fedd20bad712a50dcf98f357bf604a843a9f6bc17714a657c83dd762f183173dcde983a3570fa679b2bc40017d40b24163cdc4167796 + languageName: node + linkType: hard + +"d3-fetch@npm:3": + version: 3.0.1 + resolution: "d3-fetch@npm:3.0.1" + dependencies: + d3-dsv: "npm:1 - 3" + checksum: 10/cd35d55f8fbb1ea1e37be362a575bb0161449957133aa5b45b9891889b2aca1dc0769c240a236736e33cd823e820a0e73fb3744582307a5d26d1df7bed0ccecb + languageName: node + linkType: hard + +"d3-force@npm:3": + version: 3.0.0 + resolution: "d3-force@npm:3.0.0" + dependencies: + d3-dispatch: "npm:1 - 3" + d3-quadtree: "npm:1 - 3" + d3-timer: "npm:1 - 3" + checksum: 10/85945f8d444d78567009518f0ab54c0f0c8873eb8eb9a2ff0ab667b0f81b419e101a411415d4a2c752547ec7143f89675e8c33b8f111e55e5579a04cb7f4591c + languageName: node + linkType: hard + +"d3-format@npm:1 - 3, d3-format@npm:3": + version: 3.1.0 + resolution: "d3-format@npm:3.1.0" + checksum: 10/a0fe23d2575f738027a3db0ce57160e5a473ccf24808c1ed46d45ef4f3211076b34a18b585547d34e365e78dcc26dd4ab15c069731fc4b1c07a26bfced09ea31 + languageName: node + linkType: hard + +"d3-geo@npm:3": + version: 3.1.1 + resolution: "d3-geo@npm:3.1.1" + dependencies: + d3-array: "npm:2.5.0 - 3" + checksum: 10/dc5e980330d891dabf92869b98871b05ca2021c64d7ef253bcfd4f2348839ad33576fba474baecc2def86ebd3d943a11d93c0af26be0a2694f5bd59824838133 + languageName: node + linkType: hard + +"d3-hierarchy@npm:3": + version: 3.1.2 + resolution: "d3-hierarchy@npm:3.1.2" + checksum: 10/497b79dc6c35e28b21e8a7b94db92876abd1d4ec082d9803a07ea8964e55b0e71c511a21489363a36f1456f069adb8ff7d33c633678730d6ae961ed350b27733 + languageName: node + linkType: hard + +"d3-interpolate@npm:1 - 3, d3-interpolate@npm:1.2.0 - 3, d3-interpolate@npm:3": + version: 3.0.1 + resolution: "d3-interpolate@npm:3.0.1" + dependencies: + d3-color: "npm:1 - 3" + checksum: 10/988d66497ef5c190cf64f8c80cd66e1e9a58c4d1f8932d776a8e3ae59330291795d5a342f5a97602782ccbef21a5df73bc7faf1f0dc46a5145ba6243a82a0f0e + languageName: node + linkType: hard + +"d3-path@npm:1": + version: 1.0.9 + resolution: "d3-path@npm:1.0.9" + checksum: 10/6ce1747837ea2a449d9ea32e169a382978ab09a4805eb408feb6bbc12cb5f5f6ce29aefc252dd9a815d420f4813d672f75578b78b3bbaf7811f54d8c7f93fd11 + languageName: node + linkType: hard + +"d3-path@npm:1 - 3, d3-path@npm:3, d3-path@npm:^3.1.0": + version: 3.1.0 + resolution: "d3-path@npm:3.1.0" + checksum: 10/8e97a9ab4930a05b18adda64cf4929219bac913a5506cf8585631020253b39309549632a5cbeac778c0077994442ddaaee8316ee3f380e7baf7566321b84e76a + languageName: node + linkType: hard + +"d3-polygon@npm:3": + version: 3.0.1 + resolution: "d3-polygon@npm:3.0.1" + checksum: 10/c4fa2ed19dcba13fd341815361d27e64597aa0d38d377e401e1353c4acbe8bd73c0afb3e49a1cf4119fadc3651ec8073d06aa6d0e34e664c868d071e58912cd1 + languageName: node + linkType: hard + +"d3-quadtree@npm:1 - 3, d3-quadtree@npm:3": + version: 3.0.1 + resolution: "d3-quadtree@npm:3.0.1" + checksum: 10/1915b6a7b031fc312f9af61947072db9468c5a2b03837f6a90b38fdaebcd0ea17a883bffd94d16b8a6848e81711a06222f7d39f129386ef1850297219b8d32ba + languageName: node + linkType: hard + +"d3-random@npm:3": + version: 3.0.1 + resolution: "d3-random@npm:3.0.1" + checksum: 10/9f41d6ca3a1826cea8d88392917b5039504337d442a4d1357c870fa3031701e60209a2689a6ddae7df8fca824383d038c957eb545bc49a7428c71aaf3b11f56f + languageName: node + linkType: hard + +"d3-sankey@npm:^0.12.3": + version: 0.12.3 + resolution: "d3-sankey@npm:0.12.3" + dependencies: + d3-array: "npm:1 - 2" + d3-shape: "npm:^1.2.0" + checksum: 10/d5c679135a26d435e9970de3fc0778c6ef5c911f0c878b246939517b57a8daa2e2db6ef99318a0dad16e6079e4b89ef9166f1f661d8d247637875b764628094d + languageName: node + linkType: hard + +"d3-scale-chromatic@npm:3": + version: 3.1.0 + resolution: "d3-scale-chromatic@npm:3.1.0" + dependencies: + d3-color: "npm:1 - 3" + d3-interpolate: "npm:1 - 3" + checksum: 10/25df6a7c621b9171df8b2225e98e41c0a6bcac4de02deb4807280b31116e8f495c5ac93301796098ee5b698cb690154e8138d90d72fd1fe36744c60e02a3d8c4 + languageName: node + linkType: hard + +"d3-scale@npm:4": + version: 4.0.2 + resolution: "d3-scale@npm:4.0.2" + dependencies: + d3-array: "npm:2.10.0 - 3" + d3-format: "npm:1 - 3" + d3-interpolate: "npm:1.2.0 - 3" + d3-time: "npm:2.1.1 - 3" + d3-time-format: "npm:2 - 4" + checksum: 10/e2dc4243586eae2a0fdf91de1df1a90d51dfacb295933f0ca7e9184c31203b01436bef69906ad40f1100173a5e6197ae753cb7b8a1a8fcfda43194ea9cad6493 + languageName: node + linkType: hard + +"d3-selection@npm:2 - 3, d3-selection@npm:3": + version: 3.0.0 + resolution: "d3-selection@npm:3.0.0" + checksum: 10/0e5acfd305b31628b7be5009ba7303d84bb34817a88ed4dde9c8bd9c23528573fc5272f89fc04e5be03d2cbf5441a248d7274aaf55a8ef3dad46e16333d72298 + languageName: node + linkType: hard + +"d3-shape@npm:3": + version: 3.2.0 + resolution: "d3-shape@npm:3.2.0" + dependencies: + d3-path: "npm:^3.1.0" + checksum: 10/2e861f4d4781ee8abd85d2b435f848d667479dcf01a4e0db3a06600a5bdeddedb240f88229ec7b3bf7fa300c2b3526faeaf7e75f9a24dbf4396d3cc5358ff39d + languageName: node + linkType: hard + +"d3-shape@npm:^1.2.0": + version: 1.3.7 + resolution: "d3-shape@npm:1.3.7" + dependencies: + d3-path: "npm:1" + checksum: 10/1e40fdcfdc8edc9c53a77a6aaea2dbf31bf06df12ebd66cc8d91f76bbde753049ad21dfee0577f7dc5d0a4468554ede4783f6df7d809e291745334dba977c09e + languageName: node + linkType: hard + +"d3-time-format@npm:2 - 4, d3-time-format@npm:4": + version: 4.1.0 + resolution: "d3-time-format@npm:4.1.0" + dependencies: + d3-time: "npm:1 - 3" + checksum: 10/ffc0959258fbb90e3890bfb31b43b764f51502b575e87d0af2c85b85ac379120d246914d07fca9f533d1bcedc27b2841d308a00fd64848c3e2cad9eff5c9a0aa + languageName: node + linkType: hard + +"d3-time@npm:1 - 3, d3-time@npm:2.1.1 - 3, d3-time@npm:3": + version: 3.1.0 + resolution: "d3-time@npm:3.1.0" + dependencies: + d3-array: "npm:2 - 3" + checksum: 10/c110bed295ce63e8180e45b82a9b0ba114d5f33ff315871878f209c1a6d821caa505739a2b07f38d1396637155b8e7372632dacc018e11fbe8ceef58f6af806d + languageName: node + linkType: hard + +"d3-timer@npm:1 - 3, d3-timer@npm:3": + version: 3.0.1 + resolution: "d3-timer@npm:3.0.1" + checksum: 10/004128602bb187948d72c7dc153f0f063f38ac7a584171de0b45e3a841ad2e17f1e40ad396a4af9cce5551b6ab4a838d5246d23492553843d9da4a4050a911e2 + languageName: node + linkType: hard + +"d3-transition@npm:2 - 3, d3-transition@npm:3": + version: 3.0.1 + resolution: "d3-transition@npm:3.0.1" + dependencies: + d3-color: "npm:1 - 3" + d3-dispatch: "npm:1 - 3" + d3-ease: "npm:1 - 3" + d3-interpolate: "npm:1 - 3" + d3-timer: "npm:1 - 3" + peerDependencies: + d3-selection: 2 - 3 + checksum: 10/02571636acb82f5532117928a87fe25de68f088c38ab4a8b16e495f0f2d08a3fd2937eaebdefdfcf7f1461545524927d2632d795839b88d2e4c71e387aaaffac + languageName: node + linkType: hard + +"d3-zoom@npm:3": + version: 3.0.0 + resolution: "d3-zoom@npm:3.0.0" + dependencies: + d3-dispatch: "npm:1 - 3" + d3-drag: "npm:2 - 3" + d3-interpolate: "npm:1 - 3" + d3-selection: "npm:2 - 3" + d3-transition: "npm:2 - 3" + checksum: 10/0e6e5c14e33c4ecdff311a900dd037dea407734f2dd2818988ed6eae342c1799e8605824523678bd404f81e37824cc588f62dbde46912444c89acc7888036c6b + languageName: node + linkType: hard + +"d3@npm:^7.9.0": + version: 7.9.0 + resolution: "d3@npm:7.9.0" + dependencies: + d3-array: "npm:3" + d3-axis: "npm:3" + d3-brush: "npm:3" + d3-chord: "npm:3" + d3-color: "npm:3" + d3-contour: "npm:4" + d3-delaunay: "npm:6" + d3-dispatch: "npm:3" + d3-drag: "npm:3" + d3-dsv: "npm:3" + d3-ease: "npm:3" + d3-fetch: "npm:3" + d3-force: "npm:3" + d3-format: "npm:3" + d3-geo: "npm:3" + d3-hierarchy: "npm:3" + d3-interpolate: "npm:3" + d3-path: "npm:3" + d3-polygon: "npm:3" + d3-quadtree: "npm:3" + d3-random: "npm:3" + d3-scale: "npm:4" + d3-scale-chromatic: "npm:3" + d3-selection: "npm:3" + d3-shape: "npm:3" + d3-time: "npm:3" + d3-time-format: "npm:4" + d3-timer: "npm:3" + d3-transition: "npm:3" + d3-zoom: "npm:3" + checksum: 10/b0b418996bdf279b01f5c7a0117927f9ad3e833c9ce4657550ce6f6ace70b70cf829c4144b01df0be5a0f716d4e5f15ab0cadc5ff1ce1561d7be29ac86493d83 + languageName: node + linkType: hard + +"dagre-d3-es@npm:7.0.11": + version: 7.0.11 + resolution: "dagre-d3-es@npm:7.0.11" + dependencies: + d3: "npm:^7.9.0" + lodash-es: "npm:^4.17.21" + checksum: 10/5ea2faab020019a51e60791237239fc528bc20215503a846ad725c2e32dde6a270a16caf2ed6ec712b11e1c6616595b2b26e2c58f4f0e012218135629833e09b + languageName: node + linkType: hard + +"dargs@npm:^7.0.0": + version: 7.0.0 + resolution: "dargs@npm:7.0.0" + checksum: 10/b8f1e3cba59c42e1f13a114ad4848c3fc1cf7470f633ee9e9f1043762429bc97d91ae31b826fb135eefde203a3fdb20deb0c0a0222ac29d937b8046085d668d1 + languageName: node + linkType: hard + +"dargs@npm:^8.0.0": + version: 8.1.0 + resolution: "dargs@npm:8.1.0" + checksum: 10/33f1b8f5f08e72c8a28355a87c0e1a9b6a0fec99252ecd9cf4735e65dd5f2e19747c860251ed5747b38e7204c7915fd7a7146aee5aaef5882c69169aae8b1d09 + languageName: node + linkType: hard + +"dashdash@npm:^1.12.0": + version: 1.14.1 + resolution: "dashdash@npm:1.14.1" + dependencies: + assert-plus: "npm:^1.0.0" + checksum: 10/137b287fa021201ce100cef772c8eeeaaafdd2aa7282864022acf3b873021e54cb809e9c060fa164840bf54ff72d00d6e2d8da1ee5a86d7200eeefa1123a8f7f + languageName: node + linkType: hard + +"data-uri-to-buffer@npm:^4.0.0": + version: 4.0.1 + resolution: "data-uri-to-buffer@npm:4.0.1" + checksum: 10/0d0790b67ffec5302f204c2ccca4494f70b4e2d940fea3d36b09f0bb2b8539c2e86690429eb1f1dc4bcc9e4df0644193073e63d9ee48ac9fce79ec1506e4aa4c + languageName: node + linkType: hard + +"data-uri-to-buffer@npm:^6.0.2": + version: 6.0.2 + resolution: "data-uri-to-buffer@npm:6.0.2" + checksum: 10/8b6927c33f9b54037f442856be0aa20e5fd49fa6c9c8ceece408dc306445d593ad72d207d57037c529ce65f413b421da800c6827b1dbefb607b8056f17123a61 + languageName: node + linkType: hard + +"data-urls@npm:^3.0.2": + version: 3.0.2 resolution: "data-urls@npm:3.0.2" dependencies: abab: "npm:^2.0.6" @@ -18711,6 +19562,13 @@ __metadata: languageName: node linkType: hard +"dayjs@npm:^1.11.10": + version: 1.11.13 + resolution: "dayjs@npm:1.11.13" + checksum: 10/7374d63ab179b8d909a95e74790def25c8986e329ae989840bacb8b1888be116d20e1c4eee75a69ea0dfbae13172efc50ef85619d304ee7ca3c01d5878b704f5 + languageName: node + linkType: hard + "debug@npm:2.6.9, debug@npm:^2.6.9": version: 2.6.9 resolution: "debug@npm:2.6.9" @@ -18953,6 +19811,15 @@ __metadata: languageName: node linkType: hard +"delaunator@npm:5": + version: 5.0.1 + resolution: "delaunator@npm:5.0.1" + dependencies: + robust-predicates: "npm:^3.0.2" + checksum: 10/c378a55138d81d471a7214635b1a2c5e74f8ee06582f558df72f0c7c82c25868599ce9a18fb25a245c6c03cab886d17fb574681c78371b539dd069818703f53a + languageName: node + linkType: hard + "delayed-stream@npm:~1.0.0": version: 1.0.0 resolution: "delayed-stream@npm:1.0.0" @@ -18960,6 +19827,13 @@ __metadata: languageName: node linkType: hard +"delegate@npm:^3.1.2": + version: 3.2.0 + resolution: "delegate@npm:3.2.0" + checksum: 10/d943058fe05897228b158cbd1bab05164df28c8f54127873231d6b03b0a5acc1b3ee1f98ac70ccc9b79cd84aa47118a7de111fee2923753491583905069da27d + languageName: node + linkType: hard + "delegates@npm:^1.0.0": version: 1.0.0 resolution: "delegates@npm:1.0.0" @@ -19218,6 +20092,13 @@ __metadata: languageName: node linkType: hard +"dompurify@npm:^3.0.11 <3.1.7": + version: 3.1.6 + resolution: "dompurify@npm:3.1.6" + checksum: 10/036844bc9b717b172ba27f5863b56f950289a05d8eebfb702d6953bbf80bd021e480ce4217bd084567186f2d0ada13358ce5556963492cfe402d774e8667f120 + languageName: node + linkType: hard + "domutils@npm:^2.5.2, domutils@npm:^2.8.0": version: 2.8.0 resolution: "domutils@npm:2.8.0" @@ -19421,6 +20302,13 @@ __metadata: languageName: node linkType: hard +"emoji-toolkit@npm:>= 8.0.0 < 10.0.0": + version: 9.0.1 + resolution: "emoji-toolkit@npm:9.0.1" + checksum: 10/e2dd3edda04f3b6c0850512438cca8952a2750f04d884b9939850e08a77c296c36b824a298eca42cdce6cd6027df52684e4753cf3d1856a0e5a24560f084d5ee + languageName: node + linkType: hard + "emojis-list@npm:^3.0.0": version: 3.0.0 resolution: "emojis-list@npm:3.0.0" @@ -21932,6 +22820,15 @@ __metadata: languageName: node linkType: hard +"good-listener@npm:^1.2.2": + version: 1.2.2 + resolution: "good-listener@npm:1.2.2" + dependencies: + delegate: "npm:^3.1.2" + checksum: 10/14a755ad2eeb5ca65b98359438a0bd0ed0ae27304913b1f0866e1424fdff957133644d455d03178fbcb0f83d2cdaae414cc9cbdfebf4bd04a690854cd4a657ee + languageName: node + linkType: hard + "gopd@npm:^1.0.1": version: 1.0.1 resolution: "gopd@npm:1.0.1" @@ -21981,6 +22878,13 @@ __metadata: languageName: node linkType: hard +"hachure-fill@npm:^0.5.2": + version: 0.5.2 + resolution: "hachure-fill@npm:0.5.2" + checksum: 10/d78f1b992d1c8951a4fc893bf32045748132a8b481c15d6d31c77c05557f5fa86913a2b66b3c3a3c8ce46ca8e0a46b0b2aa11f979bc804d8edba77b8c30eb1ca + languageName: node + linkType: hard + "hammerjs@npm:^2.0.8": version: 2.0.8 resolution: "hammerjs@npm:2.0.8" @@ -22152,13 +23056,6 @@ __metadata: languageName: node linkType: hard -"highlight.js@npm:^11.8.0, highlight.js@npm:^11.9.0": - version: 11.10.0 - resolution: "highlight.js@npm:11.10.0" - checksum: 10/fc8747bcd4a491fc6a47ff80536881dcc9ea9b36cdc2a22a7be5670b89d76ca6c26df9d749017a23bbb2eb708331097a5ecbcee6330fb9064512d80cc3369d99 - languageName: node - linkType: hard - "homedir-polyfill@npm:^1.0.1": version: 1.0.3 resolution: "homedir-polyfill@npm:1.0.3" @@ -22623,7 +23520,7 @@ __metadata: languageName: node linkType: hard -"iconv-lite@npm:0.6.3, iconv-lite@npm:^0.6.2, iconv-lite@npm:^0.6.3": +"iconv-lite@npm:0.6, iconv-lite@npm:0.6.3, iconv-lite@npm:^0.6.2, iconv-lite@npm:^0.6.3": version: 0.6.3 resolution: "iconv-lite@npm:0.6.3" dependencies: @@ -22887,6 +23784,20 @@ __metadata: languageName: node linkType: hard +"internmap@npm:1 - 2": + version: 2.0.3 + resolution: "internmap@npm:2.0.3" + checksum: 10/873e0e7fcfe32f999aa0997a0b648b1244508e56e3ea6b8259b5245b50b5eeb3853fba221f96692bd6d1def501da76c32d64a5cb22a0b26cdd9b445664f805e0 + languageName: node + linkType: hard + +"internmap@npm:^1.0.0": + version: 1.0.1 + resolution: "internmap@npm:1.0.1" + checksum: 10/429cb9e28f393f10c73a826d71ba9e359711b7e42345bd684aba708f43b8139ce90f09b15abbf977a981474ac61615294854e5b9520d3f65187d0f6a2ff27665 + languageName: node + linkType: hard + "interpret@npm:^3.1.1": version: 3.1.1 resolution: "interpret@npm:3.1.1" @@ -24530,6 +25441,17 @@ __metadata: languageName: node linkType: hard +"katex@npm:^0.16.0, katex@npm:^0.16.9": + version: 0.16.11 + resolution: "katex@npm:0.16.11" + dependencies: + commander: "npm:^8.3.0" + bin: + katex: cli.js + checksum: 10/adfb95a70168f732c26f44a443d27df393ca641a3533aa9321f37b1b69134cf4b15142d533c187ec9a0b02c0bbfebab5ab26f15bd0cc08a57114e1f767f0d7ae + languageName: node + linkType: hard + "keycharm@npm:^0.2.0": version: 0.2.0 resolution: "keycharm@npm:0.2.0" @@ -24566,6 +25488,13 @@ __metadata: languageName: node linkType: hard +"khroma@npm:^2.1.0": + version: 2.1.0 + resolution: "khroma@npm:2.1.0" + checksum: 10/a195e317bf6f3a1cba98df2677bf9bf6d14195ee0b1c3e5bc20a542cd99652682f290c196a8963956d87aed4ad65ac0bc8a15d75cddf00801fdafd148e01a5d2 + languageName: node + linkType: hard + "kind-of@npm:^6.0.2, kind-of@npm:^6.0.3": version: 6.0.3 resolution: "kind-of@npm:6.0.3" @@ -24652,6 +25581,13 @@ __metadata: languageName: node linkType: hard +"kolorist@npm:^1.8.0": + version: 1.8.0 + resolution: "kolorist@npm:1.8.0" + checksum: 10/71d5d122951cc65f2f14c3e1d7f8fd91694b374647d4f6deec3816d018cd04a44edd9578d93e00c82c2053b925e5d30a0565746c4171f4ca9fce1a13bd5f3315 + languageName: node + linkType: hard + "kuler@npm:^2.0.0": version: 2.0.0 resolution: "kuler@npm:2.0.0" @@ -24659,6 +25595,19 @@ __metadata: languageName: node linkType: hard +"langium@npm:3.0.0": + version: 3.0.0 + resolution: "langium@npm:3.0.0" + dependencies: + chevrotain: "npm:~11.0.3" + chevrotain-allstar: "npm:~0.3.0" + vscode-languageserver: "npm:~9.0.1" + vscode-languageserver-textdocument: "npm:~1.0.11" + vscode-uri: "npm:~3.0.8" + checksum: 10/2b0924373c09acb42ab88ddfe387bdafd33ce7f3cc36fcda4b9a9f864941c699b7e0a48c1afe81a9d9a15e15980d09d7889c8d89d046b92e7f813b9ea5514b12 + languageName: node + linkType: hard + "launch-editor@npm:^2.6.0, launch-editor@npm:^2.6.1": version: 2.9.1 resolution: "launch-editor@npm:2.9.1" @@ -24669,6 +25618,20 @@ __metadata: languageName: node linkType: hard +"layout-base@npm:^1.0.0": + version: 1.0.2 + resolution: "layout-base@npm:1.0.2" + checksum: 10/34504e61e4770e563cf49d4a56c8c10f1da0fb452cff89a652118783189c642ebc86a300d97cbc247e59a9c1eb06a2d419982f7dd10e8eedcab2414bc46d32f8 + languageName: node + linkType: hard + +"layout-base@npm:^2.0.0": + version: 2.0.1 + resolution: "layout-base@npm:2.0.1" + checksum: 10/b5cca04a2e327ea16374a0058f73544291aeb0026972677a128594aca3b627d26949140ab7d275798c7d39193a33b41c5a856d4509c1518f49c9a5f1dad39a20 + languageName: node + linkType: hard + "lazy-universal-dotenv@npm:^4.0.0": version: 4.0.0 resolution: "lazy-universal-dotenv@npm:4.0.0" @@ -25072,6 +26035,16 @@ __metadata: languageName: node linkType: hard +"local-pkg@npm:^0.5.0": + version: 0.5.0 + resolution: "local-pkg@npm:0.5.0" + dependencies: + mlly: "npm:^1.4.2" + pkg-types: "npm:^1.0.3" + checksum: 10/20f4caba50dc6fb00ffcc1a78bc94b5acb33995e0aadf4d4edcdeab257e891aa08f50afddf02f3240b2c3d02432bc2078f2a916a280ed716b64753a3d250db70 + languageName: node + linkType: hard + "localforage@npm:^1.8.1": version: 1.10.0 resolution: "localforage@npm:1.10.0" @@ -25128,6 +26101,13 @@ __metadata: languageName: node linkType: hard +"lodash-es@npm:4.17.21, lodash-es@npm:^4.17.21": + version: 4.17.21 + resolution: "lodash-es@npm:4.17.21" + checksum: 10/03f39878ea1e42b3199bd3f478150ab723f93cc8730ad86fec1f2804f4a07c6e30deaac73cad53a88e9c3db33348bb8ceeb274552390e7a75d7849021c02df43 + languageName: node + linkType: hard + "lodash.camelcase@npm:^4.3.0": version: 4.3.0 resolution: "lodash.camelcase@npm:4.3.0" @@ -25662,6 +26642,24 @@ __metadata: languageName: node linkType: hard +"marked@npm:^12.0.0": + version: 12.0.2 + resolution: "marked@npm:12.0.2" + bin: + marked: bin/marked.js + checksum: 10/24d4fc58d37c1779197fa7f93c504d8c71d4df54eb69cbbc14a55ba2a8e2ad83d723801fc25452c21ce74b38a483c5863c53449f130253a597be9e9c1d3e7e2b + languageName: node + linkType: hard + +"marked@npm:^13.0.2": + version: 13.0.3 + resolution: "marked@npm:13.0.3" + bin: + marked: bin/marked.js + checksum: 10/95daf69e316879a3be112793f203093b2646aeeaa1b7eedc6ea7902bff6af44da045cd35c723711645bc7d92dbe872101e5a36976b48164e1efc1356b12a4a57 + languageName: node + linkType: hard + "marky@npm:^1.2.2": version: 1.2.5 resolution: "marky@npm:1.2.5" @@ -25858,6 +26856,35 @@ __metadata: languageName: node linkType: hard +"mermaid@npm:>= 10.6.0 < 12.0.0": + version: 11.4.0 + resolution: "mermaid@npm:11.4.0" + dependencies: + "@braintree/sanitize-url": "npm:^7.0.1" + "@iconify/utils": "npm:^2.1.32" + "@mermaid-js/parser": "npm:^0.3.0" + "@types/d3": "npm:^7.4.3" + "@types/dompurify": "npm:^3.0.5" + cytoscape: "npm:^3.29.2" + cytoscape-cose-bilkent: "npm:^4.1.0" + cytoscape-fcose: "npm:^2.2.0" + d3: "npm:^7.9.0" + d3-sankey: "npm:^0.12.3" + dagre-d3-es: "npm:7.0.11" + dayjs: "npm:^1.11.10" + dompurify: "npm:^3.0.11 <3.1.7" + katex: "npm:^0.16.9" + khroma: "npm:^2.1.0" + lodash-es: "npm:^4.17.21" + marked: "npm:^13.0.2" + roughjs: "npm:^4.6.6" + stylis: "npm:^4.3.1" + ts-dedent: "npm:^2.2.0" + uuid: "npm:^9.0.1" + checksum: 10/083197c6263b44ca5aec4bdce03aea181ad98f5cf4da62d751be1896c368d58ab427305ae185ca3b2b60af3ce16db7f975fee51023a414c2733cbd61803cc8b1 + languageName: node + linkType: hard + "metaviewport-parser@npm:0.3.0": version: 0.3.0 resolution: "metaviewport-parser@npm:0.3.0" @@ -26244,6 +27271,18 @@ __metadata: languageName: node linkType: hard +"mlly@npm:^1.4.2, mlly@npm:^1.7.1, mlly@npm:^1.7.2": + version: 1.7.2 + resolution: "mlly@npm:1.7.2" + dependencies: + acorn: "npm:^8.12.1" + pathe: "npm:^1.1.2" + pkg-types: "npm:^1.2.0" + ufo: "npm:^1.5.4" + checksum: 10/c28e9f32cfc7b204e4d089a9af01b6af30547f39dd97244486fe208523c1453828b694430ebfa2d06297116861d464f150d3273040bf5e11ef5a357958f142d5 + languageName: node + linkType: hard + "modify-values@npm:^1.0.1": version: 1.0.1 resolution: "modify-values@npm:1.0.1" @@ -26541,16 +27580,35 @@ __metadata: languageName: node linkType: hard -"ngx-highlightjs@npm:^12.0.0": - version: 12.0.0 - resolution: "ngx-highlightjs@npm:12.0.0" +"ngx-markdown@npm:^18.1.0": + version: 18.1.0 + resolution: "ngx-markdown@npm:18.1.0" dependencies: - highlight.js: "npm:^11.9.0" + clipboard: "npm:^2.0.11" + emoji-toolkit: "npm:>= 8.0.0 < 10.0.0" + katex: "npm:^0.16.0" + mermaid: "npm:>= 10.6.0 < 12.0.0" + prismjs: "npm:^1.28.0" tslib: "npm:^2.3.0" peerDependencies: - "@angular/common": ">=17.0.0" - "@angular/core": ">=17.0.0" - checksum: 10/d7cc7b2191ae356a0b61d54aa935407cdedc34fb528e2346e60e6deeb9392403318210482da0f5bead8d275cc8080c608af2ac3952e4f6e4ea8aa1f237a76b37 + "@angular/common": ^18.0.0 + "@angular/core": ^18.0.0 + "@angular/platform-browser": ^18.0.0 + marked: ">= 9.0.0 < 13.0.0" + rxjs: ^6.5.3 || ^7.4.0 + zone.js: ~0.14.0 + dependenciesMeta: + clipboard: + optional: true + emoji-toolkit: + optional: true + katex: + optional: true + mermaid: + optional: true + prismjs: + optional: true + checksum: 10/e0c418e489066c079b17b2c86e0e8f9d0899e2d8f1582d303d5ce75028488b6cd76a693e2ea328f223dbc8c42dc63e29cd61460507ae2c7d82af078e6581e58f languageName: node linkType: hard @@ -27754,6 +28812,13 @@ __metadata: languageName: node linkType: hard +"package-manager-detector@npm:^0.2.0": + version: 0.2.2 + resolution: "package-manager-detector@npm:0.2.2" + checksum: 10/2dc2914aeff0729c37c1cf9762f65c0a6f09d6c64f666cc187e34de95bca54f16b4ca2e3c1e9ced87ea0637cfdb3c98261a838de04d9f1b1b26b6ae72bd55b80 + languageName: node + linkType: hard + "pacote@npm:18.0.6": version: 18.0.6 resolution: "pacote@npm:18.0.6" @@ -27973,6 +29038,13 @@ __metadata: languageName: node linkType: hard +"path-data-parser@npm:0.1.0, path-data-parser@npm:^0.1.0": + version: 0.1.0 + resolution: "path-data-parser@npm:0.1.0" + checksum: 10/a23a214adb38074576a8873d25e8dea7e090b8396d86f58f83f3f6c6298ff56b06adc694147b67f0ed22f14dc478efa1d525710d3ec7b2d7b1efbac57e3fafe6 + languageName: node + linkType: hard + "path-equal@npm:^1.2.5": version: 1.2.5 resolution: "path-equal@npm:1.2.5" @@ -28100,6 +29172,13 @@ __metadata: languageName: node linkType: hard +"pathe@npm:^1.1.2": + version: 1.1.2 + resolution: "pathe@npm:1.1.2" + checksum: 10/f201d796351bf7433d147b92c20eb154a4e0ea83512017bf4ec4e492a5d6e738fb45798be4259a61aa81270179fce11026f6ff0d3fa04173041de044defe9d80 + languageName: node + linkType: hard + "pause-stream@npm:0.0.11, pause-stream@npm:^0.0.11": version: 0.0.11 resolution: "pause-stream@npm:0.0.11" @@ -28356,6 +29435,17 @@ __metadata: languageName: node linkType: hard +"pkg-types@npm:^1.0.3, pkg-types@npm:^1.2.0": + version: 1.2.1 + resolution: "pkg-types@npm:1.2.1" + dependencies: + confbox: "npm:^0.1.8" + mlly: "npm:^1.7.2" + pathe: "npm:^1.1.2" + checksum: 10/d61f4b7a2351b55b22f1d08f5f9b4236928d5660886131cc0e11576362e2b3bfcb54084bb4a0ba79147b707a27dcae87444a86e731113e152ffd3b6155ce5a5a + languageName: node + linkType: hard + "playwright-core@npm:1.48.2": version: 1.48.2 resolution: "playwright-core@npm:1.48.2" @@ -28417,6 +29507,23 @@ __metadata: languageName: node linkType: hard +"points-on-curve@npm:0.2.0, points-on-curve@npm:^0.2.0": + version: 0.2.0 + resolution: "points-on-curve@npm:0.2.0" + checksum: 10/3f9a4a9f5a624bb307a72f5cdf1f7c29bedc546716664a2cfd7228085308575e63b461a3e64a88d3b451031655714eb49469d2ced392ee014b709132cd59be93 + languageName: node + linkType: hard + +"points-on-path@npm:^0.2.1": + version: 0.2.1 + resolution: "points-on-path@npm:0.2.1" + dependencies: + path-data-parser: "npm:0.1.0" + points-on-curve: "npm:0.2.0" + checksum: 10/8b3f42feb24433b4a3e0b1c1f951340f06f523b26ed4d87446829f500f1468ad1484a6bf7fedf076ff4b492ae6b1daa7ffc07c7a8f7c00f4d072f17f79fe9ed0 + languageName: node + linkType: hard + "portfinder@npm:^1.0.28": version: 1.0.32 resolution: "portfinder@npm:1.0.32" @@ -28967,7 +30074,14 @@ __metadata: languageName: node linkType: hard -"prismjs@npm:^1.29.0": +"prism-themes@npm:^1.9.0": + version: 1.9.0 + resolution: "prism-themes@npm:1.9.0" + checksum: 10/401186c30be85d13d7db793576e1f494f207aa0c079832692d18e0c6ff0582a6aba8f7728abc01e47b55c3126e437584537490c31c7f3f5e119f16ba6bb91a9b + languageName: node + linkType: hard + +"prismjs@npm:^1.28.0, prismjs@npm:^1.29.0": version: 1.29.0 resolution: "prismjs@npm:1.29.0" checksum: 10/2080db382c2dde0cfc7693769e89b501ef1bfc8ff4f8d25c07fd4c37ca31bc443f6133d5b7c145a73309dc396e829ddb7cc18560026d862a887ae08864ef6b07 @@ -30232,6 +31346,13 @@ __metadata: languageName: node linkType: hard +"robust-predicates@npm:^3.0.2": + version: 3.0.2 + resolution: "robust-predicates@npm:3.0.2" + checksum: 10/88bd7d45a6b89e88da2631d4c111aaaf0443de4d7078e9ab7f732245790a3645cf79bf91882a9740dbc959cf56ba75d5dced5bf2259410f8b6de19fd240cd08c + languageName: node + linkType: hard + "rollup@npm:4.22.4": version: 4.22.4 resolution: "rollup@npm:4.22.4" @@ -30364,6 +31485,18 @@ __metadata: languageName: node linkType: hard +"roughjs@npm:^4.6.6": + version: 4.6.6 + resolution: "roughjs@npm:4.6.6" + dependencies: + hachure-fill: "npm:^0.5.2" + path-data-parser: "npm:^0.1.0" + points-on-curve: "npm:^0.2.0" + points-on-path: "npm:^0.2.1" + checksum: 10/76bd1e892d79b002dbc0591a28442462e027a77edfcdcd3dbbd2e404fa6d248891ade84ca656b24b1d40a29e3a9df5831633b7a7bb5c8551adcdac480a3dce79 + languageName: node + linkType: hard + "rrweb-cssom@npm:^0.7.1": version: 0.7.1 resolution: "rrweb-cssom@npm:0.7.1" @@ -30394,6 +31527,13 @@ __metadata: languageName: node linkType: hard +"rw@npm:1": + version: 1.3.3 + resolution: "rw@npm:1.3.3" + checksum: 10/e90985d64777a00f4ab5f8c0bfea2fb5645c6bda5238840afa339c8a4f86f776e8ce83731155643a7425a0b27ce89077dab27b2f57519996ba4d2fe54cac1941 + languageName: node + linkType: hard + "rxjs@npm:7.8.1, rxjs@npm:^7.2.0, rxjs@npm:^7.5.5, rxjs@npm:^7.8.0, rxjs@npm:^7.8.1": version: 7.8.1 resolution: "rxjs@npm:7.8.1" @@ -30635,6 +31775,13 @@ __metadata: languageName: node linkType: hard +"select@npm:^1.1.2": + version: 1.1.2 + resolution: "select@npm:1.1.2" + checksum: 10/4346151e94f226ea6131e44e68e6d837f3fdee64831b756dd657cc0b02f4cb5107f867cb34a1d1216ab7737d0bf0645d44546afb030bbd8d64e891f5e4c4814e + languageName: node + linkType: hard + "selenium-webdriver@npm:3.6.0, selenium-webdriver@npm:^3.0.1": version: 3.6.0 resolution: "selenium-webdriver@npm:3.6.0" @@ -31805,6 +32952,13 @@ __metadata: languageName: node linkType: hard +"stylis@npm:^4.3.1": + version: 4.3.4 + resolution: "stylis@npm:4.3.4" + checksum: 10/69b902a3c9fc3329c8ddb18d422f8130068356dd4d4a20ae245953679cc88ae08d49c55e32b0b57c8fe8a76f2ed7f32697240b8db4d368a25fc2db045ebaeba8 + languageName: node + linkType: hard + "stylus-loader@npm:^7.1.0": version: 7.1.3 resolution: "stylus-loader@npm:7.1.3" @@ -32276,6 +33430,13 @@ __metadata: languageName: node linkType: hard +"tiny-emitter@npm:^2.0.0": + version: 2.1.0 + resolution: "tiny-emitter@npm:2.1.0" + checksum: 10/75633f4de4f47f43af56aff6162f25b87be7efc6f669fda256658f3c3f4a216f23dc0d13200c6fafaaf1b0c7142f0201352fb06aec0b77f68aea96be898f4516 + languageName: node + linkType: hard + "tiny-glob@npm:0.2.9": version: 0.2.9 resolution: "tiny-glob@npm:0.2.9" @@ -32536,7 +33697,7 @@ __metadata: languageName: node linkType: hard -"ts-dedent@npm:^2.0.0": +"ts-dedent@npm:^2.0.0, ts-dedent@npm:^2.2.0": version: 2.2.0 resolution: "ts-dedent@npm:2.2.0" checksum: 10/93ed8f7878b6d5ed3c08d99b740010eede6bccfe64bce61c5a4da06a2c17d6ddbb80a8c49c2d15251de7594a4f93ffa21dd10e7be75ef66a4dc9951b4a94e2af @@ -33069,6 +34230,13 @@ __metadata: languageName: node linkType: hard +"ufo@npm:^1.5.4": + version: 1.5.4 + resolution: "ufo@npm:1.5.4" + checksum: 10/a885ed421e656aea6ca64e9727b8118a9488715460b6f1a0f0427118adfe2f2830fe7c1d5bd9c5c754a332e6807516551cd663ea67ce9ed6a4e3edc739916335 + languageName: node + linkType: hard + "uglify-js@npm:^3.1.4": version: 3.19.3 resolution: "uglify-js@npm:3.19.3" @@ -33491,6 +34659,15 @@ __metadata: languageName: node linkType: hard +"uuid@npm:^9.0.1": + version: 9.0.1 + resolution: "uuid@npm:9.0.1" + bin: + uuid: dist/bin/uuid + checksum: 10/9d0b6adb72b736e36f2b1b53da0d559125ba3e39d913b6072f6f033e0c87835b414f0836b45bcfaf2bdf698f92297fea1c3cc19b0b258bc182c9c43cc0fab9f2 + languageName: node + linkType: hard + "v8-compile-cache-lib@npm:^3.0.1": version: 3.0.1 resolution: "v8-compile-cache-lib@npm:3.0.1" @@ -33652,6 +34829,55 @@ __metadata: languageName: node linkType: hard +"vscode-jsonrpc@npm:8.2.0": + version: 8.2.0 + resolution: "vscode-jsonrpc@npm:8.2.0" + checksum: 10/6d57c3aed591d0bc89d1c226061d265b04de528582bef183f5998cac5de78a736887e5238fe48b9f6a14ec32f05d8fda71599f92862ac5dacc7f26bf7399b532 + languageName: node + linkType: hard + +"vscode-languageserver-protocol@npm:3.17.5": + version: 3.17.5 + resolution: "vscode-languageserver-protocol@npm:3.17.5" + dependencies: + vscode-jsonrpc: "npm:8.2.0" + vscode-languageserver-types: "npm:3.17.5" + checksum: 10/aeb9c190184c365fa6b835e5aa7574c86cb3ecb2789386bcff76a09b22bc8b8e0d5da47c28193a9c73cfb32c10a12a91191779280324a38efb401e3ef7bad294 + languageName: node + linkType: hard + +"vscode-languageserver-textdocument@npm:~1.0.11": + version: 1.0.12 + resolution: "vscode-languageserver-textdocument@npm:1.0.12" + checksum: 10/2bc0fde952d40f35a31179623d1491b0fafdee156aaf58557f40f5d394a25fc84826763cdde55fa6ce2ed9cd35a931355ad6dd7fe5db82e7f21e5d865f0af8c6 + languageName: node + linkType: hard + +"vscode-languageserver-types@npm:3.17.5": + version: 3.17.5 + resolution: "vscode-languageserver-types@npm:3.17.5" + checksum: 10/900d0b81df5bef8d90933e75be089142f6989cc70fdb2d5a3a5f11fa20feb396aaea23ccffc8fbcc83a2f0e1b13c6ee48ff8151f236cbd6e61a4f856efac1a58 + languageName: node + linkType: hard + +"vscode-languageserver@npm:~9.0.1": + version: 9.0.1 + resolution: "vscode-languageserver@npm:9.0.1" + dependencies: + vscode-languageserver-protocol: "npm:3.17.5" + bin: + installServerIntoExtension: bin/installServerIntoExtension + checksum: 10/1cb643b1b1f41a620aaf4a62e152acad694c22b4d98de73fa614a0bddf3b4b4832460465bdbc43f27ba23dad7e61aba533e77b8bfac74cc8de310c39623a7ba1 + languageName: node + linkType: hard + +"vscode-uri@npm:~3.0.8": + version: 3.0.8 + resolution: "vscode-uri@npm:3.0.8" + checksum: 10/e882d6b679e0d053cbc042893c0951a135d899a192b62cd07f0a8924f11ae722067a8d6b1b5b147034becf57faf9fff9fb543b17b749fd0f17db1f54f783f07c + languageName: node + linkType: hard + "w3c-xmlserializer@npm:^4.0.0": version: 4.0.0 resolution: "w3c-xmlserializer@npm:4.0.0"