@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
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
+
});
|
|
9
|
+
};
|
|
10
|
+
import { Settings } from "./settings";
|
|
11
|
+
import { Connection } from './connection';
|
|
12
|
+
export class User {
|
|
13
|
+
constructor(username) {
|
|
14
|
+
this.username = username;
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Singleton class that manages the current user.
|
|
19
|
+
*/
|
|
20
|
+
export class CurrentUser {
|
|
21
|
+
constructor() {
|
|
22
|
+
this.user = null;
|
|
23
|
+
this.user_listeners = new Set();
|
|
24
|
+
}
|
|
25
|
+
static get_instance() {
|
|
26
|
+
if (!CurrentUser.instance)
|
|
27
|
+
CurrentUser.instance = new CurrentUser();
|
|
28
|
+
return CurrentUser.instance;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Logs in a user.
|
|
32
|
+
*
|
|
33
|
+
* @param username Username.
|
|
34
|
+
* @param password Password.
|
|
35
|
+
* @param remember_input Whether to remember the input.
|
|
36
|
+
* @returns Whether the login was successful.
|
|
37
|
+
*/
|
|
38
|
+
login(username_1, password_1) {
|
|
39
|
+
return __awaiter(this, arguments, void 0, function* (username, password, remember_input = false) {
|
|
40
|
+
const response = yield fetch(Settings.get_instance().get_host() + '/login', { method: 'POST', headers: { 'content-type': 'application/json' }, body: JSON.stringify({ username: username, password: password }) });
|
|
41
|
+
if (response.ok) { // Login successful
|
|
42
|
+
const data = yield response.json();
|
|
43
|
+
if (remember_input)
|
|
44
|
+
localStorage.setItem('token', data.token);
|
|
45
|
+
Connection.get_instance().connect(data.token);
|
|
46
|
+
return true;
|
|
47
|
+
}
|
|
48
|
+
else { // Login failed
|
|
49
|
+
return false;
|
|
50
|
+
}
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Gets the current user.
|
|
55
|
+
*
|
|
56
|
+
* @returns Current user.
|
|
57
|
+
* @returns null if no user is connected.
|
|
58
|
+
*/
|
|
59
|
+
get_user() { return this.user; }
|
|
60
|
+
connected(user) {
|
|
61
|
+
this.user = user;
|
|
62
|
+
for (const listener of this.user_listeners) {
|
|
63
|
+
listener.connected(user);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
logged_out() {
|
|
67
|
+
this.user = null;
|
|
68
|
+
localStorage.removeItem('token');
|
|
69
|
+
for (const listener of this.user_listeners) {
|
|
70
|
+
listener.logged_out();
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Adds a user listener.
|
|
75
|
+
*
|
|
76
|
+
* @param listener Listener to add.
|
|
77
|
+
*/
|
|
78
|
+
add_user_listener(listener) {
|
|
79
|
+
this.user_listeners.add(listener);
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Removes a user listener.
|
|
83
|
+
*
|
|
84
|
+
* @param listener Listener to remove.
|
|
85
|
+
*/
|
|
86
|
+
remove_user_listener(listener) {
|
|
87
|
+
this.user_listeners.delete(listener);
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
//# sourceMappingURL=user.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"user.js","sourceRoot":"","sources":["../../src/utils/user.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,MAAM,OAAO,IAAI;IAIf,YAAY,QAAgB;QAC1B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,WAAW;IAMtB;QAHQ,SAAI,GAAgB,IAAI,CAAC;QACzB,mBAAc,GAAsB,IAAI,GAAG,EAAE,CAAC;IAE9B,CAAC;IAEzB,MAAM,CAAC,YAAY;QACjB,IAAI,CAAC,WAAW,CAAC,QAAQ;YACvB,WAAW,CAAC,QAAQ,GAAG,IAAI,WAAW,EAAE,CAAC;QAC3C,OAAO,WAAW,CAAC,QAAQ,CAAC;IAC9B,CAAC;IAED;;;;;;;OAOG;IACG,KAAK;6DAAC,QAAgB,EAAE,QAAgB,EAAE,iBAA0B,KAAK;YAC7E,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAC,QAAQ,EAAE,GAAG,QAAQ,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC;YACnN,IAAI,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC,mBAAmB;gBACpC,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;gBACnC,IAAI,cAAc;oBAChB,YAAY,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;gBAC5C,UAAU,CAAC,YAAY,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBAC9C,OAAO,IAAI,CAAC;YACd,CAAC;iBAAM,CAAC,CAAC,eAAe;gBACtB,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC;KAAA;IAED;;;;;OAKG;IACH,QAAQ,KAAkB,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAE7C,SAAS,CAAC,IAAU;QAClB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAAC,CAAC;IAC3E,CAAC;IAED,UAAU;QACR,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,YAAY,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QACjC,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YAAC,QAAQ,CAAC,UAAU,EAAE,CAAC;QAAC,CAAC;IACxE,CAAC;IAED;;;;OAIG;IACH,iBAAiB,CAAC,QAAsB;QACtC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACpC,CAAC;IAED;;;;OAIG;IACH,oBAAoB,CAAC,QAAsB;QACzC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACvC,CAAC;CACF"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { ButtonComponent, Component } from '../app';
|
|
2
|
+
/**
|
|
3
|
+
* Button to log in.
|
|
4
|
+
*/
|
|
5
|
+
export declare class LogInButton extends ButtonComponent<void> {
|
|
6
|
+
constructor();
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Button to log out.
|
|
10
|
+
*/
|
|
11
|
+
export declare class LogOutButton extends ButtonComponent<void> {
|
|
12
|
+
constructor();
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Modal to log in.
|
|
16
|
+
*/
|
|
17
|
+
export declare class LogInModal extends Component<void, HTMLDivElement> {
|
|
18
|
+
private username_input;
|
|
19
|
+
private password_input;
|
|
20
|
+
private remember_input;
|
|
21
|
+
constructor();
|
|
22
|
+
}
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
import { ButtonComponent, Component } from '../app';
|
|
2
|
+
import { CurrentUser } from './user';
|
|
3
|
+
/**
|
|
4
|
+
* Button to log in.
|
|
5
|
+
*/
|
|
6
|
+
export class LogInButton extends ButtonComponent {
|
|
7
|
+
constructor() {
|
|
8
|
+
super();
|
|
9
|
+
this.element.type = 'button';
|
|
10
|
+
this.element.classList.add('btn', 'btn-primary');
|
|
11
|
+
this.element.setAttribute('data-bs-toggle', 'modal');
|
|
12
|
+
this.element.setAttribute('data-bs-target', '#loginModal');
|
|
13
|
+
this.element.textContent = 'Log In';
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Button to log out.
|
|
18
|
+
*/
|
|
19
|
+
export class LogOutButton extends ButtonComponent {
|
|
20
|
+
constructor() {
|
|
21
|
+
super();
|
|
22
|
+
this.element.type = 'button';
|
|
23
|
+
this.element.classList.add('btn', 'btn-primary');
|
|
24
|
+
this.element.textContent = 'Log Out';
|
|
25
|
+
this.element.addEventListener('click', () => CurrentUser.get_instance().logged_out());
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Modal to log in.
|
|
30
|
+
*/
|
|
31
|
+
export class LogInModal extends Component {
|
|
32
|
+
constructor() {
|
|
33
|
+
super(undefined, document.createElement('div'));
|
|
34
|
+
this.username_input = '';
|
|
35
|
+
this.password_input = '';
|
|
36
|
+
this.remember_input = false;
|
|
37
|
+
this.element.classList.add('modal', 'fade');
|
|
38
|
+
this.element.id = 'loginModal';
|
|
39
|
+
this.element.setAttribute('tabindex', '-1');
|
|
40
|
+
this.element.setAttribute('aria-labelledby', 'loginModalLabel');
|
|
41
|
+
this.element.setAttribute('aria-hidden', 'true');
|
|
42
|
+
const dialog = document.createElement('div');
|
|
43
|
+
dialog.classList.add('modal-dialog');
|
|
44
|
+
const content = document.createElement('div');
|
|
45
|
+
content.classList.add('modal-content');
|
|
46
|
+
const header = document.createElement('div');
|
|
47
|
+
header.classList.add('modal-header');
|
|
48
|
+
const title = document.createElement('h5');
|
|
49
|
+
title.classList.add('modal-title');
|
|
50
|
+
title.id = 'loginModalLabel';
|
|
51
|
+
title.textContent = 'Log In';
|
|
52
|
+
header.appendChild(title);
|
|
53
|
+
const close_button = document.createElement('button');
|
|
54
|
+
close_button.type = 'button';
|
|
55
|
+
close_button.classList.add('btn-close');
|
|
56
|
+
close_button.setAttribute('data-bs-dismiss', 'modal');
|
|
57
|
+
close_button.setAttribute('aria-label', 'Close');
|
|
58
|
+
header.appendChild(close_button);
|
|
59
|
+
content.appendChild(header);
|
|
60
|
+
const body = document.createElement('div');
|
|
61
|
+
body.classList.add('modal-body');
|
|
62
|
+
const form = document.createElement('form');
|
|
63
|
+
form.addEventListener('submit', (event) => {
|
|
64
|
+
event.preventDefault();
|
|
65
|
+
CurrentUser.get_instance().login(this.username_input, this.password_input);
|
|
66
|
+
});
|
|
67
|
+
const username_group = document.createElement('div');
|
|
68
|
+
username_group.classList.add('form-floating');
|
|
69
|
+
const username_input = document.createElement('input');
|
|
70
|
+
username_input.type = 'email';
|
|
71
|
+
username_input.classList.add('form-control');
|
|
72
|
+
username_input.id = 'username';
|
|
73
|
+
username_input.placeholder = 'Username';
|
|
74
|
+
username_input.required = true;
|
|
75
|
+
username_input.addEventListener('input', () => this.username_input = username_input.value);
|
|
76
|
+
username_group.appendChild(username_input);
|
|
77
|
+
const username_label = document.createElement('label');
|
|
78
|
+
username_label.htmlFor = 'username';
|
|
79
|
+
username_label.textContent = 'Username';
|
|
80
|
+
username_group.appendChild(username_label);
|
|
81
|
+
form.appendChild(username_group);
|
|
82
|
+
const password_group = document.createElement('div');
|
|
83
|
+
password_group.classList.add('form-floating');
|
|
84
|
+
const password_input = document.createElement('input');
|
|
85
|
+
password_input.type = 'password';
|
|
86
|
+
password_input.classList.add('form-control');
|
|
87
|
+
password_input.id = 'password';
|
|
88
|
+
password_input.placeholder = 'Password';
|
|
89
|
+
password_input.required = true;
|
|
90
|
+
password_input.addEventListener('input', () => this.password_input = password_input.value);
|
|
91
|
+
password_group.appendChild(password_input);
|
|
92
|
+
const password_label = document.createElement('label');
|
|
93
|
+
password_label.htmlFor = 'password';
|
|
94
|
+
password_label.textContent = 'Password';
|
|
95
|
+
password_group.appendChild(password_label);
|
|
96
|
+
form.appendChild(password_group);
|
|
97
|
+
const remember_group = document.createElement('div');
|
|
98
|
+
remember_group.classList.add('form-check');
|
|
99
|
+
const remember_input = document.createElement('input');
|
|
100
|
+
remember_input.type = 'checkbox';
|
|
101
|
+
remember_input.classList.add('form-check-input');
|
|
102
|
+
remember_input.id = 'remember';
|
|
103
|
+
remember_input.addEventListener('input', () => this.remember_input = remember_input.checked);
|
|
104
|
+
remember_group.appendChild(remember_input);
|
|
105
|
+
const remember_label = document.createElement('label');
|
|
106
|
+
remember_label.classList.add('form-check-label');
|
|
107
|
+
remember_label.htmlFor = 'remember';
|
|
108
|
+
remember_label.textContent = 'Remember me';
|
|
109
|
+
remember_group.appendChild(remember_label);
|
|
110
|
+
form.appendChild(remember_group);
|
|
111
|
+
body.appendChild(form);
|
|
112
|
+
content.appendChild(body);
|
|
113
|
+
const footer = document.createElement('div');
|
|
114
|
+
footer.classList.add('modal-footer');
|
|
115
|
+
const close = document.createElement('button');
|
|
116
|
+
close.type = 'button';
|
|
117
|
+
close.classList.add('btn', 'btn-secondary');
|
|
118
|
+
close.setAttribute('data-bs-dismiss', 'modal');
|
|
119
|
+
close.textContent = 'Close';
|
|
120
|
+
footer.appendChild(close);
|
|
121
|
+
const submit = document.createElement('button');
|
|
122
|
+
submit.type = 'submit';
|
|
123
|
+
submit.classList.add('btn', 'btn-primary');
|
|
124
|
+
submit.textContent = 'Log In';
|
|
125
|
+
submit.addEventListener('click', () => CurrentUser.get_instance().login(this.username_input, this.password_input, this.remember_input));
|
|
126
|
+
footer.appendChild(submit);
|
|
127
|
+
content.appendChild(footer);
|
|
128
|
+
dialog.appendChild(content);
|
|
129
|
+
this.element.appendChild(dialog);
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
//# sourceMappingURL=user_components.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"user_components.js","sourceRoot":"","sources":["../../src/utils/user_components.ts"],"names":[],"mappings":"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"}
|
package/package.json
ADDED
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@ratiosolver/flick",
|
|
3
|
+
"version": "0.0.1",
|
|
4
|
+
"type": "module",
|
|
5
|
+
"description": "A tiny and focused UI framework designed for clarity and speed",
|
|
6
|
+
"main": "dist/index.js",
|
|
7
|
+
"types": "dist/index.d.ts",
|
|
8
|
+
"repository": {
|
|
9
|
+
"type": "git",
|
|
10
|
+
"url": "git+https://github.com/ratioSolver/Flick.git"
|
|
11
|
+
},
|
|
12
|
+
"keywords": [
|
|
13
|
+
"ui",
|
|
14
|
+
"framework",
|
|
15
|
+
"component",
|
|
16
|
+
"reactive",
|
|
17
|
+
"lightweight"
|
|
18
|
+
],
|
|
19
|
+
"author": "ratioSolver",
|
|
20
|
+
"license": "Apache-2.0",
|
|
21
|
+
"bugs": {
|
|
22
|
+
"url": "https://github.com/ratioSolver/Flick/issues"
|
|
23
|
+
},
|
|
24
|
+
"homepage": "https://github.com/ratioSolver/Flick#readme",
|
|
25
|
+
"files": [
|
|
26
|
+
"/dist"
|
|
27
|
+
],
|
|
28
|
+
"scripts": {
|
|
29
|
+
"build": "tsc"
|
|
30
|
+
},
|
|
31
|
+
"devDependencies": {
|
|
32
|
+
"typescript": "^5.7.3"
|
|
33
|
+
},
|
|
34
|
+
"dependencies": {
|
|
35
|
+
"bootstrap": "^5.3.3"
|
|
36
|
+
},
|
|
37
|
+
"publishConfig": {
|
|
38
|
+
"access": "public"
|
|
39
|
+
}
|
|
40
|
+
}
|