@fc3/mmcadi 0.1.22 → 0.1.23
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/dist/.last-compile-time +1 -1
- package/dist/.last-publish-time +1 -1
- package/dist/client.js +254 -47
- package/dist/src/client/enum/page-type.d.ts +3 -0
- package/dist/src/client/enum/page-type.js +3 -0
- package/dist/src/client/enum/page-type.js.map +1 -1
- package/dist/src/client/factory/page.js +6 -0
- package/dist/src/client/factory/page.js.map +1 -1
- package/dist/src/client/page/confirm-hide-block.d.ts +7 -0
- package/dist/src/client/page/confirm-hide-block.js +28 -0
- package/dist/src/client/page/confirm-hide-block.js.map +1 -0
- package/dist/src/client/page/history.d.ts +16 -0
- package/dist/src/client/page/history.js +126 -0
- package/dist/src/client/page/history.js.map +1 -0
- package/dist/src/client/page/select-block-destination.d.ts +5 -0
- package/dist/src/client/page/select-block-destination.js +12 -0
- package/dist/src/client/page/select-block-destination.js.map +1 -0
- package/dist/src/client/page/view-custom.d.ts +3 -1
- package/dist/src/client/page/view-custom.js +60 -26
- package/dist/src/client/page/view-custom.js.map +1 -1
- package/dist/src/client/utility/get-block-activation-href.d.ts +2 -0
- package/dist/src/client/utility/get-block-activation-href.js +25 -0
- package/dist/src/client/utility/get-block-activation-href.js.map +1 -0
- package/dist/src/enum/action-type.d.ts +2 -0
- package/dist/src/enum/action-type.js +2 -0
- package/dist/src/enum/action-type.js.map +1 -1
- package/dist/src/enum/emoji.d.ts +1 -0
- package/dist/src/enum/emoji.js +1 -0
- package/dist/src/enum/emoji.js.map +1 -1
- package/dist/src/enum/tool-type.d.ts +1 -0
- package/dist/src/enum/tool-type.js +1 -0
- package/dist/src/enum/tool-type.js.map +1 -1
- package/dist/src/lib/server/http/endpoint.js +1 -1
- package/dist/src/lib/server/http/endpoint.js.map +1 -1
- package/dist/src/server/endpoint/abstract-page.d.ts +1 -1
- package/dist/src/server/endpoint/abstract-page.js +21 -3
- package/dist/src/server/endpoint/abstract-page.js.map +1 -1
- package/dist/src/server/endpoint/action/create.d.ts +3 -1
- package/dist/src/server/endpoint/action/create.js +61 -25
- package/dist/src/server/endpoint/action/create.js.map +1 -1
- package/dist/src/server/endpoint/action/get.d.ts +3 -1
- package/dist/src/server/endpoint/action/get.js +47 -1
- package/dist/src/server/endpoint/action/get.js.map +1 -1
- package/dist/src/server/endpoint/history.d.ts +13 -0
- package/dist/src/server/endpoint/history.js +61 -0
- package/dist/src/server/endpoint/history.js.map +1 -0
- package/dist/src/server/endpoint/login.d.ts +1 -1
- package/dist/src/server/endpoint/login.js +1 -1
- package/dist/src/server/endpoint/login.js.map +1 -1
- package/dist/src/server/endpoint/logout.js +7 -2
- package/dist/src/server/endpoint/logout.js.map +1 -1
- package/dist/src/server/endpoint/month.d.ts +1 -1
- package/dist/src/server/endpoint/month.js +1 -1
- package/dist/src/server/endpoint/month.js.map +1 -1
- package/dist/src/server/endpoint/settings/get.d.ts +1 -1
- package/dist/src/server/endpoint/settings/get.js +1 -1
- package/dist/src/server/endpoint/settings/get.js.map +1 -1
- package/dist/src/server/endpoint/week.d.ts +1 -1
- package/dist/src/server/endpoint/week.js +1 -1
- package/dist/src/server/endpoint/week.js.map +1 -1
- package/dist/src/server/endpoint/year.d.ts +1 -1
- package/dist/src/server/endpoint/year.js +1 -1
- package/dist/src/server/endpoint/year.js.map +1 -1
- package/dist/src/server/factory/block-result-serializer.d.ts +1 -1
- package/dist/src/server/factory/block-result-serializer.js +14 -14
- package/dist/src/server/factory/block-result-serializer.js.map +1 -1
- package/dist/src/server/factory/block-serializer.d.ts +15 -0
- package/dist/src/server/factory/block-serializer.js +80 -0
- package/dist/src/server/factory/block-serializer.js.map +1 -0
- package/dist/src/server/middleware/error-handler.js +14 -4
- package/dist/src/server/middleware/error-handler.js.map +1 -1
- package/dist/src/server/operation/add-block.js +1 -0
- package/dist/src/server/operation/add-block.js.map +1 -1
- package/dist/src/server/operation/delete-block.d.ts +5 -3
- package/dist/src/server/operation/delete-block.js +30 -9
- package/dist/src/server/operation/delete-block.js.map +1 -1
- package/dist/src/server/operation/destroy-session.js +13 -1
- package/dist/src/server/operation/destroy-session.js.map +1 -1
- package/dist/src/server/operation/find-account.js +3 -2
- package/dist/src/server/operation/find-account.js.map +1 -1
- package/dist/src/server/operation/hide-block.d.ts +14 -0
- package/dist/src/server/operation/hide-block.js +55 -0
- package/dist/src/server/operation/hide-block.js.map +1 -0
- package/dist/src/server/operation/load-page.d.ts +3 -1
- package/dist/src/server/operation/load-page.js +99 -39
- package/dist/src/server/operation/load-page.js.map +1 -1
- package/dist/src/server/operation/move-block.d.ts +16 -0
- package/dist/src/server/operation/move-block.js +101 -0
- package/dist/src/server/operation/move-block.js.map +1 -0
- package/dist/src/server/operation/store-file.d.ts +14 -0
- package/dist/src/server/operation/store-file.js +83 -0
- package/dist/src/server/operation/store-file.js.map +1 -0
- package/dist/src/server/operation/update-block.js +4 -4
- package/dist/src/server/operation/update-block.js.map +1 -1
- package/dist/src/server/serializer/action.d.ts +40 -0
- package/dist/src/server/serializer/action.js +940 -0
- package/dist/src/server/serializer/action.js.map +1 -0
- package/dist/src/server/serializer/base.d.ts +31 -0
- package/dist/src/server/serializer/base.js +1222 -0
- package/dist/src/server/serializer/base.js.map +1 -0
- package/dist/src/server/serializer/block/audio.d.ts +6 -0
- package/dist/src/server/serializer/block/audio.js +26 -0
- package/dist/src/server/serializer/block/audio.js.map +1 -0
- package/dist/src/server/serializer/block/background.d.ts +6 -0
- package/dist/src/server/serializer/block/background.js +22 -0
- package/dist/src/server/serializer/block/background.js.map +1 -0
- package/dist/src/server/serializer/block/calendar.d.ts +7 -0
- package/dist/src/server/serializer/block/calendar.js +140 -0
- package/dist/src/server/serializer/block/calendar.js.map +1 -0
- package/dist/src/server/serializer/block/directory.d.ts +7 -0
- package/dist/src/server/serializer/block/directory.js +53 -0
- package/dist/src/server/serializer/block/directory.js.map +1 -0
- package/dist/src/server/serializer/block/ephemeral.d.ts +6 -0
- package/dist/src/server/serializer/block/ephemeral.js +16 -0
- package/dist/src/server/serializer/block/ephemeral.js.map +1 -0
- package/dist/src/server/serializer/block/folder.d.ts +14 -0
- package/dist/src/server/serializer/block/folder.js +145 -0
- package/dist/src/server/serializer/block/folder.js.map +1 -0
- package/dist/src/server/serializer/block/header.d.ts +6 -0
- package/dist/src/server/serializer/block/header.js +35 -0
- package/dist/src/server/serializer/block/header.js.map +1 -0
- package/dist/src/server/serializer/block/image.d.ts +6 -0
- package/dist/src/server/serializer/block/image.js +45 -0
- package/dist/src/server/serializer/block/image.js.map +1 -0
- package/dist/src/server/serializer/block/link.d.ts +6 -0
- package/dist/src/server/serializer/block/link.js +39 -0
- package/dist/src/server/serializer/block/link.js.map +1 -0
- package/dist/src/server/serializer/block/list.d.ts +13 -0
- package/dist/src/server/serializer/block/list.js +113 -0
- package/dist/src/server/serializer/block/list.js.map +1 -0
- package/dist/src/server/serializer/block/multi-column.d.ts +6 -0
- package/dist/src/server/serializer/block/multi-column.js +78 -0
- package/dist/src/server/serializer/block/multi-column.js.map +1 -0
- package/dist/src/server/serializer/block/note.d.ts +6 -0
- package/dist/src/server/serializer/block/note.js +40 -0
- package/dist/src/server/serializer/block/note.js.map +1 -0
- package/dist/src/server/serializer/block/parameter.d.ts +6 -0
- package/dist/src/server/serializer/block/parameter.js +13 -0
- package/dist/src/server/serializer/block/parameter.js.map +1 -0
- package/dist/src/server/serializer/block/todo.d.ts +6 -0
- package/dist/src/server/serializer/block/todo.js +76 -0
- package/dist/src/server/serializer/block/todo.js.map +1 -0
- package/dist/src/server/serializer/block/whitespace.d.ts +6 -0
- package/dist/src/server/serializer/block/whitespace.js +17 -0
- package/dist/src/server/serializer/block/whitespace.js.map +1 -0
- package/dist/src/server/serializer/block.d.ts +27 -0
- package/dist/src/server/serializer/block.js +226 -0
- package/dist/src/server/serializer/block.js.map +1 -0
- package/dist/src/server/serializer/common/time-place-options.d.ts +2 -0
- package/dist/src/server/serializer/common/time-place-options.js +34 -0
- package/dist/src/server/serializer/common/time-place-options.js.map +1 -0
- package/dist/src/server/serializer/history.d.ts +19 -0
- package/dist/src/server/serializer/history.js +77 -0
- package/dist/src/server/serializer/history.js.map +1 -0
- package/dist/src/server/serializer/login.d.ts +12 -0
- package/dist/src/server/serializer/login.js +54 -0
- package/dist/src/server/serializer/login.js.map +1 -0
- package/dist/src/server/serializer/month.d.ts +10 -0
- package/dist/src/server/serializer/month.js +160 -0
- package/dist/src/server/serializer/month.js.map +1 -0
- package/dist/src/server/serializer/page.d.ts +47 -0
- package/dist/src/server/serializer/page.js +454 -0
- package/dist/src/server/serializer/page.js.map +1 -0
- package/dist/src/server/serializer/settings.d.ts +9 -0
- package/dist/src/server/serializer/settings.js +80 -0
- package/dist/src/server/serializer/settings.js.map +1 -0
- package/dist/src/server/serializer/week.d.ts +10 -0
- package/dist/src/server/serializer/week.js +175 -0
- package/dist/src/server/serializer/week.js.map +1 -0
- package/dist/src/server/serializer/year.d.ts +10 -0
- package/dist/src/server/serializer/year.js +142 -0
- package/dist/src/server/serializer/year.js.map +1 -0
- package/dist/src/server/utility/get-emoji-for-tool-type.js +1 -0
- package/dist/src/server/utility/get-emoji-for-tool-type.js.map +1 -1
- package/dist/src/server.js +2 -0
- package/dist/src/server.js.map +1 -1
- package/dist/src/type/account-settings.d.ts +3 -2
- package/dist/src/type/action/hide-block.d.ts +9 -0
- package/dist/src/type/action/hide-block.js +3 -0
- package/dist/src/type/action/hide-block.js.map +1 -0
- package/dist/src/type/action/move-block.d.ts +10 -0
- package/dist/src/type/action/move-block.js +3 -0
- package/dist/src/type/action/move-block.js.map +1 -0
- package/dist/src/type/block/audio.d.ts +2 -0
- package/dist/src/type/block/image.d.ts +2 -0
- package/dist/src/type/block.d.ts +2 -2
- package/dist/src/type/history-item.d.ts +5 -0
- package/dist/src/type/history-item.js +3 -0
- package/dist/src/type/history-item.js.map +1 -0
- package/dist/src/type/page.d.ts +2 -0
- package/dist/test/unit/server/operation/promote-block.js +11 -0
- package/dist/test/unit/server/operation/promote-block.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { Session } from './../../lib/execution-context/index';
|
|
2
|
+
import Page from './../../type/page';
|
|
3
|
+
import Role from './../../type/role';
|
|
4
|
+
import CustomPageType from './../enum/custom-page-type';
|
|
5
|
+
import Account from './../../type/account';
|
|
6
|
+
import PageType from './../../client/enum/page-type';
|
|
7
|
+
import BaseResultSerializer from './base';
|
|
8
|
+
import Toast from './../../type/toast';
|
|
9
|
+
export interface PageMetadata {
|
|
10
|
+
readonly editing: boolean;
|
|
11
|
+
readonly target_index_path: string | null;
|
|
12
|
+
readonly toast: Toast | null;
|
|
13
|
+
readonly roles: Role[];
|
|
14
|
+
readonly account: Account | null;
|
|
15
|
+
readonly custom_page_type: CustomPageType;
|
|
16
|
+
readonly creator_usernames: Record<string, string>;
|
|
17
|
+
}
|
|
18
|
+
declare class PageResultSerializer extends BaseResultSerializer<Page> {
|
|
19
|
+
private metadata;
|
|
20
|
+
constructor(result: Page, metadata: PageMetadata, path: string, referrer_url: string, session: Session);
|
|
21
|
+
protected getBodyClass(): string;
|
|
22
|
+
protected getPageType(): PageType;
|
|
23
|
+
protected isHome(): boolean;
|
|
24
|
+
protected isToday(): boolean;
|
|
25
|
+
protected getTitle(): string;
|
|
26
|
+
protected serializeBreadcrumbs(): string;
|
|
27
|
+
private serializeToast;
|
|
28
|
+
protected serializeHeader(): string;
|
|
29
|
+
private serializeToolType;
|
|
30
|
+
private serializeLockTool;
|
|
31
|
+
private serializeHomeTool;
|
|
32
|
+
private serializeTodayTool;
|
|
33
|
+
private serializeHistoryTool;
|
|
34
|
+
private serializeNoteTool;
|
|
35
|
+
private serializeAudioTool;
|
|
36
|
+
private serializeImageTool;
|
|
37
|
+
private serializeFolderTool;
|
|
38
|
+
private serializeTodoTool;
|
|
39
|
+
private serializeSettingsTool;
|
|
40
|
+
protected serializeSections(): string;
|
|
41
|
+
private getInsertionIndexPath;
|
|
42
|
+
private shouldPrintRawConfig;
|
|
43
|
+
private serializeBlock;
|
|
44
|
+
private isEditing;
|
|
45
|
+
private getMetadata;
|
|
46
|
+
}
|
|
47
|
+
export default PageResultSerializer;
|
|
@@ -0,0 +1,454 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const errors_1 = require("./../../lib/errors/index.js");
|
|
7
|
+
const block_type_1 = __importDefault(require("./../../enum/block-type.js"));
|
|
8
|
+
const create_date_1 = __importDefault(require("./../utility/create-date.js"));
|
|
9
|
+
const color_1 = __importDefault(require("./../../enum/color.js"));
|
|
10
|
+
const create_toast_path_1 = __importDefault(require("./../utility/create-toast-path.js"));
|
|
11
|
+
const date_to_path_1 = __importDefault(require("./../utility/date-to-path.js"));
|
|
12
|
+
const is_index_path_1 = __importDefault(require("./../utility/is-index-path.js"));
|
|
13
|
+
const get_hex_for_color_1 = __importDefault(require("./../utility/get-hex-for-color.js"));
|
|
14
|
+
const tool_type_1 = __importDefault(require("./../../enum/tool-type.js"));
|
|
15
|
+
const get_emoji_for_tool_type_1 = __importDefault(require("./../utility/get-emoji-for-tool-type.js"));
|
|
16
|
+
const path_to_date_1 = __importDefault(require("./../utility/path-to-date.js"));
|
|
17
|
+
const page_type_1 = __importDefault(require("./../../client/enum/page-type.js"));
|
|
18
|
+
const path_is_date_1 = __importDefault(require("./../utility/path-is-date.js"));
|
|
19
|
+
const dates_are_equal_1 = __importDefault(require("./../utility/dates-are-equal.js"));
|
|
20
|
+
const create_index_path_1 = __importDefault(require("./../utility/create-index-path.js"));
|
|
21
|
+
const emoji_1 = __importDefault(require("./../../enum/emoji.js"));
|
|
22
|
+
const base_1 = __importDefault(require("./base.js"));
|
|
23
|
+
const action_type_1 = __importDefault(require("./../../enum/action-type.js"));
|
|
24
|
+
const block_serializer_1 = __importDefault(require("./../factory/block-serializer.js"));
|
|
25
|
+
class PageResultSerializer extends base_1.default {
|
|
26
|
+
constructor(result, metadata, path, referrer_url, session) {
|
|
27
|
+
super(result, path, referrer_url, session);
|
|
28
|
+
this.metadata = metadata;
|
|
29
|
+
}
|
|
30
|
+
getBodyClass() {
|
|
31
|
+
if (this.isEditing()) {
|
|
32
|
+
return 'editing';
|
|
33
|
+
}
|
|
34
|
+
else {
|
|
35
|
+
return super.getBodyClass();
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
getPageType() {
|
|
39
|
+
if (this.isEditing()) {
|
|
40
|
+
return page_type_1.default.EDIT_CUSTOM;
|
|
41
|
+
}
|
|
42
|
+
else {
|
|
43
|
+
return page_type_1.default.VIEW_CUSTOM;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
isHome() {
|
|
47
|
+
const { path } = this.getResult();
|
|
48
|
+
return (0, is_index_path_1.default)(path);
|
|
49
|
+
}
|
|
50
|
+
isToday() {
|
|
51
|
+
const { path } = this.getResult();
|
|
52
|
+
if (path === '/today') {
|
|
53
|
+
return true;
|
|
54
|
+
}
|
|
55
|
+
const is_date = (0, path_is_date_1.default)(path);
|
|
56
|
+
if (!is_date) {
|
|
57
|
+
return false;
|
|
58
|
+
}
|
|
59
|
+
const date = (0, path_to_date_1.default)(path);
|
|
60
|
+
const today = (0, create_date_1.default)();
|
|
61
|
+
return (0, dates_are_equal_1.default)(date, today);
|
|
62
|
+
}
|
|
63
|
+
getTitle() {
|
|
64
|
+
const { blocks, path } = this.getResult();
|
|
65
|
+
let index = 0;
|
|
66
|
+
while (index < blocks.length) {
|
|
67
|
+
const block = blocks[index++];
|
|
68
|
+
if (!block) {
|
|
69
|
+
throw new errors_1.InvariantViolation(`
|
|
70
|
+
Tried to read block at index ${index}, but it was not set
|
|
71
|
+
`);
|
|
72
|
+
}
|
|
73
|
+
const { block_type } = block;
|
|
74
|
+
switch (block_type) {
|
|
75
|
+
case block_type_1.default.HEADER:
|
|
76
|
+
const { title } = block;
|
|
77
|
+
return title;
|
|
78
|
+
default:
|
|
79
|
+
continue;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
return path;
|
|
83
|
+
}
|
|
84
|
+
serializeBreadcrumbs() {
|
|
85
|
+
const { path } = this.getResult();
|
|
86
|
+
const prefix = (() => {
|
|
87
|
+
const query_index = path.indexOf('?');
|
|
88
|
+
if (query_index !== -1) {
|
|
89
|
+
return path.slice(0, query_index);
|
|
90
|
+
}
|
|
91
|
+
else {
|
|
92
|
+
return path;
|
|
93
|
+
}
|
|
94
|
+
})();
|
|
95
|
+
const parts = prefix.split('/').filter((part) => {
|
|
96
|
+
return part !== '';
|
|
97
|
+
});
|
|
98
|
+
if (parts.length === 0) {
|
|
99
|
+
return '';
|
|
100
|
+
}
|
|
101
|
+
const last_part = parts.pop();
|
|
102
|
+
const segments = [];
|
|
103
|
+
let current_path = '';
|
|
104
|
+
segments.push('<a class="breadcrumb" href="/">home</a>');
|
|
105
|
+
parts.forEach((part) => {
|
|
106
|
+
current_path += '/' + part;
|
|
107
|
+
segments.push(`<a class="breadcrumb" href="${current_path}">${part}</a>`);
|
|
108
|
+
});
|
|
109
|
+
segments.push(`<span class="breadcrumb">${last_part}</span>`);
|
|
110
|
+
return `
|
|
111
|
+
<nav class="mb-16 text-smaller">
|
|
112
|
+
${segments.join(' / ')}
|
|
113
|
+
</nav>
|
|
114
|
+
`;
|
|
115
|
+
}
|
|
116
|
+
serializeToast() {
|
|
117
|
+
const { toast } = this.getMetadata();
|
|
118
|
+
if (toast === null) {
|
|
119
|
+
return '';
|
|
120
|
+
}
|
|
121
|
+
const { color } = toast;
|
|
122
|
+
const color_hex = (0, get_hex_for_color_1.default)(color);
|
|
123
|
+
return `
|
|
124
|
+
<input type="checkbox" class="toast-toggle" autocomplete="off" />
|
|
125
|
+
<div class="toast">
|
|
126
|
+
<div class="toast-wrapper" style="background:${color_hex}">
|
|
127
|
+
<div class="toast-background"></div>
|
|
128
|
+
<div class="toast-message">
|
|
129
|
+
${toast.message}
|
|
130
|
+
</div>
|
|
131
|
+
</div>
|
|
132
|
+
</div>
|
|
133
|
+
`;
|
|
134
|
+
}
|
|
135
|
+
serializeHeader() {
|
|
136
|
+
const toast = this.serializeToast();
|
|
137
|
+
if (!this.isLoggedIn()) {
|
|
138
|
+
return `
|
|
139
|
+
${toast}
|
|
140
|
+
`;
|
|
141
|
+
}
|
|
142
|
+
const { account } = this.getMetadata();
|
|
143
|
+
if (account === null) {
|
|
144
|
+
throw new errors_1.InvariantViolation(`
|
|
145
|
+
Tried to read account for logged-in user,
|
|
146
|
+
but it was null
|
|
147
|
+
`);
|
|
148
|
+
}
|
|
149
|
+
const { settings } = account;
|
|
150
|
+
const { tools } = settings;
|
|
151
|
+
const serialized_tools = tools.map((tool_type) => {
|
|
152
|
+
return this.serializeToolType(tool_type);
|
|
153
|
+
});
|
|
154
|
+
return `
|
|
155
|
+
${toast}
|
|
156
|
+
|
|
157
|
+
<header>
|
|
158
|
+
<div class="section-wrapper">
|
|
159
|
+
<section class="background-black" style="overflow-x: scroll;">
|
|
160
|
+
<table class="fixed" style="width:auto;min-width:180px;margin:0 auto;">
|
|
161
|
+
<tbody>
|
|
162
|
+
<tr>
|
|
163
|
+
${serialized_tools.join('\n')}
|
|
164
|
+
</tr>
|
|
165
|
+
</tbody>
|
|
166
|
+
</table>
|
|
167
|
+
</section>
|
|
168
|
+
</div>
|
|
169
|
+
</header>
|
|
170
|
+
`;
|
|
171
|
+
}
|
|
172
|
+
serializeToolType(tool_type) {
|
|
173
|
+
switch (tool_type) {
|
|
174
|
+
case tool_type_1.default.LOCK:
|
|
175
|
+
return this.serializeLockTool();
|
|
176
|
+
case tool_type_1.default.HOME:
|
|
177
|
+
return this.serializeHomeTool();
|
|
178
|
+
case tool_type_1.default.TODAY:
|
|
179
|
+
return this.serializeTodayTool();
|
|
180
|
+
case tool_type_1.default.HISTORY:
|
|
181
|
+
return this.serializeHistoryTool();
|
|
182
|
+
case tool_type_1.default.NOTE:
|
|
183
|
+
return this.serializeNoteTool();
|
|
184
|
+
case tool_type_1.default.AUDIO:
|
|
185
|
+
return this.serializeAudioTool();
|
|
186
|
+
case tool_type_1.default.IMAGE:
|
|
187
|
+
return this.serializeImageTool();
|
|
188
|
+
case tool_type_1.default.FOLDER:
|
|
189
|
+
return this.serializeFolderTool();
|
|
190
|
+
case tool_type_1.default.TODO:
|
|
191
|
+
return this.serializeTodoTool();
|
|
192
|
+
case tool_type_1.default.SETTINGS:
|
|
193
|
+
return this.serializeSettingsTool();
|
|
194
|
+
default:
|
|
195
|
+
throw new errors_1.InvariantViolation(`Unsupported tool type: ${tool_type}`);
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
serializeLockTool() {
|
|
199
|
+
const { path } = this.getResult();
|
|
200
|
+
const editing = this.isEditing();
|
|
201
|
+
const editing_path = (() => {
|
|
202
|
+
if (editing) {
|
|
203
|
+
return (0, create_toast_path_1.default)(path, {
|
|
204
|
+
message: `${emoji_1.default.LOCKED} locked`,
|
|
205
|
+
color: color_1.default.GREEN
|
|
206
|
+
});
|
|
207
|
+
}
|
|
208
|
+
else {
|
|
209
|
+
return (0, create_toast_path_1.default)(`${path}?editing=true`, {
|
|
210
|
+
message: `${emoji_1.default.UNLOCKED} unlocked`,
|
|
211
|
+
color: color_1.default.YELLOW
|
|
212
|
+
});
|
|
213
|
+
}
|
|
214
|
+
})();
|
|
215
|
+
const editing_emoji = editing ? emoji_1.default.UNLOCKED : emoji_1.default.LOCKED;
|
|
216
|
+
return `
|
|
217
|
+
<td>
|
|
218
|
+
<a href="${editing_path}" class="squarelink">
|
|
219
|
+
${editing_emoji}
|
|
220
|
+
</a>
|
|
221
|
+
</td>
|
|
222
|
+
`;
|
|
223
|
+
}
|
|
224
|
+
serializeHomeTool() {
|
|
225
|
+
const { path } = this.getResult();
|
|
226
|
+
const is_index = (0, is_index_path_1.default)(path);
|
|
227
|
+
const index_label = `${emoji_1.default.HOUSE} home ${emoji_1.default.HOUSE}`;
|
|
228
|
+
const index_disabled_class = is_index ? 'disabled' : '';
|
|
229
|
+
const toasted_index_path = (() => {
|
|
230
|
+
if (is_index) {
|
|
231
|
+
return (0, create_toast_path_1.default)('/', {
|
|
232
|
+
message: `already ${index_label}`,
|
|
233
|
+
color: color_1.default.FUSCHIA
|
|
234
|
+
});
|
|
235
|
+
}
|
|
236
|
+
else {
|
|
237
|
+
return (0, create_toast_path_1.default)('/', {
|
|
238
|
+
message: index_label,
|
|
239
|
+
color: color_1.default.BLUE
|
|
240
|
+
});
|
|
241
|
+
}
|
|
242
|
+
})();
|
|
243
|
+
return `
|
|
244
|
+
<td>
|
|
245
|
+
<a href="${toasted_index_path}" class="squarelink ${index_disabled_class}">
|
|
246
|
+
${emoji_1.default.HOUSE}
|
|
247
|
+
</a>
|
|
248
|
+
</td>
|
|
249
|
+
`;
|
|
250
|
+
}
|
|
251
|
+
serializeTodayTool() {
|
|
252
|
+
const { path } = this.getResult();
|
|
253
|
+
const today = (0, create_date_1.default)();
|
|
254
|
+
const today_path = (0, date_to_path_1.default)(today);
|
|
255
|
+
const is_today = path === today_path;
|
|
256
|
+
const today_label = `${emoji_1.default.SUNSHINE} today ${emoji_1.default.SUNSHINE}`;
|
|
257
|
+
const today_disabled_class = is_today ? 'disabled' : '';
|
|
258
|
+
const toasted_today_path = (() => {
|
|
259
|
+
if (is_today) {
|
|
260
|
+
return (0, create_toast_path_1.default)(path, {
|
|
261
|
+
message: `already ${today_label}`,
|
|
262
|
+
color: color_1.default.FUSCHIA
|
|
263
|
+
});
|
|
264
|
+
}
|
|
265
|
+
else {
|
|
266
|
+
return (0, create_toast_path_1.default)(today_path, {
|
|
267
|
+
message: today_label,
|
|
268
|
+
color: color_1.default.YELLOW
|
|
269
|
+
});
|
|
270
|
+
}
|
|
271
|
+
})();
|
|
272
|
+
return `
|
|
273
|
+
<td>
|
|
274
|
+
<a href="${toasted_today_path}" class="squarelink ${today_disabled_class}">
|
|
275
|
+
${emoji_1.default.SUNSHINE}
|
|
276
|
+
</a>
|
|
277
|
+
</td>
|
|
278
|
+
`;
|
|
279
|
+
}
|
|
280
|
+
serializeHistoryTool() {
|
|
281
|
+
const emoji = (0, get_emoji_for_tool_type_1.default)(tool_type_1.default.HISTORY);
|
|
282
|
+
return `
|
|
283
|
+
<td>
|
|
284
|
+
<a href="/history" class="squarelink">
|
|
285
|
+
${emoji}
|
|
286
|
+
</a>
|
|
287
|
+
</td>
|
|
288
|
+
`;
|
|
289
|
+
}
|
|
290
|
+
serializeNoteTool() {
|
|
291
|
+
const { path } = this.getResult();
|
|
292
|
+
const editing = this.isEditing();
|
|
293
|
+
const index_path = this.getInsertionIndexPath();
|
|
294
|
+
const emoji = (0, get_emoji_for_tool_type_1.default)(tool_type_1.default.NOTE);
|
|
295
|
+
return `
|
|
296
|
+
<td>
|
|
297
|
+
<a href="/actions?path=${path}&editing=${editing}&action_type=${action_type_1.default.ADD_BLOCK}&block_type=${block_type_1.default.NOTE}&index_path=${index_path}" class="squarelink">
|
|
298
|
+
${emoji}
|
|
299
|
+
</a>
|
|
300
|
+
</td>
|
|
301
|
+
`;
|
|
302
|
+
}
|
|
303
|
+
serializeAudioTool() {
|
|
304
|
+
const { path } = this.getResult();
|
|
305
|
+
const editing = this.isEditing();
|
|
306
|
+
const index_path = this.getInsertionIndexPath();
|
|
307
|
+
const emoji = (0, get_emoji_for_tool_type_1.default)(tool_type_1.default.AUDIO);
|
|
308
|
+
return `
|
|
309
|
+
<td>
|
|
310
|
+
<a href="/actions?path=${path}&editing=${editing}&action_type=${action_type_1.default.ADD_BLOCK}&block_type=${block_type_1.default.AUDIO}&index_path=${index_path}" class="squarelink">
|
|
311
|
+
${emoji}
|
|
312
|
+
</a>
|
|
313
|
+
</td>
|
|
314
|
+
`;
|
|
315
|
+
}
|
|
316
|
+
serializeImageTool() {
|
|
317
|
+
const { path } = this.getResult();
|
|
318
|
+
const editing = this.isEditing();
|
|
319
|
+
const index_path = this.getInsertionIndexPath();
|
|
320
|
+
const emoji = (0, get_emoji_for_tool_type_1.default)(tool_type_1.default.IMAGE);
|
|
321
|
+
return `
|
|
322
|
+
<td>
|
|
323
|
+
<a href="/actions?path=${path}&editing=${editing}&action_type=${action_type_1.default.ADD_BLOCK}&block_type=${block_type_1.default.IMAGE}&index_path=${index_path}" class="squarelink">
|
|
324
|
+
${emoji}
|
|
325
|
+
</a>
|
|
326
|
+
</td>
|
|
327
|
+
`;
|
|
328
|
+
}
|
|
329
|
+
serializeFolderTool() {
|
|
330
|
+
const { path } = this.getResult();
|
|
331
|
+
const editing = this.isEditing();
|
|
332
|
+
const index_path = this.getInsertionIndexPath();
|
|
333
|
+
const emoji = (0, get_emoji_for_tool_type_1.default)(tool_type_1.default.FOLDER);
|
|
334
|
+
return `
|
|
335
|
+
<td>
|
|
336
|
+
<a href="/actions?path=${path}&editing=${editing}&action_type=${action_type_1.default.ADD_BLOCK}&block_type=${block_type_1.default.FOLDER}&index_path=${index_path}" class="squarelink">
|
|
337
|
+
${emoji}
|
|
338
|
+
</a>
|
|
339
|
+
</td>
|
|
340
|
+
`;
|
|
341
|
+
}
|
|
342
|
+
serializeTodoTool() {
|
|
343
|
+
const { path } = this.getResult();
|
|
344
|
+
const editing = this.isEditing();
|
|
345
|
+
const index_path = this.getInsertionIndexPath();
|
|
346
|
+
const emoji = (0, get_emoji_for_tool_type_1.default)(tool_type_1.default.TODO);
|
|
347
|
+
return `
|
|
348
|
+
<td>
|
|
349
|
+
<a href="/actions?path=${path}&editing=${editing}&action_type=${action_type_1.default.ADD_BLOCK}&block_type=${block_type_1.default.TODO}&index_path=${index_path}" class="squarelink">
|
|
350
|
+
${emoji}
|
|
351
|
+
</a>
|
|
352
|
+
</td>
|
|
353
|
+
`;
|
|
354
|
+
}
|
|
355
|
+
serializeSettingsTool() {
|
|
356
|
+
return `
|
|
357
|
+
<td>
|
|
358
|
+
<a href="/settings" class="squarelink">
|
|
359
|
+
${emoji_1.default.GEAR}
|
|
360
|
+
</a>
|
|
361
|
+
</td>
|
|
362
|
+
`;
|
|
363
|
+
}
|
|
364
|
+
serializeSections() {
|
|
365
|
+
const page = this.getResult();
|
|
366
|
+
const { path, blocks } = page;
|
|
367
|
+
const elements = [];
|
|
368
|
+
const editing = this.isEditing();
|
|
369
|
+
const hidden_class = editing ? '' : 'hidden';
|
|
370
|
+
elements.push(`
|
|
371
|
+
<a data-role="add_block_link" class="biglink grey mt-16 mb-16 ${hidden_class}" href="/actions?path=${path}&editing=${editing}&action_type=${action_type_1.default.ADD_BLOCK}&index_path=0">+</a>
|
|
372
|
+
`);
|
|
373
|
+
blocks.forEach((block, index) => {
|
|
374
|
+
if (block.hidden && !editing) {
|
|
375
|
+
return;
|
|
376
|
+
}
|
|
377
|
+
const serialized_block = this.serializeBlock(block, index);
|
|
378
|
+
elements.push(serialized_block);
|
|
379
|
+
elements.push(`
|
|
380
|
+
<a data-role="add_block_link" class="biglink grey mt-16 mb-16 ${hidden_class}" href="/actions?path=${path}&editing=${editing}&action_type=${action_type_1.default.ADD_BLOCK}&index_path=${index + 1}">+</a>
|
|
381
|
+
`);
|
|
382
|
+
});
|
|
383
|
+
if (this.shouldPrintRawConfig()) {
|
|
384
|
+
const raw_page = JSON.stringify(page, null, 2);
|
|
385
|
+
elements.push(`
|
|
386
|
+
<section class="grey">
|
|
387
|
+
<details>
|
|
388
|
+
<summary>raw config:</summary>
|
|
389
|
+
<pre>${raw_page}</pre>
|
|
390
|
+
</details>
|
|
391
|
+
</section>
|
|
392
|
+
`);
|
|
393
|
+
}
|
|
394
|
+
return elements.join('\n');
|
|
395
|
+
}
|
|
396
|
+
getInsertionIndexPath() {
|
|
397
|
+
const { blocks } = this.getResult();
|
|
398
|
+
let index = 0;
|
|
399
|
+
while (index < blocks.length) {
|
|
400
|
+
const block = blocks[index];
|
|
401
|
+
const { block_type } = block;
|
|
402
|
+
if (block_type !== block_type_1.default.HEADER) {
|
|
403
|
+
break;
|
|
404
|
+
}
|
|
405
|
+
index++;
|
|
406
|
+
}
|
|
407
|
+
return (0, create_index_path_1.default)([index]);
|
|
408
|
+
}
|
|
409
|
+
shouldPrintRawConfig() {
|
|
410
|
+
if (!this.isLoggedIn()) {
|
|
411
|
+
return false;
|
|
412
|
+
}
|
|
413
|
+
return false;
|
|
414
|
+
}
|
|
415
|
+
serializeBlock(block, index) {
|
|
416
|
+
const editing = this.isEditing();
|
|
417
|
+
const { path } = this.getResult();
|
|
418
|
+
const { target_index_path, roles, account, creator_usernames } = this.getMetadata();
|
|
419
|
+
const referrer_url = this.getReferrerUrl();
|
|
420
|
+
const index_path = (0, create_index_path_1.default)([index]);
|
|
421
|
+
const { creator_id } = block;
|
|
422
|
+
const creator_username = creator_usernames[creator_id];
|
|
423
|
+
if (creator_username === undefined) {
|
|
424
|
+
throw new errors_1.InvariantViolation(`
|
|
425
|
+
Tried to read username for creator id ${creator_id},
|
|
426
|
+
but it was not set
|
|
427
|
+
`);
|
|
428
|
+
}
|
|
429
|
+
const block_metadata = {
|
|
430
|
+
editing,
|
|
431
|
+
page_path: path,
|
|
432
|
+
roles,
|
|
433
|
+
account,
|
|
434
|
+
index,
|
|
435
|
+
referrer_url,
|
|
436
|
+
index_path,
|
|
437
|
+
target_index_path,
|
|
438
|
+
creator_username
|
|
439
|
+
};
|
|
440
|
+
const session = this.getSession();
|
|
441
|
+
const factory = new block_serializer_1.default(block, block_metadata, session);
|
|
442
|
+
const serializer = factory.create();
|
|
443
|
+
return serializer.serializeContent();
|
|
444
|
+
}
|
|
445
|
+
isEditing() {
|
|
446
|
+
const { editing } = this.getMetadata();
|
|
447
|
+
return editing;
|
|
448
|
+
}
|
|
449
|
+
getMetadata() {
|
|
450
|
+
return this.metadata;
|
|
451
|
+
}
|
|
452
|
+
}
|
|
453
|
+
exports.default = PageResultSerializer;
|
|
454
|
+
//# sourceMappingURL=page.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"page.js","sourceRoot":"","sources":["../../../../src/server/serializer/page.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import PageType from './../../client/enum/page-type';
|
|
2
|
+
import BaseResultSerializer from './base';
|
|
3
|
+
import AccountSettings from './../../type/account-settings';
|
|
4
|
+
declare class SettingsResultSerializer extends BaseResultSerializer<AccountSettings> {
|
|
5
|
+
protected getTitle(): string;
|
|
6
|
+
protected serializeSections(): string;
|
|
7
|
+
protected getPageType(): PageType;
|
|
8
|
+
}
|
|
9
|
+
export default SettingsResultSerializer;
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const emoji_1 = __importDefault(require("./../../enum/emoji.js"));
|
|
7
|
+
const tool_type_1 = __importDefault(require("./../../enum/tool-type.js"));
|
|
8
|
+
const page_type_1 = __importDefault(require("./../../client/enum/page-type.js"));
|
|
9
|
+
const base_1 = __importDefault(require("./base.js"));
|
|
10
|
+
const time_place_options_1 = __importDefault(require("./common/time-place-options.js"));
|
|
11
|
+
const get_emoji_for_tool_type_1 = __importDefault(require("./../utility/get-emoji-for-tool-type.js"));
|
|
12
|
+
class SettingsResultSerializer extends base_1.default {
|
|
13
|
+
getTitle() {
|
|
14
|
+
return 'settings';
|
|
15
|
+
}
|
|
16
|
+
serializeSections() {
|
|
17
|
+
const { tools, default_time_place_visibility } = this.getResult();
|
|
18
|
+
const tool_headers = Object.values(tool_type_1.default).map((tool_type) => {
|
|
19
|
+
const emoji = (0, get_emoji_for_tool_type_1.default)(tool_type);
|
|
20
|
+
return `
|
|
21
|
+
<td>
|
|
22
|
+
<label for="tool-type-${tool_type}">
|
|
23
|
+
<span class="text-very-large">${emoji}</span>
|
|
24
|
+
</label>
|
|
25
|
+
</td>
|
|
26
|
+
`;
|
|
27
|
+
});
|
|
28
|
+
const tool_checkboxes = Object.values(tool_type_1.default).map((tool_type) => {
|
|
29
|
+
const checked = tools.includes(tool_type) ? 'checked' : '';
|
|
30
|
+
return `
|
|
31
|
+
<td>
|
|
32
|
+
<input name="tool_types" id="tool-type-${tool_type}" type="checkbox" value="${tool_type}" ${checked} />
|
|
33
|
+
</td>
|
|
34
|
+
`;
|
|
35
|
+
});
|
|
36
|
+
const time_place_options = (0, time_place_options_1.default)(default_time_place_visibility);
|
|
37
|
+
return `
|
|
38
|
+
<section class="grey">
|
|
39
|
+
<form action="/settings" method="POST">
|
|
40
|
+
<fieldset>
|
|
41
|
+
<legend>username:</legend>
|
|
42
|
+
<input type="text" name="username" placeholder="username" autofocus />
|
|
43
|
+
</fieldset>
|
|
44
|
+
|
|
45
|
+
<fieldset>
|
|
46
|
+
<legend>toolbar:</legend>
|
|
47
|
+
|
|
48
|
+
<table class="fixed">
|
|
49
|
+
<thead>
|
|
50
|
+
<tr>
|
|
51
|
+
${tool_headers.join('\n')}
|
|
52
|
+
</tr>
|
|
53
|
+
</thead>
|
|
54
|
+
<tbody>
|
|
55
|
+
<tr>
|
|
56
|
+
${tool_checkboxes.join('\n')}
|
|
57
|
+
</tr>
|
|
58
|
+
</tbody>
|
|
59
|
+
</table>
|
|
60
|
+
</fieldset>
|
|
61
|
+
|
|
62
|
+
<fieldset>
|
|
63
|
+
<legend>default time/place visibility:</legend>
|
|
64
|
+
|
|
65
|
+
${time_place_options}
|
|
66
|
+
</fieldset>
|
|
67
|
+
|
|
68
|
+
<button class="mt-32 biglink green" type="submit">
|
|
69
|
+
submit ${emoji_1.default.RIGHT_ARROW_UNICODE}
|
|
70
|
+
</button>
|
|
71
|
+
</form>
|
|
72
|
+
</section>
|
|
73
|
+
`;
|
|
74
|
+
}
|
|
75
|
+
getPageType() {
|
|
76
|
+
return page_type_1.default.SETTINGS;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
exports.default = SettingsResultSerializer;
|
|
80
|
+
//# sourceMappingURL=settings.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"settings.js","sourceRoot":"","sources":["../../../../src/server/serializer/settings.ts"],"names":[],"mappings":";;;;;AAAA,uDAA+B;AAC/B,+DAAsC;AACtC,sEAA6C;AAC7C,kEAA0D;AAE1D,qGAAoF;AACpF,qGAAyE;AAEzE,MAAM,wBAAyB,SAAQ,cAAqC;IACjE,QAAQ;QACjB,OAAO,UAAU,CAAC;IACnB,CAAC;IAES,iBAAiB;QAC1B,MAAM,EAAC,KAAK,EAAE,6BAA6B,EAAC,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QAEhE,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,mBAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE;YAC9D,MAAM,KAAK,GAAG,IAAA,iCAAmB,EAAC,SAAS,CAAC,CAAC;YAE7C,OAAO;;6BAEmB,SAAS;sCACA,KAAK;;;IAGvC,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,CAAC,mBAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE;YACjE,MAAM,OAAO,GAAG,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;YAE3D,OAAO;;8CAEoC,SAAS,4BAA4B,SAAS,KAAK,OAAO;;IAEpG,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,MAAM,kBAAkB,GAAG,IAAA,4BAAyB,EAAC,6BAA6B,CAAC,CAAC;QAEpF,OAAO;;;;;;;;;;;;;;WAcE,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC;;;;;WAKvB,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC;;;;;;;;;QAS7B,kBAAkB;;;;eAIX,eAAK,CAAC,mBAAmB;;;;GAIrC,CAAC;IACH,CAAC;IAES,WAAW;QACpB,OAAO,mBAAQ,CAAC,QAAQ,CAAC;IAC1B,CAAC;CACD;AAED,kBAAe,wBAAwB,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import Week from './../../type/week';
|
|
2
|
+
import BaseResultSerializer from './base';
|
|
3
|
+
import PageType from './../../client/enum/page-type';
|
|
4
|
+
declare class WeekResultSerializer extends BaseResultSerializer<Week> {
|
|
5
|
+
protected serializeSections(): string;
|
|
6
|
+
protected getTitle(): string;
|
|
7
|
+
protected getPageType(): PageType;
|
|
8
|
+
private getTargetDate;
|
|
9
|
+
}
|
|
10
|
+
export default WeekResultSerializer;
|