@eliorar/angular-cesium
Version:
Angular library for working with Cesium.
45 lines • 4.61 kB
JavaScript
import { defined } from 'cesium';
import { HtmlPrimitive } from '../primitives';
export class HtmlCollection {
constructor() {
this._collection = [];
}
get length() {
return this._collection.length;
}
get(index) {
return this._collection[index];
}
add(options) {
const html = new HtmlPrimitive(options, this);
this._collection.push(html);
return html;
}
remove(html) {
const index = this._collection.indexOf(html);
if (index === (-1)) {
return false;
}
this._collection[index].remove();
this._collection.splice(index, 1);
return true;
}
update() {
for (let i = 0, len = this._collection.length; i < len; i++) {
this._collection[i].update();
}
}
removeAll() {
while (this._collection.length > 0) {
const html = this._collection.pop();
html.remove();
}
}
contains(html) {
return defined(html) && html.collection === this;
}
destroy() {
this.removeAll();
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHRtbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItY2VzaXVtL3NyYy9saWIvY2VzaXVtLWV4dGVuZGVyL2NvbGxlY3Rpb25zL2h0bWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLE9BQU8sRUFBQyxNQUFNLFFBQVEsQ0FBQztBQUMvQixPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRTVDLE1BQU0sT0FBTyxjQUFjO0lBQTNCO1FBQ1UsZ0JBQVcsR0FBb0IsRUFBRSxDQUFDO0lBZ0Q1QyxDQUFDO0lBOUNDLElBQUksTUFBTTtRQUNSLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUM7SUFDakMsQ0FBQztJQUVELEdBQUcsQ0FBQyxLQUFhO1FBQ2YsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFRCxHQUFHLENBQUMsT0FBWTtRQUNkLE1BQU0sSUFBSSxHQUFHLElBQUksYUFBYSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQztRQUM5QyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUU1QixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxNQUFNLENBQUMsSUFBbUI7UUFDeEIsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDN0MsSUFBSSxLQUFLLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ2xCLE9BQU8sS0FBSyxDQUFDO1NBQ2Q7UUFFRCxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ2pDLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztRQUNsQyxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxNQUFNO1FBQ0osS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsR0FBRyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDM0QsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztTQUM5QjtJQUNILENBQUM7SUFFRCxTQUFTO1FBQ1AsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDbEMsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUNwQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7U0FDZjtJQUNILENBQUM7SUFFRCxRQUFRLENBQUMsSUFBbUI7UUFDMUIsT0FBTyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLFVBQVUsS0FBSyxJQUFJLENBQUM7SUFDbkQsQ0FBQztJQUVELE9BQU87UUFDTCxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDbkIsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtkZWZpbmVkfSBmcm9tICdjZXNpdW0nO1xuaW1wb3J0IHtIdG1sUHJpbWl0aXZlfSBmcm9tICcuLi9wcmltaXRpdmVzJztcblxuZXhwb3J0IGNsYXNzIEh0bWxDb2xsZWN0aW9uIHtcbiAgcHJpdmF0ZSBfY29sbGVjdGlvbjogSHRtbFByaW1pdGl2ZVtdID0gW107XG5cbiAgZ2V0IGxlbmd0aCgpIHtcbiAgICByZXR1cm4gdGhpcy5fY29sbGVjdGlvbi5sZW5ndGg7XG4gIH1cblxuICBnZXQoaW5kZXg6IG51bWJlcikge1xuICAgIHJldHVybiB0aGlzLl9jb2xsZWN0aW9uW2luZGV4XTtcbiAgfVxuXG4gIGFkZChvcHRpb25zOiBhbnkpOiBIdG1sUHJpbWl0aXZlIHtcbiAgICBjb25zdCBodG1sID0gbmV3IEh0bWxQcmltaXRpdmUob3B0aW9ucywgdGhpcyk7XG4gICAgdGhpcy5fY29sbGVjdGlvbi5wdXNoKGh0bWwpO1xuXG4gICAgcmV0dXJuIGh0bWw7XG4gIH1cblxuICByZW1vdmUoaHRtbDogSHRtbFByaW1pdGl2ZSk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGluZGV4ID0gdGhpcy5fY29sbGVjdGlvbi5pbmRleE9mKGh0bWwpO1xuICAgIGlmIChpbmRleCA9PT0gKC0xKSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIHRoaXMuX2NvbGxlY3Rpb25baW5kZXhdLnJlbW92ZSgpO1xuICAgIHRoaXMuX2NvbGxlY3Rpb24uc3BsaWNlKGluZGV4LCAxKTtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIHVwZGF0ZSgpIHtcbiAgICBmb3IgKGxldCBpID0gMCwgbGVuID0gdGhpcy5fY29sbGVjdGlvbi5sZW5ndGg7IGkgPCBsZW47IGkrKykge1xuICAgICAgdGhpcy5fY29sbGVjdGlvbltpXS51cGRhdGUoKTtcbiAgICB9XG4gIH1cblxuICByZW1vdmVBbGwoKSB7XG4gICAgd2hpbGUgKHRoaXMuX2NvbGxlY3Rpb24ubGVuZ3RoID4gMCkge1xuICAgICAgY29uc3QgaHRtbCA9IHRoaXMuX2NvbGxlY3Rpb24ucG9wKCk7XG4gICAgICBodG1sLnJlbW92ZSgpO1xuICAgIH1cbiAgfVxuXG4gIGNvbnRhaW5zKGh0bWw6IEh0bWxQcmltaXRpdmUpOiBib29sZWFuIHtcbiAgICByZXR1cm4gZGVmaW5lZChodG1sKSAmJiBodG1sLmNvbGxlY3Rpb24gPT09IHRoaXM7XG4gIH1cblxuICBkZXN0cm95KCkge1xuICAgIHRoaXMucmVtb3ZlQWxsKCk7XG4gIH1cbn1cbiJdfQ==