@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.
Files changed (194) hide show
  1. package/dist/.last-compile-time +1 -1
  2. package/dist/.last-publish-time +1 -1
  3. package/dist/client.js +254 -47
  4. package/dist/src/client/enum/page-type.d.ts +3 -0
  5. package/dist/src/client/enum/page-type.js +3 -0
  6. package/dist/src/client/enum/page-type.js.map +1 -1
  7. package/dist/src/client/factory/page.js +6 -0
  8. package/dist/src/client/factory/page.js.map +1 -1
  9. package/dist/src/client/page/confirm-hide-block.d.ts +7 -0
  10. package/dist/src/client/page/confirm-hide-block.js +28 -0
  11. package/dist/src/client/page/confirm-hide-block.js.map +1 -0
  12. package/dist/src/client/page/history.d.ts +16 -0
  13. package/dist/src/client/page/history.js +126 -0
  14. package/dist/src/client/page/history.js.map +1 -0
  15. package/dist/src/client/page/select-block-destination.d.ts +5 -0
  16. package/dist/src/client/page/select-block-destination.js +12 -0
  17. package/dist/src/client/page/select-block-destination.js.map +1 -0
  18. package/dist/src/client/page/view-custom.d.ts +3 -1
  19. package/dist/src/client/page/view-custom.js +60 -26
  20. package/dist/src/client/page/view-custom.js.map +1 -1
  21. package/dist/src/client/utility/get-block-activation-href.d.ts +2 -0
  22. package/dist/src/client/utility/get-block-activation-href.js +25 -0
  23. package/dist/src/client/utility/get-block-activation-href.js.map +1 -0
  24. package/dist/src/enum/action-type.d.ts +2 -0
  25. package/dist/src/enum/action-type.js +2 -0
  26. package/dist/src/enum/action-type.js.map +1 -1
  27. package/dist/src/enum/emoji.d.ts +1 -0
  28. package/dist/src/enum/emoji.js +1 -0
  29. package/dist/src/enum/emoji.js.map +1 -1
  30. package/dist/src/enum/tool-type.d.ts +1 -0
  31. package/dist/src/enum/tool-type.js +1 -0
  32. package/dist/src/enum/tool-type.js.map +1 -1
  33. package/dist/src/lib/server/http/endpoint.js +1 -1
  34. package/dist/src/lib/server/http/endpoint.js.map +1 -1
  35. package/dist/src/server/endpoint/abstract-page.d.ts +1 -1
  36. package/dist/src/server/endpoint/abstract-page.js +21 -3
  37. package/dist/src/server/endpoint/abstract-page.js.map +1 -1
  38. package/dist/src/server/endpoint/action/create.d.ts +3 -1
  39. package/dist/src/server/endpoint/action/create.js +61 -25
  40. package/dist/src/server/endpoint/action/create.js.map +1 -1
  41. package/dist/src/server/endpoint/action/get.d.ts +3 -1
  42. package/dist/src/server/endpoint/action/get.js +47 -1
  43. package/dist/src/server/endpoint/action/get.js.map +1 -1
  44. package/dist/src/server/endpoint/history.d.ts +13 -0
  45. package/dist/src/server/endpoint/history.js +61 -0
  46. package/dist/src/server/endpoint/history.js.map +1 -0
  47. package/dist/src/server/endpoint/login.d.ts +1 -1
  48. package/dist/src/server/endpoint/login.js +1 -1
  49. package/dist/src/server/endpoint/login.js.map +1 -1
  50. package/dist/src/server/endpoint/logout.js +7 -2
  51. package/dist/src/server/endpoint/logout.js.map +1 -1
  52. package/dist/src/server/endpoint/month.d.ts +1 -1
  53. package/dist/src/server/endpoint/month.js +1 -1
  54. package/dist/src/server/endpoint/month.js.map +1 -1
  55. package/dist/src/server/endpoint/settings/get.d.ts +1 -1
  56. package/dist/src/server/endpoint/settings/get.js +1 -1
  57. package/dist/src/server/endpoint/settings/get.js.map +1 -1
  58. package/dist/src/server/endpoint/week.d.ts +1 -1
  59. package/dist/src/server/endpoint/week.js +1 -1
  60. package/dist/src/server/endpoint/week.js.map +1 -1
  61. package/dist/src/server/endpoint/year.d.ts +1 -1
  62. package/dist/src/server/endpoint/year.js +1 -1
  63. package/dist/src/server/endpoint/year.js.map +1 -1
  64. package/dist/src/server/factory/block-result-serializer.d.ts +1 -1
  65. package/dist/src/server/factory/block-result-serializer.js +14 -14
  66. package/dist/src/server/factory/block-result-serializer.js.map +1 -1
  67. package/dist/src/server/factory/block-serializer.d.ts +15 -0
  68. package/dist/src/server/factory/block-serializer.js +80 -0
  69. package/dist/src/server/factory/block-serializer.js.map +1 -0
  70. package/dist/src/server/middleware/error-handler.js +14 -4
  71. package/dist/src/server/middleware/error-handler.js.map +1 -1
  72. package/dist/src/server/operation/add-block.js +1 -0
  73. package/dist/src/server/operation/add-block.js.map +1 -1
  74. package/dist/src/server/operation/delete-block.d.ts +5 -3
  75. package/dist/src/server/operation/delete-block.js +30 -9
  76. package/dist/src/server/operation/delete-block.js.map +1 -1
  77. package/dist/src/server/operation/destroy-session.js +13 -1
  78. package/dist/src/server/operation/destroy-session.js.map +1 -1
  79. package/dist/src/server/operation/find-account.js +3 -2
  80. package/dist/src/server/operation/find-account.js.map +1 -1
  81. package/dist/src/server/operation/hide-block.d.ts +14 -0
  82. package/dist/src/server/operation/hide-block.js +55 -0
  83. package/dist/src/server/operation/hide-block.js.map +1 -0
  84. package/dist/src/server/operation/load-page.d.ts +3 -1
  85. package/dist/src/server/operation/load-page.js +99 -39
  86. package/dist/src/server/operation/load-page.js.map +1 -1
  87. package/dist/src/server/operation/move-block.d.ts +16 -0
  88. package/dist/src/server/operation/move-block.js +101 -0
  89. package/dist/src/server/operation/move-block.js.map +1 -0
  90. package/dist/src/server/operation/store-file.d.ts +14 -0
  91. package/dist/src/server/operation/store-file.js +83 -0
  92. package/dist/src/server/operation/store-file.js.map +1 -0
  93. package/dist/src/server/operation/update-block.js +4 -4
  94. package/dist/src/server/operation/update-block.js.map +1 -1
  95. package/dist/src/server/serializer/action.d.ts +40 -0
  96. package/dist/src/server/serializer/action.js +940 -0
  97. package/dist/src/server/serializer/action.js.map +1 -0
  98. package/dist/src/server/serializer/base.d.ts +31 -0
  99. package/dist/src/server/serializer/base.js +1222 -0
  100. package/dist/src/server/serializer/base.js.map +1 -0
  101. package/dist/src/server/serializer/block/audio.d.ts +6 -0
  102. package/dist/src/server/serializer/block/audio.js +26 -0
  103. package/dist/src/server/serializer/block/audio.js.map +1 -0
  104. package/dist/src/server/serializer/block/background.d.ts +6 -0
  105. package/dist/src/server/serializer/block/background.js +22 -0
  106. package/dist/src/server/serializer/block/background.js.map +1 -0
  107. package/dist/src/server/serializer/block/calendar.d.ts +7 -0
  108. package/dist/src/server/serializer/block/calendar.js +140 -0
  109. package/dist/src/server/serializer/block/calendar.js.map +1 -0
  110. package/dist/src/server/serializer/block/directory.d.ts +7 -0
  111. package/dist/src/server/serializer/block/directory.js +53 -0
  112. package/dist/src/server/serializer/block/directory.js.map +1 -0
  113. package/dist/src/server/serializer/block/ephemeral.d.ts +6 -0
  114. package/dist/src/server/serializer/block/ephemeral.js +16 -0
  115. package/dist/src/server/serializer/block/ephemeral.js.map +1 -0
  116. package/dist/src/server/serializer/block/folder.d.ts +14 -0
  117. package/dist/src/server/serializer/block/folder.js +145 -0
  118. package/dist/src/server/serializer/block/folder.js.map +1 -0
  119. package/dist/src/server/serializer/block/header.d.ts +6 -0
  120. package/dist/src/server/serializer/block/header.js +35 -0
  121. package/dist/src/server/serializer/block/header.js.map +1 -0
  122. package/dist/src/server/serializer/block/image.d.ts +6 -0
  123. package/dist/src/server/serializer/block/image.js +45 -0
  124. package/dist/src/server/serializer/block/image.js.map +1 -0
  125. package/dist/src/server/serializer/block/link.d.ts +6 -0
  126. package/dist/src/server/serializer/block/link.js +39 -0
  127. package/dist/src/server/serializer/block/link.js.map +1 -0
  128. package/dist/src/server/serializer/block/list.d.ts +13 -0
  129. package/dist/src/server/serializer/block/list.js +113 -0
  130. package/dist/src/server/serializer/block/list.js.map +1 -0
  131. package/dist/src/server/serializer/block/multi-column.d.ts +6 -0
  132. package/dist/src/server/serializer/block/multi-column.js +78 -0
  133. package/dist/src/server/serializer/block/multi-column.js.map +1 -0
  134. package/dist/src/server/serializer/block/note.d.ts +6 -0
  135. package/dist/src/server/serializer/block/note.js +40 -0
  136. package/dist/src/server/serializer/block/note.js.map +1 -0
  137. package/dist/src/server/serializer/block/parameter.d.ts +6 -0
  138. package/dist/src/server/serializer/block/parameter.js +13 -0
  139. package/dist/src/server/serializer/block/parameter.js.map +1 -0
  140. package/dist/src/server/serializer/block/todo.d.ts +6 -0
  141. package/dist/src/server/serializer/block/todo.js +76 -0
  142. package/dist/src/server/serializer/block/todo.js.map +1 -0
  143. package/dist/src/server/serializer/block/whitespace.d.ts +6 -0
  144. package/dist/src/server/serializer/block/whitespace.js +17 -0
  145. package/dist/src/server/serializer/block/whitespace.js.map +1 -0
  146. package/dist/src/server/serializer/block.d.ts +27 -0
  147. package/dist/src/server/serializer/block.js +226 -0
  148. package/dist/src/server/serializer/block.js.map +1 -0
  149. package/dist/src/server/serializer/common/time-place-options.d.ts +2 -0
  150. package/dist/src/server/serializer/common/time-place-options.js +34 -0
  151. package/dist/src/server/serializer/common/time-place-options.js.map +1 -0
  152. package/dist/src/server/serializer/history.d.ts +19 -0
  153. package/dist/src/server/serializer/history.js +77 -0
  154. package/dist/src/server/serializer/history.js.map +1 -0
  155. package/dist/src/server/serializer/login.d.ts +12 -0
  156. package/dist/src/server/serializer/login.js +54 -0
  157. package/dist/src/server/serializer/login.js.map +1 -0
  158. package/dist/src/server/serializer/month.d.ts +10 -0
  159. package/dist/src/server/serializer/month.js +160 -0
  160. package/dist/src/server/serializer/month.js.map +1 -0
  161. package/dist/src/server/serializer/page.d.ts +47 -0
  162. package/dist/src/server/serializer/page.js +454 -0
  163. package/dist/src/server/serializer/page.js.map +1 -0
  164. package/dist/src/server/serializer/settings.d.ts +9 -0
  165. package/dist/src/server/serializer/settings.js +80 -0
  166. package/dist/src/server/serializer/settings.js.map +1 -0
  167. package/dist/src/server/serializer/week.d.ts +10 -0
  168. package/dist/src/server/serializer/week.js +175 -0
  169. package/dist/src/server/serializer/week.js.map +1 -0
  170. package/dist/src/server/serializer/year.d.ts +10 -0
  171. package/dist/src/server/serializer/year.js +142 -0
  172. package/dist/src/server/serializer/year.js.map +1 -0
  173. package/dist/src/server/utility/get-emoji-for-tool-type.js +1 -0
  174. package/dist/src/server/utility/get-emoji-for-tool-type.js.map +1 -1
  175. package/dist/src/server.js +2 -0
  176. package/dist/src/server.js.map +1 -1
  177. package/dist/src/type/account-settings.d.ts +3 -2
  178. package/dist/src/type/action/hide-block.d.ts +9 -0
  179. package/dist/src/type/action/hide-block.js +3 -0
  180. package/dist/src/type/action/hide-block.js.map +1 -0
  181. package/dist/src/type/action/move-block.d.ts +10 -0
  182. package/dist/src/type/action/move-block.js +3 -0
  183. package/dist/src/type/action/move-block.js.map +1 -0
  184. package/dist/src/type/block/audio.d.ts +2 -0
  185. package/dist/src/type/block/image.d.ts +2 -0
  186. package/dist/src/type/block.d.ts +2 -2
  187. package/dist/src/type/history-item.d.ts +5 -0
  188. package/dist/src/type/history-item.js +3 -0
  189. package/dist/src/type/history-item.js.map +1 -0
  190. package/dist/src/type/page.d.ts +2 -0
  191. package/dist/test/unit/server/operation/promote-block.js +11 -0
  192. package/dist/test/unit/server/operation/promote-block.js.map +1 -1
  193. package/dist/tsconfig.tsbuildinfo +1 -1
  194. package/package.json +1 -1
