Add missing module level comments to the CKEditor API
authorAlexander Ebert <ebert@woltlab.com>
Mon, 3 Apr 2023 16:26:25 +0000 (18:26 +0200)
committerAlexander Ebert <ebert@woltlab.com>
Mon, 3 Apr 2023 16:26:25 +0000 (18:26 +0200)
18 files changed:
ts/WoltLabSuite/Core/Component/Ckeditor.ts
ts/WoltLabSuite/Core/Component/Ckeditor/Attachment.ts
ts/WoltLabSuite/Core/Component/Ckeditor/Autosave.ts
ts/WoltLabSuite/Core/Component/Ckeditor/Configuration.ts
ts/WoltLabSuite/Core/Component/Ckeditor/Event.ts
ts/WoltLabSuite/Core/Component/Ckeditor/Media.ts
ts/WoltLabSuite/Core/Component/Ckeditor/Mention.ts
ts/WoltLabSuite/Core/Component/Ckeditor/Quote.ts
ts/WoltLabSuite/Core/Component/Ckeditor/SubmitOnEnter.ts
wcfsetup/install/files/js/WoltLabSuite/Core/Component/Ckeditor.js
wcfsetup/install/files/js/WoltLabSuite/Core/Component/Ckeditor/Attachment.js
wcfsetup/install/files/js/WoltLabSuite/Core/Component/Ckeditor/Autosave.js
wcfsetup/install/files/js/WoltLabSuite/Core/Component/Ckeditor/Configuration.js
wcfsetup/install/files/js/WoltLabSuite/Core/Component/Ckeditor/Event.js
wcfsetup/install/files/js/WoltLabSuite/Core/Component/Ckeditor/Media.js
wcfsetup/install/files/js/WoltLabSuite/Core/Component/Ckeditor/Mention.js
wcfsetup/install/files/js/WoltLabSuite/Core/Component/Ckeditor/Quote.js
wcfsetup/install/files/js/WoltLabSuite/Core/Component/Ckeditor/SubmitOnEnter.js

index 83ac83a27db86867ced5459d614ba3e459b71315..f7c21f7f0f1a307751c48beda1ae5422022ecee7 100644 (file)
@@ -1,3 +1,17 @@
+/**
+ * The userland API for interactions with a CKEditor instance.
+ *
+ * The purpose of this implementation is to provide a stable and strongly typed
+ * API that can be reused in components. Access to the raw API of CKEditor is
+ * not exposed, if you feel that you need additional helper methods then please
+ * submit an issue.
+ *
+ * @author Alexander Ebert
+ * @copyright 2001-2023 WoltLab GmbH
+ * @license GNU Lesser General Public License <http://opensource.org/licenses/lgpl-license.php>
+ * @since 6.0
+ */
+
 import { setup as setupAttachment } from "./Ckeditor/Attachment";
 import { setup as setupMedia } from "./Ckeditor/Media";
 import { setup as setupMention } from "./Ckeditor/Mention";
index 7241dcb88b89032d32fe56db998aa78910bb46e9..7107e0060f8342e3735b7dd810151c1e0a992788 100644 (file)
@@ -1,3 +1,12 @@
+/**
+ * Forwards upload requests from the editor to the attachment system.
+ *
+ * @author Alexander Ebert
+ * @copyright 2001-2023 WoltLab GmbH
+ * @license GNU Lesser General Public License <http://opensource.org/licenses/lgpl-license.php>
+ * @since 6.0
+ */
+
 import { dispatchToCkeditor, listenToCkeditor } from "./Event";
 
 import type { CKEditor } from "../Ckeditor";
index b2e0b07f37b9ac4f17d94fc13a42d6dfa036f245..7af3745d5592166a4a597ea8b73c0410fd27a401 100644 (file)
@@ -1,3 +1,13 @@
+/**
+ * Periodically stores the editor contents to the local storage. Opening the
+ * same view again offers to restore the stored contents.
+ *
+ * @author Alexander Ebert
+ * @copyright 2001-2023 WoltLab GmbH
+ * @license GNU Lesser General Public License <http://opensource.org/licenses/lgpl-license.php>
+ * @since 6.0
+ */
+
 import { getStoragePrefix } from "../../Core";
 import { getPhrase } from "../../Language";
 import { escapeHTML } from "../../StringUtil";
