@sneat/space-services 0.26.0 → 0.26.2
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/esm2022/lib/components/with-space-input.directive.js +11 -7
- package/esm2022/lib/components/with-space-input.directive.js.map +1 -1
- package/esm2022/lib/services/space-context.service.js +3 -3
- package/esm2022/lib/services/space-module.service.js +0 -1
- package/esm2022/lib/services/space-module.service.js.map +1 -1
- package/esm2022/lib/services/space-nav.service.js +5 -5
- package/esm2022/lib/services/space-nav.service.js.map +1 -1
- package/esm2022/lib/services/space-service.module.js +4 -4
- package/esm2022/lib/services/space.service.js +3 -3
- package/lib/services/space-nav.service.d.ts +2 -2
- package/package.json +6 -5
- package/tsconfig.lib.prod.tsbuildinfo +1 -1
|
@@ -7,17 +7,21 @@ export class WithSpaceInput extends SneatBaseComponent {
|
|
|
7
7
|
constructor() {
|
|
8
8
|
super();
|
|
9
9
|
this.spaceNavService = inject(SpaceNavService);
|
|
10
|
-
this.$space = input.required(
|
|
11
|
-
|
|
10
|
+
this.$space = input.required(/* @ts-ignore */
|
|
11
|
+
...(ngDevMode ? [{ debugName: "$space" }] : /* istanbul ignore next */ []));
|
|
12
|
+
this.$spaceID = computed(() => this.$space().id, /* @ts-ignore */
|
|
13
|
+
...(ngDevMode ? [{ debugName: "$spaceID" }] : /* istanbul ignore next */ []));
|
|
12
14
|
this.spaceIDChanged = new BehaviorSubject(undefined);
|
|
13
15
|
this.spaceID$ = this.spaceIDChanged
|
|
14
16
|
.asObservable()
|
|
15
17
|
.pipe(this.takeUntilDestroyed(), distinctUntilChanged());
|
|
16
|
-
this.$spaceType = computed(() => this.$space().type,
|
|
18
|
+
this.$spaceType = computed(() => this.$space().type, /* @ts-ignore */
|
|
19
|
+
...(ngDevMode ? [{ debugName: "$spaceType" }] : /* istanbul ignore next */ []));
|
|
17
20
|
this.$spaceRef = computed(() => ({
|
|
18
21
|
id: this.$spaceID(),
|
|
19
22
|
type: this.$spaceType(),
|
|
20
|
-
}),
|
|
23
|
+
}), /* @ts-ignore */
|
|
24
|
+
...(ngDevMode ? [{ debugName: "$spaceRef" }] : /* istanbul ignore next */ []));
|
|
21
25
|
effect(() => {
|
|
22
26
|
const spaceID = this.$spaceID();
|
|
23
27
|
if (spaceID !== this.spaceIDChanged.value) {
|
|
@@ -28,10 +32,10 @@ export class WithSpaceInput extends SneatBaseComponent {
|
|
|
28
32
|
onSpaceIdChanged(spaceID) {
|
|
29
33
|
this.spaceIDChanged.next(spaceID);
|
|
30
34
|
}
|
|
31
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
32
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "
|
|
35
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.3", ngImport: i0, type: WithSpaceInput, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
36
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.1.3", type: WithSpaceInput, isStandalone: true, inputs: { $space: { classPropertyName: "$space", publicName: "$space", isSignal: true, isRequired: true, transformFunction: null } }, usesInheritance: true, ngImport: i0 }); }
|
|
33
37
|
}
|
|
34
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
38
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.3", ngImport: i0, type: WithSpaceInput, decorators: [{
|
|
35
39
|
type: Directive
|
|
36
40
|
}], ctorParameters: () => [], propDecorators: { $space: [{ type: i0.Input, args: [{ isSignal: true, alias: "$space", required: true }] }] } });
|
|
37
41
|
//# sourceMappingURL=with-space-input.directive.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"with-space-input.directive.js","sourceRoot":"","sources":["../../../../../../../libs/space/services/src/lib/components/with-space-input.directive.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAE3E,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,MAAM,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;;AAGhE,MAAM,OAAgB,cAAe,SAAQ,kBAAkB;IAmB7D;QACE,KAAK,EAAE,CAAC;QAnBS,oBAAe,GAAG,MAAM,CAAC,eAAe,CAAC,CAAC;QAE7C,WAAM,GAAG,KAAK,CAAC,QAAQ,
|
|
1
|
+
{"version":3,"file":"with-space-input.directive.js","sourceRoot":"","sources":["../../../../../../../libs/space/services/src/lib/components/with-space-input.directive.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAE3E,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,MAAM,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;;AAGhE,MAAM,OAAgB,cAAe,SAAQ,kBAAkB;IAmB7D;QACE,KAAK,EAAE,CAAC;QAnBS,oBAAe,GAAG,MAAM,CAAC,eAAe,CAAC,CAAC;QAE7C,WAAM,GAAG,KAAK,CAAC,QAAQ;mFAAiB,CAAC;QAEtC,aAAQ,GAAG,QAAQ,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE;qFAAC,CAAC;QAC9C,mBAAc,GAAG,IAAI,eAAe,CACnD,SAAS,CACV,CAAC;QACQ,aAAQ,GAAG,IAAI,CAAC,cAAc;aACrC,YAAY,EAAE;aACd,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,EAAE,oBAAoB,EAAE,CAAC,CAAC;QAExC,eAAU,GAAG,QAAQ,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI;uFAAC,CAAC;QAChD,cAAS,GAAG,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC;YAC7C,EAAE,EAAE,IAAI,CAAC,QAAQ,EAAE;YACnB,IAAI,EAAE,IAAI,CAAC,UAAU,EAAE;SACxB,CAAC;sFAAC,CAAC;QAIF,MAAM,CAAC,GAAG,EAAE;YACV,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;YAChC,IAAI,OAAO,KAAK,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC;gBAC1C,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;YACjC,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAES,gBAAgB,CAAC,OAAe;QACxC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACpC,CAAC;8GA/BmB,cAAc;kGAAd,cAAc;;2FAAd,cAAc;kBADnC,SAAS","sourcesContent":["import { computed, Directive, effect, inject, input } from '@angular/core';\nimport { ISpaceContext } from '@sneat/space-models';\nimport { SneatBaseComponent } from '@sneat/ui';\nimport { BehaviorSubject, distinctUntilChanged } from 'rxjs';\nimport { SpaceNavService } from '../services/space-nav.service';\n\n@Directive()\nexport abstract class WithSpaceInput extends SneatBaseComponent {\n protected readonly spaceNavService = inject(SpaceNavService);\n\n public readonly $space = input.required<ISpaceContext>();\n\n protected readonly $spaceID = computed(() => this.$space().id);\n private readonly spaceIDChanged = new BehaviorSubject<string | undefined>(\n undefined,\n );\n protected spaceID$ = this.spaceIDChanged\n .asObservable()\n .pipe(this.takeUntilDestroyed(), distinctUntilChanged());\n\n protected readonly $spaceType = computed(() => this.$space().type);\n protected readonly $spaceRef = computed(() => ({\n id: this.$spaceID(),\n type: this.$spaceType(),\n }));\n\n constructor() {\n super();\n effect(() => {\n const spaceID = this.$spaceID();\n if (spaceID !== this.spaceIDChanged.value) {\n this.onSpaceIdChanged(spaceID);\n }\n });\n }\n\n protected onSpaceIdChanged(spaceID: string): void {\n this.spaceIDChanged.next(spaceID);\n }\n}\n"]}
|
|
@@ -4,10 +4,10 @@ import { map } from 'rxjs/operators';
|
|
|
4
4
|
import { parseSpaceType } from '@sneat/core';
|
|
5
5
|
import * as i0 from "@angular/core";
|
|
6
6
|
export class SpaceContextService {
|
|
7
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
8
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
7
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.3", ngImport: i0, type: SpaceContextService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
8
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.1.3", ngImport: i0, type: SpaceContextService, providedIn: 'root' }); }
|
|
9
9
|
}
|
|
10
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
10
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.3", ngImport: i0, type: SpaceContextService, decorators: [{
|
|
11
11
|
type: Injectable,
|
|
12
12
|
args: [{
|
|
13
13
|
providedIn: 'root',
|
|
@@ -2,7 +2,6 @@ import { runInInjectionContext } from '@angular/core';
|
|
|
2
2
|
import { collection, } from '@angular/fire/firestore';
|
|
3
3
|
import { map } from 'rxjs/operators';
|
|
4
4
|
import { ModuleSpaceItemService } from './space-item.service';
|
|
5
|
-
// import firebase from "firebase/compat";
|
|
6
5
|
// import Item = firebase.analytics.Item;
|
|
7
6
|
export class SpaceModuleService extends ModuleSpaceItemService {
|
|
8
7
|
// protected readonly sfs: SneatFirestoreService<Brief, Dto>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"space-module.service.js","sourceRoot":"","sources":["../../../../../../../libs/space/services/src/lib/services/space-module.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAChE,OAAO,EACL,UAAU,GAGX,MAAM,yBAAyB,CAAC;AAIjC,OAAO,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AACrC,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAE9D,
|
|
1
|
+
{"version":3,"file":"space-module.service.js","sourceRoot":"","sources":["../../../../../../../libs/space/services/src/lib/services/space-module.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAChE,OAAO,EACL,UAAU,GAGX,MAAM,yBAAyB,CAAC;AAIjC,OAAO,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AACrC,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAE9D,yCAAyC;AAEzC,MAAM,OAAgB,kBAAwB,SAAQ,sBAGrD;IACC,6DAA6D;IAC7D,YACE,QAAkB,EAClB,QAAgB,EAChB,GAAqB;QAErB,yEAAyE;QACzE,KAAK,CACH,QAAQ,EACR,QAAQ,EACR,KAAK,EACL,GAAG,EACH,SAAuC,CACxC,CAAC;IACJ,CAAC;IAED,sBAAsB,CAAC,OAAe;QACpC,OAAO,qBAAqB,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE;YAC/C,MAAM,aAAa,GAAG,UAAU,CAC9B,IAAI,CAAC,gBAAgB,EACrB,OAAO,EACP,KAAK,CACsB,CAAC;YAC9B,qCAAqC;YACrC,qDAAqD;YACrD,IAAI;YACJ,OAAO,IAAI,CAAC,GAAG;iBACZ,SAAS,CAAM,aAAa,EAAE,IAAI,CAAC,QAAQ,CAAC;iBAC5C,IAAI,EAEH,CAAC;QACP,CAAC,CAAC,CAAC;IACL,CAAC;IAED,WAAW,CACT,OAAe,EACf,SAA6D;QAE7D,MAAM,CAAC,GAAG,IAAI,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAC;QAC/C,OAAO,CAAC,CAAC,IAAI,CACX,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE;YACjB,MAAM,MAAM,GAAG,SAAS,CAAC,UAAU,EAAE,GAAG,IAAI,SAAS,CAAC,CAAC;YACvD,MAAM,KAAK,GAA6B,MAAM;gBAC5C,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;gBAC9D,CAAC,CAAC,EAAE,CAAC;YACP,OAAO,KAAK,CAAC;QACf,CAAC,CAAC,CACH,CAAC;IACJ,CAAC;CACF","sourcesContent":["import { Injector, runInInjectionContext } from '@angular/core';\nimport {\n collection,\n CollectionReference,\n Firestore as AngularFirestore,\n} from '@angular/fire/firestore';\nimport { SneatApiService } from '@sneat/api';\nimport { IIdAndBrief, IIdAndOptionalDbo } from '@sneat/core';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { ModuleSpaceItemService } from './space-item.service';\n\n// import Item = firebase.analytics.Item;\n\nexport abstract class SpaceModuleService<Dbo> extends ModuleSpaceItemService<\n Dbo,\n Dbo\n> {\n // protected readonly sfs: SneatFirestoreService<Brief, Dto>;\n protected constructor(\n injector: Injector,\n moduleID: string,\n afs: AngularFirestore,\n ) {\n // this.sfs = new SneatFirestoreService<Brief, Dto>(collectionName, afs);\n super(\n injector,\n moduleID,\n 'ext',\n afs,\n undefined as unknown as SneatApiService,\n );\n }\n\n watchSpaceModuleRecord(spaceID: string): Observable<IIdAndOptionalDbo<Dbo>> {\n return runInInjectionContext(this.injector, () => {\n const collectionRef = collection(\n this.spacesCollection,\n spaceID,\n 'ext',\n ) as CollectionReference<Dbo>;\n // if (this.moduleID === 'trackus') {\n // \treturn throwError(() => new Error('test error'));\n // }\n return this.sfs\n .watchByID<Dbo>(collectionRef, this.moduleID)\n .pipe\n // tap((o) => console.log(`${logPrefix} =>`, o)),\n ();\n });\n }\n\n watchBriefs<ItemBrief>(\n spaceID: string,\n getBriefs: (dto?: Dbo) => Readonly<Record<string, ItemBrief>>,\n ): Observable<IIdAndBrief<ItemBrief>[]> {\n const o = this.watchSpaceModuleRecord(spaceID);\n return o.pipe(\n map((teamModule) => {\n const briefs = getBriefs(teamModule?.dbo || undefined);\n const items: IIdAndBrief<ItemBrief>[] = briefs\n ? Object.keys(briefs).map((id) => ({ id, brief: briefs[id] }))\n : [];\n return items;\n }),\n );\n }\n}\n"]}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { Injectable, inject } from '@angular/core';
|
|
2
|
-
import { NavController } from '@ionic/angular';
|
|
2
|
+
import { NavController } from '@ionic/angular/lazy';
|
|
3
3
|
import { AnalyticsService } from '@sneat/core';
|
|
4
4
|
import { ErrorLogger } from '@sneat/core';
|
|
5
5
|
import * as i0 from "@angular/core";
|
|
6
6
|
/**
|
|
7
7
|
* @deprecated Concrete, Ionic-coupled nav service. Kept for backward
|
|
8
8
|
* compatibility — a currently-published dependency of this monorepo
|
|
9
|
-
* (`@sneat/extension-contactus-
|
|
9
|
+
* (`@sneat/extension-contactus-ui@0.13.7`) still imports this class and
|
|
10
10
|
* `WithSpaceInput` directly from `@sneat/space-services`, so it cannot be
|
|
11
11
|
* removed from this package's public entry point without breaking that
|
|
12
12
|
* consumer; see the PR description for the full trade-off.
|
|
@@ -99,10 +99,10 @@ export class SpaceNavService {
|
|
|
99
99
|
.navigateForward(url, navOptions)
|
|
100
100
|
.catch((err) => this.errorLogger.logError(err, 'Failed to navigate to: ' + url));
|
|
101
101
|
}
|
|
102
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
103
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
102
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.3", ngImport: i0, type: SpaceNavService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
103
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.1.3", ngImport: i0, type: SpaceNavService, providedIn: 'root' }); }
|
|
104
104
|
}
|
|
105
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
105
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.3", ngImport: i0, type: SpaceNavService, decorators: [{
|
|
106
106
|
type: Injectable,
|
|
107
107
|
args: [{
|
|
108
108
|
providedIn: 'root',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"space-nav.service.js","sourceRoot":"","sources":["../../../../../../../libs/space/services/src/lib/services/space-nav.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAEnD,OAAO,EAAE,aAAa,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"space-nav.service.js","sourceRoot":"","sources":["../../../../../../../libs/space/services/src/lib/services/space-nav.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAEnD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAA6C,MAAM,aAAa,CAAC;AAQ1F,OAAO,EAAE,WAAW,EAAgB,MAAM,aAAa,CAAC;;AAKxD;;;;;;;;;;;;;GAaG;AAIH,MAAM,OAAO,eAAe;IAH5B;QAImB,gBAAW,GAAG,MAAM,CAAe,WAAW,CAAC,CAAC;QAChD,kBAAa,GAAG,MAAM,CAAC,aAAa,CAAC,CAAC;QACtC,qBAAgB,GAC/B,MAAM,CAAoB,gBAAgB,CAAC,CAAC;QAiFvC,wBAAmB,GAAG,CAC3B,aAA4B,EAC5B,IAAwB,EAClB,EAAE,CACR,IAAI,CAAC,cAAc,CACjB,aAAa,EACb,IAAI,EACJ,YAAY,EACZ,qBAAqB,CACtB,CAAC;QA8CI,mBAAc,GAAG,CACvB,aAA4B,EAC5B,KAAgB,EAChB,GAAW,EACX,SAAiB,EACjB,MAAgC,EAC1B,EAAE;YACR,MAAM,GAAG,EAAE,GAAG,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC;YACxC,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;YAClD,IAAI,CAAC,UAAU,CACb,aAAa,EACb,GAAG,EACH,EAAE,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,CAC1C,CAAC;QACJ,CAAC,CAAC;KACH;IArJQ,gBAAgB,CAAC,kBAAuC;QAC7D,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;QAClD,IAAI,CAAC,aAAa;aACf,YAAY,CAAC,QAAQ,EAAE,EAAE,kBAAkB,EAAE,CAAC;aAC9C,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CACb,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,EAAE,kCAAkC,CAAC,CACnE,CAAC;IACN,CAAC;IAEM,eAAe,CAAC,OAItB;QAEC,yDAAyD;QACzD,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;QAElD,MAAM,UAAU,GAAsB;YACpC,WAAW,EAAE,OAAO,EAAE,WAAW;YACjC,kBAAkB,EAAE,MAAM;SAC3B,CAAC;QACF,IAAI,OAAO,EAAE,QAAQ,EAAE,CAAC;YACtB,UAAU,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;QACzC,CAAC;QACD,IAAI,CAAC,aAAa;aACf,YAAY,CAAC,OAAO,EAAE,UAAU,CAAC;aACjC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CACb,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,EAAE,kCAAkC,CAAC,CACnE,CAAC;IACN,CAAC;IAEM,qBAAqB;QAC1B,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,uBAAuB,CAAC,CAAC;QACxD,IAAI,CAAC,aAAa;aACf,YAAY,CAAC,cAAc,CAAC;aAC5B,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CACb,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,EAAE,mCAAmC,CAAC,CACpE,CAAC;IACN,CAAC;IAEM,eAAe,CACpB,KAAoB,EACpB,kBAAuC;QAEvC,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,iBAAiB,EAAE,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;QACzE,MAAM,GAAG,GAAG,SAAS,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,KAAK,EAAE,IAAI,IAAI,KAAK,CAAC,EAAE,EAAE,CAAC;QACnE,OAAO,IAAI,OAAO,CAAU,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC9C,IAAI,CAAC,aAAa;iBACf,YAAY,CAAC,GAAG,EAAE;gBACjB,KAAK,EAAE,EAAE,KAAK,EAAE;gBAChB,kBAAkB;aACnB,CAAC;iBACD,IAAI,CAAC,OAAO,CAAC;iBACb,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;gBACb,IAAI,CAAC,WAAW,CAAC,QAAQ,CACvB,GAAG,EACH,qDAAqD,GAAG,GAAG,CAC5D,CAAC;gBACF,MAAM,CAAC,GAAG,CAAC,CAAC;YACd,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACL,CAAC;IAEM,gBAAgB,CACrB,KAAoB,EACpB,UAAqC;QAErC,MAAM,EAAE,GAAG,GAAG,KAAK,CAAC,EAAE,IAAI,UAAU,CAAC,EAAE,EAAE,CAAC;QAC1C,IAAI,CAAC,UAAU,CACb,IAAI,CAAC,aAAa,EAClB,QAAQ,EACR;YACE,WAAW,EAAE,EAAE,EAAE,EAAE;YACnB,KAAK,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE;SAC7B,CACF,CAAC;IACJ,CAAC;IAaM,uBAAuB,CAC5B,KAAoB,EACpB,IAAY,EACZ,aAAgC,EAAE;QAElC,UAAU,CAAC,kBAAkB,GAAG,MAAM,CAAC;QACvC,OAAO,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC;IAC3D,CAAC;IAEM,0BAA0B,CAC/B,KAAoB,EACpB,IAAY,EACZ,aAAgC,EAAE;QAElC,UAAU,CAAC,kBAAkB,GAAG,SAAS,CAAC;QAC1C,OAAO,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC;IAC3D,CAAC;IAEO,mBAAmB,CACzB,KAAoB,EACpB,IAAY,EACZ,UAA6B;QAE7B,MAAM,GAAG,GAAG,SAAS,KAAK,EAAE,IAAI,IAAI,KAAK,EAAE,EAAE,IAAI,IAAI,EAAE,CAAC;QACxD,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,IAAI,EAAE,CAAC;QACrC,UAAU,GAAG,EAAE,GAAG,UAAU,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,GAAG,KAAK,EAAE,EAAE,CAAC;QAC3D,OAAO,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;IAC7D,CAAC;IAEO,UAAU,CAChB,aAA4B,EAC5B,GAAW,EACX,UAA6B;QAG7B,aAAa,GAAG,aAAa,IAAI,IAAI,CAAC,aAAa,CAAC;QACpD,8EAA8E;QAC9E,aAAa;aACV,eAAe,CAAC,GAAG,EAAE,UAAU,CAAC;aAChC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CACb,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,EAAE,yBAAyB,GAAG,GAAG,CAAC,CAChE,CAAC;IACN,CAAC;8GA1IU,eAAe;kHAAf,eAAe,cAFd,MAAM;;2FAEP,eAAe;kBAH3B,UAAU;mBAAC;oBACV,UAAU,EAAE,MAAM;iBACnB","sourcesContent":["import { Injectable, inject } from '@angular/core';\nimport { Params } from '@angular/router';\nimport { NavController } from '@ionic/angular/lazy';\nimport { AnalyticsService, IAnalyticsService, IIdAndBrief, ISpaceRef } from '@sneat/core';\nimport { IMemberBrief } from '@sneat/extension-contactus-contract';\n\ntype NavigationOptions = NonNullable<\n Parameters<NavController['navigateRoot']>[1]\n>;\nimport { IRecord } from '@sneat/data';\nimport { ISpaceDbo } from '@sneat/dto';\nimport { ErrorLogger, IErrorLogger } from '@sneat/core';\nimport { ISpaceContext } from '@sneat/space-models';\n\nexport type ScrumPageTab = 'team' | 'my' | 'risks' | 'qna';\n\n/**\n * @deprecated Concrete, Ionic-coupled nav service. Kept for backward\n * compatibility — a currently-published dependency of this monorepo\n * (`@sneat/extension-contactus-ui@0.13.7`) still imports this class and\n * `WithSpaceInput` directly from `@sneat/space-services`, so it cannot be\n * removed from this package's public entry point without breaking that\n * consumer; see the PR description for the full trade-off.\n *\n * New code should depend on `ISpaceNavService` (the `SPACE_NAV_SERVICE`\n * injection token, also exported from this package) and have the app\n * provide an implementation via `provideSpaceNavIonicInternal()` from\n * `@sneat/space-nav-ionic`, or `provideSpaceNavRouterInternal()` from\n * `@sneat/space-nav-router` for non-Ionic apps.\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class SpaceNavService {\n private readonly errorLogger = inject<IErrorLogger>(ErrorLogger);\n private readonly navController = inject(NavController);\n private readonly analyticsService =\n inject<IAnalyticsService>(AnalyticsService);\n\n public navigateToSpaces(animationDirection?: 'forward' | 'back'): void {\n this.analyticsService.logEvent('navigateToTeams');\n this.navController\n .navigateRoot('spaces', { animationDirection })\n .catch((err) =>\n this.errorLogger.logError(err, 'Failed to navigate to teams page'),\n );\n }\n\n public navigateToLogin(options?: {\n returnTo?: string;\n queryParams?: Params;\n // fragment?: string;\n }): void {\n\n // Do not log `returnTo` as it might holds sensitive info\n this.analyticsService.logEvent('navigateToLogin');\n\n const navOptions: NavigationOptions = {\n queryParams: options?.queryParams,\n animationDirection: 'back',\n };\n if (options?.returnTo) {\n navOptions.fragment = options.returnTo;\n }\n this.navController\n .navigateRoot('login', navOptions)\n .catch((err) =>\n this.errorLogger.logError(err, 'Failed to navigate to login page'),\n );\n }\n\n public navigateToUserProfile(): void {\n this.analyticsService.logEvent('navigateToUserProfile');\n this.navController\n .navigateRoot('user-profile')\n .catch((err) =>\n this.errorLogger.logError(err, 'Failed to naviage to user profile'),\n );\n }\n\n public navigateToSpace(\n space: ISpaceContext,\n animationDirection?: 'forward' | 'back',\n ): Promise<boolean> {\n this.analyticsService.logEvent('navigateToSpace', { spaceID: space.id });\n const url = `space/${space.type || space.brief?.type}/${space.id}`;\n return new Promise<boolean>((resolve, reject) => {\n this.navController\n .navigateRoot(url, {\n state: { space },\n animationDirection,\n })\n .then(resolve)\n .catch((err) => {\n this.errorLogger.logError(\n err,\n 'Failed to navigate to team overview page with URL: ' + url,\n );\n reject(err);\n });\n });\n }\n\n public navigateToMember(\n space: ISpaceContext,\n memberInfo: IIdAndBrief<IMemberBrief>,\n ): void {\n const id = `${space.id}:${memberInfo.id}`;\n this.navForward(\n this.navController,\n 'member',\n {\n queryParams: { id },\n state: { space, memberInfo },\n },\n );\n }\n\n public navigateToAddMetric = (\n navController: NavController,\n team: IRecord<ISpaceDbo>,\n ): void =>\n this.navToSpacePage(\n navController,\n team,\n 'add-metric',\n 'navigateToAddMetric',\n );\n\n public navigateBackToSpacePage(\n space: ISpaceContext,\n page: string,\n navOptions: NavigationOptions = {},\n ): Promise<boolean> {\n navOptions.animationDirection = 'back';\n return this.navigateToSpacePage(space, page, navOptions);\n }\n\n public navigateForwardToSpacePage(\n space: ISpaceContext,\n page: string,\n navOptions: NavigationOptions = {},\n ): Promise<boolean> {\n navOptions.animationDirection = 'forward';\n return this.navigateToSpacePage(space, page, navOptions);\n }\n\n private navigateToSpacePage(\n space: ISpaceContext,\n page: string,\n navOptions: NavigationOptions,\n ): Promise<boolean> {\n const url = `space/${space?.type}/${space?.id}/${page}`;\n const state = navOptions.state || {};\n navOptions = { ...navOptions, state: { space, ...state } };\n return this.navController.navigateForward(url, navOptions);\n }\n\n private navForward(\n navController: NavController,\n url: string,\n navOptions: NavigationOptions,\n // _analyticsEvent: { name: string; params?: Record<string, unknown> },\n ): void {\n navController = navController || this.navController;\n // this.analyticsService.logEvent(analyticsEvent.name, analyticsEvent.params);\n navController\n .navigateForward(url, navOptions)\n .catch((err) =>\n this.errorLogger.logError(err, 'Failed to navigate to: ' + url),\n );\n }\n\n private navToSpacePage = (\n navController: NavController,\n space: ISpaceRef,\n url: string,\n eventName: string,\n params?: Record<string, unknown>,\n ): void => {\n params = { ...params, space: space.id };\n this.analyticsService.logEvent(eventName, params);\n this.navForward(\n navController,\n url,\n { queryParams: params, state: { space } },\n );\n };\n}\n"]}
|
|
@@ -2,11 +2,11 @@ import { NgModule } from '@angular/core';
|
|
|
2
2
|
import { SpaceService } from './space.service';
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
4
|
export class SpaceServiceModule {
|
|
5
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
6
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
|
7
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
5
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.3", ngImport: i0, type: SpaceServiceModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
6
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "22.1.3", ngImport: i0, type: SpaceServiceModule }); }
|
|
7
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "22.1.3", ngImport: i0, type: SpaceServiceModule, providers: [SpaceService] }); }
|
|
8
8
|
}
|
|
9
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
9
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.3", ngImport: i0, type: SpaceServiceModule, decorators: [{
|
|
10
10
|
type: NgModule,
|
|
11
11
|
args: [{
|
|
12
12
|
providers: [SpaceService],
|
|
@@ -200,10 +200,10 @@ export class SpaceService {
|
|
|
200
200
|
this.errorLogger.logError(e, 'SpaceService failed to unsubscribe');
|
|
201
201
|
}
|
|
202
202
|
}
|
|
203
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
204
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
203
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.3", ngImport: i0, type: SpaceService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
204
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.1.3", ngImport: i0, type: SpaceService }); }
|
|
205
205
|
}
|
|
206
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
206
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.3", ngImport: i0, type: SpaceService, decorators: [{
|
|
207
207
|
type: Injectable
|
|
208
208
|
}], ctorParameters: () => [] });
|
|
209
209
|
//# sourceMappingURL=space.service.js.map
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Params } from '@angular/router';
|
|
2
|
-
import { NavController } from '@ionic/angular';
|
|
2
|
+
import { NavController } from '@ionic/angular/lazy';
|
|
3
3
|
import { IIdAndBrief } from '@sneat/core';
|
|
4
4
|
import { IMemberBrief } from '@sneat/extension-contactus-contract';
|
|
5
5
|
import { IRecord } from '@sneat/data';
|
|
@@ -11,7 +11,7 @@ export type ScrumPageTab = 'team' | 'my' | 'risks' | 'qna';
|
|
|
11
11
|
/**
|
|
12
12
|
* @deprecated Concrete, Ionic-coupled nav service. Kept for backward
|
|
13
13
|
* compatibility — a currently-published dependency of this monorepo
|
|
14
|
-
* (`@sneat/extension-contactus-
|
|
14
|
+
* (`@sneat/extension-contactus-ui@0.13.7`) still imports this class and
|
|
15
15
|
* `WithSpaceInput` directly from `@sneat/space-services`, so it cannot be
|
|
16
16
|
* removed from this package's public entry point without breaking that
|
|
17
17
|
* consumer; see the PR description for the full trade-off.
|
package/package.json
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sneat/space-services",
|
|
3
|
-
"version": "0.26.
|
|
3
|
+
"version": "0.26.2",
|
|
4
4
|
"publishConfig": {
|
|
5
5
|
"access": "public"
|
|
6
6
|
},
|
|
7
7
|
"peerDependencies": {
|
|
8
|
-
"@angular/common": ">=
|
|
9
|
-
"@angular/core": ">=
|
|
10
|
-
"@ionic/angular": ">=
|
|
8
|
+
"@angular/common": ">=22.0.0 <23.0.0",
|
|
9
|
+
"@angular/core": ">=22.0.0 <23.0.0",
|
|
10
|
+
"@ionic/angular": ">=9.0.0 <10.0.0",
|
|
11
11
|
"firebase": "*",
|
|
12
12
|
"@angular/fire": ">=20",
|
|
13
13
|
"@sneat/extension-contactus-contract": "^0.12.0"
|
|
@@ -31,5 +31,6 @@
|
|
|
31
31
|
"default": "./esm2022/sneat-space-services.js"
|
|
32
32
|
}
|
|
33
33
|
},
|
|
34
|
-
"sideEffects": false
|
|
34
|
+
"sideEffects": false,
|
|
35
|
+
"type": "module"
|
|
35
36
|
}
|