@artstesh/maps 4.1.7 → 4.1.8

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 (44) hide show
  1. package/dist/esm2020/map/messages/commands/draw-selection-area.command.mjs +1 -1
  2. package/dist/esm2020/map/messages/commands/fit-to-polygons.command.mjs +13 -0
  3. package/dist/esm2020/map/messages/index.mjs +2 -1
  4. package/dist/esm2020/map/messages/queries/get-features-in-area.query.mjs +1 -1
  5. package/dist/esm2020/map/models/index.mjs +1 -2
  6. package/dist/esm2020/map/services/drawing/drawing.service.mjs +3 -2
  7. package/dist/esm2020/map/services/map-feature.service.mjs +17 -4
  8. package/dist/esm2020/map/services/map-management.service.mjs +2 -2
  9. package/dist/esm2020/map/services/message-registrator.service.mjs +3 -2
  10. package/dist/esm2020/src/map/messages/commands/draw-selection-area.command.mjs +1 -1
  11. package/dist/esm2020/src/map/messages/commands/fit-to-polygons.command.mjs +13 -0
  12. package/dist/esm2020/src/map/messages/index.mjs +2 -1
  13. package/dist/esm2020/src/map/messages/queries/get-features-in-area.query.mjs +1 -1
  14. package/dist/esm2020/src/map/models/index.mjs +1 -2
  15. package/dist/esm2020/src/map/services/drawing/drawing.service.mjs +3 -2
  16. package/dist/esm2020/src/map/services/map-feature.service.mjs +17 -4
  17. package/dist/esm2020/src/map/services/map-management.service.mjs +2 -2
  18. package/dist/esm2020/src/map/services/message-registrator.service.mjs +3 -2
  19. package/dist/fesm2015/maps-components-src-map.mjs +30 -59
  20. package/dist/fesm2015/maps-components-src-map.mjs.map +1 -1
  21. package/dist/fesm2015/maps-components.mjs +30 -59
  22. package/dist/fesm2015/maps-components.mjs.map +1 -1
  23. package/dist/fesm2020/maps-components-src-map.mjs +30 -59
  24. package/dist/fesm2020/maps-components-src-map.mjs.map +1 -1
  25. package/dist/fesm2020/maps-components.mjs +30 -59
  26. package/dist/fesm2020/maps-components.mjs.map +1 -1
  27. package/dist/map/messages/commands/draw-selection-area.command.d.ts +2 -1
  28. package/dist/map/messages/commands/fit-to-polygons.command.d.ts +9 -0
  29. package/dist/map/messages/index.d.ts +1 -0
  30. package/dist/map/messages/queries/get-features-in-area.query.d.ts +1 -1
  31. package/dist/map/models/index.d.ts +0 -1
  32. package/dist/map/services/map-feature.service.d.ts +2 -0
  33. package/dist/package.json +1 -0
  34. package/dist/src/map/messages/commands/draw-selection-area.command.d.ts +2 -1
  35. package/dist/src/map/messages/commands/fit-to-polygons.command.d.ts +9 -0
  36. package/dist/src/map/messages/index.d.ts +1 -0
  37. package/dist/src/map/messages/queries/get-features-in-area.query.d.ts +1 -1
  38. package/dist/src/map/models/index.d.ts +0 -1
  39. package/dist/src/map/services/map-feature.service.d.ts +2 -0
  40. package/package.json +3 -2
  41. package/dist/esm2020/map/models/dictionary.mjs +0 -56
  42. package/dist/esm2020/src/map/models/dictionary.mjs +0 -56
  43. package/dist/map/models/dictionary.d.ts +0 -17
  44. 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
@@ -7,6 +7,7 @@
7
7
  "ol-geocoder": "^4.0.0",
8
8
  "ol": "^6.9.0",
9
9
  "@artstesh/postboy": "1.0.8",
10
+ "@artstesh/collections": "^1.0.0",
10
11
  "zone.js": ">0.13.0"
11
12
  },
12
13
  "dependencies": {
@@ -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": "4.1.7",
3
+ "version": "4.1.8",
4
4
  "author": "artstesh",
5
5
  "license": "MIT",
6
6
  "description": "Let's draw a map ;)",
@@ -48,7 +48,8 @@
48
48
  "zone.js": "^0.13.0",
49
49
  "ol-geocoder": "^4.0.0",
50
50
  "ol": "^6.9.0",
51
- "@artstesh/postboy": "1.0.8"
51
+ "@artstesh/postboy": "1.0.8",
52
+ "@artstesh/collections": "^1.0.0"
52
53
  },
