first commit

This commit is contained in:
Bruno Charest 2025-09-27 18:13:02 -04:00
commit 6e1b5407b7
253 changed files with 289900 additions and 0 deletions

File diff suppressed because one or more lines are too long

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,205 @@
import {
APP_BASE_HREF,
AsyncPipe,
BrowserPlatformLocation,
CommonModule,
CurrencyPipe,
DATE_PIPE_DEFAULT_OPTIONS,
DATE_PIPE_DEFAULT_TIMEZONE,
DatePipe,
DecimalPipe,
DomAdapter,
FormStyle,
FormatWidth,
HashLocationStrategy,
I18nPluralPipe,
I18nSelectPipe,
IMAGE_LOADER,
JsonPipe,
KeyValuePipe,
LOCATION_INITIALIZED,
Location,
LocationStrategy,
LowerCasePipe,
NgClass,
NgComponentOutlet,
NgForOf,
NgForOfContext,
NgIf,
NgIfContext,
NgLocaleLocalization,
NgLocalization,
NgOptimizedImage,
NgPlural,
NgPluralCase,
NgStyle,
NgSwitch,
NgSwitchCase,
NgSwitchDefault,
NgTemplateOutlet,
NullViewportScroller,
NumberFormatStyle,
NumberSymbol,
PLATFORM_BROWSER_ID,
PLATFORM_SERVER_ID,
PRECONNECT_CHECK_BLOCKLIST,
PathLocationStrategy,
PercentPipe,
PlatformLocation,
PlatformNavigation,
Plural,
SlicePipe,
TitleCasePipe,
TranslationWidth,
UpperCasePipe,
VERSION,
ViewportScroller,
WeekDay,
formatCurrency,
formatDate,
formatNumber,
formatPercent,
getCurrencySymbol,
getDOM,
getLocaleCurrencyCode,
getLocaleCurrencyName,
getLocaleCurrencySymbol,
getLocaleDateFormat,
getLocaleDateTimeFormat,
getLocaleDayNames,
getLocaleDayPeriods,
getLocaleDirection,
getLocaleEraNames,
getLocaleExtraDayPeriodRules,
getLocaleExtraDayPeriods,
getLocaleFirstDayOfWeek,
getLocaleId,
getLocaleMonthNames,
getLocaleNumberFormat,
getLocaleNumberSymbol,
getLocalePluralCase,
getLocaleTimeFormat,
getLocaleWeekEndRange,
getNumberOfCurrencyDigits,
isPlatformBrowser,
isPlatformServer,
normalizeQueryParams,
provideCloudflareLoader,
provideCloudinaryLoader,
provideImageKitLoader,
provideImgixLoader,
provideNetlifyLoader,
registerLocaleData,
setRootDomAdapter
} from "./chunk-NNL7YDF7.js";
import {
XhrFactory,
parseCookieValue
} from "./chunk-ZJ25XCV3.js";
import {
IMAGE_CONFIG
} from "./chunk-A3W7CVOL.js";
import {
DOCUMENT
} from "./chunk-M4YA2FTX.js";
import "./chunk-RSS3ODKE.js";
import "./chunk-TKSB4YUA.js";
export {
APP_BASE_HREF,
AsyncPipe,
BrowserPlatformLocation,
CommonModule,
CurrencyPipe,
DATE_PIPE_DEFAULT_OPTIONS,
DATE_PIPE_DEFAULT_TIMEZONE,
DOCUMENT,
DatePipe,
DecimalPipe,
FormStyle,
FormatWidth,
HashLocationStrategy,
I18nPluralPipe,
I18nSelectPipe,
IMAGE_CONFIG,
IMAGE_LOADER,
JsonPipe,
KeyValuePipe,
LOCATION_INITIALIZED,
Location,
LocationStrategy,
LowerCasePipe,
NgClass,
NgComponentOutlet,
NgForOf as NgFor,
NgForOf,
NgForOfContext,
NgIf,
NgIfContext,
NgLocaleLocalization,
NgLocalization,
NgOptimizedImage,
NgPlural,
NgPluralCase,
NgStyle,
NgSwitch,
NgSwitchCase,
NgSwitchDefault,
NgTemplateOutlet,
NumberFormatStyle,
NumberSymbol,
PRECONNECT_CHECK_BLOCKLIST,
PathLocationStrategy,
PercentPipe,
PlatformLocation,
Plural,
SlicePipe,
TitleCasePipe,
TranslationWidth,
UpperCasePipe,
VERSION,
ViewportScroller,
WeekDay,
XhrFactory,
formatCurrency,
formatDate,
formatNumber,
formatPercent,
getCurrencySymbol,
getLocaleCurrencyCode,
getLocaleCurrencyName,
getLocaleCurrencySymbol,
getLocaleDateFormat,
getLocaleDateTimeFormat,
getLocaleDayNames,
getLocaleDayPeriods,
getLocaleDirection,
getLocaleEraNames,
getLocaleExtraDayPeriodRules,
getLocaleExtraDayPeriods,
getLocaleFirstDayOfWeek,
getLocaleId,
getLocaleMonthNames,
getLocaleNumberFormat,
getLocaleNumberSymbol,
getLocalePluralCase,
getLocaleTimeFormat,
getLocaleWeekEndRange,
getNumberOfCurrencyDigits,
isPlatformBrowser,
isPlatformServer,
provideCloudflareLoader,
provideCloudinaryLoader,
provideImageKitLoader,
provideImgixLoader,
provideNetlifyLoader,
registerLocaleData,
DomAdapter as ɵDomAdapter,
NullViewportScroller as ɵNullViewportScroller,
PLATFORM_BROWSER_ID as ɵPLATFORM_BROWSER_ID,
PLATFORM_SERVER_ID as ɵPLATFORM_SERVER_ID,
PlatformNavigation as ɵPlatformNavigation,
getDOM as ɵgetDOM,
normalizeQueryParams as ɵnormalizeQueryParams,
parseCookieValue as ɵparseCookieValue,
setRootDomAdapter as ɵsetRootDomAdapter
};

View File

@ -0,0 +1,7 @@
{
"version": 3,
"sources": [],
"sourcesContent": [],
"mappings": "",
"names": []
}

View File

@ -0,0 +1,88 @@
import {
FetchBackend,
HTTP_INTERCEPTORS,
HTTP_ROOT_INTERCEPTOR_FNS,
HTTP_TRANSFER_CACHE_ORIGIN_MAP,
HttpBackend,
HttpClient,
HttpClientJsonpModule,
HttpClientModule,
HttpClientXsrfModule,
HttpContext,
HttpContextToken,
HttpErrorResponse,
HttpEventType,
HttpFeatureKind,
HttpHandler,
HttpHeaderResponse,
HttpHeaders,
HttpInterceptorHandler,
HttpParams,
HttpRequest,
HttpResponse,
HttpResponseBase,
HttpStatusCode,
HttpUrlEncodingCodec,
HttpXhrBackend,
HttpXsrfTokenExtractor,
JsonpClientBackend,
JsonpInterceptor,
REQUESTS_CONTRIBUTE_TO_STABILITY,
httpResource,
provideHttpClient,
withFetch,
withHttpTransferCache,
withInterceptors,
withInterceptorsFromDi,
withJsonpSupport,
withNoXsrfProtection,
withRequestsMadeViaParent,
withXsrfConfiguration
} from "./chunk-QEGKXTBA.js";
import "./chunk-ZJ25XCV3.js";
import "./chunk-A3W7CVOL.js";
import "./chunk-M4YA2FTX.js";
import "./chunk-RSS3ODKE.js";
import "./chunk-TKSB4YUA.js";
export {
FetchBackend,
HTTP_INTERCEPTORS,
HTTP_TRANSFER_CACHE_ORIGIN_MAP,
HttpBackend,
HttpClient,
HttpClientJsonpModule,
HttpClientModule,
HttpClientXsrfModule,
HttpContext,
HttpContextToken,
HttpErrorResponse,
HttpEventType,
HttpFeatureKind,
HttpHandler,
HttpHeaderResponse,
HttpHeaders,
HttpParams,
HttpRequest,
HttpResponse,
HttpResponseBase,
HttpStatusCode,
HttpUrlEncodingCodec,
HttpXhrBackend,
HttpXsrfTokenExtractor,
JsonpClientBackend,
JsonpInterceptor,
httpResource,
provideHttpClient,
withFetch,
withInterceptors,
withInterceptorsFromDi,
withJsonpSupport,
withNoXsrfProtection,
withRequestsMadeViaParent,
withXsrfConfiguration,
HTTP_ROOT_INTERCEPTOR_FNS as ɵHTTP_ROOT_INTERCEPTOR_FNS,
HttpInterceptorHandler as ɵHttpInterceptingHandler,
HttpInterceptorHandler as ɵHttpInterceptorHandler,
REQUESTS_CONTRIBUTE_TO_STABILITY as ɵREQUESTS_CONTRIBUTE_TO_STABILITY,
withHttpTransferCache as ɵwithHttpTransferCache
};

View File

@ -0,0 +1,7 @@
{
"version": 3,
"sources": [],
"sourcesContent": [],
"mappings": "",
"names": []
}

View File

@ -0,0 +1,28 @@
import "./chunk-TKSB4YUA.js";
// node_modules/@angular/common/locales/fr.js
var u = void 0;
function plural(val) {
const n = val, i = Math.floor(Math.abs(val)), v = val.toString().replace(/^[^.]*\.?/, "").length, e = parseInt(val.toString().replace(/^[^e]*(e([-+]?\d+))?/, "$2")) || 0;
if (i === 0 || i === 1)
return 1;
if (e === 0 && (!(i === 0) && (i % 1e6 === 0 && v === 0)) || !(e >= 0 && e <= 5))
return 4;
return 5;
}
var fr_default = ["fr", [["AM", "PM"]], u, [["D", "L", "M", "M", "J", "V", "S"], ["dim.", "lun.", "mar.", "mer.", "jeu.", "ven.", "sam."], ["dimanche", "lundi", "mardi", "mercredi", "jeudi", "vendredi", "samedi"], ["di", "lu", "ma", "me", "je", "ve", "sa"]], u, [["J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"], ["janv.", "févr.", "mars", "avr.", "mai", "juin", "juil.", "août", "sept.", "oct.", "nov.", "déc."], ["janvier", "février", "mars", "avril", "mai", "juin", "juillet", "août", "septembre", "octobre", "novembre", "décembre"]], u, [["av. J.-C.", "ap. J.-C."], u, ["avant Jésus-Christ", "après Jésus-Christ"]], 1, [6, 0], ["dd/MM/y", "d MMM y", "d MMMM y", "EEEE d MMMM y"], ["HH:mm", "HH:mm:ss", "HH:mm:ss z", "HH:mm:ss zzzz"], ["{1} {0}", "{1}, {0}", "{1} 'à' {0}", u], [",", "", ";", "%", "+", "-", "E", "×", "‰", "∞", "NaN", ":"], ["#,##0.###", "#,##0 %", "#,##0.00 ¤", "#E0"], "EUR", "€", "euro", { "ARS": ["$AR", "$"], "AUD": ["$AU", "$"], "BEF": ["FB"], "BMD": ["$BM", "$"], "BND": ["$BN", "$"], "BYN": [u, "р."], "BZD": ["$BZ", "$"], "CAD": ["$CA", "$"], "CLP": ["$CL", "$"], "CNY": [u, "¥"], "COP": ["$CO", "$"], "CYP": ["£CY"], "EGP": [u, "£E"], "FJD": ["$FJ", "$"], "FKP": ["£FK", "£"], "FRF": ["F"], "GBP": ["£GB", "£"], "GIP": ["£GI", "£"], "HKD": [u, "$"], "IEP": ["£IE"], "ILP": ["£IL"], "ITL": ["₤IT"], "JPY": [u, "¥"], "KMF": [u, "FC"], "LBP": ["£LB", "£L"], "MTP": ["£MT"], "MXN": ["$MX", "$"], "NAD": ["$NA", "$"], "NIO": [u, "$C"], "NZD": ["$NZ", "$"], "PHP": [u, "₱"], "RHD": ["$RH"], "RON": [u, "L"], "RWF": [u, "FR"], "SBD": ["$SB", "$"], "SGD": ["$SG", "$"], "SRD": ["$SR", "$"], "TOP": [u, "$T"], "TTD": ["$TT", "$"], "TWD": [u, "NT$"], "USD": ["$US", "$"], "UYU": ["$UY", "$"], "WST": ["$WS"], "XCD": [u, "$"], "XPF": ["FCFP"], "ZMW": [u, "Kw"] }, "ltr", plural];
export {
fr_default as default
};
/*! Bundled license information:
@angular/common/locales/fr.js:
(**
* @license
* Copyright Google LLC All Rights Reserved.
*
* Use of this source code is governed by an MIT-style license that can be
* found in the LICENSE file at https://angular.dev/license
*)
*/
//# sourceMappingURL=@angular_common_locales_fr.js.map

View File

@ -0,0 +1,7 @@
{
"version": 3,
"sources": ["../../../../../../node_modules/@angular/common/locales/fr.js"],
"sourcesContent": ["/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n// THIS CODE IS GENERATED - DO NOT MODIFY.\nconst u = undefined;\nfunction plural(val) {\n const n = val, i = Math.floor(Math.abs(val)), v = val.toString().replace(/^[^.]*\\.?/, '').length, e = parseInt(val.toString().replace(/^[^e]*(e([-+]?\\d+))?/, '$2')) || 0;\n if (i === 0 || i === 1)\n return 1;\n if (e === 0 && (!(i === 0) && (i % 1000000 === 0 && v === 0)) || !(e >= 0 && e <= 5))\n return 4;\n return 5;\n}\nexport default [\"fr\", [[\"AM\", \"PM\"]], u, [[\"D\", \"L\", \"M\", \"M\", \"J\", \"V\", \"S\"], [\"dim.\", \"lun.\", \"mar.\", \"mer.\", \"jeu.\", \"ven.\", \"sam.\"], [\"dimanche\", \"lundi\", \"mardi\", \"mercredi\", \"jeudi\", \"vendredi\", \"samedi\"], [\"di\", \"lu\", \"ma\", \"me\", \"je\", \"ve\", \"sa\"]], u, [[\"J\", \"F\", \"M\", \"A\", \"M\", \"J\", \"J\", \"A\", \"S\", \"O\", \"N\", \"D\"], [\"janv.\", \"févr.\", \"mars\", \"avr.\", \"mai\", \"juin\", \"juil.\", \"août\", \"sept.\", \"oct.\", \"nov.\", \"déc.\"], [\"janvier\", \"février\", \"mars\", \"avril\", \"mai\", \"juin\", \"juillet\", \"août\", \"septembre\", \"octobre\", \"novembre\", \"décembre\"]], u, [[\"av. J.-C.\", \"ap. J.-C.\"], u, [\"avant Jésus-Christ\", \"après Jésus-Christ\"]], 1, [6, 0], [\"dd/MM/y\", \"d MMM y\", \"d MMMM y\", \"EEEE d MMMM y\"], [\"HH:mm\", \"HH:mm:ss\", \"HH:mm:ss z\", \"HH:mm:ss zzzz\"], [\"{1} {0}\", \"{1}, {0}\", \"{1} 'à' {0}\", u], [\",\", \"\", \";\", \"%\", \"+\", \"-\", \"E\", \"×\", \"‰\", \"∞\", \"NaN\", \":\"], [\"#,##0.###\", \"#,##0 %\", \"#,##0.00 ¤\", \"#E0\"], \"EUR\", \"€\", \"euro\", { \"ARS\": [\"$AR\", \"$\"], \"AUD\": [\"$AU\", \"$\"], \"BEF\": [\"FB\"], \"BMD\": [\"$BM\", \"$\"], \"BND\": [\"$BN\", \"$\"], \"BYN\": [u, \"р.\"], \"BZD\": [\"$BZ\", \"$\"], \"CAD\": [\"$CA\", \"$\"], \"CLP\": [\"$CL\", \"$\"], \"CNY\": [u, \"¥\"], \"COP\": [\"$CO\", \"$\"], \"CYP\": [\"£CY\"], \"EGP\": [u, \"£E\"], \"FJD\": [\"$FJ\", \"$\"], \"FKP\": [\"£FK\", \"£\"], \"FRF\": [\"F\"], \"GBP\": [\"£GB\", \"£\"], \"GIP\": [\"£GI\", \"£\"], \"HKD\": [u, \"$\"], \"IEP\": [\"£IE\"], \"ILP\": [\"£IL\"], \"ITL\": [\"₤IT\"], \"JPY\": [u, \"¥\"], \"KMF\": [u, \"FC\"], \"LBP\": [\"£LB\", \"£L\"], \"MTP\": [\"£MT\"], \"MXN\": [\"$MX\", \"$\"], \"NAD\": [\"$NA\", \"$\"], \"NIO\": [u, \"$C\"], \"NZD\": [\"$NZ\", \"$\"], \"PHP\": [u, \"₱\"], \"RHD\": [\"$RH\"], \"RON\": [u, \"L\"], \"RWF\": [u, \"FR\"], \"SBD\": [\"$SB\", \"$\"], \"SGD\": [\"$SG\", \"$\"], \"SRD\": [\"$SR\", \"$\"], \"TOP\": [u, \"$T\"], \"TTD\": [\"$TT\", \"$\"], \"TWD\": [u, \"NT$\"], \"USD\": [\"$US\", \"$\"], \"UYU\": [\"$UY\", \"$\"], \"WST\": [\"$WS\"], \"XCD\": [u, \"$\"], \"XPF\": [\"FCFP\"], \"ZMW\": [u, \"Kw\"] }, \"ltr\", plural];\n"],
"mappings": ";;;AAQA,IAAM,IAAI;AACV,SAAS,OAAO,KAAK;AACjB,QAAM,IAAI,KAAK,IAAI,KAAK,MAAM,KAAK,IAAI,GAAG,CAAC,GAAG,IAAI,IAAI,SAAS,EAAE,QAAQ,aAAa,EAAE,EAAE,QAAQ,IAAI,SAAS,IAAI,SAAS,EAAE,QAAQ,wBAAwB,IAAI,CAAC,KAAK;AACxK,MAAI,MAAM,KAAK,MAAM;AACjB,WAAO;AACX,MAAI,MAAM,MAAM,EAAE,MAAM,OAAO,IAAI,QAAY,KAAK,MAAM,OAAO,EAAE,KAAK,KAAK,KAAK;AAC9E,WAAO;AACX,SAAO;AACX;AACA,IAAO,aAAQ,CAAC,MAAM,CAAC,CAAC,MAAM,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,GAAG,GAAG,CAAC,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,MAAM,GAAG,CAAC,YAAY,SAAS,SAAS,YAAY,SAAS,YAAY,QAAQ,GAAG,CAAC,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,GAAG,GAAG,CAAC,SAAS,SAAS,QAAQ,QAAQ,OAAO,QAAQ,SAAS,QAAQ,SAAS,QAAQ,QAAQ,MAAM,GAAG,CAAC,WAAW,WAAW,QAAQ,SAAS,OAAO,QAAQ,WAAW,QAAQ,aAAa,WAAW,YAAY,UAAU,CAAC,GAAG,GAAG,CAAC,CAAC,aAAa,WAAW,GAAG,GAAG,CAAC,sBAAsB,oBAAoB,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,WAAW,WAAW,YAAY,eAAe,GAAG,CAAC,SAAS,YAAY,cAAc,eAAe,GAAG,CAAC,WAAW,YAAY,eAAe,CAAC,GAAG,CAAC,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,OAAO,GAAG,GAAG,CAAC,aAAa,WAAW,cAAc,KAAK,GAAG,OAAO,KAAK,QAAQ,EAAE,OAAO,CAAC,OAAO,GAAG,GAAG,OAAO,CAAC,OAAO,GAAG,GAAG,OAAO,CAAC,IAAI,GAAG,OAAO,CAAC,OAAO,GAAG,GAAG,OAAO,CAAC,OAAO,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,GAAG,OAAO,CAAC,OAAO,GAAG,GAAG,OAAO,CAAC,OAAO,GAAG,GAAG,OAAO,CAAC,OAAO,GAAG,GAAG,OAAO,CAAC,GAAG,GAAG,GAAG,OAAO,CAAC,OAAO,GAAG,GAAG,OAAO,CAAC,KAAK,GAAG,OAAO,CAAC,GAAG,IAAI,GAAG,OAAO,CAAC,OAAO,GAAG,GAAG,OAAO,CAAC,OAAO,GAAG,GAAG,OAAO,CAAC,GAAG,GAAG,OAAO,CAAC,OAAO,GAAG,GAAG,OAAO,CAAC,OAAO,GAAG,GAAG,OAAO,CAAC,GAAG,GAAG,GAAG,OAAO,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,GAAG,OAAO,CAAC,GAAG,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,GAAG,OAAO,CAAC,OAAO,IAAI,GAAG,OAAO,CAAC,KAAK,GAAG,OAAO,CAAC,OAAO,GAAG,GAAG,OAAO,CAAC,OAAO,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,GAAG,OAAO,CAAC,OAAO,GAAG,GAAG,OAAO,CAAC,GAAG,GAAG,GAAG,OAAO,CAAC,KAAK,GAAG,OAAO,CAAC,GAAG,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,GAAG,OAAO,CAAC,OAAO,GAAG,GAAG,OAAO,CAAC,OAAO,GAAG,GAAG,OAAO,CAAC,OAAO,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,GAAG,OAAO,CAAC,OAAO,GAAG,GAAG,OAAO,CAAC,GAAG,KAAK,GAAG,OAAO,CAAC,OAAO,GAAG,GAAG,OAAO,CAAC,OAAO,GAAG,GAAG,OAAO,CAAC,KAAK,GAAG,OAAO,CAAC,GAAG,GAAG,GAAG,OAAO,CAAC,MAAM,GAAG,OAAO,CAAC,GAAG,IAAI,EAAE,GAAG,OAAO,MAAM;",
"names": []
}

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,7 @@
{
"version": 3,
"sources": [],
"sourcesContent": [],
"mappings": "",
"names": []
}

View File

