@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.
- package/dist/esm2020/map/messages/commands/draw-selection-area.command.mjs +1 -1
- package/dist/esm2020/map/messages/commands/fit-to-polygons.command.mjs +13 -0
- package/dist/esm2020/map/messages/index.mjs +2 -1
- package/dist/esm2020/map/messages/queries/get-features-in-area.query.mjs +1 -1
- package/dist/esm2020/map/models/index.mjs +1 -2
- package/dist/esm2020/map/services/drawing/drawing.service.mjs +3 -2
- package/dist/esm2020/map/services/map-feature.service.mjs +17 -4
- package/dist/esm2020/map/services/map-management.service.mjs +2 -2
- package/dist/esm2020/map/services/message-registrator.service.mjs +3 -2
- package/dist/esm2020/src/map/messages/commands/draw-selection-area.command.mjs +1 -1
- package/dist/esm2020/src/map/messages/commands/fit-to-polygons.command.mjs +13 -0
- package/dist/esm2020/src/map/messages/index.mjs +2 -1
- package/dist/esm2020/src/map/messages/queries/get-features-in-area.query.mjs +1 -1
- package/dist/esm2020/src/map/models/index.mjs +1 -2
- package/dist/esm2020/src/map/services/drawing/drawing.service.mjs +3 -2
- package/dist/esm2020/src/map/services/map-feature.service.mjs +17 -4
- package/dist/esm2020/src/map/services/map-management.service.mjs +2 -2
- package/dist/esm2020/src/map/services/message-registrator.service.mjs +3 -2
- package/dist/fesm2015/maps-components-src-map.mjs +30 -59
- package/dist/fesm2015/maps-components-src-map.mjs.map +1 -1
- package/dist/fesm2015/maps-components.mjs +30 -59
- package/dist/fesm2015/maps-components.mjs.map +1 -1
- package/dist/fesm2020/maps-components-src-map.mjs +30 -59
- package/dist/fesm2020/maps-components-src-map.mjs.map +1 -1
- package/dist/fesm2020/maps-components.mjs +30 -59
- package/dist/fesm2020/maps-components.mjs.map +1 -1
- package/dist/map/messages/commands/draw-selection-area.command.d.ts +2 -1
- package/dist/map/messages/commands/fit-to-polygons.command.d.ts +9 -0
- package/dist/map/messages/index.d.ts +1 -0
- package/dist/map/messages/queries/get-features-in-area.query.d.ts +1 -1
- package/dist/map/models/index.d.ts +0 -1
- package/dist/map/services/map-feature.service.d.ts +2 -0
- package/dist/package.json +1 -0
- package/dist/src/map/messages/commands/draw-selection-area.command.d.ts +2 -1
- package/dist/src/map/messages/commands/fit-to-polygons.command.d.ts +9 -0
- package/dist/src/map/messages/index.d.ts +1 -0
- package/dist/src/map/messages/queries/get-features-in-area.query.d.ts +1 -1
- package/dist/src/map/models/index.d.ts +0 -1
- package/dist/src/map/services/map-feature.service.d.ts +2 -0
- package/package.json +3 -2
- package/dist/esm2020/map/models/dictionary.mjs +0 -56
- package/dist/esm2020/src/map/models/dictionary.mjs +0 -56
- package/dist/map/models/dictionary.d.ts +0 -17
- 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
|
+
}
|
|
@@ -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,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
|
@@ -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
|
+
}
|
|
@@ -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,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.
|
|
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
|
-
};
|