@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,1222 @@
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 fs_1 = require("fs");
7
+ const server_1 = require("./../../lib/server/index.js");
8
+ const string_1 = require("./../../lib/string/index.js");
9
+ const errors_1 = require("./../../lib/errors/index.js");
10
+ const emoji_1 = __importDefault(require("./../../enum/emoji.js"));
11
+ const color_1 = __importDefault(require("./../../enum/color.js"));
12
+ const get_path_from_url_1 = __importDefault(require("./../utility/get-path-from-url.js"));
13
+ const get_hex_for_color_1 = __importDefault(require("./../utility/get-hex-for-color.js"));
14
+ const create_toast_path_1 = __importDefault(require("./../utility/create-toast-path.js"));
15
+ class BaseResultSerializer extends server_1.HtmlResultSerializer {
16
+ constructor(result, path, referrer_url, session) {
17
+ super(result);
18
+ this.path = path;
19
+ this.referrer_url = referrer_url;
20
+ this.session = session;
21
+ }
22
+ getSession() {
23
+ return this.session;
24
+ }
25
+ serializeContent() {
26
+ const css = this.serializeCss();
27
+ const header = this.serializeHeader();
28
+ const main = this.serializeMain();
29
+ const footer = this.serializeFooter();
30
+ const js = this.serializeJs();
31
+ return `
32
+ ${css}
33
+ ${header}
34
+ ${main}
35
+ ${footer}
36
+ ${js}
37
+ `;
38
+ }
39
+ // Override on child classes. Basically just the Page serializer.
40
+ isHome() {
41
+ return false;
42
+ }
43
+ // Override on child classes. Basically just the Page serializer.
44
+ isToday() {
45
+ return false;
46
+ }
47
+ isLoggedIn() {
48
+ const { account_id } = this.getSession();
49
+ return account_id !== null;
50
+ }
51
+ getUsername() {
52
+ const { username } = this.getSession();
53
+ return username;
54
+ }
55
+ getMetaMappings() {
56
+ const page_type = this.getPageType();
57
+ const logged_in = this.isLoggedIn();
58
+ return {
59
+ page_type,
60
+ logged_in
61
+ };
62
+ }
63
+ serializeHeader() {
64
+ return '';
65
+ }
66
+ serializeFooter() {
67
+ const home_link = (() => {
68
+ if (this.isHome()) {
69
+ return '';
70
+ }
71
+ const path = (0, create_toast_path_1.default)('/', {
72
+ message: `${emoji_1.default.HOUSE} home ${emoji_1.default.HOUSE}`,
73
+ color: color_1.default.BLUE
74
+ });
75
+ return `<a href="${path}">${emoji_1.default.LEFT_ARROW_UNICODE} home</a>`;
76
+ })();
77
+ const today_link = (() => {
78
+ if (this.isToday()) {
79
+ return '';
80
+ }
81
+ const path = (0, create_toast_path_1.default)('/today', {
82
+ message: `${emoji_1.default.SUNSHINE} today ${emoji_1.default.SUNSHINE}`,
83
+ color: color_1.default.YELLOW
84
+ });
85
+ return `<a href="${path}">today</a>`;
86
+ })();
87
+ const referrer_url = this.getReferrerUrl();
88
+ const referrer_path = (0, get_path_from_url_1.default)(referrer_url);
89
+ const source_path = encodeURIComponent(referrer_path);
90
+ const login_link = (() => {
91
+ if (this.isLoggedIn()) {
92
+ return `<a href="/logout?source=${source_path}">log out ${emoji_1.default.RIGHT_ARROW_UNICODE}</a>`;
93
+ }
94
+ else {
95
+ return `<a href="/login?source=${source_path}">log in ${emoji_1.default.RIGHT_ARROW_UNICODE}</a>`;
96
+ }
97
+ })();
98
+ return `
99
+ <footer>
100
+ <div class="section-wrapper">
101
+ <section class="transparent">
102
+ <table class="fixed">
103
+ <tbody>
104
+ <tr>
105
+ <td class="align-left">
106
+ ${home_link}
107
+ </td>
108
+ <td>
109
+ ${today_link}
110
+ </td>
111
+ <td class="align-right">
112
+ ${login_link}
113
+ </td>
114
+ </tr>
115
+ </tbody>
116
+ </table>
117
+ </section>
118
+ </div>
119
+ </footer>
120
+ `;
121
+ }
122
+ serializeMain() {
123
+ const sections = this.serializeSections();
124
+ const breadcrumbs = this.serializeBreadcrumbs();
125
+ return `
126
+ <main>
127
+ <div class="section-wrapper">
128
+ ${breadcrumbs}
129
+ ${sections}
130
+ </div>
131
+ </main>
132
+ `;
133
+ }
134
+ // Override this as needed on child classes.
135
+ serializeBreadcrumbs() {
136
+ return '';
137
+ }
138
+ // Override this as needed on child classes.
139
+ serializeJs() {
140
+ if (this.cached_client_bundle === undefined) {
141
+ this.cached_client_bundle = this.initClientBundle();
142
+ }
143
+ return this.cached_client_bundle;
144
+ }
145
+ initClientBundle() {
146
+ const match = __dirname.match(/^(.*?\/dist)/);
147
+ if (match === null) {
148
+ throw new errors_1.InvariantViolation(`
149
+ Tried to read project dist path,
150
+ but current script was not located within it
151
+ `);
152
+ }
153
+ const dist_path = match[1];
154
+ const filepath = `${dist_path}/client.js`;
155
+ const contents = (0, fs_1.readFileSync)(filepath, string_1.StringEncoding.UTF8);
156
+ return `
157
+ <script>
158
+ ${contents}
159
+ </script>
160
+ `;
161
+ }
162
+ serializeUtilityCss() {
163
+ const aspects = ['margin', 'padding'];
164
+ const sizes = [0, 2, 4, 8, 16, 32, 48, 64];
165
+ const sides = ['top', 'bottom', 'left', 'right'];
166
+ const colors = Object.values(color_1.default);
167
+ const rules = [];
168
+ aspects.forEach((aspect) => {
169
+ const aspect_shorthand = aspect.slice(0, 1);
170
+ sizes.forEach((size) => {
171
+ const classname = `${aspect_shorthand}-${size}`;
172
+ const rule = `.${classname} { ${aspect}: ${size}px !important; }`;
173
+ rules.push(rule);
174
+ });
175
+ sides.forEach((side) => {
176
+ const side_shorthand = side.slice(0, 1);
177
+ sizes.forEach((size) => {
178
+ const classname = `${aspect_shorthand}${side_shorthand}-${size}`;
179
+ const property = `${aspect}-${side}`;
180
+ const rule = `.${classname} { ${property}: ${size}px !important; }`;
181
+ rules.push(rule);
182
+ });
183
+ });
184
+ });
185
+ colors.forEach((color) => {
186
+ const hex = (0, get_hex_for_color_1.default)(color);
187
+ rules.push(`.text-${color} { color: ${hex} !important; }`);
188
+ rules.push(`.background-${color} { background: ${hex} !important; }`);
189
+ });
190
+ return `
191
+ <style>
192
+ ${rules.join('\n\t\t\t\t')}
193
+
194
+ .quarter-opacity {
195
+ opacity: 0.25 !important;
196
+ }
197
+
198
+ .half-opacity {
199
+ opacity: 0.5 !important;
200
+ }
201
+
202
+ .three-quarter-opacity {
203
+ opacity: 75% !important;
204
+ }
205
+
206
+ .float-right {
207
+ float: right !important;
208
+ }
209
+
210
+ .no-background {
211
+ background: none !important;
212
+ }
213
+
214
+ .invisible {
215
+ visibility: hidden !important;
216
+ }
217
+
218
+ .align-top {
219
+ vertical-align: top !important;
220
+ }
221
+
222
+ .align-bottom {
223
+ vertical-align: bottom !important;
224
+ }
225
+
226
+ .align-left {
227
+ text-align: left !important;
228
+ }
229
+
230
+ .align-right {
231
+ text-align: right !important;
232
+ }
233
+
234
+ .centered {
235
+ text-align: center !important;
236
+ }
237
+
238
+ .hidden {
239
+ display: none !important;
240
+ }
241
+
242
+ .text-bold {
243
+ font-weight: bold;
244
+ }
245
+
246
+ .text-smaller {
247
+ font-size: 75% !important;
248
+ }
249
+
250
+ .text-very-large {
251
+ font-size: 150% !important;
252
+ }
253
+
254
+ .fuschia-border {
255
+ border-color: #F36 !important;
256
+ }
257
+
258
+ .maroon-border {
259
+ border-color: #603 !important;
260
+ }
261
+
262
+ .nowrap {
263
+ white-space: nowrap !important;
264
+ }
265
+
266
+ .wrap {
267
+ white-space: wrap !important;
268
+ }
269
+
270
+ .border-none {
271
+ border: none !important;
272
+ }
273
+ </style>
274
+ `;
275
+ }
276
+ serializeCss() {
277
+ const utility_css = this.serializeUtilityCss();
278
+ const biglink_color_classes = Object.values(color_1.default).map((color) => {
279
+ const hex = (0, get_hex_for_color_1.default)(color);
280
+ if (hex.length !== 4) {
281
+ throw new errors_1.InvariantViolation(`
282
+ Expected 3-character hex code,
283
+ but got: ${hex}
284
+ `);
285
+ }
286
+ const raw_r = hex[1];
287
+ const raw_g = hex[2];
288
+ const raw_b = hex[3];
289
+ const r = parseInt(`${raw_r}${raw_r}`, 16);
290
+ const g = parseInt(`${raw_g}${raw_g}`, 16);
291
+ const b = parseInt(`${raw_b}${raw_b}`, 16);
292
+ return `
293
+ .biglink.${color} {
294
+ background-image: repeating-linear-gradient(
295
+ -45deg,
296
+ rgba(${r}, ${g}, ${b}, 0.25),
297
+ rgba(${r}, ${g}, ${b}, 0.25) 10px,
298
+ #111 10px,
299
+ #111 20px
300
+ );
301
+
302
+ animation: stripes 4s linear infinite;
303
+ background-size: 200% 200%;
304
+ border-color: ${hex};
305
+ color: ${hex};
306
+ }
307
+
308
+ .biglink.${color}:hover,
309
+ .block.selected > .biglink.${color} {
310
+ background: rgba(${r}, ${g}, ${b}, 1);
311
+ }
312
+ `;
313
+ });
314
+ return `
315
+ <style>
316
+ body {
317
+ font-size: 24px;
318
+ font-family: monospace;
319
+ margin: 0 auto;
320
+ overflow-x: hidden;
321
+ color: #FFF;
322
+ }
323
+
324
+ header {
325
+ border-bottom: 4px solid rgba(255, 255, 255, 0.25);
326
+ position: sticky;
327
+ top: 0;
328
+ left: 0;
329
+ right: 0;
330
+ z-index: 1;
331
+ }
332
+
333
+ footer {
334
+ border-top: 4px solid rgba(255, 255, 255, 0.25);
335
+ }
336
+
337
+ header, footer {
338
+ padding: 16px 0px;
339
+ }
340
+
341
+ body, header {
342
+ background-image: url('data:image/svg+xml;utf8,` +
343
+ `<svg xmlns="http://www.w3.org/2000/svg" width="64" height="64" viewBox="0 0 64 64">` +
344
+ `<rect width="64" height="64" fill="black"/>` +
345
+ `<polygon points="0,0 7,0 0,7" fill="%23222" />` +
346
+ `<polygon points="57,64 64,57 64,64" fill="%23222" />` +
347
+ `<polygon points="0,57 57,0 64,0 64,7 7,64 0,64" fill="%23222" />` +
348
+ `<polygon points="0,25 25,0 39,0 0,39" fill="%23222" />` +
349
+ `<polygon points="25,64 64,25 64,39 39,64" fill="%23222" />` +
350
+ `</svg>');
351
+ }
352
+
353
+ body.editing, body.editing header {
354
+ background-image: url('data:image/svg+xml;utf8,` +
355
+ `<svg xmlns="http://www.w3.org/2000/svg" width="64" height="64" viewBox="0 0 64 64">` +
356
+ `<rect width="64" height="64" fill="black"/>` +
357
+ `<polygon points="0,0 7,0 0,7" fill="%23786400" />` +
358
+ `<polygon points="57,64 64,57 64,64" fill="%23786400" />` +
359
+ `<polygon points="0,57 57,0 64,0 64,7 7,64 0,64" fill="%23786400" />` +
360
+ `<polygon points="0,25 25,0 39,0 0,39" fill="%23786400" />` +
361
+ `<polygon points="25,64 64,25 64,39 39,64" fill="%23786400" />` +
362
+ `</svg>');
363
+ }
364
+
365
+ main {
366
+ padding: 16px 0px;
367
+ margin: 0 auto;
368
+ background: #111;
369
+ }
370
+
371
+ body.editing main {
372
+ }
373
+
374
+ ul {
375
+ list-style: none;
376
+ margin: 0;
377
+ padding: 0;
378
+ }
379
+
380
+ a {
381
+ color: #09F;
382
+ }
383
+
384
+ p:first-child {
385
+ margin-top: 0;
386
+ }
387
+
388
+ p:last-child {
389
+ margin-bottom: 0;
390
+ }
391
+
392
+ button {
393
+ all: unset;
394
+ cursor: pointer;
395
+ }
396
+
397
+ section {
398
+ border: 4px solid #333;
399
+ color: #FFF;
400
+ padding: 16px;
401
+ margin: 0 auto;
402
+ margin-bottom: 8px;
403
+ box-sizing: border-box;
404
+ position: relative;
405
+ text-align: left;
406
+ }
407
+
408
+ section.condensed {
409
+ padding: 0px;
410
+ border: none;
411
+ background: none;
412
+ }
413
+
414
+ section.block.condensed.link {
415
+ background: rgba(0, 0, 0, 0.75);
416
+ }
417
+
418
+ .section-wrapper {
419
+ max-width: 720px;
420
+ margin: 0 auto;
421
+ }
422
+
423
+ section::after, .clearfix::after {
424
+ content: "";
425
+ display: table;
426
+ clear: both;
427
+ }
428
+
429
+ section.transparent {
430
+ background: transparent;
431
+ border: 4px solid transparent;
432
+ color: #FFF;
433
+ }
434
+
435
+ section.editing {
436
+ min-height: 104px;
437
+ margin-left: 52px;
438
+ margin-right: 52px;
439
+ }
440
+
441
+ section nav {
442
+ display: none;
443
+ position: absolute;
444
+ width: 48px;
445
+ top: 0;
446
+ bottom: 0;
447
+ }
448
+
449
+ section nav.left {
450
+ left: -52px;
451
+ }
452
+
453
+ section nav.right {
454
+ right: -52px;
455
+ }
456
+
457
+ section nav .biglink {
458
+ width: 48px;
459
+ height: 48px;
460
+ color: #FFF;
461
+ line-height: 43px;
462
+ font-size: 32px;
463
+ text-align: center;
464
+ box-sizing: border-box;
465
+ padding: 0;
466
+ border-color: transparent;
467
+ }
468
+
469
+ section.editing nav {
470
+ display: block;
471
+ }
472
+
473
+ footer section {
474
+ border: 4px solid #333;
475
+ }
476
+
477
+ section h1 {
478
+ margin: 0px;
479
+ font-size: 150%;
480
+ }
481
+
482
+ section h2 {
483
+ margin: 0px;
484
+ padding: 16px 0px;
485
+ font-size: 125%;
486
+ }
487
+
488
+ section h4 {
489
+ margin: 0px;
490
+ }
491
+
492
+ section > time {
493
+ position: absolute;
494
+ border-width: 4px;
495
+ border-style: solid;
496
+ border-top: none;
497
+ border-color: #333;
498
+ color: #FFF;
499
+ background: #000;
500
+ right: -4px;
501
+ box-sizing: border-box;
502
+ bottom: -28px;
503
+ font-size: 80%;
504
+ line-height: 22px;
505
+ height: 28px;
506
+ padding: 0px 8px;
507
+ display: none;
508
+ }
509
+
510
+ section.with-time {
511
+ margin-bottom: 32px;
512
+ }
513
+
514
+ section.with-time time {
515
+ display: block;
516
+ }
517
+
518
+ .breadcrumb {
519
+ display: inline-block;
520
+ padding: 8px 16px;
521
+ background: #222;
522
+ }
523
+
524
+ a.breadcrumb:hover {
525
+ background: #09F;
526
+ color: #FFF;
527
+ }
528
+
529
+ .focus-cursor {
530
+ display: none;
531
+ position: absolute;
532
+ right: 100%;
533
+ top: 0;
534
+ bottom: 0;
535
+ align-items: center;
536
+ justify-content: center;
537
+ z-index: 1;
538
+ font-size: 200%;
539
+ padding: 0px 16px;
540
+ }
541
+
542
+ .block.selected > .focus-cursor {
543
+ display: flex;
544
+ }
545
+
546
+ .block.editing > .focus-cursor {
547
+ padding-right: 64px;
548
+ }
549
+
550
+ .block.folder {
551
+ padding: 0;
552
+ border-width: 0;
553
+ }
554
+
555
+ .block.folder.selected {
556
+ }
557
+
558
+ .block.background {
559
+ display: none;
560
+ }
561
+
562
+ .block.whitespace {
563
+ opacity: 0;
564
+ }
565
+
566
+ .focus-reticule {
567
+ display: none;
568
+ position: absolute;
569
+ border: 4px solid #FFF;
570
+ background: rgba(255, 255, 255, 0.5);
571
+ left: 0px;
572
+ right: 0px;
573
+ top: 0px;
574
+ bottom: 0px;
575
+ transform-origin: center;
576
+ z-index: 1;
577
+ pointer-events: none;
578
+ }
579
+
580
+ .block.selected > .focus-reticule {
581
+ display: block;
582
+ }
583
+
584
+ .focus-reticule.scaling {
585
+ animation: scaling-reticule 1s ease-out forwards;
586
+ }
587
+
588
+ .focus-reticule.flashing {
589
+ animation: flashing-reticule 1s ease-out forwards;
590
+ }
591
+
592
+ .focus-reticule-container {
593
+ position: relative;
594
+ }
595
+
596
+ @keyframes scaling-reticule {
597
+ 0% {
598
+ border-width: 1px;
599
+ transform: scale(7);
600
+ opacity: 1;
601
+ }
602
+
603
+ 75% {
604
+ opacity: 1;
605
+ }
606
+
607
+ 100% {
608
+ border-width: 4px;
609
+ transform: scale(1);
610
+ opacity: 0;
611
+ }
612
+ }
613
+
614
+ @keyframes flashing-reticule {
615
+ 0% {
616
+ opacity: 1;
617
+ }
618
+
619
+ 100% {
620
+ opacity: 0;
621
+ }
622
+ }
623
+
624
+ img {
625
+ display: block;
626
+ width: 100%;
627
+ max-width: 100%;
628
+ image-rendering: pixelated;
629
+ }
630
+
631
+ .multi-column img {
632
+ aspect-ratio: 1 / 1;
633
+ object-fit: cover;
634
+ object-position: center;
635
+ }
636
+
637
+ input, label {
638
+ display: block;
639
+ width: 100%;
640
+ box-sizing: border-box;
641
+ margin-bottom: 12px;
642
+ font-size: 100%;
643
+ }
644
+
645
+ input {
646
+ padding: 8px;
647
+ border: 4px solid rgba(255, 255, 255, 0.5);
648
+ background: #FFF;
649
+ }
650
+
651
+ input:focused {
652
+ border: 4px solid #09F;
653
+ background: #FFF;
654
+ }
655
+
656
+ .color-option {
657
+ opacity: 0;
658
+ position: absolute;
659
+ }
660
+
661
+ .color-option + label {
662
+ float: left;
663
+ width: 32px;
664
+ height: 32px;
665
+ font-size: 80%;
666
+ text-indent: -1000px;
667
+ border: 1px solid #000;
668
+ overflow: hidden;
669
+ box-sizing: border-box;
670
+ cursor: pointer;
671
+ opacity: 0.5;
672
+ }
673
+
674
+ .color-option:checked + label {
675
+ border-color: #FFF;
676
+ border-width: 4px;
677
+ opacity: 1;
678
+ }
679
+
680
+ input[type="radio"] {
681
+ display: none;
682
+ }
683
+
684
+ input[type="radio"]:checked + label {
685
+ background: #FC3;
686
+ color: #000;
687
+ }
688
+
689
+ input[type="range"] {
690
+ width: 100%;
691
+ margin: 0;
692
+ }
693
+
694
+ input[type="checkbox"] {
695
+ display: inline-block;
696
+ width: 24px;
697
+ height: 24px;
698
+ }
699
+
700
+ input[type="checkbox"] + label {
701
+ display: inline;
702
+ font-size: 80%;
703
+ color: #CCC;
704
+ font-style: italic;
705
+ line-height: 24px;
706
+ vertical-align: text-top;
707
+ }
708
+
709
+ fieldset {
710
+ margin-bottom: 16px;
711
+ }
712
+
713
+ legend {
714
+ padding: 0px 8px;
715
+ }
716
+
717
+ label {
718
+ display: block;
719
+ }
720
+
721
+ .file-wrapper {
722
+ position: relative;
723
+ }
724
+
725
+ input[type="file"] {
726
+ opacity: 0;
727
+ z-index: 1;
728
+ position: absolute;
729
+ left: 0;
730
+ right: 0;
731
+ top: 0;
732
+ bottom: 0;
733
+ margin-bottom: 0px;
734
+ cursor: pointer;
735
+ }
736
+
737
+ summary {
738
+ cursor: pointer;
739
+ }
740
+
741
+ details:open summary {
742
+ margin-bottom: 16px;
743
+ }
744
+
745
+ .summary-label {
746
+ float: right;
747
+ font-size: 80%;
748
+ color: #AAA;
749
+ }
750
+
751
+ .summary-label .icon {
752
+ display: inline-block;
753
+ height: 18px;
754
+ width: 18px;
755
+ margin-right: 8px;
756
+ }
757
+
758
+ select {
759
+ display: block;
760
+ margin-bottom: 16px;
761
+ font-size: 28px;
762
+ width: 100%;
763
+ }
764
+
765
+ textarea {
766
+ display: block;
767
+ width: 100%;
768
+ resize: vertical;
769
+ margin-bottom: 16px;
770
+ font-size: 24px;
771
+ padding: 16px;
772
+ box-sizing: border-box;
773
+ min-height: 240px;
774
+ background: #CCC;
775
+ }
776
+
777
+ table {
778
+ width: 100%;
779
+ border-collapse: collapse;
780
+ }
781
+
782
+ table.fixed {
783
+ table-layout: fixed;
784
+ }
785
+
786
+ table.compact th {
787
+ text-align: left;
788
+ }
789
+
790
+ table.compact td {
791
+ font-size: 16px;
792
+ font-family: monospace;
793
+ color: #AAA;
794
+ text-align: right;
795
+ }
796
+
797
+ table.button-row td {
798
+ margin: 8px 0px;
799
+ }
800
+
801
+ table.button-row td:first-child {
802
+ margin-left: 0px;
803
+ }
804
+
805
+ table.button-row td:last-child {
806
+ margin-right: 0px;
807
+ }
808
+
809
+ .biglink:hover table.compact td {
810
+ color: #FFF;
811
+ }
812
+
813
+ td {
814
+ text-align: center;
815
+ }
816
+
817
+ audio {
818
+ width: 100%;
819
+ }
820
+
821
+ .markdown-wrapper h1:first-child,
822
+ .markdown-wrapper h2:first-child,
823
+ .markdown-wrapper h3:first-child {
824
+ margin-top: 0;
825
+ }
826
+
827
+ .markdown-wrapper th,
828
+ .markdown-wrapper td {
829
+ text-align: left;
830
+ padding: 4px 16px;
831
+ }
832
+
833
+ .markdown-wrapper td {
834
+ text-align: left;
835
+ }
836
+
837
+ .markdown-wrapper ul {
838
+ list-style: square;
839
+ padding: revert;
840
+ }
841
+
842
+ .biglink-container {
843
+ position: relative;
844
+ overflow: hidden;
845
+ border: 4px solid rgba(255, 255, 255, 0.5);
846
+ }
847
+
848
+ .biglink-container:hover {
849
+ border: 4px solid #FFF;
850
+ z-index: 1000;
851
+ }
852
+
853
+ .biglink {
854
+ display: block;
855
+ width: 100%;
856
+ background: none;
857
+ font-size: 100%;
858
+ position: relative;
859
+ border: none;
860
+ color: #09F;
861
+ box-sizing: border-box;
862
+ line-height: 100%;
863
+ white-space: nowrap;
864
+ text-align: center;
865
+ text-decoration: none;
866
+ cursor: pointer;
867
+ padding-top: 8px;
868
+ padding-bottom: 8px;
869
+ border: 4px solid rgba(255, 255, 255, 0.5);
870
+ }
871
+
872
+ .biglink.align-left {
873
+ padding-left: 8px;
874
+ }
875
+
876
+ .biglink:hover {
877
+ background-image: repeating-linear-gradient(
878
+ -45deg,
879
+ #222,
880
+ #222 10px,
881
+ #111 10px,
882
+ #111 20px
883
+ );
884
+ animation: stripes 4s linear infinite;
885
+ background-size: 200% 200%;
886
+ }
887
+
888
+ ${biglink_color_classes.join('\n')}
889
+
890
+ input[type="radio"]::checked + label {
891
+ cursor: default;
892
+ }
893
+
894
+ .stripes {
895
+ background-image: repeating-linear-gradient(
896
+ -45deg,
897
+ #222,
898
+ #222 10px,
899
+ #111 10px,
900
+ #111 20px
901
+ );
902
+ animation: stripes 4s linear infinite;
903
+ background-size: 200% 200%;
904
+ }
905
+
906
+ @keyframes stripes {
907
+ 100% {
908
+ background-position: -28px -28px;
909
+ }
910
+ }
911
+
912
+ .biglink.stretch {
913
+ margin: -100em;
914
+ padding: 100em;
915
+ border-color: transparent;
916
+ }
917
+
918
+ .biglink a {
919
+ text-decoration: none;
920
+ }
921
+
922
+ .biglink:hover, .block.selected > .biglink {
923
+ border-color: #FFF;
924
+ color: #FFF;
925
+ }
926
+
927
+ .biglink:hover a, .block.selected > .biglink a {
928
+ color: #FFF;
929
+ text-decoration: none;
930
+ }
931
+
932
+ th {
933
+ }
934
+
935
+ th.padded {
936
+ padding: 8px;
937
+ }
938
+
939
+ th.navigation {
940
+ font-size: 18px;
941
+ background: none;
942
+ border: 1px solid #F36;
943
+ }
944
+
945
+ th.navigation a {
946
+ display: block;
947
+ padding: 16px;
948
+ }
949
+
950
+ th.navigation a:hover {
951
+ background: #FFF;
952
+ color: #F00;
953
+ }
954
+
955
+ .month {
956
+ vertical-align: top;
957
+ }
958
+
959
+ .month tr {
960
+ }
961
+
962
+ .weekday {
963
+ vertical-align: top;
964
+ padding: 0px;
965
+ }
966
+
967
+ .weekday-name {
968
+ display: block;
969
+ color: #666;
970
+ }
971
+
972
+ .weekday-date {
973
+ display: block;
974
+ }
975
+
976
+ .weekday-posts {
977
+ display: block;
978
+ word-wrap: anywhere;
979
+ text-align: left;
980
+ font-size: 80%;
981
+ margin-top: 8px;
982
+ padding: 0px;
983
+ }
984
+
985
+ .weekday-posts::after {
986
+ content: "";
987
+ display: table;
988
+ clear: both;
989
+ }
990
+
991
+ .weekday-post {
992
+ display: block;
993
+ float: left;
994
+ width: 25%;
995
+ text-align: center;
996
+ font-weight: normal;
997
+ color: transparent;
998
+ font-family: monospace;
999
+ aspect-ratio: 1 / 1;
1000
+ overflow: hidden;
1001
+ }
1002
+
1003
+ .weekday:hover .weekday-post {
1004
+ text-indent: 0px;
1005
+ background-color: transparent;
1006
+ }
1007
+
1008
+ .weekday-post.image {
1009
+ background: #FC3;
1010
+ }
1011
+
1012
+ .weekday-post.video {
1013
+ background: #F36;
1014
+ }
1015
+
1016
+ .weekday-post.audio {
1017
+ background: #09F;
1018
+ }
1019
+
1020
+ .weekday-post.text {
1021
+ background: #AAA;
1022
+ }
1023
+
1024
+ a.day {
1025
+ margin: 0 auto;
1026
+ display: block;
1027
+ padding: 8px;
1028
+ color: #FFF;
1029
+ text-decoration: none;
1030
+ width: 32px;
1031
+ height: 32px;
1032
+ line-height: 32px;
1033
+ border-radius: 32px;
1034
+ }
1035
+
1036
+ a.day:hover {
1037
+ background: #FFF;
1038
+ }
1039
+
1040
+ a.day.active {
1041
+ background: #FC3;
1042
+ color: #000;
1043
+ }
1044
+
1045
+ hr {
1046
+ border: none;
1047
+ border-top: 1px dashed #F00;
1048
+ background: none;
1049
+ margin: 32px 0px;
1050
+ }
1051
+
1052
+ .squarelink {
1053
+ height: 92px;
1054
+ width: 92px;
1055
+ font-size: 200%;
1056
+ aspect-ratio: 1 / 1;
1057
+ display: flex;
1058
+ align-items: center;
1059
+ justify-content: center;
1060
+ text-decoration: none;
1061
+ background: rgba(255, 255, 255, 0.25);
1062
+ color: #000;
1063
+ }
1064
+
1065
+ .squarelink:hover {
1066
+ background: #FFF;
1067
+ }
1068
+
1069
+ .squarelink.disabled {
1070
+ opacity: 0.5;
1071
+ cursor: not-allowed;
1072
+ }
1073
+
1074
+ .squarelink.disabled:hover {
1075
+ background: rgba(255, 255, 255, 0.25);
1076
+ }
1077
+
1078
+ .toast {
1079
+ pointer-events: none;
1080
+ animation: fadeout 4s;
1081
+ animation-fill-mode: forwards;
1082
+ position: fixed;
1083
+ top: 0;
1084
+ bottom: 0;
1085
+ left: 0;
1086
+ right: 0;
1087
+ z-index: 1;
1088
+ background: rgba(0, 0, 0, 0.75);
1089
+ }
1090
+
1091
+ @keyframes fadeout {
1092
+ 0% {
1093
+ opacity: 1;
1094
+ }
1095
+
1096
+ 50% {
1097
+ opacity: 1;
1098
+ }
1099
+
1100
+ 100% {
1101
+ opacity: 0;
1102
+ }
1103
+ }
1104
+
1105
+ @keyframes block {
1106
+ 0% {
1107
+ }
1108
+
1109
+ 100% {
1110
+ display: none;
1111
+ pointer-events: none;
1112
+ }
1113
+ }
1114
+
1115
+ input[type="checkbox"].toast-toggle {
1116
+ position: fixed;
1117
+ width: 100%;
1118
+ height: 100%;
1119
+ z-index: 2;
1120
+ display: block;
1121
+ opacity: 0;
1122
+ animation: block 4s;
1123
+ animation-fill-mode: forwards;
1124
+ }
1125
+
1126
+ .toast-toggle:checked {
1127
+ display: none;
1128
+ pointer-events: none;
1129
+ }
1130
+
1131
+ .toast-toggle:checked + .toast {
1132
+ display: none;
1133
+ }
1134
+
1135
+ .toast-wrapper {
1136
+ position: relative;
1137
+ top: 25%;
1138
+ left: 0px;
1139
+ right: 0px;
1140
+ box-sizing: border-box;
1141
+ color: #FFF;
1142
+ background: #000;
1143
+ }
1144
+
1145
+ .toast-message {
1146
+ position: relative;
1147
+ z-index: 1;
1148
+ max-width: 720px;
1149
+ margin: 0 auto;
1150
+ padding: 32px;
1151
+ text-align: center;
1152
+ font-size: 150%;
1153
+ }
1154
+
1155
+ .toast-background {
1156
+ position: absolute;
1157
+ inset: 8px 0px;
1158
+ background: rgba(0, 0, 0, 0.5);
1159
+ z-index: 0;
1160
+ }
1161
+
1162
+ aside {
1163
+ font-size: 80%;
1164
+ font-style: italic;
1165
+ color: #BBB;
1166
+ padding: 16px;
1167
+ }
1168
+
1169
+ .ephemeral {
1170
+ color: #777;
1171
+ font-size: 85%;
1172
+ font-style: italic;
1173
+ }
1174
+
1175
+ datalist {
1176
+ display: flex;
1177
+ flex-direction: column;
1178
+ justify-content: space-between;
1179
+ width: 100%;
1180
+ writing-mode: vertical-lr;
1181
+ }
1182
+
1183
+ datalist option {
1184
+ padding: 0;
1185
+ transform: rotate(-90deg);
1186
+ }
1187
+
1188
+ .resource-list {
1189
+ border-collapse: collapse;
1190
+ white-space: nowrap;
1191
+ }
1192
+
1193
+ .resource-list td {
1194
+ padding: 8px;
1195
+ }
1196
+
1197
+ .resource-list td, .resource-list th {
1198
+ border-right: 1px solid #FFF;
1199
+ border-bottom: 1px solid #FFF;
1200
+ }
1201
+
1202
+ .resource-list th {
1203
+ border-top: 1px solid #FFF;
1204
+ }
1205
+
1206
+ .resource-list td:first-child, .resource-list th:first-child {
1207
+ border-left: 1px solid #FFF;
1208
+ }
1209
+ </style>
1210
+
1211
+ ${utility_css}
1212
+ `;
1213
+ }
1214
+ getPath() {
1215
+ return this.path;
1216
+ }
1217
+ getReferrerUrl() {
1218
+ return this.referrer_url;
1219
+ }
1220
+ }
1221
+ exports.default = BaseResultSerializer;
1222
+ //# sourceMappingURL=base.js.map