@ratiosolver/flick 0.0.1
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/LICENSE +201 -0
- package/README.md +58 -0
- package/dist/app.d.ts +158 -0
- package/dist/app.js +272 -0
- package/dist/app.js.map +1 -0
- package/dist/components/offcanvas.d.ts +5 -0
- package/dist/components/offcanvas.js +39 -0
- package/dist/components/offcanvas.js.map +1 -0
- package/dist/components/sidebar.d.ts +5 -0
- package/dist/components/sidebar.js +36 -0
- package/dist/components/sidebar.js.map +1 -0
- package/dist/index.d.ts +10 -0
- package/dist/index.js +11 -0
- package/dist/index.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/dist/utils/blink.d.ts +14 -0
- package/dist/utils/blink.js +28 -0
- package/dist/utils/blink.js.map +1 -0
- package/dist/utils/connection.d.ts +56 -0
- package/dist/utils/connection.js +74 -0
- package/dist/utils/connection.js.map +1 -0
- package/dist/utils/selector.d.ts +59 -0
- package/dist/utils/selector.js +44 -0
- package/dist/utils/selector.js.map +1 -0
- package/dist/utils/settings.d.ts +15 -0
- package/dist/utils/settings.js +26 -0
- package/dist/utils/settings.js.map +1 -0
- package/dist/utils/user.d.ts +59 -0
- package/dist/utils/user.js +90 -0
- package/dist/utils/user.js.map +1 -0
- package/dist/utils/user_components.d.ts +22 -0
- package/dist/utils/user_components.js +132 -0
- package/dist/utils/user_components.js.map +1 -0
- package/package.json +40 -0
package/dist/app.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"app.js","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { App, Component } from "../app";
|
|
2
|
+
import { Selector, SelectorGroup } from "../utils/selector";
|
|
3
|
+
export declare class Offcanvas extends Component<App, HTMLDivElement> {
|
|
4
|
+
constructor(id: string, group: SelectorGroup, top: Map<HTMLAnchorElement, Selector>, bottom?: Map<HTMLAnchorElement, Selector>);
|
|
5
|
+
}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { App, Component } from "../app";
|
|
2
|
+
export class Offcanvas extends Component {
|
|
3
|
+
constructor(id, group, top, bottom) {
|
|
4
|
+
super(App.get_instance(), document.createElement('div'));
|
|
5
|
+
this.element.classList.add('offcanvas', 'offcanvas-start', 'd-flex');
|
|
6
|
+
this.element.tabIndex = -1;
|
|
7
|
+
this.element.id = id;
|
|
8
|
+
const body = document.createElement('div');
|
|
9
|
+
body.classList.add('offcanvas-body', 'flex-column', 'flex-shrink-0', 'p-3', 'bg-light');
|
|
10
|
+
const ul = document.createElement('ul');
|
|
11
|
+
ul.classList.add('nav', 'nav-pills', 'flex-column', 'mb-auto');
|
|
12
|
+
for (const [a, sel] of top) {
|
|
13
|
+
const li = document.createElement('li');
|
|
14
|
+
li.classList.add('nav-item');
|
|
15
|
+
a.classList.add('nav-link');
|
|
16
|
+
group.add_selector(sel);
|
|
17
|
+
li.appendChild(a);
|
|
18
|
+
ul.appendChild(li);
|
|
19
|
+
}
|
|
20
|
+
body.appendChild(ul);
|
|
21
|
+
if (bottom) {
|
|
22
|
+
const hr = document.createElement('hr');
|
|
23
|
+
body.appendChild(hr);
|
|
24
|
+
const footer_ul = document.createElement('ul');
|
|
25
|
+
footer_ul.classList.add('nav', 'nav-pills', 'flex-column', 'mb-0');
|
|
26
|
+
for (const [a, sel] of bottom) {
|
|
27
|
+
const li = document.createElement('li');
|
|
28
|
+
li.classList.add('nav-item');
|
|
29
|
+
a.classList.add('nav-link');
|
|
30
|
+
group.add_selector(sel);
|
|
31
|
+
li.appendChild(a);
|
|
32
|
+
footer_ul.appendChild(li);
|
|
33
|
+
}
|
|
34
|
+
body.appendChild(footer_ul);
|
|
35
|
+
}
|
|
36
|
+
this.element.append(body);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=offcanvas.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"offcanvas.js","sourceRoot":"","sources":["../../src/components/offcanvas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAGxC,MAAM,OAAO,SAAU,SAAQ,SAA8B;IAE3D,YAAY,EAAU,EAAE,KAAoB,EAAE,GAAqC,EAAE,MAAyC;QAC5H,KAAK,CAAC,GAAG,CAAC,YAAY,EAAE,EAAE,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC;QAEzD,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,WAAW,EAAE,iBAAiB,EAAE,QAAQ,CAAC,CAAC;QACrE,IAAI,CAAC,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;QAC3B,IAAI,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,CAAC;QAErB,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAC3C,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,gBAAgB,EAAE,aAAa,EAAE,eAAe,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;QAExF,MAAM,EAAE,GAAG,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QACxC,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,SAAS,CAAC,CAAC;QAE/D,KAAK,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,GAAG,EAAE,CAAC;YAC3B,MAAM,EAAE,GAAG,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;YACxC,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YAE7B,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YAC5B,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;YAExB,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;YAClB,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;QACrB,CAAC;QAED,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;QAErB,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,EAAE,GAAG,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;YACxC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;YAErB,MAAM,SAAS,GAAG,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;YAC/C,SAAS,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,CAAC,CAAC;YAEnE,KAAK,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,MAAM,EAAE,CAAC;gBAC9B,MAAM,EAAE,GAAG,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;gBACxC,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;gBAE7B,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;gBAC5B,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;gBAExB,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;gBAClB,SAAS,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;YAC5B,CAAC;YAED,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;QAC9B,CAAC;QAED,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC;CACF"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { App, Component } from "../app";
|
|
2
|
+
import { Selector, SelectorGroup } from "../utils/selector";
|
|
3
|
+
export declare class Sidebar extends Component<App, HTMLDivElement> {
|
|
4
|
+
constructor(group: SelectorGroup, top: Map<HTMLAnchorElement, Selector>, bottom?: Map<HTMLAnchorElement, Selector>);
|
|
5
|
+
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { App, Component } from "../app";
|
|
2
|
+
export class Sidebar extends Component {
|
|
3
|
+
constructor(group, top, bottom) {
|
|
4
|
+
super(App.get_instance(), document.createElement('div'));
|
|
5
|
+
this.element.classList.add('d-flex', 'flex-column', 'flex-shrink-0', 'p-3', 'bg-light');
|
|
6
|
+
this.element.style.width = '280px';
|
|
7
|
+
this.element.style.height = 'calc(100vh - 60px)';
|
|
8
|
+
const ul = document.createElement('ul');
|
|
9
|
+
ul.classList.add('nav', 'nav-pills', 'flex-column', 'mb-auto');
|
|
10
|
+
for (const [a, sel] of top) {
|
|
11
|
+
const li = document.createElement('li');
|
|
12
|
+
li.classList.add('nav-item');
|
|
13
|
+
a.classList.add('nav-link');
|
|
14
|
+
group.add_selector(sel);
|
|
15
|
+
li.appendChild(a);
|
|
16
|
+
ul.appendChild(li);
|
|
17
|
+
}
|
|
18
|
+
this.element.appendChild(ul);
|
|
19
|
+
if (bottom) {
|
|
20
|
+
const hr = document.createElement('hr');
|
|
21
|
+
this.element.appendChild(hr);
|
|
22
|
+
const footer_ul = document.createElement('ul');
|
|
23
|
+
footer_ul.classList.add('nav', 'nav-pills', 'flex-column', 'mb-0');
|
|
24
|
+
for (const [a, sel] of bottom) {
|
|
25
|
+
const li = document.createElement('li');
|
|
26
|
+
li.classList.add('nav-item');
|
|
27
|
+
a.classList.add('nav-link');
|
|
28
|
+
group.add_selector(sel);
|
|
29
|
+
li.appendChild(a);
|
|
30
|
+
footer_ul.appendChild(li);
|
|
31
|
+
}
|
|
32
|
+
this.element.appendChild(footer_ul);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=sidebar.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sidebar.js","sourceRoot":"","sources":["../../src/components/sidebar.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAGxC,MAAM,OAAO,OAAQ,SAAQ,SAA8B;IAEzD,YAAY,KAAoB,EAAE,GAAqC,EAAE,MAAyC;QAChH,KAAK,CAAC,GAAG,CAAC,YAAY,EAAE,EAAE,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC;QAEzD,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,EAAE,aAAa,EAAE,eAAe,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;QACxF,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,GAAG,OAAO,CAAC;QACnC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,oBAAoB,CAAC;QAEjD,MAAM,EAAE,GAAG,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QACxC,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,SAAS,CAAC,CAAC;QAE/D,KAAK,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,GAAG,EAAE,CAAC;YAC3B,MAAM,EAAE,GAAG,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;YACxC,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YAE7B,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YAC5B,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;YAExB,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;YAClB,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;QACrB,CAAC;QAED,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;QAE7B,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,EAAE,GAAG,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;YACxC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;YAE7B,MAAM,SAAS,GAAG,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;YAC/C,SAAS,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,CAAC,CAAC;YAEnE,KAAK,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,MAAM,EAAE,CAAC;gBAC9B,MAAM,EAAE,GAAG,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;gBACxC,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;gBAE7B,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;gBAC5B,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;gBAExB,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;gBAClB,SAAS,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;YAC5B,CAAC;YAED,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;QACtC,CAAC;IACH,CAAC;CACF"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import 'bootstrap/dist/css/bootstrap.min.css';
|
|
2
|
+
import 'bootstrap/dist/js/bootstrap.bundle.min.js';
|
|
3
|
+
export * from './app';
|
|
4
|
+
export * from './components/sidebar';
|
|
5
|
+
export * from './components/offcanvas';
|
|
6
|
+
export * from './utils/settings';
|
|
7
|
+
export * from './utils/connection';
|
|
8
|
+
export * from './utils/user_components';
|
|
9
|
+
export * from './utils/selector';
|
|
10
|
+
export * from './utils/blink';
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import 'bootstrap/dist/css/bootstrap.min.css';
|
|
2
|
+
import 'bootstrap/dist/js/bootstrap.bundle.min.js';
|
|
3
|
+
export * from './app';
|
|
4
|
+
export * from './components/sidebar';
|
|
5
|
+
export * from './components/offcanvas';
|
|
6
|
+
export * from './utils/settings';
|
|
7
|
+
export * from './utils/connection';
|
|
8
|
+
export * from './utils/user_components';
|
|
9
|
+
export * from './utils/selector';
|
|
10
|
+
export * from './utils/blink';
|
|
11
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,sCAAsC,CAAC;AAC9C,OAAO,2CAA2C,CAAC;AAEnD,cAAc,OAAO,CAAC;AAEtB,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC;AAEvC,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,yBAAyB,CAAC;AACxC,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"fileNames":["../node_modules/typescript/lib/lib.es5.d.ts","../node_modules/typescript/lib/lib.es2015.d.ts","../node_modules/typescript/lib/lib.es2016.d.ts","../node_modules/typescript/lib/lib.es2017.d.ts","../node_modules/typescript/lib/lib.es2018.d.ts","../node_modules/typescript/lib/lib.es2019.d.ts","../node_modules/typescript/lib/lib.es2020.d.ts","../node_modules/typescript/lib/lib.es2021.d.ts","../node_modules/typescript/lib/lib.es2022.d.ts","../node_modules/typescript/lib/lib.es2023.d.ts","../node_modules/typescript/lib/lib.es2024.d.ts","../node_modules/typescript/lib/lib.esnext.d.ts","../node_modules/typescript/lib/lib.dom.d.ts","../node_modules/typescript/lib/lib.es2015.core.d.ts","../node_modules/typescript/lib/lib.es2015.collection.d.ts","../node_modules/typescript/lib/lib.es2015.generator.d.ts","../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../node_modules/typescript/lib/lib.es2015.promise.d.ts","../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../node_modules/typescript/lib/lib.es2016.intl.d.ts","../node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts","../node_modules/typescript/lib/lib.es2017.date.d.ts","../node_modules/typescript/lib/lib.es2017.object.d.ts","../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../node_modules/typescript/lib/lib.es2017.string.d.ts","../node_modules/typescript/lib/lib.es2017.intl.d.ts","../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../node_modules/typescript/lib/lib.es2018.intl.d.ts","../node_modules/typescript/lib/lib.es2018.promise.d.ts","../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../node_modules/typescript/lib/lib.es2019.array.d.ts","../node_modules/typescript/lib/lib.es2019.object.d.ts","../node_modules/typescript/lib/lib.es2019.string.d.ts","../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../node_modules/typescript/lib/lib.es2019.intl.d.ts","../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../node_modules/typescript/lib/lib.es2020.date.d.ts","../node_modules/typescript/lib/lib.es2020.promise.d.ts","../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../node_modules/typescript/lib/lib.es2020.string.d.ts","../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../node_modules/typescript/lib/lib.es2020.intl.d.ts","../node_modules/typescript/lib/lib.es2020.number.d.ts","../node_modules/typescript/lib/lib.es2021.promise.d.ts","../node_modules/typescript/lib/lib.es2021.string.d.ts","../node_modules/typescript/lib/lib.es2021.weakref.d.ts","../node_modules/typescript/lib/lib.es2021.intl.d.ts","../node_modules/typescript/lib/lib.es2022.array.d.ts","../node_modules/typescript/lib/lib.es2022.error.d.ts","../node_modules/typescript/lib/lib.es2022.intl.d.ts","../node_modules/typescript/lib/lib.es2022.object.d.ts","../node_modules/typescript/lib/lib.es2022.string.d.ts","../node_modules/typescript/lib/lib.es2022.regexp.d.ts","../node_modules/typescript/lib/lib.es2023.array.d.ts","../node_modules/typescript/lib/lib.es2023.collection.d.ts","../node_modules/typescript/lib/lib.es2023.intl.d.ts","../node_modules/typescript/lib/lib.es2024.arraybuffer.d.ts","../node_modules/typescript/lib/lib.es2024.collection.d.ts","../node_modules/typescript/lib/lib.es2024.object.d.ts","../node_modules/typescript/lib/lib.es2024.promise.d.ts","../node_modules/typescript/lib/lib.es2024.regexp.d.ts","../node_modules/typescript/lib/lib.es2024.sharedmemory.d.ts","../node_modules/typescript/lib/lib.es2024.string.d.ts","../node_modules/typescript/lib/lib.esnext.array.d.ts","../node_modules/typescript/lib/lib.esnext.collection.d.ts","../node_modules/typescript/lib/lib.esnext.intl.d.ts","../node_modules/typescript/lib/lib.esnext.disposable.d.ts","../node_modules/typescript/lib/lib.esnext.decorators.d.ts","../node_modules/typescript/lib/lib.esnext.iterator.d.ts","../node_modules/typescript/lib/lib.decorators.d.ts","../node_modules/typescript/lib/lib.decorators.legacy.d.ts","../src/utils/settings.ts","../src/utils/connection.ts","../src/app.ts","../src/utils/selector.ts","../src/components/sidebar.ts","../src/components/offcanvas.ts","../src/utils/user.ts","../src/utils/user_components.ts","../src/utils/blink.ts","../src/index.ts"],"fileIdsList":[[79],[80,81],[78,79,80,81,82,83,85,86],[78],[78,79],[80,84]],"fileInfos":[{"version":"e41c290ef7dd7dab3493e6cbe5909e0148edf4a8dad0271be08edec368a0f7b9","affectsGlobalScope":true,"impliedFormat":1},{"version":"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","impliedFormat":1},{"version":"3facaf05f0c5fc569c5649dd359892c98a85557e3e0c847964caeb67076f4d75","impliedFormat":1},{"version":"e44bb8bbac7f10ecc786703fe0a6a4b952189f908707980ba8f3c8975a760962","impliedFormat":1},{"version":"5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","impliedFormat":1},{"version":"68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","impliedFormat":1},{"version":"5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","impliedFormat":1},{"version":"feecb1be483ed332fad555aff858affd90a48ab19ba7272ee084704eb7167569","impliedFormat":1},{"version":"ee7bad0c15b58988daa84371e0b89d313b762ab83cb5b31b8a2d1162e8eb41c2","impliedFormat":1},{"version":"27bdc30a0e32783366a5abeda841bc22757c1797de8681bbe81fbc735eeb1c10","impliedFormat":1},{"version":"8fd575e12870e9944c7e1d62e1f5a73fcf23dd8d3a321f2a2c74c20d022283fe","impliedFormat":1},{"version":"e12a46ce14b817d4c9e6b2b478956452330bf00c9801b79de46f7a1815b5bd40","impliedFormat":1},{"version":"4fd3f3422b2d2a3dfd5cdd0f387b3a8ec45f006c6ea896a4cb41264c2100bb2c","affectsGlobalScope":true,"impliedFormat":1},{"version":"c57796738e7f83dbc4b8e65132f11a377649c00dd3eee333f672b8f0a6bea671","affectsGlobalScope":true,"impliedFormat":1},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true,"impliedFormat":1},{"version":"515d0b7b9bea2e31ea4ec968e9edd2c39d3eebf4a2d5cbd04e88639819ae3b71","affectsGlobalScope":true,"impliedFormat":1},{"version":"62bb211266ee48b2d0edf0d8d1b191f0c24fc379a82bd4c1692a082c540bc6b1","affectsGlobalScope":true,"impliedFormat":1},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true,"impliedFormat":1},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true,"impliedFormat":1},{"version":"936e80ad36a2ee83fc3caf008e7c4c5afe45b3cf3d5c24408f039c1d47bdc1df","affectsGlobalScope":true,"impliedFormat":1},{"version":"d15bea3d62cbbdb9797079416b8ac375ae99162a7fba5de2c6c505446486ac0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"68d18b664c9d32a7336a70235958b8997ebc1c3b8505f4f1ae2b7e7753b87618","affectsGlobalScope":true,"impliedFormat":1},{"version":"eb3d66c8327153d8fa7dd03f9c58d351107fe824c79e9b56b462935176cdf12a","affectsGlobalScope":true,"impliedFormat":1},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true,"impliedFormat":1},{"version":"69ab18c3b76cd9b1be3d188eaf8bba06112ebbe2f47f6c322b5105a6fbc45a2e","affectsGlobalScope":true,"impliedFormat":1},{"version":"fef8cfad2e2dc5f5b3d97a6f4f2e92848eb1b88e897bb7318cef0e2820bceaab","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true,"impliedFormat":1},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"954296b30da6d508a104a3a0b5d96b76495c709785c1d11610908e63481ee667","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac9538681b19688c8eae65811b329d3744af679e0bdfa5d842d0e32524c73e1c","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a969edff4bd52585473d24995c5ef223f6652d6ef46193309b3921d65dd4376","affectsGlobalScope":true,"impliedFormat":1},{"version":"9e9fbd7030c440b33d021da145d3232984c8bb7916f277e8ffd3dc2e3eae2bdb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811ec78f7fefcabbda4bfa93b3eb67d9ae166ef95f9bff989d964061cbf81a0c","affectsGlobalScope":true,"impliedFormat":1},{"version":"717937616a17072082152a2ef351cb51f98802fb4b2fdabd32399843875974ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"d7e7d9b7b50e5f22c915b525acc5a49a7a6584cf8f62d0569e557c5cfc4b2ac2","affectsGlobalScope":true,"impliedFormat":1},{"version":"71c37f4c9543f31dfced6c7840e068c5a5aacb7b89111a4364b1d5276b852557","affectsGlobalScope":true,"impliedFormat":1},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true,"impliedFormat":1},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true,"impliedFormat":1},{"version":"74f7fa2d027d5b33eb0471c8e82a6c87216223181ec31247c357a3e8e2fddc5b","affectsGlobalScope":true,"impliedFormat":1},{"version":"f1e2a172204962276504466a6393426d2ca9c54894b1ad0a6c9dad867a65f876","affectsGlobalScope":true,"impliedFormat":1},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true,"impliedFormat":1},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true,"impliedFormat":1},{"version":"52ada8e0b6e0482b728070b7639ee42e83a9b1c22d205992756fe020fd9f4a47","affectsGlobalScope":true,"impliedFormat":1},{"version":"3bdefe1bfd4d6dee0e26f928f93ccc128f1b64d5d501ff4a8cf3c6371200e5e6","affectsGlobalScope":true,"impliedFormat":1},{"version":"59fb2c069260b4ba00b5643b907ef5d5341b167e7d1dbf58dfd895658bda2867","affectsGlobalScope":true,"impliedFormat":1},{"version":"639e512c0dfc3fad96a84caad71b8834d66329a1f28dc95e3946c9b58176c73a","affectsGlobalScope":true,"impliedFormat":1},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true,"impliedFormat":1},{"version":"af3dd424cf267428f30ccfc376f47a2c0114546b55c44d8c0f1d57d841e28d74","affectsGlobalScope":true,"impliedFormat":1},{"version":"995c005ab91a498455ea8dfb63aa9f83fa2ea793c3d8aa344be4a1678d06d399","affectsGlobalScope":true,"impliedFormat":1},{"version":"959d36cddf5e7d572a65045b876f2956c973a586da58e5d26cde519184fd9b8a","affectsGlobalScope":true,"impliedFormat":1},{"version":"965f36eae237dd74e6cca203a43e9ca801ce38824ead814728a2807b1910117d","affectsGlobalScope":true,"impliedFormat":1},{"version":"3925a6c820dcb1a06506c90b1577db1fdbf7705d65b62b99dce4be75c637e26b","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a3d63ef2b853447ec4f749d3f368ce642264246e02911fcb1590d8c161b8005","affectsGlobalScope":true,"impliedFormat":1},{"version":"b5ce7a470bc3628408429040c4e3a53a27755022a32fd05e2cb694e7015386c7","affectsGlobalScope":true,"impliedFormat":1},{"version":"8444af78980e3b20b49324f4a16ba35024fef3ee069a0eb67616ea6ca821c47a","affectsGlobalScope":true,"impliedFormat":1},{"version":"3287d9d085fbd618c3971944b65b4be57859f5415f495b33a6adc994edd2f004","affectsGlobalScope":true,"impliedFormat":1},{"version":"b4b67b1a91182421f5df999988c690f14d813b9850b40acd06ed44691f6727ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"bab26767638ab3557de12c900f0b91f710c7dc40ee9793d5a27d32c04f0bf646","affectsGlobalScope":true,"impliedFormat":1},{"version":"436aaf437562f276ec2ddbee2f2cdedac7664c1e4c1d2c36839ddd582eeb3d0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e3c06ea092138bf9fa5e874a1fdbc9d54805d074bee1de31b99a11e2fec239d","affectsGlobalScope":true,"impliedFormat":1},{"version":"87dc0f382502f5bbce5129bdc0aea21e19a3abbc19259e0b43ae038a9fc4e326","affectsGlobalScope":true,"impliedFormat":1},{"version":"b1cb28af0c891c8c96b2d6b7be76bd394fddcfdb4709a20ba05a7c1605eea0f9","affectsGlobalScope":true,"impliedFormat":1},{"version":"2fef54945a13095fdb9b84f705f2b5994597640c46afeb2ce78352fab4cb3279","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac77cb3e8c6d3565793eb90a8373ee8033146315a3dbead3bde8db5eaf5e5ec6","affectsGlobalScope":true,"impliedFormat":1},{"version":"56e4ed5aab5f5920980066a9409bfaf53e6d21d3f8d020c17e4de584d29600ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ece9f17b3866cc077099c73f4983bddbcb1dc7ddb943227f1ec070f529dedd1","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a6282c8827e4b9a95f4bf4f5c205673ada31b982f50572d27103df8ceb8013c","affectsGlobalScope":true,"impliedFormat":1},{"version":"1c9319a09485199c1f7b0498f2988d6d2249793ef67edda49d1e584746be9032","affectsGlobalScope":true,"impliedFormat":1},{"version":"e3a2a0cee0f03ffdde24d89660eba2685bfbdeae955a6c67e8c4c9fd28928eeb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811c71eee4aa0ac5f7adf713323a5c41b0cf6c4e17367a34fbce379e12bbf0a4","affectsGlobalScope":true,"impliedFormat":1},{"version":"51ad4c928303041605b4d7ae32e0c1ee387d43a24cd6f1ebf4a2699e1076d4fa","affectsGlobalScope":true,"impliedFormat":1},{"version":"d4b1d2c51d058fc21ec2629fff7a76249dec2e36e12960ea056e3ef89174080f","affectsGlobalScope":true,"impliedFormat":1},{"version":"61d6a2092f48af66dbfb220e31eea8b10bc02b6932d6e529005fd2d7b3281290","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e7f8264d0fb4c5339605a15daadb037bf238c10b654bb3eee14208f860a32ea","affectsGlobalScope":true,"impliedFormat":1},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true,"impliedFormat":1},{"version":"ff867c587d8c95cfb5f656b46197f62922c9644ad5080407e0883169731bdab1","signature":"0a975fa73b9325e2d8fe4a116ce34e517a62a42008d68fe27fa0d5d96e6d94f7"},{"version":"648da5b9a6292bf2239215ffbddb736072f1324ab15d9a168a905027733a66bc","signature":"b9045ebff5a86e21b15b550e44fa9adc14424beaf99eb3c39c273d0b2aca964d"},{"version":"eeb9d613f2f66763984e08eb87f076afa6d305088fdf8fc4af0ae0dae3b393d9","signature":"1ae3f4de120772dbce29aa6aab79acbb0067c286d6860a63e6a3ded573e42a6a"},{"version":"8c75f7c24ecb091282940be3a8bb4f69e26daa0582181babe92ff73d00764904","signature":"029dada1eb36e821262b7c4f4d0f423255e76ffddd6cbe548f27925b910cfb85"},{"version":"ab843d7e37b80075eeb46aa88310b1a7d053d2500876af4151b3879b5de26502","signature":"ac6693f71a2d32ec58ecb9e6361ba825027c00a38e84cacc9a99964f96278fc8"},{"version":"90e07cb46d543f9dad1d330e9aeb54a5d83606dd521ef18a0e1360f91137432b","signature":"df8353d5592c4599bbf71b79264f5a5897e25e982b3aae4af91deca4f29aecf7"},{"version":"78e835855e310d5bbc6bfbf37a688cc4a31c99f723cf24bdd28bf63b1fa5530e","signature":"7cc62289f7cd619814adb250b2cc03d80dba25be68eed6887e038e390c21d613"},{"version":"31fdccadc146094322fb70e839d5f96c06ce236416af324f140bb02f3a868331","signature":"8952718e9ff9774a6faaf92e94a8333d94220ec38dd831f9d873c853f26adef9"},{"version":"f42a0a0447d588a4a684c8e72ca3ce2f0e35b9b11eb4ec58b209dbd1cb1ba438","signature":"f0595d80c8e00b0f0456f3ea81fda89e3695098ac2a1907db62a35baf0d9095c"},{"version":"51c68900654a57147e5e79974433adca960c24e43f1d81b94dfcc764f09e806e","signature":"09c3374194aa5cde0ec118c68f0ae0828560d165240908fb1bfc1ec582b70352"}],"root":[[78,87]],"options":{"declaration":true,"esModuleInterop":true,"module":99,"noFallthroughCasesInSwitch":true,"noImplicitAny":true,"noImplicitOverride":true,"noImplicitReturns":true,"noImplicitThis":true,"noUnusedLocals":true,"noUnusedParameters":true,"outDir":"./","sourceMap":true,"strict":true,"target":2},"referencedMap":[[80,1],[83,2],[82,2],[87,3],[79,4],[84,5],[85,6]],"version":"5.7.3"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Adds a custom CSS class to one or more HTML elements for a specified duration,
|
|
3
|
+
* creating a temporary visual effect.
|
|
4
|
+
*
|
|
5
|
+
* @param elements - A single HTML element or an array of elements to apply the effect to.
|
|
6
|
+
* @param options - Configuration options for the blinking effect:
|
|
7
|
+
* - className: The CSS class to apply (defaults to 'blink')
|
|
8
|
+
* - duration: The duration in milliseconds for the effect (defaults to 500ms)
|
|
9
|
+
* @returns A function that can be called to cancel the effect before the duration expires
|
|
10
|
+
*/
|
|
11
|
+
export declare function blink(elements: HTMLElement | HTMLElement[], options?: {
|
|
12
|
+
className?: string;
|
|
13
|
+
duration?: number;
|
|
14
|
+
}): () => void;
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Adds a custom CSS class to one or more HTML elements for a specified duration,
|
|
3
|
+
* creating a temporary visual effect.
|
|
4
|
+
*
|
|
5
|
+
* @param elements - A single HTML element or an array of elements to apply the effect to.
|
|
6
|
+
* @param options - Configuration options for the blinking effect:
|
|
7
|
+
* - className: The CSS class to apply (defaults to 'blink')
|
|
8
|
+
* - duration: The duration in milliseconds for the effect (defaults to 500ms)
|
|
9
|
+
* @returns A function that can be called to cancel the effect before the duration expires
|
|
10
|
+
*/
|
|
11
|
+
export function blink(elements, options = {}) {
|
|
12
|
+
const className = options.className || 'blink';
|
|
13
|
+
const duration = options.duration || 500;
|
|
14
|
+
// Convert single element to array for consistent handling
|
|
15
|
+
const elementArray = Array.isArray(elements) ? elements : [elements];
|
|
16
|
+
// Add the class to all elements
|
|
17
|
+
elementArray.forEach(el => el.classList.add(className));
|
|
18
|
+
// Set a single timeout for all elements
|
|
19
|
+
const timeoutId = setTimeout(() => {
|
|
20
|
+
elementArray.forEach(el => el.classList.remove(className));
|
|
21
|
+
}, duration);
|
|
22
|
+
// Return a cancellation function
|
|
23
|
+
return () => {
|
|
24
|
+
clearTimeout(timeoutId);
|
|
25
|
+
elementArray.forEach(el => el.classList.remove(className));
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=blink.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"blink.js","sourceRoot":"","sources":["../../src/utils/blink.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,MAAM,UAAU,KAAK,CAAC,QAAqC,EAAE,UAAqD,EAAE;IAClH,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,OAAO,CAAC;IAC/C,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,GAAG,CAAC;IAEzC,0DAA0D;IAC1D,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;IAErE,gCAAgC;IAChC,YAAY,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC;IAExD,wCAAwC;IACxC,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,EAAE;QAChC,YAAY,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;IAC7D,CAAC,EAAE,QAAQ,CAAC,CAAC;IAEb,iCAAiC;IACjC,OAAO,GAAG,EAAE;QACV,YAAY,CAAC,SAAS,CAAC,CAAC;QACxB,YAAY,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;IAC7D,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Singleton class that manages the connection to the server.
|
|
3
|
+
*/
|
|
4
|
+
export declare class Connection {
|
|
5
|
+
private static instance;
|
|
6
|
+
private socket;
|
|
7
|
+
private connection_listeners;
|
|
8
|
+
private constructor();
|
|
9
|
+
static get_instance(): Connection;
|
|
10
|
+
/**
|
|
11
|
+
* Connects to the server.
|
|
12
|
+
*
|
|
13
|
+
* @param token Token to use for authentication.
|
|
14
|
+
* @param timeout Timeout in milliseconds to wait before reconnecting.
|
|
15
|
+
*/
|
|
16
|
+
connect(token?: string | null, timeout?: number): void;
|
|
17
|
+
/**
|
|
18
|
+
* Adds a connection listener.
|
|
19
|
+
*
|
|
20
|
+
* @param listener Connection listener to add.
|
|
21
|
+
*/
|
|
22
|
+
add_connection_listener(listener: ConnectionListener): void;
|
|
23
|
+
/**
|
|
24
|
+
* Removes a connection listener.
|
|
25
|
+
*
|
|
26
|
+
* @param listener Connection listener to remove.
|
|
27
|
+
*/
|
|
28
|
+
remove_connection_listener(listener: ConnectionListener): void;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Interface that defines the methods that a connection listener must implement.
|
|
32
|
+
*/
|
|
33
|
+
export interface ConnectionListener {
|
|
34
|
+
/**
|
|
35
|
+
* Called when the connection to the server is established.
|
|
36
|
+
*
|
|
37
|
+
* @param info Information received from the server.
|
|
38
|
+
*/
|
|
39
|
+
connected(info: any): void;
|
|
40
|
+
/**
|
|
41
|
+
* Called when a message is received from the server.
|
|
42
|
+
*
|
|
43
|
+
* @param message Message received from the server.
|
|
44
|
+
*/
|
|
45
|
+
received_message(message: any): void;
|
|
46
|
+
/**
|
|
47
|
+
* Called when the connection to the server is closed.
|
|
48
|
+
*/
|
|
49
|
+
disconnected(): void;
|
|
50
|
+
/**
|
|
51
|
+
* Called when an error occurs in the connection to the server.
|
|
52
|
+
*
|
|
53
|
+
* @param error Error that occurred.
|
|
54
|
+
*/
|
|
55
|
+
connection_error(error: any): void;
|
|
56
|
+
}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { Settings } from "./settings";
|
|
2
|
+
/**
|
|
3
|
+
* Singleton class that manages the connection to the server.
|
|
4
|
+
*/
|
|
5
|
+
export class Connection {
|
|
6
|
+
constructor() {
|
|
7
|
+
this.socket = null;
|
|
8
|
+
this.connection_listeners = new Set();
|
|
9
|
+
}
|
|
10
|
+
static get_instance() {
|
|
11
|
+
if (!Connection.instance)
|
|
12
|
+
Connection.instance = new Connection();
|
|
13
|
+
return Connection.instance;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Connects to the server.
|
|
17
|
+
*
|
|
18
|
+
* @param token Token to use for authentication.
|
|
19
|
+
* @param timeout Timeout in milliseconds to wait before reconnecting.
|
|
20
|
+
*/
|
|
21
|
+
connect(token = null, timeout = 5000) {
|
|
22
|
+
if (this.socket)
|
|
23
|
+
this.socket.close();
|
|
24
|
+
console.debug('Connecting to server: ', Settings.get_instance().get_host());
|
|
25
|
+
this.socket = new WebSocket(Settings.get_instance().get_host() + '/' + Settings.get_instance().get_ws_path());
|
|
26
|
+
this.socket.onopen = () => {
|
|
27
|
+
console.debug('Connected to server');
|
|
28
|
+
if (token)
|
|
29
|
+
this.socket.send(JSON.stringify({ msg_type: 'login', token: token }));
|
|
30
|
+
else
|
|
31
|
+
for (const listener of this.connection_listeners) {
|
|
32
|
+
listener.connected({});
|
|
33
|
+
}
|
|
34
|
+
};
|
|
35
|
+
this.socket.onmessage = (event) => {
|
|
36
|
+
console.debug('Received message from server: ', event.data);
|
|
37
|
+
const message = JSON.parse(event.data);
|
|
38
|
+
if (message.msg_type === 'login')
|
|
39
|
+
for (const listener of this.connection_listeners) {
|
|
40
|
+
listener.connected(message.info);
|
|
41
|
+
}
|
|
42
|
+
else
|
|
43
|
+
for (const listener of this.connection_listeners) {
|
|
44
|
+
listener.received_message(message);
|
|
45
|
+
}
|
|
46
|
+
};
|
|
47
|
+
this.socket.onclose = () => {
|
|
48
|
+
console.debug('Disconnected from server');
|
|
49
|
+
for (const listener of this.connection_listeners) {
|
|
50
|
+
listener.disconnected();
|
|
51
|
+
}
|
|
52
|
+
};
|
|
53
|
+
this.socket.onerror = (error) => {
|
|
54
|
+
console.error('Connection error: ', error);
|
|
55
|
+
for (const listener of this.connection_listeners) {
|
|
56
|
+
listener.connection_error(error);
|
|
57
|
+
}
|
|
58
|
+
setTimeout(() => this.connect(token, timeout), timeout);
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Adds a connection listener.
|
|
63
|
+
*
|
|
64
|
+
* @param listener Connection listener to add.
|
|
65
|
+
*/
|
|
66
|
+
add_connection_listener(listener) { this.connection_listeners.add(listener); }
|
|
67
|
+
/**
|
|
68
|
+
* Removes a connection listener.
|
|
69
|
+
*
|
|
70
|
+
* @param listener Connection listener to remove.
|
|
71
|
+
*/
|
|
72
|
+
remove_connection_listener(listener) { this.connection_listeners.delete(listener); }
|
|
73
|
+
}
|
|
74
|
+
//# sourceMappingURL=connection.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"connection.js","sourceRoot":"","sources":["../../src/utils/connection.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Manages a group of `Selector` instances, ensuring that only one selector is active (selected) at a time.
|
|
3
|
+
*
|
|
4
|
+
* The `SelectorGroup` class allows you to add or remove selectors, and provides a method to set a specific selector as selected.
|
|
5
|
+
* When a selector is set as selected, all other selectors in the group are automatically unselected.
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* const group = new SelectorGroup();
|
|
9
|
+
* group.add_selector(selector1);
|
|
10
|
+
* group.add_selector(selector2);
|
|
11
|
+
* group.set_selected(selector1); // selector1 is selected, selector2 is unselected
|
|
12
|
+
*/
|
|
13
|
+
export declare class SelectorGroup {
|
|
14
|
+
private selectors;
|
|
15
|
+
constructor();
|
|
16
|
+
/**
|
|
17
|
+
* Sets the given selector as the selected one, unselecting all other selectors.
|
|
18
|
+
*
|
|
19
|
+
* Iterates through all selectors managed by this instance. For each selector that is not the one provided,
|
|
20
|
+
* it calls `unselect()`. Finally, it calls `select()` on the provided selector to mark it as selected.
|
|
21
|
+
*
|
|
22
|
+
* @param s - The {@link Selector} instance to be set as selected.
|
|
23
|
+
*/
|
|
24
|
+
set_selected(s: Selector): void;
|
|
25
|
+
/**
|
|
26
|
+
* Adds a selector to the current set of selectors.
|
|
27
|
+
*
|
|
28
|
+
* @param s - The selector to add.
|
|
29
|
+
*/
|
|
30
|
+
add_selector(s: Selector): void;
|
|
31
|
+
/**
|
|
32
|
+
* Removes the specified selector from the collection of selectors.
|
|
33
|
+
*
|
|
34
|
+
* @param s - The selector to be removed.
|
|
35
|
+
*/
|
|
36
|
+
remove_selector(s: Selector): void;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Represents an interface for selectable objects.
|
|
40
|
+
*
|
|
41
|
+
* Implementing classes should provide logic for selecting and unselecting themselves.
|
|
42
|
+
*
|
|
43
|
+
* @remarks
|
|
44
|
+
* This interface can be used to standardize selection behavior across different components or entities.
|
|
45
|
+
*
|
|
46
|
+
* @interface Selector
|
|
47
|
+
*/
|
|
48
|
+
export interface Selector {
|
|
49
|
+
/**
|
|
50
|
+
* Selects the object, marking it as active or highlighted.
|
|
51
|
+
* Implementing classes should define what "selecting" means for them.
|
|
52
|
+
*/
|
|
53
|
+
select(): void;
|
|
54
|
+
/**
|
|
55
|
+
* Unselects the object, marking it as inactive or unhighlighted.
|
|
56
|
+
* Implementing classes should define what "unselecting" means for them.
|
|
57
|
+
*/
|
|
58
|
+
unselect(): void;
|
|
59
|
+
}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Manages a group of `Selector` instances, ensuring that only one selector is active (selected) at a time.
|
|
3
|
+
*
|
|
4
|
+
* The `SelectorGroup` class allows you to add or remove selectors, and provides a method to set a specific selector as selected.
|
|
5
|
+
* When a selector is set as selected, all other selectors in the group are automatically unselected.
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* const group = new SelectorGroup();
|
|
9
|
+
* group.add_selector(selector1);
|
|
10
|
+
* group.add_selector(selector2);
|
|
11
|
+
* group.set_selected(selector1); // selector1 is selected, selector2 is unselected
|
|
12
|
+
*/
|
|
13
|
+
export class SelectorGroup {
|
|
14
|
+
constructor() {
|
|
15
|
+
this.selectors = new Set();
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Sets the given selector as the selected one, unselecting all other selectors.
|
|
19
|
+
*
|
|
20
|
+
* Iterates through all selectors managed by this instance. For each selector that is not the one provided,
|
|
21
|
+
* it calls `unselect()`. Finally, it calls `select()` on the provided selector to mark it as selected.
|
|
22
|
+
*
|
|
23
|
+
* @param s - The {@link Selector} instance to be set as selected.
|
|
24
|
+
*/
|
|
25
|
+
set_selected(s) {
|
|
26
|
+
for (const c_s of this.selectors)
|
|
27
|
+
if (c_s != s)
|
|
28
|
+
c_s.unselect();
|
|
29
|
+
s.select();
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Adds a selector to the current set of selectors.
|
|
33
|
+
*
|
|
34
|
+
* @param s - The selector to add.
|
|
35
|
+
*/
|
|
36
|
+
add_selector(s) { this.selectors.add(s); }
|
|
37
|
+
/**
|
|
38
|
+
* Removes the specified selector from the collection of selectors.
|
|
39
|
+
*
|
|
40
|
+
* @param s - The selector to be removed.
|
|
41
|
+
*/
|
|
42
|
+
remove_selector(s) { this.selectors.delete(s); }
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=selector.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"selector.js","sourceRoot":"","sources":["../../src/utils/selector.ts"],"names":[],"mappings":"AACA;;;;;;;;;;;GAWG;AACH,MAAM,OAAO,aAAa;IAIxB;QAFQ,cAAS,GAAG,IAAI,GAAG,EAAY,CAAC;IAExB,CAAC;IAEjB;;;;;;;OAOG;IACH,YAAY,CAAC,CAAW;QACtB,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,SAAS;YAC9B,IAAI,GAAG,IAAI,CAAC;gBACV,GAAG,CAAC,QAAQ,EAAE,CAAC;QACnB,CAAC,CAAC,MAAM,EAAE,CAAC;IACb,CAAC;IAED;;;;OAIG;IACH,YAAY,CAAC,CAAW,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACpD;;;;OAIG;IACH,eAAe,CAAC,CAAW,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAC3D"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export declare class Settings {
|
|
2
|
+
private protocol;
|
|
3
|
+
private hostname;
|
|
4
|
+
private port;
|
|
5
|
+
private ws_path;
|
|
6
|
+
private static instance;
|
|
7
|
+
private constructor();
|
|
8
|
+
static get_instance(): Settings;
|
|
9
|
+
get_protocol(): string;
|
|
10
|
+
get_hostname(): string;
|
|
11
|
+
get_port(): number;
|
|
12
|
+
get_ws_path(): string;
|
|
13
|
+
get_host(): string;
|
|
14
|
+
load_settings(settings: any): void;
|
|
15
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
export class Settings {
|
|
2
|
+
constructor() {
|
|
3
|
+
this.protocol = 'http';
|
|
4
|
+
this.hostname = 'localhost';
|
|
5
|
+
this.port = 80;
|
|
6
|
+
this.ws_path = '/ws';
|
|
7
|
+
}
|
|
8
|
+
static get_instance() {
|
|
9
|
+
if (!Settings.instance) {
|
|
10
|
+
Settings.instance = new Settings();
|
|
11
|
+
}
|
|
12
|
+
return Settings.instance;
|
|
13
|
+
}
|
|
14
|
+
get_protocol() { return this.protocol; }
|
|
15
|
+
get_hostname() { return this.hostname; }
|
|
16
|
+
get_port() { return this.port; }
|
|
17
|
+
get_ws_path() { return this.ws_path; }
|
|
18
|
+
get_host() { return this.protocol + '://' + this.hostname + ':' + this.port; }
|
|
19
|
+
load_settings(settings) {
|
|
20
|
+
this.protocol = settings.protocol || this.protocol;
|
|
21
|
+
this.hostname = settings.host || this.hostname;
|
|
22
|
+
this.port = settings.port || this.port;
|
|
23
|
+
this.ws_path = settings.ws_path || this.ws_path;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=settings.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"settings.js","sourceRoot":"","sources":["../../src/utils/settings.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,QAAQ;IAQnB;QANQ,aAAQ,GAAW,MAAM,CAAC;QAC1B,aAAQ,GAAW,WAAW,CAAC;QAC/B,SAAI,GAAW,EAAE,CAAC;QAClB,YAAO,GAAW,KAAK,CAAC;IAGR,CAAC;IAElB,MAAM,CAAC,YAAY;QACxB,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;YACvB,QAAQ,CAAC,QAAQ,GAAG,IAAI,QAAQ,EAAE,CAAC;QACrC,CAAC;QACD,OAAO,QAAQ,CAAC,QAAQ,CAAC;IAC3B,CAAC;IAEM,YAAY,KAAa,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;IAChD,YAAY,KAAa,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;IAChD,QAAQ,KAAa,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IACxC,WAAW,KAAa,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IAE9C,QAAQ,KAAa,OAAO,IAAI,CAAC,QAAQ,GAAG,KAAK,GAAG,IAAI,CAAC,QAAQ,GAAG,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAEtF,aAAa,CAAC,QAAa;QAChC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC;QACnD,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC;QAC/C,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC;QACvC,IAAI,CAAC,OAAO,GAAG,QAAQ,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC;IAClD,CAAC;CACF"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
export declare class User {
|
|
2
|
+
username: string;
|
|
3
|
+
constructor(username: string);
|
|
4
|
+
}
|
|
5
|
+
/**
|
|
6
|
+
* Singleton class that manages the current user.
|
|
7
|
+
*/
|
|
8
|
+
export declare class CurrentUser implements UserListener {
|
|
9
|
+
private static instance;
|
|
10
|
+
private user;
|
|
11
|
+
private user_listeners;
|
|
12
|
+
private constructor();
|
|
13
|
+
static get_instance(): CurrentUser;
|
|
14
|
+
/**
|
|
15
|
+
* Logs in a user.
|
|
16
|
+
*
|
|
17
|
+
* @param username Username.
|
|
18
|
+
* @param password Password.
|
|
19
|
+
* @param remember_input Whether to remember the input.
|
|
20
|
+
* @returns Whether the login was successful.
|
|
21
|
+
*/
|
|
22
|
+
login(username: string, password: string, remember_input?: boolean): Promise<boolean>;
|
|
23
|
+
/**
|
|
24
|
+
* Gets the current user.
|
|
25
|
+
*
|
|
26
|
+
* @returns Current user.
|
|
27
|
+
* @returns null if no user is connected.
|
|
28
|
+
*/
|
|
29
|
+
get_user(): User | null;
|
|
30
|
+
connected(user: User): void;
|
|
31
|
+
logged_out(): void;
|
|
32
|
+
/**
|
|
33
|
+
* Adds a user listener.
|
|
34
|
+
*
|
|
35
|
+
* @param listener Listener to add.
|
|
36
|
+
*/
|
|
37
|
+
add_user_listener(listener: UserListener): void;
|
|
38
|
+
/**
|
|
39
|
+
* Removes a user listener.
|
|
40
|
+
*
|
|
41
|
+
* @param listener Listener to remove.
|
|
42
|
+
*/
|
|
43
|
+
remove_user_listener(listener: UserListener): void;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Listener for user events.
|
|
47
|
+
*/
|
|
48
|
+
export interface UserListener {
|
|
49
|
+
/**
|
|
50
|
+
* Called when a user is connected.
|
|
51
|
+
*
|
|
52
|
+
* @param user User that is connected.
|
|
53
|
+
*/
|
|
54
|
+
connected(user: User): void;
|
|
55
|
+
/**
|
|
56
|
+
* Called when a user is logged out.
|
|
57
|
+
*/
|
|
58
|
+
logged_out(): void;
|
|
59
|
+
}
|