@@ -176,7 +186,6 @@ export function initializeAutosave(autosave: string, configuration: EditorConfig
 
       return Promise.resolve();
     },
-    // TODO: This should be longer, because exporting the data is potentially expensive.
-    waitingTime: 2_000,
+    waitingTime: 15_000,
   };
 }
index b59aceccf6f2fdc11917c7b40c02f0d626bed1f4..10edf00c8304ed232a2f70d56d69a5a82ed7ae17 100644 (file)
@@ -1,3 +1,12 @@
+/**
+ * Helper class to construct the CKEditor configuration.
+ *
+ * @author Alexander Ebert
+ * @copyright 2001-2023 WoltLab GmbH
+ * @license GNU Lesser General Public License <http://opensource.org/licenses/lgpl-license.php>
+ * @since 6.0
+ */
+
 import { getPhrase } from "../../Language";
 
 import type { EditorConfig } from "@ckeditor/ckeditor5-core/src/editor/editorconfig";
index cd2483b3e8e573be2ce8245388eddb05acea7857..e92ebb69a1f9382fd0dcfc316842a7141fc78516 100644 (file)
@@ -1,3 +1,13 @@
+/**
+ * Provides a strongly typed event interface for CKEditor on top of native DOM
+ * events to prevent memory leaks.
+ *
+ * @author Alexander Ebert
+ * @copyright 2001-2023 WoltLab GmbH
+ * @license GNU Lesser General Public License <http://opensource.org/licenses/lgpl-license.php>
+ * @since 6.0
+ */
+
 import type { CKEditor } from "../Ckeditor";
 import type { EditorConfig } from "@ckeditor/ckeditor5-core/src/editor/editorconfig";
 import type { Features } from "./Configuration";