53
54
  "devDependencies": {
54
55
  "@angular-builders/custom-webpack": "^15.0.0",
@@ -1,56 +0,0 @@
1
- export class Dictionary {
2
- constructor() {
3
- this.collection = {};
4
- this._keys = new Set();
5
- this.has = (key) => this._keys.has(key);
6
- }
7
- get keys() {
8
- return Array.from(this._keys);
9
- }
10
- get size() {
11
- return this._keys.size;
12
- }
13
- static clone(dic, action) {
14
- return Dictionary.create(dic.collection, action);
15
- }
16
- static create(dic, action) {
17
- let keyList = Object.keys(dic);
18
- const result = new Dictionary();
19
- for (let i = 0; i < keyList.length; i++) {
20
- let key = keyList[i];
21
- result._keys.add(key);
22
- result.collection[key] = action ? action(dic[key], key) : dic[key];
23
- }
24
- return result;
25
- }
26
- find(predicate) {
27
- let result = null;
28
- this.forEach((e) => {
29
- if (result === null && predicate(e))
30
- result = e;
31
- });
32
- return result;
33
- }
34
- take(key) {
35
- return this._keys.has(key) ? this.collection[key] : null;
36
- }
37
- put(key, value) {
38
- if (value == null)
39
- return;
40
- this.collection[key] = value;
41
- this._keys.add(key);
42
- }
43
- rmv(key) {
44
- if (!this._keys.has(key))
45
- return;
46
- delete this.collection[key];
47
- this._keys.delete(key);
48
- }
49
- forEach(callback) {
50
- let keys = Object.keys(this.collection);
51
- for (let i = 0; i < keys.length; i++) {
52
- callback(this.collection[keys[i]], i);
53
- }
54
- }
55
- }
56
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGljdGlvbmFyeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL21hcHMtY29tcG9uZW50cy9zcmMvbWFwL21vZGVscy9kaWN0aW9uYXJ5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sT0FBTyxVQUFVO0lBQXZCO1FBQ1MsZUFBVSxHQUFzQixFQUFFLENBQUM7UUFDbEMsVUFBSyxHQUFHLElBQUksR0FBRyxFQUFVLENBQUM7UUFpQzNCLFFBQUcsR0FBRyxDQUFDLEdBQVcsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7SUF3QnBELENBQUM7SUF2REMsSUFBVyxJQUFJO1FBQ2IsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBRUQsSUFBVyxJQUFJO1FBQ2IsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQztJQUN6QixDQUFDO0lBRU0sTUFBTSxDQUFDLEtBQUssQ0FBSSxHQUFrQixFQUFFLE1BQStCO1FBQ3hFLE9BQU8sVUFBVSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsVUFBVSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFFTSxNQUFNLENBQUMsTUFBTSxDQUFJLEdBQXNCLEVBQUUsTUFBK0I7UUFDN0UsSUFBSSxPQUFPLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUMvQixNQUFNLE1BQU0sR0FBRyxJQUFJLFVBQVUsRUFBSyxDQUFDO1FBQ25DLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQ3ZDLElBQUksR0FBRyxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNyQixNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUN0QixNQUFNLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQ3BFO1FBQ0QsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVNLElBQUksQ0FBQyxTQUFnQztRQUMxQyxJQUFJLE1BQU0sR0FBYSxJQUFJLENBQUM7UUFDNUIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQ2pCLElBQUksTUFBTSxLQUFLLElBQUksSUFBSSxTQUFTLENBQUMsQ0FBQyxDQUFDO2dCQUFFLE1BQU0sR0FBRyxDQUFDLENBQUM7UUFDbEQsQ0FBQyxDQUFDLENBQUM7UUFDSCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBSU0sSUFBSSxDQUFDLEdBQVc7UUFDckIsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQzNELENBQUM7SUFFTSxHQUFHLENBQUMsR0FBVyxFQUFFLEtBQWdCO1FBQ3RDLElBQUksS0FBSyxJQUFJLElBQUk7WUFBRSxPQUFPO1FBQzFCLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLEdBQUcsS0FBSyxDQUFDO1FBQzdCLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3RCLENBQUM7SUFFTSxHQUFHLENBQUMsR0FBVztRQUNwQixJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDO1lBQUUsT0FBTztRQUNqQyxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDNUIsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDekIsQ0FBQztJQUVNLE9BQU8sQ0FBQyxRQUEyQztRQUN4RCxJQUFJLElBQUksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUN4QyxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUNwQyxRQUFRLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztTQUN2QztJQUNILENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjbGFzcyBEaWN0aW9uYXJ5PFQ+IHtcbiAgcHVibGljIGNvbGxlY3Rpb246IERpY3Rpb25hcnlUeXBlPFQ+ID0ge307XG4gIHByaXZhdGUgX2tleXMgPSBuZXcgU2V0PHN0cmluZz4oKTtcblxuICBwdWJsaWMgZ2V0IGtleXMoKTogc3RyaW5nW10ge1xuICAgIHJldHVybiBBcnJheS5mcm9tKHRoaXMuX2tleXMpO1xuICB9XG5cbiAgcHVibGljIGdldCBzaXplKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX2tleXMuc2l6ZTtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgY2xvbmU8VD4oZGljOiBEaWN0aW9uYXJ5PFQ+LCBhY3Rpb24/OiAoZTogVCwgazogc3RyaW5nKSA9PiBUKTogRGljdGlvbmFyeTxUPiB7XG4gICAgcmV0dXJuIERpY3Rpb25hcnkuY3JlYXRlKGRpYy5jb2xsZWN0aW9uLCBhY3Rpb24pO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBjcmVhdGU8VD4oZGljOiBEaWN0aW9uYXJ5VHlwZTxUPiwgYWN0aW9uPzogKGU6IFQsIGs6IHN0cmluZykgPT4gVCk6IERpY3Rpb25hcnk8VD4ge1xuICAgIGxldCBrZXlMaXN0ID0gT2JqZWN0LmtleXMoZGljKTtcbiAgICBjb25zdCByZXN1bHQgPSBuZXcgRGljdGlvbmFyeTxUPigpO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwga2V5TGlzdC5sZW5ndGg7IGkrKykge1xuICAgICAgbGV0IGtleSA9IGtleUxpc3RbaV07XG4gICAgICByZXN1bHQuX2tleXMuYWRkKGtleSk7XG4gICAgICByZXN1bHQuY29sbGVjdGlvbltrZXldID0gYWN0aW9uID8gYWN0aW9uKGRpY1trZXldLCBrZXkpIDogZGljW2tleV07XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBwdWJsaWMgZmluZChwcmVkaWNhdGU6ICh2YWx1ZTogVCkgPT4gYm9vbGVhbik6IFQgfCBudWxsIHtcbiAgICBsZXQgcmVzdWx0OiBUIHwgbnVsbCA9IG51bGw7XG4gICAgdGhpcy5mb3JFYWNoKChlKSA9PiB7XG4gICAgICBpZiAocmVzdWx0ID09PSBudWxsICYmIHByZWRpY2F0ZShlKSkgcmVzdWx0ID0gZTtcbiAgICB9KTtcbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgcHVibGljIGhhcyA9IChrZXk6IHN0cmluZykgPT4gdGhpcy5fa2V5cy5oYXMoa2V5KTtcblxuICBwdWJsaWMgdGFrZShrZXk6IHN0cmluZyk6IFQgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5fa2V5cy5oYXMoa2V5KSA/IHRoaXMuY29sbGVjdGlvbltrZXldIDogbnVsbDtcbiAgfVxuXG4gIHB1YmxpYyBwdXQoa2V5OiBzdHJpbmcsIHZhbHVlPzogVCB8IG51bGwpOiB2b2lkIHtcbiAgICBpZiAodmFsdWUgPT0gbnVsbCkgcmV0dXJuO1xuICAgIHRoaXMuY29sbGVjdGlvbltrZXldID0gdmFsdWU7XG4gICAgdGhpcy5fa2V5cy5hZGQoa2V5KTtcbiAgfVxuXG4gIHB1YmxpYyBybXYoa2V5OiBzdHJpbmcpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuX2tleXMuaGFzKGtleSkpIHJldHVybjtcbiAgICBkZWxldGUgdGhpcy5jb2xsZWN0aW9uW2tleV07XG4gICAgdGhpcy5fa2V5cy5kZWxldGUoa2V5KTtcbiAgfVxuXG4gIHB1YmxpYyBmb3JFYWNoKGNhbGxiYWNrOiAodmFsdWU6IFQsIGluZGV4OiBudW1iZXIpID0+IHZvaWQpOiB2b2lkIHtcbiAgICBsZXQga2V5cyA9IE9iamVjdC5rZXlzKHRoaXMuY29sbGVjdGlvbik7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBrZXlzLmxlbmd0aDsgaSsrKSB7XG4gICAgICBjYWxsYmFjayh0aGlzLmNvbGxlY3Rpb25ba2V5c1tpXV0sIGkpO1xuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgdHlwZSBEaWN0aW9uYXJ5VHlwZTxUPiA9IHsgW2lkOiBzdHJpbmddOiBUIH07XG4iXX0=
@@ -1,56 +0,0 @@
1
- export class Dictionary {
2
- constructor() {
3
- this.collection = {};
4
- this._keys = new Set();
5
- this.has = (key) => this._keys.has(key);
6
- }
7
- get keys() {
8
- return Array.from(this._keys);
9
- }
10
- get size() {
11
- return this._keys.size;
12
- }
13
- static clone(dic, action) {
14
- return Dictionary.create(dic.collection, action);
15
- }
16
- static create(dic, action) {
17
- let keyList = Object.keys(dic);
18
- const result = new Dictionary();
19
- for (let i = 0; i < keyList.length; i++) {
20
- let key = keyList[i];
21
- result._keys.add(key);
22
- result.collection[key] = action ? action(dic[key], key) : dic[key];
23
- }
24
- return result;
25
- }
26
- find(predicate) {
27
- let result = null;
28
- this.forEach((e) => {
29
- if (result === null && predicate(e))
30
- result = e;
31
- });
32
- return result;
33
- }
34
- take(key) {
35
- return this._keys.has(key) ? this.collection[key] : null;
36
- }
37
- put(key, value) {
38
- if (value == null)
39
- return;
40
- this.collection[key] = value;
41
- this._keys.add(key);
42
- }
43
- rmv(key) {
44
- if (!this._keys.has(key))
45
- return;
46
- delete this.collection[key];
47
- this._keys.delete(key);
48
- }
49
- forEach(callback) {
50
- let keys = Object.keys(this.collection);
51
- for (let i = 0; i < keys.length; i++) {
52
- callback(this.collection[keys[i]], i);
53
- }
54
- }
55
- }
56
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGljdGlvbmFyeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21hcHMtY29tcG9uZW50cy9zcmMvbWFwL21vZGVscy9kaWN0aW9uYXJ5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sT0FBTyxVQUFVO0lBQXZCO1FBQ1MsZUFBVSxHQUFzQixFQUFFLENBQUM7UUFDbEMsVUFBSyxHQUFHLElBQUksR0FBRyxFQUFVLENBQUM7UUFpQzNCLFFBQUcsR0FBRyxDQUFDLEdBQVcsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7SUF3QnBELENBQUM7SUF2REMsSUFBVyxJQUFJO1FBQ2IsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBRUQsSUFBVyxJQUFJO1FBQ2IsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQztJQUN6QixDQUFDO0lBRU0sTUFBTSxDQUFDLEtBQUssQ0FBSSxHQUFrQixFQUFFLE1BQStCO1FBQ3hFLE9BQU8sVUFBVSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsVUFBVSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFFTSxNQUFNLENBQUMsTUFBTSxDQUFJLEdBQXNCLEVBQUUsTUFBK0I7UUFDN0UsSUFBSSxPQUFPLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUMvQixNQUFNLE1BQU0sR0FBRyxJQUFJLFVBQVUsRUFBSyxDQUFDO1FBQ25DLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQ3ZDLElBQUksR0FBRyxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNyQixNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUN0QixNQUFNLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQ3BFO1FBQ0QsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVNLElBQUksQ0FBQyxTQUFnQztRQUMxQyxJQUFJLE1BQU0sR0FBYSxJQUFJLENBQUM7UUFDNUIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQ2pCLElBQUksTUFBTSxLQUFLLElBQUksSUFBSSxTQUFTLENBQUMsQ0FBQyxDQUFDO2dCQUFFLE1BQU0sR0FBRyxDQUFDLENBQUM7UUFDbEQsQ0FBQyxDQUFDLENBQUM7UUFDSCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBSU0sSUFBSSxDQUFDLEdBQVc7UUFDckIsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQzNELENBQUM7SUFFTSxHQUFHLENBQUMsR0FBVyxFQUFFLEtBQWdCO1FBQ3RDLElBQUksS0FBSyxJQUFJLElBQUk7WUFBRSxPQUFPO1FBQzFCLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLEdBQUcsS0FBSyxDQUFDO1FBQzdCLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3RCLENBQUM7SUFFTSxHQUFHLENBQUMsR0FBVztRQUNwQixJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDO1lBQUUsT0FBTztRQUNqQyxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDNUIsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDekIsQ0FBQztJQUVNLE9BQU8sQ0FBQyxRQUEyQztRQUN4RCxJQUFJLElBQUksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUN4QyxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUNwQyxRQUFRLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztTQUN2QztJQUNILENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjbGFzcyBEaWN0aW9uYXJ5PFQ+IHtcbiAgcHVibGljIGNvbGxlY3Rpb246IERpY3Rpb25hcnlUeXBlPFQ+ID0ge307XG4gIHByaXZhdGUgX2tleXMgPSBuZXcgU2V0PHN0cmluZz4oKTtcblxuICBwdWJsaWMgZ2V0IGtleXMoKTogc3RyaW5nW10ge1xuICAgIHJldHVybiBBcnJheS5mcm9tKHRoaXMuX2tleXMpO1xuICB9XG5cbiAgcHVibGljIGdldCBzaXplKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX2tleXMuc2l6ZTtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgY2xvbmU8VD4oZGljOiBEaWN0aW9uYXJ5PFQ+LCBhY3Rpb24/OiAoZTogVCwgazogc3RyaW5nKSA9PiBUKTogRGljdGlvbmFyeTxUPiB7XG4gICAgcmV0dXJuIERpY3Rpb25hcnkuY3JlYXRlKGRpYy5jb2xsZWN0aW9uLCBhY3Rpb24pO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBjcmVhdGU8VD4oZGljOiBEaWN0aW9uYXJ5VHlwZTxUPiwgYWN0aW9uPzogKGU6IFQsIGs6IHN0cmluZykgPT4gVCk6IERpY3Rpb25hcnk8VD4ge1xuICAgIGxldCBrZXlMaXN0ID0gT2JqZWN0LmtleXMoZGljKTtcbiAgICBjb25zdCByZXN1bHQgPSBuZXcgRGljdGlvbmFyeTxUPigpO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwga2V5TGlzdC5sZW5ndGg7IGkrKykge1xuICAgICAgbGV0IGtleSA9IGtleUxpc3RbaV07XG4gICAgICByZXN1bHQuX2tleXMuYWRkKGtleSk7XG4gICAgICByZXN1bHQuY29sbGVjdGlvbltrZXldID0gYWN0aW9uID8gYWN0aW9uKGRpY1trZXldLCBrZXkpIDogZGljW2tleV07XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBwdWJsaWMgZmluZChwcmVkaWNhdGU6ICh2YWx1ZTogVCkgPT4gYm9vbGVhbik6IFQgfCBudWxsIHtcbiAgICBsZXQgcmVzdWx0OiBUIHwgbnVsbCA9IG51bGw7XG4gICAgdGhpcy5mb3JFYWNoKChlKSA9PiB7XG4gICAgICBpZiAocmVzdWx0ID09PSBudWxsICYmIHByZWRpY2F0ZShlKSkgcmVzdWx0ID0gZTtcbiAgICB9KTtcbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgcHVibGljIGhhcyA9IChrZXk6IHN0cmluZykgPT4gdGhpcy5fa2V5cy5oYXMoa2V5KTtcblxuICBwdWJsaWMgdGFrZShrZXk6IHN0cmluZyk6IFQgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5fa2V5cy5oYXMoa2V5KSA/IHRoaXMuY29sbGVjdGlvbltrZXldIDogbnVsbDtcbiAgfVxuXG4gIHB1YmxpYyBwdXQoa2V5OiBzdHJpbmcsIHZhbHVlPzogVCB8IG51bGwpOiB2b2lkIHtcbiAgICBpZiAodmFsdWUgPT0gbnVsbCkgcmV0dXJuO1xuICAgIHRoaXMuY29sbGVjdGlvbltrZXldID0gdmFsdWU7XG4gICAgdGhpcy5fa2V5cy5hZGQoa2V5KTtcbiAgfVxuXG4gIHB1YmxpYyBybXYoa2V5OiBzdHJpbmcpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuX2tleXMuaGFzKGtleSkpIHJldHVybjtcbiAgICBkZWxldGUgdGhpcy5jb2xsZWN0aW9uW2tleV07XG4gICAgdGhpcy5fa2V5cy5kZWxldGUoa2V5KTtcbiAgfVxuXG4gIHB1YmxpYyBmb3JFYWNoKGNhbGxiYWNrOiAodmFsdWU6IFQsIGluZGV4OiBudW1iZXIpID0+IHZvaWQpOiB2b2lkIHtcbiAgICBsZXQga2V5cyA9IE9iamVjdC5rZXlzKHRoaXMuY29sbGVjdGlvbik7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBrZXlzLmxlbmd0aDsgaSsrKSB7XG4gICAgICBjYWxsYmFjayh0aGlzLmNvbGxlY3Rpb25ba2V5c1tpXV0sIGkpO1xuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgdHlwZSBEaWN0aW9uYXJ5VHlwZTxUPiA9IHsgW2lkOiBzdHJpbmddOiBUIH07XG4iXX0=
@@ -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
- };