@ -0,0 +1,251 @@
import {
DestroyRef,
Injector,
PendingTasks,
RuntimeError,
assertInInjectionContext,
assertNotInReactiveContext,
computed,
effect,
encapsulateResourceError,
getOutputDestroyRef,
inject,
resource,
signal,
untracked
} from "./chunk-M4YA2FTX.js";
import {
Observable,
ReplaySubject,
takeUntil
} from "./chunk-RSS3ODKE.js";
import {
__spreadProps,
__spreadValues
} from "./chunk-TKSB4YUA.js";
// node_modules/@angular/core/fesm2022/rxjs-interop.mjs
function takeUntilDestroyed(destroyRef) {
if (!destroyRef) {
ngDevMode && assertInInjectionContext(takeUntilDestroyed);
destroyRef = inject(DestroyRef);
}
const destroyed$ = new Observable((subscriber) => {
if (destroyRef.destroyed) {
subscriber.next();
return;
}
const unregisterFn = destroyRef.onDestroy(subscriber.next.bind(subscriber));
return unregisterFn;
});
return (source) => {
return source.pipe(takeUntil(destroyed$));
};
}
var OutputFromObservableRef = class {
source;
destroyed = false;
destroyRef = inject(DestroyRef);
constructor(source) {
this.source = source;
this.destroyRef.onDestroy(() => {
this.destroyed = true;
});
}
subscribe(callbackFn) {
if (this.destroyed) {
throw new RuntimeError(953, ngDevMode && "Unexpected subscription to destroyed `OutputRef`. The owning directive/component is destroyed.");
}
const subscription = this.source.pipe(takeUntilDestroyed(this.destroyRef)).subscribe({
next: (value) => callbackFn(value)
});
return {
unsubscribe: () => subscription.unsubscribe()
};
}
};
function outputFromObservable(observable, opts) {
ngDevMode && assertInInjectionContext(outputFromObservable);
return new OutputFromObservableRef(observable);
}
function outputToObservable(ref) {
const destroyRef = getOutputDestroyRef(ref);
return new Observable((observer) => {
const unregisterOnDestroy = destroyRef?.onDestroy(() => observer.complete());
const subscription = ref.subscribe((v) => observer.next(v));
return () => {
subscription.unsubscribe();
unregisterOnDestroy?.();
};
});
}
function toObservable(source, options) {
if (ngDevMode && !options?.injector) {
assertInInjectionContext(toObservable);
}
const injector = options?.injector ?? inject(Injector);
const subject = new ReplaySubject(1);
const watcher = effect(() => {
let value;
try {
value = source();
} catch (err) {
untracked(() => subject.error(err));
return;
}
untracked(() => subject.next(value));
}, { injector, manualCleanup: true });
injector.get(DestroyRef).onDestroy(() => {
watcher.destroy();
subject.complete();
});
return subject.asObservable();
}
function toSignal(source, options) {
typeof ngDevMode !== "undefined" && ngDevMode && assertNotInReactiveContext(toSignal, "Invoking `toSignal` causes new subscriptions every time. Consider moving `toSignal` outside of the reactive context and read the signal value where needed.");
const requiresCleanup = !options?.manualCleanup;
if (ngDevMode && requiresCleanup && !options?.injector) {
assertInInjectionContext(toSignal);
}
const cleanupRef = requiresCleanup ? options?.injector?.get(DestroyRef) ?? inject(DestroyRef) : null;
const equal = makeToSignalEqual(options?.equal);
let state;
if (options?.requireSync) {
state = signal({
kind: 0
/* StateKind.NoValue */
}, { equal });
} else {
state = signal({ kind: 1, value: options?.initialValue }, { equal });
}
let destroyUnregisterFn;
const sub = source.subscribe({
next: (value) => state.set({ kind: 1, value }),
error: (error) => {
state.set({ kind: 2, error });
destroyUnregisterFn?.();
},
complete: () => {
destroyUnregisterFn?.();
}
// Completion of the Observable is meaningless to the signal. Signals don't have a concept of
// "complete".
});
if (options?.requireSync && state().kind === 0) {
throw new RuntimeError(601, (typeof ngDevMode === "undefined" || ngDevMode) && "`toSignal()` called with `requireSync` but `Observable` did not emit synchronously.");
}
destroyUnregisterFn = cleanupRef?.onDestroy(sub.unsubscribe.bind(sub));
return computed(() => {
const current = state();
switch (current.kind) {
case 1:
return current.value;
case 2:
throw current.error;
case 0:
throw new RuntimeError(601, (typeof ngDevMode === "undefined" || ngDevMode) && "`toSignal()` called with `requireSync` but `Observable` did not emit synchronously.");
}
}, { equal: options?.equal });
}
function makeToSignalEqual(userEquality = Object.is) {
return (a, b) => a.kind === 1 && b.kind === 1 && userEquality(a.value, b.value);
}
function pendingUntilEvent(injector) {
if (injector === void 0) {
ngDevMode && assertInInjectionContext(pendingUntilEvent);
injector = inject(Injector);
}
const taskService = injector.get(PendingTasks);
return (sourceObservable) => {
return new Observable((originalSubscriber) => {
const removeTask = taskService.add();
let cleanedUp = false;
function cleanupTask() {
if (cleanedUp) {
return;
}
removeTask();
cleanedUp = true;
}
const innerSubscription = sourceObservable.subscribe({
next: (v) => {
originalSubscriber.next(v);
cleanupTask();
},
complete: () => {
originalSubscriber.complete();
cleanupTask();
},
error: (e) => {
originalSubscriber.error(e);
cleanupTask();
}
});
innerSubscription.add(() => {
originalSubscriber.unsubscribe();
cleanupTask();
});
return innerSubscription;
});
};
}
function rxResource(opts) {
if (ngDevMode && !opts?.injector) {
assertInInjectionContext(rxResource);
}
return resource(__spreadProps(__spreadValues({}, opts), {
loader: void 0,
stream: (params) => {
let sub;
const onAbort = () => sub?.unsubscribe();
params.abortSignal.addEventListener("abort", onAbort);
const stream = signal({ value: void 0 });
let resolve;
const promise = new Promise((r) => resolve = r);
function send(value) {
stream.set(value);
resolve?.(stream);
resolve = void 0;
}
const streamFn = opts.stream ?? opts.loader;
if (streamFn === void 0) {
throw new RuntimeError(990, ngDevMode && `Must provide \`stream\` option.`);
}
sub = streamFn(params).subscribe({
next: (value) => send({ value }),
error: (error) => {
send({ error: encapsulateResourceError(error) });
params.abortSignal.removeEventListener("abort", onAbort);
},
complete: () => {
if (resolve) {
send({
error: new RuntimeError(991, ngDevMode && "Resource completed before producing a value")
});
}
params.abortSignal.removeEventListener("abort", onAbort);
}
});
return promise;
}
}));
}
export {
outputFromObservable,
outputToObservable,
pendingUntilEvent,
rxResource,
takeUntilDestroyed,
toObservable,
toSignal
};
/*! Bundled license information:
@angular/core/fesm2022/rxjs-interop.mjs:
(**
* @license Angular v20.3.1
* (c) 2010-2025 Google LLC. https://angular.io/
* License: MIT
*)
*/
//# sourceMappingURL=@angular_core_rxjs-interop.js.map

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,319 @@
{
"hash": "eb50cfd2",
"configHash": "bcc72fc6",
"lockfileHash": "88ca7dd7",
"browserHash": "b0cc96c8",
"optimized": {
"@angular/common": {
"src": "../../../../../../node_modules/@angular/common/fesm2022/common.mjs",
"file": "@angular_common.js",
"fileHash": "7f81e9b4",
"needsInterop": false
},
"@angular/common/http": {
"src": "../../../../../../node_modules/@angular/common/fesm2022/http.mjs",
"file": "@angular_common_http.js",
"fileHash": "1240889a",
"needsInterop": false
},
"@angular/common/locales/fr": {
"src": "../../../../../../node_modules/@angular/common/locales/fr.js",
"file": "@angular_common_locales_fr.js",
"fileHash": "e3440699",
"needsInterop": false
},
"@angular/core": {
"src": "../../../../../../node_modules/@angular/core/fesm2022/core.mjs",
"file": "@angular_core.js",
"fileHash": "b2cabf77",
"needsInterop": false
},
"@angular/core/rxjs-interop": {
"src": "../../../../../../node_modules/@angular/core/fesm2022/rxjs-interop.mjs",
"file": "@angular_core_rxjs-interop.js",
"fileHash": "aebfcee4",
"needsInterop": false
},
"@angular/forms": {
"src": "../../../../../../node_modules/@angular/forms/fesm2022/forms.mjs",
"file": "@angular_forms.js",
"fileHash": "a28c5b20",
"needsInterop": false
},
"@angular/platform-browser": {
"src": "../../../../../../node_modules/@angular/platform-browser/fesm2022/platform-browser.mjs",
"file": "@angular_platform-browser.js",
"fileHash": "4677d9a7",
"needsInterop": false
},
"angular-calendar": {
"src": "../../../../../../node_modules/angular-calendar/fesm2022/angular-calendar.mjs",
"file": "angular-calendar.js",
"fileHash": "fa181aaa",
"needsInterop": false
},
"angular-calendar/date-adapters/date-fns": {
"src": "../../../../../../node_modules/angular-calendar/date-adapters/esm/date-fns/index.js",
"file": "angular-calendar_date-adapters_date-fns.js",
"fileHash": "e65f4b69",
"needsInterop": false
},
"highlight.js": {
"src": "../../../../../../node_modules/highlight.js/es/index.js",
"file": "highlight__js.js",
"fileHash": "d5d445af",
"needsInterop": false
},
"mermaid": {
"src": "../../../../../../node_modules/mermaid/dist/mermaid.core.mjs",
"file": "mermaid.js",
"fileHash": "90c591b1",
"needsInterop": false
},
"rxjs": {
"src": "../../../../../../node_modules/rxjs/dist/esm5/index.js",
"file": "rxjs.js",
"fileHash": "8c38d9b7",
"needsInterop": false
}
},
"chunks": {
"kanban-definition-3W4ZIXB7-GUMHX2OD": {
"file": "kanban-definition-3W4ZIXB7-GUMHX2OD.js"
},
"sankeyDiagram-TZEHDZUN-GH26R5YW": {
"file": "sankeyDiagram-TZEHDZUN-GH26R5YW.js"
},
"diagram-S2PKOQOG-CRJZWG5Y": {
"file": "diagram-S2PKOQOG-CRJZWG5Y.js"
},
"diagram-QEK2KX5R-5GIFGTRQ": {
"file": "diagram-QEK2KX5R-5GIFGTRQ.js"
},
"blockDiagram-VD42YOAC-IMP7RBMX": {
"file": "blockDiagram-VD42YOAC-IMP7RBMX.js"
},
"architectureDiagram-VXUJARFQ-3B5SPFPL": {
"file": "architectureDiagram-VXUJARFQ-3B5SPFPL.js"
},
"diagram-PSM6KHXK-7CHUIA47": {
"file": "diagram-PSM6KHXK-7CHUIA47.js"
},
"sequenceDiagram-WL72ISMW-ZGS5TERI": {
"file": "sequenceDiagram-WL72ISMW-ZGS5TERI.js"
},
"classDiagram-2ON5EDUG-33U76KPG": {
"file": "classDiagram-2ON5EDUG-33U76KPG.js"
},
"classDiagram-v2-WZHVMYZB-Z27PMM23": {
"file": "classDiagram-v2-WZHVMYZB-Z27PMM23.js"
},
"chunk-X65BYZXM": {
"file": "chunk-X65BYZXM.js"
},
"stateDiagram-FKZM4ZOC-KXMQ5JNR": {
"file": "stateDiagram-FKZM4ZOC-KXMQ5JNR.js"
},
"stateDiagram-v2-4FDKWEC3-JB4TSVIW": {
"file": "stateDiagram-v2-4FDKWEC3-JB4TSVIW.js"
},
"chunk-UHQERBHF": {
"file": "chunk-UHQERBHF.js"
},
"journeyDiagram-XKPGCS4Q-TGUXGKSG": {
"file": "journeyDiagram-XKPGCS4Q-TGUXGKSG.js"
},
"timeline-definition-IT6M3QCI-WHNO6URF": {
"file": "timeline-definition-IT6M3QCI-WHNO6URF.js"
},
"mindmap-definition-VGOIOE7T-YDOCEY2Q": {
"file": "mindmap-definition-VGOIOE7T-YDOCEY2Q.js"
},
"treemap-75Q7IDZK-IP775KCD": {
"file": "treemap-75Q7IDZK-IP775KCD.js"
},
"gitGraphDiagram-NY62KEGX-67QA5ASO": {
"file": "gitGraphDiagram-NY62KEGX-67QA5ASO.js"
},
"chunk-3WIYXQMB": {
"file": "chunk-3WIYXQMB.js"
},
"ganttDiagram-LVOFAZNH-HYMY4RKD": {
"file": "ganttDiagram-LVOFAZNH-HYMY4RKD.js"
},
"infoDiagram-F6ZHWCRC-WO5AQYKA": {
"file": "infoDiagram-F6ZHWCRC-WO5AQYKA.js"
},
"pieDiagram-ADFJNKIX-GZV4UXNK": {
"file": "pieDiagram-ADFJNKIX-GZV4UXNK.js"
},
"chunk-PNW5KFH4": {
"file": "chunk-PNW5KFH4.js"
},
"chunk-VGVCR5QM": {
"file": "chunk-VGVCR5QM.js"
},
"chunk-5SXTVVUG": {
"file": "chunk-5SXTVVUG.js"
},
"quadrantDiagram-AYHSOK5B-G2SG5IZD": {
"file": "quadrantDiagram-AYHSOK5B-G2SG5IZD.js"
},
"xychartDiagram-PRI3JC2R-3HCTMHS4": {
"file": "xychartDiagram-PRI3JC2R-3HCTMHS4.js"
},
"requirementDiagram-UZGBJVZJ-75TZV2RQ": {
"file": "requirementDiagram-UZGBJVZJ-75TZV2RQ.js"
},
"flowDiagram-NV44I4VS-WHL2L3RD": {
"file": "flowDiagram-NV44I4VS-WHL2L3RD.js"
},
"chunk-I4QIIVJ7": {
"file": "chunk-I4QIIVJ7.js"
},
"erDiagram-Q2GNP2WA-WNA6LIBQ": {
"file": "erDiagram-Q2GNP2WA-WNA6LIBQ.js"
},
"chunk-PLWNSIKB": {
"file": "chunk-PLWNSIKB.js"
},
"chunk-LHH5RO5K": {
"file": "chunk-LHH5RO5K.js"
},
"info-63CPKGFF-W56KXM6Z": {
"file": "info-63CPKGFF-W56KXM6Z.js"
},
"chunk-BUI4I457": {
"file": "chunk-BUI4I457.js"
},
"packet-HUATNLJX-LCJ3BRNR": {
"file": "packet-HUATNLJX-LCJ3BRNR.js"
},
"chunk-CHJ5BV6S": {
"file": "chunk-CHJ5BV6S.js"
},
"pie-WTHONI2E-7JKUTNCJ": {
"file": "pie-WTHONI2E-7JKUTNCJ.js"
},
"chunk-XP22GJHQ": {
"file": "chunk-XP22GJHQ.js"
},
"architecture-O4VJ6CD3-IBEWAQYB": {
"file": "architecture-O4VJ6CD3-IBEWAQYB.js"
},
"chunk-NYZY7JGI": {
"file": "chunk-NYZY7JGI.js"
},
"gitGraph-ZV4HHKMB-6SC2CHQE": {
"file": "gitGraph-ZV4HHKMB-6SC2CHQE.js"
},
"chunk-FNEVJCCX": {
"file": "chunk-FNEVJCCX.js"
},
"radar-NJJJXTRR-IXC2PP4O": {
"file": "radar-NJJJXTRR-IXC2PP4O.js"
},
"chunk-R33GOAXK": {
"file": "chunk-R33GOAXK.js"
},
"chunk-WHHJWK6B": {
"file": "chunk-WHHJWK6B.js"
},
"chunk-BSULYXPT": {
"file": "chunk-BSULYXPT.js"
},
"chunk-B5NQPFQG": {
"file": "chunk-B5NQPFQG.js"
},
"chunk-JSZQKJT3": {
"file": "chunk-JSZQKJT3.js"
},
"chunk-WC2C7HAT": {
"file": "chunk-WC2C7HAT.js"
},
"katex-JJTYNRHT": {
"file": "katex-JJTYNRHT.js"
},
"dagre-6UL2VRFP-RIOSZDA4": {
"file": "dagre-6UL2VRFP-RIOSZDA4.js"
},
"chunk-YUMEK5VY": {
"file": "chunk-YUMEK5VY.js"
},
"chunk-MEGNL3BT": {
"file": "chunk-MEGNL3BT.js"
},
"chunk-6SIVX7OU": {
"file": "chunk-6SIVX7OU.js"
},
"chunk-HICR2YSH": {
"file": "chunk-HICR2YSH.js"
},
"chunk-JJ4TL56I": {
"file": "chunk-JJ4TL56I.js"
},
"chunk-2HSIUWWJ": {
"file": "chunk-2HSIUWWJ.js"
},
"chunk-EUUYHBKV": {
"file": "chunk-EUUYHBKV.js"
},
"chunk-FTTOYZOY": {
"file": "chunk-FTTOYZOY.js"
},
"chunk-NMWDZEZO": {
"file": "chunk-NMWDZEZO.js"
},
"chunk-NGEE2U2J": {
"file": "chunk-NGEE2U2J.js"
},
"cose-bilkent-S5V4N54A-5WYXQMNH": {
"file": "cose-bilkent-S5V4N54A-5WYXQMNH.js"
},
"chunk-4434HPF7": {
"file": "chunk-4434HPF7.js"
},
"c4Diagram-YG6GDRKO-DTLV3BK5": {
"file": "c4Diagram-YG6GDRKO-DTLV3BK5.js"
},
"chunk-BETRN5NS": {
"file": "chunk-BETRN5NS.js"
},
"chunk-QVVRGVV3": {
"file": "chunk-QVVRGVV3.js"
},
"chunk-CMK64ICG": {
"file": "chunk-CMK64ICG.js"
},
"chunk-BFCVI5XI": {
"file": "chunk-BFCVI5XI.js"
},
"chunk-M5X7JH4I": {
"file": "chunk-M5X7JH4I.js"
},
"chunk-I65GBZ6F": {
"file": "chunk-I65GBZ6F.js"
},
"chunk-QEGKXTBA": {
"file": "chunk-QEGKXTBA.js"
},
"chunk-NNL7YDF7": {
"file": "chunk-NNL7YDF7.js"
},
"chunk-ZJ25XCV3": {
"file": "chunk-ZJ25XCV3.js"
},
"chunk-A3W7CVOL": {
"file": "chunk-A3W7CVOL.js"
},
"chunk-M4YA2FTX": {
"file": "chunk-M4YA2FTX.js"
},
"chunk-RSS3ODKE": {
"file": "chunk-RSS3ODKE.js"
},
"chunk-TKSB4YUA": {
"file": "chunk-TKSB4YUA.js"
}
}
}

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,13 @@
import {
ArchitectureModule,
createArchitectureServices
} from "./chunk-NYZY7JGI.js";
import "./chunk-WHHJWK6B.js";
import "./chunk-6SIVX7OU.js";
import "./chunk-NGEE2U2J.js";
import "./chunk-M5X7JH4I.js";
import "./chunk-TKSB4YUA.js";
export {
ArchitectureModule,
createArchitectureServices
};

View File

@ -0,0 +1,7 @@
{
"version": 3,
"sources": [],
"sourcesContent": [],
"mappings": "",
"names": []
}

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,160 @@
import {
__name
} from "./chunk-I65GBZ6F.js";
// node_modules/mermaid/dist/chunks/mermaid.core/chunk-HN2XXSSU.mjs
var markerOffsets = {
aggregation: 17.25,
extension: 17.25,
composition: 17.25,
dependency: 6,
lollipop: 13.5,
arrow_point: 4
//arrow_cross: 24,
};
var markerOffsets2 = {
arrow_point: 9,
arrow_cross: 12.5,
arrow_circle: 12.5
};
function calculateDeltaAndAngle(point1, point2) {
if (point1 === void 0 || point2 === void 0) {
return { angle: 0, deltaX: 0, deltaY: 0 };
}
point1 = pointTransformer(point1);
point2 = pointTransformer(point2);
const [x1, y1] = [point1.x, point1.y];
const [x2, y2] = [point2.x, point2.y];
const deltaX = x2 - x1;
const deltaY = y2 - y1;
return { angle: Math.atan(deltaY / deltaX), deltaX, deltaY };
}
__name(calculateDeltaAndAngle, "calculateDeltaAndAngle");
var pointTransformer = __name((data) => {
if (Array.isArray(data)) {
return { x: data[0], y: data[1] };
}
return data;
}, "pointTransformer");
var getLineFunctionsWithOffset = __name((edge) => {
return {
x: __name(function(d, i, data) {
let offset = 0;
const DIRECTION = pointTransformer(data[0]).x < pointTransformer(data[data.length - 1]).x ? "left" : "right";
if (i === 0 && Object.hasOwn(markerOffsets, edge.arrowTypeStart)) {
const { angle, deltaX } = calculateDeltaAndAngle(data[0], data[1]);
offset = markerOffsets[edge.arrowTypeStart] * Math.cos(angle) * (deltaX >= 0 ? 1 : -1);
} else if (i === data.length - 1 && Object.hasOwn(markerOffsets, edge.arrowTypeEnd)) {
const { angle, deltaX } = calculateDeltaAndAngle(
data[data.length - 1],
data[data.length - 2]
);
offset = markerOffsets[edge.arrowTypeEnd] * Math.cos(angle) * (deltaX >= 0 ? 1 : -1);
}
const differenceToEnd = Math.abs(
pointTransformer(d).x - pointTransformer(data[data.length - 1]).x
);
const differenceInYEnd = Math.abs(
pointTransformer(d).y - pointTransformer(data[data.length - 1]).y
);
const differenceToStart = Math.abs(pointTransformer(d).x - pointTransformer(data[0]).x);
const differenceInYStart = Math.abs(pointTransformer(d).y - pointTransformer(data[0]).y);
const startMarkerHeight = markerOffsets[edge.arrowTypeStart];
const endMarkerHeight = markerOffsets[edge.arrowTypeEnd];
const extraRoom = 1;
if (differenceToEnd < endMarkerHeight && differenceToEnd > 0 && differenceInYEnd < endMarkerHeight) {
let adjustment = endMarkerHeight + extraRoom - differenceToEnd;
adjustment *= DIRECTION === "right" ? -1 : 1;
offset -= adjustment;
}
if (differenceToStart < startMarkerHeight && differenceToStart > 0 && differenceInYStart < startMarkerHeight) {
let adjustment = startMarkerHeight + extraRoom - differenceToStart;
adjustment *= DIRECTION === "right" ? -1 : 1;
offset += adjustment;
}
return pointTransformer(d).x + offset;
}, "x"),
y: __name(function(d, i, data) {
let offset = 0;
const DIRECTION = pointTransformer(data[0]).y < pointTransformer(data[data.length - 1]).y ? "down" : "up";
if (i === 0 && Object.hasOwn(markerOffsets, edge.arrowTypeStart)) {
const { angle, deltaY } = calculateDeltaAndAngle(data[0], data[1]);
offset = markerOffsets[edge.arrowTypeStart] * Math.abs(Math.sin(angle)) * (deltaY >= 0 ? 1 : -1);
} else if (i === data.length - 1 && Object.hasOwn(markerOffsets, edge.arrowTypeEnd)) {
const { angle, deltaY } = calculateDeltaAndAngle(
data[data.length - 1],
data[data.length - 2]
);
offset = markerOffsets[edge.arrowTypeEnd] * Math.abs(Math.sin(angle)) * (deltaY >= 0 ? 1 : -1);
}
const differenceToEnd = Math.abs(
pointTransformer(d).y - pointTransformer(data[data.length - 1]).y
);
const differenceInXEnd = Math.abs(
pointTransformer(d).x - pointTransformer(data[data.length - 1]).x
);
const differenceToStart = Math.abs(pointTransformer(d).y - pointTransformer(data[0]).y);
const differenceInXStart = Math.abs(pointTransformer(d).x - pointTransformer(data[0]).x);
const startMarkerHeight = markerOffsets[edge.arrowTypeStart];
const endMarkerHeight = markerOffsets[edge.arrowTypeEnd];
const extraRoom = 1;
if (differenceToEnd < endMarkerHeight && differenceToEnd > 0 && differenceInXEnd < endMarkerHeight) {
let adjustment = endMarkerHeight + extraRoom - differenceToEnd;
adjustment *= DIRECTION === "up" ? -1 : 1;
offset -= adjustment;
}
if (differenceToStart < startMarkerHeight && differenceToStart > 0 && differenceInXStart < startMarkerHeight) {
let adjustment = startMarkerHeight + extraRoom - differenceToStart;
adjustment *= DIRECTION === "up" ? -1 : 1;
offset += adjustment;
}
return pointTransformer(d).y + offset;
}, "y")
};
}, "getLineFunctionsWithOffset");
if (void 0) {
const { it, expect, describe } = void 0;
describe("calculateDeltaAndAngle", () => {
it("should calculate the angle and deltas between two points", () => {
expect(calculateDeltaAndAngle([0, 0], [0, 1])).toStrictEqual({
angle: 1.5707963267948966,
deltaX: 0,
deltaY: 1
});
expect(calculateDeltaAndAngle([1, 0], [0, -1])).toStrictEqual({
angle: 0.7853981633974483,
deltaX: -1,
deltaY: -1
});
expect(calculateDeltaAndAngle({ x: 1, y: 0 }, [0, -1])).toStrictEqual({
angle: 0.7853981633974483,
deltaX: -1,
deltaY: -1
});
expect(calculateDeltaAndAngle({ x: 1, y: 0 }, { x: 1, y: 0 })).toStrictEqual({
angle: NaN,
deltaX: 0,
deltaY: 0
});
});
it("should calculate the angle and deltas if one point in undefined", () => {
expect(calculateDeltaAndAngle(void 0, [0, 1])).toStrictEqual({
angle: 0,
deltaX: 0,
deltaY: 0
});
expect(calculateDeltaAndAngle([0, 1], void 0)).toStrictEqual({
angle: 0,
deltaX: 0,
deltaY: 0
});
});
});
}
export {
markerOffsets,
markerOffsets2,
getLineFunctionsWithOffset
};
//# sourceMappingURL=chunk-2HSIUWWJ.js.map

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,23 @@
import {
__name
} from "./chunk-I65GBZ6F.js";
// node_modules/mermaid/dist/chunks/mermaid.core/chunk-QZHKN3VN.mjs
var _a;
var ImperativeState = (_a = class {
/**
* @param init - Function that creates the default state.
*/
constructor(init) {
this.init = init;
this.records = this.init();
}
reset() {
this.records = this.init();
}
}, __name(_a, "ImperativeState"), _a);
export {
ImperativeState
};
//# sourceMappingURL=chunk-3WIYXQMB.js.map

View File

@ -0,0 +1,7 @@
{
"version": 3,
"sources": ["../../../../../../node_modules/mermaid/dist/chunks/mermaid.core/chunk-QZHKN3VN.mjs"],
"sourcesContent": ["import {\n __name\n} from \"./chunk-AGHRB4JF.mjs\";\n\n// src/utils/imperativeState.ts\nvar ImperativeState = class {\n /**\n * @param init - Function that creates the default state.\n */\n constructor(init) {\n this.init = init;\n this.records = this.init();\n }\n static {\n __name(this, \"ImperativeState\");\n }\n reset() {\n this.records = this.init();\n }\n};\n\nexport {\n ImperativeState\n};\n"],
"mappings": ";;;;;AAAA;AAKA,IAAI,mBAAkB,WAAM;AAAA;AAAA;AAAA;AAAA,EAI1B,YAAY,MAAM;AAChB,SAAK,OAAO;AACZ,SAAK,UAAU,KAAK,KAAK;AAAA,EAC3B;AAAA,EAIA,QAAQ;AACN,SAAK,UAAU,KAAK,KAAK;AAAA,EAC3B;AACF,GALI,OAAO,IAAM,iBAAiB,GATZ;",
"names": []
}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,119 @@
import {
AbstractMermaidTokenBuilder,
AbstractMermaidValueConverter,
EmptyFileSystem,
MermaidGeneratedSharedModule,
TreemapGeneratedModule,
__name,
createDefaultCoreModule,
createDefaultSharedCoreModule,
inject,
lib_exports
} from "./chunk-WHHJWK6B.js";
// node_modules/@mermaid-js/parser/dist/chunks/mermaid-parser.core/chunk-XRWGC2XP.mjs
var _a;
var TreemapTokenBuilder = (_a = class extends AbstractMermaidTokenBuilder {
constructor() {
super(["treemap"]);
}
}, __name(_a, "TreemapTokenBuilder"), _a);
var classDefRegex = /classDef\s+([A-Z_a-z]\w+)(?:\s+([^\n\r;]*))?;?/;
var _a2;
var TreemapValueConverter = (_a2 = class extends AbstractMermaidValueConverter {
runCustomConverter(rule, input, _cstNode) {
if (rule.name === "NUMBER2") {
return parseFloat(input.replace(/,/g, ""));
} else if (rule.name === "SEPARATOR") {
return input.substring(1, input.length - 1);
} else if (rule.name === "STRING2") {
return input.substring(1, input.length - 1);
} else if (rule.name === "INDENTATION") {
return input.length;
} else if (rule.name === "ClassDef") {
if (typeof input !== "string") {
return input;
}
const match = classDefRegex.exec(input);
if (match) {
return {
$type: "ClassDefStatement",
className: match[1],
styleText: match[2] || void 0
};
}
}
return void 0;
}
}, __name(_a2, "TreemapValueConverter"), _a2);
function registerValidationChecks(services) {
const validator = services.validation.TreemapValidator;
const registry = services.validation.ValidationRegistry;
if (registry) {
const checks = {
Treemap: validator.checkSingleRoot.bind(validator)
// Remove unused validation for TreemapRow
};
registry.register(checks, validator);
}
}
__name(registerValidationChecks, "registerValidationChecks");
var _a3;
var TreemapValidator = (_a3 = class {
/**
* Validates that a treemap has only one root node.
* A root node is defined as a node that has no indentation.
*/
checkSingleRoot(doc, accept) {
let rootNodeIndentation;
for (const row of doc.TreemapRows) {
if (!row.item) {
continue;
}
if (rootNodeIndentation === void 0 && // Check if this is a root node (no indentation)
row.indent === void 0) {
rootNodeIndentation = 0;
} else if (row.indent === void 0) {
accept("error", "Multiple root nodes are not allowed in a treemap.", {
node: row,
property: "item"
});
} else if (rootNodeIndentation !== void 0 && rootNodeIndentation >= parseInt(row.indent, 10)) {
accept("error", "Multiple root nodes are not allowed in a treemap.", {
node: row,
property: "item"
});
}
}
}
}, __name(_a3, "TreemapValidator"), _a3);
var TreemapModule = {
parser: {
TokenBuilder: __name(() => new TreemapTokenBuilder(), "TokenBuilder"),
ValueConverter: __name(() => new TreemapValueConverter(), "ValueConverter")
},
validation: {
TreemapValidator: __name(() => new TreemapValidator(), "TreemapValidator")
}
};
function createTreemapServices(context = EmptyFileSystem) {
const shared = inject(
createDefaultSharedCoreModule(context),
MermaidGeneratedSharedModule
);
const Treemap = inject(
createDefaultCoreModule({ shared }),
TreemapGeneratedModule,
TreemapModule
);
shared.ServiceRegistry.register(Treemap);
registerValidationChecks(Treemap);
return { shared, Treemap };
}
__name(createTreemapServices, "createTreemapServices");
export {
TreemapModule,
createTreemapServices
};
//# sourceMappingURL=chunk-5SXTVVUG.js.map

View File

