underpost 3.2.4 → 3.2.8
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/.github/workflows/release.cd.yml +1 -2
- package/CHANGELOG.md +268 -1
- package/CLI-HELP.md +26 -13
- package/Dockerfile +0 -4
- package/README.md +3 -3
- package/bin/build.js +13 -3
- package/bin/deploy.js +570 -1
- package/bin/file.js +5 -0
- package/conf.js +11 -2
- package/jsconfig.json +1 -1
- package/manifests/cronjobs/dd-cron/dd-cron-backup.yaml +2 -3
- package/manifests/cronjobs/dd-cron/dd-cron-dns.yaml +2 -3
- package/manifests/deployment/dd-default-development/deployment.yaml +2 -6
- package/manifests/deployment/dd-test-development/deployment.yaml +136 -66
- package/manifests/deployment/dd-test-development/proxy.yaml +41 -5
- package/package.json +20 -11
- package/src/api/core/core.controller.js +10 -10
- package/src/api/core/core.service.js +10 -10
- package/src/api/default/default.controller.js +10 -10
- package/src/api/default/default.service.js +10 -10
- package/src/api/document/document.controller.js +12 -12
- package/src/api/document/document.model.js +10 -16
- package/src/api/file/file.controller.js +8 -8
- package/src/api/file/file.model.js +10 -10
- package/src/api/file/file.service.js +36 -36
- package/src/api/test/test.controller.js +8 -8
- package/src/api/test/test.service.js +8 -8
- package/src/api/user/guest.service.js +99 -0
- package/src/api/user/user.controller.js +6 -6
- package/src/api/user/user.model.js +8 -13
- package/src/api/user/user.service.js +3 -20
- package/src/cli/deploy.js +33 -30
- package/src/cli/fs.js +62 -5
- package/src/cli/image.js +43 -1
- package/src/cli/index.js +5 -1
- package/src/cli/release.js +58 -2
- package/src/cli/repository.js +35 -3
- package/src/cli/run.js +304 -38
- package/src/cli/ssh.js +1 -1
- package/src/cli/static.js +43 -115
- package/src/client/Default.index.js +21 -33
- package/src/client/components/core/404.js +4 -4
- package/src/client/components/core/500.js +4 -4
- package/src/client/components/core/Account.js +73 -60
- package/src/client/components/core/AgGrid.js +23 -33
- package/src/client/components/core/Alert.js +12 -13
- package/src/client/components/core/AppStore.js +1 -1
- package/src/client/components/core/Auth.js +20 -32
- package/src/client/components/core/Badge.js +7 -13
- package/src/client/components/core/BtnIcon.js +15 -17
- package/src/client/components/core/CalendarCore.js +42 -63
- package/src/client/components/core/Chat.js +13 -15
- package/src/client/components/core/ClientEvents.js +87 -0
- package/src/client/components/core/ColorPaletteElement.js +309 -0
- package/src/client/components/core/Content.js +17 -14
- package/src/client/components/core/Css.js +15 -71
- package/src/client/components/core/CssCore.js +12 -16
- package/src/client/components/core/D3Chart.js +4 -4
- package/src/client/components/core/Docs.js +60 -59
- package/src/client/components/core/DropDown.js +69 -91
- package/src/client/components/core/EventBus.js +92 -0
- package/src/client/components/core/EventsUI.js +14 -17
- package/src/client/components/core/FileExplorer.js +102 -234
- package/src/client/components/core/FullScreen.js +47 -75
- package/src/client/components/core/Input.js +24 -69
- package/src/client/components/core/Keyboard.js +25 -18
- package/src/client/components/core/KeyboardAvoidance.js +145 -0
- package/src/client/components/core/LoadingAnimation.js +25 -31
- package/src/client/components/core/LogIn.js +41 -41
- package/src/client/components/core/LogOut.js +23 -14
- package/src/client/components/core/Modal.js +397 -176
- package/src/client/components/core/NotificationManager.js +14 -18
- package/src/client/components/core/Panel.js +54 -50
- package/src/client/components/core/PanelForm.js +25 -125
- package/src/client/components/core/Polyhedron.js +110 -214
- package/src/client/components/core/PublicProfile.js +39 -32
- package/src/client/components/core/Recover.js +52 -48
- package/src/client/components/core/Responsive.js +88 -32
- package/src/client/components/core/RichText.js +9 -18
- package/src/client/components/core/Router.js +24 -3
- package/src/client/components/core/SearchBox.js +37 -37
- package/src/client/components/core/SignUp.js +39 -30
- package/src/client/components/core/SocketIo.js +31 -2
- package/src/client/components/core/SocketIoHandler.js +6 -6
- package/src/client/components/core/ToggleSwitch.js +8 -20
- package/src/client/components/core/ToolTip.js +5 -17
- package/src/client/components/core/Translate.js +56 -59
- package/src/client/components/core/Validator.js +26 -16
- package/src/client/components/core/Wallet.js +15 -26
- package/src/client/components/core/Worker.js +140 -25
- package/src/client/components/core/windowGetDimensions.js +7 -7
- package/src/client/components/default/{MenuDefault.js → AppShellDefault.js} +87 -87
- package/src/client/components/default/CssDefault.js +12 -12
- package/src/client/components/default/LogInDefault.js +6 -4
- package/src/client/components/default/LogOutDefault.js +6 -4
- package/src/client/components/default/RouterDefault.js +47 -0
- package/src/client/components/default/SettingsDefault.js +4 -4
- package/src/client/components/default/SignUpDefault.js +6 -4
- package/src/client/components/default/TranslateDefault.js +3 -3
- package/src/client/services/core/core.service.js +17 -49
- package/src/client/services/default/default.management.js +139 -242
- package/src/client/services/default/default.service.js +10 -16
- package/src/client/services/document/document.service.js +14 -19
- package/src/client/services/file/file.service.js +8 -13
- package/src/client/services/test/test.service.js +8 -13
- package/src/client/services/user/guest.service.js +79 -0
- package/src/client/services/user/user.management.js +5 -5
- package/src/client/services/user/user.service.js +14 -20
- package/src/client/ssr/body/404.js +3 -3
- package/src/client/ssr/body/500.js +3 -3
- package/src/client/ssr/body/CacheControl.js +5 -2
- package/src/client/ssr/body/DefaultSplashScreen.js +19 -12
- package/src/client/ssr/mailer/DefaultRecoverEmail.js +19 -20
- package/src/client/ssr/mailer/DefaultVerifyEmail.js +15 -16
- package/src/client/ssr/offline/Maintenance.js +12 -11
- package/src/client/ssr/offline/NoNetworkConnection.js +3 -3
- package/src/client/ssr/pages/Test.js +2 -2
- package/src/client/sw/core.sw.js +212 -0
- package/src/index.js +1 -1
- package/src/runtime/express/Dockerfile +4 -4
- package/src/runtime/lampp/Dockerfile +8 -7
- package/src/runtime/wp/Dockerfile +11 -17
- package/src/server/backup.js +1 -2
- package/src/server/client-build-docs.js +45 -46
- package/src/server/client-build.js +334 -60
- package/src/server/client-formatted.js +47 -16
- package/src/server/conf.js +29 -13
- package/src/server/cron.js +6 -8
- package/src/server/dns.js +2 -1
- package/src/server/ipfs-client.js +232 -91
- package/src/server/process.js +13 -27
- package/src/server/start.js +6 -3
- package/src/server/valkey.js +134 -235
- package/tsconfig.docs.json +15 -0
- package/typedoc.json +20 -0
- package/jsdoc.json +0 -52
- package/src/client/components/core/ColorPalette.js +0 -5267
- package/src/client/components/core/JoyStick.js +0 -80
- package/src/client/components/default/RoutesDefault.js +0 -49
- package/src/client/sw/default.sw.js +0 -127
- package/src/client/sw/template.sw.js +0 -84
|
@@ -12,7 +12,7 @@ import { htmls, s } from '../core/VanillaJs.js';
|
|
|
12
12
|
import { extractUsernameFromPath, getProxyPath, getQueryParams } from '../core/Router.js';
|
|
13
13
|
import { AppStoreDefault } from './AppStoreDefault.js';
|
|
14
14
|
import Sortable from 'sortablejs';
|
|
15
|
-
import { RouterDefault, BannerAppTemplate } from './
|
|
15
|
+
import { RouterDefault, BannerAppTemplate } from './RouterDefault.js';
|
|
16
16
|
import { SettingsDefault } from './SettingsDefault.js';
|
|
17
17
|
import { Badge } from '../core/Badge.js';
|
|
18
18
|
import { Recover } from '../core/Recover.js';
|
|
@@ -23,178 +23,178 @@ import { PanelForm } from '../core/PanelForm.js';
|
|
|
23
23
|
import { Chat } from '../core/Chat.js';
|
|
24
24
|
import { PublicProfile } from '../core/PublicProfile.js';
|
|
25
25
|
|
|
26
|
-
|
|
27
|
-
Data
|
|
28
|
-
|
|
29
|
-
const id = getId(
|
|
30
|
-
|
|
31
|
-
const RouterInstance = RouterDefault();
|
|
26
|
+
class AppShellDefault {
|
|
27
|
+
static Data = {};
|
|
28
|
+
static async instance(options = { htmlMainBody: () => html`` }) {
|
|
29
|
+
const id = getId(AppShellDefault.Data, 'menu-');
|
|
30
|
+
AppShellDefault.Data[id] = {};
|
|
31
|
+
const RouterInstance = RouterDefault.instance();
|
|
32
32
|
|
|
33
33
|
const { barConfig } = await Themes[Css.currentTheme]();
|
|
34
34
|
|
|
35
35
|
const badgeNotificationMenuStyle = { top: '-33px', left: '24px' };
|
|
36
36
|
const barMode = undefined; // 'top-bottom-bar';
|
|
37
|
-
await Modal.
|
|
37
|
+
await Modal.instance({
|
|
38
38
|
id: 'modal-menu',
|
|
39
39
|
html: html`
|
|
40
40
|
<div class="style-lading-render"></div>
|
|
41
41
|
<div class="fl menu-btn-container">
|
|
42
|
-
${await BtnIcon.
|
|
42
|
+
${await BtnIcon.instance({
|
|
43
43
|
class: 'in wfa main-btn-menu main-btn-home main-btn-menu-active',
|
|
44
44
|
useMenuBtn: true,
|
|
45
45
|
label: renderMenuLabel({
|
|
46
46
|
icon: html`<i class="fas fa-home"></i>`,
|
|
47
|
-
text: html`<span class="menu-label-text">${Translate.
|
|
47
|
+
text: html`<span class="menu-label-text">${Translate.instance('home')}</span>`,
|
|
48
48
|
}),
|
|
49
49
|
// style: 'display: none',
|
|
50
50
|
attrs: `data-id="home"`,
|
|
51
51
|
tabHref: `${getProxyPath()}`,
|
|
52
52
|
handleContainerClass: 'handle-btn-container',
|
|
53
|
-
tooltipHtml: await Badge.
|
|
53
|
+
tooltipHtml: await Badge.instance(buildBadgeToolTipMenuOption('home')),
|
|
54
54
|
})}
|
|
55
|
-
${await BtnIcon.
|
|
55
|
+
${await BtnIcon.instance({
|
|
56
56
|
class: 'in wfa main-btn-menu main-btn-log-in',
|
|
57
57
|
useMenuBtn: true,
|
|
58
58
|
label: renderMenuLabel({
|
|
59
59
|
icon: html`<i class="fas fa-sign-in-alt"></i>`,
|
|
60
|
-
text: html`<span class="menu-label-text">${Translate.
|
|
60
|
+
text: html`<span class="menu-label-text">${Translate.instance('log-in')}</span>`,
|
|
61
61
|
}),
|
|
62
62
|
attrs: `data-id="log-in"`,
|
|
63
63
|
tabHref: `${getProxyPath()}log-in`,
|
|
64
64
|
handleContainerClass: 'handle-btn-container',
|
|
65
|
-
tooltipHtml: await Badge.
|
|
65
|
+
tooltipHtml: await Badge.instance(buildBadgeToolTipMenuOption('log-in')),
|
|
66
66
|
})}
|
|
67
|
-
${await BtnIcon.
|
|
67
|
+
${await BtnIcon.instance({
|
|
68
68
|
class: 'in wfa main-btn-menu main-btn-sign-up',
|
|
69
69
|
useMenuBtn: true,
|
|
70
70
|
label: renderMenuLabel({
|
|
71
71
|
icon: html`<i class="fas fa-user-plus"></i>`,
|
|
72
|
-
text: html`<span class="menu-label-text">${Translate.
|
|
72
|
+
text: html`<span class="menu-label-text">${Translate.instance('sign-up')}</span>`,
|
|
73
73
|
}),
|
|
74
74
|
attrs: `data-id="sign-up"`,
|
|
75
75
|
tabHref: `${getProxyPath()}sign-up`,
|
|
76
76
|
handleContainerClass: 'handle-btn-container',
|
|
77
|
-
tooltipHtml: await Badge.
|
|
77
|
+
tooltipHtml: await Badge.instance(buildBadgeToolTipMenuOption('sign-up')),
|
|
78
78
|
})}
|
|
79
|
-
${await BtnIcon.
|
|
79
|
+
${await BtnIcon.instance({
|
|
80
80
|
class: 'in wfa main-btn-menu main-btn-log-out',
|
|
81
81
|
useMenuBtn: true,
|
|
82
82
|
label: renderMenuLabel({
|
|
83
83
|
icon: html`<i class="fas fa-sign-out-alt"></i>`,
|
|
84
|
-
text: html`<span class="menu-label-text">${Translate.
|
|
84
|
+
text: html`<span class="menu-label-text">${Translate.instance('log-out')}</span>`,
|
|
85
85
|
}),
|
|
86
86
|
attrs: `data-id="log-out"`,
|
|
87
87
|
style: 'display: none',
|
|
88
88
|
tabHref: `${getProxyPath()}log-out`,
|
|
89
89
|
handleContainerClass: 'handle-btn-container',
|
|
90
|
-
tooltipHtml: await Badge.
|
|
90
|
+
tooltipHtml: await Badge.instance(buildBadgeToolTipMenuOption('log-out')),
|
|
91
91
|
})}
|
|
92
|
-
${await BtnIcon.
|
|
92
|
+
${await BtnIcon.instance({
|
|
93
93
|
class: 'in wfa main-btn-menu main-btn-account',
|
|
94
94
|
useMenuBtn: true,
|
|
95
95
|
label: renderMenuLabel({
|
|
96
96
|
icon: html`<i class="fas fa-user-circle"></i>`,
|
|
97
|
-
text: html`<span class="menu-label-text">${Translate.
|
|
97
|
+
text: html`<span class="menu-label-text">${Translate.instance('account')}</span>`,
|
|
98
98
|
}),
|
|
99
99
|
style: 'display: none',
|
|
100
100
|
attrs: `data-id="account"`,
|
|
101
101
|
tabHref: `${getProxyPath()}account`,
|
|
102
102
|
handleContainerClass: 'handle-btn-container',
|
|
103
|
-
tooltipHtml: await Badge.
|
|
103
|
+
tooltipHtml: await Badge.instance(buildBadgeToolTipMenuOption('account')),
|
|
104
104
|
})}
|
|
105
|
-
${await BtnIcon.
|
|
105
|
+
${await BtnIcon.instance({
|
|
106
106
|
class: 'in wfa main-btn-menu main-btn-public-profile',
|
|
107
107
|
useMenuBtn: true,
|
|
108
108
|
label: renderMenuLabel({
|
|
109
109
|
icon: html`<i class="fas fa-user-tag"></i>`,
|
|
110
|
-
text: html`<span class="menu-label-text">${Translate.
|
|
110
|
+
text: html`<span class="menu-label-text">${Translate.instance('public-profile')}</span>`,
|
|
111
111
|
}),
|
|
112
112
|
style: 'display: none',
|
|
113
113
|
attrs: `data-id="public-profile"`,
|
|
114
114
|
tabHref: `${getProxyPath()}u`,
|
|
115
115
|
handleContainerClass: 'handle-btn-container',
|
|
116
|
-
tooltipHtml: await Badge.
|
|
116
|
+
tooltipHtml: await Badge.instance(buildBadgeToolTipMenuOption('public-profile')),
|
|
117
117
|
})}
|
|
118
|
-
${await BtnIcon.
|
|
118
|
+
${await BtnIcon.instance({
|
|
119
119
|
class: 'in wfa main-btn-menu main-btn-settings',
|
|
120
120
|
useMenuBtn: true,
|
|
121
121
|
label: renderMenuLabel({
|
|
122
122
|
icon: html`<i class="fas fa-sliders-h"></i>`,
|
|
123
|
-
text: html`<span class="menu-label-text">${Translate.
|
|
123
|
+
text: html`<span class="menu-label-text">${Translate.instance('settings')}</span>`,
|
|
124
124
|
}),
|
|
125
125
|
attrs: `data-id="settings"`,
|
|
126
126
|
tabHref: `${getProxyPath()}settings`,
|
|
127
127
|
handleContainerClass: 'handle-btn-container',
|
|
128
|
-
tooltipHtml: await Badge.
|
|
128
|
+
tooltipHtml: await Badge.instance(buildBadgeToolTipMenuOption('settings')),
|
|
129
129
|
})}
|
|
130
|
-
${await BtnIcon.
|
|
130
|
+
${await BtnIcon.instance({
|
|
131
131
|
class: 'in wfa main-btn-menu main-btn-recover hide',
|
|
132
132
|
useMenuBtn: true,
|
|
133
133
|
label: renderMenuLabel({
|
|
134
134
|
icon: html`<i class="fa-solid fa-arrow-rotate-left"></i>`,
|
|
135
|
-
text: html`<span class="menu-label-text">${Translate.
|
|
135
|
+
text: html`<span class="menu-label-text">${Translate.instance('recover')}</span>`,
|
|
136
136
|
}),
|
|
137
137
|
attrs: `data-id="recover"`,
|
|
138
138
|
tabHref: `${getProxyPath()}recover`,
|
|
139
139
|
handleContainerClass: 'handle-btn-container',
|
|
140
|
-
tooltipHtml: await Badge.
|
|
140
|
+
tooltipHtml: await Badge.instance(buildBadgeToolTipMenuOption('recover')),
|
|
141
141
|
})}
|
|
142
|
-
${await BtnIcon.
|
|
142
|
+
${await BtnIcon.instance({
|
|
143
143
|
class: 'in wfa main-btn-menu main-btn-default-management',
|
|
144
144
|
useMenuBtn: true,
|
|
145
145
|
label: renderMenuLabel({
|
|
146
146
|
icon: html`<i class="fa-solid fa-rectangle-list"></i>`,
|
|
147
|
-
text: html`<span class="menu-label-text">${Translate.
|
|
147
|
+
text: html`<span class="menu-label-text">${Translate.instance('default-management')}</span>`,
|
|
148
148
|
}),
|
|
149
149
|
attrs: `data-id="default-management"`,
|
|
150
150
|
tabHref: `${getProxyPath()}default-management`,
|
|
151
151
|
handleContainerClass: 'handle-btn-container',
|
|
152
|
-
tooltipHtml: await Badge.
|
|
152
|
+
tooltipHtml: await Badge.instance(buildBadgeToolTipMenuOption('default-management')),
|
|
153
153
|
})}
|
|
154
|
-
${await BtnIcon.
|
|
154
|
+
${await BtnIcon.instance({
|
|
155
155
|
class: 'in wfa main-btn-menu main-btn-404 hide',
|
|
156
156
|
useMenuBtn: true,
|
|
157
157
|
label: renderMenuLabel({
|
|
158
158
|
icon: html`<i class="fa-solid fa-triangle-exclamation"></i>`,
|
|
159
|
-
text: html`<span class="menu-label-text">${Translate.
|
|
159
|
+
text: html`<span class="menu-label-text">${Translate.instance('404')}</span>`,
|
|
160
160
|
}),
|
|
161
161
|
attrs: `data-id="404"`,
|
|
162
162
|
tabHref: `${getProxyPath()}404`,
|
|
163
163
|
handleContainerClass: 'handle-btn-container',
|
|
164
|
-
tooltipHtml: await Badge.
|
|
164
|
+
tooltipHtml: await Badge.instance(buildBadgeToolTipMenuOption('404')),
|
|
165
165
|
})}
|
|
166
|
-
${await BtnIcon.
|
|
166
|
+
${await BtnIcon.instance({
|
|
167
167
|
class: 'in wfa main-btn-menu main-btn-500 hide',
|
|
168
168
|
useMenuBtn: true,
|
|
169
169
|
label: renderMenuLabel({
|
|
170
170
|
icon: html`<i class="fa-solid fa-circle-exclamation"></i>`,
|
|
171
|
-
text: html`<span class="menu-label-text">${Translate.
|
|
171
|
+
text: html`<span class="menu-label-text">${Translate.instance('500')}</span>`,
|
|
172
172
|
}),
|
|
173
173
|
attrs: `data-id="500"`,
|
|
174
174
|
tabHref: `${getProxyPath()}500`,
|
|
175
175
|
handleContainerClass: 'handle-btn-container',
|
|
176
|
-
tooltipHtml: await Badge.
|
|
176
|
+
tooltipHtml: await Badge.instance(buildBadgeToolTipMenuOption('500')),
|
|
177
177
|
})}
|
|
178
|
-
${await BtnIcon.
|
|
178
|
+
${await BtnIcon.instance({
|
|
179
179
|
class: 'in wfa main-btn-menu main-btn-blog',
|
|
180
180
|
useMenuBtn: true,
|
|
181
181
|
label: renderMenuLabel({
|
|
182
182
|
icon: html`<i class="fa-solid fa-file-invoice"></i>`,
|
|
183
|
-
text: html`<span class="menu-label-text">${Translate.
|
|
183
|
+
text: html`<span class="menu-label-text">${Translate.instance('blog')}</span>`,
|
|
184
184
|
}),
|
|
185
185
|
attrs: `data-id="blog"`,
|
|
186
186
|
tabHref: `${getProxyPath()}blog`,
|
|
187
187
|
handleContainerClass: 'handle-btn-container',
|
|
188
|
-
tooltipHtml: await Badge.
|
|
188
|
+
tooltipHtml: await Badge.instance(buildBadgeToolTipMenuOption('blog')),
|
|
189
189
|
})}
|
|
190
|
-
${await BtnIcon.
|
|
190
|
+
${await BtnIcon.instance({
|
|
191
191
|
class: 'in wfa main-btn-menu main-btn-chat',
|
|
192
192
|
useMenuBtn: true,
|
|
193
193
|
label: html`${renderMenuLabel({
|
|
194
194
|
icon: html`<i class="far fa-comments"></i>`,
|
|
195
|
-
text: html`<span class="menu-label-text">${Translate.
|
|
195
|
+
text: html`<span class="menu-label-text">${Translate.instance('chat')}</span>`,
|
|
196
196
|
})}
|
|
197
|
-
${await Badge.
|
|
197
|
+
${await Badge.instance({
|
|
198
198
|
id: 'main-btn-chat',
|
|
199
199
|
type: 'circle-red',
|
|
200
200
|
style: badgeNotificationMenuStyle,
|
|
@@ -203,7 +203,7 @@ const MenuDefault = {
|
|
|
203
203
|
attrs: `data-id="chat"`,
|
|
204
204
|
tabHref: `${getProxyPath()}chat`,
|
|
205
205
|
handleContainerClass: 'handle-btn-container',
|
|
206
|
-
tooltipHtml: await Badge.
|
|
206
|
+
tooltipHtml: await Badge.instance(buildBadgeToolTipMenuOption('chat')),
|
|
207
207
|
})}
|
|
208
208
|
</div>
|
|
209
209
|
`,
|
|
@@ -432,7 +432,7 @@ const MenuDefault = {
|
|
|
432
432
|
|
|
433
433
|
setTimeout(ThemeEvents['main-theme-handler']);
|
|
434
434
|
|
|
435
|
-
|
|
435
|
+
AppShellDefault.Data[id].sortable = new Sortable(s(`.menu-btn-container`), {
|
|
436
436
|
animation: 150,
|
|
437
437
|
group: `menu-sortable`,
|
|
438
438
|
forceFallback: true,
|
|
@@ -483,15 +483,15 @@ const MenuDefault = {
|
|
|
483
483
|
|
|
484
484
|
EventsUI.onClick(`.main-btn-sign-up`, async () => {
|
|
485
485
|
const { barConfig } = await Themes[Css.currentTheme]();
|
|
486
|
-
await Modal.
|
|
486
|
+
await Modal.instance({
|
|
487
487
|
id: 'modal-sign-up',
|
|
488
488
|
route: 'sign-up',
|
|
489
489
|
barConfig,
|
|
490
490
|
title: renderViewTitle({
|
|
491
491
|
icon: html`<i class="fas fa-user-plus"></i>`,
|
|
492
|
-
text: Translate.
|
|
492
|
+
text: Translate.instance('sign-up'),
|
|
493
493
|
}),
|
|
494
|
-
html: async () => await SignUp.
|
|
494
|
+
html: async () => await SignUp.instance({ idModal: 'modal-sign-up' }),
|
|
495
495
|
handleType: 'bar',
|
|
496
496
|
maximize: true,
|
|
497
497
|
mode: 'view',
|
|
@@ -502,15 +502,15 @@ const MenuDefault = {
|
|
|
502
502
|
|
|
503
503
|
EventsUI.onClick(`.main-btn-log-out`, async () => {
|
|
504
504
|
const { barConfig } = await Themes[Css.currentTheme]();
|
|
505
|
-
await Modal.
|
|
505
|
+
await Modal.instance({
|
|
506
506
|
id: 'modal-log-out',
|
|
507
507
|
route: 'log-out',
|
|
508
508
|
barConfig,
|
|
509
509
|
title: renderViewTitle({
|
|
510
510
|
icon: html`<i class="fas fa-sign-out-alt"></i>`,
|
|
511
|
-
text: Translate.
|
|
511
|
+
text: Translate.instance('log-out'),
|
|
512
512
|
}),
|
|
513
|
-
html: async () => await LogOut.
|
|
513
|
+
html: async () => await LogOut.instance(),
|
|
514
514
|
handleType: 'bar',
|
|
515
515
|
maximize: true,
|
|
516
516
|
mode: 'view',
|
|
@@ -521,15 +521,15 @@ const MenuDefault = {
|
|
|
521
521
|
|
|
522
522
|
EventsUI.onClick(`.main-btn-log-in`, async () => {
|
|
523
523
|
const { barConfig } = await Themes[Css.currentTheme]();
|
|
524
|
-
await Modal.
|
|
524
|
+
await Modal.instance({
|
|
525
525
|
id: 'modal-log-in',
|
|
526
526
|
route: 'log-in',
|
|
527
527
|
barConfig,
|
|
528
528
|
title: renderViewTitle({
|
|
529
529
|
icon: html`<i class="fas fa-sign-in-alt"></i>`,
|
|
530
|
-
text: Translate.
|
|
530
|
+
text: Translate.instance('log-in'),
|
|
531
531
|
}),
|
|
532
|
-
html: async () => await LogIn.
|
|
532
|
+
html: async () => await LogIn.instance(),
|
|
533
533
|
handleType: 'bar',
|
|
534
534
|
maximize: true,
|
|
535
535
|
mode: 'view',
|
|
@@ -540,16 +540,16 @@ const MenuDefault = {
|
|
|
540
540
|
|
|
541
541
|
EventsUI.onClick(`.main-btn-account`, async () => {
|
|
542
542
|
const { barConfig } = await Themes[Css.currentTheme]();
|
|
543
|
-
await Modal.
|
|
543
|
+
await Modal.instance({
|
|
544
544
|
id: 'modal-account',
|
|
545
545
|
route: 'account',
|
|
546
546
|
barConfig,
|
|
547
547
|
title: renderViewTitle({
|
|
548
548
|
icon: html`<i class="fas fa-user-circle"></i>`,
|
|
549
|
-
text: Translate.
|
|
549
|
+
text: Translate.instance('account'),
|
|
550
550
|
}),
|
|
551
551
|
html: async () =>
|
|
552
|
-
await Account.
|
|
552
|
+
await Account.instance({
|
|
553
553
|
idModal: 'modal-account',
|
|
554
554
|
user: AppStoreDefault.Data.user.main.model.user,
|
|
555
555
|
disabled: [],
|
|
@@ -582,17 +582,17 @@ const MenuDefault = {
|
|
|
582
582
|
}
|
|
583
583
|
}
|
|
584
584
|
|
|
585
|
-
await Modal.
|
|
585
|
+
await Modal.instance({
|
|
586
586
|
id: idModal,
|
|
587
587
|
route: 'u',
|
|
588
588
|
barConfig,
|
|
589
589
|
title: '',
|
|
590
590
|
// renderViewTitle({
|
|
591
591
|
// icon: html`<i class="fas fa-user-circle"></i>`,
|
|
592
|
-
// text: Translate.
|
|
592
|
+
// text: Translate.instance('public-profile'),
|
|
593
593
|
// }),
|
|
594
594
|
html: async () =>
|
|
595
|
-
await PublicProfile.
|
|
595
|
+
await PublicProfile.instance({
|
|
596
596
|
idModal,
|
|
597
597
|
user,
|
|
598
598
|
}),
|
|
@@ -607,15 +607,15 @@ const MenuDefault = {
|
|
|
607
607
|
|
|
608
608
|
EventsUI.onClick(`.main-btn-settings`, async () => {
|
|
609
609
|
const { barConfig } = await Themes[Css.currentTheme]();
|
|
610
|
-
await Modal.
|
|
610
|
+
await Modal.instance({
|
|
611
611
|
id: 'modal-settings',
|
|
612
612
|
route: 'settings',
|
|
613
613
|
barConfig,
|
|
614
614
|
title: renderViewTitle({
|
|
615
615
|
icon: html` <i class="fas fa-sliders-h"></i>`,
|
|
616
|
-
text: Translate.
|
|
616
|
+
text: Translate.instance('settings'),
|
|
617
617
|
}),
|
|
618
|
-
html: async () => await SettingsDefault.
|
|
618
|
+
html: async () => await SettingsDefault.instance({ idModal: 'modal-settings' }),
|
|
619
619
|
handleType: 'bar',
|
|
620
620
|
maximize: true,
|
|
621
621
|
mode: 'view',
|
|
@@ -626,16 +626,16 @@ const MenuDefault = {
|
|
|
626
626
|
|
|
627
627
|
EventsUI.onClick(`.main-btn-recover`, async () => {
|
|
628
628
|
const { barConfig } = await Themes[Css.currentTheme]();
|
|
629
|
-
await Modal.
|
|
629
|
+
await Modal.instance({
|
|
630
630
|
id: 'modal-recover',
|
|
631
631
|
route: 'recover',
|
|
632
632
|
barConfig,
|
|
633
633
|
title: renderViewTitle({
|
|
634
634
|
icon: html`<i class="fa-solid fa-arrow-rotate-left"></i>`,
|
|
635
|
-
text: Translate.
|
|
635
|
+
text: Translate.instance('recover'),
|
|
636
636
|
}),
|
|
637
637
|
html: async () =>
|
|
638
|
-
await Recover.
|
|
638
|
+
await Recover.instance({ idModal: 'modal-recover', user: AppStoreDefault.Data.user.main.model.user }),
|
|
639
639
|
handleType: 'bar',
|
|
640
640
|
maximize: true,
|
|
641
641
|
mode: 'view',
|
|
@@ -646,15 +646,15 @@ const MenuDefault = {
|
|
|
646
646
|
|
|
647
647
|
EventsUI.onClick(`.main-btn-default-management`, async () => {
|
|
648
648
|
const { barConfig } = await Themes[Css.currentTheme]();
|
|
649
|
-
await Modal.
|
|
649
|
+
await Modal.instance({
|
|
650
650
|
id: 'modal-default-management',
|
|
651
651
|
route: 'default-management',
|
|
652
652
|
barConfig,
|
|
653
653
|
title: renderViewTitle({
|
|
654
654
|
icon: html`<i class="fa-solid fa-rectangle-list"></i>`,
|
|
655
|
-
text: Translate.
|
|
655
|
+
text: Translate.instance('default-management'),
|
|
656
656
|
}),
|
|
657
|
-
html: async () => await DefaultManagement.
|
|
657
|
+
html: async () => await DefaultManagement.instance(),
|
|
658
658
|
handleType: 'bar',
|
|
659
659
|
maximize: true,
|
|
660
660
|
mode: 'view',
|
|
@@ -666,15 +666,15 @@ const MenuDefault = {
|
|
|
666
666
|
|
|
667
667
|
EventsUI.onClick(`.main-btn-404`, async () => {
|
|
668
668
|
const { barConfig } = await Themes[Css.currentTheme]();
|
|
669
|
-
await Modal.
|
|
669
|
+
await Modal.instance({
|
|
670
670
|
id: 'modal-404',
|
|
671
671
|
route: '404',
|
|
672
672
|
barConfig,
|
|
673
673
|
title: renderViewTitle({
|
|
674
674
|
icon: html`<i class="fa-solid fa-triangle-exclamation"></i>`,
|
|
675
|
-
text: Translate.
|
|
675
|
+
text: Translate.instance('404'),
|
|
676
676
|
}),
|
|
677
|
-
html: async () => await Page404.
|
|
677
|
+
html: async () => await Page404.instance({ idModal: 'modal-404' }),
|
|
678
678
|
handleType: 'bar',
|
|
679
679
|
maximize: true,
|
|
680
680
|
mode: 'view',
|
|
@@ -686,15 +686,15 @@ const MenuDefault = {
|
|
|
686
686
|
|
|
687
687
|
EventsUI.onClick(`.main-btn-500`, async () => {
|
|
688
688
|
const { barConfig } = await Themes[Css.currentTheme]();
|
|
689
|
-
await Modal.
|
|
689
|
+
await Modal.instance({
|
|
690
690
|
id: 'modal-500',
|
|
691
691
|
route: '500',
|
|
692
692
|
barConfig,
|
|
693
693
|
title: renderViewTitle({
|
|
694
694
|
icon: html`<i class="fa-solid fa-circle-exclamation"></i>`,
|
|
695
|
-
text: Translate.
|
|
695
|
+
text: Translate.instance('500'),
|
|
696
696
|
}),
|
|
697
|
-
html: async () => await Page500.
|
|
697
|
+
html: async () => await Page500.instance({ idModal: 'modal-500' }),
|
|
698
698
|
handleType: 'bar',
|
|
699
699
|
maximize: true,
|
|
700
700
|
mode: 'view',
|
|
@@ -709,13 +709,13 @@ const MenuDefault = {
|
|
|
709
709
|
const idModal = 'modal-blog';
|
|
710
710
|
const routeModal = 'blog';
|
|
711
711
|
const idEvent = `form-panel-${idModal}`;
|
|
712
|
-
await Modal.
|
|
712
|
+
await Modal.instance({
|
|
713
713
|
id: idModal,
|
|
714
714
|
route: routeModal,
|
|
715
715
|
barConfig,
|
|
716
716
|
title: renderViewTitle({
|
|
717
717
|
icon: html`<i class="fa-solid fa-file-invoice"></i>`,
|
|
718
|
-
text: Translate.
|
|
718
|
+
text: Translate.instance('blog'),
|
|
719
719
|
}),
|
|
720
720
|
observer: true,
|
|
721
721
|
html: async () => {
|
|
@@ -741,15 +741,15 @@ const MenuDefault = {
|
|
|
741
741
|
|
|
742
742
|
EventsUI.onClick(`.main-btn-chat`, async () => {
|
|
743
743
|
const { barConfig } = await Themes[Css.currentTheme]();
|
|
744
|
-
await Modal.
|
|
744
|
+
await Modal.instance({
|
|
745
745
|
id: 'modal-chat',
|
|
746
746
|
route: 'chat',
|
|
747
747
|
barConfig,
|
|
748
748
|
title: renderViewTitle({
|
|
749
749
|
icon: html` <i class="far fa-comments"></i>`,
|
|
750
|
-
text: Translate.
|
|
750
|
+
text: Translate.instance('chat'),
|
|
751
751
|
}),
|
|
752
|
-
html: async () => await Chat.
|
|
752
|
+
html: async () => await Chat.instance({ idModal: 'modal-chat' }),
|
|
753
753
|
handleType: 'bar',
|
|
754
754
|
maximize: true,
|
|
755
755
|
observer: true,
|
|
@@ -759,7 +759,7 @@ const MenuDefault = {
|
|
|
759
759
|
barMode,
|
|
760
760
|
});
|
|
761
761
|
});
|
|
762
|
-
}
|
|
763
|
-
}
|
|
762
|
+
}
|
|
763
|
+
}
|
|
764
764
|
|
|
765
|
-
export {
|
|
765
|
+
export { AppShellDefault };
|
|
@@ -8,20 +8,20 @@ const CssCommonDefault = async () => {
|
|
|
8
8
|
return html``;
|
|
9
9
|
};
|
|
10
10
|
|
|
11
|
-
|
|
12
|
-
theme
|
|
13
|
-
dark
|
|
14
|
-
render
|
|
11
|
+
class CssDefaultDark {
|
|
12
|
+
static theme = 'default-dark';
|
|
13
|
+
static dark = true;
|
|
14
|
+
static render = async () => {
|
|
15
15
|
return (await CssCommonDefault()) + html``;
|
|
16
|
-
}
|
|
17
|
-
}
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
18
|
|
|
19
|
-
|
|
20
|
-
theme
|
|
21
|
-
dark
|
|
22
|
-
render
|
|
19
|
+
class CssDefaultLight {
|
|
20
|
+
static theme = 'default-light';
|
|
21
|
+
static dark = false;
|
|
22
|
+
static render = async () => {
|
|
23
23
|
return (await CssCommonDefault()) + html``;
|
|
24
|
-
}
|
|
25
|
-
}
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
26
|
|
|
27
27
|
export { CssDefaultDark, CssCommonDefault, CssDefaultLight };
|
|
@@ -2,13 +2,15 @@ import { Auth } from '../core/Auth.js';
|
|
|
2
2
|
import { LogIn } from '../core/LogIn.js';
|
|
3
3
|
import { AppStoreDefault } from './AppStoreDefault.js';
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
|
|
5
|
+
class LogInDefault {
|
|
6
|
+
static async instance() {
|
|
7
|
+
LogIn.onLogin(async (options) => {
|
|
7
8
|
const { token, user } = options;
|
|
8
9
|
AppStoreDefault.Data.user.main.model.user = user;
|
|
9
|
-
};
|
|
10
|
+
}, { key: 'LogInDefault' });
|
|
10
11
|
const { user } = await Auth.sessionIn();
|
|
11
12
|
AppStoreDefault.Data.user.main.model.user = user;
|
|
12
|
-
}
|
|
13
|
+
}
|
|
14
|
+
}
|
|
13
15
|
|
|
14
16
|
export { LogInDefault };
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
import { LogOut } from '../core/LogOut.js';
|
|
2
2
|
import { AppStoreDefault } from './AppStoreDefault.js';
|
|
3
3
|
|
|
4
|
-
|
|
5
|
-
|
|
4
|
+
class LogOutDefault {
|
|
5
|
+
static async instance() {
|
|
6
|
+
LogOut.onLogout(async (result = { user: { _id: '' } }) => {
|
|
6
7
|
AppStoreDefault.Data.user.main.model.user = result.user;
|
|
7
|
-
};
|
|
8
|
-
}
|
|
8
|
+
}, { key: 'LogOutDefault' });
|
|
9
|
+
}
|
|
10
|
+
}
|
|
9
11
|
|
|
10
12
|
export { LogOutDefault };
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { loggerFactory } from '../core/Logger.js';
|
|
2
|
+
import { Modal } from '../core/Modal.js';
|
|
3
|
+
import { s } from '../core/VanillaJs.js';
|
|
4
|
+
|
|
5
|
+
const logger = loggerFactory(import.meta);
|
|
6
|
+
|
|
7
|
+
const BannerAppTemplate = html`<strong class="inl" style="font-family: system-ui">PWA</strong>`;
|
|
8
|
+
|
|
9
|
+
class RouterDefault {
|
|
10
|
+
static routes() {
|
|
11
|
+
return {
|
|
12
|
+
'/': {
|
|
13
|
+
title: 'Home',
|
|
14
|
+
render: () => Modal.onHomeRouterEvent(),
|
|
15
|
+
},
|
|
16
|
+
'/home': { title: 'home', render: () => Modal.onHomeRouterEvent() },
|
|
17
|
+
'/settings': { title: 'settings', render: () => s(`.main-btn-settings`).click() },
|
|
18
|
+
'/log-in': { title: 'log-in', render: () => s(`.main-btn-log-in`).click() },
|
|
19
|
+
'/sign-up': { title: 'sign-up', render: () => s(`.main-btn-sign-up`).click() },
|
|
20
|
+
'/log-out': {
|
|
21
|
+
title: 'log-out',
|
|
22
|
+
render: () => s(`.main-btn-log-out`).click(),
|
|
23
|
+
},
|
|
24
|
+
'/account': {
|
|
25
|
+
title: 'account',
|
|
26
|
+
render: () => s(`.main-btn-account`).click(),
|
|
27
|
+
},
|
|
28
|
+
'/docs': { title: 'docs', render: () => s(`.main-btn-docs`).click() },
|
|
29
|
+
'/chat': { title: 'docs', render: () => s(`.main-btn-chat`).click() },
|
|
30
|
+
'/blog': { title: 'docs', render: () => s(`.main-btn-blog`).click() },
|
|
31
|
+
'/recover': { title: 'recover', render: () => s(`.main-btn-recover`).click() },
|
|
32
|
+
'/default-management': {
|
|
33
|
+
title: 'default-management',
|
|
34
|
+
render: () => s(`.main-btn-default-management`).click(),
|
|
35
|
+
},
|
|
36
|
+
'/u': { title: 'public-profile', render: () => s(`.main-btn-public-profile`).click() },
|
|
37
|
+
'/404': { title: '404 Not Found', render: () => s(`.main-btn-404`).click() },
|
|
38
|
+
'/500': { title: '500 Server Error', render: () => s(`.main-btn-500`).click() },
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
static instance() {
|
|
43
|
+
return { Routes: RouterDefault.routes };
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
export { RouterDefault, BannerAppTemplate };
|
|
@@ -3,14 +3,14 @@ import { FullScreen } from '../core/FullScreen.js';
|
|
|
3
3
|
import { Translate } from '../core/Translate.js';
|
|
4
4
|
import { Worker } from '../core/Worker.js';
|
|
5
5
|
|
|
6
|
-
|
|
7
|
-
|
|
6
|
+
class SettingsDefault {
|
|
7
|
+
static async instance() {
|
|
8
8
|
let render = await FullScreen.RenderSetting();
|
|
9
9
|
render += await Css.RenderSetting();
|
|
10
10
|
render += await Translate.RenderSetting();
|
|
11
11
|
render += await Worker.RenderSetting();
|
|
12
12
|
return render;
|
|
13
|
-
}
|
|
14
|
-
}
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
15
|
|
|
16
16
|
export { SettingsDefault };
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import { SignUp } from '../core/SignUp.js';
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
3
|
+
class SignUpDefault {
|
|
4
|
+
static instance() {
|
|
5
|
+
SignUp.onSignup(async (options) => {
|
|
5
6
|
const { user } = options;
|
|
6
|
-
};
|
|
7
|
-
}
|
|
7
|
+
}, { key: 'SignUpDefault' });
|
|
8
|
+
}
|
|
9
|
+
}
|
|
8
10
|
|
|
9
11
|
export { SignUpDefault };
|