@artstesh/maps 5.1.5 → 5.1.7

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.
Files changed (42) hide show
  1. package/dist/esm2022/map/messages/commands/draw-selection-area.command.mjs +1 -1
  2. package/dist/esm2022/map/messages/commands/fit-to-polygons.command.mjs +15 -0
  3. package/dist/esm2022/map/messages/index.mjs +2 -1
  4. package/dist/esm2022/map/messages/queries/get-features-in-area.query.mjs +1 -1
  5. package/dist/esm2022/map/models/index.mjs +1 -2
  6. package/dist/esm2022/map/models/map-settings.mjs +2 -2
  7. package/dist/esm2022/map/services/drawing/drawing.service.mjs +3 -2
  8. package/dist/esm2022/map/services/map-feature.service.mjs +18 -4
  9. package/dist/esm2022/map/services/map-management.service.mjs +2 -2
  10. package/dist/esm2022/map/services/message-registrator.service.mjs +3 -2
  11. package/dist/esm2022/src/map/messages/commands/draw-selection-area.command.mjs +1 -1
  12. package/dist/esm2022/src/map/messages/commands/fit-to-polygons.command.mjs +15 -0
  13. package/dist/esm2022/src/map/messages/index.mjs +2 -1
  14. package/dist/esm2022/src/map/messages/queries/get-features-in-area.query.mjs +1 -1
  15. package/dist/esm2022/src/map/models/index.mjs +1 -2
  16. package/dist/esm2022/src/map/models/map-settings.mjs +2 -2
  17. package/dist/esm2022/src/map/services/drawing/drawing.service.mjs +3 -2
  18. package/dist/esm2022/src/map/services/map-feature.service.mjs +18 -4
  19. package/dist/esm2022/src/map/services/map-management.service.mjs +2 -2
  20. package/dist/esm2022/src/map/services/message-registrator.service.mjs +3 -2
  21. package/dist/fesm2022/maps-components-src-map.mjs +34 -58
  22. package/dist/fesm2022/maps-components-src-map.mjs.map +1 -1
  23. package/dist/fesm2022/maps-components.mjs +34 -58
  24. package/dist/fesm2022/maps-components.mjs.map +1 -1
  25. package/dist/map/messages/commands/draw-selection-area.command.d.ts +2 -1
  26. package/dist/map/messages/commands/fit-to-polygons.command.d.ts +9 -0
  27. package/dist/map/messages/index.d.ts +1 -0
  28. package/dist/map/messages/queries/get-features-in-area.query.d.ts +1 -1
  29. package/dist/map/models/index.d.ts +0 -1
  30. package/dist/map/services/map-feature.service.d.ts +2 -0
  31. package/dist/package.json +2 -1
  32. package/dist/src/map/messages/commands/draw-selection-area.command.d.ts +2 -1
  33. package/dist/src/map/messages/commands/fit-to-polygons.command.d.ts +9 -0
  34. package/dist/src/map/messages/index.d.ts +1 -0
  35. package/dist/src/map/messages/queries/get-features-in-area.query.d.ts +1 -1
  36. package/dist/src/map/models/index.d.ts +0 -1
  37. package/dist/src/map/services/map-feature.service.d.ts +2 -0
  38. package/package.json +3 -2
  39. package/dist/esm2022/map/models/dictionary.mjs +0 -54
  40. package/dist/esm2022/src/map/models/dictionary.mjs +0 -54
  41. package/dist/map/models/dictionary.d.ts +0 -17
  42. package/dist/src/map/models/dictionary.d.ts +0 -17
@@ -1,7 +1,8 @@
1
1
  import { PostboyCallbackMessage } from '@artstesh/postboy';
2
- import { Dictionary, DrawingType } from '../../models';
3
2
  import Style from 'ol/style/Style';
4
3
  import { IIdentified } from '../../models/i-identified';