@ -0,0 +1,7 @@
{
"version": 3,
"sources": ["../../../../../../node_modules/@mermaid-js/parser/dist/chunks/mermaid-parser.core/chunk-XRWGC2XP.mjs"],
"sourcesContent": ["import {\n AbstractMermaidTokenBuilder,\n AbstractMermaidValueConverter,\n MermaidGeneratedSharedModule,\n TreemapGeneratedModule,\n __name\n} from \"./chunk-4KMFLZZN.mjs\";\n\n// src/language/treemap/module.ts\nimport {\n EmptyFileSystem,\n createDefaultCoreModule,\n createDefaultSharedCoreModule,\n inject\n} from \"langium\";\n\n// src/language/treemap/tokenBuilder.ts\nvar TreemapTokenBuilder = class extends AbstractMermaidTokenBuilder {\n static {\n __name(this, \"TreemapTokenBuilder\");\n }\n constructor() {\n super([\"treemap\"]);\n }\n};\n\n// src/language/treemap/valueConverter.ts\nvar classDefRegex = /classDef\\s+([A-Z_a-z]\\w+)(?:\\s+([^\\n\\r;]*))?;?/;\nvar TreemapValueConverter = class extends AbstractMermaidValueConverter {\n static {\n __name(this, \"TreemapValueConverter\");\n }\n runCustomConverter(rule, input, _cstNode) {\n if (rule.name === \"NUMBER2\") {\n return parseFloat(input.replace(/,/g, \"\"));\n } else if (rule.name === \"SEPARATOR\") {\n return input.substring(1, input.length - 1);\n } else if (rule.name === \"STRING2\") {\n return input.substring(1, input.length - 1);\n } else if (rule.name === \"INDENTATION\") {\n return input.length;\n } else if (rule.name === \"ClassDef\") {\n if (typeof input !== \"string\") {\n return input;\n }\n const match = classDefRegex.exec(input);\n if (match) {\n return {\n $type: \"ClassDefStatement\",\n className: match[1],\n styleText: match[2] || void 0\n };\n }\n }\n return void 0;\n }\n};\n\n// src/language/treemap/treemap-validator.ts\nfunction registerValidationChecks(services) {\n const validator = services.validation.TreemapValidator;\n const registry = services.validation.ValidationRegistry;\n if (registry) {\n const checks = {\n Treemap: validator.checkSingleRoot.bind(validator)\n // Remove unused validation for TreemapRow\n };\n registry.register(checks, validator);\n }\n}\n__name(registerValidationChecks, \"registerValidationChecks\");\nvar TreemapValidator = class {\n static {\n __name(this, \"TreemapValidator\");\n }\n /**\n * Validates that a treemap has only one root node.\n * A root node is defined as a node that has no indentation.\n */\n checkSingleRoot(doc, accept) {\n let rootNodeIndentation;\n for (const row of doc.TreemapRows) {\n if (!row.item) {\n continue;\n }\n if (rootNodeIndentation === void 0 && // Check if this is a root node (no indentation)\n row.indent === void 0) {\n rootNodeIndentation = 0;\n } else if (row.indent === void 0) {\n accept(\"error\", \"Multiple root nodes are not allowed in a treemap.\", {\n node: row,\n property: \"item\"\n });\n } else if (rootNodeIndentation !== void 0 && rootNodeIndentation >= parseInt(row.indent, 10)) {\n accept(\"error\", \"Multiple root nodes are not allowed in a treemap.\", {\n node: row,\n property: \"item\"\n });\n }\n }\n }\n};\n\n// src/language/treemap/module.ts\nvar TreemapModule = {\n parser: {\n TokenBuilder: /* @__PURE__ */ __name(() => new TreemapTokenBuilder(), \"TokenBuilder\"),\n ValueConverter: /* @__PURE__ */ __name(() => new TreemapValueConverter(), \"ValueConverter\")\n },\n validation: {\n TreemapValidator: /* @__PURE__ */ __name(() => new TreemapValidator(), \"TreemapValidator\")\n }\n};\nfunction createTreemapServices(context = EmptyFileSystem) {\n const shared = inject(\n createDefaultSharedCoreModule(context),\n MermaidGeneratedSharedModule\n );\n const Treemap = inject(\n createDefaultCoreModule({ shared }),\n TreemapGeneratedModule,\n TreemapModule\n );\n shared.ServiceRegistry.register(Treemap);\n registerValidationChecks(Treemap);\n return { shared, Treemap };\n}\n__name(createTreemapServices, \"createTreemapServices\");\n\nexport {\n TreemapModule,\n createTreemapServices\n};\n"],
"mappings": ";;;;;;;;;;;;;;AAAA;AAiBA,IAAI,uBAAsB,mBAAc,4BAA4B;AAAA,EAIlE,cAAc;AACZ,UAAM,CAAC,SAAS,CAAC;AAAA,EACnB;AACF,GALI,OAAO,IAAM,qBAAqB,GAFZ;AAU1B,IAAI,gBAAgB;AA3BpB,IAAAA;AA4BA,IAAI,yBAAwBA,MAAA,cAAc,8BAA8B;AAAA,EAItE,mBAAmB,MAAM,OAAO,UAAU;AACxC,QAAI,KAAK,SAAS,WAAW;AAC3B,aAAO,WAAW,MAAM,QAAQ,MAAM,EAAE,CAAC;AAAA,IAC3C,WAAW,KAAK,SAAS,aAAa;AACpC,aAAO,MAAM,UAAU,GAAG,MAAM,SAAS,CAAC;AAAA,IAC5C,WAAW,KAAK,SAAS,WAAW;AAClC,aAAO,MAAM,UAAU,GAAG,MAAM,SAAS,CAAC;AAAA,IAC5C,WAAW,KAAK,SAAS,eAAe;AACtC,aAAO,MAAM;AAAA,IACf,WAAW,KAAK,SAAS,YAAY;AACnC,UAAI,OAAO,UAAU,UAAU;AAC7B,eAAO;AAAA,MACT;AACA,YAAM,QAAQ,cAAc,KAAK,KAAK;AACtC,UAAI,OAAO;AACT,eAAO;AAAA,UACL,OAAO;AAAA,UACP,WAAW,MAAM,CAAC;AAAA,UAClB,WAAW,MAAM,CAAC,KAAK;AAAA,QACzB;AAAA,MACF;AAAA,IACF;AACA,WAAO;AAAA,EACT;AACF,GA1BI,OAAOA,KAAM,uBAAuB,GAFZA;AA+B5B,SAAS,yBAAyB,UAAU;AAC1C,QAAM,YAAY,SAAS,WAAW;AACtC,QAAM,WAAW,SAAS,WAAW;AACrC,MAAI,UAAU;AACZ,UAAM,SAAS;AAAA,MACb,SAAS,UAAU,gBAAgB,KAAK,SAAS;AAAA;AAAA,IAEnD;AACA,aAAS,SAAS,QAAQ,SAAS;AAAA,EACrC;AACF;AACA,OAAO,0BAA0B,0BAA0B;AAtE3D,IAAAA;AAuEA,IAAI,oBAAmBA,MAAA,MAAM;AAAA;AAAA;AAAA;AAAA;AAAA,EAQ3B,gBAAgB,KAAK,QAAQ;AAC3B,QAAI;AACJ,eAAW,OAAO,IAAI,aAAa;AACjC,UAAI,CAAC,IAAI,MAAM;AACb;AAAA,MACF;AACA,UAAI,wBAAwB;AAAA,MAC5B,IAAI,WAAW,QAAQ;AACrB,8BAAsB;AAAA,MACxB,WAAW,IAAI,WAAW,QAAQ;AAChC,eAAO,SAAS,qDAAqD;AAAA,UACnE,MAAM;AAAA,UACN,UAAU;AAAA,QACZ,CAAC;AAAA,MACH,WAAW,wBAAwB,UAAU,uBAAuB,SAAS,IAAI,QAAQ,EAAE,GAAG;AAC5F,eAAO,SAAS,qDAAqD;AAAA,UACnE,MAAM;AAAA,UACN,UAAU;AAAA,QACZ,CAAC;AAAA,MACH;AAAA,IACF;AAAA,EACF;AACF,GA5BI,OAAOA,KAAM,kBAAkB,GAFZA;AAiCvB,IAAI,gBAAgB;AAAA,EAClB,QAAQ;AAAA,IACN,cAA8B,OAAO,MAAM,IAAI,oBAAoB,GAAG,cAAc;AAAA,IACpF,gBAAgC,OAAO,MAAM,IAAI,sBAAsB,GAAG,gBAAgB;AAAA,EAC5F;AAAA,EACA,YAAY;AAAA,IACV,kBAAkC,OAAO,MAAM,IAAI,iBAAiB,GAAG,kBAAkB;AAAA,EAC3F;AACF;AACA,SAAS,sBAAsB,UAAU,iBAAiB;AACxD,QAAM,SAAS;AAAA,IACb,8BAA8B,OAAO;AAAA,IACrC;AAAA,EACF;AACA,QAAM,UAAU;AAAA,IACd,wBAAwB,EAAE,OAAO,CAAC;AAAA,IAClC;AAAA,IACA;AAAA,EACF;AACA,SAAO,gBAAgB,SAAS,OAAO;AACvC,2BAAyB,OAAO;AAChC,SAAO,EAAE,QAAQ,QAAQ;AAC3B;AACA,OAAO,uBAAuB,uBAAuB;",
"names": ["_a"]
}

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,25 @@
import {
getConfig2
} from "./chunk-BFCVI5XI.js";
import {
__name,
select_default
} from "./chunk-I65GBZ6F.js";
// node_modules/mermaid/dist/chunks/mermaid.core/chunk-EXTU4WIE.mjs
var selectSvgElement = __name((id) => {
const { securityLevel } = getConfig2();
let root = select_default("body");
if (securityLevel === "sandbox") {
const sandboxElement = select_default(`#i${id}`);
const doc = sandboxElement.node()?.contentDocument ?? document;
root = select_default(doc.body);
}
const svg = root.select(`#${id}`);
return svg;
}, "selectSvgElement");
export {
selectSvgElement
};
//# sourceMappingURL=chunk-B5NQPFQG.js.map

View File

@ -0,0 +1,7 @@
{
"version": 3,
"sources": ["../../../../../../node_modules/mermaid/dist/chunks/mermaid.core/chunk-EXTU4WIE.mjs"],
"sourcesContent": ["import {\n getConfig2 as getConfig\n} from \"./chunk-ABZYJK2D.mjs\";\nimport {\n __name\n} from \"./chunk-AGHRB4JF.mjs\";\n\n// src/rendering-util/selectSvgElement.ts\nimport { select } from \"d3\";\nvar selectSvgElement = /* @__PURE__ */ __name((id) => {\n const { securityLevel } = getConfig();\n let root = select(\"body\");\n if (securityLevel === \"sandbox\") {\n const sandboxElement = select(`#i${id}`);\n const doc = sandboxElement.node()?.contentDocument ?? document;\n root = select(doc.body);\n }\n const svg = root.select(`#${id}`);\n return svg;\n}, \"selectSvgElement\");\n\nexport {\n selectSvgElement\n};\n"],
"mappings": ";;;;;;;;;AASA,IAAI,mBAAmC,OAAO,CAAC,OAAO;AACpD,QAAM,EAAE,cAAc,IAAI,WAAU;AACpC,MAAI,OAAO,eAAO,MAAM;AACxB,MAAI,kBAAkB,WAAW;AAC/B,UAAM,iBAAiB,eAAO,KAAK,EAAE,EAAE;AACvC,UAAM,MAAM,eAAe,KAAK,GAAG,mBAAmB;AACtD,WAAO,eAAO,IAAI,IAAI;AAAA,EACxB;AACA,QAAM,MAAM,KAAK,OAAO,IAAI,EAAE,EAAE;AAChC,SAAO;AACT,GAAG,kBAAkB;",
"names": []
}

View File

@ -0,0 +1,124 @@
import {
require_dist
} from "./chunk-CMK64ICG.js";
import {
lineBreakRegex
} from "./chunk-BFCVI5XI.js";
import {
__name
} from "./chunk-I65GBZ6F.js";
import {
__toESM
} from "./chunk-TKSB4YUA.js";
// node_modules/mermaid/dist/chunks/mermaid.core/chunk-TZMSLE5B.mjs
var import_sanitize_url = __toESM(require_dist(), 1);
var drawRect = __name((element, rectData) => {
const rectElement = element.append("rect");
rectElement.attr("x", rectData.x);
rectElement.attr("y", rectData.y);
rectElement.attr("fill", rectData.fill);
rectElement.attr("stroke", rectData.stroke);
rectElement.attr("width", rectData.width);
rectElement.attr("height", rectData.height);
if (rectData.name) {
rectElement.attr("name", rectData.name);
}
if (rectData.rx) {
rectElement.attr("rx", rectData.rx);
}
if (rectData.ry) {
rectElement.attr("ry", rectData.ry);
}
if (rectData.attrs !== void 0) {
for (const attrKey in rectData.attrs) {
rectElement.attr(attrKey, rectData.attrs[attrKey]);
}
}
if (rectData.class) {
rectElement.attr("class", rectData.class);
}
return rectElement;
}, "drawRect");
var drawBackgroundRect = __name((element, bounds) => {
const rectData = {
x: bounds.startx,
y: bounds.starty,
width: bounds.stopx - bounds.startx,
height: bounds.stopy - bounds.starty,
fill: bounds.fill,
stroke: bounds.stroke,
class: "rect"
};
const rectElement = drawRect(element, rectData);
rectElement.lower();
}, "drawBackgroundRect");
var drawText = __name((element, textData) => {
const nText = textData.text.replace(lineBreakRegex, " ");
const textElem = element.append("text");
textElem.attr("x", textData.x);
textElem.attr("y", textData.y);
textElem.attr("class", "legend");
textElem.style("text-anchor", textData.anchor);
if (textData.class) {
textElem.attr("class", textData.class);
}
const tspan = textElem.append("tspan");
tspan.attr("x", textData.x + textData.textMargin * 2);
tspan.text(nText);
return textElem;
}, "drawText");
var drawImage = __name((elem, x, y, link) => {
const imageElement = elem.append("image");
imageElement.attr("x", x);
imageElement.attr("y", y);
const sanitizedLink = (0, import_sanitize_url.sanitizeUrl)(link);
imageElement.attr("xlink:href", sanitizedLink);
}, "drawImage");
var drawEmbeddedImage = __name((element, x, y, link) => {
const imageElement = element.append("use");
imageElement.attr("x", x);
imageElement.attr("y", y);
const sanitizedLink = (0, import_sanitize_url.sanitizeUrl)(link);
imageElement.attr("xlink:href", `#${sanitizedLink}`);
}, "drawEmbeddedImage");
var getNoteRect = __name(() => {
const noteRectData = {
x: 0,
y: 0,
width: 100,
height: 100,
fill: "#EDF2AE",
stroke: "#666",
anchor: "start",
rx: 0,
ry: 0
};
return noteRectData;
}, "getNoteRect");
var getTextObj = __name(() => {
const testObject = {
x: 0,
y: 0,
width: 100,
height: 100,
"text-anchor": "start",
style: "#666",
textMargin: 0,
rx: 0,
ry: 0,
tspan: true
};
return testObject;
}, "getTextObj");
export {
drawRect,
drawBackgroundRect,
drawText,
drawImage,
drawEmbeddedImage,
getNoteRect,
getTextObj
};
//# sourceMappingURL=chunk-BETRN5NS.js.map

View File

@ -0,0 +1,7 @@
{
"version": 3,
"sources": ["../../../../../../node_modules/mermaid/dist/chunks/mermaid.core/chunk-TZMSLE5B.mjs"],
"sourcesContent": ["import {\n lineBreakRegex\n} from \"./chunk-ABZYJK2D.mjs\";\nimport {\n __name\n} from \"./chunk-AGHRB4JF.mjs\";\n\n// src/diagrams/common/svgDrawCommon.ts\nimport { sanitizeUrl } from \"@braintree/sanitize-url\";\nvar drawRect = /* @__PURE__ */ __name((element, rectData) => {\n const rectElement = element.append(\"rect\");\n rectElement.attr(\"x\", rectData.x);\n rectElement.attr(\"y\", rectData.y);\n rectElement.attr(\"fill\", rectData.fill);\n rectElement.attr(\"stroke\", rectData.stroke);\n rectElement.attr(\"width\", rectData.width);\n rectElement.attr(\"height\", rectData.height);\n if (rectData.name) {\n rectElement.attr(\"name\", rectData.name);\n }\n if (rectData.rx) {\n rectElement.attr(\"rx\", rectData.rx);\n }\n if (rectData.ry) {\n rectElement.attr(\"ry\", rectData.ry);\n }\n if (rectData.attrs !== void 0) {\n for (const attrKey in rectData.attrs) {\n rectElement.attr(attrKey, rectData.attrs[attrKey]);\n }\n }\n if (rectData.class) {\n rectElement.attr(\"class\", rectData.class);\n }\n return rectElement;\n}, \"drawRect\");\nvar drawBackgroundRect = /* @__PURE__ */ __name((element, bounds) => {\n const rectData = {\n x: bounds.startx,\n y: bounds.starty,\n width: bounds.stopx - bounds.startx,\n height: bounds.stopy - bounds.starty,\n fill: bounds.fill,\n stroke: bounds.stroke,\n class: \"rect\"\n };\n const rectElement = drawRect(element, rectData);\n rectElement.lower();\n}, \"drawBackgroundRect\");\nvar drawText = /* @__PURE__ */ __name((element, textData) => {\n const nText = textData.text.replace(lineBreakRegex, \" \");\n const textElem = element.append(\"text\");\n textElem.attr(\"x\", textData.x);\n textElem.attr(\"y\", textData.y);\n textElem.attr(\"class\", \"legend\");\n textElem.style(\"text-anchor\", textData.anchor);\n if (textData.class) {\n textElem.attr(\"class\", textData.class);\n }\n const tspan = textElem.append(\"tspan\");\n tspan.attr(\"x\", textData.x + textData.textMargin * 2);\n tspan.text(nText);\n return textElem;\n}, \"drawText\");\nvar drawImage = /* @__PURE__ */ __name((elem, x, y, link) => {\n const imageElement = elem.append(\"image\");\n imageElement.attr(\"x\", x);\n imageElement.attr(\"y\", y);\n const sanitizedLink = sanitizeUrl(link);\n imageElement.attr(\"xlink:href\", sanitizedLink);\n}, \"drawImage\");\nvar drawEmbeddedImage = /* @__PURE__ */ __name((element, x, y, link) => {\n const imageElement = element.append(\"use\");\n imageElement.attr(\"x\", x);\n imageElement.attr(\"y\", y);\n const sanitizedLink = sanitizeUrl(link);\n imageElement.attr(\"xlink:href\", `#${sanitizedLink}`);\n}, \"drawEmbeddedImage\");\nvar getNoteRect = /* @__PURE__ */ __name(() => {\n const noteRectData = {\n x: 0,\n y: 0,\n width: 100,\n height: 100,\n fill: \"#EDF2AE\",\n stroke: \"#666\",\n anchor: \"start\",\n rx: 0,\n ry: 0\n };\n return noteRectData;\n}, \"getNoteRect\");\nvar getTextObj = /* @__PURE__ */ __name(() => {\n const testObject = {\n x: 0,\n y: 0,\n width: 100,\n height: 100,\n \"text-anchor\": \"start\",\n style: \"#666\",\n textMargin: 0,\n rx: 0,\n ry: 0,\n tspan: true\n };\n return testObject;\n}, \"getTextObj\");\n\nexport {\n drawRect,\n drawBackgroundRect,\n drawText,\n drawImage,\n drawEmbeddedImage,\n getNoteRect,\n getTextObj\n};\n"],
"mappings": ";;;;;;;;;;;;;;AAQA,0BAA4B;AAC5B,IAAI,WAA2B,OAAO,CAAC,SAAS,aAAa;AAC3D,QAAM,cAAc,QAAQ,OAAO,MAAM;AACzC,cAAY,KAAK,KAAK,SAAS,CAAC;AAChC,cAAY,KAAK,KAAK,SAAS,CAAC;AAChC,cAAY,KAAK,QAAQ,SAAS,IAAI;AACtC,cAAY,KAAK,UAAU,SAAS,MAAM;AAC1C,cAAY,KAAK,SAAS,SAAS,KAAK;AACxC,cAAY,KAAK,UAAU,SAAS,MAAM;AAC1C,MAAI,SAAS,MAAM;AACjB,gBAAY,KAAK,QAAQ,SAAS,IAAI;AAAA,EACxC;AACA,MAAI,SAAS,IAAI;AACf,gBAAY,KAAK,MAAM,SAAS,EAAE;AAAA,EACpC;AACA,MAAI,SAAS,IAAI;AACf,gBAAY,KAAK,MAAM,SAAS,EAAE;AAAA,EACpC;AACA,MAAI,SAAS,UAAU,QAAQ;AAC7B,eAAW,WAAW,SAAS,OAAO;AACpC,kBAAY,KAAK,SAAS,SAAS,MAAM,OAAO,CAAC;AAAA,IACnD;AAAA,EACF;AACA,MAAI,SAAS,OAAO;AAClB,gBAAY,KAAK,SAAS,SAAS,KAAK;AAAA,EAC1C;AACA,SAAO;AACT,GAAG,UAAU;AACb,IAAI,qBAAqC,OAAO,CAAC,SAAS,WAAW;AACnE,QAAM,WAAW;AAAA,IACf,GAAG,OAAO;AAAA,IACV,GAAG,OAAO;AAAA,IACV,OAAO,OAAO,QAAQ,OAAO;AAAA,IAC7B,QAAQ,OAAO,QAAQ,OAAO;AAAA,IAC9B,MAAM,OAAO;AAAA,IACb,QAAQ,OAAO;AAAA,IACf,OAAO;AAAA,EACT;AACA,QAAM,cAAc,SAAS,SAAS,QAAQ;AAC9C,cAAY,MAAM;AACpB,GAAG,oBAAoB;AACvB,IAAI,WAA2B,OAAO,CAAC,SAAS,aAAa;AAC3D,QAAM,QAAQ,SAAS,KAAK,QAAQ,gBAAgB,GAAG;AACvD,QAAM,WAAW,QAAQ,OAAO,MAAM;AACtC,WAAS,KAAK,KAAK,SAAS,CAAC;AAC7B,WAAS,KAAK,KAAK,SAAS,CAAC;AAC7B,WAAS,KAAK,SAAS,QAAQ;AAC/B,WAAS,MAAM,eAAe,SAAS,MAAM;AAC7C,MAAI,SAAS,OAAO;AAClB,aAAS,KAAK,SAAS,SAAS,KAAK;AAAA,EACvC;AACA,QAAM,QAAQ,SAAS,OAAO,OAAO;AACrC,QAAM,KAAK,KAAK,SAAS,IAAI,SAAS,aAAa,CAAC;AACpD,QAAM,KAAK,KAAK;AAChB,SAAO;AACT,GAAG,UAAU;AACb,IAAI,YAA4B,OAAO,CAAC,MAAM,GAAG,GAAG,SAAS;AAC3D,QAAM,eAAe,KAAK,OAAO,OAAO;AACxC,eAAa,KAAK,KAAK,CAAC;AACxB,eAAa,KAAK,KAAK,CAAC;AACxB,QAAM,oBAAgB,iCAAY,IAAI;AACtC,eAAa,KAAK,cAAc,aAAa;AAC/C,GAAG,WAAW;AACd,IAAI,oBAAoC,OAAO,CAAC,SAAS,GAAG,GAAG,SAAS;AACtE,QAAM,eAAe,QAAQ,OAAO,KAAK;AACzC,eAAa,KAAK,KAAK,CAAC;AACxB,eAAa,KAAK,KAAK,CAAC;AACxB,QAAM,oBAAgB,iCAAY,IAAI;AACtC,eAAa,KAAK,cAAc,IAAI,aAAa,EAAE;AACrD,GAAG,mBAAmB;AACtB,IAAI,cAA8B,OAAO,MAAM;AAC7C,QAAM,eAAe;AAAA,IACnB,GAAG;AAAA,IACH,GAAG;AAAA,IACH,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,IAAI;AAAA,IACJ,IAAI;AAAA,EACN;AACA,SAAO;AACT,GAAG,aAAa;AAChB,IAAI,aAA6B,OAAO,MAAM;AAC5C,QAAM,aAAa;AAAA,IACjB,GAAG;AAAA,IACH,GAAG;AAAA,IACH,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,eAAe;AAAA,IACf,OAAO;AAAA,IACP,YAAY;AAAA,IACZ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,OAAO;AAAA,EACT;AACA,SAAO;AACT,GAAG,YAAY;",
"names": []
}

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,147 @@
// node_modules/mermaid/dist/chunks/mermaid.core/chunk-KS23V3DP.mjs
var package_default = {
name: "mermaid",
version: "11.12.0",
description: "Markdown-ish syntax for generating flowcharts, mindmaps, sequence diagrams, class diagrams, gantt charts, git graphs and more.",
type: "module",
module: "./dist/mermaid.core.mjs",
types: "./dist/mermaid.d.ts",
exports: {
".": {
types: "./dist/mermaid.d.ts",
import: "./dist/mermaid.core.mjs",
default: "./dist/mermaid.core.mjs"
},
"./*": "./*"
},
keywords: [
"diagram",
"markdown",
"flowchart",
"sequence diagram",
"gantt",
"class diagram",
"git graph",
"mindmap",
"packet diagram",
"c4 diagram",
"er diagram",
"pie chart",
"pie diagram",
"quadrant chart",
"requirement diagram",
"graph"
],
scripts: {
clean: "rimraf dist",
dev: "pnpm -w dev",
"docs:code": "typedoc src/defaultConfig.ts src/config.ts src/mermaid.ts && prettier --write ./src/docs/config/setup",
"docs:build": "rimraf ../../docs && pnpm docs:code && pnpm docs:spellcheck && tsx scripts/docs.cli.mts",
"docs:verify": "pnpm docs:code && pnpm docs:spellcheck && tsx scripts/docs.cli.mts --verify",
"docs:pre:vitepress": "pnpm --filter ./src/docs prefetch && rimraf src/vitepress && pnpm docs:code && tsx scripts/docs.cli.mts --vitepress && pnpm --filter ./src/vitepress install --no-frozen-lockfile --ignore-scripts",
"docs:build:vitepress": "pnpm docs:pre:vitepress && (cd src/vitepress && pnpm run build) && cpy --flat src/docs/landing/ ./src/vitepress/.vitepress/dist/landing",
"docs:dev": 'pnpm docs:pre:vitepress && concurrently "pnpm --filter ./src/vitepress dev" "tsx scripts/docs.cli.mts --watch --vitepress"',
"docs:dev:docker": 'pnpm docs:pre:vitepress && concurrently "pnpm --filter ./src/vitepress dev:docker" "tsx scripts/docs.cli.mts --watch --vitepress"',
"docs:serve": "pnpm docs:build:vitepress && vitepress serve src/vitepress",
"docs:spellcheck": 'cspell "src/docs/**/*.md"',
"docs:release-version": "tsx scripts/update-release-version.mts",
"docs:verify-version": "tsx scripts/update-release-version.mts --verify",
"types:build-config": "tsx scripts/create-types-from-json-schema.mts",
"types:verify-config": "tsx scripts/create-types-from-json-schema.mts --verify",
checkCircle: "npx madge --circular ./src",
prepublishOnly: "pnpm docs:verify-version"
},
repository: {
type: "git",
url: "https://github.com/mermaid-js/mermaid"
},
author: "Knut Sveidqvist",
license: "MIT",
standard: {
ignore: [
"**/parser/*.js",
"dist/**/*.js",
"cypress/**/*.js"
],
globals: [
"page"
]
},
dependencies: {
"@braintree/sanitize-url": "^7.1.1",
"@iconify/utils": "^3.0.1",
"@mermaid-js/parser": "workspace:^",
"@types/d3": "^7.4.3",
cytoscape: "^3.29.3",
"cytoscape-cose-bilkent": "^4.1.0",
"cytoscape-fcose": "^2.2.0",
d3: "^7.9.0",
"d3-sankey": "^0.12.3",
"dagre-d3-es": "7.0.11",
dayjs: "^1.11.18",
dompurify: "^3.2.5",
katex: "^0.16.22",
khroma: "^2.1.0",
"lodash-es": "^4.17.21",
marked: "^16.2.1",
roughjs: "^4.6.6",
stylis: "^4.3.6",
"ts-dedent": "^2.2.0",
uuid: "^11.1.0"
},
devDependencies: {
"@adobe/jsonschema2md": "^8.0.5",
"@iconify/types": "^2.0.0",
"@types/cytoscape": "^3.21.9",
"@types/cytoscape-fcose": "^2.2.4",
"@types/d3-sankey": "^0.12.4",
"@types/d3-scale": "^4.0.9",
"@types/d3-scale-chromatic": "^3.1.0",
"@types/d3-selection": "^3.0.11",
"@types/d3-shape": "^3.1.7",
"@types/jsdom": "^21.1.7",
"@types/katex": "^0.16.7",
"@types/lodash-es": "^4.17.12",
"@types/micromatch": "^4.0.9",
"@types/stylis": "^4.2.7",
"@types/uuid": "^10.0.0",
ajv: "^8.17.1",
canvas: "^3.1.2",
chokidar: "3.6.0",
concurrently: "^9.1.2",
"csstree-validator": "^4.0.1",
globby: "^14.1.0",
jison: "^0.4.18",
"js-base64": "^3.7.8",
jsdom: "^26.1.0",
"json-schema-to-typescript": "^15.0.4",
micromatch: "^4.0.8",
"path-browserify": "^1.0.1",
prettier: "^3.5.3",
remark: "^15.0.1",
"remark-frontmatter": "^5.0.0",
"remark-gfm": "^4.0.1",
rimraf: "^6.0.1",
"start-server-and-test": "^2.0.13",
"type-fest": "^4.35.0",
typedoc: "^0.28.12",
"typedoc-plugin-markdown": "^4.8.1",
typescript: "~5.7.3",
"unist-util-flatmap": "^1.0.0",
"unist-util-visit": "^5.0.0",
vitepress: "^1.6.4",
"vitepress-plugin-search": "1.0.4-alpha.22"
},
files: [
"dist/",
"README.md"
],
publishConfig: {
access: "public"
}
};
export {
package_default
};
//# sourceMappingURL=chunk-BSULYXPT.js.map

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,46 @@
import {
AbstractMermaidTokenBuilder,
CommonValueConverter,
EmptyFileSystem,
InfoGeneratedModule,
MermaidGeneratedSharedModule,
__name,
createDefaultCoreModule,
createDefaultSharedCoreModule,
inject,
lib_exports
} from "./chunk-WHHJWK6B.js";
// node_modules/@mermaid-js/parser/dist/chunks/mermaid-parser.core/chunk-T44TD3VJ.mjs
var _a;
var InfoTokenBuilder = (_a = class extends AbstractMermaidTokenBuilder {
constructor() {
super(["info", "showInfo"]);
}
}, __name(_a, "InfoTokenBuilder"), _a);
var InfoModule = {
parser: {
TokenBuilder: __name(() => new InfoTokenBuilder(), "TokenBuilder"),
ValueConverter: __name(() => new CommonValueConverter(), "ValueConverter")
}
};
function createInfoServices(context = EmptyFileSystem) {
const shared = inject(
createDefaultSharedCoreModule(context),
MermaidGeneratedSharedModule
);
const Info = inject(
createDefaultCoreModule({ shared }),
InfoGeneratedModule,
InfoModule
);
shared.ServiceRegistry.register(Info);
return { shared, Info };
}
__name(createInfoServices, "createInfoServices");
export {
InfoModule,
createInfoServices
};
//# sourceMappingURL=chunk-BUI4I457.js.map