@@ -0,0 +1,226 @@
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 server_1 = require("./../../lib/server/index.js");
7
+ const errors_1 = require("./../../lib/errors/index.js");
8
+ const color_1 = __importDefault(require("./../../enum/color.js"));
9
+ const block_type_1 = __importDefault(require("./../../enum/block-type.js"));
10
+ const role_matches_1 = __importDefault(require("./../utility/role-matches.js"));
11
+ const creator_1 = __importDefault(require("./../../constant/role/creator.js"));
12
+ const unknown_1 = __importDefault(require("./../../constant/role/unknown.js"));
13
+ const get_url_for_role_1 = __importDefault(require("./../utility/get-url-for-role.js"));
14
+ const permission_type_1 = __importDefault(require("./../../enum/permission-type.js"));
15
+ const extract_role_1 = __importDefault(require("./../utility/extract-role.js"));
16
+ const public_1 = __importDefault(require("./../../constant/role/public.js"));
17
+ const get_hex_for_color_1 = __importDefault(require("./../utility/get-hex-for-color.js"));
18
+ const satisfies_role_1 = __importDefault(require("./../utility/satisfies-role.js"));
19
+ const action_type_1 = __importDefault(require("./../../enum/action-type.js"));
20
+ const emoji_1 = __importDefault(require("./../../enum/emoji.js"));
21
+ const get_block_permissions_1 = __importDefault(require("./../utility/get-block-permissions.js"));
22
+ const path_is_date_1 = __importDefault(require("./../utility/path-is-date.js"));
23
+ const get_short_label_for_date_1 = __importDefault(require("./../utility/get-short-label-for-date.js"));
24
+ const get_element_id_for_block_1 = __importDefault(require("./../utility/get-element-id-for-block.js"));
25
+ const path_to_date_1 = __importDefault(require("./../utility/path-to-date.js"));
26
+ const create_date_1 = __importDefault(require("./../utility/create-date.js"));
27
+ const dates_are_on_the_same_day_1 = __importDefault(require("./../utility/dates-are-on-the-same-day.js"));
28
+ class BlockResultSerializer extends server_1.HtmlResultSerializer {
29
+ constructor(result, metadata, session) {
30
+ super(result);
31
+ this.metadata = metadata;
32
+ this.session = session;
33
+ }
34
+ getTitle() {
35
+ throw new errors_1.InvariantViolation(`
36
+ Tried to call getTitle() on BlockResultSerializer,
37
+ but rendering page-level blocks is not supported
38
+ `);
39
+ }
40
+ printWarning(message) {
41
+ return `
42
+ <section class="warning">
43
+ <h2 class="text-yellow">WARNING</h2>
44
+ ${message}
45
+ </section>
46
+ `;
47
+ }
48
+ serializePermissionDenied() {
49
+ const message = this.getPermissionDeniedMessage();
50
+ return this.wrapSection(`
51
+ <span class="text-smaller three-quarter-opacity">
52
+ ${emoji_1.default.LOCKED}
53
+ ${message}
54
+ </span>
55
+ `);
56
+ }
57
+ getPermissionDeniedMessage() {
58
+ const required_role = this.getRequiredReadRole();
59
+ const { block_type } = this.getResult();
60
+ if ((0, role_matches_1.default)(required_role, unknown_1.default)) {
61
+ return `
62
+ this ${block_type} has been configured with an unsupported role
63
+ `;
64
+ }
65
+ const { creator_username } = this.getMetadata();
66
+ if ((0, role_matches_1.default)(required_role, creator_1.default)) {
67
+ return `
68
+ <a href="/accounts/${creator_username}">[${creator_username}]</a>
69
+ has marked this ${block_type} as private
70
+ `;
71
+ }
72
+ const role_url = (0, get_url_for_role_1.default)(required_role);
73
+ return `
74
+ only
75
+ <a href="${role_url}">[${required_role.name}]</a>
76
+ or higher can view this ${block_type}
77
+ `;
78
+ }
79
+ isLoggedIn() {
80
+ const { account_id } = this.getSession();
81
+ return account_id !== null;
82
+ }
83
+ getSession() {
84
+ return this.session;
85
+ }
86
+ canRead() {
87
+ const { roles } = this.getMetadata();
88
+ const actual_role = this.getAccountRole();
89
+ const required_role = this.getRequiredReadRole();
90
+ return (0, satisfies_role_1.default)(roles, actual_role, required_role);
91
+ }
92
+ getRequiredReadRole() {
93
+ const block = this.getResult();
94
+ const permissions = (0, get_block_permissions_1.default)(block);
95
+ const role_key = permissions[permission_type_1.default.READ];
96
+ const { roles } = this.getMetadata();
97
+ return (0, extract_role_1.default)(roles, role_key);
98
+ }
99
+ wrapSection(section_contents) {
100
+ const page_path = this.getPagePath();
101
+ const block = this.getResult();
102
+ const { created_at, block_type } = block;
103
+ const border_color = block.color || color_1.default.GREY;
104
+ const created_date = (0, create_date_1.default)(created_at);
105
+ const hours = created_date.getHours();
106
+ const minutes = created_date.getMinutes();
107
+ const suffix = hours >= 12 ? 'pm' : 'am';
108
+ const truncated_hours = hours % 12 || 12;
109
+ const padded_minutes = minutes.toString().padStart(2, '0');
110
+ const time_string = `${truncated_hours}:${padded_minutes} ${suffix}`;
111
+ const datetime_attribute = created_date.toString();
112
+ let date_prefix = (0, get_short_label_for_date_1.default)(created_date);
113
+ if ((0, path_is_date_1.default)(page_path)) {
114
+ const page_date = (0, path_to_date_1.default)(page_path);
115
+ if ((0, dates_are_on_the_same_day_1.default)(page_date, created_date)) {
116
+ date_prefix = '';
117
+ }
118
+ }
119
+ const today = (0, create_date_1.default)();
120
+ if ((0, dates_are_on_the_same_day_1.default)(created_date, today)) {
121
+ date_prefix = '';
122
+ }
123
+ const is_folder = block_type === block_type_1.default.FOLDER;
124
+ const border_hex = (0, get_hex_for_color_1.default)(border_color);
125
+ const style_attribute = is_folder ? '' : `border-color:${border_hex}`;
126
+ const serialized_time = `
127
+ <time style="${style_attribute}" datetime="${datetime_attribute}">
128
+ ${date_prefix}${time_string}
129
+ </time>
130
+ `;
131
+ const time_class = this.shouldHideTime() ? '' : 'with-time';
132
+ const editing = this.isEditing();
133
+ const reticule = '<div class="focus-reticule flashing"></div>';
134
+ const cursor = `<div class="focus-cursor">${emoji_1.default.RIGHT_ARROW_UNICODE}</div>`;
135
+ const metadata = this.getMetadata();
136
+ const section_id = (0, get_element_id_for_block_1.default)(block, metadata);
137
+ const condensed_class = this.isCondensed() ? 'condensed' : '';
138
+ const selected_class = this.isFocusedBlock() ? 'selected' : '';
139
+ const editing_class = editing ? 'editing' : '';
140
+ const { index_path } = metadata;
141
+ return `
142
+ <section id="${section_id}" class="block ${block_type} ${selected_class} ${editing_class} ${time_class} ${condensed_class} focus-reticule-container" style="${style_attribute}" data-index-path="${index_path}" data-block-type="${block_type}">
143
+ ${reticule}
144
+ ${serialized_time}
145
+ ${cursor}
146
+ ${section_contents}
147
+
148
+ <nav class="left">
149
+ <form id="${section_id}-promote" method="post" action="/actions?editing=${editing}">
150
+ <input type="hidden" name="path" value="${page_path}" />
151
+ <input type="hidden" name="action_type" value="${action_type_1.default.PROMOTE_BLOCK}" />
152
+ <input type="hidden" name="index_path" value="${index_path}" />
153
+
154
+ <button class="biglink" type="submit">⬆️</button>
155
+ </form>
156
+
157
+ <form id="${section_id}-demote" method="post" action="/actions?editing=${editing}">
158
+ <input type="hidden" name="path" value="${page_path}" />
159
+ <input type="hidden" name="action_type" value="${action_type_1.default.DEMOTE_BLOCK}" />
160
+ <input type="hidden" name="index_path" value="${index_path}" />
161
+
162
+ <button class="biglink" type="submit">⬇️</button>
163
+ </form>
164
+ </nav>
165
+
166
+ <nav class="right">
167
+ <a id="${section_id}-move" class="biglink hidden" href="/actions?editing=${editing}&path=${page_path}&action_type=${action_type_1.default.MOVE_BLOCK}&index_path=${index_path}">🔁</a>
168
+ <a id="${section_id}-hide" class="biglink hidden" href="/actions?editing=${editing}&path=${page_path}&action_type=${action_type_1.default.HIDE_BLOCK}&index_path=${index_path}">❌</a>
169
+ <a id="${section_id}-delete" class="biglink" href="/actions?editing=${editing}&path=${page_path}&action_type=${action_type_1.default.DELETE_BLOCK}&index_path=${index_path}">❌</a>
170
+ <a id="${section_id}-edit" class="biglink" href="/actions?editing=${editing}&path=${page_path}&action_type=${action_type_1.default.EDIT_BLOCK}&index_path=${index_path}">⚙️</a>
171
+ </nav>
172
+ </section>
173
+ `;
174
+ }
175
+ isEditing() {
176
+ const { editing } = this.getMetadata();
177
+ return editing;
178
+ }
179
+ shouldHideTime() {
180
+ const { show_time } = this.getResult();
181
+ if (show_time !== undefined) {
182
+ return show_time === false;
183
+ }
184
+ const { block_type } = this.getResult();
185
+ switch (block_type) {
186
+ case block_type_1.default.IMAGE:
187
+ case block_type_1.default.AUDIO:
188
+ case block_type_1.default.NOTE:
189
+ return false;
190
+ default:
191
+ return true;
192
+ }
193
+ }
194
+ getPagePath() {
195
+ const { page_path } = this.getMetadata();
196
+ return page_path;
197
+ }
198
+ isFocusedBlock() {
199
+ const { target_index_path, index_path } = this.getMetadata();
200
+ return target_index_path === index_path;
201
+ }
202
+ getMetadata() {
203
+ return this.metadata;
204
+ }
205
+ isCondensed() {
206
+ const { block_type } = this.getResult();
207
+ switch (block_type) {
208
+ case block_type_1.default.LINK:
209
+ case block_type_1.default.MULTI_COLUMN:
210
+ return true;
211
+ default:
212
+ return false;
213
+ }
214
+ }
215
+ getAccountRole() {
216
+ const { account } = this.getMetadata();
217
+ if (account === null) {
218
+ return public_1.default;
219
+ }
220
+ const { role_key } = account;
221
+ const { roles } = this.getMetadata();
222
+ return (0, extract_role_1.default)(roles, role_key);
223
+ }
224
+ }
225
+ exports.default = BlockResultSerializer;
226
+ //# sourceMappingURL=block.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"block.js","sourceRoot":"","sources":["../../../../src/server/serializer/block.ts"],"names":[],"mappings":";;;;;AAAA,uCAAgD;AAChD,uCAA8C;AAK9C,uDAA+B;AAC/B,iEAAwC;AAExC,+EAAsD;AACtD,oEAAgD;AAChD,oEAAgD;AAChD,uFAA4D;AAC5D,2EAAkD;AAClD,+EAAsD;AACtD,kEAA8C;AAC9C,yFAA8D;AAC9D,mFAA0D;AAC1D,mEAA0C;AAC1C,uDAA+B;AAC/B,iGAAuE;AACvE,+EAAqD;AACrD,uGAA2E;AAC3E,uGAA2E;AAC3E,+EAAqD;AACrD,6EAAoD;AACpD,yGAA4E;AAE5E,MAAe,qBAAuC,SAAQ,6BAAuB;IAIpF,YAAmB,MAAS,EAAE,QAAuB,EAAE,OAAgB;QACtE,KAAK,CAAC,MAAM,CAAC,CAAC;QAEd,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACxB,CAAC;IAES,QAAQ;QACjB,MAAM,IAAI,2BAAkB,CAAC;;;GAG5B,CAAC,CAAC;IACJ,CAAC;IAES,YAAY,CAAC,OAAe;QACrC,OAAO;;;MAGH,OAAO;;GAEV,CAAC;IACH,CAAC;IAES,yBAAyB;QAClC,MAAM,OAAO,GAAG,IAAI,CAAC,0BAA0B,EAAE,CAAC;QAElD,OAAO,IAAI,CAAC,WAAW,CAAC;;MAEpB,eAAK,CAAC,MAAM;MACZ,OAAO;;GAEV,CAAC,CAAC;IACJ,CAAC;IAES,0BAA0B;QACnC,MAAM,aAAa,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC;QACjD,MAAM,EAAC,UAAU,EAAC,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QAEtC,IAAI,IAAA,sBAAW,EAAC,aAAa,EAAE,iBAAW,CAAC,EAAE,CAAC;YAC7C,OAAO;WACC,UAAU;IACjB,CAAC;QACH,CAAC;QAED,MAAM,EAAC,gBAAgB,EAAC,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QAE9C,IAAI,IAAA,sBAAW,EAAC,aAAa,EAAE,iBAAW,CAAC,EAAE,CAAC;YAC7C,OAAO;yBACe,gBAAgB,MAAM,gBAAgB;sBACzC,UAAU;IAC5B,CAAC;QACH,CAAC;QAED,MAAM,QAAQ,GAAG,IAAA,0BAAa,EAAC,aAAa,CAAC,CAAC;QAE9C,OAAO;;cAEK,QAAQ,MAAM,aAAa,CAAC,IAAI;6BACjB,UAAU;GACpC,CAAC;IACH,CAAC;IAES,UAAU;QACnB,MAAM,EAAC,UAAU,EAAC,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QAEvC,OAAO,UAAU,KAAK,IAAI,CAAC;IAC5B,CAAC;IAES,UAAU;QACnB,OAAO,IAAI,CAAC,OAAO,CAAC;IACrB,CAAC;IAES,OAAO;QAChB,MAAM,EAAC,KAAK,EAAC,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QACnC,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QAC1C,MAAM,aAAa,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAEjD,OAAO,IAAA,wBAAa,EAAC,KAAK,EAAE,WAAW,EAAE,aAAa,CAAC,CAAC;IACzD,CAAC;IAES,mBAAmB;QAC5B,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QAC/B,MAAM,WAAW,GAAG,IAAA,+BAAmB,EAAC,KAAK,CAAC,CAAC;QAC/C,MAAM,QAAQ,GAAG,WAAW,CAAC,yBAAc,CAAC,IAAI,CAAC,CAAC;QAClD,MAAM,EAAC,KAAK,EAAC,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QAEnC,OAAO,IAAA,sBAAW,EAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IACrC,CAAC;IAES,WAAW,CAAC,gBAAwB;QAC7C,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QACrC,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QAC/B,MAAM,EAAC,UAAU,EAAE,UAAU,EAAC,GAAG,KAAK,CAAC;QACvC,MAAM,YAAY,GAAG,KAAK,CAAC,KAAK,IAAI,eAAK,CAAC,IAAI,CAAC;QAC/C,MAAM,YAAY,GAAG,IAAA,qBAAU,EAAC,UAAU,CAAC,CAAC;QAC5C,MAAM,KAAK,GAAG,YAAY,CAAC,QAAQ,EAAE,CAAC;QACtC,MAAM,OAAO,GAAG,YAAY,CAAC,UAAU,EAAE,CAAC;QAC1C,MAAM,MAAM,GAAG,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;QACzC,MAAM,eAAe,GAAG,KAAK,GAAG,EAAE,IAAI,EAAE,CAAC;QACzC,MAAM,cAAc,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QAC3D,MAAM,WAAW,GAAG,GAAG,eAAe,IAAI,cAAc,IAAI,MAAM,EAAE,CAAC;QACrE,MAAM,kBAAkB,GAAG,YAAY,CAAC,QAAQ,EAAE,CAAC;QAEnD,IAAI,WAAW,GAAG,IAAA,kCAAoB,EAAC,YAAY,CAAC,CAAC;QAErD,IAAI,IAAA,sBAAU,EAAC,SAAS,CAAC,EAAE,CAAC;YAC3B,MAAM,SAAS,GAAG,IAAA,sBAAU,EAAC,SAAS,CAAC,CAAC;YAExC,IAAI,IAAA,mCAAoB,EAAC,SAAS,EAAE,YAAY,CAAC,EAAE,CAAC;gBACnD,WAAW,GAAG,EAAE,CAAC;YAClB,CAAC;QACF,CAAC;QAED,MAAM,KAAK,GAAG,IAAA,qBAAU,GAAE,CAAC;QAE3B,IAAI,IAAA,mCAAoB,EAAC,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC;YAC/C,WAAW,GAAG,EAAE,CAAC;QAClB,CAAC;QAED,MAAM,SAAS,GAAG,UAAU,KAAK,oBAAS,CAAC,MAAM,CAAC;QAClD,MAAM,UAAU,GAAG,IAAA,2BAAc,EAAC,YAAY,CAAC,CAAC;QAEhD,MAAM,eAAe,GAAG,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,gBAAgB,UAAU,EAAE,CAAC;QAEtE,MAAM,eAAe,GAAG;kBACR,eAAe,eAAe,kBAAkB;MAC5D,WAAW,GAAG,WAAW;;GAE5B,CAAC;QAEF,MAAM,UAAU,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC;QAC5D,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QACjC,MAAM,QAAQ,GAAG,6CAA6C,CAAC;QAC/D,MAAM,MAAM,GAAG,6BAA6B,eAAK,CAAC,mBAAmB,QAAQ,CAAC;QAC9E,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QACpC,MAAM,UAAU,GAAG,IAAA,kCAAoB,EAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QACzD,MAAM,eAAe,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC;QAC9D,MAAM,cAAc,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/D,MAAM,aAAa,GAAG,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/C,MAAM,EAAC,UAAU,EAAC,GAAG,QAAQ,CAAC;QAE9B,OAAO;kBACS,UAAU,kBAAkB,UAAU,IAAI,cAAc,IAAI,aAAa,IAAI,UAAU,IAAI,eAAe,qCAAqC,eAAe,sBAAsB,UAAU,sBAAsB,UAAU;MAC1O,QAAQ;MACR,eAAe;MACf,MAAM;MACN,gBAAgB;;;iBAGL,UAAU,oDAAoD,OAAO;gDACtC,SAAS;uDACF,qBAAU,CAAC,aAAa;sDACzB,UAAU;;;;;iBAK/C,UAAU,mDAAmD,OAAO;gDACrC,SAAS;uDACF,qBAAU,CAAC,YAAY;sDACxB,UAAU;;;;;;;cAOlD,UAAU,wDAAwD,OAAO,SAAS,SAAS,gBAAgB,qBAAU,CAAC,UAAU,eAAe,UAAU;cACzJ,UAAU,wDAAwD,OAAO,SAAS,SAAS,gBAAgB,qBAAU,CAAC,UAAU,eAAe,UAAU;cACzJ,UAAU,mDAAmD,OAAO,SAAS,SAAS,gBAAgB,qBAAU,CAAC,YAAY,eAAe,UAAU;cACtJ,UAAU,iDAAiD,OAAO,SAAS,SAAS,gBAAgB,qBAAU,CAAC,UAAU,eAAe,UAAU;;;GAG7J,CAAC;IACH,CAAC;IAEO,SAAS;QAChB,MAAM,EAAC,OAAO,EAAC,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QAErC,OAAO,OAAO,CAAC;IAChB,CAAC;IAEO,cAAc;QACrB,MAAM,EAAC,SAAS,EAAC,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QAErC,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;YAC7B,OAAO,SAAS,KAAK,KAAK,CAAC;QAC5B,CAAC;QAED,MAAM,EAAC,UAAU,EAAC,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QAEtC,QAAQ,UAAU,EAAE,CAAC;YACpB,KAAK,oBAAS,CAAC,KAAK,CAAC;YACrB,KAAK,oBAAS,CAAC,KAAK,CAAC;YACrB,KAAK,oBAAS,CAAC,IAAI;gBAClB,OAAO,KAAK,CAAC;YACd;gBACC,OAAO,IAAI,CAAC;QACd,CAAC;IACF,CAAC;IAES,WAAW;QACpB,MAAM,EAAC,SAAS,EAAC,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QAEvC,OAAO,SAAS,CAAC;IAClB,CAAC;IAES,cAAc;QACvB,MAAM,EAAC,iBAAiB,EAAE,UAAU,EAAC,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QAE3D,OAAO,iBAAiB,KAAK,UAAU,CAAC;IACzC,CAAC;IAES,WAAW;QACpB,OAAO,IAAI,CAAC,QAAQ,CAAC;IACtB,CAAC;IAEO,WAAW;QAClB,MAAM,EAAC,UAAU,EAAC,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QAEtC,QAAQ,UAAU,EAAE,CAAC;YACpB,KAAK,oBAAS,CAAC,IAAI,CAAC;YACpB,KAAK,oBAAS,CAAC,YAAY;gBAC1B,OAAO,IAAI,CAAC;YACb;gBACC,OAAO,KAAK,CAAC;QACf,CAAC;IACF,CAAC;IAEO,cAAc;QACrB,MAAM,EAAC,OAAO,EAAC,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QAErC,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;YACtB,OAAO,gBAAU,CAAC;QACnB,CAAC;QAED,MAAM,EAAC,QAAQ,EAAC,GAAG,OAAO,CAAC;QAC3B,MAAM,EAAC,KAAK,EAAC,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QAEnC,OAAO,IAAA,sBAAW,EAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IACrC,CAAC;CACD;AAED,kBAAe,qBAAqB,CAAC"}
@@ -0,0 +1,2 @@
1
+ declare function serializeTimePlaceOptions(current_visibility: string): string;
2
+ export default serializeTimePlaceOptions;
@@ -0,0 +1,34 @@
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 time_place_visibility_1 = __importDefault(require("./../../../enum/time-place-visibility.js"));
7
+ const get_label_for_time_place_visibility_1 = __importDefault(require("./../../utility/get-label-for-time-place-visibility.js"));
8
+ function serializeTimePlaceOptions(current_visibility) {
9
+ const visibilities = Object.values(time_place_visibility_1.default);
10
+ const serialized_options = visibilities.map((visibility) => {
11
+ const label = (0, get_label_for_time_place_visibility_1.default)(visibility);
12
+ const checked = visibility === current_visibility ? 'checked="checked"' : '';
13
+ return `
14
+ <td>
15
+ <input type="radio" id="time-place-${visibility}" name="time_place_visibility" value="${visibility}" ${checked} />
16
+
17
+ <label for="time-place-${visibility}" class="biglink yellow">
18
+ ${label}
19
+ </label>
20
+ </td>
21
+ `;
22
+ });
23
+ return `
24
+ <table class="button-row fixed mt-32">
25
+ <tbody>
26
+ <tr>
27
+ ${serialized_options.join('\n')}
28
+ </tr>
29
+ </tbody>
30
+ </table>
31
+ `;
32
+ }
33
+ exports.default = serializeTimePlaceOptions;
34
+ //# sourceMappingURL=time-place-options.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"time-place-options.js","sourceRoot":"","sources":["../../../../../src/server/serializer/common/time-place-options.ts"],"names":[],"mappings":";;;;;AAAA,uFAA6D;AAC7D,6HAAgG;AAEhG,SAAS,yBAAyB,CAAC,kBAA0B;IAC5D,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,+BAAmB,CAAC,CAAC;IAExD,MAAM,kBAAkB,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE;QAC1D,MAAM,KAAK,GAAG,IAAA,6CAA8B,EAAC,UAAU,CAAC,CAAC;QACzD,MAAM,OAAO,GAAG,UAAU,KAAK,kBAAkB,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,EAAE,CAAC;QAE7E,OAAO;;yCAEgC,UAAU,yCAAyC,UAAU,KAAK,OAAO;;6BAErF,UAAU;OAChC,KAAK;;;GAGT,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,OAAO;;;;OAID,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC;;;;EAIlC,CAAC;AACH,CAAC;AAED,kBAAe,yBAAyB,CAAC"}
@@ -0,0 +1,19 @@
1
+ import { Session } from './../../lib/execution-context/index';
2
+ import PageType from './../../client/enum/page-type';
3
+ import Role from './../../type/role';
4
+ import Page from './../../type/page';
5
+ import BaseResultSerializer from './base';
6
+ type HistoryMetadata = {
7
+ readonly pages: Page[];
8
+ readonly roles: Role[];
9
+ readonly index: number;
10
+ };
11
+ declare class HistoryResultSerializer extends BaseResultSerializer<string[]> {
12
+ private metadata;
13
+ constructor(history: string[], metadata: HistoryMetadata, path: string, referrer_url: string, session: Session);
14
+ protected getTitle(): string;
15
+ protected serializeSections(): string;
16
+ protected getPageType(): PageType;
17
+ private getMetadata;
18
+ }
19
+ export default HistoryResultSerializer;
@@ -0,0 +1,77 @@
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 page_type_1 = __importDefault(require("./../../client/enum/page-type.js"));
7
+ const emoji_1 = __importDefault(require("./../../enum/emoji.js"));
8
+ const base_1 = __importDefault(require("./base.js"));
9
+ const get_parent_path_1 = __importDefault(require("./../../common/utility/get-parent-path.js"));
10
+ const folder_1 = __importDefault(require("./block/folder.js"));
11
+ class HistoryResultSerializer extends base_1.default {
12
+ constructor(history, metadata, path, referrer_url, session) {
13
+ super(history, path, referrer_url, session);
14
+ this.metadata = metadata;
15
+ }
16
+ getTitle() {
17
+ return 'history';
18
+ }
19
+ serializeSections() {
20
+ const history = this.getResult();
21
+ if (history.length === 0) {
22
+ return `
23
+ <section class="grey">
24
+ <h1>history</h1>
25
+ <p class="half-opacity">no history yet</p>
26
+ </section>
27
+ `;
28
+ }
29
+ const { pages, roles, index: target_index } = this.getMetadata();
30
+ const session = this.getSession();
31
+ const sections = history.map((path, history_index) => {
32
+ const page = pages.find((page) => {
33
+ return page.path === path;
34
+ });
35
+ if (page === undefined) {
36
+ return `
37
+ <section class="grey">
38
+ ${emoji_1.default.WARNING_SIGN} 404: <code>${path}</code>
39
+ </section>
40
+ `;
41
+ }
42
+ const { folder } = page;
43
+ const page_path = (0, get_parent_path_1.default)(path);
44
+ const redacted_folder = {
45
+ ...folder,
46
+ subtitle: ''
47
+ };
48
+ const folder_metadata = {
49
+ page_path,
50
+ editing: false,
51
+ referrer_url: null,
52
+ index_path: history_index.toString(),
53
+ target_index_path: target_index.toString(),
54
+ roles,
55
+ account: null,
56
+ creator_username: 'system'
57
+ };
58
+ const serializer = new folder_1.default(redacted_folder, folder_metadata, session);
59
+ return serializer.serializeContent();
60
+ });
61
+ return `
62
+ <section class="grey">
63
+ <h1>history</h1>
64
+ </section>
65
+
66
+ ${sections.join('\n')}
67
+ `;
68
+ }
69
+ getPageType() {
70
+ return page_type_1.default.HISTORY;
71
+ }
72
+ getMetadata() {
73
+ return this.metadata;
74
+ }
75
+ }
76
+ exports.default = HistoryResultSerializer;
77
+ //# sourceMappingURL=history.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"history.js","sourceRoot":"","sources":["../../../../src/server/serializer/history.ts"],"names":[],"mappings":";;;;;AAEA,sEAA6C;AAC7C,uDAA+B;AAG/B,kEAA0D;AAC1D,qFAA2D;AAC3D,4EAAmE;AAQnE,MAAM,uBAAwB,SAAQ,cAA8B;IAGnE,YACC,OAAiB,EACjB,QAAyB,EACzB,IAAY,EACZ,YAAoB,EACpB,OAAgB;QAEhB,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,CAAC,CAAC;QAE5C,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC1B,CAAC;IAES,QAAQ;QACjB,OAAO,SAAS,CAAC;IAClB,CAAC;IAES,iBAAiB;QAC1B,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QAEjC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC1B,OAAO;;;;;IAKN,CAAC;QACH,CAAC;QAED,MAAM,EAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,YAAY,EAAC,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QAC/D,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QAElC,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,aAAa,EAAE,EAAE;YACpD,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;gBAChC,OAAO,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC;YAC3B,CAAC,CAAC,CAAC;YAEH,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;gBACxB,OAAO;;QAEH,eAAK,CAAC,YAAY,eAAe,IAAI;;KAExC,CAAC;YACH,CAAC;YAED,MAAM,EAAC,MAAM,EAAC,GAAG,IAAI,CAAC;YACtB,MAAM,SAAS,GAAG,IAAA,yBAAa,EAAC,IAAI,CAAC,CAAC;YAEtC,MAAM,eAAe,GAAG;gBACvB,GAAG,MAAM;gBACT,QAAQ,EAAE,EAAE;aACZ,CAAC;YAEF,MAAM,eAAe,GAAG;gBACvB,SAAS;gBACT,OAAO,EAAE,KAAK;gBACd,YAAY,EAAE,IAAI;gBAClB,UAAU,EAAE,aAAa,CAAC,QAAQ,EAAE;gBACpC,iBAAiB,EAAE,YAAY,CAAC,QAAQ,EAAE;gBAC1C,KAAK;gBACL,OAAO,EAAE,IAAI;gBACb,gBAAgB,EAAE,QAAQ;aAC1B,CAAC;YAEF,MAAM,UAAU,GAAG,IAAI,gBAAqB,CAC3C,eAAe,EACf,eAAe,EACf,OAAO,CACP,CAAC;YAEF,OAAO,UAAU,CAAC,gBAAgB,EAAE,CAAC;QACtC,CAAC,CAAC,CAAC;QAEH,OAAO;;;;;KAKJ,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;GACrB,CAAC;IACH,CAAC;IAES,WAAW;QACpB,OAAO,mBAAQ,CAAC,OAAO,CAAC;IACzB,CAAC;IAEO,WAAW;QAClB,OAAO,IAAI,CAAC,QAAQ,CAAC;IACtB,CAAC;CACD;AAED,kBAAe,uBAAuB,CAAC"}
@@ -0,0 +1,12 @@
1
+ import PageType from './../../client/enum/page-type';
2
+ import BaseResultSerializer from './base';
3
+ interface LoginData {
4
+ readonly source_path: string;
5
+ }
6
+ declare class LoginResultSerializer extends BaseResultSerializer<LoginData> {
7
+ protected getTitle(): string;
8
+ protected serializeFooter(): string;
9
+ protected serializeSections(): string;
10
+ protected getPageType(): PageType;
11
+ }
12
+ export default LoginResultSerializer;
@@ -0,0 +1,54 @@
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 page_type_1 = __importDefault(require("./../../client/enum/page-type.js"));
8
+ const base_1 = __importDefault(require("./base.js"));
9
+ class LoginResultSerializer extends base_1.default {
10
+ getTitle() {
11
+ return 'log in';
12
+ }
13
+ serializeFooter() {
14
+ return `
15
+ <footer>
16
+ <div class="section-wrapper">
17
+ <section class="transparent">
18
+ <a class="float-right" href="#">forgot your password?</a>
19
+ <a href="/">${emoji_1.default.LEFT_ARROW_UNICODE} home</a>
20
+ </section>
21
+ </div>
22
+ </footer>
23
+ `;
24
+ }
25
+ serializeSections() {
26
+ const { source_path } = this.getResult();
27
+ return `
28
+ <section class="grey">
29
+ <form action="/session" method="POST">
30
+ <input type="hidden" name="source" value="${source_path}" />
31
+
32
+ <fieldset>
33
+ <legend>username:</legend>
34
+ <input type="text" name="username" placeholder="username" autofocus />
35
+ </fieldset>
36
+
37
+ <fieldset>
38
+ <legend>password:</legend>
39
+ <input type="password" name="password" placeholder="password" />
40
+ </fieldset>
41
+
42
+ <button class="mt-32 biglink blue" type="submit">
43
+ log in ${emoji_1.default.RIGHT_ARROW_UNICODE}
44
+ </button>
45
+ </form>
46
+ </section>
47
+ `;
48
+ }
49
+ getPageType() {
50
+ return page_type_1.default.LOGIN;
51
+ }
52
+ }
53
+ exports.default = LoginResultSerializer;
54
+ //# sourceMappingURL=login.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"login.js","sourceRoot":"","sources":["../../../../src/server/serializer/login.ts"],"names":[],"mappings":";;;;;AAAA,uDAA+B;AAC/B,sEAA6C;AAC7C,kEAA0D;AAM1D,MAAM,qBAAsB,SAAQ,cAA+B;IACxD,QAAQ;QACjB,OAAO,QAAQ,CAAC;IACjB,CAAC;IAES,eAAe;QACxB,OAAO;;;;;oBAKW,eAAK,CAAC,kBAAkB;;;;GAIzC,CAAC;IACH,CAAC;IAES,iBAAiB;QAC1B,MAAM,EAAC,WAAW,EAAC,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QAEvC,OAAO;;;iDAGwC,WAAW;;;;;;;;;;;;;eAa7C,eAAK,CAAC,mBAAmB;;;;GAIrC,CAAC;IACH,CAAC;IAES,WAAW;QACpB,OAAO,mBAAQ,CAAC,KAAK,CAAC;IACvB,CAAC;CACD;AAED,kBAAe,qBAAqB,CAAC"}
@@ -0,0 +1,10 @@
1
+ import Month from './../../type/month';
2
+ import PageType from './../../client/enum/page-type';
3
+ import BaseResultSerializer from './base';
4
+ declare class MonthResultSerializer extends BaseResultSerializer<Month> {
5
+ serializeSections(): string;
6
+ protected getTitle(): string;
7
+ protected getPageType(): PageType;
8
+ private getTargetDate;
9
+ }
10
+ export default MonthResultSerializer;
@@ -0,0 +1,160 @@
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 color_1 = __importDefault(require("./../../enum/color.js"));
7
+ const dates_are_equal_1 = __importDefault(require("./../utility/dates-are-equal.js"));
8
+ const dates_in_same_month_1 = __importDefault(require("./../utility/dates-in-same-month.js"));
9
+ const page_type_1 = __importDefault(require("./../../client/enum/page-type.js"));
10
+ const base_1 = __importDefault(require("./base.js"));
11
+ const month_to_date_1 = __importDefault(require("./../utility/month-to-date.js"));
12
+ const date_less_than_1 = __importDefault(require("./../utility/date-less-than.js"));
13
+ const emoji_1 = __importDefault(require("./../../enum/emoji.js"));
14
+ const create_date_1 = __importDefault(require("./../utility/create-date.js"));
15
+ const date_to_path_1 = __importDefault(require("./../utility/date-to-path.js"));
16
+ const get_end_of_week_1 = __importDefault(require("./../utility/get-end-of-week.js"));
17
+ const get_end_of_month_1 = __importDefault(require("./../utility/get-end-of-month.js"));
18
+ const get_start_of_month_1 = __importDefault(require("./../utility/get-start-of-month.js"));
19
+ const get_short_month_name_1 = __importDefault(require("./../utility/get-short-month-name.js"));
20
+ const get_next_month_1 = __importDefault(require("./../utility/get-next-month.js"));
21
+ const get_previous_month_1 = __importDefault(require("./../utility/get-previous-month.js"));
22
+ const month_to_path_1 = __importDefault(require("./../utility/month-to-path.js"));
23
+ const week_to_path_1 = __importDefault(require("./../utility/week-to-path.js"));
24
+ const year_to_path_1 = __importDefault(require("./../utility/year-to-path.js"));
25
+ const get_start_of_year_1 = __importDefault(require("./../utility/get-start-of-year.js"));
26
+ const get_month_name_1 = __importDefault(require("./../utility/get-month-name.js"));
27
+ const get_start_of_week_1 = __importDefault(require("./../utility/get-start-of-week.js"));
28
+ const week_greater_than_1 = __importDefault(require("./../utility/week-greater-than.js"));
29
+ const increment_date_1 = __importDefault(require("./../utility/increment-date.js"));
30
+ const create_toast_path_1 = __importDefault(require("./../utility/create-toast-path.js"));
31
+ class MonthResultSerializer extends base_1.default {
32
+ serializeSections() {
33
+ const target_date = this.getTargetDate();
34
+ const start_of_month = (0, get_start_of_month_1.default)(target_date);
35
+ const end_of_month = (0, get_end_of_month_1.default)(target_date);
36
+ const end_date = (0, increment_date_1.default)((0, get_end_of_week_1.default)(end_of_month), 1);
37
+ const serialized_rows = [];
38
+ const reticule = '<div class="focus-reticule scaling"></div>';
39
+ const today = (0, create_date_1.default)();
40
+ let current_week = (0, get_start_of_week_1.default)(start_of_month);
41
+ let current_date = current_week;
42
+ let current_row = [];
43
+ while ((0, date_less_than_1.default)(current_date, end_date)) {
44
+ if ((0, dates_in_same_month_1.default)(current_date, target_date)) {
45
+ const base_path = (0, date_to_path_1.default)(current_date);
46
+ const date_is_today = (0, dates_are_equal_1.default)(current_date, today);
47
+ const day_path = (() => {
48
+ if (date_is_today) {
49
+ return (0, create_toast_path_1.default)(base_path, {
50
+ message: `${emoji_1.default.SUNSHINE} today ${emoji_1.default.SUNSHINE}`,
51
+ color: color_1.default.YELLOW
52
+ });
53
+ }
54
+ else {
55
+ return base_path;
56
+ }
57
+ })();
58
+ const reticule_markup = date_is_today ? reticule : '';
59
+ const utc_date = current_date.getUTCDate();
60
+ const date_label = date_is_today ? emoji_1.default.SUNSHINE : utc_date;
61
+ current_row.push(`
62
+ <td class="focus-reticule-container">
63
+ <a href="${day_path}" class="biglink">
64
+ ${reticule_markup}
65
+ ${date_label}
66
+ </a>
67
+ </td>
68
+ `);
69
+ }
70
+ else {
71
+ current_row.push('<td></td>');
72
+ }
73
+ current_date = (0, increment_date_1.default)(current_date, 1);
74
+ if ((0, week_greater_than_1.default)(current_date, current_week)) {
75
+ const week_path = (0, week_to_path_1.default)(current_week);
76
+ const serialized_row = current_row.join('\n');
77
+ serialized_rows.push(`
78
+ <tr>
79
+ <td>
80
+ <a class="biglink" href="${week_path}">
81
+
82
+ </a>
83
+ </td>
84
+ ${serialized_row}
85
+ </tr>
86
+ `);
87
+ current_row = [];
88
+ current_week = (0, get_start_of_week_1.default)(current_date);
89
+ }
90
+ }
91
+ const target_month = (0, get_start_of_month_1.default)(target_date);
92
+ const target_month_name = (0, get_month_name_1.default)(target_month);
93
+ const target_year = (0, get_start_of_year_1.default)(target_month);
94
+ const year_name = target_year.getUTCFullYear();
95
+ const year_path = (0, year_to_path_1.default)(target_year);
96
+ const previous_month = (0, get_previous_month_1.default)(target_month);
97
+ const previous_month_path = (0, month_to_path_1.default)(previous_month);
98
+ const previous_month_name = (0, get_short_month_name_1.default)(previous_month);
99
+ const next_month = (0, get_next_month_1.default)(target_month);
100
+ const next_month_path = (0, month_to_path_1.default)(next_month);
101
+ const next_month_name = (0, get_short_month_name_1.default)(next_month);
102
+ return `
103
+ <table>
104
+ <thead>
105
+ <tr>
106
+ <th class="no-background">
107
+ </th>
108
+ <th>
109
+ <a class="biglink mb-8" href="${year_path}">
110
+ ${emoji_1.default.UP_ARROW_UNICODE} ${year_name} ${emoji_1.default.UP_ARROW_UNICODE}
111
+ </a>
112
+ </th>
113
+ <th class="no-background">
114
+ </th>
115
+ </tr>
116
+ </thead>
117
+ <tbody>
118
+ <tr>
119
+ <td class="biglink-container">
120
+ <a class="biglink stretch" href="${previous_month_path}">${emoji_1.default.LEFT_ARROW_UNICODE} ${previous_month_name}</a>
121
+ </td>
122
+ <td>
123
+ <h2>${target_month_name}</h2>
124
+ <table class="fixed">
125
+ <thead>
126
+ <th></th>
127
+ <th>s</th>
128
+ <th>m</th>
129
+ <th>t</th>
130
+ <th>w</th>
131
+ <th>t</th>
132
+ <th>f</th>
133
+ <th>s</th>
134
+ </thead>
135
+ <tbody>
136
+ ${serialized_rows.join('\n')}
137
+ </tbody>
138
+ </table>
139
+ </td>
140
+ <td class="biglink-container">
141
+ <a class="biglink stretch" href="${next_month_path}">${next_month_name} ${emoji_1.default.RIGHT_ARROW_UNICODE}</a>
142
+ </td>
143
+ </tr>
144
+ </tbody>
145
+ </table>
146
+ `;
147
+ }
148
+ getTitle() {
149
+ return 'xxx';
150
+ }
151
+ getPageType() {
152
+ return page_type_1.default.MONTH;
153
+ }
154
+ getTargetDate() {
155
+ const month = this.getResult();
156
+ return (0, month_to_date_1.default)(month);
157
+ }
158
+ }
159
+ exports.default = MonthResultSerializer;
160
+ //# sourceMappingURL=month.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"month.js","sourceRoot":"","sources":["../../../../src/server/serializer/month.ts"],"names":[],"mappings":"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"}