From 66b808d02967c2abfe15416ee9cb30b99964c5ce Mon Sep 17 00:00:00 2001 From: Dr Masroor Ehsan Date: Thu, 9 Jan 2025 13:33:31 +0600 Subject: [PATCH] wip --- .../Controllers/Staff/ReportController.php | 23 +- app/Models/StudyReport.php | 15 +- app/Services/DocumentGenerator/Word.php | 39 + app/Services/ReportStorage.php | 24 + ...2_28_051451_create_study_reports_table.php | 2 +- package-lock.json | 885 +++++++++++++++++- package.json | 1 + .../views/staff/reports/create.blade.php | 42 +- resources/views/staff/reports/popup.blade.php | 4 +- resources/views/staff/reports/view.blade.php | 5 + 10 files changed, 1004 insertions(+), 36 deletions(-) create mode 100644 app/Services/DocumentGenerator/Word.php create mode 100644 app/Services/ReportStorage.php create mode 100644 resources/views/staff/reports/view.blade.php diff --git a/app/Http/Controllers/Staff/ReportController.php b/app/Http/Controllers/Staff/ReportController.php index 9dfaff8..ed68d93 100644 --- a/app/Http/Controllers/Staff/ReportController.php +++ b/app/Http/Controllers/Staff/ReportController.php @@ -8,12 +8,13 @@ use App\Http\Requests\CreateReportRequest; use App\Models\Study; use App\Models\StudyReport; +use App\Services\DocumentGenerator\Word; class ReportController extends HashidControllerBase { public function popup() { - abort_unless(me()->may([Permission::ReportEdit, Permission::ReportDictate, Permission::ReportDownload]), 403); + abort_unless(me()->may([Permission::ReportEdit, Permission::ReportDictate, Permission::ReportApprove, Permission::ReportDownload]), 403); $this->decodeKeys(); $study = Study::with(['reports.radiologist', 'readingPhysician'])->findOrFail($this->key); if (me()->isRadiologist()) { @@ -37,7 +38,7 @@ public function save(CreateReportRequest $request) 'report_status' => ReportStatus::Preliminary->value, 'read_by_id' => me()->id, ]); - $report->setContent(request('content')); + $report->saveContent(request('content')); $report->save(); return redirect()->back()->with('success', 'Report saved successfully.'); @@ -58,4 +59,22 @@ public function create() return view('staff.reports.create', compact('study', 'report')); } + + public function view(string $uuid) + { + abort_unless(me()->may([Permission::ReportEdit, Permission::ReportDictate, Permission::ReportApprove, Permission::ReportDownload]), 403); + // $study = Study::with(['reports.radiologist', 'readingPhysician'])->where('accession_number', $uuid)->firstOrFail(); + $report = StudyReport::where('accession_number', $uuid)->firstOrFail(); + + return view('staff.reports.view', compact('report')); + } + + public function download(string $uuid) + { + abort_unless(me()->may([Permission::ReportEdit, Permission::ReportDictate, Permission::ReportApprove, Permission::ReportDownload]), 403); + // $study = Study::with(['reports.radiologist', 'readingPhysician'])->where('accession_number', $uuid)->firstOrFail(); + $report = StudyReport::where('accession_number', $uuid)->firstOrFail(); + + return Word::make($report->study, $report); + } } diff --git a/app/Models/StudyReport.php b/app/Models/StudyReport.php index 44eeb68..b973474 100644 --- a/app/Models/StudyReport.php +++ b/app/Models/StudyReport.php @@ -2,10 +2,11 @@ namespace App\Models; -use App\Casts\Compressed; use App\Domain\Report\ReportStatus; +use App\Services\ReportStorage; use Illuminate\Database\Eloquent\Concerns\HasTimestamps; use Illuminate\Database\Eloquent\Relations\BelongsTo; +use Illuminate\Support\Facades\Storage; class StudyReport extends BaseModel { @@ -56,6 +57,17 @@ public function viewUrl(): string return route('staff.report.view', $this->accession_number); } + public function saveContent(string $content): void + { + $this->file_path = ReportStorage::reportFilepath($this->study); + Storage::disk('public')->put($this->file_path, $content); + } + + public function getContent(): ?string + { + return Storage::disk('public')->get($this->file_path); + } + /** * @return array */ @@ -63,7 +75,6 @@ protected function casts(): array { return [ 'report_status' => ReportStatus::class, - 'content' => Compressed::class, ]; } } diff --git a/app/Services/DocumentGenerator/Word.php b/app/Services/DocumentGenerator/Word.php new file mode 100644 index 0000000..ac0936a --- /dev/null +++ b/app/Services/DocumentGenerator/Word.php @@ -0,0 +1,39 @@ +getContent(); + + $phpWord = new PhpWord; + $section = $phpWord->addSection(); + + // Add HTML content to the section + Html::addHtml($section, $html, false, false); + + // Save the document as a DOCX file + // $filename = 'report.docx'; + $writer = IOFactory::createWriter($phpWord, 'Word2007'); + ob_start(); + $writer->save('php://output'); + $content = ob_get_clean(); + + return $content; + + $content = view('staff.reports.word', compact('study', 'report'))->render(); + $filepath = ReportStorage::reportFilepath($study, '.docx'); + Storage::put($filepath, $content); + + return $filepath; + + } +} diff --git a/app/Services/ReportStorage.php b/app/Services/ReportStorage.php new file mode 100644 index 0000000..07dc4a5 --- /dev/null +++ b/app/Services/ReportStorage.php @@ -0,0 +1,24 @@ +id : $study); + + return 'reports/' . substr($hash, 0, 2) . '/' . substr($hash, 2, 2) . '/' . substr($hash, 4, 2); + } + + public static function reportFilepath(Study|int $study, string $ext = '.html'): string + { + $directory = self::studyFolder($study); + $filename = Str::random(16) . $ext; + + return $directory . '/' . $filename; + } +} diff --git a/database/migrations/2024_12_28_051451_create_study_reports_table.php b/database/migrations/2024_12_28_051451_create_study_reports_table.php index 6474645..dd4833d 100644 --- a/database/migrations/2024_12_28_051451_create_study_reports_table.php +++ b/database/migrations/2024_12_28_051451_create_study_reports_table.php @@ -26,7 +26,7 @@ public function up(): void $table->foreignIdFor(User::class, 'approved_by_id')->index()->nullable()->constrained()->nullOnDelete(); $table->string('report_title')->nullable(); - $table->binary('content')->nullable(); + $table->string('file_path'); $table->string('remarks')->nullable(); $table->timestamps(); }); diff --git a/package-lock.json b/package-lock.json index be70e24..22ad742 100644 --- a/package-lock.json +++ b/package-lock.json @@ -40,6 +40,7 @@ "bootstrap-select": "1.14.0-beta3", "bs-stepper": "1.7.0", "chart.js": "4.4.3", + "ckeditor5": "^44.1.0", "cleave.js": "1.6.0", "clipboard": "2.0.11", "datatables.net-bs5": "1.13.11", @@ -1802,6 +1803,762 @@ "node": ">=6.9.0" } }, + "node_modules/@ckeditor/ckeditor5-adapter-ckfinder": { + "version": "44.1.0", + "resolved": "https://registry.npmjs.org/@ckeditor/ckeditor5-adapter-ckfinder/-/ckeditor5-adapter-ckfinder-44.1.0.tgz", + "integrity": "sha512-RCamOkjMHlhUg7MhRbP/ZZJ7mq0zk1hj6Hg25efv22WHb2SNnesiwzLtYoyc6ess72/1CYpgZPfamhxsOTXoMA==", + "license": "SEE LICENSE IN LICENSE.md", + "dependencies": { + "@ckeditor/ckeditor5-core": "44.1.0", + "@ckeditor/ckeditor5-upload": "44.1.0", + "ckeditor5": "44.1.0" + } + }, + "node_modules/@ckeditor/ckeditor5-alignment": { + "version": "44.1.0", + "resolved": "https://registry.npmjs.org/@ckeditor/ckeditor5-alignment/-/ckeditor5-alignment-44.1.0.tgz", + "integrity": "sha512-t+xIuGiG9pvG4lkglSQfXwoZU9zCPUvrBYISI8G0WAJXdWdmyWUN2Vj84CKQQ6LRgnqq/eybSR2O2l02psgtZw==", + "license": "SEE LICENSE IN LICENSE.md", + "dependencies": { + "@ckeditor/ckeditor5-core": "44.1.0", + "@ckeditor/ckeditor5-ui": "44.1.0", + "@ckeditor/ckeditor5-utils": "44.1.0", + "ckeditor5": "44.1.0" + } + }, + "node_modules/@ckeditor/ckeditor5-autoformat": { + "version": "44.1.0", + "resolved": "https://registry.npmjs.org/@ckeditor/ckeditor5-autoformat/-/ckeditor5-autoformat-44.1.0.tgz", + "integrity": "sha512-JHJh+iD9//sYsVlwdGZTV+ScPMlWjqFuR7xwF2QbU7xYGMqTy4mPnFvkT6fF73e3PZvtAzgENLU45pUAS9oo/A==", + "license": "SEE LICENSE IN LICENSE.md", + "dependencies": { + "@ckeditor/ckeditor5-core": "44.1.0", + "@ckeditor/ckeditor5-engine": "44.1.0", + "@ckeditor/ckeditor5-typing": "44.1.0", + "@ckeditor/ckeditor5-utils": "44.1.0", + "ckeditor5": "44.1.0" + } + }, + "node_modules/@ckeditor/ckeditor5-autosave": { + "version": "44.1.0", + "resolved": "https://registry.npmjs.org/@ckeditor/ckeditor5-autosave/-/ckeditor5-autosave-44.1.0.tgz", + "integrity": "sha512-KlkJcgu5THkfdwzYzVa9zKkADGd8J5VW5kRrRSK4oJYONA5mmiZ9UsIcoIk2QbGnDGnZW1Iih5Pjrvz0HYjIKw==", + "license": "SEE LICENSE IN LICENSE.md", + "dependencies": { + "@ckeditor/ckeditor5-core": "44.1.0", + "@ckeditor/ckeditor5-utils": "44.1.0", + "ckeditor5": "44.1.0", + "lodash-es": "4.17.21" + } + }, + "node_modules/@ckeditor/ckeditor5-basic-styles": { + "version": "44.1.0", + "resolved": "https://registry.npmjs.org/@ckeditor/ckeditor5-basic-styles/-/ckeditor5-basic-styles-44.1.0.tgz", + "integrity": "sha512-/pZ0wBdXlv8AX43O/nZ4ENg8Xk/SwZZMAJKKVZa3SwtxNRmeGYTNKIEQEQouWF1PLz3SEZ8L5sS/j9AYX7f5Xw==", + "license": "SEE LICENSE IN LICENSE.md", + "dependencies": { + "@ckeditor/ckeditor5-core": "44.1.0", + "@ckeditor/ckeditor5-typing": "44.1.0", + "@ckeditor/ckeditor5-ui": "44.1.0", + "ckeditor5": "44.1.0" + } + }, + "node_modules/@ckeditor/ckeditor5-block-quote": { + "version": "44.1.0", + "resolved": "https://registry.npmjs.org/@ckeditor/ckeditor5-block-quote/-/ckeditor5-block-quote-44.1.0.tgz", + "integrity": "sha512-mApNvTckUbAjeHFaPg7+Je3zTkJDDsM5FWNJJuzaRhl5TBvyW9BM+p7AN8B9cx+pj2Srzlbu+056c0jg4ibCIw==", + "license": "SEE LICENSE IN LICENSE.md", + "dependencies": { + "@ckeditor/ckeditor5-core": "44.1.0", + "@ckeditor/ckeditor5-enter": "44.1.0", + "@ckeditor/ckeditor5-typing": "44.1.0", + "@ckeditor/ckeditor5-ui": "44.1.0", + "@ckeditor/ckeditor5-utils": "44.1.0", + "ckeditor5": "44.1.0" + } + }, + "node_modules/@ckeditor/ckeditor5-bookmark": { + "version": "44.1.0", + "resolved": "https://registry.npmjs.org/@ckeditor/ckeditor5-bookmark/-/ckeditor5-bookmark-44.1.0.tgz", + "integrity": "sha512-gzUOspXUb4sN308JbeVWLGxGdFHeYpobiBn8Zj2/Niw6y+/4ZQfssn7fLhKnoHM12bzoxYYq3DvcMUrs78Ukvg==", + "license": "SEE LICENSE IN LICENSE.md", + "dependencies": { + "@ckeditor/ckeditor5-core": "44.1.0", + "@ckeditor/ckeditor5-engine": "44.1.0", + "@ckeditor/ckeditor5-ui": "44.1.0", + "@ckeditor/ckeditor5-utils": "44.1.0", + "@ckeditor/ckeditor5-widget": "44.1.0", + "ckeditor5": "44.1.0" + } + }, + "node_modules/@ckeditor/ckeditor5-ckbox": { + "version": "44.1.0", + "resolved": "https://registry.npmjs.org/@ckeditor/ckeditor5-ckbox/-/ckeditor5-ckbox-44.1.0.tgz", + "integrity": "sha512-J+vJckr25Oi3KjJcTYIIUFa2KIXHitknW8iNPegavCV/FFNieTezvvpjJzROlWRiy+U7CRYvgrNbSJXHx5pR6Q==", + "license": "SEE LICENSE IN LICENSE.md", + "dependencies": { + "@ckeditor/ckeditor5-core": "44.1.0", + "@ckeditor/ckeditor5-engine": "44.1.0", + "@ckeditor/ckeditor5-ui": "44.1.0", + "@ckeditor/ckeditor5-upload": "44.1.0", + "@ckeditor/ckeditor5-utils": "44.1.0", + "blurhash": "2.0.5", + "ckeditor5": "44.1.0", + "lodash-es": "4.17.21" + } + }, + "node_modules/@ckeditor/ckeditor5-ckfinder": { + "version": "44.1.0", + "resolved": "https://registry.npmjs.org/@ckeditor/ckeditor5-ckfinder/-/ckeditor5-ckfinder-44.1.0.tgz", + "integrity": "sha512-oRWHiejta6irRuO78KmtQEiYRrzcad+BycTrFsLRCIZp0hzKx5Vp5olAhXodX+d8gZaV8fJJpswdK0LTjrfKNA==", + "license": "SEE LICENSE IN LICENSE.md", + "dependencies": { + "@ckeditor/ckeditor5-core": "44.1.0", + "@ckeditor/ckeditor5-ui": "44.1.0", + "@ckeditor/ckeditor5-utils": "44.1.0", + "ckeditor5": "44.1.0" + } + }, + "node_modules/@ckeditor/ckeditor5-clipboard": { + "version": "44.1.0", + "resolved": "https://registry.npmjs.org/@ckeditor/ckeditor5-clipboard/-/ckeditor5-clipboard-44.1.0.tgz", + "integrity": "sha512-Z5P1P6ATLVy/c7AvI3Akt3mEqQfCnhZmz4EdAS7sF34WTayrHQ/TQjdte/0mN+6LXcQV1whhXe1xLM7GVsG+bg==", + "license": "SEE LICENSE IN LICENSE.md", + "dependencies": { + "@ckeditor/ckeditor5-core": "44.1.0", + "@ckeditor/ckeditor5-engine": "44.1.0", + "@ckeditor/ckeditor5-ui": "44.1.0", + "@ckeditor/ckeditor5-utils": "44.1.0", + "@ckeditor/ckeditor5-widget": "44.1.0", + "lodash-es": "4.17.21" + } + }, + "node_modules/@ckeditor/ckeditor5-cloud-services": { + "version": "44.1.0", + "resolved": "https://registry.npmjs.org/@ckeditor/ckeditor5-cloud-services/-/ckeditor5-cloud-services-44.1.0.tgz", + "integrity": "sha512-3Nr8EM6CyRpNkmm+7tbhg/4H16SY5Tqo0TLGHtXdyRxx7y2GLev5OsN01qBhSSGifALTCHyOWymxt5Qo9V5wXg==", + "license": "SEE LICENSE IN LICENSE.md", + "dependencies": { + "@ckeditor/ckeditor5-core": "44.1.0", + "@ckeditor/ckeditor5-utils": "44.1.0", + "ckeditor5": "44.1.0" + } + }, + "node_modules/@ckeditor/ckeditor5-code-block": { + "version": "44.1.0", + "resolved": "https://registry.npmjs.org/@ckeditor/ckeditor5-code-block/-/ckeditor5-code-block-44.1.0.tgz", + "integrity": "sha512-2z4ULLehgMjwxvo0a26UkA2p3MdDITGVDpt7FZkO+P9XCim/j5DdXK4/xVNXLbrOifpFq/5kfrAZvjDX0lPMIw==", + "license": "SEE LICENSE IN LICENSE.md", + "dependencies": { + "@ckeditor/ckeditor5-clipboard": "44.1.0", + "@ckeditor/ckeditor5-core": "44.1.0", + "@ckeditor/ckeditor5-engine": "44.1.0", + "@ckeditor/ckeditor5-enter": "44.1.0", + "@ckeditor/ckeditor5-ui": "44.1.0", + "@ckeditor/ckeditor5-utils": "44.1.0", + "ckeditor5": "44.1.0" + } + }, + "node_modules/@ckeditor/ckeditor5-core": { + "version": "44.1.0", + "resolved": "https://registry.npmjs.org/@ckeditor/ckeditor5-core/-/ckeditor5-core-44.1.0.tgz", + "integrity": "sha512-vBxHT/g37uWM5QKj0i7++clGd85htX9rPtlqzjz3I26NJQvcKCmT39Szv3oPFzAJKuUaqKso5iLq+Sw+VtQRBg==", + "license": "SEE LICENSE IN LICENSE.md", + "dependencies": { + "@ckeditor/ckeditor5-engine": "44.1.0", + "@ckeditor/ckeditor5-utils": "44.1.0", + "@ckeditor/ckeditor5-watchdog": "44.1.0", + "lodash-es": "4.17.21" + } + }, + "node_modules/@ckeditor/ckeditor5-easy-image": { + "version": "44.1.0", + "resolved": "https://registry.npmjs.org/@ckeditor/ckeditor5-easy-image/-/ckeditor5-easy-image-44.1.0.tgz", + "integrity": "sha512-hmn9MmVebb/abTBq1ci2fYi7uK93Dt2F3lDYErqsFWCxZ4S2PQW3+qON44E5phE9aDKOLEZ/B61niGrLgcWS5g==", + "license": "SEE LICENSE IN LICENSE.md", + "dependencies": { + "@ckeditor/ckeditor5-core": "44.1.0", + "@ckeditor/ckeditor5-upload": "44.1.0", + "@ckeditor/ckeditor5-utils": "44.1.0", + "ckeditor5": "44.1.0" + } + }, + "node_modules/@ckeditor/ckeditor5-editor-balloon": { + "version": "44.1.0", + "resolved": "https://registry.npmjs.org/@ckeditor/ckeditor5-editor-balloon/-/ckeditor5-editor-balloon-44.1.0.tgz", + "integrity": "sha512-BVxO3WECurMZEhxIVb2JMqeMcqaqefvc/YfrWNRriVyK7muW47EH74IIZdCXSm7g5i0npEIk808sKqA0t/xR0g==", + "license": "SEE LICENSE IN LICENSE.md", + "dependencies": { + "@ckeditor/ckeditor5-core": "44.1.0", + "@ckeditor/ckeditor5-engine": "44.1.0", + "@ckeditor/ckeditor5-ui": "44.1.0", + "@ckeditor/ckeditor5-utils": "44.1.0", + "ckeditor5": "44.1.0", + "lodash-es": "4.17.21" + } + }, + "node_modules/@ckeditor/ckeditor5-editor-classic": { + "version": "44.1.0", + "resolved": "https://registry.npmjs.org/@ckeditor/ckeditor5-editor-classic/-/ckeditor5-editor-classic-44.1.0.tgz", + "integrity": "sha512-rZtJ1KpJGxW8iWE0wVhp9giiYiu3XypjsmthkK8oeMf4+8wTr3ySncLKKts3/BDiAcFdJnog5lv5LQbrAVqO+Q==", + "license": "SEE LICENSE IN LICENSE.md", + "dependencies": { + "@ckeditor/ckeditor5-core": "44.1.0", + "@ckeditor/ckeditor5-engine": "44.1.0", + "@ckeditor/ckeditor5-ui": "44.1.0", + "@ckeditor/ckeditor5-utils": "44.1.0", + "ckeditor5": "44.1.0", + "lodash-es": "4.17.21" + } + }, + "node_modules/@ckeditor/ckeditor5-editor-decoupled": { + "version": "44.1.0", + "resolved": "https://registry.npmjs.org/@ckeditor/ckeditor5-editor-decoupled/-/ckeditor5-editor-decoupled-44.1.0.tgz", + "integrity": "sha512-pRnDrPVyIM4uCLCjhgzvRk4v63Cc1u9Nc21yx1igswvxAfhGx2BMO+JiC6+8PAHT/mOSbgFB83N+A823sms3uA==", + "license": "SEE LICENSE IN LICENSE.md", + "dependencies": { + "@ckeditor/ckeditor5-core": "44.1.0", + "@ckeditor/ckeditor5-engine": "44.1.0", + "@ckeditor/ckeditor5-ui": "44.1.0", + "@ckeditor/ckeditor5-utils": "44.1.0", + "ckeditor5": "44.1.0", + "lodash-es": "4.17.21" + } + }, + "node_modules/@ckeditor/ckeditor5-editor-inline": { + "version": "44.1.0", + "resolved": "https://registry.npmjs.org/@ckeditor/ckeditor5-editor-inline/-/ckeditor5-editor-inline-44.1.0.tgz", + "integrity": "sha512-NglsnVkzioMU9XirmjyTM/DKSL/rzkBBwFaZFiTVyGfhuVzTUClPxGtxKOlML2v0Mtqg/OdRUMPMIo+qtjymeQ==", + "license": "SEE LICENSE IN LICENSE.md", + "dependencies": { + "@ckeditor/ckeditor5-core": "44.1.0", + "@ckeditor/ckeditor5-engine": "44.1.0", + "@ckeditor/ckeditor5-ui": "44.1.0", + "@ckeditor/ckeditor5-utils": "44.1.0", + "ckeditor5": "44.1.0", + "lodash-es": "4.17.21" + } + }, + "node_modules/@ckeditor/ckeditor5-editor-multi-root": { + "version": "44.1.0", + "resolved": "https://registry.npmjs.org/@ckeditor/ckeditor5-editor-multi-root/-/ckeditor5-editor-multi-root-44.1.0.tgz", + "integrity": "sha512-NAMBGIDn/xMGHXv2IeLRDa84yW9OwHri9H5NdJJ4F+gFtiQbOhIhTQj4nZ8TuLIaYr2NOUrTpTrkw3frgd0lLg==", + "license": "SEE LICENSE IN LICENSE.md", + "dependencies": { + "@ckeditor/ckeditor5-core": "44.1.0", + "@ckeditor/ckeditor5-engine": "44.1.0", + "@ckeditor/ckeditor5-ui": "44.1.0", + "@ckeditor/ckeditor5-utils": "44.1.0", + "ckeditor5": "44.1.0", + "lodash-es": "4.17.21" + } + }, + "node_modules/@ckeditor/ckeditor5-engine": { + "version": "44.1.0", + "resolved": "https://registry.npmjs.org/@ckeditor/ckeditor5-engine/-/ckeditor5-engine-44.1.0.tgz", + "integrity": "sha512-+149hsqfZX+Q+ho7P64XUrIpkLqX2jGBuEWjC2ZZYujv1ZIOWOMihkpJL8jE6Vcplee6vsTXGSj2sIHNoOp+3g==", + "license": "SEE LICENSE IN LICENSE.md", + "dependencies": { + "@ckeditor/ckeditor5-utils": "44.1.0", + "lodash-es": "4.17.21" + } + }, + "node_modules/@ckeditor/ckeditor5-enter": { + "version": "44.1.0", + "resolved": "https://registry.npmjs.org/@ckeditor/ckeditor5-enter/-/ckeditor5-enter-44.1.0.tgz", + "integrity": "sha512-NmtqxEov25rYRN8Uq7MRabsqYfvL6ZNj/mvBHqn3PE9aHE+lTwD51D3zgCw1RN2sipXsvedwo3g+NynAtS/HIw==", + "license": "SEE LICENSE IN LICENSE.md", + "dependencies": { + "@ckeditor/ckeditor5-core": "44.1.0", + "@ckeditor/ckeditor5-engine": "44.1.0", + "@ckeditor/ckeditor5-utils": "44.1.0" + } + }, + "node_modules/@ckeditor/ckeditor5-essentials": { + "version": "44.1.0", + "resolved": "https://registry.npmjs.org/@ckeditor/ckeditor5-essentials/-/ckeditor5-essentials-44.1.0.tgz", + "integrity": "sha512-UWSc2lSCqztfy3LLeuHfyKU/oSbFyw/4KEbQso9DsMPQ4vdmX/sW6BoklCYF9mPJrg+zNSseJj9T/M1Q+Z6U0Q==", + "license": "SEE LICENSE IN LICENSE.md", + "dependencies": { + "@ckeditor/ckeditor5-clipboard": "44.1.0", + "@ckeditor/ckeditor5-core": "44.1.0", + "@ckeditor/ckeditor5-enter": "44.1.0", + "@ckeditor/ckeditor5-select-all": "44.1.0", + "@ckeditor/ckeditor5-typing": "44.1.0", + "@ckeditor/ckeditor5-ui": "44.1.0", + "@ckeditor/ckeditor5-undo": "44.1.0", + "ckeditor5": "44.1.0" + } + }, + "node_modules/@ckeditor/ckeditor5-find-and-replace": { + "version": "44.1.0", + "resolved": "https://registry.npmjs.org/@ckeditor/ckeditor5-find-and-replace/-/ckeditor5-find-and-replace-44.1.0.tgz", + "integrity": "sha512-SwZYRdXpYCu3t3+k9fxO8JXjNb/Q/OK3nmtVBNly/ZWYmORGQd3ua9XlipcnwIB8aBQqhuV/izDKqSiFZc23zA==", + "license": "SEE LICENSE IN LICENSE.md", + "dependencies": { + "@ckeditor/ckeditor5-core": "44.1.0", + "@ckeditor/ckeditor5-ui": "44.1.0", + "@ckeditor/ckeditor5-utils": "44.1.0", + "ckeditor5": "44.1.0", + "lodash-es": "4.17.21" + } + }, + "node_modules/@ckeditor/ckeditor5-font": { + "version": "44.1.0", + "resolved": "https://registry.npmjs.org/@ckeditor/ckeditor5-font/-/ckeditor5-font-44.1.0.tgz", + "integrity": "sha512-q4r7I7C2uG9gkBx9WlARNN5ZWp4USHVFS2kLTyMVAN1/iHAKIx03m+N3W0FTZVpXV+xscn7H6KaLcQXmWc4OiQ==", + "license": "SEE LICENSE IN LICENSE.md", + "dependencies": { + "@ckeditor/ckeditor5-core": "44.1.0", + "@ckeditor/ckeditor5-engine": "44.1.0", + "@ckeditor/ckeditor5-ui": "44.1.0", + "@ckeditor/ckeditor5-utils": "44.1.0", + "ckeditor5": "44.1.0" + } + }, + "node_modules/@ckeditor/ckeditor5-heading": { + "version": "44.1.0", + "resolved": "https://registry.npmjs.org/@ckeditor/ckeditor5-heading/-/ckeditor5-heading-44.1.0.tgz", + "integrity": "sha512-cROqN/dnq8xBdxMQoe+1Zjh8bfoVePh6WSl+wjcc4OIozYe/V2QAmCODpYiVm4RntenH0IidHteSTCqtGM4L9w==", + "license": "SEE LICENSE IN LICENSE.md", + "dependencies": { + "@ckeditor/ckeditor5-core": "44.1.0", + "@ckeditor/ckeditor5-engine": "44.1.0", + "@ckeditor/ckeditor5-paragraph": "44.1.0", + "@ckeditor/ckeditor5-ui": "44.1.0", + "@ckeditor/ckeditor5-utils": "44.1.0", + "ckeditor5": "44.1.0" + } + }, + "node_modules/@ckeditor/ckeditor5-highlight": { + "version": "44.1.0", + "resolved": "https://registry.npmjs.org/@ckeditor/ckeditor5-highlight/-/ckeditor5-highlight-44.1.0.tgz", + "integrity": "sha512-bj7DBo1miBf6f7LPLiNa5inziXBKt6dFQupWAgJNJvPxYeGf4jTKDeVc9FLBESJ7eOWKjmCjaNeSsV2smHTAKQ==", + "license": "SEE LICENSE IN LICENSE.md", + "dependencies": { + "@ckeditor/ckeditor5-core": "44.1.0", + "@ckeditor/ckeditor5-ui": "44.1.0", + "ckeditor5": "44.1.0" + } + }, + "node_modules/@ckeditor/ckeditor5-horizontal-line": { + "version": "44.1.0", + "resolved": "https://registry.npmjs.org/@ckeditor/ckeditor5-horizontal-line/-/ckeditor5-horizontal-line-44.1.0.tgz", + "integrity": "sha512-xwqQPJQsgwEvbZb3EqjFEcvj1tmlxcX9hFL9I66oGblfYNEIX8Q4DWxbjWCDrfY2IvLO3zNUDI9J5EcxSnd9Pw==", + "license": "SEE LICENSE IN LICENSE.md", + "dependencies": { + "@ckeditor/ckeditor5-core": "44.1.0", + "@ckeditor/ckeditor5-ui": "44.1.0", + "@ckeditor/ckeditor5-widget": "44.1.0", + "ckeditor5": "44.1.0" + } + }, + "node_modules/@ckeditor/ckeditor5-html-embed": { + "version": "44.1.0", + "resolved": "https://registry.npmjs.org/@ckeditor/ckeditor5-html-embed/-/ckeditor5-html-embed-44.1.0.tgz", + "integrity": "sha512-eFXTBHhvRIGflrgpNa2wP0W9IiHx2t2TxQX8881EbF/H3/LDqreyNR7LHBXXgPk1j+H5V/MOGAqG5ntlvq2SdQ==", + "license": "SEE LICENSE IN LICENSE.md", + "dependencies": { + "@ckeditor/ckeditor5-core": "44.1.0", + "@ckeditor/ckeditor5-ui": "44.1.0", + "@ckeditor/ckeditor5-utils": "44.1.0", + "@ckeditor/ckeditor5-widget": "44.1.0", + "ckeditor5": "44.1.0" + } + }, + "node_modules/@ckeditor/ckeditor5-html-support": { + "version": "44.1.0", + "resolved": "https://registry.npmjs.org/@ckeditor/ckeditor5-html-support/-/ckeditor5-html-support-44.1.0.tgz", + "integrity": "sha512-cBUtojLEreXNYV54B/FT1WBjV+dU5i8vsVKBmYw2QOxmaWl4i/wyEtzPh21Ytcsy2ApmIMT/X27ZppffnKcyGQ==", + "license": "SEE LICENSE IN LICENSE.md", + "dependencies": { + "@ckeditor/ckeditor5-core": "44.1.0", + "@ckeditor/ckeditor5-engine": "44.1.0", + "@ckeditor/ckeditor5-enter": "44.1.0", + "@ckeditor/ckeditor5-utils": "44.1.0", + "@ckeditor/ckeditor5-widget": "44.1.0", + "ckeditor5": "44.1.0", + "lodash-es": "4.17.21" + } + }, + "node_modules/@ckeditor/ckeditor5-image": { + "version": "44.1.0", + "resolved": "https://registry.npmjs.org/@ckeditor/ckeditor5-image/-/ckeditor5-image-44.1.0.tgz", + "integrity": "sha512-8BbS0y1YSGnQAiA6rTps05DIJ8CcdbGYb+1XFb8QOUCzJenFzNGAe4gnlEPw0zW1C8ZjdahRY1K2Fcb16/q7TQ==", + "license": "SEE LICENSE IN LICENSE.md", + "dependencies": { + "@ckeditor/ckeditor5-clipboard": "44.1.0", + "@ckeditor/ckeditor5-core": "44.1.0", + "@ckeditor/ckeditor5-engine": "44.1.0", + "@ckeditor/ckeditor5-typing": "44.1.0", + "@ckeditor/ckeditor5-ui": "44.1.0", + "@ckeditor/ckeditor5-undo": "44.1.0", + "@ckeditor/ckeditor5-upload": "44.1.0", + "@ckeditor/ckeditor5-utils": "44.1.0", + "@ckeditor/ckeditor5-widget": "44.1.0", + "ckeditor5": "44.1.0", + "lodash-es": "4.17.21" + } + }, + "node_modules/@ckeditor/ckeditor5-indent": { + "version": "44.1.0", + "resolved": "https://registry.npmjs.org/@ckeditor/ckeditor5-indent/-/ckeditor5-indent-44.1.0.tgz", + "integrity": "sha512-iFrtDVkXhbHHTJIs+yw0x9X/uEH0kyjQ5pQZM5fAzX6g9TFd71iiJ2l8xBSefXRcqEEPVaMWZgikBeRHmQDyOA==", + "license": "SEE LICENSE IN LICENSE.md", + "dependencies": { + "@ckeditor/ckeditor5-core": "44.1.0", + "@ckeditor/ckeditor5-engine": "44.1.0", + "@ckeditor/ckeditor5-ui": "44.1.0", + "@ckeditor/ckeditor5-utils": "44.1.0", + "ckeditor5": "44.1.0" + } + }, + "node_modules/@ckeditor/ckeditor5-language": { + "version": "44.1.0", + "resolved": "https://registry.npmjs.org/@ckeditor/ckeditor5-language/-/ckeditor5-language-44.1.0.tgz", + "integrity": "sha512-CudeLs2RvADdchJ6FFznsNrMYHDcOrj8CGuSgyTW9PcsnhAzUOYWuaunJ3xXd8MXwu6pGwEReVYuouc2JQQg6A==", + "license": "SEE LICENSE IN LICENSE.md", + "dependencies": { + "@ckeditor/ckeditor5-core": "44.1.0", + "@ckeditor/ckeditor5-ui": "44.1.0", + "@ckeditor/ckeditor5-utils": "44.1.0", + "ckeditor5": "44.1.0" + } + }, + "node_modules/@ckeditor/ckeditor5-link": { + "version": "44.1.0", + "resolved": "https://registry.npmjs.org/@ckeditor/ckeditor5-link/-/ckeditor5-link-44.1.0.tgz", + "integrity": "sha512-+tDlzrhOrl3TMlj01DsGJwQEsrXZl6A7fD4gFfYS3rO9sgGZSLU+fSxOwWHdQyBp1ujiJGsGFXmKFAUZxs7M/w==", + "license": "SEE LICENSE IN LICENSE.md", + "dependencies": { + "@ckeditor/ckeditor5-clipboard": "44.1.0", + "@ckeditor/ckeditor5-core": "44.1.0", + "@ckeditor/ckeditor5-engine": "44.1.0", + "@ckeditor/ckeditor5-typing": "44.1.0", + "@ckeditor/ckeditor5-ui": "44.1.0", + "@ckeditor/ckeditor5-utils": "44.1.0", + "@ckeditor/ckeditor5-widget": "44.1.0", + "ckeditor5": "44.1.0", + "lodash-es": "4.17.21" + } + }, + "node_modules/@ckeditor/ckeditor5-list": { + "version": "44.1.0", + "resolved": "https://registry.npmjs.org/@ckeditor/ckeditor5-list/-/ckeditor5-list-44.1.0.tgz", + "integrity": "sha512-lwUAtK68GfNVr1yI+VLom54K8F5bRZee8HKkzFZPgTCANYLUnmHGUNF9La7qETeqjNV6bljUnKwn/knOeserGg==", + "license": "SEE LICENSE IN LICENSE.md", + "dependencies": { + "@ckeditor/ckeditor5-clipboard": "44.1.0", + "@ckeditor/ckeditor5-core": "44.1.0", + "@ckeditor/ckeditor5-engine": "44.1.0", + "@ckeditor/ckeditor5-enter": "44.1.0", + "@ckeditor/ckeditor5-typing": "44.1.0", + "@ckeditor/ckeditor5-ui": "44.1.0", + "@ckeditor/ckeditor5-utils": "44.1.0", + "ckeditor5": "44.1.0" + } + }, + "node_modules/@ckeditor/ckeditor5-markdown-gfm": { + "version": "44.1.0", + "resolved": "https://registry.npmjs.org/@ckeditor/ckeditor5-markdown-gfm/-/ckeditor5-markdown-gfm-44.1.0.tgz", + "integrity": "sha512-ZlFa3xi8vSCCqs4cvfxjZrcXz87i7XIKAd+eTQdwoInQDJHnGpUcM67hKIMSU3E8AjEz+tXdsaauxSofZTS+zQ==", + "license": "SEE LICENSE IN LICENSE.md", + "dependencies": { + "@ckeditor/ckeditor5-clipboard": "44.1.0", + "@ckeditor/ckeditor5-core": "44.1.0", + "@ckeditor/ckeditor5-engine": "44.1.0", + "ckeditor5": "44.1.0", + "marked": "4.0.12", + "turndown": "7.2.0", + "turndown-plugin-gfm": "1.0.2" + } + }, + "node_modules/@ckeditor/ckeditor5-media-embed": { + "version": "44.1.0", + "resolved": "https://registry.npmjs.org/@ckeditor/ckeditor5-media-embed/-/ckeditor5-media-embed-44.1.0.tgz", + "integrity": "sha512-ymG55dCUv+i0o0th4+vYMvVHhC2DXTs6J+5t40tNvdMS7apt882Tbq9vAE6iqgQZbtQVVlRpQbGD0UByBO5LVA==", + "license": "SEE LICENSE IN LICENSE.md", + "dependencies": { + "@ckeditor/ckeditor5-clipboard": "44.1.0", + "@ckeditor/ckeditor5-core": "44.1.0", + "@ckeditor/ckeditor5-engine": "44.1.0", + "@ckeditor/ckeditor5-typing": "44.1.0", + "@ckeditor/ckeditor5-ui": "44.1.0", + "@ckeditor/ckeditor5-undo": "44.1.0", + "@ckeditor/ckeditor5-utils": "44.1.0", + "@ckeditor/ckeditor5-widget": "44.1.0", + "ckeditor5": "44.1.0" + } + }, + "node_modules/@ckeditor/ckeditor5-mention": { + "version": "44.1.0", + "resolved": "https://registry.npmjs.org/@ckeditor/ckeditor5-mention/-/ckeditor5-mention-44.1.0.tgz", + "integrity": "sha512-LJ2aT5nJ9I8eZT/E/RqD/iPv4fyU8MJqtGQXExEwwAfQDqkx0X5u3mv3uAR/HhyFyj6jFw+z26bTdt13wdSaEw==", + "license": "SEE LICENSE IN LICENSE.md", + "dependencies": { + "@ckeditor/ckeditor5-core": "44.1.0", + "@ckeditor/ckeditor5-typing": "44.1.0", + "@ckeditor/ckeditor5-ui": "44.1.0", + "@ckeditor/ckeditor5-utils": "44.1.0", + "ckeditor5": "44.1.0", + "lodash-es": "4.17.21" + } + }, + "node_modules/@ckeditor/ckeditor5-minimap": { + "version": "44.1.0", + "resolved": "https://registry.npmjs.org/@ckeditor/ckeditor5-minimap/-/ckeditor5-minimap-44.1.0.tgz", + "integrity": "sha512-V9xOrUqLxnrOGXOiQVu4QGLV0zam3xMCi+vVR3/jFrVEPRCY1swdC6JhT4PAYt5lPBbrlmyF7u+pZjal8I7F1Q==", + "license": "SEE LICENSE IN LICENSE.md", + "dependencies": { + "@ckeditor/ckeditor5-core": "44.1.0", + "@ckeditor/ckeditor5-engine": "44.1.0", + "@ckeditor/ckeditor5-ui": "44.1.0", + "@ckeditor/ckeditor5-utils": "44.1.0", + "ckeditor5": "44.1.0" + } + }, + "node_modules/@ckeditor/ckeditor5-page-break": { + "version": "44.1.0", + "resolved": "https://registry.npmjs.org/@ckeditor/ckeditor5-page-break/-/ckeditor5-page-break-44.1.0.tgz", + "integrity": "sha512-6uNuctQnPTr2WFcyKGdTQ/1gTkGmIhiZg8y9UMIY74aEW9AQfGwCaBkAO5AveaBTfmGBkSsAISS3T8k5OGsV0Q==", + "license": "SEE LICENSE IN LICENSE.md", + "dependencies": { + "@ckeditor/ckeditor5-core": "44.1.0", + "@ckeditor/ckeditor5-ui": "44.1.0", + "@ckeditor/ckeditor5-widget": "44.1.0", + "ckeditor5": "44.1.0" + } + }, + "node_modules/@ckeditor/ckeditor5-paragraph": { + "version": "44.1.0", + "resolved": "https://registry.npmjs.org/@ckeditor/ckeditor5-paragraph/-/ckeditor5-paragraph-44.1.0.tgz", + "integrity": "sha512-tfERMEQRrvM5zdZuiWC5IjCPtUrpncXY4ewn9mcGJ5KqmLaX3e+2dN4GVZpcagwOtZNQNQBONZnuWt9ZVkquFQ==", + "license": "SEE LICENSE IN LICENSE.md", + "dependencies": { + "@ckeditor/ckeditor5-core": "44.1.0", + "@ckeditor/ckeditor5-ui": "44.1.0", + "@ckeditor/ckeditor5-utils": "44.1.0" + } + }, + "node_modules/@ckeditor/ckeditor5-paste-from-office": { + "version": "44.1.0", + "resolved": "https://registry.npmjs.org/@ckeditor/ckeditor5-paste-from-office/-/ckeditor5-paste-from-office-44.1.0.tgz", + "integrity": "sha512-NIhtkFoDXNpOaPBDH6dDTU2BC3GUJ1rE5gUV0i4hrtOeERuk9EdkADCOBEHEm7UC31kCQ4si6wkry+d4oZ5FMw==", + "license": "SEE LICENSE IN LICENSE.md", + "dependencies": { + "@ckeditor/ckeditor5-clipboard": "44.1.0", + "@ckeditor/ckeditor5-core": "44.1.0", + "@ckeditor/ckeditor5-engine": "44.1.0", + "ckeditor5": "44.1.0" + } + }, + "node_modules/@ckeditor/ckeditor5-remove-format": { + "version": "44.1.0", + "resolved": "https://registry.npmjs.org/@ckeditor/ckeditor5-remove-format/-/ckeditor5-remove-format-44.1.0.tgz", + "integrity": "sha512-97ppktKeKIhGYrRKwfzVP0DOktcaY4gFXEtKINmse8kw0C7jO4SE82sDJxWSP/3h74oncZzd/q/Qa6P65JmhWA==", + "license": "SEE LICENSE IN LICENSE.md", + "dependencies": { + "@ckeditor/ckeditor5-core": "44.1.0", + "@ckeditor/ckeditor5-ui": "44.1.0", + "@ckeditor/ckeditor5-utils": "44.1.0", + "ckeditor5": "44.1.0" + } + }, + "node_modules/@ckeditor/ckeditor5-restricted-editing": { + "version": "44.1.0", + "resolved": "https://registry.npmjs.org/@ckeditor/ckeditor5-restricted-editing/-/ckeditor5-restricted-editing-44.1.0.tgz", + "integrity": "sha512-dsjeug3TCn32idHe4XWaD8ZBtKloAHSDYzv05uEuJDTEkTnSOp8ynVxUCKlTTMeHKjpRPr5kaxJkycqnxOqsvw==", + "license": "SEE LICENSE IN LICENSE.md", + "dependencies": { + "@ckeditor/ckeditor5-core": "44.1.0", + "@ckeditor/ckeditor5-engine": "44.1.0", + "@ckeditor/ckeditor5-ui": "44.1.0", + "@ckeditor/ckeditor5-utils": "44.1.0", + "ckeditor5": "44.1.0" + } + }, + "node_modules/@ckeditor/ckeditor5-select-all": { + "version": "44.1.0", + "resolved": "https://registry.npmjs.org/@ckeditor/ckeditor5-select-all/-/ckeditor5-select-all-44.1.0.tgz", + "integrity": "sha512-jQH9745sYWpQcZXC4z1lNS4XqrTJWHljWEMa4KKTZgo6zjR/L53tRZdIKbE6O/JgaW805Xpl74cJGXJvwre8VA==", + "license": "SEE LICENSE IN LICENSE.md", + "dependencies": { + "@ckeditor/ckeditor5-core": "44.1.0", + "@ckeditor/ckeditor5-ui": "44.1.0", + "@ckeditor/ckeditor5-utils": "44.1.0" + } + }, + "node_modules/@ckeditor/ckeditor5-show-blocks": { + "version": "44.1.0", + "resolved": "https://registry.npmjs.org/@ckeditor/ckeditor5-show-blocks/-/ckeditor5-show-blocks-44.1.0.tgz", + "integrity": "sha512-qPjba3VFXgRnnEjlZAfv1XgfC1jNpYUWpfxlniZixvcZ1bEOzEX6rkEqBioNgGFWBU8siPTPiwI2mmT/8/58Vw==", + "license": "SEE LICENSE IN LICENSE.md", + "dependencies": { + "@ckeditor/ckeditor5-core": "44.1.0", + "@ckeditor/ckeditor5-ui": "44.1.0", + "ckeditor5": "44.1.0" + } + }, + "node_modules/@ckeditor/ckeditor5-source-editing": { + "version": "44.1.0", + "resolved": "https://registry.npmjs.org/@ckeditor/ckeditor5-source-editing/-/ckeditor5-source-editing-44.1.0.tgz", + "integrity": "sha512-gg/tWANOiJckvXxKqwthkvR531bPuen+lJN3y2qnqMKMQLLNbWWIUoTuE3PZRHDprT0JmTjnvlHrwsaSdpOkVg==", + "license": "SEE LICENSE IN LICENSE.md", + "dependencies": { + "@ckeditor/ckeditor5-core": "44.1.0", + "@ckeditor/ckeditor5-theme-lark": "44.1.0", + "@ckeditor/ckeditor5-ui": "44.1.0", + "@ckeditor/ckeditor5-utils": "44.1.0", + "ckeditor5": "44.1.0" + } + }, + "node_modules/@ckeditor/ckeditor5-special-characters": { + "version": "44.1.0", + "resolved": "https://registry.npmjs.org/@ckeditor/ckeditor5-special-characters/-/ckeditor5-special-characters-44.1.0.tgz", + "integrity": "sha512-btw7qEPjrdp/XigtXOXy1KkK481PEeuJ5xdPD2xLlWvZkF0tGbEqIpDIMxkW1w7NmmC+5Aa8qJqXkV6dN4jZ5A==", + "license": "SEE LICENSE IN LICENSE.md", + "dependencies": { + "@ckeditor/ckeditor5-core": "44.1.0", + "@ckeditor/ckeditor5-typing": "44.1.0", + "@ckeditor/ckeditor5-ui": "44.1.0", + "@ckeditor/ckeditor5-utils": "44.1.0", + "ckeditor5": "44.1.0" + } + }, + "node_modules/@ckeditor/ckeditor5-style": { + "version": "44.1.0", + "resolved": "https://registry.npmjs.org/@ckeditor/ckeditor5-style/-/ckeditor5-style-44.1.0.tgz", + "integrity": "sha512-A6udrCj1IxuiPE8OGue/aDtoqs8ZAPsbabnT9OS46WBlDGjXaSStXD7Dx6uJwEkaRdmhdGaObi4UnF7gkHRXHA==", + "license": "SEE LICENSE IN LICENSE.md", + "dependencies": { + "@ckeditor/ckeditor5-core": "44.1.0", + "@ckeditor/ckeditor5-typing": "44.1.0", + "@ckeditor/ckeditor5-ui": "44.1.0", + "@ckeditor/ckeditor5-utils": "44.1.0", + "ckeditor5": "44.1.0", + "lodash-es": "4.17.21" + } + }, + "node_modules/@ckeditor/ckeditor5-table": { + "version": "44.1.0", + "resolved": "https://registry.npmjs.org/@ckeditor/ckeditor5-table/-/ckeditor5-table-44.1.0.tgz", + "integrity": "sha512-8iQUW5apSYFrsJhguW0ROPBf+gmKhtP75KIeal6GdEtYlOMA8vP/ixUhQB5HZBmecfAVULyu1fF4YfGzHelZhw==", + "license": "SEE LICENSE IN LICENSE.md", + "dependencies": { + "@ckeditor/ckeditor5-clipboard": "44.1.0", + "@ckeditor/ckeditor5-core": "44.1.0", + "@ckeditor/ckeditor5-engine": "44.1.0", + "@ckeditor/ckeditor5-ui": "44.1.0", + "@ckeditor/ckeditor5-utils": "44.1.0", + "@ckeditor/ckeditor5-widget": "44.1.0", + "ckeditor5": "44.1.0", + "lodash-es": "4.17.21" + } + }, + "node_modules/@ckeditor/ckeditor5-theme-lark": { + "version": "44.1.0", + "resolved": "https://registry.npmjs.org/@ckeditor/ckeditor5-theme-lark/-/ckeditor5-theme-lark-44.1.0.tgz", + "integrity": "sha512-Ym9ZKtQBqh5xOYGVa+va6CtYJSbhqIfVOsoCRZnMTzg3RTfwp8F78yeWUdplF6DS4JaM966yQumX9DcJGYn5AA==", + "license": "SEE LICENSE IN LICENSE.md", + "dependencies": { + "@ckeditor/ckeditor5-ui": "44.1.0" + } + }, + "node_modules/@ckeditor/ckeditor5-typing": { + "version": "44.1.0", + "resolved": "https://registry.npmjs.org/@ckeditor/ckeditor5-typing/-/ckeditor5-typing-44.1.0.tgz", + "integrity": "sha512-YlIpXSp2mkzgCCwqa4Dd870K4UvKsjlHRDod50G8VSz2qFCkE6PaLGGBAci1IoZ5nBXZMpCrnhrkQ1jAJwx2RA==", + "license": "SEE LICENSE IN LICENSE.md", + "dependencies": { + "@ckeditor/ckeditor5-core": "44.1.0", + "@ckeditor/ckeditor5-engine": "44.1.0", + "@ckeditor/ckeditor5-utils": "44.1.0", + "lodash-es": "4.17.21" + } + }, + "node_modules/@ckeditor/ckeditor5-ui": { + "version": "44.1.0", + "resolved": "https://registry.npmjs.org/@ckeditor/ckeditor5-ui/-/ckeditor5-ui-44.1.0.tgz", + "integrity": "sha512-Qga/eO6/4rCzK6m/JLMVq0gbgNDEV7K/J+ida1UQFYxrMric7qfriusT1q0Y+6jFYuGMdyLg0e0imORbMyw9Zw==", + "license": "SEE LICENSE IN LICENSE.md", + "dependencies": { + "@ckeditor/ckeditor5-core": "44.1.0", + "@ckeditor/ckeditor5-engine": "44.1.0", + "@ckeditor/ckeditor5-utils": "44.1.0", + "color-convert": "2.0.1", + "color-parse": "1.4.2", + "lodash-es": "4.17.21", + "vanilla-colorful": "0.7.2" + } + }, + "node_modules/@ckeditor/ckeditor5-undo": { + "version": "44.1.0", + "resolved": "https://registry.npmjs.org/@ckeditor/ckeditor5-undo/-/ckeditor5-undo-44.1.0.tgz", + "integrity": "sha512-sULkc7Pvbc431uZCjzcAKd//jYE3B8fT8PEOFG8pYRnQJHc5GyodvH0RmXDhCtKCGtzvh1Dlpb4iSNpPNpVvJQ==", + "license": "SEE LICENSE IN LICENSE.md", + "dependencies": { + "@ckeditor/ckeditor5-core": "44.1.0", + "@ckeditor/ckeditor5-engine": "44.1.0", + "@ckeditor/ckeditor5-ui": "44.1.0" + } + }, + "node_modules/@ckeditor/ckeditor5-upload": { + "version": "44.1.0", + "resolved": "https://registry.npmjs.org/@ckeditor/ckeditor5-upload/-/ckeditor5-upload-44.1.0.tgz", + "integrity": "sha512-+608NL4Jl6t2PA02Ft8myPV5r2oXwD+4wTCLKg4Oh2KPQYCyGOm5vj8dLxwWNsbMXZrdPxeQOK3UHq8bxYyI6A==", + "license": "SEE LICENSE IN LICENSE.md", + "dependencies": { + "@ckeditor/ckeditor5-core": "44.1.0", + "@ckeditor/ckeditor5-utils": "44.1.0" + } + }, + "node_modules/@ckeditor/ckeditor5-utils": { + "version": "44.1.0", + "resolved": "https://registry.npmjs.org/@ckeditor/ckeditor5-utils/-/ckeditor5-utils-44.1.0.tgz", + "integrity": "sha512-PILjaPvEMuQ0qlnPAFeNTTQcLuXgGionSxaxF8HGnZolaqWnsJ11xGYxqUslNOGtdZNp/88/FC9TjCY/ksiibg==", + "license": "SEE LICENSE IN LICENSE.md", + "dependencies": { + "@ckeditor/ckeditor5-ui": "44.1.0", + "lodash-es": "4.17.21" + } + }, + "node_modules/@ckeditor/ckeditor5-watchdog": { + "version": "44.1.0", + "resolved": "https://registry.npmjs.org/@ckeditor/ckeditor5-watchdog/-/ckeditor5-watchdog-44.1.0.tgz", + "integrity": "sha512-fTwYEW1TbbxC7PVmZtfWfwHT5aMREfBTDvH3KQWKpowTcoAiMBlQQKA/lvkRJ1bFMp4AZFjqs1IWZyap/sanAg==", + "license": "SEE LICENSE IN LICENSE.md", + "dependencies": { + "lodash-es": "4.17.21" + } + }, + "node_modules/@ckeditor/ckeditor5-widget": { + "version": "44.1.0", + "resolved": "https://registry.npmjs.org/@ckeditor/ckeditor5-widget/-/ckeditor5-widget-44.1.0.tgz", + "integrity": "sha512-dBG1EFJjq38wF0k1p3R2yIfZRHwgY5+hLuF1sp02q/lUJu59U/rPscfjj4dGpE4eKaqCD9z/UNEtOjPGnaJzKw==", + "license": "SEE LICENSE IN LICENSE.md", + "dependencies": { + "@ckeditor/ckeditor5-core": "44.1.0", + "@ckeditor/ckeditor5-engine": "44.1.0", + "@ckeditor/ckeditor5-enter": "44.1.0", + "@ckeditor/ckeditor5-typing": "44.1.0", + "@ckeditor/ckeditor5-ui": "44.1.0", + "@ckeditor/ckeditor5-utils": "44.1.0", + "lodash-es": "4.17.21" + } + }, + "node_modules/@ckeditor/ckeditor5-word-count": { + "version": "44.1.0", + "resolved": "https://registry.npmjs.org/@ckeditor/ckeditor5-word-count/-/ckeditor5-word-count-44.1.0.tgz", + "integrity": "sha512-dM8jeZfRA2nodWdE1Ty3ZzaAl3M523ri9/ahLpG/JcCud2QZn9XRPrEwaIxC/1VtZg/Z2SUuI2LcPrbtPkQ0UQ==", + "license": "SEE LICENSE IN LICENSE.md", + "dependencies": { + "@ckeditor/ckeditor5-core": "44.1.0", + "@ckeditor/ckeditor5-ui": "44.1.0", + "@ckeditor/ckeditor5-utils": "44.1.0", + "ckeditor5": "44.1.0", + "lodash-es": "4.17.21" + } + }, "node_modules/@esbuild/aix-ppc64": { "version": "0.24.2", "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.24.2.tgz", @@ -3392,6 +4149,12 @@ "node": ">=6.0.0" } }, + "node_modules/@mixmark-io/domino": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@mixmark-io/domino/-/domino-2.2.0.tgz", + "integrity": "sha512-Y28PR25bHXUg88kCV7nivXrP2Nj2RueZ3/l/jdx6J9f8J4nsEGcgX0Qe6lt7Pa+J79+kPiJU3LguR6O/6zrLOw==", + "license": "BSD-2-Clause" + }, "node_modules/@nodelib/fs.scandir": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", @@ -4665,6 +5428,12 @@ "superagent": "^3.8.3" } }, + "node_modules/blurhash": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/blurhash/-/blurhash-2.0.5.tgz", + "integrity": "sha512-cRygWd7kGBQO3VEhPiTgq4Wc43ctsM+o46urrmPOiuAe+07fzlSB9OJVdpgDL0jPqXUVQ9ht7aq7kxOeJHRK+w==", + "license": "MIT" + }, "node_modules/bootstrap": { "version": "5.3.3", "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-5.3.3.tgz", @@ -5082,6 +5851,72 @@ "node": ">=6.0" } }, + "node_modules/ckeditor5": { + "version": "44.1.0", + "resolved": "https://registry.npmjs.org/ckeditor5/-/ckeditor5-44.1.0.tgz", + "integrity": "sha512-6e1KFUE2giaSI0ZOKfAAFF5Tk7PF5DCyKVROPY9/46tti9AZpUFUzr7NhBsZjyMiMX1eqxqfsSZT7f9tKgcVAQ==", + "license": "SEE LICENSE IN LICENSE.md", + "dependencies": { + "@ckeditor/ckeditor5-adapter-ckfinder": "44.1.0", + "@ckeditor/ckeditor5-alignment": "44.1.0", + "@ckeditor/ckeditor5-autoformat": "44.1.0", + "@ckeditor/ckeditor5-autosave": "44.1.0", + "@ckeditor/ckeditor5-basic-styles": "44.1.0", + "@ckeditor/ckeditor5-block-quote": "44.1.0", + "@ckeditor/ckeditor5-bookmark": "44.1.0", + "@ckeditor/ckeditor5-ckbox": "44.1.0", + "@ckeditor/ckeditor5-ckfinder": "44.1.0", + "@ckeditor/ckeditor5-clipboard": "44.1.0", + "@ckeditor/ckeditor5-cloud-services": "44.1.0", + "@ckeditor/ckeditor5-code-block": "44.1.0", + "@ckeditor/ckeditor5-core": "44.1.0", + "@ckeditor/ckeditor5-easy-image": "44.1.0", + "@ckeditor/ckeditor5-editor-balloon": "44.1.0", + "@ckeditor/ckeditor5-editor-classic": "44.1.0", + "@ckeditor/ckeditor5-editor-decoupled": "44.1.0", + "@ckeditor/ckeditor5-editor-inline": "44.1.0", + "@ckeditor/ckeditor5-editor-multi-root": "44.1.0", + "@ckeditor/ckeditor5-engine": "44.1.0", + "@ckeditor/ckeditor5-enter": "44.1.0", + "@ckeditor/ckeditor5-essentials": "44.1.0", + "@ckeditor/ckeditor5-find-and-replace": "44.1.0", + "@ckeditor/ckeditor5-font": "44.1.0", + "@ckeditor/ckeditor5-heading": "44.1.0", + "@ckeditor/ckeditor5-highlight": "44.1.0", + "@ckeditor/ckeditor5-horizontal-line": "44.1.0", + "@ckeditor/ckeditor5-html-embed": "44.1.0", + "@ckeditor/ckeditor5-html-support": "44.1.0", + "@ckeditor/ckeditor5-image": "44.1.0", + "@ckeditor/ckeditor5-indent": "44.1.0", + "@ckeditor/ckeditor5-language": "44.1.0", + "@ckeditor/ckeditor5-link": "44.1.0", + "@ckeditor/ckeditor5-list": "44.1.0", + "@ckeditor/ckeditor5-markdown-gfm": "44.1.0", + "@ckeditor/ckeditor5-media-embed": "44.1.0", + "@ckeditor/ckeditor5-mention": "44.1.0", + "@ckeditor/ckeditor5-minimap": "44.1.0", + "@ckeditor/ckeditor5-page-break": "44.1.0", + "@ckeditor/ckeditor5-paragraph": "44.1.0", + "@ckeditor/ckeditor5-paste-from-office": "44.1.0", + "@ckeditor/ckeditor5-remove-format": "44.1.0", + "@ckeditor/ckeditor5-restricted-editing": "44.1.0", + "@ckeditor/ckeditor5-select-all": "44.1.0", + "@ckeditor/ckeditor5-show-blocks": "44.1.0", + "@ckeditor/ckeditor5-source-editing": "44.1.0", + "@ckeditor/ckeditor5-special-characters": "44.1.0", + "@ckeditor/ckeditor5-style": "44.1.0", + "@ckeditor/ckeditor5-table": "44.1.0", + "@ckeditor/ckeditor5-theme-lark": "44.1.0", + "@ckeditor/ckeditor5-typing": "44.1.0", + "@ckeditor/ckeditor5-ui": "44.1.0", + "@ckeditor/ckeditor5-undo": "44.1.0", + "@ckeditor/ckeditor5-upload": "44.1.0", + "@ckeditor/ckeditor5-utils": "44.1.0", + "@ckeditor/ckeditor5-watchdog": "44.1.0", + "@ckeditor/ckeditor5-widget": "44.1.0", + "@ckeditor/ckeditor5-word-count": "44.1.0" + } + }, "node_modules/classlist-polyfill": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/classlist-polyfill/-/classlist-polyfill-1.2.0.tgz", @@ -5173,7 +6008,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, "license": "MIT", "dependencies": { "color-name": "~1.1.4" @@ -5186,9 +6020,17 @@ "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true, "license": "MIT" }, + "node_modules/color-parse": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/color-parse/-/color-parse-1.4.2.tgz", + "integrity": "sha512-RI7s49/8yqDj3fECFZjUI1Yi0z/Gq1py43oNJivAIIDSyJiOZLfYCRQEgn8HEVAj++PcRe8AnL2XF0fRJ3BTnA==", + "license": "MIT", + "dependencies": { + "color-name": "^1.0.0" + } + }, "node_modules/combined-stream": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", @@ -8468,6 +9310,12 @@ "dev": true, "license": "MIT" }, + "node_modules/lodash-es": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz", + "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==", + "license": "MIT" + }, "node_modules/lodash.debounce": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", @@ -8561,6 +9409,18 @@ "vt-pbf": "^3.1.3" } }, + "node_modules/marked": { + "version": "4.0.12", + "resolved": "https://registry.npmjs.org/marked/-/marked-4.0.12.tgz", + "integrity": "sha512-hgibXWrEDNBWgGiK18j/4lkS6ihTe9sxtV4Q1OQppb/0zzyPSzoFANBa5MfsG/zgsWklmNnhm0XACZOH/0HBiQ==", + "license": "MIT", + "bin": { + "marked": "bin/marked.js" + }, + "engines": { + "node": ">= 12" + } + }, "node_modules/masonry-layout": { "version": "4.2.2", "resolved": "https://registry.npmjs.org/masonry-layout/-/masonry-layout-4.2.2.tgz", @@ -11711,6 +12571,21 @@ "dev": true, "license": "0BSD" }, + "node_modules/turndown": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/turndown/-/turndown-7.2.0.tgz", + "integrity": "sha512-eCZGBN4nNNqM9Owkv9HAtWRYfLA4h909E/WGAWWBpmB275ehNhZyk87/Tpvjbp0jjNl9XwCsbe6bm6CqFsgD+A==", + "license": "MIT", + "dependencies": { + "@mixmark-io/domino": "^2.2.0" + } + }, + "node_modules/turndown-plugin-gfm": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/turndown-plugin-gfm/-/turndown-plugin-gfm-1.0.2.tgz", + "integrity": "sha512-vwz9tfvF7XN/jE0dGoBei3FXWuvll78ohzCZQuOb+ZjWrs3a0XhQVomJEb2Qh4VHTPNRO4GPZh0V7VRbiWwkRg==", + "license": "MIT" + }, "node_modules/type-check": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", @@ -12035,6 +12910,12 @@ "node": ">= 0.4.0" } }, + "node_modules/vanilla-colorful": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/vanilla-colorful/-/vanilla-colorful-0.7.2.tgz", + "integrity": "sha512-z2YZusTFC6KnLERx1cgoIRX2CjPRP0W75N+3CC6gbvdX5Ch47rZkEMGO2Xnf+IEmi3RiFLxS18gayMA27iU7Kg==", + "license": "MIT" + }, "node_modules/vary": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", diff --git a/package.json b/package.json index 1f83f46..394863c 100644 --- a/package.json +++ b/package.json @@ -136,6 +136,7 @@ "bootstrap-select": "1.14.0-beta3", "bs-stepper": "1.7.0", "chart.js": "4.4.3", + "ckeditor5": "^44.1.0", "cleave.js": "1.6.0", "clipboard": "2.0.11", "datatables.net-bs5": "1.13.11", diff --git a/resources/views/staff/reports/create.blade.php b/resources/views/staff/reports/create.blade.php index ab93106..0ba2c2f 100644 --- a/resources/views/staff/reports/create.blade.php +++ b/resources/views/staff/reports/create.blade.php @@ -3,44 +3,33 @@ - CKEditor 5 Sample + SAVE -
-
- -
- -
-
-
-
- @csrf - -
-
- -
-
+ + + @csrf + +
+
+
- - +
-
+ +
@@ -268,8 +257,7 @@ class: 'ck-heading_heading6' } ] }, - initialData: - '', + initialData: '{!! $report?->getContent() !!}', licenseKey: LICENSE_KEY, link: { addTargetToExternalLinks: true, diff --git a/resources/views/staff/reports/popup.blade.php b/resources/views/staff/reports/popup.blade.php index a7d16b7..92ef65c 100644 --- a/resources/views/staff/reports/popup.blade.php +++ b/resources/views/staff/reports/popup.blade.php @@ -4,8 +4,8 @@ {{ $report->created_at }} {{ $report->report_status->name }} {{ $report->radiologist?->name }} - - + VW + DL @endforeach diff --git a/resources/views/staff/reports/view.blade.php b/resources/views/staff/reports/view.blade.php new file mode 100644 index 0000000..0d37138 --- /dev/null +++ b/resources/views/staff/reports/view.blade.php @@ -0,0 +1,5 @@ + + + {!! $report->getContent() !!} + +