@mmstack/router-core 20.4.1 → 20.5.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -21
- package/README.md +352 -322
- package/fesm2022/mmstack-router-core.mjs +29 -23
- package/fesm2022/mmstack-router-core.mjs.map +1 -1
- package/index.d.ts +3 -4
- package/package.json +2 -2
|
@@ -144,10 +144,10 @@ function leafRoutes() {
|
|
|
144
144
|
}
|
|
145
145
|
class RouteLeafStore {
|
|
146
146
|
leaves = leafRoutes();
|
|
147
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
148
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.
|
|
147
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: RouteLeafStore, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
148
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: RouteLeafStore, providedIn: 'root' });
|
|
149
149
|
}
|
|
150
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
150
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: RouteLeafStore, decorators: [{
|
|
151
151
|
type: Injectable,
|
|
152
152
|
args: [{
|
|
153
153
|
providedIn: 'root',
|
|
@@ -283,10 +283,10 @@ class BreadcrumbStore {
|
|
|
283
283
|
register(breadcrumb) {
|
|
284
284
|
this.map.inline((m) => m.set(breadcrumb.id, breadcrumb));
|
|
285
285
|
}
|
|
286
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
287
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.
|
|
286
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: BreadcrumbStore, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
287
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: BreadcrumbStore, providedIn: 'root' });
|
|
288
288
|
}
|
|
289
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
289
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: BreadcrumbStore, decorators: [{
|
|
290
290
|
type: Injectable,
|
|
291
291
|
args: [{
|
|
292
292
|
providedIn: 'root',
|
|
@@ -577,10 +577,10 @@ class PreloadRequester {
|
|
|
577
577
|
startPreload(routePath) {
|
|
578
578
|
this.preloadOnDemand$.next(routePath);
|
|
579
579
|
}
|
|
580
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
581
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.
|
|
580
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: PreloadRequester, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
581
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: PreloadRequester, providedIn: 'root' });
|
|
582
582
|
}
|
|
583
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
583
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: PreloadRequester, decorators: [{
|
|
584
584
|
type: Injectable,
|
|
585
585
|
args: [{ providedIn: 'root' }]
|
|
586
586
|
}] });
|
|
@@ -620,10 +620,10 @@ class PreloadStrategy {
|
|
|
620
620
|
const predicate = createRoutePredicate(fp);
|
|
621
621
|
return this.req.preloadRequested$.pipe(filter$1((path) => path === fp || predicate(path)), take(1), switchMap(() => load()), finalize(() => this.loading.delete(fp)));
|
|
622
622
|
}
|
|
623
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
624
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.
|
|
623
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: PreloadStrategy, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
624
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: PreloadStrategy, providedIn: 'root' });
|
|
625
625
|
}
|
|
626
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
626
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: PreloadStrategy, decorators: [{
|
|
627
627
|
type: Injectable,
|
|
628
628
|
args: [{
|
|
629
629
|
providedIn: 'root',
|
|
@@ -745,10 +745,10 @@ class Link {
|
|
|
745
745
|
untracked(this.beforeNavigate)?.();
|
|
746
746
|
return this.routerLink?.onClick(button, ctrlKey, shiftKey, altKey, metaKey);
|
|
747
747
|
}
|
|
748
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
749
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.3.
|
|
748
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: Link, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
749
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.3.17", type: Link, isStandalone: true, selector: "[mmLink]", inputs: { target: { classPropertyName: "target", publicName: "target", isSignal: true, isRequired: false, transformFunction: null }, queryParams: { classPropertyName: "queryParams", publicName: "queryParams", isSignal: true, isRequired: false, transformFunction: null }, fragment: { classPropertyName: "fragment", publicName: "fragment", isSignal: true, isRequired: false, transformFunction: null }, queryParamsHandling: { classPropertyName: "queryParamsHandling", publicName: "queryParamsHandling", isSignal: true, isRequired: false, transformFunction: null }, state: { classPropertyName: "state", publicName: "state", isSignal: true, isRequired: false, transformFunction: null }, info: { classPropertyName: "info", publicName: "info", isSignal: true, isRequired: false, transformFunction: null }, relativeTo: { classPropertyName: "relativeTo", publicName: "relativeTo", isSignal: true, isRequired: false, transformFunction: null }, skipLocationChange: { classPropertyName: "skipLocationChange", publicName: "skipLocationChange", isSignal: true, isRequired: false, transformFunction: null }, replaceUrl: { classPropertyName: "replaceUrl", publicName: "replaceUrl", isSignal: true, isRequired: false, transformFunction: null }, mmLink: { classPropertyName: "mmLink", publicName: "mmLink", isSignal: true, isRequired: false, transformFunction: null }, preloadOn: { classPropertyName: "preloadOn", publicName: "preloadOn", isSignal: true, isRequired: false, transformFunction: null }, useMouseDown: { classPropertyName: "useMouseDown", publicName: "useMouseDown", isSignal: true, isRequired: false, transformFunction: null }, beforeNavigate: { classPropertyName: "beforeNavigate", publicName: "beforeNavigate", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { preloading: "preloading" }, host: { listeners: { "mouseenter": "onHover()", "mousedown": "onMouseDown($event.button,$event.ctrlKey,$event.shiftKey,$event.altKey,$event.metaKey)", "click": "onClick($event.button,$event.ctrlKey,$event.shiftKey,$event.altKey,$event.metaKey)" } }, exportAs: ["mmLink"], hostDirectives: [{ directive: i1.RouterLink, inputs: ["routerLink", "mmLink", "target", "target", "queryParams", "queryParams", "fragment", "fragment", "queryParamsHandling", "queryParamsHandling", "state", "state", "relativeTo", "relativeTo", "skipLocationChange", "skipLocationChange", "replaceUrl", "replaceUrl"] }], ngImport: i0 });
|
|
750
750
|
}
|
|
751
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
751
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: Link, decorators: [{
|
|
752
752
|
type: Directive,
|
|
753
753
|
args: [{
|
|
754
754
|
selector: '[mmLink]',
|
|
@@ -773,7 +773,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.1", ngImpor
|
|
|
773
773
|
},
|
|
774
774
|
],
|
|
775
775
|
}]
|
|
776
|
-
}], ctorParameters: () => [], propDecorators: { onMouseDown: [{
|
|
776
|
+
}], ctorParameters: () => [], propDecorators: { target: [{ type: i0.Input, args: [{ isSignal: true, alias: "target", required: false }] }], queryParams: [{ type: i0.Input, args: [{ isSignal: true, alias: "queryParams", required: false }] }], fragment: [{ type: i0.Input, args: [{ isSignal: true, alias: "fragment", required: false }] }], queryParamsHandling: [{ type: i0.Input, args: [{ isSignal: true, alias: "queryParamsHandling", required: false }] }], state: [{ type: i0.Input, args: [{ isSignal: true, alias: "state", required: false }] }], info: [{ type: i0.Input, args: [{ isSignal: true, alias: "info", required: false }] }], relativeTo: [{ type: i0.Input, args: [{ isSignal: true, alias: "relativeTo", required: false }] }], skipLocationChange: [{ type: i0.Input, args: [{ isSignal: true, alias: "skipLocationChange", required: false }] }], replaceUrl: [{ type: i0.Input, args: [{ isSignal: true, alias: "replaceUrl", required: false }] }], mmLink: [{ type: i0.Input, args: [{ isSignal: true, alias: "mmLink", required: false }] }], preloadOn: [{ type: i0.Input, args: [{ isSignal: true, alias: "preloadOn", required: false }] }], useMouseDown: [{ type: i0.Input, args: [{ isSignal: true, alias: "useMouseDown", required: false }] }], beforeNavigate: [{ type: i0.Input, args: [{ isSignal: true, alias: "beforeNavigate", required: false }] }], preloading: [{ type: i0.Output, args: ["preloading"] }], onMouseDown: [{
|
|
777
777
|
type: HostListener,
|
|
778
778
|
args: ['mousedown', [
|
|
779
779
|
'$event.button',
|
|
@@ -824,7 +824,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.1", ngImpor
|
|
|
824
824
|
*
|
|
825
825
|
* @Component({
|
|
826
826
|
* selector: 'app-product-list',
|
|
827
|
-
* standalone: true,
|
|
828
827
|
* // imports: [FormsModule], // If using ngModel
|
|
829
828
|
* template: `
|
|
830
829
|
* <div>
|
|
@@ -869,8 +868,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.1", ngImpor
|
|
|
869
868
|
* }
|
|
870
869
|
* ```
|
|
871
870
|
*/
|
|
872
|
-
function queryParam(key) {
|
|
873
|
-
const route = inject(ActivatedRoute);
|
|
871
|
+
function queryParam(key, route = inject(ActivatedRoute)) {
|
|
874
872
|
const router = inject(Router);
|
|
875
873
|
const keySignal = typeof key === 'string'
|
|
876
874
|
? computed(() => key)
|
|
@@ -921,8 +919,16 @@ function provideTitleConfig(config) {
|
|
|
921
919
|
},
|
|
922
920
|
};
|
|
923
921
|
}
|
|
922
|
+
function identity(str) {
|
|
923
|
+
return str;
|
|
924
|
+
}
|
|
924
925
|
function injectTitleConfig() {
|
|
925
|
-
return inject(token
|
|
926
|
+
return (inject(token, {
|
|
927
|
+
optional: true,
|
|
928
|
+
}) ?? {
|
|
929
|
+
parser: identity,
|
|
930
|
+
keepLastKnown: true,
|
|
931
|
+
});
|
|
926
932
|
}
|
|
927
933
|
|
|
928
934
|
class TitleStore {
|
|
@@ -955,10 +961,10 @@ class TitleStore {
|
|
|
955
961
|
register(id, titleFn) {
|
|
956
962
|
this.map.inline((m) => m.set(id, titleFn));
|
|
957
963
|
}
|
|
958
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
959
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.
|
|
964
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: TitleStore, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
965
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: TitleStore, providedIn: 'root' });
|
|
960
966
|
}
|
|
961
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
967
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: TitleStore, decorators: [{
|
|
962
968
|
type: Injectable,
|
|
963
969
|
args: [{
|
|
964
970
|
providedIn: 'root',
|