index dc3ecd53229a076113d45bfe554a3c5ea7f890ed..169c41ba042ad6a3d2a89f75412a1cf3fc9d317c 100644 (file)
@@ -1,3 +1,12 @@
+/**
+ * Forwards upload requests from the editor to the media system.
+ *
+ * @author Alexander Ebert
+ * @copyright 2001-2023 WoltLab GmbH
+ * @license GNU Lesser General Public License <http://opensource.org/licenses/lgpl-license.php>
+ * @since 6.0
+ */
+
 import { dispatchToCkeditor, listenToCkeditor } from "./Event";
 
 type UploadResult = {
index 95e5cdac17b2365f788938724c51a282c3e57603..e6f3793e7e5b1b6fb0d6e7b9ce7d6f898b4d9873 100644 (file)
@@ -1,3 +1,12 @@
+/**
+ * Provides mention support for users and groups.
+ *
+ * @author Alexander Ebert
+ * @copyright 2001-2023 WoltLab GmbH
+ * @license GNU Lesser General Public License <http://opensource.org/licenses/lgpl-license.php>
+ * @since 6.0
+ */
+
 import { prepareRequest } from "../../Ajax/Backend";
 import { createFragmentFromHtml } from "../../Dom/Util";
 
index d5556994cb9e379139710804f63e2fc6161be221..dc93720095507fe51fdcbfa96a9b79f25f714de2 100644 (file)
@@ -1,3 +1,12 @@
+/**
+ * Inserts quotes into the editor.
+ *
+ * @author Alexander Ebert
+ * @copyright 2001-2023 WoltLab GmbH
+ * @license GNU Lesser General Public License <http://opensource.org/licenses/lgpl-license.php>
+ * @since 6.0
+ */
+
 import { escapeHTML } from "../../StringUtil";
 import { listenToCkeditor } from "./Event";
 
index 3ecf1feca4666e9890affc2cf22d0baa5e76dc85..b0f61bad1b1195c34f7539195a990631898ef76b 100644 (file)
@@ -1,3 +1,14 @@
+/**
+ * Modifies the behavior of the 'Enter' key to submit the editor instead of
+ * starting a new paragraph. 'Shift' + 'Enter' can be used to create a line
+ * break.
+ *
+ * @author Alexander Ebert
+ * @copyright 2001-2023 WoltLab GmbH
+ * @license GNU Lesser General Public License <http://opensource.org/licenses/lgpl-license.php>
+ * @since 6.0
+ */
+
 import { dispatchToCkeditor } from "./Event";
 
 import type { CKEditor } from "../Ckeditor";
index 7a250c56b8d7ebfeccdfdc3dca2dc4c926b071e2..9392572db39bd30d35d63fa2f7b9fc909f59d758 100644 (file)
@@ -1,3 +1,16 @@
+/**
+ * The userland API for interactions with a CKEditor instance.
+ *
+ * The purpose of this implementation is to provide a stable and strongly typed
+ * API that can be reused in components. Access to the raw API of CKEditor is
+ * not exposed, if you feel that you need additional helper methods then please
+ * submit an issue.
+ *
+ * @author Alexander Ebert
+ * @copyright 2001-2023 WoltLab GmbH
+ * @license GNU Lesser General Public License <http://opensource.org/licenses/lgpl-license.php>
+ * @since 6.0
+ */
 define(["require", "exports", "tslib", "./Ckeditor/Attachment", "./Ckeditor/Media", "./Ckeditor/Mention", "./Ckeditor/Quote", "./Ckeditor/Autosave", "./Ckeditor/Configuration", "./Ckeditor/Event", "./Ckeditor/SubmitOnEnter", "../Devtools", "ckeditor5-bundle"], function (require, exports, tslib_1, Attachment_1, Media_1, Mention_1, Quote_1, Autosave_1, Configuration_1, Event_1, SubmitOnEnter_1, Devtools_1) {
     "use strict";
     Object.defineProperty(exports, "__esModule", { value: true });
index 052106eb0b42dd8bfa2afe86af1c5043904adb27..602afc2a4e607b41bd032401132e825b874a7f77 100644 (file)
@@ -1,3 +1,11 @@
+/**
+ * Forwards upload requests from the editor to the attachment system.
+ *
+ * @author Alexander Ebert
+ * @copyright 2001-2023 WoltLab GmbH
+ * @license GNU Lesser General Public License <http://opensource.org/licenses/lgpl-license.php>
+ * @since 6.0
+ */
 define(["require", "exports", "./Event"], function (require, exports, Event_1) {
     "use strict";
     Object.defineProperty(exports, "__esModule", { value: true });
index 269c684bc797cb5bdf56196ad9469282472ecb4a..5521bd31df28050f8f3db15eb59298f4a1c81de1 100644 (file)
@@ -1,3 +1,12 @@
+/**
+ * Periodically stores the editor contents to the local storage. Opening the
+ * same view again offers to restore the stored contents.
+ *
+ * @author Alexander Ebert
+ * @copyright 2001-2023 WoltLab GmbH
+ * @license GNU Lesser General Public License <http://opensource.org/licenses/lgpl-license.php>
+ * @since 6.0
+ */
 define(["require", "exports", "../../Core", "../../Language", "../../StringUtil", "./Event"], function (require, exports, Core_1, Language_1, StringUtil_1, Event_1) {
     "use strict";
     Object.defineProperty(exports, "__esModule", { value: true });
@@ -141,8 +150,7 @@ define(["require", "exports", "../../Core", "../../Language", "../../StringUtil"
                 saveDraft(autosave, editor.data.get());
                 return Promise.resolve();
             },
-            // TODO: This should be longer, because exporting the data is potentially expensive.
-            waitingTime: 2000,
+            waitingTime: 15000,
         };
     }
     exports.initializeAutosave = initializeAutosave;
index ff3ea25c11d6ceee1568595c949a3aaf5b38a5b5..92bbcf431e537eeb1d08c4ba2c2bec6b3f6c5138 100644 (file)
@@ -1,3 +1,11 @@
+/**
+ * Helper class to construct the CKEditor configuration.
+ *
+ * @author Alexander Ebert
+ * @copyright 2001-2023 WoltLab GmbH
+ * @license GNU Lesser General Public License <http://opensource.org/licenses/lgpl-license.php>
+ * @since 6.0
+ */
 define(["require", "exports", "../../Language"], function (require, exports, Language_1) {
     "use strict";
     Object.defineProperty(exports, "__esModule", { value: true });
index 983a70f49e3dfd9d2ec036fbef721a5bf4cb3732..f689552a65cb635792d2edfafd2b628aae13a239 100644 (file)
@@ -1,3 +1,12 @@
+/**
+ * Provides a strongly typed event interface for CKEditor on top of native DOM
+ * events to prevent memory leaks.
+ *
+ * @author Alexander Ebert
+ * @copyright 2001-2023 WoltLab GmbH
+ * @license GNU Lesser General Public License <http://opensource.org/licenses/lgpl-license.php>
+ * @since 6.0
+ */
 define(["require", "exports"], function (require, exports) {
     "use strict";
     Object.defineProperty(exports, "__esModule", { value: true });
index 1e2bbf449492fa2ff333663aec14371524aac35d..d765e5ec70246bacff1b13bccdbae4dfdf4dc510 100644 (file)
@@ -1,3 +1,11 @@
+/**
+ * Forwards upload requests from the editor to the media system.
+ *
+ * @author Alexander Ebert
+ * @copyright 2001-2023 WoltLab GmbH
+ * @license GNU Lesser General Public License <http://opensource.org/licenses/lgpl-license.php>
+ * @since 6.0
+ */
 var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
     if (k2 === undefined) k2 = k;
     var desc = Object.getOwnPropertyDescriptor(m, k);
index b594a347108efef5fd2594290cb991b191b4fb51..00d22952b17c286cae18fafb9b7f8d970bc9fb59 100644 (file)
@@ -1,3 +1,11 @@
+/**
+ * Provides mention support for users and groups.
+ *
+ * @author Alexander Ebert
+ * @copyright 2001-2023 WoltLab GmbH
+ * @license GNU Lesser General Public License <http://opensource.org/licenses/lgpl-license.php>
+ * @since 6.0
+ */
 define(["require", "exports", "../../Ajax/Backend", "../../Dom/Util", "./Event"], function (require, exports, Backend_1, Util_1, Event_1) {
     "use strict";
     Object.defineProperty(exports, "__esModule", { value: true });
index 8c59ed719cc1703f7b94a761f5c5930ec6799ecd..9543b16451c9b38ad4907655021c15e865979637 100644 (file)
@@ -1,3 +1,11 @@
+/**
+ * Inserts quotes into the editor.
+ *
+ * @author Alexander Ebert
+ * @copyright 2001-2023 WoltLab GmbH
+ * @license GNU Lesser General Public License <http://opensource.org/licenses/lgpl-license.php>
+ * @since 6.0
+ */
 define(["require", "exports", "../../StringUtil", "./Event"], function (require, exports, StringUtil_1, Event_1) {
     "use strict";
     Object.defineProperty(exports, "__esModule", { value: true });
index 513717ee2faaee7bdefdc6cda468d141d8ae1028..2c87427199220f93b0527da7eb43812fd5ca53d6 100644 (file)
@@ -1,3 +1,13 @@
+/**
+ * Modifies the behavior of the 'Enter' key to submit the editor instead of
+ * starting a new paragraph. 'Shift' + 'Enter' can be used to create a line
+ * break.
+ *
+ * @author Alexander Ebert
+ * @copyright 2001-2023 WoltLab GmbH
+ * @license GNU Lesser General Public License <http://opensource.org/licenses/lgpl-license.php>
+ * @since 6.0
+ */
 define(["require", "exports", "./Event"], function (require, exports, Event_1) {
     "use strict";
     Object.defineProperty(exports, "__esModule", { value: true });