View File

@ -0,0 +1,7 @@
{
"version": 3,
"sources": ["../../../../../../node_modules/@mermaid-js/parser/dist/chunks/mermaid-parser.core/chunk-T44TD3VJ.mjs"],
"sourcesContent": ["import {\n AbstractMermaidTokenBuilder,\n CommonValueConverter,\n InfoGeneratedModule,\n MermaidGeneratedSharedModule,\n __name\n} from \"./chunk-4KMFLZZN.mjs\";\n\n// src/language/info/module.ts\nimport {\n EmptyFileSystem,\n createDefaultCoreModule,\n createDefaultSharedCoreModule,\n inject\n} from \"langium\";\n\n// src/language/info/tokenBuilder.ts\nvar InfoTokenBuilder = class extends AbstractMermaidTokenBuilder {\n static {\n __name(this, \"InfoTokenBuilder\");\n }\n constructor() {\n super([\"info\", \"showInfo\"]);\n }\n};\n\n// src/language/info/module.ts\nvar InfoModule = {\n parser: {\n TokenBuilder: /* @__PURE__ */ __name(() => new InfoTokenBuilder(), \"TokenBuilder\"),\n ValueConverter: /* @__PURE__ */ __name(() => new CommonValueConverter(), \"ValueConverter\")\n }\n};\nfunction createInfoServices(context = EmptyFileSystem) {\n const shared = inject(\n createDefaultSharedCoreModule(context),\n MermaidGeneratedSharedModule\n );\n const Info = inject(\n createDefaultCoreModule({ shared }),\n InfoGeneratedModule,\n InfoModule\n );\n shared.ServiceRegistry.register(Info);\n return { shared, Info };\n}\n__name(createInfoServices, \"createInfoServices\");\n\nexport {\n InfoModule,\n createInfoServices\n};\n"],
"mappings": ";;;;;;;;;;;;;;AAAA;AAiBA,IAAI,oBAAmB,mBAAc,4BAA4B;AAAA,EAI/D,cAAc;AACZ,UAAM,CAAC,QAAQ,UAAU,CAAC;AAAA,EAC5B;AACF,GALI,OAAO,IAAM,kBAAkB,GAFZ;AAUvB,IAAI,aAAa;AAAA,EACf,QAAQ;AAAA,IACN,cAA8B,OAAO,MAAM,IAAI,iBAAiB,GAAG,cAAc;AAAA,IACjF,gBAAgC,OAAO,MAAM,IAAI,qBAAqB,GAAG,gBAAgB;AAAA,EAC3F;AACF;AACA,SAAS,mBAAmB,UAAU,iBAAiB;AACrD,QAAM,SAAS;AAAA,IACb,8BAA8B,OAAO;AAAA,IACrC;AAAA,EACF;AACA,QAAM,OAAO;AAAA,IACX,wBAAwB,EAAE,OAAO,CAAC;AAAA,IAClC;AAAA,IACA;AAAA,EACF;AACA,SAAO,gBAAgB,SAAS,IAAI;AACpC,SAAO,EAAE,QAAQ,KAAK;AACxB;AACA,OAAO,oBAAoB,oBAAoB;",
"names": []
}

View File

@ -0,0 +1,46 @@
import {
AbstractMermaidTokenBuilder,
CommonValueConverter,
EmptyFileSystem,
MermaidGeneratedSharedModule,
PacketGeneratedModule,
__name,
createDefaultCoreModule,
createDefaultSharedCoreModule,
inject,
lib_exports
} from "./chunk-WHHJWK6B.js";
// node_modules/@mermaid-js/parser/dist/chunks/mermaid-parser.core/chunk-KMC2YHZD.mjs
var _a;
var PacketTokenBuilder = (_a = class extends AbstractMermaidTokenBuilder {
constructor() {
super(["packet"]);
}
}, __name(_a, "PacketTokenBuilder"), _a);
var PacketModule = {
parser: {
TokenBuilder: __name(() => new PacketTokenBuilder(), "TokenBuilder"),
ValueConverter: __name(() => new CommonValueConverter(), "ValueConverter")
}
};
function createPacketServices(context = EmptyFileSystem) {
const shared = inject(
createDefaultSharedCoreModule(context),
MermaidGeneratedSharedModule
);
const Packet = inject(
createDefaultCoreModule({ shared }),
PacketGeneratedModule,
PacketModule
);
shared.ServiceRegistry.register(Packet);
return { shared, Packet };
}
__name(createPacketServices, "createPacketServices");
export {
PacketModule,
createPacketServices
};
//# sourceMappingURL=chunk-CHJ5BV6S.js.map

View File

@ -0,0 +1,7 @@
{
"version": 3,
"sources": ["../../../../../../node_modules/@mermaid-js/parser/dist/chunks/mermaid-parser.core/chunk-KMC2YHZD.mjs"],
"sourcesContent": ["import {\n AbstractMermaidTokenBuilder,\n CommonValueConverter,\n MermaidGeneratedSharedModule,\n PacketGeneratedModule,\n __name\n} from \"./chunk-4KMFLZZN.mjs\";\n\n// src/language/packet/module.ts\nimport {\n EmptyFileSystem,\n createDefaultCoreModule,\n createDefaultSharedCoreModule,\n inject\n} from \"langium\";\n\n// src/language/packet/tokenBuilder.ts\nvar PacketTokenBuilder = class extends AbstractMermaidTokenBuilder {\n static {\n __name(this, \"PacketTokenBuilder\");\n }\n constructor() {\n super([\"packet\"]);\n }\n};\n\n// src/language/packet/module.ts\nvar PacketModule = {\n parser: {\n TokenBuilder: /* @__PURE__ */ __name(() => new PacketTokenBuilder(), \"TokenBuilder\"),\n ValueConverter: /* @__PURE__ */ __name(() => new CommonValueConverter(), \"ValueConverter\")\n }\n};\nfunction createPacketServices(context = EmptyFileSystem) {\n const shared = inject(\n createDefaultSharedCoreModule(context),\n MermaidGeneratedSharedModule\n );\n const Packet = inject(\n createDefaultCoreModule({ shared }),\n PacketGeneratedModule,\n PacketModule\n );\n shared.ServiceRegistry.register(Packet);\n return { shared, Packet };\n}\n__name(createPacketServices, \"createPacketServices\");\n\nexport {\n PacketModule,\n createPacketServices\n};\n"],
"mappings": ";;;;;;;;;;;;;;AAAA;AAiBA,IAAI,sBAAqB,mBAAc,4BAA4B;AAAA,EAIjE,cAAc;AACZ,UAAM,CAAC,QAAQ,CAAC;AAAA,EAClB;AACF,GALI,OAAO,IAAM,oBAAoB,GAFZ;AAUzB,IAAI,eAAe;AAAA,EACjB,QAAQ;AAAA,IACN,cAA8B,OAAO,MAAM,IAAI,mBAAmB,GAAG,cAAc;AAAA,IACnF,gBAAgC,OAAO,MAAM,IAAI,qBAAqB,GAAG,gBAAgB;AAAA,EAC3F;AACF;AACA,SAAS,qBAAqB,UAAU,iBAAiB;AACvD,QAAM,SAAS;AAAA,IACb,8BAA8B,OAAO;AAAA,IACrC;AAAA,EACF;AACA,QAAM,SAAS;AAAA,IACb,wBAAwB,EAAE,OAAO,CAAC;AAAA,IAClC;AAAA,IACA;AAAA,EACF;AACA,SAAO,gBAAgB,SAAS,MAAM;AACtC,SAAO,EAAE,QAAQ,OAAO;AAC1B;AACA,OAAO,sBAAsB,sBAAsB;",
"names": []
}

View File

@ -0,0 +1,97 @@
import {
__commonJS
} from "./chunk-TKSB4YUA.js";
// node_modules/@braintree/sanitize-url/dist/constants.js
var require_constants = __commonJS({
"node_modules/@braintree/sanitize-url/dist/constants.js"(exports) {
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.BLANK_URL = exports.relativeFirstCharacters = exports.whitespaceEscapeCharsRegex = exports.urlSchemeRegex = exports.ctrlCharactersRegex = exports.htmlCtrlEntityRegex = exports.htmlEntitiesRegex = exports.invalidProtocolRegex = void 0;
exports.invalidProtocolRegex = /^([^\w]*)(javascript|data|vbscript)/im;
exports.htmlEntitiesRegex = /&#(\w+)(^\w|;)?/g;
exports.htmlCtrlEntityRegex = /&(newline|tab);/gi;
exports.ctrlCharactersRegex = /[\u0000-\u001F\u007F-\u009F\u2000-\u200D\uFEFF]/gim;
exports.urlSchemeRegex = /^.+(:|&colon;)/gim;
exports.whitespaceEscapeCharsRegex = /(\\|%5[cC])((%(6[eE]|72|74))|[nrt])/g;
exports.relativeFirstCharacters = [".", "/"];
exports.BLANK_URL = "about:blank";
}
});
// node_modules/@braintree/sanitize-url/dist/index.js
var require_dist = __commonJS({
"node_modules/@braintree/sanitize-url/dist/index.js"(exports) {
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.sanitizeUrl = void 0;
var constants_1 = require_constants();
function isRelativeUrlWithoutProtocol(url) {
return constants_1.relativeFirstCharacters.indexOf(url[0]) > -1;
}
function decodeHtmlCharacters(str) {
var removedNullByte = str.replace(constants_1.ctrlCharactersRegex, "");
return removedNullByte.replace(constants_1.htmlEntitiesRegex, function(match, dec) {
return String.fromCharCode(dec);
});
}
function isValidUrl(url) {
return URL.canParse(url);
}
function decodeURI(uri) {
try {
return decodeURIComponent(uri);
} catch (e) {
return uri;
}
}
function sanitizeUrl(url) {
if (!url) {
return constants_1.BLANK_URL;
}
var charsToDecode;
var decodedUrl = decodeURI(url.trim());
do {
decodedUrl = decodeHtmlCharacters(decodedUrl).replace(constants_1.htmlCtrlEntityRegex, "").replace(constants_1.ctrlCharactersRegex, "").replace(constants_1.whitespaceEscapeCharsRegex, "").trim();
decodedUrl = decodeURI(decodedUrl);
charsToDecode = decodedUrl.match(constants_1.ctrlCharactersRegex) || decodedUrl.match(constants_1.htmlEntitiesRegex) || decodedUrl.match(constants_1.htmlCtrlEntityRegex) || decodedUrl.match(constants_1.whitespaceEscapeCharsRegex);
} while (charsToDecode && charsToDecode.length > 0);
var sanitizedUrl = decodedUrl;
if (!sanitizedUrl) {
return constants_1.BLANK_URL;
}
if (isRelativeUrlWithoutProtocol(sanitizedUrl)) {
return sanitizedUrl;
}
var trimmedUrl = sanitizedUrl.trimStart();
var urlSchemeParseResults = trimmedUrl.match(constants_1.urlSchemeRegex);
if (!urlSchemeParseResults) {
return sanitizedUrl;
}
var urlScheme = urlSchemeParseResults[0].toLowerCase().trim();
if (constants_1.invalidProtocolRegex.test(urlScheme)) {
return constants_1.BLANK_URL;
}
var backSanitized = trimmedUrl.replace(/\\/g, "/");
if (urlScheme === "mailto:" || urlScheme.includes("://")) {
return backSanitized;
}
if (urlScheme === "http:" || urlScheme === "https:") {
if (!isValidUrl(backSanitized)) {
return constants_1.BLANK_URL;
}
var url_1 = new URL(backSanitized);
url_1.protocol = url_1.protocol.toLowerCase();
url_1.hostname = url_1.hostname.toLowerCase();
return url_1.toString();
}
return backSanitized;
}
exports.sanitizeUrl = sanitizeUrl;
}
});
export {
require_dist
};
//# sourceMappingURL=chunk-CMK64ICG.js.map

View File

@ -0,0 +1,7 @@
{
"version": 3,
"sources": ["../../../../../../node_modules/@braintree/sanitize-url/dist/constants.js", "../../../../../../node_modules/@braintree/sanitize-url/dist/index.js"],
"sourcesContent": ["\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BLANK_URL = exports.relativeFirstCharacters = exports.whitespaceEscapeCharsRegex = exports.urlSchemeRegex = exports.ctrlCharactersRegex = exports.htmlCtrlEntityRegex = exports.htmlEntitiesRegex = exports.invalidProtocolRegex = void 0;\nexports.invalidProtocolRegex = /^([^\\w]*)(javascript|data|vbscript)/im;\nexports.htmlEntitiesRegex = /&#(\\w+)(^\\w|;)?/g;\nexports.htmlCtrlEntityRegex = /&(newline|tab);/gi;\nexports.ctrlCharactersRegex = /[\\u0000-\\u001F\\u007F-\\u009F\\u2000-\\u200D\\uFEFF]/gim;\nexports.urlSchemeRegex = /^.+(:|&colon;)/gim;\nexports.whitespaceEscapeCharsRegex = /(\\\\|%5[cC])((%(6[eE]|72|74))|[nrt])/g;\nexports.relativeFirstCharacters = [\".\", \"/\"];\nexports.BLANK_URL = \"about:blank\";\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.sanitizeUrl = void 0;\nvar constants_1 = require(\"./constants\");\nfunction isRelativeUrlWithoutProtocol(url) {\n return constants_1.relativeFirstCharacters.indexOf(url[0]) > -1;\n}\nfunction decodeHtmlCharacters(str) {\n var removedNullByte = str.replace(constants_1.ctrlCharactersRegex, \"\");\n return removedNullByte.replace(constants_1.htmlEntitiesRegex, function (match, dec) {\n return String.fromCharCode(dec);\n });\n}\nfunction isValidUrl(url) {\n return URL.canParse(url);\n}\nfunction decodeURI(uri) {\n try {\n return decodeURIComponent(uri);\n }\n catch (e) {\n // Ignoring error\n // It is possible that the URI contains a `%` not associated\n // with URI/URL-encoding.\n return uri;\n }\n}\nfunction sanitizeUrl(url) {\n if (!url) {\n return constants_1.BLANK_URL;\n }\n var charsToDecode;\n var decodedUrl = decodeURI(url.trim());\n do {\n decodedUrl = decodeHtmlCharacters(decodedUrl)\n .replace(constants_1.htmlCtrlEntityRegex, \"\")\n .replace(constants_1.ctrlCharactersRegex, \"\")\n .replace(constants_1.whitespaceEscapeCharsRegex, \"\")\n .trim();\n decodedUrl = decodeURI(decodedUrl);\n charsToDecode =\n decodedUrl.match(constants_1.ctrlCharactersRegex) ||\n decodedUrl.match(constants_1.htmlEntitiesRegex) ||\n decodedUrl.match(constants_1.htmlCtrlEntityRegex) ||\n decodedUrl.match(constants_1.whitespaceEscapeCharsRegex);\n } while (charsToDecode && charsToDecode.length > 0);\n var sanitizedUrl = decodedUrl;\n if (!sanitizedUrl) {\n return constants_1.BLANK_URL;\n }\n if (isRelativeUrlWithoutProtocol(sanitizedUrl)) {\n return sanitizedUrl;\n }\n // Remove any leading whitespace before checking the URL scheme\n var trimmedUrl = sanitizedUrl.trimStart();\n var urlSchemeParseResults = trimmedUrl.match(constants_1.urlSchemeRegex);\n if (!urlSchemeParseResults) {\n return sanitizedUrl;\n }\n var urlScheme = urlSchemeParseResults[0].toLowerCase().trim();\n if (constants_1.invalidProtocolRegex.test(urlScheme)) {\n return constants_1.BLANK_URL;\n }\n var backSanitized = trimmedUrl.replace(/\\\\/g, \"/\");\n // Handle special cases for mailto: and custom deep-link protocols\n if (urlScheme === \"mailto:\" || urlScheme.includes(\"://\")) {\n return backSanitized;\n }\n // For http and https URLs, perform additional validation\n if (urlScheme === \"http:\" || urlScheme === \"https:\") {\n if (!isValidUrl(backSanitized)) {\n return constants_1.BLANK_URL;\n }\n var url_1 = new URL(backSanitized);\n url_1.protocol = url_1.protocol.toLowerCase();\n url_1.hostname = url_1.hostname.toLowerCase();\n return url_1.toString();\n }\n return backSanitized;\n}\nexports.sanitizeUrl = sanitizeUrl;\n"],
"mappings": ";;;;;AAAA;AAAA;AAAA;AACA,WAAO,eAAe,SAAS,cAAc,EAAE,OAAO,KAAK,CAAC;AAC5D,YAAQ,YAAY,QAAQ,0BAA0B,QAAQ,6BAA6B,QAAQ,iBAAiB,QAAQ,sBAAsB,QAAQ,sBAAsB,QAAQ,oBAAoB,QAAQ,uBAAuB;AAC3O,YAAQ,uBAAuB;AAC/B,YAAQ,oBAAoB;AAC5B,YAAQ,sBAAsB;AAC9B,YAAQ,sBAAsB;AAC9B,YAAQ,iBAAiB;AACzB,YAAQ,6BAA6B;AACrC,YAAQ,0BAA0B,CAAC,KAAK,GAAG;AAC3C,YAAQ,YAAY;AAAA;AAAA;;;ACVpB;AAAA;AAAA;AACA,WAAO,eAAe,SAAS,cAAc,EAAE,OAAO,KAAK,CAAC;AAC5D,YAAQ,cAAc;AACtB,QAAI,cAAc;AAClB,aAAS,6BAA6B,KAAK;AACvC,aAAO,YAAY,wBAAwB,QAAQ,IAAI,CAAC,CAAC,IAAI;AAAA,IACjE;AACA,aAAS,qBAAqB,KAAK;AAC/B,UAAI,kBAAkB,IAAI,QAAQ,YAAY,qBAAqB,EAAE;AACrE,aAAO,gBAAgB,QAAQ,YAAY,mBAAmB,SAAU,OAAO,KAAK;AAChF,eAAO,OAAO,aAAa,GAAG;AAAA,MAClC,CAAC;AAAA,IACL;AACA,aAAS,WAAW,KAAK;AACrB,aAAO,IAAI,SAAS,GAAG;AAAA,IAC3B;AACA,aAAS,UAAU,KAAK;AACpB,UAAI;AACA,eAAO,mBAAmB,GAAG;AAAA,MACjC,SACO,GAAG;AAIN,eAAO;AAAA,MACX;AAAA,IACJ;AACA,aAAS,YAAY,KAAK;AACtB,UAAI,CAAC,KAAK;AACN,eAAO,YAAY;AAAA,MACvB;AACA,UAAI;AACJ,UAAI,aAAa,UAAU,IAAI,KAAK,CAAC;AACrC,SAAG;AACC,qBAAa,qBAAqB,UAAU,EACvC,QAAQ,YAAY,qBAAqB,EAAE,EAC3C,QAAQ,YAAY,qBAAqB,EAAE,EAC3C,QAAQ,YAAY,4BAA4B,EAAE,EAClD,KAAK;AACV,qBAAa,UAAU,UAAU;AACjC,wBACI,WAAW,MAAM,YAAY,mBAAmB,KAC5C,WAAW,MAAM,YAAY,iBAAiB,KAC9C,WAAW,MAAM,YAAY,mBAAmB,KAChD,WAAW,MAAM,YAAY,0BAA0B;AAAA,MACnE,SAAS,iBAAiB,cAAc,SAAS;AACjD,UAAI,eAAe;AACnB,UAAI,CAAC,cAAc;AACf,eAAO,YAAY;AAAA,MACvB;AACA,UAAI,6BAA6B,YAAY,GAAG;AAC5C,eAAO;AAAA,MACX;AAEA,UAAI,aAAa,aAAa,UAAU;AACxC,UAAI,wBAAwB,WAAW,MAAM,YAAY,cAAc;AACvE,UAAI,CAAC,uBAAuB;AACxB,eAAO;AAAA,MACX;AACA,UAAI,YAAY,sBAAsB,CAAC,EAAE,YAAY,EAAE,KAAK;AAC5D,UAAI,YAAY,qBAAqB,KAAK,SAAS,GAAG;AAClD,eAAO,YAAY;AAAA,MACvB;AACA,UAAI,gBAAgB,WAAW,QAAQ,OAAO,GAAG;AAEjD,UAAI,cAAc,aAAa,UAAU,SAAS,KAAK,GAAG;AACtD,eAAO;AAAA,MACX;AAEA,UAAI,cAAc,WAAW,cAAc,UAAU;AACjD,YAAI,CAAC,WAAW,aAAa,GAAG;AAC5B,iBAAO,YAAY;AAAA,QACvB;AACA,YAAI,QAAQ,IAAI,IAAI,aAAa;AACjC,cAAM,WAAW,MAAM,SAAS,YAAY;AAC5C,cAAM,WAAW,MAAM,SAAS,YAAY;AAC5C,eAAO,MAAM,SAAS;AAAA,MAC1B;AACA,aAAO;AAAA,IACX;AACA,YAAQ,cAAc;AAAA;AAAA;",
"names": []
}

View File

@ -0,0 +1,22 @@
import {
__name
} from "./chunk-I65GBZ6F.js";
// node_modules/mermaid/dist/chunks/mermaid.core/chunk-CVBHYZKI.mjs
var getSubGraphTitleMargins = __name(({
flowchart
}) => {
const subGraphTitleTopMargin = flowchart?.subGraphTitleMargin?.top ?? 0;
const subGraphTitleBottomMargin = flowchart?.subGraphTitleMargin?.bottom ?? 0;
const subGraphTitleTotalMargin = subGraphTitleTopMargin + subGraphTitleBottomMargin;
return {
subGraphTitleTopMargin,
subGraphTitleBottomMargin,
subGraphTitleTotalMargin
};
}, "getSubGraphTitleMargins");
export {
getSubGraphTitleMargins
};
//# sourceMappingURL=chunk-EUUYHBKV.js.map

View File

@ -0,0 +1,7 @@
{
"version": 3,
"sources": ["../../../../../../node_modules/mermaid/dist/chunks/mermaid.core/chunk-CVBHYZKI.mjs"],
"sourcesContent": ["import {\n __name\n} from \"./chunk-AGHRB4JF.mjs\";\n\n// src/utils/subGraphTitleMargins.ts\nvar getSubGraphTitleMargins = /* @__PURE__ */ __name(({\n flowchart\n}) => {\n const subGraphTitleTopMargin = flowchart?.subGraphTitleMargin?.top ?? 0;\n const subGraphTitleBottomMargin = flowchart?.subGraphTitleMargin?.bottom ?? 0;\n const subGraphTitleTotalMargin = subGraphTitleTopMargin + subGraphTitleBottomMargin;\n return {\n subGraphTitleTopMargin,\n subGraphTitleBottomMargin,\n subGraphTitleTotalMargin\n };\n}, \"getSubGraphTitleMargins\");\n\nexport {\n getSubGraphTitleMargins\n};\n"],
"mappings": ";;;;;AAKA,IAAI,0BAA0C,OAAO,CAAC;AAAA,EACpD;AACF,MAAM;AACJ,QAAM,yBAAyB,WAAW,qBAAqB,OAAO;AACtE,QAAM,4BAA4B,WAAW,qBAAqB,UAAU;AAC5E,QAAM,2BAA2B,yBAAyB;AAC1D,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF,GAAG,yBAAyB;",
"names": []
}

View File

@ -0,0 +1,46 @@
import {
AbstractMermaidTokenBuilder,
CommonValueConverter,
EmptyFileSystem,
GitGraphGeneratedModule,
MermaidGeneratedSharedModule,
__name,
createDefaultCoreModule,
createDefaultSharedCoreModule,
inject,
lib_exports
} from "./chunk-WHHJWK6B.js";
// node_modules/@mermaid-js/parser/dist/chunks/mermaid-parser.core/chunk-BN7GFLIU.mjs
var _a;
var GitGraphTokenBuilder = (_a = class extends AbstractMermaidTokenBuilder {
constructor() {
super(["gitGraph"]);
}
}, __name(_a, "GitGraphTokenBuilder"), _a);
var GitGraphModule = {
parser: {
TokenBuilder: __name(() => new GitGraphTokenBuilder(), "TokenBuilder"),
ValueConverter: __name(() => new CommonValueConverter(), "ValueConverter")
}
};
function createGitGraphServices(context = EmptyFileSystem) {
const shared = inject(
createDefaultSharedCoreModule(context),
MermaidGeneratedSharedModule
);
const GitGraph = inject(
createDefaultCoreModule({ shared }),
GitGraphGeneratedModule,
GitGraphModule
);
shared.ServiceRegistry.register(GitGraph);
return { shared, GitGraph };
}
__name(createGitGraphServices, "createGitGraphServices");
export {
GitGraphModule,
createGitGraphServices
};
//# sourceMappingURL=chunk-FNEVJCCX.js.map

View File

@ -0,0 +1,7 @@
{
"version": 3,
"sources": ["../../../../../../node_modules/@mermaid-js/parser/dist/chunks/mermaid-parser.core/chunk-BN7GFLIU.mjs"],
"sourcesContent": ["import {\n AbstractMermaidTokenBuilder,\n CommonValueConverter,\n GitGraphGeneratedModule,\n MermaidGeneratedSharedModule,\n __name\n} from \"./chunk-4KMFLZZN.mjs\";\n\n// src/language/gitGraph/module.ts\nimport {\n inject,\n createDefaultCoreModule,\n createDefaultSharedCoreModule,\n EmptyFileSystem\n} from \"langium\";\n\n// src/language/gitGraph/tokenBuilder.ts\nvar GitGraphTokenBuilder = class extends AbstractMermaidTokenBuilder {\n static {\n __name(this, \"GitGraphTokenBuilder\");\n }\n constructor() {\n super([\"gitGraph\"]);\n }\n};\n\n// src/language/gitGraph/module.ts\nvar GitGraphModule = {\n parser: {\n TokenBuilder: /* @__PURE__ */ __name(() => new GitGraphTokenBuilder(), \"TokenBuilder\"),\n ValueConverter: /* @__PURE__ */ __name(() => new CommonValueConverter(), \"ValueConverter\")\n }\n};\nfunction createGitGraphServices(context = EmptyFileSystem) {\n const shared = inject(\n createDefaultSharedCoreModule(context),\n MermaidGeneratedSharedModule\n );\n const GitGraph = inject(\n createDefaultCoreModule({ shared }),\n GitGraphGeneratedModule,\n GitGraphModule\n );\n shared.ServiceRegistry.register(GitGraph);\n return { shared, GitGraph };\n}\n__name(createGitGraphServices, \"createGitGraphServices\");\n\nexport {\n GitGraphModule,\n createGitGraphServices\n};\n"],
"mappings": ";;;;;;;;;;;;;;AAAA;AAiBA,IAAI,wBAAuB,mBAAc,4BAA4B;AAAA,EAInE,cAAc;AACZ,UAAM,CAAC,UAAU,CAAC;AAAA,EACpB;AACF,GALI,OAAO,IAAM,sBAAsB,GAFZ;AAU3B,IAAI,iBAAiB;AAAA,EACnB,QAAQ;AAAA,IACN,cAA8B,OAAO,MAAM,IAAI,qBAAqB,GAAG,cAAc;AAAA,IACrF,gBAAgC,OAAO,MAAM,IAAI,qBAAqB,GAAG,gBAAgB;AAAA,EAC3F;AACF;AACA,SAAS,uBAAuB,UAAU,iBAAiB;AACzD,QAAM,SAAS;AAAA,IACb,8BAA8B,OAAO;AAAA,IACrC;AAAA,EACF;AACA,QAAM,WAAW;AAAA,IACf,wBAAwB,EAAE,OAAO,CAAC;AAAA,IAClC;AAAA,IACA;AAAA,EACF;AACA,SAAO,gBAAgB,SAAS,QAAQ;AACxC,SAAO,EAAE,QAAQ,SAAS;AAC5B;AACA,OAAO,wBAAwB,wBAAwB;",
"names": []
}