4
+ import { Dictionary } from '@artstesh/collections';
5
+ import { DrawingType } from '../../models';
5
6
  export declare class DrawSelectionAreaCommand extends PostboyCallbackMessage<Dictionary<IIdentified[]>> {
6
7
  type: DrawingType;
7
8
  style: Style;
@@ -0,0 +1,9 @@
1
+ import { PostboyGenericMessage } from '@artstesh/postboy';
2
+ import { PolygonModel } from '../../models';
3
+ export declare class FitToPolygonsCommand extends PostboyGenericMessage {
4
+ features: PolygonModel[];
5
+ zoomAfter: number;
6
+ static readonly ID: string;
7
+ constructor(features: PolygonModel[], zoomAfter?: number);
8
+ get id(): string;
9
+ }
@@ -11,3 +11,4 @@ export * from './commands/add-control.command';
11
11
  export * from './commands/remove-control.command';
12
12
  export * from './commands/set-map-center.command';
13
13
  export * from './executors/calculate-area.executor';
14
+ export * from './commands/fit-to-polygons.command';
@@ -1,7 +1,7 @@
1
1
  import { PostboyCallbackMessage } from '@artstesh/postboy';
2
2
  import { Geometry } from 'ol/geom';
3
- import { Dictionary } from '../../models';
4
3
  import { IIdentified } from '../../models/i-identified';
4
+ import { Dictionary } from '@artstesh/collections';
5
5
  export declare class GetFeaturesInAreaQuery extends PostboyCallbackMessage<Dictionary<IIdentified[]>> {
6
6
  area: Geometry;
7
7
  ignore: Set<string>;
@@ -4,5 +4,4 @@ export * from './marker-model';
4
4
  export * from './polygon.model';
5
5
  export * from './drawing-type.enum';
6
6
  export * from './feature-format.enum';
7
- export * from './dictionary';
8
7
  export * from './map-control';
@@ -4,10 +4,12 @@ import * as i0 from "@angular/core";
4
4
  export declare class MapFeatureService implements IPostboyDependingService {
5
5
  private postboy;
6
6
  private map?;
7
+ private fitPolygonsWaiting?;
7
8
  constructor(postboy: MapPostboyService);
8
9
  up(): void;
9
10
  private observeMapRender;
10
11
  private observeFitToFeatures;
12
+ private observeFitToPolygons;
11
13
  private fitToGeometries;
12
14
  static ɵfac: i0.ɵɵFactoryDeclaration<MapFeatureService, never>;
13
15
  static ɵprov: i0.ɵɵInjectableDeclaration<MapFeatureService>;
package/dist/package.json CHANGED
@@ -6,7 +6,8 @@
6
6
  "@angular/core": "^16.0.0",
7
7
  "ol-geocoder": "^4.0.0",
8
8
  "ol": "^6.9.0",
9
- "@artstesh/postboy": "1.0.8"
9
+ "@artstesh/postboy": "^1.0.8",
10
+ "@artstesh/collections": "^1.0.0"
10
11
  },
11
12
  "dependencies": {
12
13
  "tslib": "^2.2.0"
@@ -1,7 +1,8 @@
1
1
  import { PostboyCallbackMessage } from '@artstesh/postboy';
2
- import { Dictionary, DrawingType } from '../../models';
3
2
  import Style from 'ol/style/Style';
4
3
  import { IIdentified } from '../../models/i-identified';
4
+ import { Dictionary } from '@artstesh/collections';
5
+ import { DrawingType } from '../../models';
5
6
  export declare class DrawSelectionAreaCommand extends PostboyCallbackMessage<Dictionary<IIdentified[]>> {
6
7
  type: DrawingType;
7
8
  style: Style;
@@ -0,0 +1,9 @@
1
+ import { PostboyGenericMessage } from '@artstesh/postboy';
2
+ import { PolygonModel } from '../../models';
3
+ export declare class FitToPolygonsCommand extends PostboyGenericMessage {
4
+ features: PolygonModel[];
5
+ zoomAfter: number;
6
+ static readonly ID: string;
7
+ constructor(features: PolygonModel[], zoomAfter?: number);
8
+ get id(): string;
9
+ }
@@ -11,3 +11,4 @@ export * from './commands/add-control.command';
11
11
  export * from './commands/remove-control.command';
12
12
  export * from './commands/set-map-center.command';
13
13
  export * from './executors/calculate-area.executor';
14
+ export * from './commands/fit-to-polygons.command';
@@ -1,7 +1,7 @@
1
1
  import { PostboyCallbackMessage } from '@artstesh/postboy';
2
2
  import { Geometry } from 'ol/geom';
3
- import { Dictionary } from '../../models';
4
3
  import { IIdentified } from '../../models/i-identified';
4
+ import { Dictionary } from '@artstesh/collections';
5
5
  export declare class GetFeaturesInAreaQuery extends PostboyCallbackMessage<Dictionary<IIdentified[]>> {
6
6
  area: Geometry;
7
7
  ignore: Set<string>;
@@ -4,5 +4,4 @@ export * from './marker-model';
4
4
  export * from './polygon.model';
5
5
  export * from './drawing-type.enum';
6
6
  export * from './feature-format.enum';
7
- export * from './dictionary';
8
7
  export * from './map-control';
@@ -4,10 +4,12 @@ import * as i0 from "@angular/core";
4
4
  export declare class MapFeatureService implements IPostboyDependingService {
5
5
  private postboy;
6
6
  private map?;
7
+ private fitPolygonsWaiting?;
7
8
  constructor(postboy: MapPostboyService);
8
9
  up(): void;
9
10
  private observeMapRender;
10
11
  private observeFitToFeatures;
12
+ private observeFitToPolygons;
11
13
  private fitToGeometries;
12
14
  static ɵfac: i0.ɵɵFactoryDeclaration<MapFeatureService, never>;
13
15
  static ɵprov: i0.ɵɵInjectableDeclaration<MapFeatureService>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@artstesh/maps",
3
- "version": "5.1.5",
3
+ "version": "5.1.7",
4
4
  "author": "artstesh",
5
5
  "license": "MIT",
6
6
  "description": "Let's draw a map ;)",
@@ -44,7 +44,8 @@
44
44
  "zone.js": "~0.13.0",
45
45
  "ol-geocoder": "^4.0.0",
46
46
  "ol": "^6.9.0",
47
- "@artstesh/postboy": "1.0.8"
47
+ "@artstesh/postboy": "1.0.8",
48
+ "@artstesh/collections": "^1.0.0"
48
49
  },
49
50
  "devDependencies": {
50
51
  "@angular-builders/custom-webpack": "^16.0.0",
@@ -1,54 +0,0 @@
1
- export class Dictionary {
2
- collection = {};
3
- _keys = new Set();
4
- get keys() {
5
- return Array.from(this._keys);
6
- }
7
- get size() {
8
- return this._keys.size;
9
- }
10
- static clone(dic, action) {
11
- return Dictionary.create(dic.collection, action);
12
- }
13
- static create(dic, action) {
14
- let keyList = Object.keys(dic);
15
- const result = new Dictionary();
16
- for (let i = 0; i < keyList.length; i++) {
17
- let key = keyList[i];
18
- result._keys.add(key);
19
- result.collection[key] = action ? action(dic[key], key) : dic[key];
20
- }
21
- return result;
22
- }
23
- find(predicate) {
24
- let result = null;
25
- this.forEach((e) => {
26
- if (result === null && predicate(e))
27
- result = e;
28
- });
29
- return result;
30
- }
31
- has = (key) => this._keys.has(key);
32
- take(key) {
33
- return this._keys.has(key) ? this.collection[key] : null;
34
- }
35
- put(key, value) {
36
- if (value == null)
37
- return;
38
- this.collection[key] = value;
39
- this._keys.add(key);
40
- }
41
- rmv(key) {
42
- if (!this._keys.has(key))
43
- return;
44
- delete this.collection[key];
45
- this._keys.delete(key);
46
- }
47
- forEach(callback) {
48
- let keys = Object.keys(this.collection);
49
- for (let i = 0; i < keys.length; i++) {
50
- callback(this.collection[keys[i]], i);
51
- }
52
- }
53
- }
54
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGljdGlvbmFyeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL21hcHMtY29tcG9uZW50cy9zcmMvbWFwL21vZGVscy9kaWN0aW9uYXJ5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sT0FBTyxVQUFVO0lBQ2QsVUFBVSxHQUFzQixFQUFFLENBQUM7SUFDbEMsS0FBSyxHQUFHLElBQUksR0FBRyxFQUFVLENBQUM7SUFFbEMsSUFBVyxJQUFJO1FBQ2IsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBRUQsSUFBVyxJQUFJO1FBQ2IsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQztJQUN6QixDQUFDO0lBRU0sTUFBTSxDQUFDLEtBQUssQ0FBSSxHQUFrQixFQUFFLE1BQStCO1FBQ3hFLE9BQU8sVUFBVSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsVUFBVSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFFTSxNQUFNLENBQUMsTUFBTSxDQUFJLEdBQXNCLEVBQUUsTUFBK0I7UUFDN0UsSUFBSSxPQUFPLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUMvQixNQUFNLE1BQU0sR0FBRyxJQUFJLFVBQVUsRUFBSyxDQUFDO1FBQ25DLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQ3ZDLElBQUksR0FBRyxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNyQixNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUN0QixNQUFNLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQ3BFO1FBQ0QsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVNLElBQUksQ0FBQyxTQUFnQztRQUMxQyxJQUFJLE1BQU0sR0FBYSxJQUFJLENBQUM7UUFDNUIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQ2pCLElBQUksTUFBTSxLQUFLLElBQUksSUFBSSxTQUFTLENBQUMsQ0FBQyxDQUFDO2dCQUFFLE1BQU0sR0FBRyxDQUFDLENBQUM7UUFDbEQsQ0FBQyxDQUFDLENBQUM7UUFDSCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRU0sR0FBRyxHQUFHLENBQUMsR0FBVyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUUzQyxJQUFJLENBQUMsR0FBVztRQUNyQixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDM0QsQ0FBQztJQUVNLEdBQUcsQ0FBQyxHQUFXLEVBQUUsS0FBZ0I7UUFDdEMsSUFBSSxLQUFLLElBQUksSUFBSTtZQUFFLE9BQU87UUFDMUIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsR0FBRyxLQUFLLENBQUM7UUFDN0IsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDdEIsQ0FBQztJQUVNLEdBQUcsQ0FBQyxHQUFXO1FBQ3BCLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUM7WUFBRSxPQUFPO1FBQ2pDLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUM1QixJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUN6QixDQUFDO0lBRU0sT0FBTyxDQUFDLFFBQTJDO1FBQ3hELElBQUksSUFBSSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3hDLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQ3BDLFFBQVEsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1NBQ3ZDO0lBQ0gsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNsYXNzIERpY3Rpb25hcnk8VD4ge1xuICBwdWJsaWMgY29sbGVjdGlvbjogRGljdGlvbmFyeVR5cGU8VD4gPSB7fTtcbiAgcHJpdmF0ZSBfa2V5cyA9IG5ldyBTZXQ8c3RyaW5nPigpO1xuXG4gIHB1YmxpYyBnZXQga2V5cygpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIEFycmF5LmZyb20odGhpcy5fa2V5cyk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHNpemUoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5fa2V5cy5zaXplO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBjbG9uZTxUPihkaWM6IERpY3Rpb25hcnk8VD4sIGFjdGlvbj86IChlOiBULCBrOiBzdHJpbmcpID0+IFQpOiBEaWN0aW9uYXJ5PFQ+IHtcbiAgICByZXR1cm4gRGljdGlvbmFyeS5jcmVhdGUoZGljLmNvbGxlY3Rpb24sIGFjdGlvbik7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGNyZWF0ZTxUPihkaWM6IERpY3Rpb25hcnlUeXBlPFQ+LCBhY3Rpb24/OiAoZTogVCwgazogc3RyaW5nKSA9PiBUKTogRGljdGlvbmFyeTxUPiB7XG4gICAgbGV0IGtleUxpc3QgPSBPYmplY3Qua2V5cyhkaWMpO1xuICAgIGNvbnN0IHJlc3VsdCA9IG5ldyBEaWN0aW9uYXJ5PFQ+KCk7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBrZXlMaXN0Lmxlbmd0aDsgaSsrKSB7XG4gICAgICBsZXQga2V5ID0ga2V5TGlzdFtpXTtcbiAgICAgIHJlc3VsdC5fa2V5cy5hZGQoa2V5KTtcbiAgICAgIHJlc3VsdC5jb2xsZWN0aW9uW2tleV0gPSBhY3Rpb24gPyBhY3Rpb24oZGljW2tleV0sIGtleSkgOiBkaWNba2V5XTtcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIHB1YmxpYyBmaW5kKHByZWRpY2F0ZTogKHZhbHVlOiBUKSA9PiBib29sZWFuKTogVCB8IG51bGwge1xuICAgIGxldCByZXN1bHQ6IFQgfCBudWxsID0gbnVsbDtcbiAgICB0aGlzLmZvckVhY2goKGUpID0+IHtcbiAgICAgIGlmIChyZXN1bHQgPT09IG51bGwgJiYgcHJlZGljYXRlKGUpKSByZXN1bHQgPSBlO1xuICAgIH0pO1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBwdWJsaWMgaGFzID0gKGtleTogc3RyaW5nKSA9PiB0aGlzLl9rZXlzLmhhcyhrZXkpO1xuXG4gIHB1YmxpYyB0YWtlKGtleTogc3RyaW5nKTogVCB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLl9rZXlzLmhhcyhrZXkpID8gdGhpcy5jb2xsZWN0aW9uW2tleV0gOiBudWxsO1xuICB9XG5cbiAgcHVibGljIHB1dChrZXk6IHN0cmluZywgdmFsdWU/OiBUIHwgbnVsbCk6IHZvaWQge1xuICAgIGlmICh2YWx1ZSA9PSBudWxsKSByZXR1cm47XG4gICAgdGhpcy5jb2xsZWN0aW9uW2tleV0gPSB2YWx1ZTtcbiAgICB0aGlzLl9rZXlzLmFkZChrZXkpO1xuICB9XG5cbiAgcHVibGljIHJtdihrZXk6IHN0cmluZyk6IHZvaWQge1xuICAgIGlmICghdGhpcy5fa2V5cy5oYXMoa2V5KSkgcmV0dXJuO1xuICAgIGRlbGV0ZSB0aGlzLmNvbGxlY3Rpb25ba2V5XTtcbiAgICB0aGlzLl9rZXlzLmRlbGV0ZShrZXkpO1xuICB9XG5cbiAgcHVibGljIGZvckVhY2goY2FsbGJhY2s6ICh2YWx1ZTogVCwgaW5kZXg6IG51bWJlcikgPT4gdm9pZCk6IHZvaWQge1xuICAgIGxldCBrZXlzID0gT2JqZWN0LmtleXModGhpcy5jb2xsZWN0aW9uKTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGtleXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGNhbGxiYWNrKHRoaXMuY29sbGVjdGlvbltrZXlzW2ldXSwgaSk7XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCB0eXBlIERpY3Rpb25hcnlUeXBlPFQ+ID0geyBbaWQ6IHN0cmluZ106IFQgfTtcbiJdfQ==
@@ -1,54 +0,0 @@
1
- export class Dictionary {
2
- collection = {};
3
- _keys = new Set();
4
- get keys() {
5
- return Array.from(this._keys);
6
- }
7
- get size() {
8
- return this._keys.size;
9
- }
10
- static clone(dic, action) {
11
- return Dictionary.create(dic.collection, action);
12
- }
13
- static create(dic, action) {
14
- let keyList = Object.keys(dic);
15
- const result = new Dictionary();
16
- for (let i = 0; i < keyList.length; i++) {
17
- let key = keyList[i];
18
- result._keys.add(key);
19
- result.collection[key] = action ? action(dic[key], key) : dic[key];
20
- }
21
- return result;
22
- }
23
- find(predicate) {
24
- let result = null;
25
- this.forEach((e) => {
26
- if (result === null && predicate(e))
27
- result = e;
28
- });
29
- return result;
30
- }
31
- has = (key) => this._keys.has(key);
32
- take(key) {
33
- return this._keys.has(key) ? this.collection[key] : null;
34
- }
35
- put(key, value) {
36
- if (value == null)
37
- return;
38
- this.collection[key] = value;
39
- this._keys.add(key);
40
- }
41
- rmv(key) {
42
- if (!this._keys.has(key))
43
- return;
44
- delete this.collection[key];
45
- this._keys.delete(key);
46
- }
47
- forEach(callback) {
48
- let keys = Object.keys(this.collection);
49
- for (let i = 0; i < keys.length; i++) {
50
- callback(this.collection[keys[i]], i);
51
- }
52
- }
53
- }
54
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGljdGlvbmFyeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21hcHMtY29tcG9uZW50cy9zcmMvbWFwL21vZGVscy9kaWN0aW9uYXJ5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sT0FBTyxVQUFVO0lBQ2QsVUFBVSxHQUFzQixFQUFFLENBQUM7SUFDbEMsS0FBSyxHQUFHLElBQUksR0FBRyxFQUFVLENBQUM7SUFFbEMsSUFBVyxJQUFJO1FBQ2IsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBRUQsSUFBVyxJQUFJO1FBQ2IsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQztJQUN6QixDQUFDO0lBRU0sTUFBTSxDQUFDLEtBQUssQ0FBSSxHQUFrQixFQUFFLE1BQStCO1FBQ3hFLE9BQU8sVUFBVSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsVUFBVSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFFTSxNQUFNLENBQUMsTUFBTSxDQUFJLEdBQXNCLEVBQUUsTUFBK0I7UUFDN0UsSUFBSSxPQUFPLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUMvQixNQUFNLE1BQU0sR0FBRyxJQUFJLFVBQVUsRUFBSyxDQUFDO1FBQ25DLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQ3ZDLElBQUksR0FBRyxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNyQixNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUN0QixNQUFNLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQ3BFO1FBQ0QsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVNLElBQUksQ0FBQyxTQUFnQztRQUMxQyxJQUFJLE1BQU0sR0FBYSxJQUFJLENBQUM7UUFDNUIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQ2pCLElBQUksTUFBTSxLQUFLLElBQUksSUFBSSxTQUFTLENBQUMsQ0FBQyxDQUFDO2dCQUFFLE1BQU0sR0FBRyxDQUFDLENBQUM7UUFDbEQsQ0FBQyxDQUFDLENBQUM7UUFDSCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRU0sR0FBRyxHQUFHLENBQUMsR0FBVyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUUzQyxJQUFJLENBQUMsR0FBVztRQUNyQixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDM0QsQ0FBQztJQUVNLEdBQUcsQ0FBQyxHQUFXLEVBQUUsS0FBZ0I7UUFDdEMsSUFBSSxLQUFLLElBQUksSUFBSTtZQUFFLE9BQU87UUFDMUIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsR0FBRyxLQUFLLENBQUM7UUFDN0IsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDdEIsQ0FBQztJQUVNLEdBQUcsQ0FBQyxHQUFXO1FBQ3BCLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUM7WUFBRSxPQUFPO1FBQ2pDLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUM1QixJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUN6QixDQUFDO0lBRU0sT0FBTyxDQUFDLFFBQTJDO1FBQ3hELElBQUksSUFBSSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3hDLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQ3BDLFFBQVEsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1NBQ3ZDO0lBQ0gsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNsYXNzIERpY3Rpb25hcnk8VD4ge1xuICBwdWJsaWMgY29sbGVjdGlvbjogRGljdGlvbmFyeVR5cGU8VD4gPSB7fTtcbiAgcHJpdmF0ZSBfa2V5cyA9IG5ldyBTZXQ8c3RyaW5nPigpO1xuXG4gIHB1YmxpYyBnZXQga2V5cygpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIEFycmF5LmZyb20odGhpcy5fa2V5cyk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHNpemUoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5fa2V5cy5zaXplO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBjbG9uZTxUPihkaWM6IERpY3Rpb25hcnk8VD4sIGFjdGlvbj86IChlOiBULCBrOiBzdHJpbmcpID0+IFQpOiBEaWN0aW9uYXJ5PFQ+IHtcbiAgICByZXR1cm4gRGljdGlvbmFyeS5jcmVhdGUoZGljLmNvbGxlY3Rpb24sIGFjdGlvbik7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGNyZWF0ZTxUPihkaWM6IERpY3Rpb25hcnlUeXBlPFQ+LCBhY3Rpb24/OiAoZTogVCwgazogc3RyaW5nKSA9PiBUKTogRGljdGlvbmFyeTxUPiB7XG4gICAgbGV0IGtleUxpc3QgPSBPYmplY3Qua2V5cyhkaWMpO1xuICAgIGNvbnN0IHJlc3VsdCA9IG5ldyBEaWN0aW9uYXJ5PFQ+KCk7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBrZXlMaXN0Lmxlbmd0aDsgaSsrKSB7XG4gICAgICBsZXQga2V5ID0ga2V5TGlzdFtpXTtcbiAgICAgIHJlc3VsdC5fa2V5cy5hZGQoa2V5KTtcbiAgICAgIHJlc3VsdC5jb2xsZWN0aW9uW2tleV0gPSBhY3Rpb24gPyBhY3Rpb24oZGljW2tleV0sIGtleSkgOiBkaWNba2V5XTtcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIHB1YmxpYyBmaW5kKHByZWRpY2F0ZTogKHZhbHVlOiBUKSA9PiBib29sZWFuKTogVCB8IG51bGwge1xuICAgIGxldCByZXN1bHQ6IFQgfCBudWxsID0gbnVsbDtcbiAgICB0aGlzLmZvckVhY2goKGUpID0+IHtcbiAgICAgIGlmIChyZXN1bHQgPT09IG51bGwgJiYgcHJlZGljYXRlKGUpKSByZXN1bHQgPSBlO1xuICAgIH0pO1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBwdWJsaWMgaGFzID0gKGtleTogc3RyaW5nKSA9PiB0aGlzLl9rZXlzLmhhcyhrZXkpO1xuXG4gIHB1YmxpYyB0YWtlKGtleTogc3RyaW5nKTogVCB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLl9rZXlzLmhhcyhrZXkpID8gdGhpcy5jb2xsZWN0aW9uW2tleV0gOiBudWxsO1xuICB9XG5cbiAgcHVibGljIHB1dChrZXk6IHN0cmluZywgdmFsdWU/OiBUIHwgbnVsbCk6IHZvaWQge1xuICAgIGlmICh2YWx1ZSA9PSBudWxsKSByZXR1cm47XG4gICAgdGhpcy5jb2xsZWN0aW9uW2tleV0gPSB2YWx1ZTtcbiAgICB0aGlzLl9rZXlzLmFkZChrZXkpO1xuICB9XG5cbiAgcHVibGljIHJtdihrZXk6IHN0cmluZyk6IHZvaWQge1xuICAgIGlmICghdGhpcy5fa2V5cy5oYXMoa2V5KSkgcmV0dXJuO1xuICAgIGRlbGV0ZSB0aGlzLmNvbGxlY3Rpb25ba2V5XTtcbiAgICB0aGlzLl9rZXlzLmRlbGV0ZShrZXkpO1xuICB9XG5cbiAgcHVibGljIGZvckVhY2goY2FsbGJhY2s6ICh2YWx1ZTogVCwgaW5kZXg6IG51bWJlcikgPT4gdm9pZCk6IHZvaWQge1xuICAgIGxldCBrZXlzID0gT2JqZWN0LmtleXModGhpcy5jb2xsZWN0aW9uKTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGtleXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGNhbGxiYWNrKHRoaXMuY29sbGVjdGlvbltrZXlzW2ldXSwgaSk7XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCB0eXBlIERpY3Rpb25hcnlUeXBlPFQ+ID0geyBbaWQ6IHN0cmluZ106IFQgfTtcbiJdfQ==
@@ -1,17 +0,0 @@
1
- export declare class Dictionary<T> {
2
- collection: DictionaryType<T>;
3
- private _keys;
4
- get keys(): string[];
5
- get size(): number;
6
- static clone<T>(dic: Dictionary<T>, action?: (e: T, k: string) => T): Dictionary<T>;
7
- static create<T>(dic: DictionaryType<T>, action?: (e: T, k: string) => T): Dictionary<T>;
8
- find(predicate: (value: T) => boolean): T | null;
9
- has: (key: string) => boolean;
10
- take(key: string): T | null;
11
- put(key: string, value?: T | null): void;
12
- rmv(key: string): void;
13
- forEach(callback: (value: T, index: number) => void): void;
14
- }
15
- export type DictionaryType<T> = {
16
- [id: string]: T;
17
- };
@@ -1,17 +0,0 @@
1
- export declare class Dictionary<T> {
2
- collection: DictionaryType<T>;
3
- private _keys;
4
- get keys(): string[];
5
- get size(): number;
6
- static clone<T>(dic: Dictionary<T>, action?: (e: T, k: string) => T): Dictionary<T>;
7
- static create<T>(dic: DictionaryType<T>, action?: (e: T, k: string) => T): Dictionary<T>;
8
- find(predicate: (value: T) => boolean): T | null;
9
- has: (key: string) => boolean;
10
- take(key: string): T | null;
11
- put(key: string, value?: T | null): void;
12
- rmv(key: string): void;
13
- forEach(callback: (value: T, index: number) => void): void;
14
- }
15
- export type DictionaryType<T> = {
16
- [id: string]: T;
17
- };