export class Profile { #__type = "class" /** @private {string} */ #_slug; /** @private {string} */ #_name; /** @private {string} */ #_server; /** @private {boolean} */ #_isActive; /** * @param {string} slug * @param {string} name * @param {string} server * @param {boolean} isActive */ constructor(slug = "", name = "", server = "eu", isActive = true) { this.#_slug = slug; this.#_name = name; this.#_server = server; this.#_isActive = isActive; } get __type () { return this.#__type; } get slug() { return this.#_slug; } set slug(value) { this.#_slug = value; } get name() { return this.#_name; } set name(value) { this.#_name = value; } get server() { return this.#_server; } set server(value) { this.#_server = value; } get isActive() { return this.#_isActive; } set isActive(value) { this.#_isActive = Boolean(value); } /** * @param {string} slug * @param {string} name * @param {string} server * @param {boolean} isActive */ hydrate({slug, name, server, isActive}) { this.slug = slug; this.name = name; this.server = server; this.isActive = isActive; } /** * @return {{slug: string, name: string, server: string, isActive: number}} */ dehydrate() { return { slug: this.slug, name: this.name, server: this.server, isActive: Number(this.isActive) } } } export class Region { #__type = "class"; /** @private {string} */ #_slug; /** @private {string} */ #_name; /** @private {number} */ #_scrollLeft; /** @private {number} */ #_scrollTop; /** @private {number} */ #_zoomLevel; /** * @param {string} slug * @param {string} name * @param {number} scrollLeft * @param {number} scrollTop * @param {number} zoomLevel */ constructor(slug, name, scrollLeft = 50, scrollTop = 50, zoomLevel = 8) { this.#_slug = slug; this.#_name = name; this.#_scrollLeft = scrollLeft; this.#_scrollTop = scrollTop; this.#_zoomLevel = zoomLevel; } get __type () { return this.#__type; } get slug() { return this.#_slug; } set slug(value) { this.#_slug = value; } get name() { return this.#_name; } set name(value) { this.#_name = value; } get scrollLeft() { return this.#_scrollLeft; } set scrollLeft(value) { this.#_scrollLeft = Number(value); } get scrollTop() { return this.#_scrollTop; } set scrollTop(value) { this.#_scrollTop = Number(value); } get zoomLevel() { return this.#_zoomLevel; } set zoomLevel(value) { this.#_zoomLevel = Number(value); } /** * @param {string} slug * @param {string} name * @param {number} scrollLeft * @param {number} scrollTop * @param {number} zoomLevel */ hydrate({slug, name, scrollLeft, scrollTop, zoomLevel}) { this.slug = slug; this.name = name; this.scrollLeft = scrollLeft; this.scrollTop = scrollTop; this.zoomLevel = zoomLevel; } /** * @return {{slug: string, name: string, scrollLeft: number, scrollTop: number, zoomLevel: number}} */ dehydrate() { return { slug: this.slug, name: this.name, scrollLeft: Number(this.scrollLeft), scrollTop: Number(this.scrollTop), zoomLevel: Number(this.zoomLevel) } } } export class Filter { #__type = "class"; /** @private {string} */ #_region; /** @private {string} */ #_slug; /** @private {boolean} */ #_isActive; /** * @param {string} region * @param {string} slug * @param {boolean} isActive */ constructor(region, slug, isActive=false) { this.#_region = region; this.#_slug = slug; this.#_isActive = isActive; } get __type () { return this.#__type; } get slug() { return this.#_slug; } set slug(value) { this.#_slug = value; } get region() { return this.#_region; } set region(value) { this.#_region = value; } get isActive() { return this.#_isActive; } set isActive(value) { this.#_isActive = Boolean(value); } /** * @param {string} region * @param {string} slug * @param {boolean} isActive */ hydrate({region, slug, isActive}) { this.region = region this.slug = slug this.isActive = isActive; } /** * @return {{region: string, slug: string, isActive: number}} */ dehydrate() { return { region: this.region, slug: this.slug, isActive: Number(this.isActive) } } } export class Node { #__type = "class"; /** @private {string} */ #_profile; /** @private {string} */ #_region; /** @private {string} */ #_domId; /** @private {boolean} */ #_isHidden; constructor(profile, id, region, isHidden) { this.#_profile = profile; this.#_domId = id; this.#_region = region; this.#_isHidden = isHidden; } get __type () { return this.#__type; } get profile() { return this.#_profile; } set profile(value) { this.#_profile = value; } get region() { return this.#_region; } set region(value) { this.#_region = value; } get domId() { return this.#_domId; } set domId(value) { this.#_domId = value; } get isHidden() { return this.#_isHidden; } set isHidden(value) { this.#_isHidden = Boolean(value); } /** * @param {string} profile * @param {string} domId * @param {string} region * @param {boolean} isHidden */ hydrate({profile, domId, region, isHidden}) { this.profile = profile; this.domId = domId; this.region = region; this.isHidden = isHidden; } /** * @return {{profile: string, domId: string, region: string, isHidden: number}} */ dehydrate() { return { profile: this.profile, domId: this.domId, region: this.region, isHidden: Number(this.isHidden) } } }