View File

@ -0,0 +1,112 @@
import {
getConfig2
} from "./chunk-BFCVI5XI.js";
import {
__name
} from "./chunk-I65GBZ6F.js";
// node_modules/mermaid/dist/chunks/mermaid.core/chunk-ATLVNIR6.mjs
var solidStateFill = __name((color) => {
const { handDrawnSeed } = getConfig2();
return {
fill: color,
hachureAngle: 120,
// angle of hachure,
hachureGap: 4,
fillWeight: 2,
roughness: 0.7,
stroke: color,
seed: handDrawnSeed
};
}, "solidStateFill");
var compileStyles = __name((node) => {
const stylesMap = styles2Map([
...node.cssCompiledStyles || [],
...node.cssStyles || [],
...node.labelStyle || []
]);
return { stylesMap, stylesArray: [...stylesMap] };
}, "compileStyles");
var styles2Map = __name((styles) => {
const styleMap = /* @__PURE__ */ new Map();
styles.forEach((style) => {
const [key, value] = style.split(":");
styleMap.set(key.trim(), value?.trim());
});
return styleMap;
}, "styles2Map");
var isLabelStyle = __name((key) => {
return key === "color" || key === "font-size" || key === "font-family" || key === "font-weight" || key === "font-style" || key === "text-decoration" || key === "text-align" || key === "text-transform" || key === "line-height" || key === "letter-spacing" || key === "word-spacing" || key === "text-shadow" || key === "text-overflow" || key === "white-space" || key === "word-wrap" || key === "word-break" || key === "overflow-wrap" || key === "hyphens";
}, "isLabelStyle");
var styles2String = __name((node) => {
const { stylesArray } = compileStyles(node);
const labelStyles = [];
const nodeStyles = [];
const borderStyles = [];
const backgroundStyles = [];
stylesArray.forEach((style) => {
const key = style[0];
if (isLabelStyle(key)) {
labelStyles.push(style.join(":") + " !important");
} else {
nodeStyles.push(style.join(":") + " !important");
if (key.includes("stroke")) {
borderStyles.push(style.join(":") + " !important");
}
if (key === "fill") {
backgroundStyles.push(style.join(":") + " !important");
}
}
});
return {
labelStyles: labelStyles.join(";"),
nodeStyles: nodeStyles.join(";"),
stylesArray,
borderStyles,
backgroundStyles
};
}, "styles2String");
var userNodeOverrides = __name((node, options) => {
const { themeVariables, handDrawnSeed } = getConfig2();
const { nodeBorder, mainBkg } = themeVariables;
const { stylesMap } = compileStyles(node);
const result = Object.assign(
{
roughness: 0.7,
fill: stylesMap.get("fill") || mainBkg,
fillStyle: "hachure",
// solid fill
fillWeight: 4,
hachureGap: 5.2,
stroke: stylesMap.get("stroke") || nodeBorder,
seed: handDrawnSeed,
strokeWidth: stylesMap.get("stroke-width")?.replace("px", "") || 1.3,
fillLineDash: [0, 0],
strokeLineDash: getStrokeDashArray(stylesMap.get("stroke-dasharray"))
},
options
);
return result;
}, "userNodeOverrides");
var getStrokeDashArray = __name((strokeDasharrayStyle) => {
if (!strokeDasharrayStyle) {
return [0, 0];
}
const dashArray = strokeDasharrayStyle.trim().split(/\s+/).map(Number);
if (dashArray.length === 1) {
const val = isNaN(dashArray[0]) ? 0 : dashArray[0];
return [val, val];
}
const first = isNaN(dashArray[0]) ? 0 : dashArray[0];
const second = isNaN(dashArray[1]) ? 0 : dashArray[1];
return [first, second];
}, "getStrokeDashArray");
export {
solidStateFill,
compileStyles,
isLabelStyle,
styles2String,
userNodeOverrides
};
//# sourceMappingURL=chunk-FTTOYZOY.js.map

View File

@ -0,0 +1,7 @@
{
"version": 3,
"sources": ["../../../../../../node_modules/mermaid/dist/chunks/mermaid.core/chunk-ATLVNIR6.mjs"],
"sourcesContent": ["import {\n getConfig2 as getConfig\n} from \"./chunk-ABZYJK2D.mjs\";\nimport {\n __name\n} from \"./chunk-AGHRB4JF.mjs\";\n\n// src/rendering-util/rendering-elements/shapes/handDrawnShapeStyles.ts\nvar solidStateFill = /* @__PURE__ */ __name((color) => {\n const { handDrawnSeed } = getConfig();\n return {\n fill: color,\n hachureAngle: 120,\n // angle of hachure,\n hachureGap: 4,\n fillWeight: 2,\n roughness: 0.7,\n stroke: color,\n seed: handDrawnSeed\n };\n}, \"solidStateFill\");\nvar compileStyles = /* @__PURE__ */ __name((node) => {\n const stylesMap = styles2Map([\n ...node.cssCompiledStyles || [],\n ...node.cssStyles || [],\n ...node.labelStyle || []\n ]);\n return { stylesMap, stylesArray: [...stylesMap] };\n}, \"compileStyles\");\nvar styles2Map = /* @__PURE__ */ __name((styles) => {\n const styleMap = /* @__PURE__ */ new Map();\n styles.forEach((style) => {\n const [key, value] = style.split(\":\");\n styleMap.set(key.trim(), value?.trim());\n });\n return styleMap;\n}, \"styles2Map\");\nvar isLabelStyle = /* @__PURE__ */ __name((key) => {\n return key === \"color\" || key === \"font-size\" || key === \"font-family\" || key === \"font-weight\" || key === \"font-style\" || key === \"text-decoration\" || key === \"text-align\" || key === \"text-transform\" || key === \"line-height\" || key === \"letter-spacing\" || key === \"word-spacing\" || key === \"text-shadow\" || key === \"text-overflow\" || key === \"white-space\" || key === \"word-wrap\" || key === \"word-break\" || key === \"overflow-wrap\" || key === \"hyphens\";\n}, \"isLabelStyle\");\nvar styles2String = /* @__PURE__ */ __name((node) => {\n const { stylesArray } = compileStyles(node);\n const labelStyles = [];\n const nodeStyles = [];\n const borderStyles = [];\n const backgroundStyles = [];\n stylesArray.forEach((style) => {\n const key = style[0];\n if (isLabelStyle(key)) {\n labelStyles.push(style.join(\":\") + \" !important\");\n } else {\n nodeStyles.push(style.join(\":\") + \" !important\");\n if (key.includes(\"stroke\")) {\n borderStyles.push(style.join(\":\") + \" !important\");\n }\n if (key === \"fill\") {\n backgroundStyles.push(style.join(\":\") + \" !important\");\n }\n }\n });\n return {\n labelStyles: labelStyles.join(\";\"),\n nodeStyles: nodeStyles.join(\";\"),\n stylesArray,\n borderStyles,\n backgroundStyles\n };\n}, \"styles2String\");\nvar userNodeOverrides = /* @__PURE__ */ __name((node, options) => {\n const { themeVariables, handDrawnSeed } = getConfig();\n const { nodeBorder, mainBkg } = themeVariables;\n const { stylesMap } = compileStyles(node);\n const result = Object.assign(\n {\n roughness: 0.7,\n fill: stylesMap.get(\"fill\") || mainBkg,\n fillStyle: \"hachure\",\n // solid fill\n fillWeight: 4,\n hachureGap: 5.2,\n stroke: stylesMap.get(\"stroke\") || nodeBorder,\n seed: handDrawnSeed,\n strokeWidth: stylesMap.get(\"stroke-width\")?.replace(\"px\", \"\") || 1.3,\n fillLineDash: [0, 0],\n strokeLineDash: getStrokeDashArray(stylesMap.get(\"stroke-dasharray\"))\n },\n options\n );\n return result;\n}, \"userNodeOverrides\");\nvar getStrokeDashArray = /* @__PURE__ */ __name((strokeDasharrayStyle) => {\n if (!strokeDasharrayStyle) {\n return [0, 0];\n }\n const dashArray = strokeDasharrayStyle.trim().split(/\\s+/).map(Number);\n if (dashArray.length === 1) {\n const val = isNaN(dashArray[0]) ? 0 : dashArray[0];\n return [val, val];\n }\n const first = isNaN(dashArray[0]) ? 0 : dashArray[0];\n const second = isNaN(dashArray[1]) ? 0 : dashArray[1];\n return [first, second];\n}, \"getStrokeDashArray\");\n\nexport {\n solidStateFill,\n compileStyles,\n isLabelStyle,\n styles2String,\n userNodeOverrides\n};\n"],
"mappings": ";;;;;;;;AAQA,IAAI,iBAAiC,OAAO,CAAC,UAAU;AACrD,QAAM,EAAE,cAAc,IAAI,WAAU;AACpC,SAAO;AAAA,IACL,MAAM;AAAA,IACN,cAAc;AAAA;AAAA,IAEd,YAAY;AAAA,IACZ,YAAY;AAAA,IACZ,WAAW;AAAA,IACX,QAAQ;AAAA,IACR,MAAM;AAAA,EACR;AACF,GAAG,gBAAgB;AACnB,IAAI,gBAAgC,OAAO,CAAC,SAAS;AACnD,QAAM,YAAY,WAAW;AAAA,IAC3B,GAAG,KAAK,qBAAqB,CAAC;AAAA,IAC9B,GAAG,KAAK,aAAa,CAAC;AAAA,IACtB,GAAG,KAAK,cAAc,CAAC;AAAA,EACzB,CAAC;AACD,SAAO,EAAE,WAAW,aAAa,CAAC,GAAG,SAAS,EAAE;AAClD,GAAG,eAAe;AAClB,IAAI,aAA6B,OAAO,CAAC,WAAW;AAClD,QAAM,WAA2B,oBAAI,IAAI;AACzC,SAAO,QAAQ,CAAC,UAAU;AACxB,UAAM,CAAC,KAAK,KAAK,IAAI,MAAM,MAAM,GAAG;AACpC,aAAS,IAAI,IAAI,KAAK,GAAG,OAAO,KAAK,CAAC;AAAA,EACxC,CAAC;AACD,SAAO;AACT,GAAG,YAAY;AACf,IAAI,eAA+B,OAAO,CAAC,QAAQ;AACjD,SAAO,QAAQ,WAAW,QAAQ,eAAe,QAAQ,iBAAiB,QAAQ,iBAAiB,QAAQ,gBAAgB,QAAQ,qBAAqB,QAAQ,gBAAgB,QAAQ,oBAAoB,QAAQ,iBAAiB,QAAQ,oBAAoB,QAAQ,kBAAkB,QAAQ,iBAAiB,QAAQ,mBAAmB,QAAQ,iBAAiB,QAAQ,eAAe,QAAQ,gBAAgB,QAAQ,mBAAmB,QAAQ;AAC5b,GAAG,cAAc;AACjB,IAAI,gBAAgC,OAAO,CAAC,SAAS;AACnD,QAAM,EAAE,YAAY,IAAI,cAAc,IAAI;AAC1C,QAAM,cAAc,CAAC;AACrB,QAAM,aAAa,CAAC;AACpB,QAAM,eAAe,CAAC;AACtB,QAAM,mBAAmB,CAAC;AAC1B,cAAY,QAAQ,CAAC,UAAU;AAC7B,UAAM,MAAM,MAAM,CAAC;AACnB,QAAI,aAAa,GAAG,GAAG;AACrB,kBAAY,KAAK,MAAM,KAAK,GAAG,IAAI,aAAa;AAAA,IAClD,OAAO;AACL,iBAAW,KAAK,MAAM,KAAK,GAAG,IAAI,aAAa;AAC/C,UAAI,IAAI,SAAS,QAAQ,GAAG;AAC1B,qBAAa,KAAK,MAAM,KAAK,GAAG,IAAI,aAAa;AAAA,MACnD;AACA,UAAI,QAAQ,QAAQ;AAClB,yBAAiB,KAAK,MAAM,KAAK,GAAG,IAAI,aAAa;AAAA,MACvD;AAAA,IACF;AAAA,EACF,CAAC;AACD,SAAO;AAAA,IACL,aAAa,YAAY,KAAK,GAAG;AAAA,IACjC,YAAY,WAAW,KAAK,GAAG;AAAA,IAC/B;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF,GAAG,eAAe;AAClB,IAAI,oBAAoC,OAAO,CAAC,MAAM,YAAY;AAChE,QAAM,EAAE,gBAAgB,cAAc,IAAI,WAAU;AACpD,QAAM,EAAE,YAAY,QAAQ,IAAI;AAChC,QAAM,EAAE,UAAU,IAAI,cAAc,IAAI;AACxC,QAAM,SAAS,OAAO;AAAA,IACpB;AAAA,MACE,WAAW;AAAA,MACX,MAAM,UAAU,IAAI,MAAM,KAAK;AAAA,MAC/B,WAAW;AAAA;AAAA,MAEX,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,QAAQ,UAAU,IAAI,QAAQ,KAAK;AAAA,MACnC,MAAM;AAAA,MACN,aAAa,UAAU,IAAI,cAAc,GAAG,QAAQ,MAAM,EAAE,KAAK;AAAA,MACjE,cAAc,CAAC,GAAG,CAAC;AAAA,MACnB,gBAAgB,mBAAmB,UAAU,IAAI,kBAAkB,CAAC;AAAA,IACtE;AAAA,IACA;AAAA,EACF;AACA,SAAO;AACT,GAAG,mBAAmB;AACtB,IAAI,qBAAqC,OAAO,CAAC,yBAAyB;AACxE,MAAI,CAAC,sBAAsB;AACzB,WAAO,CAAC,GAAG,CAAC;AAAA,EACd;AACA,QAAM,YAAY,qBAAqB,KAAK,EAAE,MAAM,KAAK,EAAE,IAAI,MAAM;AACrE,MAAI,UAAU,WAAW,GAAG;AAC1B,UAAM,MAAM,MAAM,UAAU,CAAC,CAAC,IAAI,IAAI,UAAU,CAAC;AACjD,WAAO,CAAC,KAAK,GAAG;AAAA,EAClB;AACA,QAAM,QAAQ,MAAM,UAAU,CAAC,CAAC,IAAI,IAAI,UAAU,CAAC;AACnD,QAAM,SAAS,MAAM,UAAU,CAAC,CAAC,IAAI,IAAI,UAAU,CAAC;AACpD,SAAO,CAAC,OAAO,MAAM;AACvB,GAAG,oBAAoB;",
"names": []
}

View File

