@ng-atomic/common 5.8.0 → 5.9.0
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/esm2020/pipes/select-id/index.mjs +2 -0
- package/esm2020/pipes/select-id/ng-atomic-common-pipes-select-id.mjs +5 -0
- package/esm2020/pipes/select-id/select-id.pipe.mjs +26 -0
- package/esm2020/stores/entities/entities.store.mjs +2 -1
- package/fesm2015/ng-atomic-common-pipes-select-id.mjs +35 -0
- package/fesm2015/ng-atomic-common-pipes-select-id.mjs.map +1 -0
- package/fesm2015/ng-atomic-common-stores-entities.mjs +1 -0
- package/fesm2015/ng-atomic-common-stores-entities.mjs.map +1 -1
- package/fesm2020/ng-atomic-common-pipes-select-id.mjs +33 -0
- package/fesm2020/ng-atomic-common-pipes-select-id.mjs.map +1 -0
- package/fesm2020/ng-atomic-common-stores-entities.mjs +1 -0
- package/fesm2020/ng-atomic-common-stores-entities.mjs.map +1 -1
- package/package.json +9 -1
- package/pipes/select-id/index.d.ts +1 -0
- package/pipes/select-id/select-id.pipe.d.ts +12 -0
- package/stores/entities/entities.store.d.ts +3 -2
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export * from './select-id.pipe';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9AbmctYXRvbWljL2NvbW1vbi9zcmMvcGlwZXMvc2VsZWN0LWlkL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsa0JBQWtCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3NlbGVjdC1pZC5waXBlJztcbiJdfQ==
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generated bundle index. Do not edit.
|
|
3
|
+
*/
|
|
4
|
+
export * from './index';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmctYXRvbWljLWNvbW1vbi1waXBlcy1zZWxlY3QtaWQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9AbmctYXRvbWljL2NvbW1vbi9zcmMvcGlwZXMvc2VsZWN0LWlkL25nLWF0b21pYy1jb21tb24tcGlwZXMtc2VsZWN0LWlkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { Inject, InjectionToken, Pipe } from "@angular/core";
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export const SELECT_ID = new InjectionToken('[@ng-atomic/common] Select Id');
|
|
4
|
+
export const defaultSelectId = (entity) => entity.Id;
|
|
5
|
+
export class SelectIdPipe {
|
|
6
|
+
constructor(selectId) {
|
|
7
|
+
this.selectId = selectId;
|
|
8
|
+
}
|
|
9
|
+
transform(entity) {
|
|
10
|
+
return this.selectId(entity);
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
SelectIdPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: SelectIdPipe, deps: [{ token: SELECT_ID }], target: i0.ɵɵFactoryTarget.Pipe });
|
|
14
|
+
SelectIdPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "15.2.3", ngImport: i0, type: SelectIdPipe, isStandalone: true, name: "selectId" });
|
|
15
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: SelectIdPipe, decorators: [{
|
|
16
|
+
type: Pipe,
|
|
17
|
+
args: [{
|
|
18
|
+
name: 'selectId',
|
|
19
|
+
pure: true,
|
|
20
|
+
standalone: true,
|
|
21
|
+
}]
|
|
22
|
+
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
23
|
+
type: Inject,
|
|
24
|
+
args: [SELECT_ID]
|
|
25
|
+
}] }]; } });
|
|
26
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LWlkLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9AbmctYXRvbWljL2NvbW1vbi9zcmMvcGlwZXMvc2VsZWN0LWlkL3NlbGVjdC1pZC5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsY0FBYyxFQUFFLElBQUksRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFHN0QsTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUFHLElBQUksY0FBYyxDQUFXLCtCQUErQixDQUFDLENBQUM7QUFDdkYsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFhLENBQUMsTUFBVyxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO0FBT3BFLE1BQU0sT0FBTyxZQUFZO0lBQ3ZCLFlBQytCLFFBQWtCO1FBQWxCLGFBQVEsR0FBUixRQUFRLENBQVU7SUFDOUMsQ0FBQztJQUVKLFNBQVMsQ0FBQyxNQUFXO1FBQ25CLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMvQixDQUFDOzt5R0FQVSxZQUFZLGtCQUViLFNBQVM7dUdBRlIsWUFBWTsyRkFBWixZQUFZO2tCQUx4QixJQUFJO21CQUFDO29CQUNKLElBQUksRUFBRSxVQUFVO29CQUNoQixJQUFJLEVBQUUsSUFBSTtvQkFDVixVQUFVLEVBQUUsSUFBSTtpQkFDakI7OzBCQUdJLE1BQU07MkJBQUMsU0FBUyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0aW9uVG9rZW4sIFBpcGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuXG5leHBvcnQgdHlwZSBTZWxlY3RJZCA9IChlbnRpdHk6IG9iamVjdCkgPT4gc3RyaW5nIHwgbnVtYmVyO1xuZXhwb3J0IGNvbnN0IFNFTEVDVF9JRCA9IG5ldyBJbmplY3Rpb25Ub2tlbjxTZWxlY3RJZD4oJ1tAbmctYXRvbWljL2NvbW1vbl0gU2VsZWN0IElkJyk7XG5leHBvcnQgY29uc3QgZGVmYXVsdFNlbGVjdElkOiBTZWxlY3RJZCA9IChlbnRpdHk6IGFueSkgPT4gZW50aXR5LklkO1xuXG5AUGlwZSh7XG4gIG5hbWU6ICdzZWxlY3RJZCcsXG4gIHB1cmU6IHRydWUsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIFNlbGVjdElkUGlwZSB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIEBJbmplY3QoU0VMRUNUX0lEKSBwcm90ZWN0ZWQgc2VsZWN0SWQ6IFNlbGVjdElkXG4gICkge31cblxuICB0cmFuc2Zvcm0oZW50aXR5OiBhbnkpOiBzdHJpbmcgfCBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLnNlbGVjdElkKGVudGl0eSk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -11,6 +11,7 @@ export class EntitiesStore extends ComponentStore {
|
|
|
11
11
|
super(initialState);
|
|
12
12
|
this.refresh$ = new ReplaySubject(1);
|
|
13
13
|
this.entities$ = this.select(({ entities }) => entities ? entities.sort(compareById) : []);
|
|
14
|
+
this.size$ = this.select(({ entities }) => entities?.length ?? 0);
|
|
14
15
|
this.setEntities = this.updater((state, entities) => ({ ...state, entities }));
|
|
15
16
|
this.refresh();
|
|
16
17
|
}
|
|
@@ -18,4 +19,4 @@ export class EntitiesStore extends ComponentStore {
|
|
|
18
19
|
this.refresh$.next();
|
|
19
20
|
}
|
|
20
21
|
}
|
|
21
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXRpZXMuc3RvcmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9AbmctYXRvbWljL2NvbW1vbi9zcmMvc3RvcmVzL2VudGl0aWVzL2VudGl0aWVzLnN0b3JlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDdEQsT0FBTyxFQUFjLGFBQWEsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNqRCxPQUFPLEVBQUUsb0JBQW9CLEVBQTBCLE1BQU0sZ0JBQWdCLENBQUM7QUFNOUUsTUFBTSxDQUFDLE1BQU0seUJBQXlCLEdBQUcsR0FBTSxFQUFFO0lBQy9DLE9BQU8sb0JBQW9CLENBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxLQUFLLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztBQUM1RixDQUFDLENBQUM7QUFFRixNQUFNLE9BQWdCLGFBQXdFLFNBQVEsY0FBaUI7SUFHckgsSUFBSSxRQUFRLEtBQUssT0FBTyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztJQUs5QyxZQUFZLFlBQWU7UUFDekIsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBUkgsYUFBUSxHQUFHLElBQUksYUFBYSxDQUFPLENBQUMsQ0FBQyxDQUFDO1FBSXpELGNBQVMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBQyxRQUFRLEVBQUMsRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNwRixVQUFLLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUMsUUFBUSxFQUFDLEVBQUUsRUFBRSxDQUFDLFFBQVEsRUFBRSxNQUFNLElBQUksQ0FBQyxDQUFDLENBQUM7UUFPM0QsZ0JBQVcsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxFQUFFLFFBQWEsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFDLEdBQUcsS0FBSyxFQUFFLFFBQVEsRUFBQyxDQUFDLENBQUMsQ0FBQztRQUgzRSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDakIsQ0FBQztJQU1ELE9BQU87UUFDTCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3ZCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudFN0b3JlIH0gZnJvbSAnQG5ncngvY29tcG9uZW50LXN0b3JlJztcbmltcG9ydCB7IGNvbXBhcmVCeUlkIH0gZnJvbSAnQG5nLWF0b21pYy9jb21tb24vdXRpbHMnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgUmVwbGF5U3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZGlzdGluY3RVbnRpbENoYW5nZWQsIHRhcCwgZmlsdGVyLCBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRW50aXRpZXNTdGF0ZTxFPiB7XG4gIGVudGl0aWVzOiBFW11cbn1cblxuZXhwb3J0IGNvbnN0IGRpc3RpbmN0VW50aWxDaGFuZ2VkQXJyYXkgPSA8VD4oKSA9PiB7XG4gIHJldHVybiBkaXN0aW5jdFVudGlsQ2hhbmdlZDxUPigocHJlLCBjdXIpID0+IEpTT04uc3RyaW5naWZ5KHByZSkgPT09IEpTT04uc3RyaW5naWZ5KGN1cikpO1xufTtcblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEVudGl0aWVzU3RvcmU8RSBleHRlbmRzIHtpZDogc3RyaW5nfSwgUyBleHRlbmRzIEVudGl0aWVzU3RhdGU8RT4gPSBhbnk+IGV4dGVuZHMgQ29tcG9uZW50U3RvcmU8Uz4ge1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgcmVmcmVzaCQgPSBuZXcgUmVwbGF5U3ViamVjdDx2b2lkPigxKTtcblxuICBnZXQgZW50aXRpZXMoKSB7IHJldHVybiB0aGlzLmdldCgpLmVudGl0aWVzOyB9XG5cbiAgZW50aXRpZXMkID0gdGhpcy5zZWxlY3QoKHtlbnRpdGllc30pID0+IGVudGl0aWVzID8gZW50aXRpZXMuc29ydChjb21wYXJlQnlJZCkgOiBbXSk7XG4gIHNpemUkID0gdGhpcy5zZWxlY3QoKHtlbnRpdGllc30pID0+IGVudGl0aWVzPy5sZW5ndGggPz8gMCk7XG4gIFxuICBjb25zdHJ1Y3Rvcihpbml0aWFsU3RhdGU6IFMpIHtcbiAgICBzdXBlcihpbml0aWFsU3RhdGUpO1xuICAgIHRoaXMucmVmcmVzaCgpO1xuICB9XG5cbiAgc2V0RW50aXRpZXMgPSB0aGlzLnVwZGF0ZXIoKHN0YXRlLCBlbnRpdGllczogRVtdKSA9PiAoey4uLnN0YXRlLCBlbnRpdGllc30pKTtcblxuICBhYnN0cmFjdCBnZXRFbnRpdGllczogUmV0dXJuVHlwZTx0eXBlb2YgdGhpcy5lZmZlY3Q+O1xuXG4gIHJlZnJlc2goKSB7XG4gICAgdGhpcy5yZWZyZXNoJC5uZXh0KCk7XG4gIH1cbn0iXX0=
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { InjectionToken, Pipe, Inject } from '@angular/core';
|
|
3
|
+
|
|
4
|
+
const SELECT_ID = new InjectionToken('[@ng-atomic/common] Select Id');
|
|
5
|
+
const defaultSelectId = (entity) => entity.Id;
|
|
6
|
+
class SelectIdPipe {
|
|
7
|
+
constructor(selectId) {
|
|
8
|
+
this.selectId = selectId;
|
|
9
|
+
}
|
|
10
|
+
transform(entity) {
|
|
11
|
+
return this.selectId(entity);
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
SelectIdPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: SelectIdPipe, deps: [{ token: SELECT_ID }], target: i0.ɵɵFactoryTarget.Pipe });
|
|
15
|
+
SelectIdPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "15.2.3", ngImport: i0, type: SelectIdPipe, isStandalone: true, name: "selectId" });
|
|
16
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: SelectIdPipe, decorators: [{
|
|
17
|
+
type: Pipe,
|
|
18
|
+
args: [{
|
|
19
|
+
name: 'selectId',
|
|
20
|
+
pure: true,
|
|
21
|
+
standalone: true,
|
|
22
|
+
}]
|
|
23
|
+
}], ctorParameters: function () {
|
|
24
|
+
return [{ type: undefined, decorators: [{
|
|
25
|
+
type: Inject,
|
|
26
|
+
args: [SELECT_ID]
|
|
27
|
+
}] }];
|
|
28
|
+
} });
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* Generated bundle index. Do not edit.
|
|
32
|
+
*/
|
|
33
|
+
|
|
34
|
+
export { SELECT_ID, SelectIdPipe, defaultSelectId };
|
|
35
|
+
//# sourceMappingURL=ng-atomic-common-pipes-select-id.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ng-atomic-common-pipes-select-id.mjs","sources":["../../../../../packages/@ng-atomic/common/src/pipes/select-id/select-id.pipe.ts","../../../../../packages/@ng-atomic/common/src/pipes/select-id/ng-atomic-common-pipes-select-id.ts"],"sourcesContent":["import { Inject, InjectionToken, Pipe } from \"@angular/core\";\n\nexport type SelectId = (entity: object) => string | number;\nexport const SELECT_ID = new InjectionToken<SelectId>('[@ng-atomic/common] Select Id');\nexport const defaultSelectId: SelectId = (entity: any) => entity.Id;\n\n@Pipe({\n name: 'selectId',\n pure: true,\n standalone: true,\n})\nexport class SelectIdPipe {\n constructor(\n @Inject(SELECT_ID) protected selectId: SelectId\n ) {}\n\n transform(entity: any): string | number {\n return this.selectId(entity);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;MAGa,SAAS,GAAG,IAAI,cAAc,CAAW,+BAA+B,EAAE;AAChF,MAAM,eAAe,GAAa,CAAC,MAAW,KAAK,MAAM,CAAC,GAAG;MAOvD,YAAY,CAAA;AACvB,IAAA,WAAA,CAC+B,QAAkB,EAAA;AAAlB,QAAA,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAU;KAC7C;AAEJ,IAAA,SAAS,CAAC,MAAW,EAAA;AACnB,QAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;KAC9B;;AAPU,YAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,YAAY,kBAEb,SAAS,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;uGAFR,YAAY,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,UAAA,EAAA,CAAA,CAAA;2FAAZ,YAAY,EAAA,UAAA,EAAA,CAAA;kBALxB,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,UAAU;AAChB,oBAAA,IAAI,EAAE,IAAI;AACV,oBAAA,UAAU,EAAE,IAAI;iBACjB,CAAA;;;8BAGI,MAAM;+BAAC,SAAS,CAAA;;;;ACbrB;;AAEG;;;;"}
|
|
@@ -12,6 +12,7 @@ class EntitiesStore extends ComponentStore {
|
|
|
12
12
|
super(initialState);
|
|
13
13
|
this.refresh$ = new ReplaySubject(1);
|
|
14
14
|
this.entities$ = this.select(({ entities }) => entities ? entities.sort(compareById) : []);
|
|
15
|
+
this.size$ = this.select(({ entities }) => { var _a; return (_a = entities === null || entities === void 0 ? void 0 : entities.length) !== null && _a !== void 0 ? _a : 0; });
|
|
15
16
|
this.setEntities = this.updater((state, entities) => (Object.assign(Object.assign({}, state), { entities })));
|
|
16
17
|
this.refresh();
|
|
17
18
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ng-atomic-common-stores-entities.mjs","sources":["../../../../../packages/@ng-atomic/common/src/stores/entities/entities.store.ts","../../../../../packages/@ng-atomic/common/src/stores/entities/ng-atomic-common-stores-entities.ts"],"sourcesContent":["import { ComponentStore } from '@ngrx/component-store';\nimport { compareById } from '@ng-atomic/common/utils';\nimport { Observable, ReplaySubject } from 'rxjs';\nimport { distinctUntilChanged, tap, filter, switchMap } from 'rxjs/operators';\n\nexport interface EntitiesState<E> {\n entities: E[]\n}\n\nexport const distinctUntilChangedArray = <T>() => {\n return distinctUntilChanged<T>((pre, cur) => JSON.stringify(pre) === JSON.stringify(cur));\n};\n\nexport abstract class EntitiesStore<
|
|
1
|
+
{"version":3,"file":"ng-atomic-common-stores-entities.mjs","sources":["../../../../../packages/@ng-atomic/common/src/stores/entities/entities.store.ts","../../../../../packages/@ng-atomic/common/src/stores/entities/ng-atomic-common-stores-entities.ts"],"sourcesContent":["import { ComponentStore } from '@ngrx/component-store';\nimport { compareById } from '@ng-atomic/common/utils';\nimport { Observable, ReplaySubject } from 'rxjs';\nimport { distinctUntilChanged, tap, filter, switchMap } from 'rxjs/operators';\n\nexport interface EntitiesState<E> {\n entities: E[]\n}\n\nexport const distinctUntilChangedArray = <T>() => {\n return distinctUntilChanged<T>((pre, cur) => JSON.stringify(pre) === JSON.stringify(cur));\n};\n\nexport abstract class EntitiesStore<E extends {id: string}, S extends EntitiesState<E> = any> extends ComponentStore<S> {\n protected readonly refresh$ = new ReplaySubject<void>(1);\n\n get entities() { return this.get().entities; }\n\n entities$ = this.select(({entities}) => entities ? entities.sort(compareById) : []);\n size$ = this.select(({entities}) => entities?.length ?? 0);\n \n constructor(initialState: S) {\n super(initialState);\n this.refresh();\n }\n\n setEntities = this.updater((state, entities: E[]) => ({...state, entities}));\n\n abstract getEntities: ReturnType<typeof this.effect>;\n\n refresh() {\n this.refresh$.next();\n }\n}","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;AASO,MAAM,yBAAyB,GAAG,MAAQ;IAC/C,OAAO,oBAAoB,CAAI,CAAC,GAAG,EAAE,GAAG,KAAK,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;AAC5F,EAAE;AAEI,MAAgB,aAAwE,SAAQ,cAAiB,CAAA;IAGrH,IAAI,QAAQ,GAAK,EAAA,OAAO,IAAI,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,EAAE;AAK9C,IAAA,WAAA,CAAY,YAAe,EAAA;QACzB,KAAK,CAAC,YAAY,CAAC,CAAC;QARH,IAAA,CAAA,QAAQ,GAAG,IAAI,aAAa,CAAO,CAAC,CAAC,CAAC;AAIzD,QAAA,IAAS,CAAA,SAAA,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,EAAC,QAAQ,EAAC,KAAK,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC,CAAC;AACpF,QAAA,IAAA,CAAA,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,EAAC,QAAQ,EAAC,KAAI,EAAA,IAAA,EAAA,CAAA,CAAC,OAAA,CAAA,EAAA,GAAA,QAAQ,KAAA,IAAA,IAAR,QAAQ,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAR,QAAQ,CAAE,MAAM,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAI,CAAC,CAAA,EAAA,CAAC,CAAC;QAO3D,IAAW,CAAA,WAAA,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,QAAa,MAAU,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,KAAK,KAAE,QAAQ,EAAA,CAAA,CAAE,CAAC,CAAC;QAH3E,IAAI,CAAC,OAAO,EAAE,CAAC;KAChB;IAMD,OAAO,GAAA;AACL,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;KACtB;AACF;;ACjCD;;AAEG;;;;"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { InjectionToken, Pipe, Inject } from '@angular/core';
|
|
3
|
+
|
|
4
|
+
const SELECT_ID = new InjectionToken('[@ng-atomic/common] Select Id');
|
|
5
|
+
const defaultSelectId = (entity) => entity.Id;
|
|
6
|
+
class SelectIdPipe {
|
|
7
|
+
constructor(selectId) {
|
|
8
|
+
this.selectId = selectId;
|
|
9
|
+
}
|
|
10
|
+
transform(entity) {
|
|
11
|
+
return this.selectId(entity);
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
SelectIdPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: SelectIdPipe, deps: [{ token: SELECT_ID }], target: i0.ɵɵFactoryTarget.Pipe });
|
|
15
|
+
SelectIdPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "15.2.3", ngImport: i0, type: SelectIdPipe, isStandalone: true, name: "selectId" });
|
|
16
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: SelectIdPipe, decorators: [{
|
|
17
|
+
type: Pipe,
|
|
18
|
+
args: [{
|
|
19
|
+
name: 'selectId',
|
|
20
|
+
pure: true,
|
|
21
|
+
standalone: true,
|
|
22
|
+
}]
|
|
23
|
+
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
24
|
+
type: Inject,
|
|
25
|
+
args: [SELECT_ID]
|
|
26
|
+
}] }]; } });
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* Generated bundle index. Do not edit.
|
|
30
|
+
*/
|
|
31
|
+
|
|
32
|
+
export { SELECT_ID, SelectIdPipe, defaultSelectId };
|
|
33
|
+
//# sourceMappingURL=ng-atomic-common-pipes-select-id.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ng-atomic-common-pipes-select-id.mjs","sources":["../../../../../packages/@ng-atomic/common/src/pipes/select-id/select-id.pipe.ts","../../../../../packages/@ng-atomic/common/src/pipes/select-id/ng-atomic-common-pipes-select-id.ts"],"sourcesContent":["import { Inject, InjectionToken, Pipe } from \"@angular/core\";\n\nexport type SelectId = (entity: object) => string | number;\nexport const SELECT_ID = new InjectionToken<SelectId>('[@ng-atomic/common] Select Id');\nexport const defaultSelectId: SelectId = (entity: any) => entity.Id;\n\n@Pipe({\n name: 'selectId',\n pure: true,\n standalone: true,\n})\nexport class SelectIdPipe {\n constructor(\n @Inject(SELECT_ID) protected selectId: SelectId\n ) {}\n\n transform(entity: any): string | number {\n return this.selectId(entity);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;MAGa,SAAS,GAAG,IAAI,cAAc,CAAW,+BAA+B,EAAE;AAChF,MAAM,eAAe,GAAa,CAAC,MAAW,KAAK,MAAM,CAAC,GAAG;MAOvD,YAAY,CAAA;AACvB,IAAA,WAAA,CAC+B,QAAkB,EAAA;QAAlB,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAU;KAC7C;AAEJ,IAAA,SAAS,CAAC,MAAW,EAAA;AACnB,QAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;KAC9B;;AAPU,YAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,YAAY,kBAEb,SAAS,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;uGAFR,YAAY,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,UAAA,EAAA,CAAA,CAAA;2FAAZ,YAAY,EAAA,UAAA,EAAA,CAAA;kBALxB,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,UAAU;AAChB,oBAAA,IAAI,EAAE,IAAI;AACV,oBAAA,UAAU,EAAE,IAAI;AACjB,iBAAA,CAAA;;0BAGI,MAAM;2BAAC,SAAS,CAAA;;;ACbrB;;AAEG;;;;"}
|
|
@@ -12,6 +12,7 @@ class EntitiesStore extends ComponentStore {
|
|
|
12
12
|
super(initialState);
|
|
13
13
|
this.refresh$ = new ReplaySubject(1);
|
|
14
14
|
this.entities$ = this.select(({ entities }) => entities ? entities.sort(compareById) : []);
|
|
15
|
+
this.size$ = this.select(({ entities }) => entities?.length ?? 0);
|
|
15
16
|
this.setEntities = this.updater((state, entities) => ({ ...state, entities }));
|
|
16
17
|
this.refresh();
|
|
17
18
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ng-atomic-common-stores-entities.mjs","sources":["../../../../../packages/@ng-atomic/common/src/stores/entities/entities.store.ts","../../../../../packages/@ng-atomic/common/src/stores/entities/ng-atomic-common-stores-entities.ts"],"sourcesContent":["import { ComponentStore } from '@ngrx/component-store';\nimport { compareById } from '@ng-atomic/common/utils';\nimport { Observable, ReplaySubject } from 'rxjs';\nimport { distinctUntilChanged, tap, filter, switchMap } from 'rxjs/operators';\n\nexport interface EntitiesState<E> {\n entities: E[]\n}\n\nexport const distinctUntilChangedArray = <T>() => {\n return distinctUntilChanged<T>((pre, cur) => JSON.stringify(pre) === JSON.stringify(cur));\n};\n\nexport abstract class EntitiesStore<
|
|
1
|
+
{"version":3,"file":"ng-atomic-common-stores-entities.mjs","sources":["../../../../../packages/@ng-atomic/common/src/stores/entities/entities.store.ts","../../../../../packages/@ng-atomic/common/src/stores/entities/ng-atomic-common-stores-entities.ts"],"sourcesContent":["import { ComponentStore } from '@ngrx/component-store';\nimport { compareById } from '@ng-atomic/common/utils';\nimport { Observable, ReplaySubject } from 'rxjs';\nimport { distinctUntilChanged, tap, filter, switchMap } from 'rxjs/operators';\n\nexport interface EntitiesState<E> {\n entities: E[]\n}\n\nexport const distinctUntilChangedArray = <T>() => {\n return distinctUntilChanged<T>((pre, cur) => JSON.stringify(pre) === JSON.stringify(cur));\n};\n\nexport abstract class EntitiesStore<E extends {id: string}, S extends EntitiesState<E> = any> extends ComponentStore<S> {\n protected readonly refresh$ = new ReplaySubject<void>(1);\n\n get entities() { return this.get().entities; }\n\n entities$ = this.select(({entities}) => entities ? entities.sort(compareById) : []);\n size$ = this.select(({entities}) => entities?.length ?? 0);\n \n constructor(initialState: S) {\n super(initialState);\n this.refresh();\n }\n\n setEntities = this.updater((state, entities: E[]) => ({...state, entities}));\n\n abstract getEntities: ReturnType<typeof this.effect>;\n\n refresh() {\n this.refresh$.next();\n }\n}","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;AASO,MAAM,yBAAyB,GAAG,MAAQ;IAC/C,OAAO,oBAAoB,CAAI,CAAC,GAAG,EAAE,GAAG,KAAK,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;AAC5F,EAAE;AAEI,MAAgB,aAAwE,SAAQ,cAAiB,CAAA;IAGrH,IAAI,QAAQ,GAAK,EAAA,OAAO,IAAI,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,EAAE;AAK9C,IAAA,WAAA,CAAY,YAAe,EAAA;QACzB,KAAK,CAAC,YAAY,CAAC,CAAC;AARH,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,aAAa,CAAO,CAAC,CAAC,CAAC;QAIzD,IAAS,CAAA,SAAA,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,EAAC,QAAQ,EAAC,KAAK,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC,CAAC;AACpF,QAAA,IAAA,CAAA,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,EAAC,QAAQ,EAAC,KAAK,QAAQ,EAAE,MAAM,IAAI,CAAC,CAAC,CAAC;QAO3D,IAAW,CAAA,WAAA,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,QAAa,MAAM,EAAC,GAAG,KAAK,EAAE,QAAQ,EAAC,CAAC,CAAC,CAAC;QAH3E,IAAI,CAAC,OAAO,EAAE,CAAC;KAChB;IAMD,OAAO,GAAA;AACL,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;KACtB;AACF;;ACjCD;;AAEG;;;;"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ng-atomic/common",
|
|
3
|
-
"version": "5.
|
|
3
|
+
"version": "5.9.0",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"module": "fesm2015/ng-atomic-common.mjs",
|
|
6
6
|
"es2020": "fesm2020/ng-atomic-common.mjs",
|
|
@@ -60,6 +60,14 @@
|
|
|
60
60
|
"node": "./fesm2015/ng-atomic-common-pipes-pagination.mjs",
|
|
61
61
|
"default": "./fesm2020/ng-atomic-common-pipes-pagination.mjs"
|
|
62
62
|
},
|
|
63
|
+
"./pipes/select-id": {
|
|
64
|
+
"types": "./pipes/select-id/index.d.ts",
|
|
65
|
+
"esm2020": "./esm2020/pipes/select-id/ng-atomic-common-pipes-select-id.mjs",
|
|
66
|
+
"es2020": "./fesm2020/ng-atomic-common-pipes-select-id.mjs",
|
|
67
|
+
"es2015": "./fesm2015/ng-atomic-common-pipes-select-id.mjs",
|
|
68
|
+
"node": "./fesm2015/ng-atomic-common-pipes-select-id.mjs",
|
|
69
|
+
"default": "./fesm2020/ng-atomic-common-pipes-select-id.mjs"
|
|
70
|
+
},
|
|
63
71
|
"./pipes/smart-exp": {
|
|
64
72
|
"types": "./pipes/smart-exp/index.d.ts",
|
|
65
73
|
"esm2020": "./esm2020/pipes/smart-exp/ng-atomic-common-pipes-smart-exp.mjs",
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './select-id.pipe';
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { InjectionToken } from "@angular/core";
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export type SelectId = (entity: object) => string | number;
|
|
4
|
+
export declare const SELECT_ID: InjectionToken<SelectId>;
|
|
5
|
+
export declare const defaultSelectId: SelectId;
|
|
6
|
+
export declare class SelectIdPipe {
|
|
7
|
+
protected selectId: SelectId;
|
|
8
|
+
constructor(selectId: SelectId);
|
|
9
|
+
transform(entity: any): string | number;
|
|
10
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<SelectIdPipe, never>;
|
|
11
|
+
static ɵpipe: i0.ɵɵPipeDeclaration<SelectIdPipe, "selectId", true>;
|
|
12
|
+
}
|
|
@@ -4,12 +4,13 @@ export interface EntitiesState<E> {
|
|
|
4
4
|
entities: E[];
|
|
5
5
|
}
|
|
6
6
|
export declare const distinctUntilChangedArray: <T>() => import("rxjs").MonoTypeOperatorFunction<T>;
|
|
7
|
-
export declare abstract class EntitiesStore<
|
|
7
|
+
export declare abstract class EntitiesStore<E extends {
|
|
8
8
|
id: string;
|
|
9
|
-
} = any> extends ComponentStore<S> {
|
|
9
|
+
}, S extends EntitiesState<E> = any> extends ComponentStore<S> {
|
|
10
10
|
protected readonly refresh$: ReplaySubject<void>;
|
|
11
11
|
get entities(): E[];
|
|
12
12
|
entities$: Observable<E[]>;
|
|
13
|
+
size$: Observable<number>;
|
|
13
14
|
constructor(initialState: S);
|
|
14
15
|
setEntities: (observableOrValue: E[] | Observable<E[]>) => import("rxjs").Subscription;
|
|
15
16
|
abstract getEntities: ReturnType<typeof this.effect>;
|