webglimpse
Version:
Webglimpse is a data visualization library for the web.
80 lines • 11 kB
JavaScript
/*
* Copyright (c) 2014, Metron, Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without modification,
* are permitted provided that the following conditions are met:
*
* 1. Redistributions of source code must retain the above copyright notice, this
* list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
*
* 3. Neither the name of the copyright holder nor the names of its contributors
* may be used to endorse or promote products derived from this software without
* specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
* ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
export class TimelineEventIconUi {
constructor(icon) {
this._setAttrs(icon);
}
_setAttrs(icon) {
this._url = icon.url;
this._displayWidth = icon.displayWidth;
this._displayHeight = icon.displayHeight;
this._hAlign = icon.hAlign;
this._hPos = icon.hPos;
}
get url() { return this._url; }
get displayWidth() { return this._displayWidth; }
get displayHeight() { return this._displayHeight; }
get hAlign() { return this._hAlign; }
get hPos() { return this._hPos; }
snapshot() {
return {
url: this._url,
displayWidth: this._displayWidth,
displayHeight: this._displayHeight,
hAlign: this._hAlign,
hPos: this._hPos
};
}
}
export class TimelineEventStyleUi {
constructor(style) {
this._styleGuid = style.styleGuid;
this._setAttrs(style);
}
get styleGuid() {
return this._styleGuid;
}
_setAttrs(style) {
this._icons = style.icons.map((icon) => new TimelineEventIconUi(icon));
}
get numIcons() {
return this._icons.length;
}
icon(index) {
return this._icons[index];
}
snapshot() {
return {
styleGuid: this._styleGuid,
icons: this._icons.map((ui) => ui.snapshot())
};
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZWxpbmVfZXZlbnRfc3R5bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvd2ViZ2xpbXBzZS90aW1lbGluZS90aW1lbGluZV9ldmVudF9zdHlsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTRCRztBQW1CSCxNQUFNLE9BQU8sbUJBQW1CO0lBTzVCLFlBQVksSUFBdUI7UUFDL0IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN6QixDQUFDO0lBRU8sU0FBUyxDQUFDLElBQXVCO1FBQ3JDLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQztRQUNyQixJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUM7UUFDdkMsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDO1FBQ3pDLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztRQUMzQixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7SUFDM0IsQ0FBQztJQUVELElBQUksR0FBRyxLQUFhLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDdkMsSUFBSSxZQUFZLEtBQWEsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQztJQUN6RCxJQUFJLGFBQWEsS0FBYSxPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDO0lBQzNELElBQUksTUFBTSxLQUFhLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7SUFDN0MsSUFBSSxJQUFJLEtBQWEsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUV6QyxRQUFRO1FBQ0osT0FBTztZQUNILEdBQUcsRUFBRSxJQUFJLENBQUMsSUFBSTtZQUNkLFlBQVksRUFBRSxJQUFJLENBQUMsYUFBYTtZQUNoQyxhQUFhLEVBQUUsSUFBSSxDQUFDLGNBQWM7WUFDbEMsTUFBTSxFQUFFLElBQUksQ0FBQyxPQUFPO1lBQ3BCLElBQUksRUFBRSxJQUFJLENBQUMsS0FBSztTQUNuQixDQUFDO0lBQ04sQ0FBQztDQUNKO0FBSUQsTUFBTSxPQUFPLG9CQUFvQjtJQUk3QixZQUFZLEtBQXlCO1FBQ2pDLElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDLFNBQVMsQ0FBQztRQUNsQyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzFCLENBQUM7SUFFRCxJQUFJLFNBQVM7UUFDVCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUM7SUFDM0IsQ0FBQztJQUVPLFNBQVMsQ0FBQyxLQUF5QjtRQUN2QyxJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLG1CQUFtQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDM0UsQ0FBQztJQUVELElBQUksUUFBUTtRQUNSLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUM7SUFDOUIsQ0FBQztJQUVELElBQUksQ0FBQyxLQUFhO1FBQ2QsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFFRCxRQUFRO1FBQ0osT0FBTztZQUNILFNBQVMsRUFBRSxJQUFJLENBQUMsVUFBVTtZQUMxQixLQUFLLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxRQUFRLEVBQUUsQ0FBQztTQUNoRCxDQUFDO0lBQ04sQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuICogQ29weXJpZ2h0IChjKSAyMDE0LCBNZXRyb24sIEluYy5cclxuICogQWxsIHJpZ2h0cyByZXNlcnZlZC5cclxuICpcclxuICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbixcclxuICogYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUgbWV0OlxyXG4gKlxyXG4gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UsIHRoaXNcclxuICogICAgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuXHJcbiAqXHJcbiAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSxcclxuICogICAgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUgZG9jdW1lbnRhdGlvblxyXG4gKiAgICBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi5cclxuICpcclxuICogMy4gTmVpdGhlciB0aGUgbmFtZSBvZiB0aGUgY29weXJpZ2h0IGhvbGRlciBub3IgdGhlIG5hbWVzIG9mIGl0cyBjb250cmlidXRvcnNcclxuICogICAgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXRcclxuICogICAgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLlxyXG4gKlxyXG4gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTIFwiQVMgSVNcIiBBTkRcclxuICogQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRURcclxuICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRVxyXG4gKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIEhPTERFUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUlxyXG4gKiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVNcclxuICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTO1xyXG4gKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT05cclxuICogQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlRcclxuICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVNcclxuICogU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuXHJcbiAqL1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBUaW1lbGluZUV2ZW50SWNvbiB7XHJcbiAgICB1cmw6IHN0cmluZztcclxuICAgIGRpc3BsYXlXaWR0aDogbnVtYmVyOyAgLy8gaG9yaXpvbnRhbCBzaXplIG9mIGljb24gaW4gcGl4ZWxzXHJcbiAgICBkaXNwbGF5SGVpZ2h0OiBudW1iZXI7IC8vIHZlcnRpY2FsIHNpemUgb2YgaWNvbiBpbiBwaXhlbHNcclxuICAgIGhBbGlnbjogbnVtYmVyOyAvLyByZWxhdGl2ZSBsb2NhdGlvbiBvZiBjZW50ZXIgcGl4ZWwgb2YgaWNvbiAoMD1sZWZ0IHNpZGUsIDE9cmlnaHQgc2lkZSlcclxuICAgIGhQb3M6IG51bWJlcjsgLy8gcmVsYXRpdmUgaWNvbiBwb3NpdGlvbiBhbG9uZyBldmVudCBiYXIgKDA9bGVmdCBzaWRlLCAxPXJpZ2h0IHNpZGUpXHJcbn1cclxuXHJcblxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBUaW1lbGluZUV2ZW50U3R5bGUge1xyXG4gICAgc3R5bGVHdWlkOiBzdHJpbmc7XHJcbiAgICBpY29uczogVGltZWxpbmVFdmVudEljb25bXTtcclxufVxyXG5cclxuXHJcblxyXG5leHBvcnQgY2xhc3MgVGltZWxpbmVFdmVudEljb25VaSB7XHJcbiAgICBwcml2YXRlIF91cmw6IHN0cmluZztcclxuICAgIHByaXZhdGUgX2Rpc3BsYXlXaWR0aDogbnVtYmVyO1xyXG4gICAgcHJpdmF0ZSBfZGlzcGxheUhlaWdodDogbnVtYmVyO1xyXG4gICAgcHJpdmF0ZSBfaEFsaWduOiBudW1iZXI7XHJcbiAgICBwcml2YXRlIF9oUG9zOiBudW1iZXI7XHJcblxyXG4gICAgY29uc3RydWN0b3IoaWNvbjogVGltZWxpbmVFdmVudEljb24pIHtcclxuICAgICAgICB0aGlzLl9zZXRBdHRycyhpY29uKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIF9zZXRBdHRycyhpY29uOiBUaW1lbGluZUV2ZW50SWNvbikge1xyXG4gICAgICAgIHRoaXMuX3VybCA9IGljb24udXJsO1xyXG4gICAgICAgIHRoaXMuX2Rpc3BsYXlXaWR0aCA9IGljb24uZGlzcGxheVdpZHRoO1xyXG4gICAgICAgIHRoaXMuX2Rpc3BsYXlIZWlnaHQgPSBpY29uLmRpc3BsYXlIZWlnaHQ7XHJcbiAgICAgICAgdGhpcy5faEFsaWduID0gaWNvbi5oQWxpZ247XHJcbiAgICAgICAgdGhpcy5faFBvcyA9IGljb24uaFBvcztcclxuICAgIH1cclxuXHJcbiAgICBnZXQgdXJsKCk6IHN0cmluZyB7IHJldHVybiB0aGlzLl91cmw7IH1cclxuICAgIGdldCBkaXNwbGF5V2lkdGgoKTogbnVtYmVyIHsgcmV0dXJuIHRoaXMuX2Rpc3BsYXlXaWR0aDsgfVxyXG4gICAgZ2V0IGRpc3BsYXlIZWlnaHQoKTogbnVtYmVyIHsgcmV0dXJuIHRoaXMuX2Rpc3BsYXlIZWlnaHQ7IH1cclxuICAgIGdldCBoQWxpZ24oKTogbnVtYmVyIHsgcmV0dXJuIHRoaXMuX2hBbGlnbjsgfVxyXG4gICAgZ2V0IGhQb3MoKTogbnVtYmVyIHsgcmV0dXJuIHRoaXMuX2hQb3M7IH1cclxuXHJcbiAgICBzbmFwc2hvdCgpOiBUaW1lbGluZUV2ZW50SWNvbiB7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgdXJsOiB0aGlzLl91cmwsXHJcbiAgICAgICAgICAgIGRpc3BsYXlXaWR0aDogdGhpcy5fZGlzcGxheVdpZHRoLFxyXG4gICAgICAgICAgICBkaXNwbGF5SGVpZ2h0OiB0aGlzLl9kaXNwbGF5SGVpZ2h0LFxyXG4gICAgICAgICAgICBoQWxpZ246IHRoaXMuX2hBbGlnbixcclxuICAgICAgICAgICAgaFBvczogdGhpcy5faFBvc1xyXG4gICAgICAgIH07XHJcbiAgICB9XHJcbn1cclxuXHJcblxyXG5cclxuZXhwb3J0IGNsYXNzIFRpbWVsaW5lRXZlbnRTdHlsZVVpIHtcclxuICAgIHByaXZhdGUgX3N0eWxlR3VpZDogc3RyaW5nO1xyXG4gICAgcHJpdmF0ZSBfaWNvbnM6IFRpbWVsaW5lRXZlbnRJY29uVWlbXTtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihzdHlsZTogVGltZWxpbmVFdmVudFN0eWxlKSB7XHJcbiAgICAgICAgdGhpcy5fc3R5bGVHdWlkID0gc3R5bGUuc3R5bGVHdWlkO1xyXG4gICAgICAgIHRoaXMuX3NldEF0dHJzKHN0eWxlKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgc3R5bGVHdWlkKCk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3N0eWxlR3VpZDtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIF9zZXRBdHRycyhzdHlsZTogVGltZWxpbmVFdmVudFN0eWxlKSB7XHJcbiAgICAgICAgdGhpcy5faWNvbnMgPSBzdHlsZS5pY29ucy5tYXAoKGljb24pID0+IG5ldyBUaW1lbGluZUV2ZW50SWNvblVpKGljb24pKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgbnVtSWNvbnMoKTogbnVtYmVyIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5faWNvbnMubGVuZ3RoO1xyXG4gICAgfVxyXG5cclxuICAgIGljb24oaW5kZXg6IG51bWJlcik6IFRpbWVsaW5lRXZlbnRJY29uVWkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9pY29uc1tpbmRleF07XHJcbiAgICB9XHJcblxyXG4gICAgc25hcHNob3QoKTogVGltZWxpbmVFdmVudFN0eWxlIHtcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICBzdHlsZUd1aWQ6IHRoaXMuX3N0eWxlR3VpZCxcclxuICAgICAgICAgICAgaWNvbnM6IHRoaXMuX2ljb25zLm1hcCgodWkpID0+IHVpLnNuYXBzaG90KCkpXHJcbiAgICAgICAgfTtcclxuICAgIH1cclxufVxyXG5cclxuXHJcblxyXG4iXX0=