@ -0,0 +1,850 @@
import {
at,
createLabel_default
} from "./chunk-JJ4TL56I.js";
import {
getLineFunctionsWithOffset,
markerOffsets,
markerOffsets2
} from "./chunk-2HSIUWWJ.js";
import {
getSubGraphTitleMargins
} from "./chunk-EUUYHBKV.js";
import {
isLabelStyle,
styles2String
} from "./chunk-FTTOYZOY.js";
import {
createText
} from "./chunk-NMWDZEZO.js";
import {
utils_default
} from "./chunk-QVVRGVV3.js";
import {
evaluate,
getConfig2
} from "./chunk-BFCVI5XI.js";
import {
__name,
basis_default,
bumpX,
bumpY,
cardinal_default,
catmullRom_default,
line_default,
linear_default,
log,
monotoneX,
monotoneY,
natural_default,
select_default,
stepAfter,
stepBefore,
step_default
} from "./chunk-I65GBZ6F.js";
import {
__spreadValues
} from "./chunk-TKSB4YUA.js";
// node_modules/mermaid/dist/chunks/mermaid.core/chunk-QXUST7PY.mjs
var addEdgeMarkers = __name((svgPath, edge, url, id, diagramType, strokeColor) => {
if (edge.arrowTypeStart) {
addEdgeMarker(svgPath, "start", edge.arrowTypeStart, url, id, diagramType, strokeColor);
}
if (edge.arrowTypeEnd) {
addEdgeMarker(svgPath, "end", edge.arrowTypeEnd, url, id, diagramType, strokeColor);
}
}, "addEdgeMarkers");
var arrowTypesMap = {
arrow_cross: { type: "cross", fill: false },
arrow_point: { type: "point", fill: true },
arrow_barb: { type: "barb", fill: true },
arrow_circle: { type: "circle", fill: false },
aggregation: { type: "aggregation", fill: false },
extension: { type: "extension", fill: false },
composition: { type: "composition", fill: true },
dependency: { type: "dependency", fill: true },
lollipop: { type: "lollipop", fill: false },
only_one: { type: "onlyOne", fill: false },
zero_or_one: { type: "zeroOrOne", fill: false },
one_or_more: { type: "oneOrMore", fill: false },
zero_or_more: { type: "zeroOrMore", fill: false },
requirement_arrow: { type: "requirement_arrow", fill: false },
requirement_contains: { type: "requirement_contains", fill: false }
};
var addEdgeMarker = __name((svgPath, position, arrowType, url, id, diagramType, strokeColor) => {
const arrowTypeInfo = arrowTypesMap[arrowType];
if (!arrowTypeInfo) {
log.warn(`Unknown arrow type: ${arrowType}`);
return;
}
const endMarkerType = arrowTypeInfo.type;
const suffix = position === "start" ? "Start" : "End";
const originalMarkerId = `${id}_${diagramType}-${endMarkerType}${suffix}`;
if (strokeColor && strokeColor.trim() !== "") {
const colorId = strokeColor.replace(/[^\dA-Za-z]/g, "_");
const coloredMarkerId = `${originalMarkerId}_${colorId}`;
if (!document.getElementById(coloredMarkerId)) {
const originalMarker = document.getElementById(originalMarkerId);
if (originalMarker) {
const coloredMarker = originalMarker.cloneNode(true);
coloredMarker.id = coloredMarkerId;
const paths = coloredMarker.querySelectorAll("path, circle, line");
paths.forEach((path) => {
path.setAttribute("stroke", strokeColor);
if (arrowTypeInfo.fill) {
path.setAttribute("fill", strokeColor);
}
});
originalMarker.parentNode?.appendChild(coloredMarker);
}
}
svgPath.attr(`marker-${position}`, `url(${url}#${coloredMarkerId})`);
} else {
svgPath.attr(`marker-${position}`, `url(${url}#${originalMarkerId})`);
}
}, "addEdgeMarker");
var edgeLabels = /* @__PURE__ */ new Map();
var terminalLabels = /* @__PURE__ */ new Map();
var clear = __name(() => {
edgeLabels.clear();
terminalLabels.clear();
}, "clear");
var getLabelStyles = __name((styleArray) => {
let styles = styleArray ? styleArray.reduce((acc, style) => acc + ";" + style, "") : "";
return styles;
}, "getLabelStyles");
var insertEdgeLabel = __name(async (elem, edge) => {
let useHtmlLabels = evaluate(getConfig2().flowchart.htmlLabels);
const { labelStyles } = styles2String(edge);
edge.labelStyle = labelStyles;
const labelElement = await createText(elem, edge.label, {
style: edge.labelStyle,
useHtmlLabels,
addSvgBackground: true,
isNode: false
});
log.info("abc82", edge, edge.labelType);
const edgeLabel = elem.insert("g").attr("class", "edgeLabel");
const label = edgeLabel.insert("g").attr("class", "label").attr("data-id", edge.id);
label.node().appendChild(labelElement);
let bbox = labelElement.getBBox();
if (useHtmlLabels) {
const div = labelElement.children[0];
const dv = select_default(labelElement);
bbox = div.getBoundingClientRect();
dv.attr("width", bbox.width);
dv.attr("height", bbox.height);
}
label.attr("transform", "translate(" + -bbox.width / 2 + ", " + -bbox.height / 2 + ")");
edgeLabels.set(edge.id, edgeLabel);
edge.width = bbox.width;
edge.height = bbox.height;
let fo;
if (edge.startLabelLeft) {
const startLabelElement = await createLabel_default(
edge.startLabelLeft,
getLabelStyles(edge.labelStyle)
);
const startEdgeLabelLeft = elem.insert("g").attr("class", "edgeTerminals");
const inner = startEdgeLabelLeft.insert("g").attr("class", "inner");
fo = inner.node().appendChild(startLabelElement);
const slBox = startLabelElement.getBBox();
inner.attr("transform", "translate(" + -slBox.width / 2 + ", " + -slBox.height / 2 + ")");
if (!terminalLabels.get(edge.id)) {
terminalLabels.set(edge.id, {});
}
terminalLabels.get(edge.id).startLeft = startEdgeLabelLeft;
setTerminalWidth(fo, edge.startLabelLeft);
}
if (edge.startLabelRight) {
const startLabelElement = await createLabel_default(
edge.startLabelRight,
getLabelStyles(edge.labelStyle)
);
const startEdgeLabelRight = elem.insert("g").attr("class", "edgeTerminals");
const inner = startEdgeLabelRight.insert("g").attr("class", "inner");
fo = startEdgeLabelRight.node().appendChild(startLabelElement);
inner.node().appendChild(startLabelElement);
const slBox = startLabelElement.getBBox();
inner.attr("transform", "translate(" + -slBox.width / 2 + ", " + -slBox.height / 2 + ")");
if (!terminalLabels.get(edge.id)) {
terminalLabels.set(edge.id, {});
}
terminalLabels.get(edge.id).startRight = startEdgeLabelRight;
setTerminalWidth(fo, edge.startLabelRight);
}
if (edge.endLabelLeft) {
const endLabelElement = await createLabel_default(edge.endLabelLeft, getLabelStyles(edge.labelStyle));
const endEdgeLabelLeft = elem.insert("g").attr("class", "edgeTerminals");
const inner = endEdgeLabelLeft.insert("g").attr("class", "inner");
fo = inner.node().appendChild(endLabelElement);
const slBox = endLabelElement.getBBox();
inner.attr("transform", "translate(" + -slBox.width / 2 + ", " + -slBox.height / 2 + ")");
endEdgeLabelLeft.node().appendChild(endLabelElement);
if (!terminalLabels.get(edge.id)) {
terminalLabels.set(edge.id, {});
}
terminalLabels.get(edge.id).endLeft = endEdgeLabelLeft;
setTerminalWidth(fo, edge.endLabelLeft);
}
if (edge.endLabelRight) {
const endLabelElement = await createLabel_default(edge.endLabelRight, getLabelStyles(edge.labelStyle));
const endEdgeLabelRight = elem.insert("g").attr("class", "edgeTerminals");
const inner = endEdgeLabelRight.insert("g").attr("class", "inner");
fo = inner.node().appendChild(endLabelElement);
const slBox = endLabelElement.getBBox();
inner.attr("transform", "translate(" + -slBox.width / 2 + ", " + -slBox.height / 2 + ")");
endEdgeLabelRight.node().appendChild(endLabelElement);
if (!terminalLabels.get(edge.id)) {
terminalLabels.set(edge.id, {});
}
terminalLabels.get(edge.id).endRight = endEdgeLabelRight;
setTerminalWidth(fo, edge.endLabelRight);
}
return labelElement;
}, "insertEdgeLabel");
function setTerminalWidth(fo, value) {
if (getConfig2().flowchart.htmlLabels && fo) {
fo.style.width = value.length * 9 + "px";
fo.style.height = "12px";
}
}
__name(setTerminalWidth, "setTerminalWidth");
var positionEdgeLabel = __name((edge, paths) => {
log.debug("Moving label abc88 ", edge.id, edge.label, edgeLabels.get(edge.id), paths);
let path = paths.updatedPath ? paths.updatedPath : paths.originalPath;
const siteConfig = getConfig2();
const { subGraphTitleTotalMargin } = getSubGraphTitleMargins(siteConfig);
if (edge.label) {
const el = edgeLabels.get(edge.id);
let x = edge.x;
let y = edge.y;
if (path) {
const pos = utils_default.calcLabelPosition(path);
log.debug(
"Moving label " + edge.label + " from (",
x,
",",
y,
") to (",
pos.x,
",",
pos.y,
") abc88"
);
if (paths.updatedPath) {
x = pos.x;
y = pos.y;
}
}
el.attr("transform", `translate(${x}, ${y + subGraphTitleTotalMargin / 2})`);
}
if (edge.startLabelLeft) {
const el = terminalLabels.get(edge.id).startLeft;
let x = edge.x;
let y = edge.y;
if (path) {
const pos = utils_default.calcTerminalLabelPosition(edge.arrowTypeStart ? 10 : 0, "start_left", path);
x = pos.x;
y = pos.y;
}
el.attr("transform", `translate(${x}, ${y})`);
}
if (edge.startLabelRight) {
const el = terminalLabels.get(edge.id).startRight;
let x = edge.x;
let y = edge.y;
if (path) {
const pos = utils_default.calcTerminalLabelPosition(
edge.arrowTypeStart ? 10 : 0,
"start_right",
path
);
x = pos.x;
y = pos.y;
}
el.attr("transform", `translate(${x}, ${y})`);
}
if (edge.endLabelLeft) {
const el = terminalLabels.get(edge.id).endLeft;
let x = edge.x;
let y = edge.y;
if (path) {
const pos = utils_default.calcTerminalLabelPosition(edge.arrowTypeEnd ? 10 : 0, "end_left", path);
x = pos.x;
y = pos.y;
}
el.attr("transform", `translate(${x}, ${y})`);
}
if (edge.endLabelRight) {
const el = terminalLabels.get(edge.id).endRight;
let x = edge.x;
let y = edge.y;
if (path) {
const pos = utils_default.calcTerminalLabelPosition(edge.arrowTypeEnd ? 10 : 0, "end_right", path);
x = pos.x;
y = pos.y;
}
el.attr("transform", `translate(${x}, ${y})`);
}
}, "positionEdgeLabel");
var outsideNode = __name((node, point2) => {
const x = node.x;
const y = node.y;
const dx = Math.abs(point2.x - x);
const dy = Math.abs(point2.y - y);
const w = node.width / 2;
const h = node.height / 2;
return dx >= w || dy >= h;
}, "outsideNode");
var intersection = __name((node, outsidePoint, insidePoint) => {
log.debug(`intersection calc abc89:
outsidePoint: ${JSON.stringify(outsidePoint)}
insidePoint : ${JSON.stringify(insidePoint)}
node : x:${node.x} y:${node.y} w:${node.width} h:${node.height}`);
const x = node.x;
const y = node.y;
const dx = Math.abs(x - insidePoint.x);
const w = node.width / 2;
let r = insidePoint.x < outsidePoint.x ? w - dx : w + dx;
const h = node.height / 2;
const Q = Math.abs(outsidePoint.y - insidePoint.y);
const R = Math.abs(outsidePoint.x - insidePoint.x);
if (Math.abs(y - outsidePoint.y) * w > Math.abs(x - outsidePoint.x) * h) {
let q = insidePoint.y < outsidePoint.y ? outsidePoint.y - h - y : y - h - outsidePoint.y;
r = R * q / Q;
const res = {
x: insidePoint.x < outsidePoint.x ? insidePoint.x + r : insidePoint.x - R + r,
y: insidePoint.y < outsidePoint.y ? insidePoint.y + Q - q : insidePoint.y - Q + q
};
if (r === 0) {
res.x = outsidePoint.x;
res.y = outsidePoint.y;
}
if (R === 0) {
res.x = outsidePoint.x;
}
if (Q === 0) {
res.y = outsidePoint.y;
}
log.debug(`abc89 top/bottom calc, Q ${Q}, q ${q}, R ${R}, r ${r}`, res);
return res;
} else {
if (insidePoint.x < outsidePoint.x) {
r = outsidePoint.x - w - x;
} else {
r = x - w - outsidePoint.x;
}
let q = Q * r / R;
let _x = insidePoint.x < outsidePoint.x ? insidePoint.x + R - r : insidePoint.x - R + r;
let _y = insidePoint.y < outsidePoint.y ? insidePoint.y + q : insidePoint.y - q;
log.debug(`sides calc abc89, Q ${Q}, q ${q}, R ${R}, r ${r}`, { _x, _y });
if (r === 0) {
_x = outsidePoint.x;
_y = outsidePoint.y;
}
if (R === 0) {
_x = outsidePoint.x;
}
if (Q === 0) {
_y = outsidePoint.y;
}
return { x: _x, y: _y };
}
}, "intersection");
var cutPathAtIntersect = __name((_points, boundaryNode) => {
log.warn("abc88 cutPathAtIntersect", _points, boundaryNode);
let points = [];
let lastPointOutside = _points[0];
let isInside = false;
_points.forEach((point2) => {
log.info("abc88 checking point", point2, boundaryNode);
if (!outsideNode(boundaryNode, point2) && !isInside) {
const inter = intersection(boundaryNode, lastPointOutside, point2);
log.debug("abc88 inside", point2, lastPointOutside, inter);
log.debug("abc88 intersection", inter, boundaryNode);
let pointPresent = false;
points.forEach((p) => {
pointPresent = pointPresent || p.x === inter.x && p.y === inter.y;
});
if (!points.some((e) => e.x === inter.x && e.y === inter.y)) {
points.push(inter);
} else {
log.warn("abc88 no intersect", inter, points);
}
isInside = true;
} else {
log.warn("abc88 outside", point2, lastPointOutside);
lastPointOutside = point2;
if (!isInside) {
points.push(point2);
}
}
});
log.debug("returning points", points);
return points;
}, "cutPathAtIntersect");
function extractCornerPoints(points) {
const cornerPoints = [];
const cornerPointPositions = [];
for (let i = 1; i < points.length - 1; i++) {
const prev = points[i - 1];
const curr = points[i];
const next = points[i + 1];
if (prev.x === curr.x && curr.y === next.y && Math.abs(curr.x - next.x) > 5 && Math.abs(curr.y - prev.y) > 5) {
cornerPoints.push(curr);
cornerPointPositions.push(i);
} else if (prev.y === curr.y && curr.x === next.x && Math.abs(curr.x - prev.x) > 5 && Math.abs(curr.y - next.y) > 5) {
cornerPoints.push(curr);
cornerPointPositions.push(i);
}
}
return { cornerPoints, cornerPointPositions };
}
__name(extractCornerPoints, "extractCornerPoints");
var findAdjacentPoint = __name(function(pointA, pointB, distance) {
const xDiff = pointB.x - pointA.x;
const yDiff = pointB.y - pointA.y;
const length = Math.sqrt(xDiff * xDiff + yDiff * yDiff);
const ratio = distance / length;
return { x: pointB.x - ratio * xDiff, y: pointB.y - ratio * yDiff };
}, "findAdjacentPoint");
var fixCorners = __name(function(lineData) {
const { cornerPointPositions } = extractCornerPoints(lineData);
const newLineData = [];
for (let i = 0; i < lineData.length; i++) {
if (cornerPointPositions.includes(i)) {
const prevPoint = lineData[i - 1];
const nextPoint = lineData[i + 1];
const cornerPoint = lineData[i];
const newPrevPoint = findAdjacentPoint(prevPoint, cornerPoint, 5);
const newNextPoint = findAdjacentPoint(nextPoint, cornerPoint, 5);
const xDiff = newNextPoint.x - newPrevPoint.x;
const yDiff = newNextPoint.y - newPrevPoint.y;
newLineData.push(newPrevPoint);
const a = Math.sqrt(2) * 2;
let newCornerPoint = { x: cornerPoint.x, y: cornerPoint.y };
if (Math.abs(nextPoint.x - prevPoint.x) > 10 && Math.abs(nextPoint.y - prevPoint.y) >= 10) {
log.debug(
"Corner point fixing",
Math.abs(nextPoint.x - prevPoint.x),
Math.abs(nextPoint.y - prevPoint.y)
);
const r = 5;
if (cornerPoint.x === newPrevPoint.x) {
newCornerPoint = {
x: xDiff < 0 ? newPrevPoint.x - r + a : newPrevPoint.x + r - a,
y: yDiff < 0 ? newPrevPoint.y - a : newPrevPoint.y + a
};
} else {
newCornerPoint = {
x: xDiff < 0 ? newPrevPoint.x - a : newPrevPoint.x + a,
y: yDiff < 0 ? newPrevPoint.y - r + a : newPrevPoint.y + r - a
};
}
} else {
log.debug(
"Corner point skipping fixing",
Math.abs(nextPoint.x - prevPoint.x),
Math.abs(nextPoint.y - prevPoint.y)
);
}
newLineData.push(newCornerPoint, newNextPoint);
} else {
newLineData.push(lineData[i]);
}
}
return newLineData;
}, "fixCorners");
var generateDashArray = __name((len, oValueS, oValueE) => {
const middleLength = len - oValueS - oValueE;
const dashLength = 2;
const gapLength = 2;
const dashGapPairLength = dashLength + gapLength;
const numberOfPairs = Math.floor(middleLength / dashGapPairLength);
const middlePattern = Array(numberOfPairs).fill(`${dashLength} ${gapLength}`).join(" ");
const dashArray = `0 ${oValueS} ${middlePattern} ${oValueE}`;
return dashArray;
}, "generateDashArray");
var insertEdge = __name(function(elem, edge, clusterDb, diagramType, startNode, endNode, id, skipIntersect = false) {
const { handDrawnSeed } = getConfig2();
let points = edge.points;
let pointsHasChanged = false;
const tail = startNode;
var head = endNode;
const edgeClassStyles = [];
for (const key in edge.cssCompiledStyles) {
if (isLabelStyle(key)) {
continue;
}
edgeClassStyles.push(edge.cssCompiledStyles[key]);
}
log.debug("UIO intersect check", edge.points, head.x, tail.x);
if (head.intersect && tail.intersect && !skipIntersect) {
points = points.slice(1, edge.points.length - 1);
points.unshift(tail.intersect(points[0]));
log.debug(
"Last point UIO",
edge.start,
"-->",
edge.end,
points[points.length - 1],
head,
head.intersect(points[points.length - 1])
);
points.push(head.intersect(points[points.length - 1]));
}
const pointsStr = btoa(JSON.stringify(points));
if (edge.toCluster) {
log.info("to cluster abc88", clusterDb.get(edge.toCluster));
points = cutPathAtIntersect(edge.points, clusterDb.get(edge.toCluster).node);
pointsHasChanged = true;
}
if (edge.fromCluster) {
log.debug(
"from cluster abc88",
clusterDb.get(edge.fromCluster),
JSON.stringify(points, null, 2)
);
points = cutPathAtIntersect(points.reverse(), clusterDb.get(edge.fromCluster).node).reverse();
pointsHasChanged = true;
}
let lineData = points.filter((p) => !Number.isNaN(p.y));
lineData = fixCorners(lineData);
let curve = basis_default;
curve = linear_default;
switch (edge.curve) {
case "linear":
curve = linear_default;
break;
case "basis":
curve = basis_default;
break;
case "cardinal":
curve = cardinal_default;
break;
case "bumpX":
curve = bumpX;
break;
case "bumpY":
curve = bumpY;
break;
case "catmullRom":
curve = catmullRom_default;
break;
case "monotoneX":
curve = monotoneX;
break;
case "monotoneY":
curve = monotoneY;
break;
case "natural":
curve = natural_default;
break;
case "step":
curve = step_default;
break;
case "stepAfter":
curve = stepAfter;
break;
case "stepBefore":
curve = stepBefore;
break;
default:
curve = basis_default;
}
const { x, y } = getLineFunctionsWithOffset(edge);
const lineFunction = line_default().x(x).y(y).curve(curve);
let strokeClasses;
switch (edge.thickness) {
case "normal":
strokeClasses = "edge-thickness-normal";
break;
case "thick":
strokeClasses = "edge-thickness-thick";
break;
case "invisible":
strokeClasses = "edge-thickness-invisible";
break;
default:
strokeClasses = "edge-thickness-normal";
}
switch (edge.pattern) {
case "solid":
strokeClasses += " edge-pattern-solid";
break;
case "dotted":
strokeClasses += " edge-pattern-dotted";
break;
case "dashed":
strokeClasses += " edge-pattern-dashed";
break;
default:
strokeClasses += " edge-pattern-solid";
}
let svgPath;
let linePath = edge.curve === "rounded" ? generateRoundedPath(applyMarkerOffsetsToPoints(lineData, edge), 5) : lineFunction(lineData);
const edgeStyles = Array.isArray(edge.style) ? edge.style : [edge.style];
let strokeColor = edgeStyles.find((style) => style?.startsWith("stroke:"));
let animatedEdge = false;
if (edge.look === "handDrawn") {
const rc = at.svg(elem);
Object.assign([], lineData);
const svgPathNode = rc.path(linePath, {
roughness: 0.3,
seed: handDrawnSeed
});
strokeClasses += " transition";
svgPath = select_default(svgPathNode).select("path").attr("id", edge.id).attr("class", " " + strokeClasses + (edge.classes ? " " + edge.classes : "")).attr("style", edgeStyles ? edgeStyles.reduce((acc, style) => acc + ";" + style, "") : "");
let d = svgPath.attr("d");
svgPath.attr("d", d);
elem.node().appendChild(svgPath.node());
} else {
const stylesFromClasses = edgeClassStyles.join(";");
const styles = edgeStyles ? edgeStyles.reduce((acc, style) => acc + style + ";", "") : "";
let animationClass = "";
if (edge.animate) {
animationClass = " edge-animation-fast";
}
if (edge.animation) {
animationClass = " edge-animation-" + edge.animation;
}
const pathStyle = (stylesFromClasses ? stylesFromClasses + ";" + styles + ";" : styles) + ";" + (edgeStyles ? edgeStyles.reduce((acc, style) => acc + ";" + style, "") : "");
svgPath = elem.append("path").attr("d", linePath).attr("id", edge.id).attr(
"class",
" " + strokeClasses + (edge.classes ? " " + edge.classes : "") + (animationClass ?? "")
).attr("style", pathStyle);
strokeColor = pathStyle.match(/stroke:([^;]+)/)?.[1];
animatedEdge = edge.animate === true || !!edge.animation || stylesFromClasses.includes("animation");
const pathNode = svgPath.node();
const len = typeof pathNode.getTotalLength === "function" ? pathNode.getTotalLength() : 0;
const oValueS = markerOffsets2[edge.arrowTypeStart] || 0;
const oValueE = markerOffsets2[edge.arrowTypeEnd] || 0;
if (edge.look === "neo" && !animatedEdge) {
const dashArray = edge.pattern === "dotted" || edge.pattern === "dashed" ? generateDashArray(len, oValueS, oValueE) : `0 ${oValueS} ${len - oValueS - oValueE} ${oValueE}`;
const mOffset = `stroke-dasharray: ${dashArray}; stroke-dashoffset: 0;`;
svgPath.attr("style", mOffset + svgPath.attr("style"));
}
}
svgPath.attr("data-edge", true);
svgPath.attr("data-et", "edge");
svgPath.attr("data-id", edge.id);
svgPath.attr("data-points", pointsStr);
if (edge.showPoints) {
lineData.forEach((point3) => {
elem.append("circle").style("stroke", "red").style("fill", "red").attr("r", 1).attr("cx", point3.x).attr("cy", point3.y);
});
}
let url = "";
if (getConfig2().flowchart.arrowMarkerAbsolute || getConfig2().state.arrowMarkerAbsolute) {
url = window.location.protocol + "//" + window.location.host + window.location.pathname + window.location.search;
url = url.replace(/\(/g, "\\(").replace(/\)/g, "\\)");
}
log.info("arrowTypeStart", edge.arrowTypeStart);
log.info("arrowTypeEnd", edge.arrowTypeEnd);
addEdgeMarkers(svgPath, edge, url, id, diagramType, strokeColor);
const midIndex = Math.floor(points.length / 2);
const point2 = points[midIndex];
if (!utils_default.isLabelCoordinateInPath(point2, svgPath.attr("d"))) {
pointsHasChanged = true;
}
let paths = {};
if (pointsHasChanged) {
paths.updatedPath = points;
}
paths.originalPath = edge.points;
return paths;
}, "insertEdge");
function generateRoundedPath(points, radius) {
if (points.length < 2) {
return "";
}
let path = "";
const size = points.length;
const epsilon = 1e-5;
for (let i = 0; i < size; i++) {
const currPoint = points[i];
const prevPoint = points[i - 1];
const nextPoint = points[i + 1];
if (i === 0) {
path += `M${currPoint.x},${currPoint.y}`;
} else if (i === size - 1) {
path += `L${currPoint.x},${currPoint.y}`;
} else {
const dx1 = currPoint.x - prevPoint.x;
const dy1 = currPoint.y - prevPoint.y;
const dx2 = nextPoint.x - currPoint.x;
const dy2 = nextPoint.y - currPoint.y;
const len1 = Math.hypot(dx1, dy1);
const len2 = Math.hypot(dx2, dy2);
if (len1 < epsilon || len2 < epsilon) {
path += `L${currPoint.x},${currPoint.y}`;
continue;
}
const nx1 = dx1 / len1;
const ny1 = dy1 / len1;
const nx2 = dx2 / len2;
const ny2 = dy2 / len2;
const dot = nx1 * nx2 + ny1 * ny2;
const clampedDot = Math.max(-1, Math.min(1, dot));
const angle = Math.acos(clampedDot);
if (angle < epsilon || Math.abs(Math.PI - angle) < epsilon) {
path += `L${currPoint.x},${currPoint.y}`;
continue;
}
const cutLen = Math.min(radius / Math.sin(angle / 2), len1 / 2, len2 / 2);
const startX = currPoint.x - nx1 * cutLen;
const startY = currPoint.y - ny1 * cutLen;
const endX = currPoint.x + nx2 * cutLen;
const endY = currPoint.y + ny2 * cutLen;
path += `L${startX},${startY}`;
path += `Q${currPoint.x},${currPoint.y} ${endX},${endY}`;
}
}
return path;
}
__name(generateRoundedPath, "generateRoundedPath");
function calculateDeltaAndAngle(point1, point2) {
if (!point1 || !point2) {
return { angle: 0, deltaX: 0, deltaY: 0 };
}
const deltaX = point2.x - point1.x;
const deltaY = point2.y - point1.y;
const angle = Math.atan2(deltaY, deltaX);
return { angle, deltaX, deltaY };
}
__name(calculateDeltaAndAngle, "calculateDeltaAndAngle");
function applyMarkerOffsetsToPoints(points, edge) {
const newPoints = points.map((point2) => __spreadValues({}, point2));
if (points.length >= 2 && markerOffsets[edge.arrowTypeStart]) {
const offsetValue = markerOffsets[edge.arrowTypeStart];
const point1 = points[0];
const point2 = points[1];
const { angle } = calculateDeltaAndAngle(point1, point2);
const offsetX = offsetValue * Math.cos(angle);
const offsetY = offsetValue * Math.sin(angle);
newPoints[0].x = point1.x + offsetX;
newPoints[0].y = point1.y + offsetY;
}
const n = points.length;
if (n >= 2 && markerOffsets[edge.arrowTypeEnd]) {
const offsetValue = markerOffsets[edge.arrowTypeEnd];
const point1 = points[n - 1];
const point2 = points[n - 2];
const { angle } = calculateDeltaAndAngle(point2, point1);
const offsetX = offsetValue * Math.cos(angle);
const offsetY = offsetValue * Math.sin(angle);
newPoints[n - 1].x = point1.x - offsetX;
newPoints[n - 1].y = point1.y - offsetY;
}
return newPoints;
}
__name(applyMarkerOffsetsToPoints, "applyMarkerOffsetsToPoints");
var insertMarkers = __name((elem, markerArray, type, id) => {
markerArray.forEach((markerName) => {
markers[markerName](elem, type, id);
});
}, "insertMarkers");
var extension = __name((elem, type, id) => {
log.trace("Making markers for ", id);
elem.append("defs").append("marker").attr("id", id + "_" + type + "-extensionStart").attr("class", "marker extension " + type).attr("refX", 18).attr("refY", 7).attr("markerWidth", 190).attr("markerHeight", 240).attr("orient", "auto").append("path").attr("d", "M 1,7 L18,13 V 1 Z");
elem.append("defs").append("marker").attr("id", id + "_" + type + "-extensionEnd").attr("class", "marker extension " + type).attr("refX", 1).attr("refY", 7).attr("markerWidth", 20).attr("markerHeight", 28).attr("orient", "auto").append("path").attr("d", "M 1,1 V 13 L18,7 Z");
}, "extension");
var composition = __name((elem, type, id) => {
elem.append("defs").append("marker").attr("id", id + "_" + type + "-compositionStart").attr("class", "marker composition " + type).attr("refX", 18).attr("refY", 7).attr("markerWidth", 190).attr("markerHeight", 240).attr("orient", "auto").append("path").attr("d", "M 18,7 L9,13 L1,7 L9,1 Z");
elem.append("defs").append("marker").attr("id", id + "_" + type + "-compositionEnd").attr("class", "marker composition " + type).attr("refX", 1).attr("refY", 7).attr("markerWidth", 20).attr("markerHeight", 28).attr("orient", "auto").append("path").attr("d", "M 18,7 L9,13 L1,7 L9,1 Z");
}, "composition");
var aggregation = __name((elem, type, id) => {
elem.append("defs").append("marker").attr("id", id + "_" + type + "-aggregationStart").attr("class", "marker aggregation " + type).attr("refX", 18).attr("refY", 7).attr("markerWidth", 190).attr("markerHeight", 240).attr("orient", "auto").append("path").attr("d", "M 18,7 L9,13 L1,7 L9,1 Z");
elem.append("defs").append("marker").attr("id", id + "_" + type + "-aggregationEnd").attr("class", "marker aggregation " + type).attr("refX", 1).attr("refY", 7).attr("markerWidth", 20).attr("markerHeight", 28).attr("orient", "auto").append("path").attr("d", "M 18,7 L9,13 L1,7 L9,1 Z");
}, "aggregation");
var dependency = __name((elem, type, id) => {
elem.append("defs").append("marker").attr("id", id + "_" + type + "-dependencyStart").attr("class", "marker dependency " + type).attr("refX", 6).attr("refY", 7).attr("markerWidth", 190).attr("markerHeight", 240).attr("orient", "auto").append("path").attr("d", "M 5,7 L9,13 L1,7 L9,1 Z");
elem.append("defs").append("marker").attr("id", id + "_" + type + "-dependencyEnd").attr("class", "marker dependency " + type).attr("refX", 13).attr("refY", 7).attr("markerWidth", 20).attr("markerHeight", 28).attr("orient", "auto").append("path").attr("d", "M 18,7 L9,13 L14,7 L9,1 Z");
}, "dependency");
var lollipop = __name((elem, type, id) => {
elem.append("defs").append("marker").attr("id", id + "_" + type + "-lollipopStart").attr("class", "marker lollipop " + type).attr("refX", 13).attr("refY", 7).attr("markerWidth", 190).attr("markerHeight", 240).attr("orient", "auto").append("circle").attr("stroke", "black").attr("fill", "transparent").attr("cx", 7).attr("cy", 7).attr("r", 6);
elem.append("defs").append("marker").attr("id", id + "_" + type + "-lollipopEnd").attr("class", "marker lollipop " + type).attr("refX", 1).attr("refY", 7).attr("markerWidth", 190).attr("markerHeight", 240).attr("orient", "auto").append("circle").attr("stroke", "black").attr("fill", "transparent").attr("cx", 7).attr("cy", 7).attr("r", 6);
}, "lollipop");
var point = __name((elem, type, id) => {
elem.append("marker").attr("id", id + "_" + type + "-pointEnd").attr("class", "marker " + type).attr("viewBox", "0 0 10 10").attr("refX", 5).attr("refY", 5).attr("markerUnits", "userSpaceOnUse").attr("markerWidth", 8).attr("markerHeight", 8).attr("orient", "auto").append("path").attr("d", "M 0 0 L 10 5 L 0 10 z").attr("class", "arrowMarkerPath").style("stroke-width", 1).style("stroke-dasharray", "1,0");
elem.append("marker").attr("id", id + "_" + type + "-pointStart").attr("class", "marker " + type).attr("viewBox", "0 0 10 10").attr("refX", 4.5).attr("refY", 5).attr("markerUnits", "userSpaceOnUse").attr("markerWidth", 8).attr("markerHeight", 8).attr("orient", "auto").append("path").attr("d", "M 0 5 L 10 10 L 10 0 z").attr("class", "arrowMarkerPath").style("stroke-width", 1).style("stroke-dasharray", "1,0");
}, "point");
var circle = __name((elem, type, id) => {
elem.append("marker").attr("id", id + "_" + type + "-circleEnd").attr("class", "marker " + type).attr("viewBox", "0 0 10 10").attr("refX", 11).attr("refY", 5).attr("markerUnits", "userSpaceOnUse").attr("markerWidth", 11).attr("markerHeight", 11).attr("orient", "auto").append("circle").attr("cx", "5").attr("cy", "5").attr("r", "5").attr("class", "arrowMarkerPath").style("stroke-width", 1).style("stroke-dasharray", "1,0");
elem.append("marker").attr("id", id + "_" + type + "-circleStart").attr("class", "marker " + type).attr("viewBox", "0 0 10 10").attr("refX", -1).attr("refY", 5).attr("markerUnits", "userSpaceOnUse").attr("markerWidth", 11).attr("markerHeight", 11).attr("orient", "auto").append("circle").attr("cx", "5").attr("cy", "5").attr("r", "5").attr("class", "arrowMarkerPath").style("stroke-width", 1).style("stroke-dasharray", "1,0");
}, "circle");
var cross = __name((elem, type, id) => {
elem.append("marker").attr("id", id + "_" + type + "-crossEnd").attr("class", "marker cross " + type).attr("viewBox", "0 0 11 11").attr("refX", 12).attr("refY", 5.2).attr("markerUnits", "userSpaceOnUse").attr("markerWidth", 11).attr("markerHeight", 11).attr("orient", "auto").append("path").attr("d", "M 1,1 l 9,9 M 10,1 l -9,9").attr("class", "arrowMarkerPath").style("stroke-width", 2).style("stroke-dasharray", "1,0");
elem.append("marker").attr("id", id + "_" + type + "-crossStart").attr("class", "marker cross " + type).attr("viewBox", "0 0 11 11").attr("refX", -1).attr("refY", 5.2).attr("markerUnits", "userSpaceOnUse").attr("markerWidth", 11).attr("markerHeight", 11).attr("orient", "auto").append("path").attr("d", "M 1,1 l 9,9 M 10,1 l -9,9").attr("class", "arrowMarkerPath").style("stroke-width", 2).style("stroke-dasharray", "1,0");
}, "cross");
var barb = __name((elem, type, id) => {
elem.append("defs").append("marker").attr("id", id + "_" + type + "-barbEnd").attr("refX", 19).attr("refY", 7).attr("markerWidth", 20).attr("markerHeight", 14).attr("markerUnits", "userSpaceOnUse").attr("orient", "auto").append("path").attr("d", "M 19,7 L9,13 L14,7 L9,1 Z");
}, "barb");
var only_one = __name((elem, type, id) => {
elem.append("defs").append("marker").attr("id", id + "_" + type + "-onlyOneStart").attr("class", "marker onlyOne " + type).attr("refX", 0).attr("refY", 9).attr("markerWidth", 18).attr("markerHeight", 18).attr("orient", "auto").append("path").attr("d", "M9,0 L9,18 M15,0 L15,18");
elem.append("defs").append("marker").attr("id", id + "_" + type + "-onlyOneEnd").attr("class", "marker onlyOne " + type).attr("refX", 18).attr("refY", 9).attr("markerWidth", 18).attr("markerHeight", 18).attr("orient", "auto").append("path").attr("d", "M3,0 L3,18 M9,0 L9,18");
}, "only_one");
var zero_or_one = __name((elem, type, id) => {
const startMarker = elem.append("defs").append("marker").attr("id", id + "_" + type + "-zeroOrOneStart").attr("class", "marker zeroOrOne " + type).attr("refX", 0).attr("refY", 9).attr("markerWidth", 30).attr("markerHeight", 18).attr("orient", "auto");
startMarker.append("circle").attr("fill", "white").attr("cx", 21).attr("cy", 9).attr("r", 6);
startMarker.append("path").attr("d", "M9,0 L9,18");
const endMarker = elem.append("defs").append("marker").attr("id", id + "_" + type + "-zeroOrOneEnd").attr("class", "marker zeroOrOne " + type).attr("refX", 30).attr("refY", 9).attr("markerWidth", 30).attr("markerHeight", 18).attr("orient", "auto");
endMarker.append("circle").attr("fill", "white").attr("cx", 9).attr("cy", 9).attr("r", 6);
endMarker.append("path").attr("d", "M21,0 L21,18");
}, "zero_or_one");
var one_or_more = __name((elem, type, id) => {
elem.append("defs").append("marker").attr("id", id + "_" + type + "-oneOrMoreStart").attr("class", "marker oneOrMore " + type).attr("refX", 18).attr("refY", 18).attr("markerWidth", 45).attr("markerHeight", 36).attr("orient", "auto").append("path").attr("d", "M0,18 Q 18,0 36,18 Q 18,36 0,18 M42,9 L42,27");
elem.append("defs").append("marker").attr("id", id + "_" + type + "-oneOrMoreEnd").attr("class", "marker oneOrMore " + type).attr("refX", 27).attr("refY", 18).attr("markerWidth", 45).attr("markerHeight", 36).attr("orient", "auto").append("path").attr("d", "M3,9 L3,27 M9,18 Q27,0 45,18 Q27,36 9,18");
}, "one_or_more");
var zero_or_more = __name((elem, type, id) => {
const startMarker = elem.append("defs").append("marker").attr("id", id + "_" + type + "-zeroOrMoreStart").attr("class", "marker zeroOrMore " + type).attr("refX", 18).attr("refY", 18).attr("markerWidth", 57).attr("markerHeight", 36).attr("orient", "auto");
startMarker.append("circle").attr("fill", "white").attr("cx", 48).attr("cy", 18).attr("r", 6);
startMarker.append("path").attr("d", "M0,18 Q18,0 36,18 Q18,36 0,18");
const endMarker = elem.append("defs").append("marker").attr("id", id + "_" + type + "-zeroOrMoreEnd").attr("class", "marker zeroOrMore " + type).attr("refX", 39).attr("refY", 18).attr("markerWidth", 57).attr("markerHeight", 36).attr("orient", "auto");
endMarker.append("circle").attr("fill", "white").attr("cx", 9).attr("cy", 18).attr("r", 6);
endMarker.append("path").attr("d", "M21,18 Q39,0 57,18 Q39,36 21,18");
}, "zero_or_more");
var requirement_arrow = __name((elem, type, id) => {
elem.append("defs").append("marker").attr("id", id + "_" + type + "-requirement_arrowEnd").attr("refX", 20).attr("refY", 10).attr("markerWidth", 20).attr("markerHeight", 20).attr("orient", "auto").append("path").attr(
"d",
`M0,0
L20,10
M20,10
L0,20`
);
}, "requirement_arrow");
var requirement_contains = __name((elem, type, id) => {
const containsNode = elem.append("defs").append("marker").attr("id", id + "_" + type + "-requirement_containsStart").attr("refX", 0).attr("refY", 10).attr("markerWidth", 20).attr("markerHeight", 20).attr("orient", "auto").append("g");
containsNode.append("circle").attr("cx", 10).attr("cy", 10).attr("r", 9).attr("fill", "none");
containsNode.append("line").attr("x1", 1).attr("x2", 19).attr("y1", 10).attr("y2", 10);
containsNode.append("line").attr("y1", 1).attr("y2", 19).attr("x1", 10).attr("x2", 10);
}, "requirement_contains");
var markers = {
extension,
composition,
aggregation,
dependency,
lollipop,
point,
circle,
cross,
barb,
only_one,
zero_or_one,
one_or_more,
zero_or_more,
requirement_arrow,
requirement_contains
};
var markers_default = insertMarkers;
export {
clear,
insertEdgeLabel,
positionEdgeLabel,
insertEdge,
markers_default
};
//# sourceMappingURL=chunk-HICR2YSH.js.map

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,25 @@
import {
__name
} from "./chunk-I65GBZ6F.js";
// node_modules/mermaid/dist/chunks/mermaid.core/chunk-FMBD7UC4.mjs
var getIconStyles = __name(() => `
/* Font Awesome icon styling - consolidated */
.label-icon {
display: inline-block;
height: 1em;
overflow: visible;
vertical-align: -0.125em;
}
.node .label-icon path {
fill: currentColor;
stroke: revert;
stroke-width: revert;
}
`, "getIconStyles");
export {
getIconStyles
};
//# sourceMappingURL=chunk-I4QIIVJ7.js.map

