338 lines
6.6 KiB
JavaScript
338 lines
6.6 KiB
JavaScript
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)
|
|
}
|
|
}
|
|
} |