bruce-models 0.9.0 → 0.9.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bruce-models.es5.js +2532 -3859
- package/dist/bruce-models.es5.js.map +1 -1
- package/dist/bruce-models.umd.js +2533 -3858
- package/dist/bruce-models.umd.js.map +1 -1
- package/dist/lib/account/account.js +67 -144
- package/dist/lib/account/account.js.map +1 -1
- package/dist/lib/ann-document/ann-document.js +33 -77
- package/dist/lib/ann-document/ann-document.js.map +1 -1
- package/dist/lib/api/abstract-api.js +137 -220
- package/dist/lib/api/abstract-api.js.map +1 -1
- package/dist/lib/api/api.js +6 -17
- package/dist/lib/api/api.js.map +1 -1
- package/dist/lib/api/bruce-api.js +109 -183
- package/dist/lib/api/bruce-api.js.map +1 -1
- package/dist/lib/api/cam-api.js +34 -85
- package/dist/lib/api/cam-api.js.map +1 -1
- package/dist/lib/api/global-api.js +33 -84
- package/dist/lib/api/global-api.js.map +1 -1
- package/dist/lib/api/idm-api.js +34 -85
- package/dist/lib/api/idm-api.js.map +1 -1
- package/dist/lib/bruce-models.js +1 -0
- package/dist/lib/bruce-models.js.map +1 -1
- package/dist/lib/calculator/calculator.js +35 -35
- package/dist/lib/calculator/calculator.js.map +1 -1
- package/dist/lib/client-file/client-file.js +60 -111
- package/dist/lib/client-file/client-file.js.map +1 -1
- package/dist/lib/common/bruce-event.js +19 -21
- package/dist/lib/common/bruce-event.js.map +1 -1
- package/dist/lib/common/bruce-variable.js +7 -7
- package/dist/lib/common/bruce-variable.js.map +1 -1
- package/dist/lib/common/cache.js +51 -55
- package/dist/lib/common/cache.js.map +1 -1
- package/dist/lib/common/camera.js +1 -1
- package/dist/lib/common/carto.js +3 -3
- package/dist/lib/common/carto.js.map +1 -1
- package/dist/lib/common/color.js +10 -10
- package/dist/lib/common/color.js.map +1 -1
- package/dist/lib/common/delay-queue.js +17 -21
- package/dist/lib/common/delay-queue.js.map +1 -1
- package/dist/lib/common/geometry.js +30 -30
- package/dist/lib/common/geometry.js.map +1 -1
- package/dist/lib/common/utc.js +1 -1
- package/dist/lib/custom-form/custom-form-content.js +2 -2
- package/dist/lib/custom-form/custom-form.js +37 -85
- package/dist/lib/custom-form/custom-form.js.map +1 -1
- package/dist/lib/data-lab/data-lab.js +22 -63
- package/dist/lib/data-lab/data-lab.js.map +1 -1
- package/dist/lib/entity/entity-attachment-type.js +32 -88
- package/dist/lib/entity/entity-attachment-type.js.map +1 -1
- package/dist/lib/entity/entity-attachment.js +70 -154
- package/dist/lib/entity/entity-attachment.js.map +1 -1
- package/dist/lib/entity/entity-comment.js +34 -91
- package/dist/lib/entity/entity-comment.js.map +1 -1
- package/dist/lib/entity/entity-coords.js +73 -138
- package/dist/lib/entity/entity-coords.js.map +1 -1
- package/dist/lib/entity/entity-link.js +34 -91
- package/dist/lib/entity/entity-link.js.map +1 -1
- package/dist/lib/entity/entity-lod.js +52 -117
- package/dist/lib/entity/entity-lod.js.map +1 -1
- package/dist/lib/entity/entity-relation-type.js +47 -106
- package/dist/lib/entity/entity-relation-type.js.map +1 -1
- package/dist/lib/entity/entity-relation.js +64 -136
- package/dist/lib/entity/entity-relation.js.map +1 -1
- package/dist/lib/entity/entity-source.js +67 -136
- package/dist/lib/entity/entity-source.js.map +1 -1
- package/dist/lib/entity/entity-tag.js +79 -175
- package/dist/lib/entity/entity-tag.js.map +1 -1
- package/dist/lib/entity/entity-type-visual-settings.js +14 -0
- package/dist/lib/entity/entity-type-visual-settings.js.map +1 -0
- package/dist/lib/entity/entity-type.js +52 -111
- package/dist/lib/entity/entity-type.js.map +1 -1
- package/dist/lib/entity/entity.js +149 -245
- package/dist/lib/entity/entity.js.map +1 -1
- package/dist/lib/entity/getters/batched-data-getter.js +35 -42
- package/dist/lib/entity/getters/batched-data-getter.js.map +1 -1
- package/dist/lib/entity/getters/entity-filter-getter.js +163 -234
- package/dist/lib/entity/getters/entity-filter-getter.js.map +1 -1
- package/dist/lib/entity/getters/entity-globe.js +64 -75
- package/dist/lib/entity/getters/entity-globe.js.map +1 -1
- package/dist/lib/import/import-cad.js +6 -37
- package/dist/lib/import/import-cad.js.map +1 -1
- package/dist/lib/import/import-csv.js +3 -32
- package/dist/lib/import/import-csv.js.map +1 -1
- package/dist/lib/import/import-json.js +3 -32
- package/dist/lib/import/import-json.js.map +1 -1
- package/dist/lib/import/import-kml.js +3 -32
- package/dist/lib/import/import-kml.js.map +1 -1
- package/dist/lib/import/imported-file.js +40 -84
- package/dist/lib/import/imported-file.js.map +1 -1
- package/dist/lib/markup/markup.js +20 -18
- package/dist/lib/markup/markup.js.map +1 -1
- package/dist/lib/program-key/program-key.js +44 -103
- package/dist/lib/program-key/program-key.js.map +1 -1
- package/dist/lib/project/menu-item.js +4 -4
- package/dist/lib/project/menu-item.js.map +1 -1
- package/dist/lib/project/project-view-bookmark.js +57 -125
- package/dist/lib/project/project-view-bookmark.js.map +1 -1
- package/dist/lib/project/project-view-legacy-tile.js +22 -70
- package/dist/lib/project/project-view-legacy-tile.js.map +1 -1
- package/dist/lib/project/project-view-tile.js +2 -2
- package/dist/lib/project/project-view.js +62 -124
- package/dist/lib/project/project-view.js.map +1 -1
- package/dist/lib/project/zoom-control.js +1 -1
- package/dist/lib/server/message-broker.js +50 -68
- package/dist/lib/server/message-broker.js.map +1 -1
- package/dist/lib/server/pending-action.js +24 -69
- package/dist/lib/server/pending-action.js.map +1 -1
- package/dist/lib/server/task.js +30 -85
- package/dist/lib/server/task.js.map +1 -1
- package/dist/lib/style/style.js +33 -86
- package/dist/lib/style/style.js.map +1 -1
- package/dist/lib/tileset/tileset-entities-map-tiles.js +1 -1
- package/dist/lib/tileset/tileset-ext-map-tiles.js +1 -1
- package/dist/lib/tileset/tileset.js +130 -267
- package/dist/lib/tileset/tileset.js.map +1 -1
- package/dist/lib/user/permission.js +2 -2
- package/dist/lib/user/session.js +43 -90
- package/dist/lib/user/session.js.map +1 -1
- package/dist/lib/user/user-group.js +34 -96
- package/dist/lib/user/user-group.js.map +1 -1
- package/dist/lib/user/user.js +165 -304
- package/dist/lib/user/user.js.map +1 -1
- package/dist/lib/util/encrypt-utils.js +3 -4
- package/dist/lib/util/encrypt-utils.js.map +1 -1
- package/dist/lib/util/math-utils.js +4 -5
- package/dist/lib/util/math-utils.js.map +1 -1
- package/dist/lib/util/object-utils.js +1 -1
- package/dist/lib/util/object-utils.js.map +1 -1
- package/dist/lib/util/path-utils.js +14 -14
- package/dist/lib/util/path-utils.js.map +1 -1
- package/dist/lib/util/url-utils.js +46 -59
- package/dist/lib/util/url-utils.js.map +1 -1
- package/dist/types/bruce-models.d.ts +1 -0
- package/dist/types/entity/entity-type-visual-settings.d.ts +16 -0
- package/dist/types/entity/entity-type.d.ts +2 -0
- package/dist/types/markup/markup.d.ts +14 -18
- package/package.json +1 -1
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.BatchedDataGetter = void 0;
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
4
|
+
const bruce_event_1 = require("../../common/bruce-event");
|
|
5
|
+
const MAX_AREA_IN_DEGREES = 90;
|
|
6
|
+
const GETTER_DELAY = 50;
|
|
7
7
|
/**
|
|
8
8
|
* This is a batched "arbitrary data" getter.
|
|
9
9
|
* You feed it an array of data, then it will emit that data in batches when the view changes.
|
|
10
10
|
*/
|
|
11
11
|
var BatchedDataGetter;
|
|
12
12
|
(function (BatchedDataGetter) {
|
|
13
|
-
|
|
14
|
-
|
|
13
|
+
class Getter {
|
|
14
|
+
constructor(data, viewPort, batchSize) {
|
|
15
15
|
this.viewPortRemoval = null;
|
|
16
16
|
this.viewRect = null;
|
|
17
17
|
this.viewCenter = null;
|
|
@@ -20,34 +20,29 @@ var BatchedDataGetter;
|
|
|
20
20
|
this.viewPort = viewPort;
|
|
21
21
|
this.batchSize = batchSize;
|
|
22
22
|
}
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
});
|
|
33
|
-
Getter.prototype.Start = function () {
|
|
34
|
-
var _this = this;
|
|
35
|
-
this.viewPortRemoval = this.viewPort.Updated().Subscribe(function () {
|
|
36
|
-
_this.updateViewport();
|
|
23
|
+
get OnUpdate() {
|
|
24
|
+
if (!this.onUpdate) {
|
|
25
|
+
this.onUpdate = new bruce_event_1.BruceEvent();
|
|
26
|
+
}
|
|
27
|
+
return this.onUpdate;
|
|
28
|
+
}
|
|
29
|
+
Start() {
|
|
30
|
+
this.viewPortRemoval = this.viewPort.Updated().Subscribe(() => {
|
|
31
|
+
this.updateViewport();
|
|
37
32
|
});
|
|
38
33
|
this.updateViewport();
|
|
39
|
-
}
|
|
40
|
-
|
|
34
|
+
}
|
|
35
|
+
Dispose() {
|
|
41
36
|
var _a;
|
|
42
37
|
(_a = this.viewPortRemoval) === null || _a === void 0 ? void 0 : _a.call(this);
|
|
43
|
-
}
|
|
44
|
-
|
|
38
|
+
}
|
|
39
|
+
updateViewport() {
|
|
45
40
|
this.updateBounds();
|
|
46
41
|
this.startGetterLoop();
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
42
|
+
}
|
|
43
|
+
updateBounds() {
|
|
44
|
+
const viewRect = this.viewPort.GetBounds();
|
|
45
|
+
const poi = this.viewPort.GetTarget();
|
|
51
46
|
if (viewRect && poi) {
|
|
52
47
|
if (Math.abs(viewRect.west - viewRect.east) > MAX_AREA_IN_DEGREES) {
|
|
53
48
|
return;
|
|
@@ -58,35 +53,33 @@ var BatchedDataGetter;
|
|
|
58
53
|
this.viewRect = viewRect;
|
|
59
54
|
this.viewCenter = poi;
|
|
60
55
|
}
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
var _this = this;
|
|
56
|
+
}
|
|
57
|
+
startGetterLoop() {
|
|
64
58
|
clearInterval(this.getterInterval);
|
|
65
59
|
if (!this.viewRect || !this.viewCenter) {
|
|
66
60
|
return;
|
|
67
61
|
}
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
index +=
|
|
72
|
-
return index >=
|
|
62
|
+
let index = 0;
|
|
63
|
+
const onTick = () => {
|
|
64
|
+
this.processBatch(this.data.slice(index, index + this.batchSize));
|
|
65
|
+
index += this.batchSize;
|
|
66
|
+
return index >= this.data.length;
|
|
73
67
|
};
|
|
74
68
|
if (!onTick()) {
|
|
75
|
-
this.getterInterval = setInterval(
|
|
69
|
+
this.getterInterval = setInterval(() => {
|
|
76
70
|
if (onTick()) {
|
|
77
|
-
clearInterval(
|
|
71
|
+
clearInterval(this.getterInterval);
|
|
78
72
|
}
|
|
79
73
|
}, GETTER_DELAY);
|
|
80
74
|
}
|
|
81
|
-
}
|
|
82
|
-
|
|
75
|
+
}
|
|
76
|
+
processBatch(batch) {
|
|
83
77
|
var _a;
|
|
84
78
|
if (batch.length > 0) {
|
|
85
79
|
(_a = this.onUpdate) === null || _a === void 0 ? void 0 : _a.Trigger(batch);
|
|
86
80
|
}
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
}());
|
|
81
|
+
}
|
|
82
|
+
}
|
|
90
83
|
BatchedDataGetter.Getter = Getter;
|
|
91
84
|
})(BatchedDataGetter = exports.BatchedDataGetter || (exports.BatchedDataGetter = {}));
|
|
92
85
|
//# sourceMappingURL=batched-data-getter.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"batched-data-getter.js","sourceRoot":"","sources":["../../../../src/entity/getters/batched-data-getter.ts"],"names":[],"mappings":";;;AACA,
|
|
1
|
+
{"version":3,"file":"batched-data-getter.js","sourceRoot":"","sources":["../../../../src/entity/getters/batched-data-getter.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,59 +8,29 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
8
8
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
9
|
});
|
|
10
10
|
};
|
|
11
|
-
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
12
|
-
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
13
|
-
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
14
|
-
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
15
|
-
function step(op) {
|
|
16
|
-
if (f) throw new TypeError("Generator is already executing.");
|
|
17
|
-
while (_) try {
|
|
18
|
-
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
19
|
-
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
20
|
-
switch (op[0]) {
|
|
21
|
-
case 0: case 1: t = op; break;
|
|
22
|
-
case 4: _.label++; return { value: op[1], done: false };
|
|
23
|
-
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
24
|
-
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
25
|
-
default:
|
|
26
|
-
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
27
|
-
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
28
|
-
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
29
|
-
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
30
|
-
if (t[2]) _.ops.pop();
|
|
31
|
-
_.trys.pop(); continue;
|
|
32
|
-
}
|
|
33
|
-
op = body.call(thisArg, _);
|
|
34
|
-
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
35
|
-
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
36
|
-
}
|
|
37
|
-
};
|
|
38
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
12
|
exports.EntityFilterGetter = void 0;
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
13
|
+
const api_1 = require("../../api/api");
|
|
14
|
+
const bruce_event_1 = require("../../common/bruce-event");
|
|
15
|
+
const entity_1 = require("../entity");
|
|
16
|
+
const entity_globe_1 = require("./entity-globe");
|
|
17
|
+
const MAX_AREA_IN_DEGREES = 90;
|
|
18
|
+
const MAX_RETRY_ATTEMPTS = 1;
|
|
19
|
+
const RETRY_DELAY_INCREMENT = 500;
|
|
20
|
+
const REQUEST_PAGE_DELAY = 50;
|
|
21
|
+
class regMenuItemGetter {
|
|
22
|
+
constructor(tagIds, minHeight, maxHeight) {
|
|
50
23
|
this.TagIds = tagIds;
|
|
51
24
|
this.MinHeight = minHeight;
|
|
52
25
|
this.MaxHeight = maxHeight;
|
|
53
26
|
}
|
|
54
|
-
|
|
55
|
-
}());
|
|
27
|
+
}
|
|
56
28
|
function delay(milliseconds) {
|
|
57
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
58
|
-
return
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
}, milliseconds);
|
|
63
|
-
})];
|
|
29
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
30
|
+
return new Promise((res) => {
|
|
31
|
+
setTimeout(() => {
|
|
32
|
+
res();
|
|
33
|
+
}, milliseconds);
|
|
64
34
|
});
|
|
65
35
|
});
|
|
66
36
|
}
|
|
@@ -71,13 +41,13 @@ function delay(milliseconds) {
|
|
|
71
41
|
*/
|
|
72
42
|
var EntityFilterGetter;
|
|
73
43
|
(function (EntityFilterGetter) {
|
|
74
|
-
|
|
44
|
+
let EStatus;
|
|
75
45
|
(function (EStatus) {
|
|
76
46
|
EStatus["Scanning"] = "SCANNING";
|
|
77
47
|
EStatus["Loading"] = "LOADING";
|
|
78
48
|
})(EStatus = EntityFilterGetter.EStatus || (EntityFilterGetter.EStatus = {}));
|
|
79
|
-
|
|
80
|
-
|
|
49
|
+
class Getter {
|
|
50
|
+
constructor(api, viewPort, typeId, batchSize, attrFilter) {
|
|
81
51
|
this.onUpdate = null;
|
|
82
52
|
this.LastStateUpdates = {};
|
|
83
53
|
this.onStateUpdate = null;
|
|
@@ -97,53 +67,44 @@ var EntityFilterGetter;
|
|
|
97
67
|
this.attrFilter = attrFilter;
|
|
98
68
|
this.updateBounds();
|
|
99
69
|
}
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
this.onStateUpdate = new bruce_event_1.BruceEvent();
|
|
114
|
-
}
|
|
115
|
-
return this.onStateUpdate;
|
|
116
|
-
},
|
|
117
|
-
enumerable: false,
|
|
118
|
-
configurable: true
|
|
119
|
-
});
|
|
120
|
-
Getter.prototype.viewAreaSub = function () {
|
|
121
|
-
var _this = this;
|
|
70
|
+
get OnUpdate() {
|
|
71
|
+
if (!this.onUpdate) {
|
|
72
|
+
this.onUpdate = new bruce_event_1.BruceEvent();
|
|
73
|
+
}
|
|
74
|
+
return this.onUpdate;
|
|
75
|
+
}
|
|
76
|
+
get OnStateUpdate() {
|
|
77
|
+
if (!this.onStateUpdate) {
|
|
78
|
+
this.onStateUpdate = new bruce_event_1.BruceEvent();
|
|
79
|
+
}
|
|
80
|
+
return this.onStateUpdate;
|
|
81
|
+
}
|
|
82
|
+
viewAreaSub() {
|
|
122
83
|
this.viewAreaDispose();
|
|
123
|
-
this.viewPortChangeRemoval = this.viewPort.Updated().Subscribe(
|
|
124
|
-
|
|
125
|
-
|
|
84
|
+
this.viewPortChangeRemoval = this.viewPort.Updated().Subscribe(() => {
|
|
85
|
+
this.updateBounds();
|
|
86
|
+
this.startGetterLoop();
|
|
126
87
|
});
|
|
127
|
-
}
|
|
128
|
-
|
|
88
|
+
}
|
|
89
|
+
viewAreaDispose() {
|
|
129
90
|
var _a;
|
|
130
91
|
(_a = this.viewPortChangeRemoval) === null || _a === void 0 ? void 0 : _a.call(this);
|
|
131
|
-
}
|
|
132
|
-
|
|
92
|
+
}
|
|
93
|
+
GetMenuItems() {
|
|
133
94
|
return Object.keys(this.registeredItems);
|
|
134
|
-
}
|
|
135
|
-
|
|
95
|
+
}
|
|
96
|
+
IncludeMenuItem(menuItemId, layerIds, minHeight, maxHeight) {
|
|
136
97
|
this.registeredItems[menuItemId] = new regMenuItemGetter(layerIds, minHeight, maxHeight);
|
|
137
98
|
this.updateState();
|
|
138
|
-
}
|
|
139
|
-
|
|
99
|
+
}
|
|
100
|
+
ExcludeMenuItem(menuItemId) {
|
|
140
101
|
this.registeredItems[menuItemId] = null;
|
|
141
102
|
delete this.registeredItems[menuItemId];
|
|
142
103
|
this.updateState();
|
|
143
|
-
}
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
104
|
+
}
|
|
105
|
+
updateBounds() {
|
|
106
|
+
const viewRect = this.viewPort.GetBounds();
|
|
107
|
+
const poi = this.viewPort.GetTarget();
|
|
147
108
|
if (viewRect && poi) {
|
|
148
109
|
if (Math.abs(viewRect.west - viewRect.east) > MAX_AREA_IN_DEGREES) {
|
|
149
110
|
return;
|
|
@@ -154,14 +115,14 @@ var EntityFilterGetter;
|
|
|
154
115
|
this.viewRect = viewRect;
|
|
155
116
|
this.viewCenter = poi;
|
|
156
117
|
}
|
|
157
|
-
}
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
for (
|
|
164
|
-
|
|
118
|
+
}
|
|
119
|
+
updateState() {
|
|
120
|
+
const tagIds = [];
|
|
121
|
+
const menuItemIds = this.GetMenuItems();
|
|
122
|
+
let minHeight = null;
|
|
123
|
+
let maxHeight = null;
|
|
124
|
+
for (let i = 0; i < menuItemIds.length; i++) {
|
|
125
|
+
const menuItem = this.registeredItems[menuItemIds[i]];
|
|
165
126
|
if (menuItem) {
|
|
166
127
|
if (maxHeight == null || maxHeight < menuItem.MaxHeight) {
|
|
167
128
|
maxHeight = menuItem.MaxHeight;
|
|
@@ -169,10 +130,10 @@ var EntityFilterGetter;
|
|
|
169
130
|
if (minHeight == null || minHeight > menuItem.MinHeight) {
|
|
170
131
|
minHeight = menuItem.MinHeight;
|
|
171
132
|
}
|
|
172
|
-
|
|
133
|
+
const itemLayerIds = menuItem.TagIds;
|
|
173
134
|
if (itemLayerIds) {
|
|
174
|
-
for (
|
|
175
|
-
|
|
135
|
+
for (let j = 0; j < itemLayerIds.length; j++) {
|
|
136
|
+
const itemLayerId = itemLayerIds[j];
|
|
176
137
|
if (!tagIds.includes(itemLayerId)) {
|
|
177
138
|
tagIds.push(itemLayerId);
|
|
178
139
|
}
|
|
@@ -194,152 +155,120 @@ var EntityFilterGetter;
|
|
|
194
155
|
this.getterLoopId = -1;
|
|
195
156
|
this.viewAreaDispose();
|
|
196
157
|
}
|
|
197
|
-
}
|
|
198
|
-
|
|
158
|
+
}
|
|
159
|
+
postStatus(status) {
|
|
199
160
|
var _a;
|
|
200
161
|
this.LastStateUpdates[status.msg] = status;
|
|
201
162
|
(_a = this.onStateUpdate) === null || _a === void 0 ? void 0 : _a.Trigger(status);
|
|
202
|
-
}
|
|
203
|
-
|
|
204
|
-
var _this = this;
|
|
163
|
+
}
|
|
164
|
+
startGetterLoop() {
|
|
205
165
|
// Increase id so that existing loops stop.
|
|
206
166
|
this.getterLoopId += 1;
|
|
207
|
-
|
|
208
|
-
new Promise(
|
|
209
|
-
var MIN_HEIGHT, MAX_HEIGHT, PAGE_SIZE, retryAttempts, retryDelay, prevFirstId, prevLastId, alt, cells, curCellIndex, postedScanning, postedLoading, curCell, page, first, last, e_1;
|
|
167
|
+
const loopId = this.getterLoopId;
|
|
168
|
+
new Promise(() => __awaiter(this, void 0, void 0, function* () {
|
|
210
169
|
var _a, _b, _c, _d, _e;
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
}
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
case 9:
|
|
286
|
-
page = _f.sent();
|
|
287
|
-
if (this.getterLoopId != loopId) {
|
|
288
|
-
return [3 /*break*/, 13];
|
|
289
|
-
}
|
|
290
|
-
if (page) {
|
|
291
|
-
(_a = this.onUpdate) === null || _a === void 0 ? void 0 : _a.Trigger(page);
|
|
292
|
-
}
|
|
293
|
-
if (!postedLoading) {
|
|
294
|
-
this.postStatus({ msg: EStatus.Loading, revoking: false });
|
|
295
|
-
postedLoading = true;
|
|
296
|
-
}
|
|
297
|
-
if (page.length <= 0) {
|
|
298
|
-
curCell.Fetched = true; // Only mark as fetched when ALL pages are done.
|
|
299
|
-
return [3 /*break*/, 5];
|
|
300
|
-
}
|
|
301
|
-
// Checking to make sure it's not just the same batch over and over again.
|
|
302
|
-
if (page.length > 0) {
|
|
303
|
-
first = (_c = (_b = page[0]) === null || _b === void 0 ? void 0 : _b.Bruce) === null || _c === void 0 ? void 0 : _c.ID;
|
|
304
|
-
last = (_e = (_d = page[page.length - 1]) === null || _d === void 0 ? void 0 : _d.Bruce) === null || _e === void 0 ? void 0 : _e.ID;
|
|
305
|
-
if (prevFirstId == first && prevLastId == last) {
|
|
306
|
-
return [3 /*break*/, 13];
|
|
307
|
-
}
|
|
308
|
-
else {
|
|
309
|
-
prevFirstId = first;
|
|
310
|
-
prevLastId = last;
|
|
311
|
-
}
|
|
312
|
-
}
|
|
313
|
-
curCell.FetchPageIndex++;
|
|
314
|
-
// Request passed so let's assume it was server hiccup and refresh counts.
|
|
315
|
-
retryAttempts = MAX_RETRY_ATTEMPTS;
|
|
316
|
-
retryDelay = 0;
|
|
317
|
-
return [3 /*break*/, 11];
|
|
318
|
-
case 10:
|
|
319
|
-
e_1 = _f.sent();
|
|
320
|
-
console.log(e_1);
|
|
321
|
-
// Request failed so let's add a delay and try again soon.
|
|
322
|
-
retryDelay += RETRY_DELAY_INCREMENT;
|
|
323
|
-
retryAttempts -= 1;
|
|
324
|
-
return [3 /*break*/, 11];
|
|
325
|
-
case 11: return [4 /*yield*/, delay(REQUEST_PAGE_DELAY)];
|
|
326
|
-
case 12:
|
|
327
|
-
_f.sent();
|
|
328
|
-
return [3 /*break*/, 5];
|
|
329
|
-
case 13:
|
|
330
|
-
if (postedLoading) {
|
|
331
|
-
this.postStatus({ msg: EStatus.Loading, revoking: true });
|
|
170
|
+
// Minor delay to stop 50 menu items enabling doing their first request all together.
|
|
171
|
+
// This gives it time to recognize only 1 request is needed.
|
|
172
|
+
// Would be better to not use this delay but we're on a clock.
|
|
173
|
+
yield delay(100);
|
|
174
|
+
const MIN_HEIGHT = this.minHeight;
|
|
175
|
+
const MAX_HEIGHT = this.maxHeight;
|
|
176
|
+
const PAGE_SIZE = this.batchSize;
|
|
177
|
+
let retryAttempts = MAX_RETRY_ATTEMPTS;
|
|
178
|
+
let retryDelay = 0;
|
|
179
|
+
let prevFirstId = "";
|
|
180
|
+
let prevLastId = "";
|
|
181
|
+
while ((!this.viewCenter || !this.viewRect) && this.getterLoopId == loopId) {
|
|
182
|
+
yield delay(RETRY_DELAY_INCREMENT);
|
|
183
|
+
}
|
|
184
|
+
if (this.getterLoopId != loopId) {
|
|
185
|
+
return;
|
|
186
|
+
}
|
|
187
|
+
const alt = this.viewRect.alt;
|
|
188
|
+
if (alt > MAX_HEIGHT || (alt < MIN_HEIGHT && MIN_HEIGHT > 0)) {
|
|
189
|
+
return;
|
|
190
|
+
}
|
|
191
|
+
const cells = this.cells.GetCellsForView(this.viewRect);
|
|
192
|
+
let curCellIndex = cells.length > 0 ? 0 : null;
|
|
193
|
+
let postedScanning = false;
|
|
194
|
+
let postedLoading = false;
|
|
195
|
+
while (retryAttempts > 0 && curCellIndex != null) {
|
|
196
|
+
if (this.getterLoopId != loopId) {
|
|
197
|
+
break;
|
|
198
|
+
}
|
|
199
|
+
if (retryDelay > 0) {
|
|
200
|
+
yield delay(retryDelay);
|
|
201
|
+
}
|
|
202
|
+
if (!postedScanning) {
|
|
203
|
+
this.postStatus({ msg: EStatus.Scanning, revoking: false });
|
|
204
|
+
postedScanning = true;
|
|
205
|
+
}
|
|
206
|
+
const curCell = cells[curCellIndex];
|
|
207
|
+
if (curCell.IsFetched()) {
|
|
208
|
+
curCellIndex += 1;
|
|
209
|
+
if (!cells[curCellIndex]) {
|
|
210
|
+
curCellIndex = null;
|
|
211
|
+
}
|
|
212
|
+
continue;
|
|
213
|
+
}
|
|
214
|
+
try {
|
|
215
|
+
const page = yield entity_1.Entity.Filter.V1.GetList(this.api, {
|
|
216
|
+
pageSize: PAGE_SIZE,
|
|
217
|
+
pageIndex: curCell.FetchPageIndex,
|
|
218
|
+
entityTypeId: this.typeId,
|
|
219
|
+
layerIds: this.tagIds,
|
|
220
|
+
bounds: curCell.GetBounds(),
|
|
221
|
+
sortOrder: api_1.Api.ESortOrder.Asc,
|
|
222
|
+
entityTypeConditions: this.attrFilter
|
|
223
|
+
});
|
|
224
|
+
if (this.getterLoopId != loopId) {
|
|
225
|
+
break;
|
|
226
|
+
}
|
|
227
|
+
if (page) {
|
|
228
|
+
(_a = this.onUpdate) === null || _a === void 0 ? void 0 : _a.Trigger(page);
|
|
229
|
+
}
|
|
230
|
+
if (!postedLoading) {
|
|
231
|
+
this.postStatus({ msg: EStatus.Loading, revoking: false });
|
|
232
|
+
postedLoading = true;
|
|
233
|
+
}
|
|
234
|
+
if (page.length <= 0) {
|
|
235
|
+
curCell.Fetched = true; // Only mark as fetched when ALL pages are done.
|
|
236
|
+
continue;
|
|
237
|
+
}
|
|
238
|
+
// Checking to make sure it's not just the same batch over and over again.
|
|
239
|
+
if (page.length > 0) {
|
|
240
|
+
const first = (_c = (_b = page[0]) === null || _b === void 0 ? void 0 : _b.Bruce) === null || _c === void 0 ? void 0 : _c.ID;
|
|
241
|
+
const last = (_e = (_d = page[page.length - 1]) === null || _d === void 0 ? void 0 : _d.Bruce) === null || _e === void 0 ? void 0 : _e.ID;
|
|
242
|
+
if (prevFirstId == first && prevLastId == last) {
|
|
243
|
+
break;
|
|
332
244
|
}
|
|
333
|
-
|
|
334
|
-
|
|
245
|
+
else {
|
|
246
|
+
prevFirstId = first;
|
|
247
|
+
prevLastId = last;
|
|
335
248
|
}
|
|
336
|
-
|
|
249
|
+
}
|
|
250
|
+
curCell.FetchPageIndex++;
|
|
251
|
+
// Request passed so let's assume it was server hiccup and refresh counts.
|
|
252
|
+
retryAttempts = MAX_RETRY_ATTEMPTS;
|
|
253
|
+
retryDelay = 0;
|
|
337
254
|
}
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
255
|
+
catch (e) {
|
|
256
|
+
console.log(e);
|
|
257
|
+
// Request failed so let's add a delay and try again soon.
|
|
258
|
+
retryDelay += RETRY_DELAY_INCREMENT;
|
|
259
|
+
retryAttempts -= 1;
|
|
260
|
+
}
|
|
261
|
+
yield delay(REQUEST_PAGE_DELAY);
|
|
262
|
+
}
|
|
263
|
+
if (postedLoading) {
|
|
264
|
+
this.postStatus({ msg: EStatus.Loading, revoking: true });
|
|
265
|
+
}
|
|
266
|
+
if (postedScanning) {
|
|
267
|
+
this.postStatus({ msg: EStatus.Scanning, revoking: true });
|
|
268
|
+
}
|
|
269
|
+
}));
|
|
270
|
+
}
|
|
271
|
+
}
|
|
343
272
|
EntityFilterGetter.Getter = Getter;
|
|
344
273
|
})(EntityFilterGetter = exports.EntityFilterGetter || (exports.EntityFilterGetter = {}));
|
|
345
274
|
//# sourceMappingURL=entity-filter-getter.js.map
|