View File

@ -0,0 +1,7 @@
{
"version": 3,
"sources": ["../../../../../../node_modules/mermaid/dist/chunks/mermaid.core/chunk-FMBD7UC4.mjs"],
"sourcesContent": ["import {\n __name\n} from \"./chunk-AGHRB4JF.mjs\";\n\n// src/diagrams/globalStyles.ts\nvar getIconStyles = /* @__PURE__ */ __name(() => `\n /* Font Awesome icon styling - consolidated */\n .label-icon {\n display: inline-block;\n height: 1em;\n overflow: visible;\n vertical-align: -0.125em;\n }\n \n .node .label-icon path {\n fill: currentColor;\n stroke: revert;\n stroke-width: revert;\n }\n`, \"getIconStyles\");\n\nexport {\n getIconStyles\n};\n"],
"mappings": ";;;;;AAKA,IAAI,gBAAgC,OAAO,MAAM;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAc9C,eAAe;",
"names": []
}

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,34 @@
import {
configureSvgSize
} from "./chunk-BFCVI5XI.js";
import {
__name,
log
} from "./chunk-I65GBZ6F.js";
// node_modules/mermaid/dist/chunks/mermaid.core/chunk-QN33PNHL.mjs
var setupViewPortForSVG = __name((svg, padding, cssDiagram, useMaxWidth) => {
svg.attr("class", cssDiagram);
const { width, height, x, y } = calculateDimensionsWithPadding(svg, padding);
configureSvgSize(svg, height, width, useMaxWidth);
const viewBox = createViewBox(x, y, width, height, padding);
svg.attr("viewBox", viewBox);
log.debug(`viewBox configured: ${viewBox} with padding: ${padding}`);
}, "setupViewPortForSVG");
var calculateDimensionsWithPadding = __name((svg, padding) => {
const bounds = svg.node()?.getBBox() || { width: 0, height: 0, x: 0, y: 0 };
return {
width: bounds.width + padding * 2,
height: bounds.height + padding * 2,
x: bounds.x,
y: bounds.y
};
}, "calculateDimensionsWithPadding");
var createViewBox = __name((x, y, width, height, padding) => {
return `${x - padding} ${y - padding} ${width} ${height}`;
}, "createViewBox");
export {
setupViewPortForSVG
};
//# sourceMappingURL=chunk-LHH5RO5K.js.map

View File

@ -0,0 +1,7 @@
{
"version": 3,
"sources": ["../../../../../../node_modules/mermaid/dist/chunks/mermaid.core/chunk-QN33PNHL.mjs"],
"sourcesContent": ["import {\n configureSvgSize\n} from \"./chunk-ABZYJK2D.mjs\";\nimport {\n __name,\n log\n} from \"./chunk-AGHRB4JF.mjs\";\n\n// src/rendering-util/setupViewPortForSVG.ts\nvar setupViewPortForSVG = /* @__PURE__ */ __name((svg, padding, cssDiagram, useMaxWidth) => {\n svg.attr(\"class\", cssDiagram);\n const { width, height, x, y } = calculateDimensionsWithPadding(svg, padding);\n configureSvgSize(svg, height, width, useMaxWidth);\n const viewBox = createViewBox(x, y, width, height, padding);\n svg.attr(\"viewBox\", viewBox);\n log.debug(`viewBox configured: ${viewBox} with padding: ${padding}`);\n}, \"setupViewPortForSVG\");\nvar calculateDimensionsWithPadding = /* @__PURE__ */ __name((svg, padding) => {\n const bounds = svg.node()?.getBBox() || { width: 0, height: 0, x: 0, y: 0 };\n return {\n width: bounds.width + padding * 2,\n height: bounds.height + padding * 2,\n x: bounds.x,\n y: bounds.y\n };\n}, \"calculateDimensionsWithPadding\");\nvar createViewBox = /* @__PURE__ */ __name((x, y, width, height, padding) => {\n return `${x - padding} ${y - padding} ${width} ${height}`;\n}, \"createViewBox\");\n\nexport {\n setupViewPortForSVG\n};\n"],
"mappings": ";;;;;;;;;AASA,IAAI,sBAAsC,OAAO,CAAC,KAAK,SAAS,YAAY,gBAAgB;AAC1F,MAAI,KAAK,SAAS,UAAU;AAC5B,QAAM,EAAE,OAAO,QAAQ,GAAG,EAAE,IAAI,+BAA+B,KAAK,OAAO;AAC3E,mBAAiB,KAAK,QAAQ,OAAO,WAAW;AAChD,QAAM,UAAU,cAAc,GAAG,GAAG,OAAO,QAAQ,OAAO;AAC1D,MAAI,KAAK,WAAW,OAAO;AAC3B,MAAI,MAAM,uBAAuB,OAAO,kBAAkB,OAAO,EAAE;AACrE,GAAG,qBAAqB;AACxB,IAAI,iCAAiD,OAAO,CAAC,KAAK,YAAY;AAC5E,QAAM,SAAS,IAAI,KAAK,GAAG,QAAQ,KAAK,EAAE,OAAO,GAAG,QAAQ,GAAG,GAAG,GAAG,GAAG,EAAE;AAC1E,SAAO;AAAA,IACL,OAAO,OAAO,QAAQ,UAAU;AAAA,IAChC,QAAQ,OAAO,SAAS,UAAU;AAAA,IAClC,GAAG,OAAO;AAAA,IACV,GAAG,OAAO;AAAA,EACZ;AACF,GAAG,gCAAgC;AACnC,IAAI,gBAAgC,OAAO,CAAC,GAAG,GAAG,OAAO,QAAQ,YAAY;AAC3E,SAAO,GAAG,IAAI,OAAO,IAAI,IAAI,OAAO,IAAI,KAAK,IAAI,MAAM;AACzD,GAAG,eAAe;",
"names": []
}

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,439 @@
import {
filter_default,
forEach_default,
isUndefined_default,
keys_default,
reduce_default,
union_default,
values_default
} from "./chunk-6SIVX7OU.js";
import {
isEmpty_default
} from "./chunk-NGEE2U2J.js";
import {
constant_default,
isFunction_default
} from "./chunk-M5X7JH4I.js";
// node_modules/dagre-d3-es/src/graphlib/graph.js
var DEFAULT_EDGE_NAME = "\0";
var GRAPH_NODE = "\0";
var EDGE_KEY_DELIM = "";
var Graph = class {
constructor(opts = {}) {
this._isDirected = Object.prototype.hasOwnProperty.call(opts, "directed") ? opts.directed : true;
this._isMultigraph = Object.prototype.hasOwnProperty.call(opts, "multigraph") ? opts.multigraph : false;
this._isCompound = Object.prototype.hasOwnProperty.call(opts, "compound") ? opts.compound : false;
this._label = void 0;
this._defaultNodeLabelFn = constant_default(void 0);
this._defaultEdgeLabelFn = constant_default(void 0);
this._nodes = {};
if (this._isCompound) {
this._parent = {};
this._children = {};
this._children[GRAPH_NODE] = {};
}
this._in = {};
this._preds = {};
this._out = {};
this._sucs = {};
this._edgeObjs = {};
this._edgeLabels = {};
}
/* === Graph functions ========= */
isDirected() {
return this._isDirected;
}
isMultigraph() {
return this._isMultigraph;
}
isCompound() {
return this._isCompound;
}
setGraph(label) {
this._label = label;
return this;
}
graph() {
return this._label;
}
/* === Node functions ========== */
setDefaultNodeLabel(newDefault) {
if (!isFunction_default(newDefault)) {
newDefault = constant_default(newDefault);
}
this._defaultNodeLabelFn = newDefault;
return this;
}
nodeCount() {
return this._nodeCount;
}
nodes() {
return keys_default(this._nodes);
}
sources() {
var self = this;
return filter_default(this.nodes(), function(v) {
return isEmpty_default(self._in[v]);
});
}
sinks() {
var self = this;
return filter_default(this.nodes(), function(v) {
return isEmpty_default(self._out[v]);
});
}
setNodes(vs, value) {
var args = arguments;
var self = this;
forEach_default(vs, function(v) {
if (args.length > 1) {
self.setNode(v, value);
} else {
self.setNode(v);
}
});
return this;
}
setNode(v, value) {
if (Object.prototype.hasOwnProperty.call(this._nodes, v)) {
if (arguments.length > 1) {
this._nodes[v] = value;
}
return this;
}
this._nodes[v] = arguments.length > 1 ? value : this._defaultNodeLabelFn(v);
if (this._isCompound) {
this._parent[v] = GRAPH_NODE;
this._children[v] = {};
this._children[GRAPH_NODE][v] = true;
}
this._in[v] = {};
this._preds[v] = {};
this._out[v] = {};
this._sucs[v] = {};
++this._nodeCount;
return this;
}
node(v) {
return this._nodes[v];
}
hasNode(v) {
return Object.prototype.hasOwnProperty.call(this._nodes, v);
}
removeNode(v) {
if (Object.prototype.hasOwnProperty.call(this._nodes, v)) {
var removeEdge = (e) => this.removeEdge(this._edgeObjs[e]);
delete this._nodes[v];
if (this._isCompound) {
this._removeFromParentsChildList(v);
delete this._parent[v];
forEach_default(this.children(v), (child) => {
this.setParent(child);
});
delete this._children[v];
}
forEach_default(keys_default(this._in[v]), removeEdge);
delete this._in[v];
delete this._preds[v];
forEach_default(keys_default(this._out[v]), removeEdge);
delete this._out[v];
delete this._sucs[v];
--this._nodeCount;
}
return this;
}
setParent(v, parent) {
if (!this._isCompound) {
throw new Error("Cannot set parent in a non-compound graph");
}
if (isUndefined_default(parent)) {
parent = GRAPH_NODE;
} else {
parent += "";
for (var ancestor = parent; !isUndefined_default(ancestor); ancestor = this.parent(ancestor)) {
if (ancestor === v) {
throw new Error("Setting " + parent + " as parent of " + v + " would create a cycle");
}
}
this.setNode(parent);
}
this.setNode(v);
this._removeFromParentsChildList(v);
this._parent[v] = parent;
this._children[parent][v] = true;
return this;
}
_removeFromParentsChildList(v) {
delete this._children[this._parent[v]][v];
}
parent(v) {
if (this._isCompound) {
var parent = this._parent[v];
if (parent !== GRAPH_NODE) {
return parent;
}
}
}
children(v) {
if (isUndefined_default(v)) {
v = GRAPH_NODE;
}
if (this._isCompound) {
var children = this._children[v];
if (children) {
return keys_default(children);
}
} else if (v === GRAPH_NODE) {
return this.nodes();
} else if (this.hasNode(v)) {
return [];
}
}
predecessors(v) {
var predsV = this._preds[v];
if (predsV) {
return keys_default(predsV);
}
}
successors(v) {
var sucsV = this._sucs[v];
if (sucsV) {
return keys_default(sucsV);
}
}
neighbors(v) {
var preds = this.predecessors(v);
if (preds) {
return union_default(preds, this.successors(v));
}
}
isLeaf(v) {
var neighbors;
if (this.isDirected()) {
neighbors = this.successors(v);
} else {
neighbors = this.neighbors(v);
}
return neighbors.length === 0;
}
filterNodes(filter) {
var copy = new this.constructor({
directed: this._isDirected,
multigraph: this._isMultigraph,
compound: this._isCompound
});
copy.setGraph(this.graph());
var self = this;
forEach_default(this._nodes, function(value, v) {
if (filter(v)) {
copy.setNode(v, value);
}
});
forEach_default(this._edgeObjs, function(e) {
if (copy.hasNode(e.v) && copy.hasNode(e.w)) {
copy.setEdge(e, self.edge(e));
}
});
var parents = {};
function findParent(v) {
var parent = self.parent(v);
if (parent === void 0 || copy.hasNode(parent)) {
parents[v] = parent;
return parent;
} else if (parent in parents) {
return parents[parent];
} else {
return findParent(parent);
}
}
if (this._isCompound) {
forEach_default(copy.nodes(), function(v) {
copy.setParent(v, findParent(v));
});
}
return copy;
}
/* === Edge functions ========== */
setDefaultEdgeLabel(newDefault) {
if (!isFunction_default(newDefault)) {
newDefault = constant_default(newDefault);
}
this._defaultEdgeLabelFn = newDefault;
return this;
}
edgeCount() {
return this._edgeCount;
}
edges() {
return values_default(this._edgeObjs);
}
setPath(vs, value) {
var self = this;
var args = arguments;
reduce_default(vs, function(v, w) {
if (args.length > 1) {
self.setEdge(v, w, value);
} else {
self.setEdge(v, w);
}
return w;
});
return this;
}
/*
* setEdge(v, w, [value, [name]])
* setEdge({ v, w, [name] }, [value])
*/
setEdge() {
var v, w, name, value;
var valueSpecified = false;
var arg0 = arguments[0];
if (typeof arg0 === "object" && arg0 !== null && "v" in arg0) {
v = arg0.v;
w = arg0.w;
name = arg0.name;
if (arguments.length === 2) {
value = arguments[1];
valueSpecified = true;
}
} else {
v = arg0;
w = arguments[1];
name = arguments[3];
if (arguments.length > 2) {
value = arguments[2];
valueSpecified = true;
}
}
v = "" + v;
w = "" + w;
if (!isUndefined_default(name)) {
name = "" + name;
}
var e = edgeArgsToId(this._isDirected, v, w, name);
if (Object.prototype.hasOwnProperty.call(this._edgeLabels, e)) {
if (valueSpecified) {
this._edgeLabels[e] = value;
}
return this;
}
if (!isUndefined_default(name) && !this._isMultigraph) {
throw new Error("Cannot set a named edge when isMultigraph = false");
}
this.setNode(v);
this.setNode(w);
this._edgeLabels[e] = valueSpecified ? value : this._defaultEdgeLabelFn(v, w, name);
var edgeObj = edgeArgsToObj(this._isDirected, v, w, name);
v = edgeObj.v;
w = edgeObj.w;
Object.freeze(edgeObj);
this._edgeObjs[e] = edgeObj;
incrementOrInitEntry(this._preds[w], v);
incrementOrInitEntry(this._sucs[v], w);
this._in[w][e] = edgeObj;
this._out[v][e] = edgeObj;
this._edgeCount++;
return this;
}
edge(v, w, name) {
var e = arguments.length === 1 ? edgeObjToId(this._isDirected, arguments[0]) : edgeArgsToId(this._isDirected, v, w, name);
return this._edgeLabels[e];
}
hasEdge(v, w, name) {
var e = arguments.length === 1 ? edgeObjToId(this._isDirected, arguments[0]) : edgeArgsToId(this._isDirected, v, w, name);
return Object.prototype.hasOwnProperty.call(this._edgeLabels, e);
}
removeEdge(v, w, name) {
var e = arguments.length === 1 ? edgeObjToId(this._isDirected, arguments[0]) : edgeArgsToId(this._isDirected, v, w, name);
var edge = this._edgeObjs[e];
if (edge) {
v = edge.v;
w = edge.w;
delete this._edgeLabels[e];
delete this._edgeObjs[e];
decrementOrRemoveEntry(this._preds[w], v);
decrementOrRemoveEntry(this._sucs[v], w);
delete this._in[w][e];
delete this._out[v][e];
this._edgeCount--;
}
return this;
}
inEdges(v, u) {
var inV = this._in[v];
if (inV) {
var edges = values_default(inV);
if (!u) {
return edges;
}
return filter_default(edges, function(edge) {
return edge.v === u;
});
}
}
outEdges(v, w) {
var outV = this._out[v];
if (outV) {
var edges = values_default(outV);
if (!w) {
return edges;
}
return filter_default(edges, function(edge) {
return edge.w === w;
});
}
}
nodeEdges(v, w) {
var inEdges = this.inEdges(v, w);
if (inEdges) {
return inEdges.concat(this.outEdges(v, w));
}
}
};
Graph.prototype._nodeCount = 0;
Graph.prototype._edgeCount = 0;
function incrementOrInitEntry(map, k) {
if (map[k]) {
map[k]++;
} else {
map[k] = 1;
}
}
function decrementOrRemoveEntry(map, k) {
if (!--map[k]) {
delete map[k];
}
}
function edgeArgsToId(isDirected, v_, w_, name) {
var v = "" + v_;
var w = "" + w_;
if (!isDirected && v > w) {
var tmp = v;
v = w;
w = tmp;
}
return v + EDGE_KEY_DELIM + w + EDGE_KEY_DELIM + (isUndefined_default(name) ? DEFAULT_EDGE_NAME : name);
}
function edgeArgsToObj(isDirected, v_, w_, name) {
var v = "" + v_;
var w = "" + w_;
if (!isDirected && v > w) {
var tmp = v;
v = w;
w = tmp;
}
var edgeObj = { v, w };
if (name) {
edgeObj.name = name;
}
return edgeObj;
}
function edgeObjToId(isDirected, edgeObj) {
return edgeArgsToId(isDirected, edgeObj.v, edgeObj.w, edgeObj.name);
}
export {
Graph
};
//# sourceMappingURL=chunk-MEGNL3BT.js.map

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,123 @@
import {
Map_default,
baseGetTag_default,
getNative_default,
isArguments_default,
isArrayLike_default,
isArray_default,
isBuffer_default,
isPrototype_default,
isTypedArray_default,
overArg_default,
root_default,
toSource_default
} from "./chunk-M5X7JH4I.js";
// node_modules/lodash-es/_nativeKeys.js
var nativeKeys = overArg_default(Object.keys, Object);
var nativeKeys_default = nativeKeys;
// node_modules/lodash-es/_baseKeys.js
var objectProto = Object.prototype;
var hasOwnProperty = objectProto.hasOwnProperty;
function baseKeys(object) {
if (!isPrototype_default(object)) {
return nativeKeys_default(object);
}
var result = [];
for (var key in Object(object)) {
if (hasOwnProperty.call(object, key) && key != "constructor") {
result.push(key);
}
}
return result;
}
var baseKeys_default = baseKeys;
// node_modules/lodash-es/_DataView.js
var DataView = getNative_default(root_default, "DataView");
var DataView_default = DataView;
// node_modules/lodash-es/_Promise.js
var Promise2 = getNative_default(root_default, "Promise");
var Promise_default = Promise2;
// node_modules/lodash-es/_Set.js
var Set = getNative_default(root_default, "Set");
var Set_default = Set;
// node_modules/lodash-es/_WeakMap.js
var WeakMap = getNative_default(root_default, "WeakMap");
var WeakMap_default = WeakMap;
// node_modules/lodash-es/_getTag.js
var mapTag = "[object Map]";
var objectTag = "[object Object]";
var promiseTag = "[object Promise]";
var setTag = "[object Set]";
var weakMapTag = "[object WeakMap]";
var dataViewTag = "[object DataView]";
var dataViewCtorString = toSource_default(DataView_default);
var mapCtorString = toSource_default(Map_default);
var promiseCtorString = toSource_default(Promise_default);
var setCtorString = toSource_default(Set_default);
var weakMapCtorString = toSource_default(WeakMap_default);
var getTag = baseGetTag_default;
if (DataView_default && getTag(new DataView_default(new ArrayBuffer(1))) != dataViewTag || Map_default && getTag(new Map_default()) != mapTag || Promise_default && getTag(Promise_default.resolve()) != promiseTag || Set_default && getTag(new Set_default()) != setTag || WeakMap_default && getTag(new WeakMap_default()) != weakMapTag) {
getTag = function(value) {
var result = baseGetTag_default(value), Ctor = result == objectTag ? value.constructor : void 0, ctorString = Ctor ? toSource_default(Ctor) : "";
if (ctorString) {
switch (ctorString) {
case dataViewCtorString:
return dataViewTag;
case mapCtorString:
return mapTag;
case promiseCtorString:
return promiseTag;
case setCtorString:
return setTag;
case weakMapCtorString:
return weakMapTag;
}
}
return result;
};
}
var getTag_default = getTag;
// node_modules/lodash-es/isEmpty.js
var mapTag2 = "[object Map]";
var setTag2 = "[object Set]";
var objectProto2 = Object.prototype;
var hasOwnProperty2 = objectProto2.hasOwnProperty;
function isEmpty(value) {
if (value == null) {
return true;
}
if (isArrayLike_default(value) && (isArray_default(value) || typeof value == "string" || typeof value.splice == "function" || isBuffer_default(value) || isTypedArray_default(value) || isArguments_default(value))) {
return !value.length;
}
var tag = getTag_default(value);
if (tag == mapTag2 || tag == setTag2) {
return !value.size;
}
if (isPrototype_default(value)) {
return !baseKeys_default(value).length;
}
for (var key in value) {
if (hasOwnProperty2.call(value, key)) {
return false;
}
}
return true;
}
var isEmpty_default = isEmpty;
export {
WeakMap_default,
baseKeys_default,
Set_default,
getTag_default,
isEmpty_default
};
//# sourceMappingURL=chunk-NGEE2U2J.js.map

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,59 @@
import {
AbstractMermaidTokenBuilder,
AbstractMermaidValueConverter,
ArchitectureGeneratedModule,
EmptyFileSystem,
MermaidGeneratedSharedModule,
__name,
createDefaultCoreModule,
createDefaultSharedCoreModule,
inject,
lib_exports
} from "./chunk-WHHJWK6B.js";
// node_modules/@mermaid-js/parser/dist/chunks/mermaid-parser.core/chunk-JEIROHC2.mjs
var _a;
var ArchitectureTokenBuilder = (_a = class extends AbstractMermaidTokenBuilder {
constructor() {
super(["architecture"]);
}
}, __name(_a, "ArchitectureTokenBuilder"), _a);
var _a2;
var ArchitectureValueConverter = (_a2 = class extends AbstractMermaidValueConverter {
runCustomConverter(rule, input, _cstNode) {
if (rule.name === "ARCH_ICON") {
return input.replace(/[()]/g, "").trim();
} else if (rule.name === "ARCH_TEXT_ICON") {
return input.replace(/["()]/g, "");
} else if (rule.name === "ARCH_TITLE") {
return input.replace(/[[\]]/g, "").trim();
}
return void 0;
}
}, __name(_a2, "ArchitectureValueConverter"), _a2);
var ArchitectureModule = {
parser: {
TokenBuilder: __name(() => new ArchitectureTokenBuilder(), "TokenBuilder"),
ValueConverter: __name(() => new ArchitectureValueConverter(), "ValueConverter")
}
};
function createArchitectureServices(context = EmptyFileSystem) {
const shared = inject(
createDefaultSharedCoreModule(context),
MermaidGeneratedSharedModule
);
const Architecture = inject(
createDefaultCoreModule({ shared }),
ArchitectureGeneratedModule,
ArchitectureModule
);
shared.ServiceRegistry.register(Architecture);
return { shared, Architecture };
}
__name(createArchitectureServices, "createArchitectureServices");
export {
ArchitectureModule,
createArchitectureServices
};
//# sourceMappingURL=chunk-NYZY7JGI.js.map

View File

@ -0,0 +1,7 @@
{
"version": 3,
"sources": ["../../../../../../node_modules/@mermaid-js/parser/dist/chunks/mermaid-parser.core/chunk-JEIROHC2.mjs"],
"sourcesContent": ["import {\n AbstractMermaidTokenBuilder,\n AbstractMermaidValueConverter,\n ArchitectureGeneratedModule,\n MermaidGeneratedSharedModule,\n __name\n} from \"./chunk-4KMFLZZN.mjs\";\n\n// src/language/architecture/module.ts\nimport {\n EmptyFileSystem,\n createDefaultCoreModule,\n createDefaultSharedCoreModule,\n inject\n} from \"langium\";\n\n// src/language/architecture/tokenBuilder.ts\nvar ArchitectureTokenBuilder = class extends AbstractMermaidTokenBuilder {\n static {\n __name(this, \"ArchitectureTokenBuilder\");\n }\n constructor() {\n super([\"architecture\"]);\n }\n};\n\n// src/language/architecture/valueConverter.ts\nvar ArchitectureValueConverter = class extends AbstractMermaidValueConverter {\n static {\n __name(this, \"ArchitectureValueConverter\");\n }\n runCustomConverter(rule, input, _cstNode) {\n if (rule.name === \"ARCH_ICON\") {\n return input.replace(/[()]/g, \"\").trim();\n } else if (rule.name === \"ARCH_TEXT_ICON\") {\n return input.replace(/[\"()]/g, \"\");\n } else if (rule.name === \"ARCH_TITLE\") {\n return input.replace(/[[\\]]/g, \"\").trim();\n }\n return void 0;\n }\n};\n\n// src/language/architecture/module.ts\nvar ArchitectureModule = {\n parser: {\n TokenBuilder: /* @__PURE__ */ __name(() => new ArchitectureTokenBuilder(), \"TokenBuilder\"),\n ValueConverter: /* @__PURE__ */ __name(() => new ArchitectureValueConverter(), \"ValueConverter\")\n }\n};\nfunction createArchitectureServices(context = EmptyFileSystem) {\n const shared = inject(\n createDefaultSharedCoreModule(context),\n MermaidGeneratedSharedModule\n );\n const Architecture = inject(\n createDefaultCoreModule({ shared }),\n ArchitectureGeneratedModule,\n ArchitectureModule\n );\n shared.ServiceRegistry.register(Architecture);\n return { shared, Architecture };\n}\n__name(createArchitectureServices, \"createArchitectureServices\");\n\nexport {\n ArchitectureModule,\n createArchitectureServices\n};\n"],
"mappings": ";;;;;;;;;;;;;;AAAA;AAiBA,IAAI,4BAA2B,mBAAc,4BAA4B;AAAA,EAIvE,cAAc;AACZ,UAAM,CAAC,cAAc,CAAC;AAAA,EACxB;AACF,GALI,OAAO,IAAM,0BAA0B,GAFZ;AAjB/B,IAAAA;AA2BA,IAAI,8BAA6BA,MAAA,cAAc,8BAA8B;AAAA,EAI3E,mBAAmB,MAAM,OAAO,UAAU;AACxC,QAAI,KAAK,SAAS,aAAa;AAC7B,aAAO,MAAM,QAAQ,SAAS,EAAE,EAAE,KAAK;AAAA,IACzC,WAAW,KAAK,SAAS,kBAAkB;AACzC,aAAO,MAAM,QAAQ,UAAU,EAAE;AAAA,IACnC,WAAW,KAAK,SAAS,cAAc;AACrC,aAAO,MAAM,QAAQ,UAAU,EAAE,EAAE,KAAK;AAAA,IAC1C;AACA,WAAO;AAAA,EACT;AACF,GAZI,OAAOA,KAAM,4BAA4B,GAFZA;AAiBjC,IAAI,qBAAqB;AAAA,EACvB,QAAQ;AAAA,IACN,cAA8B,OAAO,MAAM,IAAI,yBAAyB,GAAG,cAAc;AAAA,IACzF,gBAAgC,OAAO,MAAM,IAAI,2BAA2B,GAAG,gBAAgB;AAAA,EACjG;AACF;AACA,SAAS,2BAA2B,UAAU,iBAAiB;AAC7D,QAAM,SAAS;AAAA,IACb,8BAA8B,OAAO;AAAA,IACrC;AAAA,EACF;AACA,QAAM,eAAe;AAAA,IACnB,wBAAwB,EAAE,OAAO,CAAC;AAAA,IAClC;AAAA,IACA;AAAA,EACF;AACA,SAAO,gBAAgB,SAAS,YAAY;AAC5C,SAAO,EAAE,QAAQ,aAAa;AAChC;AACA,OAAO,4BAA4B,4BAA4B;",
"names": ["_a"]
}

View File

@ -0,0 +1,20 @@
import {
__name,
select_default
} from "./chunk-I65GBZ6F.js";
// node_modules/mermaid/dist/chunks/mermaid.core/chunk-55IACEB6.mjs
var getDiagramElement = __name((id, securityLevel) => {
let sandboxElement;
if (securityLevel === "sandbox") {
sandboxElement = select_default("#i" + id);
}
const root = securityLevel === "sandbox" ? select_default(sandboxElement.nodes()[0].contentDocument.body) : select_default("body");
const svg = root.select(`[id="${id}"]`);
return svg;
}, "getDiagramElement");
export {
getDiagramElement
};
//# sourceMappingURL=chunk-PLWNSIKB.js.map

View File

@ -0,0 +1,7 @@
{
"version": 3,
"sources": ["../../../../../../node_modules/mermaid/dist/chunks/mermaid.core/chunk-55IACEB6.mjs"],
"sourcesContent": ["import {\n __name\n} from \"./chunk-AGHRB4JF.mjs\";\n\n// src/rendering-util/insertElementsForSize.js\nimport { select } from \"d3\";\nvar getDiagramElement = /* @__PURE__ */ __name((id, securityLevel) => {\n let sandboxElement;\n if (securityLevel === \"sandbox\") {\n sandboxElement = select(\"#i\" + id);\n }\n const root = securityLevel === \"sandbox\" ? select(sandboxElement.nodes()[0].contentDocument.body) : select(\"body\");\n const svg = root.select(`[id=\"${id}\"]`);\n return svg;\n}, \"getDiagramElement\");\n\nexport {\n getDiagramElement\n};\n"],
"mappings": ";;;;;;AAMA,IAAI,oBAAoC,OAAO,CAAC,IAAI,kBAAkB;AACpE,MAAI;AACJ,MAAI,kBAAkB,WAAW;AAC/B,qBAAiB,eAAO,OAAO,EAAE;AAAA,EACnC;AACA,QAAM,OAAO,kBAAkB,YAAY,eAAO,eAAe,MAAM,EAAE,CAAC,EAAE,gBAAgB,IAAI,IAAI,eAAO,MAAM;AACjH,QAAM,MAAM,KAAK,OAAO,QAAQ,EAAE,IAAI;AACtC,SAAO;AACT,GAAG,mBAAmB;",
"names": []
}

View File

@ -0,0 +1,22 @@
import {
__name
} from "./chunk-I65GBZ6F.js";
// node_modules/mermaid/dist/chunks/mermaid.core/chunk-4BX2VUAB.mjs
function populateCommonDb(ast, db) {
if (ast.accDescr) {
db.setAccDescription?.(ast.accDescr);
}
if (ast.accTitle) {
db.setAccTitle?.(ast.accTitle);
}
if (ast.title) {
db.setDiagramTitle?.(ast.title);
}
}
__name(populateCommonDb, "populateCommonDb");
export {
populateCommonDb
};
//# sourceMappingURL=chunk-PNW5KFH4.js.map

View File

@ -0,0 +1,7 @@
{
"version": 3,
"sources": ["../../../../../../node_modules/mermaid/dist/chunks/mermaid.core/chunk-4BX2VUAB.mjs"],
"sourcesContent": ["import {\n __name\n} from \"./chunk-AGHRB4JF.mjs\";\n\n// src/diagrams/common/populateCommonDb.ts\nfunction populateCommonDb(ast, db) {\n if (ast.accDescr) {\n db.setAccDescription?.(ast.accDescr);\n }\n if (ast.accTitle) {\n db.setAccTitle?.(ast.accTitle);\n }\n if (ast.title) {\n db.setDiagramTitle?.(ast.title);\n }\n}\n__name(populateCommonDb, \"populateCommonDb\");\n\nexport {\n populateCommonDb\n};\n"],
"mappings": ";;;;;AAKA,SAAS,iBAAiB,KAAK,IAAI;AACjC,MAAI,IAAI,UAAU;AAChB,OAAG,oBAAoB,IAAI,QAAQ;AAAA,EACrC;AACA,MAAI,IAAI,UAAU;AAChB,OAAG,cAAc,IAAI,QAAQ;AAAA,EAC/B;AACA,MAAI,IAAI,OAAO;AACb,OAAG,kBAAkB,IAAI,KAAK;AAAA,EAChC;AACF;AACA,OAAO,kBAAkB,kBAAkB;",
"names": []
}

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,590 @@
import {
require_dist
} from "./chunk-CMK64ICG.js";
import {
assignWithDepth_default,
common_default,
detectType,
directiveRegex,
sanitizeDirective
} from "./chunk-BFCVI5XI.js";
import {
memoize_default,
merge_default
} from "./chunk-M5X7JH4I.js";
import {
__name,
basisClosed_default,
basisOpen_default,
basis_default,
bumpX,
bumpY,
bundle_default,
cardinalClosed_default,
cardinalOpen_default,
cardinal_default,
catmullRomClosed_default,
catmullRomOpen_default,
catmullRom_default,
linearClosed_default,
linear_default,
log,
monotoneX,
monotoneY,
natural_default,
select_default,
stepAfter,
stepBefore,
step_default
} from "./chunk-I65GBZ6F.js";
import {
__toESM
} from "./chunk-TKSB4YUA.js";
// node_modules/mermaid/dist/chunks/mermaid.core/chunk-S3R3BYOJ.mjs
var import_sanitize_url = __toESM(require_dist(), 1);
var ZERO_WIDTH_SPACE = "";
var d3CurveTypes = {
curveBasis: basis_default,
curveBasisClosed: basisClosed_default,
curveBasisOpen: basisOpen_default,
curveBumpX: bumpX,
curveBumpY: bumpY,
curveBundle: bundle_default,
curveCardinalClosed: cardinalClosed_default,
curveCardinalOpen: cardinalOpen_default,
curveCardinal: cardinal_default,
curveCatmullRomClosed: catmullRomClosed_default,
curveCatmullRomOpen: catmullRomOpen_default,
curveCatmullRom: catmullRom_default,
curveLinear: linear_default,
curveLinearClosed: linearClosed_default,
curveMonotoneX: monotoneX,
curveMonotoneY: monotoneY,
curveNatural: natural_default,
curveStep: step_default,
curveStepAfter: stepAfter,
curveStepBefore: stepBefore
};
var directiveWithoutOpen = /\s*(?:(\w+)(?=:):|(\w+))\s*(?:(\w+)|((?:(?!}%{2}).|\r?\n)*))?\s*(?:}%{2})?/gi;
var detectInit = __name(function(text, config) {
const inits = detectDirective(text, /(?:init\b)|(?:initialize\b)/);
let results = {};
if (Array.isArray(inits)) {
const args = inits.map((init) => init.args);
sanitizeDirective(args);
results = assignWithDepth_default(results, [...args]);
} else {
results = inits.args;
}
if (!results) {
return;
}
let type = detectType(text, config);
const prop = "config";
if (results[prop] !== void 0) {
if (type === "flowchart-v2") {
type = "flowchart";
}
results[type] = results[prop];
delete results[prop];
}
return results;
}, "detectInit");
var detectDirective = __name(function(text, type = null) {
try {
const commentWithoutDirectives = new RegExp(
`[%]{2}(?![{]${directiveWithoutOpen.source})(?=[}][%]{2}).*
`,
"ig"
);
text = text.trim().replace(commentWithoutDirectives, "").replace(/'/gm, '"');
log.debug(
`Detecting diagram directive${type !== null ? " type:" + type : ""} based on the text:${text}`
);
let match;
const result = [];
while ((match = directiveRegex.exec(text)) !== null) {
if (match.index === directiveRegex.lastIndex) {
directiveRegex.lastIndex++;
}
if (match && !type || type && match[1]?.match(type) || type && match[2]?.match(type)) {
const type2 = match[1] ? match[1] : match[2];
const args = match[3] ? match[3].trim() : match[4] ? JSON.parse(match[4].trim()) : null;
result.push({ type: type2, args });
}
}
if (result.length === 0) {
return { type: text, args: null };
}
return result.length === 1 ? result[0] : result;
} catch (error) {
log.error(
`ERROR: ${error.message} - Unable to parse directive type: '${type}' based on the text: '${text}'`
);
return { type: void 0, args: null };
}
}, "detectDirective");
var removeDirectives = __name(function(text) {
return text.replace(directiveRegex, "");
}, "removeDirectives");
var isSubstringInArray = __name(function(str, arr) {
for (const [i, element] of arr.entries()) {
if (element.match(str)) {
return i;
}
}
return -1;
}, "isSubstringInArray");
function interpolateToCurve(interpolate, defaultCurve) {
if (!interpolate) {
return defaultCurve;
}
const curveName = `curve${interpolate.charAt(0).toUpperCase() + interpolate.slice(1)}`;
return d3CurveTypes[curveName] ?? defaultCurve;
}
__name(interpolateToCurve, "interpolateToCurve");
function formatUrl(linkStr, config) {
const url = linkStr.trim();
if (!url) {
return void 0;
}
if (config.securityLevel !== "loose") {
return (0, import_sanitize_url.sanitizeUrl)(url);
}
return url;
}
__name(formatUrl, "formatUrl");
var runFunc = __name((functionName, ...params) => {
const arrPaths = functionName.split(".");
const len = arrPaths.length - 1;
const fnName = arrPaths[len];
let obj = window;
for (let i = 0; i < len; i++) {
obj = obj[arrPaths[i]];
if (!obj) {
log.error(`Function name: ${functionName} not found in window`);
return;
}
}
obj[fnName](...params);
}, "runFunc");
function distance(p1, p2) {
if (!p1 || !p2) {
return 0;
}
return Math.sqrt(Math.pow(p2.x - p1.x, 2) + Math.pow(p2.y - p1.y, 2));
}
__name(distance, "distance");
function traverseEdge(points) {
let prevPoint;
let totalDistance = 0;
points.forEach((point) => {
totalDistance += distance(point, prevPoint);
prevPoint = point;
});
const remainingDistance = totalDistance / 2;
return calculatePoint(points, remainingDistance);
}
__name(traverseEdge, "traverseEdge");
function calcLabelPosition(points) {
if (points.length === 1) {
return points[0];
}
return traverseEdge(points);
}
__name(calcLabelPosition, "calcLabelPosition");
var roundNumber = __name((num, precision = 2) => {
const factor = Math.pow(10, precision);
return Math.round(num * factor) / factor;
}, "roundNumber");
var calculatePoint = __name((points, distanceToTraverse) => {
let prevPoint = void 0;
let remainingDistance = distanceToTraverse;
for (const point of points) {
if (prevPoint) {
const vectorDistance = distance(point, prevPoint);
if (vectorDistance === 0) {
return prevPoint;
}
if (vectorDistance < remainingDistance) {
remainingDistance -= vectorDistance;
} else {
const distanceRatio = remainingDistance / vectorDistance;
if (distanceRatio <= 0) {
return prevPoint;
}
if (distanceRatio >= 1) {
return { x: point.x, y: point.y };
}
if (distanceRatio > 0 && distanceRatio < 1) {
return {
x: roundNumber((1 - distanceRatio) * prevPoint.x + distanceRatio * point.x, 5),
y: roundNumber((1 - distanceRatio) * prevPoint.y + distanceRatio * point.y, 5)
};
}
}
}
prevPoint = point;
}
throw new Error("Could not find a suitable point for the given distance");
}, "calculatePoint");
var calcCardinalityPosition = __name((isRelationTypePresent, points, initialPosition) => {
log.info(`our points ${JSON.stringify(points)}`);
if (points[0] !== initialPosition) {
points = points.reverse();
}
const distanceToCardinalityPoint = 25;
const center = calculatePoint(points, distanceToCardinalityPoint);
const d = isRelationTypePresent ? 10 : 5;
const angle = Math.atan2(points[0].y - center.y, points[0].x - center.x);
const cardinalityPosition = { x: 0, y: 0 };
cardinalityPosition.x = Math.sin(angle) * d + (points[0].x + center.x) / 2;
cardinalityPosition.y = -Math.cos(angle) * d + (points[0].y + center.y) / 2;
return cardinalityPosition;
}, "calcCardinalityPosition");
function calcTerminalLabelPosition(terminalMarkerSize, position, _points) {
const points = structuredClone(_points);
log.info("our points", points);
if (position !== "start_left" && position !== "start_right") {
points.reverse();
}
const distanceToCardinalityPoint = 25 + terminalMarkerSize;
const center = calculatePoint(points, distanceToCardinalityPoint);
const d = 10 + terminalMarkerSize * 0.5;
const angle = Math.atan2(points[0].y - center.y, points[0].x - center.x);
const cardinalityPosition = { x: 0, y: 0 };
if (position === "start_left") {
cardinalityPosition.x = Math.sin(angle + Math.PI) * d + (points[0].x + center.x) / 2;
cardinalityPosition.y = -Math.cos(angle + Math.PI) * d + (points[0].y + center.y) / 2;
} else if (position === "end_right") {
cardinalityPosition.x = Math.sin(angle - Math.PI) * d + (points[0].x + center.x) / 2 - 5;
cardinalityPosition.y = -Math.cos(angle - Math.PI) * d + (points[0].y + center.y) / 2 - 5;
} else if (position === "end_left") {
cardinalityPosition.x = Math.sin(angle) * d + (points[0].x + center.x) / 2 - 5;
cardinalityPosition.y = -Math.cos(angle) * d + (points[0].y + center.y) / 2 - 5;
} else {
cardinalityPosition.x = Math.sin(angle) * d + (points[0].x + center.x) / 2;
cardinalityPosition.y = -Math.cos(angle) * d + (points[0].y + center.y) / 2;
}
return cardinalityPosition;
}
__name(calcTerminalLabelPosition, "calcTerminalLabelPosition");
function getStylesFromArray(arr) {
let style = "";
let labelStyle = "";
for (const element of arr) {
if (element !== void 0) {
if (element.startsWith("color:") || element.startsWith("text-align:")) {
labelStyle = labelStyle + element + ";";
} else {
style = style + element + ";";
}
}
}
return { style, labelStyle };
}
__name(getStylesFromArray, "getStylesFromArray");
var cnt = 0;
var generateId = __name(() => {
cnt++;
return "id-" + Math.random().toString(36).substr(2, 12) + "-" + cnt;
}, "generateId");
function makeRandomHex(length) {
let result = "";
const characters = "0123456789abcdef";
const charactersLength = characters.length;
for (let i = 0; i < length; i++) {
result += characters.charAt(Math.floor(Math.random() * charactersLength));
}
return result;
}
__name(makeRandomHex, "makeRandomHex");
var random = __name((options) => {
return makeRandomHex(options.length);
}, "random");
var getTextObj = __name(function() {
return {
x: 0,
y: 0,
fill: void 0,
anchor: "start",
style: "#666",
width: 100,
height: 100,
textMargin: 0,
rx: 0,
ry: 0,
valign: void 0,
text: ""
};
}, "getTextObj");
var drawSimpleText = __name(function(elem, textData) {
const nText = textData.text.replace(common_default.lineBreakRegex, " ");
const [, _fontSizePx] = parseFontSize(textData.fontSize);
const textElem = elem.append("text");
textElem.attr("x", textData.x);
textElem.attr("y", textData.y);
textElem.style("text-anchor", textData.anchor);
textElem.style("font-family", textData.fontFamily);
textElem.style("font-size", _fontSizePx);
textElem.style("font-weight", textData.fontWeight);
textElem.attr("fill", textData.fill);
if (textData.class !== void 0) {
textElem.attr("class", textData.class);
}
const span = textElem.append("tspan");
span.attr("x", textData.x + textData.textMargin * 2);
span.attr("fill", textData.fill);
span.text(nText);
return textElem;
}, "drawSimpleText");
var wrapLabel = memoize_default(
(label, maxWidth, config) => {
if (!label) {
return label;
}
config = Object.assign(
{ fontSize: 12, fontWeight: 400, fontFamily: "Arial", joinWith: "<br/>" },
config
);
if (common_default.lineBreakRegex.test(label)) {
return label;
}
const words = label.split(" ").filter(Boolean);
const completedLines = [];
let nextLine = "";
words.forEach((word, index) => {
const wordLength = calculateTextWidth(`${word} `, config);
const nextLineLength = calculateTextWidth(nextLine, config);
if (wordLength > maxWidth) {
const { hyphenatedStrings, remainingWord } = breakString(word, maxWidth, "-", config);
completedLines.push(nextLine, ...hyphenatedStrings);
nextLine = remainingWord;
} else if (nextLineLength + wordLength >= maxWidth) {
completedLines.push(nextLine);
nextLine = word;
} else {
nextLine = [nextLine, word].filter(Boolean).join(" ");
}
const currentWord = index + 1;
const isLastWord = currentWord === words.length;
if (isLastWord) {
completedLines.push(nextLine);
}
});
return completedLines.filter((line) => line !== "").join(config.joinWith);
},
(label, maxWidth, config) => `${label}${maxWidth}${config.fontSize}${config.fontWeight}${config.fontFamily}${config.joinWith}`
);
var breakString = memoize_default(
(word, maxWidth, hyphenCharacter = "-", config) => {
config = Object.assign(
{ fontSize: 12, fontWeight: 400, fontFamily: "Arial", margin: 0 },
config
);
const characters = [...word];
const lines = [];
let currentLine = "";
characters.forEach((character, index) => {
const nextLine = `${currentLine}${character}`;
const lineWidth = calculateTextWidth(nextLine, config);
if (lineWidth >= maxWidth) {
const currentCharacter = index + 1;
const isLastLine = characters.length === currentCharacter;
const hyphenatedNextLine = `${nextLine}${hyphenCharacter}`;
lines.push(isLastLine ? nextLine : hyphenatedNextLine);
currentLine = "";
} else {
currentLine = nextLine;
}
});
return { hyphenatedStrings: lines, remainingWord: currentLine };
},
(word, maxWidth, hyphenCharacter = "-", config) => `${word}${maxWidth}${hyphenCharacter}${config.fontSize}${config.fontWeight}${config.fontFamily}`
);
function calculateTextHeight(text, config) {
return calculateTextDimensions(text, config).height;
}
__name(calculateTextHeight, "calculateTextHeight");
function calculateTextWidth(text, config) {
return calculateTextDimensions(text, config).width;
}
__name(calculateTextWidth, "calculateTextWidth");
var calculateTextDimensions = memoize_default(
(text, config) => {
const { fontSize = 12, fontFamily = "Arial", fontWeight = 400 } = config;
if (!text) {
return { width: 0, height: 0 };
}
const [, _fontSizePx] = parseFontSize(fontSize);
const fontFamilies = ["sans-serif", fontFamily];
const lines = text.split(common_default.lineBreakRegex);
const dims = [];
const body = select_default("body");
if (!body.remove) {
return { width: 0, height: 0, lineHeight: 0 };
}
const g = body.append("svg");
for (const fontFamily2 of fontFamilies) {
let cHeight = 0;
const dim = { width: 0, height: 0, lineHeight: 0 };
for (const line of lines) {
const textObj = getTextObj();
textObj.text = line || ZERO_WIDTH_SPACE;
const textElem = drawSimpleText(g, textObj).style("font-size", _fontSizePx).style("font-weight", fontWeight).style("font-family", fontFamily2);
const bBox = (textElem._groups || textElem)[0][0].getBBox();
if (bBox.width === 0 && bBox.height === 0) {
throw new Error("svg element not in render tree");
}
dim.width = Math.round(Math.max(dim.width, bBox.width));
cHeight = Math.round(bBox.height);
dim.height += cHeight;
dim.lineHeight = Math.round(Math.max(dim.lineHeight, cHeight));
}
dims.push(dim);
}
g.remove();
const index = isNaN(dims[1].height) || isNaN(dims[1].width) || isNaN(dims[1].lineHeight) || dims[0].height > dims[1].height && dims[0].width > dims[1].width && dims[0].lineHeight > dims[1].lineHeight ? 0 : 1;
return dims[index];
},
(text, config) => `${text}${config.fontSize}${config.fontWeight}${config.fontFamily}`
);
var _a;
var InitIDGenerator = (_a = class {
constructor(deterministic = false, seed) {
this.count = 0;
this.count = seed ? seed.length : 0;
this.next = deterministic ? () => this.count++ : () => Date.now();
}
}, __name(_a, "InitIDGenerator"), _a);
var decoder;
var entityDecode = __name(function(html) {
decoder = decoder || document.createElement("div");
html = escape(html).replace(/%26/g, "&").replace(/%23/g, "#").replace(/%3B/g, ";");
decoder.innerHTML = html;
return unescape(decoder.textContent);
}, "entityDecode");
function isDetailedError(error) {
return "str" in error;
}
__name(isDetailedError, "isDetailedError");
var insertTitle = __name((parent, cssClass, titleTopMargin, title) => {
if (!title) {
return;
}
const bounds = parent.node()?.getBBox();
if (!bounds) {
return;
}
parent.append("text").text(title).attr("text-anchor", "middle").attr("x", bounds.x + bounds.width / 2).attr("y", -titleTopMargin).attr("class", cssClass);
}, "insertTitle");
var parseFontSize = __name((fontSize) => {
if (typeof fontSize === "number") {
return [fontSize, fontSize + "px"];
}
const fontSizeNumber = parseInt(fontSize ?? "", 10);
if (Number.isNaN(fontSizeNumber)) {
return [void 0, void 0];
} else if (fontSize === String(fontSizeNumber)) {
return [fontSizeNumber, fontSize + "px"];
} else {
return [fontSizeNumber, fontSize];
}
}, "parseFontSize");
function cleanAndMerge(defaultData, data) {
return merge_default({}, defaultData, data);
}
__name(cleanAndMerge, "cleanAndMerge");
var utils_default = {
assignWithDepth: assignWithDepth_default,
wrapLabel,
calculateTextHeight,
calculateTextWidth,
calculateTextDimensions,
cleanAndMerge,
detectInit,
detectDirective,
isSubstringInArray,
interpolateToCurve,
calcLabelPosition,
calcCardinalityPosition,
calcTerminalLabelPosition,
formatUrl,
getStylesFromArray,
generateId,
random,
runFunc,
entityDecode,
insertTitle,
isLabelCoordinateInPath,
parseFontSize,
InitIDGenerator
};
var encodeEntities = __name(function(text) {
let txt = text;
txt = txt.replace(/style.*:\S*#.*;/g, function(s) {
return s.substring(0, s.length - 1);
});
txt = txt.replace(/classDef.*:\S*#.*;/g, function(s) {
return s.substring(0, s.length - 1);
});
txt = txt.replace(/#\w+;/g, function(s) {
const innerTxt = s.substring(1, s.length - 1);
const isInt = /^\+?\d+$/.test(innerTxt);
if (isInt) {
return "fl°°" + innerTxt + "¶ß";
} else {
return "fl°" + innerTxt + "¶ß";
}
});
return txt;
}, "encodeEntities");
var decodeEntities = __name(function(text) {
return text.replace(/fl°°/g, "&#").replace(/fl°/g, "&").replace(/¶ß/g, ";");
}, "decodeEntities");
var getEdgeId = __name((from, to, {
counter = 0,
prefix,
suffix
}, id) => {
if (id) {
return id;
}
return `${prefix ? `${prefix}_` : ""}${from}_${to}_${counter}${suffix ? `_${suffix}` : ""}`;
}, "getEdgeId");
function handleUndefinedAttr(attrValue) {
return attrValue ?? null;
}
__name(handleUndefinedAttr, "handleUndefinedAttr");
function isLabelCoordinateInPath(point, dAttr) {
const roundedX = Math.round(point.x);
const roundedY = Math.round(point.y);
const sanitizedD = dAttr.replace(
/(\d+\.\d+)/g,
(match) => Math.round(parseFloat(match)).toString()
);
return sanitizedD.includes(roundedX.toString()) || sanitizedD.includes(roundedY.toString());
}
__name(isLabelCoordinateInPath, "isLabelCoordinateInPath");
export {
ZERO_WIDTH_SPACE,
removeDirectives,
interpolateToCurve,
getStylesFromArray,
generateId,
random,
wrapLabel,
calculateTextHeight,
calculateTextWidth,
isDetailedError,
parseFontSize,
cleanAndMerge,
utils_default,
encodeEntities,
decodeEntities,
getEdgeId,
handleUndefinedAttr
};
//# sourceMappingURL=chunk-QVVRGVV3.js.map

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,46 @@
import {
AbstractMermaidTokenBuilder,
CommonValueConverter,
EmptyFileSystem,
MermaidGeneratedSharedModule,
RadarGeneratedModule,
__name,
createDefaultCoreModule,
createDefaultSharedCoreModule,
inject,
lib_exports
} from "./chunk-WHHJWK6B.js";
// node_modules/@mermaid-js/parser/dist/chunks/mermaid-parser.core/chunk-WFRQ32O7.mjs
var _a;
var RadarTokenBuilder = (_a = class extends AbstractMermaidTokenBuilder {
constructor() {
super(["radar-beta"]);
}
}, __name(_a, "RadarTokenBuilder"), _a);
var RadarModule = {
parser: {
TokenBuilder: __name(() => new RadarTokenBuilder(), "TokenBuilder"),
ValueConverter: __name(() => new CommonValueConverter(), "ValueConverter")
}
};
function createRadarServices(context = EmptyFileSystem) {
const shared = inject(
createDefaultSharedCoreModule(context),
MermaidGeneratedSharedModule
);
const Radar = inject(
createDefaultCoreModule({ shared }),
RadarGeneratedModule,
RadarModule
);
shared.ServiceRegistry.register(Radar);
return { shared, Radar };
}
__name(createRadarServices, "createRadarServices");
export {
RadarModule,
createRadarServices
};
//# sourceMappingURL=chunk-R33GOAXK.js.map

View File

@ -0,0 +1,7 @@
{
"version": 3,
"sources": ["../../../../../../node_modules/@mermaid-js/parser/dist/chunks/mermaid-parser.core/chunk-WFRQ32O7.mjs"],
"sourcesContent": ["import {\n AbstractMermaidTokenBuilder,\n CommonValueConverter,\n MermaidGeneratedSharedModule,\n RadarGeneratedModule,\n __name\n} from \"./chunk-4KMFLZZN.mjs\";\n\n// src/language/radar/module.ts\nimport {\n EmptyFileSystem,\n createDefaultCoreModule,\n createDefaultSharedCoreModule,\n inject\n} from \"langium\";\n\n// src/language/radar/tokenBuilder.ts\nvar RadarTokenBuilder = class extends AbstractMermaidTokenBuilder {\n static {\n __name(this, \"RadarTokenBuilder\");\n }\n constructor() {\n super([\"radar-beta\"]);\n }\n};\n\n// src/language/radar/module.ts\nvar RadarModule = {\n parser: {\n TokenBuilder: /* @__PURE__ */ __name(() => new RadarTokenBuilder(), \"TokenBuilder\"),\n ValueConverter: /* @__PURE__ */ __name(() => new CommonValueConverter(), \"ValueConverter\")\n }\n};\nfunction createRadarServices(context = EmptyFileSystem) {\n const shared = inject(\n createDefaultSharedCoreModule(context),\n MermaidGeneratedSharedModule\n );\n const Radar = inject(\n createDefaultCoreModule({ shared }),\n RadarGeneratedModule,\n RadarModule\n );\n shared.ServiceRegistry.register(Radar);\n return { shared, Radar };\n}\n__name(createRadarServices, \"createRadarServices\");\n\nexport {\n RadarModule,\n createRadarServices\n};\n"],
"mappings": ";;;;;;;;;;;;;;AAAA;AAiBA,IAAI,qBAAoB,mBAAc,4BAA4B;AAAA,EAIhE,cAAc;AACZ,UAAM,CAAC,YAAY,CAAC;AAAA,EACtB;AACF,GALI,OAAO,IAAM,mBAAmB,GAFZ;AAUxB,IAAI,cAAc;AAAA,EAChB,QAAQ;AAAA,IACN,cAA8B,OAAO,MAAM,IAAI,kBAAkB,GAAG,cAAc;AAAA,IAClF,gBAAgC,OAAO,MAAM,IAAI,qBAAqB,GAAG,gBAAgB;AAAA,EAC3F;AACF;AACA,SAAS,oBAAoB,UAAU,iBAAiB;AACtD,QAAM,SAAS;AAAA,IACb,8BAA8B,OAAO;AAAA,IACrC;AAAA,EACF;AACA,QAAM,QAAQ;AAAA,IACZ,wBAAwB,EAAE,OAAO,CAAC;AAAA,IAClC;AAAA,IACA;AAAA,EACF;AACA,SAAO,gBAAgB,SAAS,KAAK;AACrC,SAAO,EAAE,QAAQ,MAAM;AACzB;AACA,OAAO,qBAAqB,qBAAqB;",
"names": []
}

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

Some files were not shown because too many files have changed in this diff Show More