feat(ckeditor): integrate CKEditor 5 with custom plugins and styles
- Added CKEditor 5 integration with custom plugins for enhanced functionality. - Implemented a unique ID generator for component instances. - Created a dedicated SCSS file for CKEditor styles to ensure proper styling. - Updated the CkEditorComponent to utilize the new setup and improve data handling.
This commit is contained in:
parent
87dbf384ca
commit
a27f0bf4d8
91 changed files with 3088 additions and 138017 deletions
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "uwil/gen-game-web",
|
||||
"version": "4.0.9",
|
||||
"version": "4.1.0",
|
||||
"type": "project",
|
||||
"description": "Game generator",
|
||||
"support": {
|
||||
|
|
|
|||
|
|
@ -17,6 +17,8 @@
|
|||
* @link http://htmlpurifier.org/live/configdoc/plain.html
|
||||
*/
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
// phpcs:disable Generic.Files.LineLength.TooLong
|
||||
return [
|
||||
'encoding' => 'UTF-8',
|
||||
|
|
@ -25,38 +27,36 @@ return [
|
|||
'cacheFileMode' => 0755,
|
||||
'settings' => [
|
||||
'default' => [
|
||||
'HTML.SafeIframe' => true,
|
||||
'HTML.SafeIframe' => true,
|
||||
// * For iframes
|
||||
'URI.SafeIframeRegexp' => "%^(http://|https://|//)(www.youtube.com/embed/|player.vimeo.com/video/|vimeo.com/|www.dailymotion.com/video/)%",
|
||||
'HTML.Doctype' => 'HTML 4.01 Transitional',
|
||||
'URI.SafeIframeRegexp' => '%^(http://|https://|//)(www.youtube.com/embed/|player.vimeo.com/video/|vimeo.com/)%',
|
||||
'HTML.Doctype' => 'HTML 4.01 Transitional',
|
||||
// * Legacy filter en full avec safe legacy.
|
||||
// 'HTML.Allowed' => 'h1[style|id],h2[style|id],h3[style|id],h4[style|id],h5[style|id],h6[style|id],figure[class|style],oembed[url],div[style],b,strong,i,em,u,s,pre,code[class],a[href|title|target|rel|id],ul[style],ol[style],dl[style],li,p[style],br,span[style|class],img[width|height|alt|src|style|class|title],iframe[src|width|height|class|frameborder|style],table[style|align|border|cellspacing|cellpadding|width],thead,tbody,th[colspan|align|valign|style],tr[align|valign|style],td[style|colspan|rowspan|scope|align|valign],hr,dl,dt,mark[class]',
|
||||
// phpcs:ignore Generic.Files.LineLength.MaxExceeded
|
||||
'HTML.Allowed' => 'h1[style],h2[style],h3[style],h4[style],h5[style],h6[style],figure[class|style],oembed[url],div[style],b,strong,i,em,u,a[href|title|target|rel],ul[style],ol[style],dl[style],li,p[style],br,span[style|class],img[width|height|alt|src|style|class|title],iframe[src|width|height|class|frameborder|style],table[style|align|border|cellspacing|cellpadding|width],thead,tbody,th[colspan|align|valign|style],tr[align|valign|style],td[style|colspan|rowspan|scope|align|valign],hr,dl,dt',
|
||||
// * Restricted basics.
|
||||
'HTML.Allowed' => 'br,p[style],b[style],u[style],i[style],a[href|title|target|rel],strong[style],span[class],ul[style],ol[style],li[style],h2[style],h3[style],h4[style],hr,blockquote[style]',
|
||||
// 'HTML.Allowed' => 'br,p[style],b[style],u[style],i[style],a[href|title|target|rel],strong[style],span[class],ul[style],ol[style],li[style],h2[style],h3[style],h4[style],hr,blockquote[style]',
|
||||
// * Legacy filter en full avec safe legacy.
|
||||
// 'CSS.AllowedProperties' => 'font,font-size,font-weight,font-style,font-family,text-decoration,padding-left,color,background-color,text-align,list-style-type,float,width,height,vertical-align,border,border-color,margin-left',
|
||||
// phpcs:ignore Generic.Files.LineLength.MaxExceeded
|
||||
'CSS.AllowedProperties' => 'font,font-size,font-weight,font-style,font-family,text-decoration,padding-left,color,background-color,text-align,list-style-type,float,width,height,vertical-align,border-color',
|
||||
// * Restricted basics.
|
||||
'CSS.AllowedProperties' => 'text-align,margin-left',
|
||||
'AutoFormat.AutoParagraph' => false,
|
||||
'AutoFormat.RemoveEmpty' => false,
|
||||
// 'CSS.AllowedProperties' => 'text-align,margin-left',
|
||||
'AutoFormat.AutoParagraph' => false,
|
||||
'AutoFormat.RemoveEmpty' => false,
|
||||
'AutoFormat.RemoveEmpty.RemoveNbsp' => false,
|
||||
],
|
||||
"youtube" => [
|
||||
"HTML.SafeIframe" => 'true',
|
||||
"URI.SafeIframeRegexp" => "%^(http://|https://|//)(www.youtube.com/embed/|player.vimeo.com/video/|vimeo.com/|www.dailymotion.com/video/)%",
|
||||
],
|
||||
'custom_definition' => [
|
||||
'id' => 'html5-definitions',
|
||||
'rev' => 1,
|
||||
'debug' => true,
|
||||
'id' => 'html5-definitions',
|
||||
'rev' => 1,
|
||||
'debug' => true,
|
||||
'elements' => [
|
||||
// * http://developers.whatwg.org/sections.html
|
||||
['section', 'Block', 'Flow', 'Common'],
|
||||
['nav', 'Block', 'Flow', 'Common'],
|
||||
['nav', 'Block', 'Flow', 'Common'],
|
||||
['article', 'Block', 'Flow', 'Common'],
|
||||
['aside', 'Block', 'Flow', 'Common'],
|
||||
['header', 'Block', 'Flow', 'Common'],
|
||||
['footer', 'Block', 'Flow', 'Common'],
|
||||
['aside', 'Block', 'Flow', 'Common'],
|
||||
['header', 'Block', 'Flow', 'Common'],
|
||||
['footer', 'Block', 'Flow', 'Common'],
|
||||
|
||||
// * Content model actually excludes several tags, not modelled here
|
||||
['address', 'Block', 'Flow', 'Common'],
|
||||
|
|
@ -69,26 +69,26 @@ return [
|
|||
|
||||
// * http://developers.whatwg.org/the-video-element.html#the-video-element
|
||||
['video', 'Block', 'Optional: (source, Flow) | (Flow, source) | Flow', 'Common', [
|
||||
'src' => 'URI',
|
||||
'type' => 'Text',
|
||||
'width' => 'Length',
|
||||
'height' => 'Length',
|
||||
'poster' => 'URI',
|
||||
'preload' => 'Enum#auto,metadata,none',
|
||||
'src' => 'URI',
|
||||
'type' => 'Text',
|
||||
'width' => 'Length',
|
||||
'height' => 'Length',
|
||||
'poster' => 'URI',
|
||||
'preload' => 'Enum#auto,metadata,none',
|
||||
'controls' => 'Bool',
|
||||
]],
|
||||
['source', 'Block', 'Flow', 'Common', [
|
||||
'src' => 'URI',
|
||||
'src' => 'URI',
|
||||
'type' => 'Text',
|
||||
]],
|
||||
|
||||
// * http://developers.whatwg.org/text-level-semantics.html
|
||||
['s', 'Inline', 'Inline', 'Common'],
|
||||
['var', 'Inline', 'Inline', 'Common'],
|
||||
['sub', 'Inline', 'Inline', 'Common'],
|
||||
['sup', 'Inline', 'Inline', 'Common'],
|
||||
['s', 'Inline', 'Inline', 'Common'],
|
||||
['var', 'Inline', 'Inline', 'Common'],
|
||||
['sub', 'Inline', 'Inline', 'Common'],
|
||||
['sup', 'Inline', 'Inline', 'Common'],
|
||||
['mark', 'Inline', 'Inline', 'Common'],
|
||||
['wbr', 'Inline', 'Empty', 'Core'],
|
||||
['wbr', 'Inline', 'Empty', 'Core'],
|
||||
|
||||
// * http://developers.whatwg.org/edits.html
|
||||
['ins', 'Block', 'Flow', 'Common', ['cite' => 'URI', 'datetime' => 'CDATA']],
|
||||
|
|
@ -111,18 +111,11 @@ return [
|
|||
],
|
||||
'custom_attributes' => [
|
||||
['a', 'target', 'Enum#_blank,_self,_target,_top'],
|
||||
['a', 'id', 'Text'],
|
||||
['ol', 'style', 'Text'],
|
||||
['figure', 'style', 'Text'],
|
||||
['img', 'style', 'Text'],
|
||||
['span', 'style', 'Text'],
|
||||
['oembed', 'url', 'Text'],
|
||||
['h1', 'id', 'Text'],
|
||||
['h2', 'id', 'Text'],
|
||||
['h3', 'id', 'Text'],
|
||||
['h4', 'id', 'Text'],
|
||||
['h5', 'id', 'Text'],
|
||||
['h6', 'id', 'Text'],
|
||||
],
|
||||
'custom_elements' => [
|
||||
['u', 'Inline', 'Inline', 'Common'],
|
||||
|
|
|
|||
2552
package-lock.json
generated
2552
package-lock.json
generated
File diff suppressed because it is too large
Load diff
|
|
@ -55,6 +55,7 @@
|
|||
"axios": "^1.17.0",
|
||||
"bootstrap": "^5.3.8",
|
||||
"chart.js": "^4.4.0",
|
||||
"ckeditor5": "^48.3.1",
|
||||
"cropperjs": "^1.6.1",
|
||||
"glightbox": "^3.2.0",
|
||||
"meow": "^9.0.0",
|
||||
|
|
|
|||
1
resources/js/vendor/ckeditor/.gitignore
vendored
1
resources/js/vendor/ckeditor/.gitignore
vendored
|
|
@ -1 +0,0 @@
|
|||
node_modules
|
||||
49
resources/js/vendor/ckeditor/LICENSE.md
vendored
49
resources/js/vendor/ckeditor/LICENSE.md
vendored
|
|
@ -1,49 +0,0 @@
|
|||
Software License Agreement
|
||||
==========================
|
||||
|
||||
Copyright (c) 2014-2021, CKSource - Frederico Knabben. All rights reserved.
|
||||
|
||||
Online builder code samples are licensed under the terms of the MIT License (see Appendix A):
|
||||
|
||||
http://en.wikipedia.org/wiki/MIT_License
|
||||
|
||||
CKEditor 5 collaboration features are only available under a commercial license. [Contact us](https://ckeditor.com/contact/) for more details.
|
||||
|
||||
Free 30-days trials of CKEditor 5 collaboration features are available:
|
||||
* https://ckeditor.com/collaboration/ - Real-time collaboration (with all features).
|
||||
* https://ckeditor.com/collaboration/comments/ - Inline comments feature (without real-time collaborative editing).
|
||||
* https://ckeditor.com/collaboration/track-changes/ - Track changes feature (without real-time collaborative editing).
|
||||
|
||||
Trademarks
|
||||
----------
|
||||
|
||||
CKEditor is a trademark of CKSource - Frederico Knabben. All other brand
|
||||
and product names are trademarks, registered trademarks or service
|
||||
marks of their respective holders.
|
||||
|
||||
---
|
||||
|
||||
Appendix A: The MIT License
|
||||
---------------------------
|
||||
|
||||
The MIT License (MIT)
|
||||
|
||||
Copyright (c) 2014-2021, CKSource - Frederico Knabben
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
||||
68
resources/js/vendor/ckeditor/README.md
vendored
68
resources/js/vendor/ckeditor/README.md
vendored
|
|
@ -1,68 +0,0 @@
|
|||
# CKEditor 5 editor generated with the online builder
|
||||
|
||||
This repository presents a CKEditor 5 editor build generated by the [Online builder tool](https://ckeditor.com/ckeditor-5/online-builder)
|
||||
|
||||
## Quick start
|
||||
|
||||
1. Open the `sample/index.html` page in the browser.
|
||||
|
||||
If you picked the real-time collaboration plugins:
|
||||
|
||||
2. Fill the dialog with correct token, websocket and upload URL endpoints. If you do not have these yet or do not know their meaning, [contact us](https://ckeditor.com/contact/).
|
||||
|
||||
3. Copy the URL and share it or paste in another tab to enjoy real-time collaborative editing.
|
||||
|
||||
If you picked the non-real-time collaboration plugins:
|
||||
|
||||
2. Fill the prompt with the license key. If you do not have the license key yet [contact us](https://ckeditor.com/contact/).
|
||||
|
||||
## Configuring build
|
||||
|
||||
Changes like changing toolbar items, changing order of icons or customizing plugin configurations should be relatively easy to make. Open the `sample/index.html` file and edit the script that initialized the CKEditor 5. Save the file and refresh the browser. That's all.
|
||||
|
||||
*Note:* If you have any problems with browser caching use the `Ctrl + R` or `Cmd + R` shortcut depending on your system.
|
||||
|
||||
However if you want to remove or add a plugin to the build you need to follow the next step of this guide.
|
||||
|
||||
Note that it is also possible to go back to the [Online builder tool](https://ckeditor.com/ckeditor-5/online-builder) and pick other set of plugins. But we encourage you to try the harder way and to learn the principles of Node.js and CKEditor 5 ecosystems that will allow you to do more cool things in the future!
|
||||
|
||||
### Installation
|
||||
|
||||
In order to rebuild the application you need to install all dependencies first. To do it, open the terminal in the project directory and type:
|
||||
|
||||
```
|
||||
npm install
|
||||
```
|
||||
|
||||
Make sure that you have the `node` and `npm` installed first. If not, then follow the instructions on the [Node.js documentation page](https://nodejs.org/en/).
|
||||
|
||||
### Adding or removing plugins
|
||||
|
||||
Now you can install additional plugin in the build. Just follow the [Adding a plugin to an editor tutorial](https://ckeditor.com/docs/ckeditor5/latest/builds/guides/integration/installing-plugins.html#adding-a-plugin-to-an-editor)
|
||||
|
||||
### Rebuilding editor
|
||||
|
||||
If you have already done the [Installation](#installation) and [Adding or removing plugins](#adding-or-removing-plugins) steps, you're ready to rebuild the editor by running the following command:
|
||||
|
||||
```
|
||||
npm run build
|
||||
```
|
||||
|
||||
This will build the CKEditor 5 to the `build` directory. You can open your browser and you should be able to see the changes you've made in the code. If not, then try to refresh also the browser cache by typing `Ctrl + R` or `Cmd + R` depending on your system.
|
||||
|
||||
## What's next?
|
||||
|
||||
Follow the guides available on https://ckeditor.com/docs/ckeditor5/latest/framework/index.html and enjoy the document editing.
|
||||
|
||||
## FAQ
|
||||
| Where is the place to report bugs and feature requests?
|
||||
|
||||
You can create an issue on https://github.com/ckeditor/ckeditor5/issues including the build id - `unyb7c61pdjq-xt0bz4ltrghq`. Make sure that the question / problem is unique, please look for a possibly asked questions in the search box. Duplicates will be closed.
|
||||
|
||||
| Where can I learn more about the CKEditor 5 framework?
|
||||
|
||||
Here: https://ckeditor.com/docs/ckeditor5/latest/framework/
|
||||
|
||||
| Is it possible to use online builder with common frameworks like React, Vue or Angular?
|
||||
|
||||
Not yet, but it these integrations will be available at some point in the future.
|
||||
119819
resources/js/vendor/ckeditor/build/ckeditor.js
vendored
119819
resources/js/vendor/ckeditor/build/ckeditor.js
vendored
File diff suppressed because one or more lines are too long
|
|
@ -1,23 +0,0 @@
|
|||
/* istanbul ignore else -- @preserve */
|
||||
|
||||
/* istanbul ignore else: This is always true because otherwise it would not register a reducer callback. -- @preserve */
|
||||
|
||||
/* istanbul ignore file -- @preserve */
|
||||
|
||||
/* istanbul ignore if -- @preserve */
|
||||
|
||||
/* istanbul ignore if: paranoid check -- @preserve */
|
||||
|
||||
/* istanbul ignore next -- @preserve */
|
||||
|
||||
/* istanbul ignore next: paranoid check -- @preserve */
|
||||
|
||||
/*!
|
||||
* @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.
|
||||
* For licensing, see LICENSE.md.
|
||||
*/
|
||||
|
||||
/**
|
||||
* @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.
|
||||
* For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
|
||||
*/
|
||||
7818
resources/js/vendor/ckeditor/build/styles.css
vendored
7818
resources/js/vendor/ckeditor/build/styles.css
vendored
File diff suppressed because it is too large
Load diff
|
|
@ -1 +0,0 @@
|
|||
(function(d){ const l = d['af'] = d['af'] || {}; l.dictionary=Object.assign( l.dictionary||{}, {"%0 of %1":"%0 van %1","Align center":"Belyn in die middel","Align left":"Belyn links","Align right":"Belyn regs","Block quote":"Verwysingsaanhaling",Bold:"Vet",Cancel:"Kanselleer",Code:"Bronkode",Find:"Soek","Find and replace":"Soek en vervang","Find in text…":"Soek in teks …","Insert code block":"Voeg bronkodeblok in",Italic:"Kursief",Justify:"Belyn beide kante","Match case":"Hooflettersensitief","Next result":"Volgende resultaat","Plain text":"Gewone skrif","Previous result":"Vorige resultaat","Remove color":"Verwyder kleur","Remove Format":"Verwyder formatering",Replace:"Vervang","Replace all":"Vervang alles","Replace with…":"Vervang met ...","Restore default":"Herstel verstek",Save:"Stoor","Show more items":"Wys meer items","Show options":"Wys opsies",Strikethrough:"Deurstreep","Text alignment":"Teksbelyning","Text alignment toolbar":"Teksbelyning nutsbank","Text to find must not be empty.":"Soekteks mag nie leeg wees nie.","Tip: Find some text first in order to replace it.":"Wenk: Soek eers 'n bietjie teks om dit te vervang.",Underline:"Onderstreep","Whole words only":"Slegs hele woorde"} );l.getPluralForm=function(n){return (n != 1);;};})(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
|
||||
File diff suppressed because one or more lines are too long
|
|
@ -1 +0,0 @@
|
|||
(function(d){ const l = d['ast'] = d['ast'] || {}; l.dictionary=Object.assign( l.dictionary||{}, {"%0 of %1":"",Aquamarine:"",Black:"",Blue:"",Bold:"Negrina","Break text":"","Bulleted List":"Llista con viñetes","Bulleted list styles toolbar":"",Cancel:"Encaboxar","Caption for image: %0":"","Caption for the image":"","Centered image":"","Change image text alternative":"",Circle:"",Code:"",Decimal:"","Decimal with leading zero":"","Dim grey":"",Disc:"",Downloadable:"","Dropdown toolbar":"","Edit block":"","Edit link":"","Editor block content toolbar":"","Editor contextual toolbar":"","Editor editing area: %0":"","Editor toolbar":"","Enter image caption":"","Full size image":"Imaxen a tamañu completu",Green:"",Grey:"",HEX:"","Image resize list":"","Image toolbar":"","image widget":"complementu d'imaxen","In line":"",Insert:"","Insert image":"","Insert image via URL":"",Italic:"Cursiva","Left aligned image":"","Light blue":"","Light green":"","Light grey":"",Link:"Enllazar","Link image":"","Link URL":"URL del enllaz","List properties":"","Lower-latin":"","Lower–roman":"",Next:"","Numbered List":"Llista numberada","Numbered list styles toolbar":"","Open in a new tab":"","Open link in new tab":"",Orange:"",Original:"",Previous:"",Purple:"",Red:"",Redo:"Refacer","Remove color":"","Resize image":"","Resize image to %0":"","Resize image to the original size":"","Restore default":"","Reversed order":"","Rich Text Editor":"Editor de testu arriquecíu","Right aligned image":"",Save:"Guardar","Show more items":"","Side image":"Imaxen llateral",Square:"","Start at":"","Start index must be greater than 0.":"",Strikethrough:"","Text alternative":"","This link has no URL":"","Toggle the circle list style":"","Toggle the decimal list style":"","Toggle the decimal with leading zero list style":"","Toggle the disc list style":"","Toggle the lower–latin list style":"","Toggle the lower–roman list style":"","Toggle the square list style":"","Toggle the upper–latin list style":"","Toggle the upper–roman list style":"",Turquoise:"",Underline:"",Undo:"Desfacer",Unlink:"Desenllazar",Update:"","Update image URL":"","Upload failed":"","Upper-latin":"","Upper-roman":"",White:"","Wrap text":"",Yellow:""} );l.getPluralForm=function(n){return (n != 1);;};})(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
|
@ -1 +0,0 @@
|
|||
(function(d){ const l = d['bs'] = d['bs'] || {}; l.dictionary=Object.assign( l.dictionary||{}, {"%0 of %1":"%0 od %1",Accept:"","Align center":"Centrirati","Align left":"Lijevo poravnanje","Align right":"Desno poravnanje",Big:"","Block quote":"Citat",Bold:"Podebljano","Break text":"",Cancel:"Poništi","Caption for image: %0":"","Caption for the image":"","Centered image":"Centrirana slika","Change image text alternative":"Promijeni ALT atribut za sliku","Choose heading":"Odaberi naslov",Code:"Kod",Default:"Zadani","Document colors":"","Enter image caption":"Unesi naziv slike",Find:"Pronađi","Find and replace":"Pronađi i zamijeni","Find in text…":"Pronađi u tekstu","Font Background Color":"Boja pozadine","Font Color":"Boja","Font Family":"Font","Font Size":"Veličina fonta","Full size image":"",Heading:"Naslov","Heading 1":"Naslov 1","Heading 2":"Naslov 2","Heading 3":"Naslov 3","Heading 4":"Naslov 4","Heading 5":"Naslov 5","Heading 6":"Naslov 6","Horizontal line":"Horizontalna linija",Huge:"","Image resize list":"Lista veličina slike","Image toolbar":"","image widget":"","In line":"",Insert:"Umetni","Insert code block":"Umetni kod blok","Insert image":"Umetni sliku","Insert image via URL":"Umetni sliku preko URLa",Italic:"Zakrivljeno",Justify:"","Left aligned image":"Lijevo poravnata slika","Match case":"Podudaranje","Next result":"",Original:"Original",Paragraph:"Paragraf","Plain text":"Tekst","Previous result":"Prethodni rezultat","Remove color":"Ukloni boju",Replace:"Zamijeni","Replace all":"Zamijeni sve","Replace with…":"Zamijeni sa...","Resize image":"Promijeni veličinu slike","Resize image to %0":"","Resize image to the original size":"Postavi originalnu veličinu slike","Restore default":"Vrati na zadano","Right aligned image":"Desno poravnata slika",Save:"Sačuvaj","Show more items":"Prikaži više stavki","Show options":"Prikaži opcije","Side image":"",Small:"",Strikethrough:"Precrtano","Text alignment":"Poravnanje teksta","Text alignment toolbar":"Traka za poravnanje teksta","Text alternative":"ALT atribut","Text to find must not be empty.":"Unesite tekst za pretragu.",Tiny:"","Tip: Find some text first in order to replace it.":"",Underline:"Podcrtano",Update:"Ažuriraj","Update image URL":"Ažuriraj URL slike","Upload failed":"Učitavanje slike nije uspjelo","Whole words only":"Samo cijele riječi","Wrap text":"Prelomi tekst"} );l.getPluralForm=function(n){return (n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);;};})(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
|
@ -1 +0,0 @@
|
|||
(function(d){ const l = d['eo'] = d['eo'] || {}; l.dictionary=Object.assign( l.dictionary||{}, {"%0 of %1":"",Aquamarine:"",Black:"",Blue:"",Bold:"grasa","Break text":"","Bulleted List":"Bula Listo","Bulleted list styles toolbar":"",Cancel:"Nuligi","Caption for image: %0":"","Caption for the image":"","Centered image":"","Change image text alternative":"Ŝanĝu la alternativan tekston de la bildo","Choose heading":"Elektu ĉapon",Circle:"",Code:"",Decimal:"","Decimal with leading zero":"","Dim grey":"",Disc:"",Downloadable:"","Dropdown toolbar":"","Edit block":"","Edit link":"","Editor block content toolbar":"","Editor contextual toolbar":"","Editor editing area: %0":"","Editor toolbar":"","Enter image caption":"Skribu klarigon pri la bildo","Full size image":"Bildo kun reala dimensio",Green:"",Grey:"",Heading:"Ĉapo","Heading 1":"Ĉapo 1","Heading 2":"Ĉapo 2","Heading 3":"Ĉapo 3","Heading 4":"","Heading 5":"","Heading 6":"",HEX:"","Image resize list":"","Image toolbar":"","image widget":"bilda fenestraĵo","In line":"",Insert:"","Insert image":"Enmetu bildon","Insert image via URL":"",Italic:"kursiva","Left aligned image":"","Light blue":"","Light green":"","Light grey":"",Link:"Ligilo","Link image":"","Link URL":"URL de la ligilo","List properties":"","Lower-latin":"","Lower–roman":"",Next:"","Numbered List":"Numerita Listo","Numbered list styles toolbar":"","Open in a new tab":"","Open link in new tab":"",Orange:"",Original:"",Paragraph:"Paragrafo",Previous:"",Purple:"",Red:"",Redo:"Refari","Remove color":"","Resize image":"","Resize image to %0":"","Resize image to the original size":"","Restore default":"","Reversed order":"","Rich Text Editor":"Redaktilo de Riĉa Teksto","Right aligned image":"",Save:"Konservi","Show more items":"","Side image":"Flanka biildo",Square:"","Start at":"","Start index must be greater than 0.":"",Strikethrough:"","Text alternative":"Alternativa teksto","This link has no URL":"","Toggle the circle list style":"","Toggle the decimal list style":"","Toggle the decimal with leading zero list style":"","Toggle the disc list style":"","Toggle the lower–latin list style":"","Toggle the lower–roman list style":"","Toggle the square list style":"","Toggle the upper–latin list style":"","Toggle the upper–roman list style":"",Turquoise:"",Underline:"",Undo:"Malfari",Unlink:"Malligi",Update:"","Update image URL":"","Upload failed":"","Upper-latin":"","Upper-roman":"",White:"","Wrap text":"",Yellow:""} );l.getPluralForm=function(n){return (n != 1);;};})(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
|
||||
|
|
@ -1 +0,0 @@
|
|||
(function(d){ const l = d['es-co'] = d['es-co'] || {}; l.dictionary=Object.assign( l.dictionary||{}, {"%0 of %1":"%0 de %1","Align center":"Centrar","Align left":"Alinear a la izquierda","Align right":"Alinear a la derecha","Block quote":"Cita de bloque",Bold:"Negrita",Cancel:"Cancelar","Characters: %0":"Caracteres: %0",Code:"Código","Insert code block":"Insertar bloque de código",Italic:"Cursiva",Justify:"Justificar","Plain text":"Texto plano","Remove color":"Quitar color","Restore default":"Restaurar valores predeterminados",Save:"Guardar","Show more items":"Mostrar más elementos",Strikethrough:"Tachado","Text alignment":"Alineación de texto","Text alignment toolbar":"Herramientas de alineación de texto",Underline:"Subrayado","Upload in progress":"Carga en progreso","Words: %0":"Palabras: %0"} );l.getPluralForm=function(n){return n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;;};})(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
|
@ -1 +0,0 @@
|
|||
(function(d){ const l = d['eu'] = d['eu'] || {}; l.dictionary=Object.assign( l.dictionary||{}, {"%0 of %1":"",Aquamarine:"",Black:"","Block quote":"Aipua",Blue:"",Bold:"Lodia","Break text":"","Bulleted List":"Buletdun zerrenda","Bulleted list styles toolbar":"",Cancel:"Utzi","Caption for image: %0":"","Caption for the image":"","Centered image":"Zentratutako irudia","Change image text alternative":"Aldatu irudiaren ordezko testua","Choose heading":"Aukeratu izenburua",Circle:"",Code:"Kodea",Decimal:"","Decimal with leading zero":"","Dim grey":"",Disc:"",Downloadable:"","Dropdown toolbar":"","Edit block":"","Edit link":"","Editor block content toolbar":"","Editor contextual toolbar":"","Editor editing area: %0":"","Editor toolbar":"","Enter image caption":"Sartu irudiaren epigrafea","Full size image":"Tamaina osoko irudia",Green:"",Grey:"",Heading:"Izenburua","Heading 1":"Izenburua 1","Heading 2":"Izenburua 2","Heading 3":"Izenburua 3","Heading 4":"","Heading 5":"","Heading 6":"",HEX:"","Image resize list":"","Image toolbar":"","image widget":"irudi widgeta","In line":"",Insert:"","Insert image":"Txertatu irudia","Insert image via URL":"",Italic:"Etzana","Left aligned image":"Ezkerrean lerrokatutako irudia","Light blue":"","Light green":"","Light grey":"",Link:"Esteka","Link image":"","Link URL":"Estekaren URLa","List properties":"","Lower-latin":"","Lower–roman":"",Next:"","Numbered List":"Zenbakidun zerrenda","Numbered list styles toolbar":"","Open in a new tab":"","Open link in new tab":"",Orange:"",Original:"",Paragraph:"Paragrafoa",Previous:"",Purple:"",Red:"",Redo:"Berregin","Remove color":"","Resize image":"","Resize image to %0":"","Resize image to the original size":"","Restore default":"","Reversed order":"","Rich Text Editor":"Testu aberastuaren editorea","Right aligned image":"Eskuinean lerrokatutako irudia",Save:"Gorde","Show more items":"","Side image":"Alboko irudia",Square:"","Start at":"","Start index must be greater than 0.":"",Strikethrough:"","Text alternative":"Ordezko testua","This link has no URL":"","Toggle the circle list style":"","Toggle the decimal list style":"","Toggle the decimal with leading zero list style":"","Toggle the disc list style":"","Toggle the lower–latin list style":"","Toggle the lower–roman list style":"","Toggle the square list style":"","Toggle the upper–latin list style":"","Toggle the upper–roman list style":"",Turquoise:"",Underline:"Azpimarra",Undo:"Desegin",Unlink:"Desestekatu",Update:"","Update image URL":"","Upload failed":"Kargatzeak huts egin du","Upper-latin":"","Upper-roman":"",White:"","Wrap text":"",Yellow:""} );l.getPluralForm=function(n){return (n != 1);;};})(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
|
@ -1 +0,0 @@
|
|||
(function(d){ const l = d['gu'] = d['gu'] || {}; l.dictionary=Object.assign( l.dictionary||{}, {"%0 of %1":"","Block quote":" વિચાર ટાંકો",Bold:"ઘાટુ - બોલ્ડ્",Cancel:"",Code:"",Italic:"ત્રાંસુ - ઇટલિક્","Remove color":"","Restore default":"",Save:"","Show more items":"",Strikethrough:"",Underline:"નીચે લિટી - અન્ડરલાઇન્"} );l.getPluralForm=function(n){return (n != 1);;};})(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
|
@ -1 +0,0 @@
|
|||
(function(d){ const l = d['jv'] = d['jv'] || {}; l.dictionary=Object.assign( l.dictionary||{}, {"%0 of %1":"%0 saking %1",Accept:"","Align center":"Rata tengah","Align left":"Rata kiwa","Align right":"Rata tengen",Big:"Ageng","Blue marker":"Penandha biru",Bold:"Kandhel","Break text":"","Bulleted List":"","Bulleted list styles toolbar":"",Cancel:"Batal","Caption for image: %0":"","Caption for the image":"","Centered image":"Gambar ing tengah","Change image text alternative":"","Choose heading":"",Circle:"Bunder",Code:"Kode",Decimal:"","Decimal with leading zero":"",Default:"Default",Disc:"Kaset","Document colors":"Warni dokumen","Enter image caption":"",Find:"Pados","Find and replace":"Pados lan gantos","Find in text…":"Pados ing seratan","Font Background Color":"Warni Latar Aksara","Font Color":"Warni aksara","Font Family":"Jinising Aksara","Font Size":"Ukuran aksara","Full size image":"Gambar ukuran kebak","Green marker":"Panandha ijem","Green pen":"Pen ijem",Heading:"","Heading 1":"","Heading 2":"","Heading 3":"","Heading 4":"","Heading 5":"","Heading 6":"",Highlight:"Sorot","Horizontal line":"Garis horisontal","HTML object":"Obyek HTML",Huge:"Langkung ageng","Image resize list":"","Image toolbar":"","image widget":"","In line":"",Insert:"Tambah","Insert code block":"","Insert image":"Tambahaken gambar","Insert image via URL":"Tambah gambar saking URL",Italic:"Miring",Justify:"Rata kiwa tengen","Left aligned image":"Gambar ing kiwa","List properties":"","Lower-latin":"","Lower–roman":"","Match case":"Samikaken aksara","Next result":"Kasil salajengipun","Numbered List":"","Numbered list styles toolbar":"",Original:"Asli",Paragraph:"","Pink marker":"Penandha abrit jambon","Plain text":"Seratan biasa","Previous result":"Kasil saderengipun","Red pen":"Penandha abrit","Remove color":"Busek warni","Remove highlight":"Busek sorot",Replace:"Gantos","Replace all":"Gantos sedaya","Replace with…":"Gantos kaliyan...","Resize image":"","Resize image to %0":"","Resize image to the original size":"","Restore default":"Mangsulaken default","Reversed order":"Dipunwangsul","Right aligned image":"Gambar ing tengen",Save:"Rimat","Show more items":"Tampilaken langkung kathah","Show options":"Tampilaken pilihan","Side image":"",Small:"Alit",Square:"Kotak","Start at":"Wiwit saking","Start index must be greater than 0.":"",Strikethrough:"Seratan dicoret","Text alignment":"Perataan seratan","Text alignment toolbar":"","Text alternative":"","Text highlight toolbar":"","Text to find must not be empty.":"Seratan ingkang dipunpadosi mboten angsal kosong.",Tiny:"Langkung alit","Tip: Find some text first in order to replace it.":"","Toggle the circle list style":"","Toggle the decimal list style":"","Toggle the decimal with leading zero list style":"","Toggle the disc list style":"","Toggle the lower–latin list style":"","Toggle the lower–roman list style":"","Toggle the square list style":"","Toggle the upper–latin list style":"","Toggle the upper–roman list style":"",Underline:"Garis ngandhap",Update:"","Update image URL":"","Upload failed":"","Upper-latin":"","Upper-roman":"","Whole words only":"Sedayaning ukanten","Wrap text":"","Yellow marker":"Panandha jene"} );l.getPluralForm=function(n){return 0;;};})(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
|
||||
|
|
@ -1 +0,0 @@
|
|||
(function(d){ const l = d['kk'] = d['kk'] || {}; l.dictionary=Object.assign( l.dictionary||{}, {"Align center":"Ортадан туралау","Align left":"Солға туралау","Align right":"Оңға туралау",Justify:"","Text alignment":"Мәтінді туралау","Text alignment toolbar":"Мәтінді туралау құралдар тақтасы"} );l.getPluralForm=function(n){return (n!=1);;};})(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
|
||||
|
|
@ -1 +0,0 @@
|
|||
(function(d){ const l = d['km'] = d['km'] || {}; l.dictionary=Object.assign( l.dictionary||{}, {"%0 of %1":"","Align center":"តម្រឹមកណ្ដាល","Align left":"តម្រឹមឆ្វេង","Align right":"តម្រឹមស្ដាំ",Aquamarine:"",Black:"","Block quote":"ប្លុកពាក្យសម្រង់",Blue:"",Bold:"ដិត","Break text":"","Bulleted List":"បញ្ជីជាចំណុច","Bulleted list styles toolbar":"",Cancel:"បោះបង់","Caption for image: %0":"","Caption for the image":"","Centered image":"","Change image text alternative":"","Choose heading":"ជ្រើសរើសក្បាលអត្ថបទ",Circle:"",Code:"កូដ",Decimal:"","Decimal with leading zero":"","Dim grey":"",Disc:"",Downloadable:"","Dropdown toolbar":"","Edit block":"","Edit link":"","Editor block content toolbar":"","Editor contextual toolbar":"","Editor editing area: %0":"","Editor toolbar":"","Enter image caption":"បញ្ចូលពាក្យពណ៌នារូបភាព","Full size image":"រូបភាពពេញទំហំ",Green:"",Grey:"",Heading:"ក្បាលអត្ថបទ","Heading 1":"ក្បាលអត្ថបទ 1","Heading 2":"ក្បាលអត្ថបទ 2","Heading 3":"ក្បាលអត្ថបទ 3","Heading 4":"","Heading 5":"","Heading 6":"",HEX:"","Image resize list":"","Image toolbar":"","image widget":"វិដជិតរូបភាព","In line":"",Insert:"","Insert image":"បញ្ចូលរូបភាព","Insert image via URL":"",Italic:"ទ្រេត",Justify:"តម្រឹមសងខាង","Left aligned image":"","Light blue":"","Light green":"","Light grey":"",Link:"តំណ","Link image":"","Link URL":"URL តំណ","List properties":"","Lower-latin":"","Lower–roman":"",Next:"","Numbered List":"បញ្ជីជាលេខ","Numbered list styles toolbar":"","Open in a new tab":"","Open link in new tab":"",Orange:"",Original:"",Paragraph:"កថាខណ្ឌ",Previous:"",Purple:"",Red:"",Redo:"ធ្វើវិញ","Remove color":"","Resize image":"","Resize image to %0":"","Resize image to the original size":"","Restore default":"","Reversed order":"","Rich Text Editor":"កម្មវិធីកែសម្រួលអត្ថបទសម្បូរបែប","Right aligned image":"",Save:"រក្សាទុ","Show more items":"","Side image":"រូបភាពនៅខាង",Square:"","Start at":"","Start index must be greater than 0.":"",Strikethrough:"ឆូតកណ្ដាល","Text alignment":"ការតម្រឹមអក្សរ","Text alignment toolbar":"របារឧបករណ៍តម្រឹមអក្សរ","Text alternative":"","This link has no URL":"","Toggle the circle list style":"","Toggle the decimal list style":"","Toggle the decimal with leading zero list style":"","Toggle the disc list style":"","Toggle the lower–latin list style":"","Toggle the lower–roman list style":"","Toggle the square list style":"","Toggle the upper–latin list style":"","Toggle the upper–roman list style":"",Turquoise:"",Underline:"គូសបន្ទាត់ក្រោម",Undo:"លែងធ្វើវិញ",Unlink:"ផ្ដាច់តំណ",Update:"","Update image URL":"","Upload failed":"អាប់ឡូតមិនបាន","Upper-latin":"","Upper-roman":"",White:"","Wrap text":"",Yellow:""} );l.getPluralForm=function(n){return 0;;};})(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
|
||||
|
|
@ -1 +0,0 @@
|
|||
(function(d){ const l = d['kn'] = d['kn'] || {}; l.dictionary=Object.assign( l.dictionary||{}, {"%0 of %1":"",Aquamarine:"",Black:"","Block quote":"ಗುರುತಿಸಲಾದ ಉಲ್ಲೇಖ",Blue:"",Bold:"ದಪ್ಪ","Break text":"","Bulleted List":"ಬುಲೆಟ್ ಪಟ್ಟಿ","Bulleted list styles toolbar":"",Cancel:"ರದ್ದುಮಾಡು","Caption for image: %0":"","Caption for the image":"","Centered image":"","Change image text alternative":"ಚಿತ್ರದ ಬದಲಿ ಪಠ್ಯ ಬದಲಾಯಿಸು","Choose heading":"ಶೀರ್ಷಿಕೆ ಆಯ್ಕೆಮಾಡು",Circle:"",Code:"",Decimal:"","Decimal with leading zero":"","Dim grey":"",Disc:"",Downloadable:"","Dropdown toolbar":"","Edit block":"","Edit link":"","Editor block content toolbar":"","Editor contextual toolbar":"","Editor editing area: %0":"","Editor toolbar":"","Enter image caption":"ಚಿತ್ರದ ಶೀರ್ಷಿಕೆ ಸೇರಿಸು","Full size image":"ಪೂರ್ಣ ಅಳತೆಯ ಚಿತ್ರ",Green:"",Grey:"",Heading:"ಶೀರ್ಷಿಕೆ","Heading 1":"ಶೀರ್ಷಿಕೆ 1","Heading 2":"ಶೀರ್ಷಿಕೆ 2","Heading 3":"ಶೀರ್ಷಿಕೆ 3","Heading 4":"","Heading 5":"","Heading 6":"",HEX:"","Image resize list":"","Image toolbar":"","image widget":"ಚಿತ್ರ ವಿಜೆಟ್","In line":"",Insert:"","Insert image":"","Insert image via URL":"",Italic:"ಇಟಾಲಿಕ್","Left aligned image":"","Light blue":"","Light green":"","Light grey":"",Link:"ಕೊಂಡಿ","Link image":"","Link URL":"ಕೊಂಡಿ ಸಂಪರ್ಕಿಸು","List properties":"","Lower-latin":"","Lower–roman":"",Next:"","Numbered List":"ಸಂಖ್ಯೆಯ ಪಟ್ಟಿ","Numbered list styles toolbar":"","Open in a new tab":"","Open link in new tab":"",Orange:"",Original:"",Paragraph:"ಪ್ಯಾರಾಗ್ರಾಫ್",Previous:"",Purple:"",Red:"",Redo:"ಮತ್ತೆ ಮಾಡು","Remove color":"","Resize image":"","Resize image to %0":"","Resize image to the original size":"","Restore default":"","Reversed order":"","Rich Text Editor":"ಸಮೃದ್ಧ ಪಠ್ಯ ಸಂಪಾದಕ","Right aligned image":"",Save:"ಉಳಿಸು","Show more items":"","Side image":"ಪಕ್ಕದ ಚಿತ್ರ",Square:"","Start at":"","Start index must be greater than 0.":"",Strikethrough:"","Text alternative":"ಪಠ್ಯದ ಬದಲಿ","This link has no URL":"","Toggle the circle list style":"","Toggle the decimal list style":"","Toggle the decimal with leading zero list style":"","Toggle the disc list style":"","Toggle the lower–latin list style":"","Toggle the lower–roman list style":"","Toggle the square list style":"","Toggle the upper–latin list style":"","Toggle the upper–roman list style":"",Turquoise:"",Underline:"",Undo:"ರದ್ದು",Unlink:"ಕೊಂಡಿ ತೆಗೆ",Update:"","Update image URL":"","Upload failed":"","Upper-latin":"","Upper-roman":"",White:"","Wrap text":"",Yellow:""} );l.getPluralForm=function(n){return (n > 1);;};})(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
|
@ -1 +0,0 @@
|
|||
(function(d){ const l = d['oc'] = d['oc'] || {}; l.dictionary=Object.assign( l.dictionary||{}, {"%0 of %1":"",Bold:"Gras",Cancel:"Anullar",Code:"",Italic:"Italica","Remove color":"","Restore default":"",Save:"Enregistrar","Show more items":"",Strikethrough:"",Underline:""} );l.getPluralForm=function(n){return (n > 1);;};})(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
|
@ -1 +0,0 @@
|
|||
(function(d){ const l = d['si'] = d['si'] || {}; l.dictionary=Object.assign( l.dictionary||{}, {"%0 of %1":"",Bold:"තදකුරු","Break text":"","Bulleted List":"බුලටිත ලැයිස්තුව","Bulleted list styles toolbar":"",Cancel:"","Caption for image: %0":"","Caption for the image":"","Centered image":"","Change image text alternative":"",Circle:"",Code:"",Decimal:"","Decimal with leading zero":"",Disc:"","Enter image caption":"","Full size image":"","Image resize list":"","Image toolbar":"","image widget":"","In line":"",Insert:"","Insert image":"පින්තූරය ඇතුල් කරන්න","Insert image via URL":"",Italic:"ඇලකුරු","Left aligned image":"","List properties":"","Lower-latin":"","Lower–roman":"","Numbered List":"අංකිත ලැයිස්තුව","Numbered list styles toolbar":"",Original:"",Redo:"නැවත කරන්න","Remove color":"","Resize image":"","Resize image to %0":"","Resize image to the original size":"","Restore default":"","Reversed order":"","Right aligned image":"",Save:"","Show more items":"","Side image":"",Square:"","Start at":"","Start index must be greater than 0.":"",Strikethrough:"","Text alternative":"","Toggle the circle list style":"","Toggle the decimal list style":"","Toggle the decimal with leading zero list style":"","Toggle the disc list style":"","Toggle the lower–latin list style":"","Toggle the lower–roman list style":"","Toggle the square list style":"","Toggle the upper–latin list style":"","Toggle the upper–roman list style":"",Underline:"",Undo:"අහෝසි කරන්න",Update:"","Update image URL":"","Upload failed":"උඩුගත කිරීම අසාර්ථක විය","Upper-latin":"","Upper-roman":"","Wrap text":""} );l.getPluralForm=function(n){return (n != 1);;};})(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
|
||||
File diff suppressed because one or more lines are too long
|
|
@ -1 +0,0 @@
|
|||
(function(d){ const l = d['sl'] = d['sl'] || {}; l.dictionary=Object.assign( l.dictionary||{}, {"%0 of %1":"",Accept:"","Align cell text to the bottom":"","Align cell text to the center":"","Align cell text to the left":"","Align cell text to the middle":"","Align cell text to the right":"","Align cell text to the top":"","Align center":"Sredinska poravnava","Align left":"Poravnava levo","Align right":"Poravnava desno","Align table to the left":"","Align table to the right":"",Alignment:"",Aquamarine:"Akvamarin",Background:"",Big:"Veliko",Black:"Črna","Block quote":"Blokiraj citat",Blue:"Modra","Blue marker":"Modra oznaka",Bold:"Krepko",Border:"",Cancel:"Prekliči","Cell properties":"","Center table":"","Choose heading":"Izberi naslov",Code:"Koda",Color:"","Color picker":"",Column:"",Dashed:"",Default:"Privzeto","Delete column":"","Delete row":"","Dim grey":"Temno siva",Dimensions:"","Document colors":"Barve dokumenta",Dotted:"",Double:"","Dropdown toolbar":"","Edit block":"","Editor block content toolbar":"","Editor contextual toolbar":"","Editor editing area: %0":"","Editor toolbar":"","Enter table caption":"","Font Background Color":"Barva ozadja pisave","Font Color":"Barva pisave","Font Family":"Vrsta oz. tip pisave","Font Size":"Velikost pisave",Green:"Zelena","Green marker":"Zelena oznaka","Green pen":"Zeleno pisalo",Grey:"Siva",Groove:"","Header column":"","Header row":"",Heading:"Naslov","Heading 1":"Naslov 1","Heading 2":"Naslov 2","Heading 3":"Naslov 3","Heading 4":"Naslov 4","Heading 5":"Naslov 5","Heading 6":"Naslov 6",Height:"",HEX:"",Highlight:"Označi","Horizontal line":"Vodoravna črta","Horizontal text alignment toolbar":"",Huge:"Ogromno","Insert column left":"","Insert column right":"","Insert row above":"","Insert row below":"","Insert table":"Vstavi tabelo",Inset:"",Italic:"Poševno",Justify:"Postavi na sredino","Justify cell text":"","Light blue":"Svetlo modra","Light green":"Svetlo zelena","Light grey":"Svetlo siva","Merge cell down":"","Merge cell left":"","Merge cell right":"","Merge cell up":"","Merge cells":"",Next:"",None:"",Orange:"Oranžna",Outset:"",Padding:"",Paragraph:"Odstavek","Pink marker":"Rožnata oznaka",Previous:"",Purple:"Vijolična",Red:"Rdeča","Red pen":"Rdeče pisalo","Remove color":"Odstrani barvo","Remove highlight":"Odstrani oznako","Restore default":"","Rich Text Editor":"",Ridge:"",Row:"",Save:"Shrani","Select column":"","Select row":"","Show more items":"",Small:"Majhna",Solid:"","Split cell horizontally":"","Split cell vertically":"",Strikethrough:"Prečrtano",Style:"","Table alignment toolbar":"","Table cell text alignment":"","Table properties":"","Table toolbar":"","Text alignment":"Poravnava besedila","Text alignment toolbar":"Orodna vrstica besedila","Text highlight toolbar":"Orodna vrstica označevanja","The color is invalid. Try \"#FF0000\" or \"rgb(255,0,0)\" or \"red\".":"","The value is invalid. Try \"10px\" or \"2em\" or simply \"2\".":"",Tiny:"Drobna","Toggle caption off":"","Toggle caption on":"",Turquoise:"Turkizna",Underline:"Podčrtaj","Vertical text alignment toolbar":"",White:"Bela",Width:"",Yellow:"Rumena","Yellow marker":"Rumena oznaka"} );l.getPluralForm=function(n){return (n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);;};})(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
|
@ -1 +0,0 @@
|
|||
(function(d){ const l = d['tt'] = d['tt'] || {}; l.dictionary=Object.assign( l.dictionary||{}, {"%0 of %1":"","Align cell text to the bottom":"","Align cell text to the center":"","Align cell text to the left":"","Align cell text to the middle":"","Align cell text to the right":"","Align cell text to the top":"","Align table to the left":"","Align table to the right":"",Alignment:"",Aquamarine:"Аквамарин",Background:"",Black:"Кара",Blue:"Зәңгәр",Bold:"Калын",Border:"","Break text":"","Bulleted List":"","Bulleted list styles toolbar":"",Cancel:"Баш тарт","Caption for image: %0":"","Caption for the image":"","Cell properties":"","Center table":"","Centered image":"","Change image text alternative":"",Circle:"Түгәрәк",Code:"Код",Color:"Төс","Color picker":"",Column:"",Dashed:"",Decimal:"","Decimal with leading zero":"","Delete column":"","Delete row":"","Dim grey":"",Dimensions:"",Disc:"Диск",Dotted:"",Double:"",Downloadable:"","Dropdown toolbar":"","Edit block":"","Edit link":"","Editor block content toolbar":"","Editor contextual toolbar":"","Editor editing area: %0":"","Editor toolbar":"","Enter image caption":"","Enter table caption":"",Find:"Таб","Find and replace":"","Find in text…":"Текстта таб...","Full size image":"",Green:"Яшел",Grey:"Соры",Groove:"","Header column":"","Header row":"",Height:"",HEX:"","Horizontal text alignment toolbar":"","Image resize list":"","Image toolbar":"","image widget":"","In line":"",Insert:"","Insert column left":"","Insert column right":"","Insert image":"","Insert image via URL":"","Insert row above":"","Insert row below":"","Insert table":"",Inset:"",Italic:"","Justify cell text":"","Left aligned image":"","Light blue":"Ачык зәңгәр","Light green":"Ачык яшел","Light grey":"Ачык соры",Link:"Сылтама","Link image":"","Link URL":"","List properties":"","Lower-latin":"","Lower–roman":"","Match case":"","Merge cell down":"","Merge cell left":"","Merge cell right":"","Merge cell up":"","Merge cells":"",Next:"","Next result":"",None:"","Numbered List":"","Numbered list styles toolbar":"","Open in a new tab":"","Open link in new tab":"",Orange:"Кызгылт",Original:"",Outset:"",Padding:"",Previous:"","Previous result":"",Purple:"Шәмәхә",Red:"Кызыл",Redo:"Кабатла","Remove color":"",Replace:"","Replace all":"","Replace with…":"","Resize image":"","Resize image to %0":"","Resize image to the original size":"","Restore default":"","Reversed order":"","Rich Text Editor":"",Ridge:"","Right aligned image":"",Row:"",Save:"Сакла","Select column":"","Select row":"","Show more items":"","Show options":"","Side image":"",Solid:"","Split cell horizontally":"","Split cell vertically":"",Square:"","Start at":"","Start index must be greater than 0.":"",Strikethrough:"",Style:"","Table alignment toolbar":"","Table cell text alignment":"","Table properties":"","Table toolbar":"","Text alternative":"","Text to find must not be empty.":"","The color is invalid. Try \"#FF0000\" or \"rgb(255,0,0)\" or \"red\".":"","The value is invalid. Try \"10px\" or \"2em\" or simply \"2\".":"","This link has no URL":"","Tip: Find some text first in order to replace it.":"","Toggle caption off":"","Toggle caption on":"","Toggle the circle list style":"","Toggle the decimal list style":"","Toggle the decimal with leading zero list style":"","Toggle the disc list style":"","Toggle the lower–latin list style":"","Toggle the lower–roman list style":"","Toggle the square list style":"","Toggle the upper–latin list style":"","Toggle the upper–roman list style":"",Turquoise:"Фервоз",Underline:"",Undo:"",Unlink:"",Update:"Яңарт","Update image URL":"","Upload failed":"","Upper-latin":"","Upper-roman":"","Vertical text alignment toolbar":"",White:"Ак","Whole words only":"",Width:"","Wrap text":"",Yellow:"Сары"} );l.getPluralForm=function(n){return 0;;};})(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
8332
resources/js/vendor/ckeditor/package-lock.json
generated
vendored
8332
resources/js/vendor/ckeditor/package-lock.json
generated
vendored
File diff suppressed because it is too large
Load diff
53
resources/js/vendor/ckeditor/package.json
vendored
53
resources/js/vendor/ckeditor/package.json
vendored
|
|
@ -1,53 +0,0 @@
|
|||
{
|
||||
"name": "ckeditor5-calliope-build",
|
||||
"author": "Jeremy Munsch<jeremy.munsch@ldc.fr>",
|
||||
"description": "Build spécial Calliope avec adaptateur Laravel File Manager",
|
||||
"version": "0.2.0",
|
||||
"license": "SEE LICENSE IN LICENSE.md",
|
||||
"private": true,
|
||||
"main": "./build/ckeditor.js",
|
||||
"devDependencies": {
|
||||
"@ckeditor/ckeditor5-alignment": "^38.0.1",
|
||||
"@ckeditor/ckeditor5-autoformat": "^38.0.1",
|
||||
"@ckeditor/ckeditor5-basic-styles": "^38.0.1",
|
||||
"@ckeditor/ckeditor5-block-quote": "^38.0.1",
|
||||
"@ckeditor/ckeditor5-code-block": "^38.0.1",
|
||||
"@ckeditor/ckeditor5-dev-translations": "^32.1.2",
|
||||
"@ckeditor/ckeditor5-dev-utils": "^32.1.2",
|
||||
"@ckeditor/ckeditor5-editor-classic": "^38.0.1",
|
||||
"@ckeditor/ckeditor5-essentials": "^38.0.1",
|
||||
"@ckeditor/ckeditor5-find-and-replace": "^38.0.1",
|
||||
"@ckeditor/ckeditor5-font": "^38.0.1",
|
||||
"@ckeditor/ckeditor5-heading": "^38.0.1",
|
||||
"@ckeditor/ckeditor5-highlight": "^38.0.1",
|
||||
"@ckeditor/ckeditor5-horizontal-line": "^38.0.1",
|
||||
"@ckeditor/ckeditor5-html-support": "^38.0.1",
|
||||
"@ckeditor/ckeditor5-image": "^38.0.1",
|
||||
"@ckeditor/ckeditor5-indent": "^38.0.1",
|
||||
"@ckeditor/ckeditor5-link": "^38.0.1",
|
||||
"@ckeditor/ckeditor5-list": "^38.0.1",
|
||||
"@ckeditor/ckeditor5-media-embed": "^38.0.1",
|
||||
"@ckeditor/ckeditor5-paragraph": "^38.0.1",
|
||||
"@ckeditor/ckeditor5-paste-from-office": "^38.0.1",
|
||||
"@ckeditor/ckeditor5-remove-format": "^38.0.1",
|
||||
"@ckeditor/ckeditor5-source-editing": "^38.0.1",
|
||||
"@ckeditor/ckeditor5-special-characters": "^38.0.1",
|
||||
"@ckeditor/ckeditor5-style": "^38.0.1",
|
||||
"@ckeditor/ckeditor5-table": "^38.0.1",
|
||||
"@ckeditor/ckeditor5-theme-lark": "^38.0.1",
|
||||
"@ckeditor/ckeditor5-typing": "^38.0.1",
|
||||
"@ckeditor/ckeditor5-upload": "^38.0.1",
|
||||
"@ckeditor/ckeditor5-word-count": "^38.0.1",
|
||||
"css-loader": "^5.2.7",
|
||||
"postcss": "^8.4.23",
|
||||
"postcss-loader": "^4.3.0",
|
||||
"raw-loader": "^4.0.2",
|
||||
"style-loader": "^2.0.0",
|
||||
"terser-webpack-plugin": "^4.2.3",
|
||||
"webpack": "^5.83.1",
|
||||
"webpack-cli": "^4.10.0"
|
||||
},
|
||||
"scripts": {
|
||||
"build": "webpack --mode production"
|
||||
}
|
||||
}
|
||||
171
resources/js/vendor/ckeditor/sample/index.html
vendored
171
resources/js/vendor/ckeditor/sample/index.html
vendored
|
|
@ -1,171 +0,0 @@
|
|||
<!DOCTYPE html><!--
|
||||
Copyright (c) 2014-2021, CKSource - Frederico Knabben. All rights reserved.
|
||||
This file is licensed under the terms of the MIT License (see LICENSE.md).
|
||||
-->
|
||||
|
||||
<html lang="en" dir="ltr">
|
||||
<head>
|
||||
<title>CKEditor 5 ClassicEditor build</title>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<link rel="icon" type="image/png" href="https://c.cksource.com/a/1/logos/ckeditor5.png">
|
||||
<link rel="stylesheet" type="text/css" href="styles.css">
|
||||
</head>
|
||||
<body data-editor="ClassicEditor" data-collaboration="false" data-revision-history="false">
|
||||
<header>
|
||||
<div class="centered">
|
||||
<h1><a href="https://ckeditor.com/ckeditor-5/" target="_blank" rel="noopener noreferrer"><img src="https://c.cksource.com/a/1/logos/ckeditor5.svg" alt="CKEditor 5 logo">CKEditor 5</a></h1>
|
||||
<nav>
|
||||
<ul>
|
||||
<li><a href="https://ckeditor.com/docs/ckeditor5/" target="_blank" rel="noopener noreferrer">Documentation</a></li>
|
||||
<li><a href="https://ckeditor.com/" target="_blank" rel="noopener noreferrer">Website</a></li>
|
||||
</ul>
|
||||
</nav>
|
||||
</div>
|
||||
</header>
|
||||
<main>
|
||||
<div class="message">
|
||||
<div class="centered">
|
||||
<h2>CKEditor 5 online builder demo - ClassicEditor build</h2>
|
||||
</div>
|
||||
</div>
|
||||
<div class="centered">
|
||||
<div class="row row-editor">
|
||||
<div class="editor-container">
|
||||
<div class="editor">
|
||||
<h2>Bilingual Personality Disorder</h2>
|
||||
<figure class="image image-style-side"><img src="https://c.cksource.com/a/1/img/docs/sample-image-bilingual-personality-disorder.jpg">
|
||||
<figcaption>One language, one person.</figcaption>
|
||||
</figure>
|
||||
<p>
|
||||
This may be the first time you hear about this made-up disorder but
|
||||
it actually isn’t so far from the truth. Even the studies that were conducted almost half a century show that
|
||||
<strong>the language you speak has more effects on you than you realise</strong>.
|
||||
</p>
|
||||
<p>
|
||||
One of the very first experiments conducted on this topic dates back to 1964.
|
||||
<a href="https://www.researchgate.net/publication/9440038_Language_and_TAT_content_in_bilinguals">In the experiment</a>
|
||||
designed by linguist Ervin-Tripp who is an authority expert in psycholinguistic and sociolinguistic studies,
|
||||
adults who are bilingual in English in French were showed series of pictures and were asked to create 3-minute stories.
|
||||
In the end participants emphasized drastically different dynamics for stories in English and French.
|
||||
</p>
|
||||
<p>
|
||||
Another ground-breaking experiment which included bilingual Japanese women married to American men in San Francisco were
|
||||
asked to complete sentences. The goal of the experiment was to investigate whether or not human feelings and thoughts
|
||||
are expressed differently in <strong>different language mindsets</strong>.
|
||||
Here is a sample from the the experiment:
|
||||
</p>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th></th>
|
||||
<th>English</th>
|
||||
<th>Japanese</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>Real friends should</td>
|
||||
<td>Be very frank</td>
|
||||
<td>Help each other</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>I will probably become</td>
|
||||
<td>A teacher</td>
|
||||
<td>A housewife</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>When there is a conflict with family</td>
|
||||
<td>I do what I want</td>
|
||||
<td>It's a time of great unhappiness</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<p>
|
||||
More recent <a href="https://books.google.pl/books?id=1LMhWGHGkRUC">studies</a> show, the language a person speaks affects
|
||||
their cognition, behaviour, emotions and hence <strong>their personality</strong>.
|
||||
This shouldn’t come as a surprise
|
||||
<a href="https://en.wikipedia.org/wiki/Lateralization_of_brain_function">since we already know</a> that different regions
|
||||
of the brain become more active depending on the person’s activity at hand. Since structure, information and especially
|
||||
<strong>the culture</strong> of languages varies substantially and the language a person speaks is an essential element of daily life.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div></div>
|
||||
</div>
|
||||
</main>
|
||||
<footer>
|
||||
<p><a href="https://ckeditor.com/ckeditor-5/" target="_blank" rel="noopener">CKEditor 5</a>
|
||||
– Rich text editor of tomorrow, available today
|
||||
</p>
|
||||
<p>Copyright © 2003-2021,
|
||||
<a href="https://cksource.com/" target="_blank" rel="noopener">CKSource</a>
|
||||
– Frederico Knabben. All rights reserved.
|
||||
</p>
|
||||
</footer>
|
||||
<script src="../build/ckeditor.js"></script>
|
||||
<script>ClassicEditor
|
||||
.create( document.querySelector( '.editor' ), {
|
||||
|
||||
toolbar: {
|
||||
items: [
|
||||
'heading',
|
||||
'|',
|
||||
'bold',
|
||||
'italic',
|
||||
'underline',
|
||||
'link',
|
||||
'bulletedList',
|
||||
'numberedList',
|
||||
'|',
|
||||
'outdent',
|
||||
'indent',
|
||||
'alignment',
|
||||
'|',
|
||||
'imageUpload',
|
||||
'blockQuote',
|
||||
'insertTable',
|
||||
'mediaEmbed',
|
||||
'|',
|
||||
'fontColor',
|
||||
'fontFamily',
|
||||
'fontSize',
|
||||
'horizontalLine',
|
||||
'|',
|
||||
'removeFormat',
|
||||
'|',
|
||||
'undo',
|
||||
'redo'
|
||||
]
|
||||
},
|
||||
language: 'fr',
|
||||
image: {
|
||||
toolbar: [
|
||||
'imageTextAlternative',
|
||||
'imageStyle:inline',
|
||||
'imageStyle:block',
|
||||
'imageStyle:side',
|
||||
'linkImage'
|
||||
]
|
||||
},
|
||||
licenseKey: '',
|
||||
|
||||
|
||||
|
||||
} )
|
||||
.then( editor => {
|
||||
window.editor = editor;
|
||||
|
||||
|
||||
|
||||
|
||||
} )
|
||||
.catch( error => {
|
||||
console.error( 'Oops, something went wrong!' );
|
||||
console.error( 'Please, report the following error on https://github.com/ckeditor/ckeditor5/issues with the build id and the error stack trace:' );
|
||||
console.warn( 'Build id: unyb7c61pdjq-xt0bz4ltrghq' );
|
||||
console.error( error );
|
||||
} );
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
500
resources/js/vendor/ckeditor/sample/styles.css
vendored
500
resources/js/vendor/ckeditor/sample/styles.css
vendored
|
|
@ -1,500 +0,0 @@
|
|||
/**
|
||||
* @license Copyright (c) 2014-2021, CKSource - Frederico Knabben. All rights reserved.
|
||||
* This file is licensed under the terms of the MIT License (see LICENSE.md).
|
||||
*/
|
||||
|
||||
:root {
|
||||
--ck-sample-base-spacing: 2em;
|
||||
--ck-sample-color-white: #fff;
|
||||
--ck-sample-color-green: #279863;
|
||||
--ck-sample-color-blue: #1a9aef;
|
||||
--ck-sample-container-width: 1285px;
|
||||
--ck-sample-sidebar-width: 350px;
|
||||
--ck-sample-editor-min-height: 400px;
|
||||
--ck-sample-editor-z-index: 10;
|
||||
}
|
||||
|
||||
/* --------- EDITOR STYLES ---------------------------------------------------------------------------------------- */
|
||||
|
||||
.editor__editable,
|
||||
/* Classic build. */
|
||||
main .ck-editor[role='application'] .ck.ck-content,
|
||||
/* Decoupled document build. */
|
||||
.ck.editor__editable[role='textbox'],
|
||||
.ck.ck-editor__editable[role='textbox'],
|
||||
/* Inline & Balloon build. */
|
||||
.ck.editor[role='textbox'] {
|
||||
width: 100%;
|
||||
background: #fff;
|
||||
font-size: 1em;
|
||||
line-height: 1.6em;
|
||||
min-height: var(--ck-sample-editor-min-height);
|
||||
padding: 1.5em 2em;
|
||||
}
|
||||
|
||||
main .ck-editor[role='application'] {
|
||||
overflow: auto;
|
||||
}
|
||||
|
||||
.ck.ck-editor__editable {
|
||||
background: #fff;
|
||||
border: 1px solid hsl(0, 0%, 70%);
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
/* Because of sidebar `position: relative`, Edge is overriding the outline of a focused editor. */
|
||||
.ck.ck-editor__editable {
|
||||
position: relative;
|
||||
z-index: var(--ck-sample-editor-z-index);
|
||||
}
|
||||
|
||||
.editor-container {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
flex-wrap: nowrap;
|
||||
position: relative;
|
||||
width: 100%;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
/* --------- DECOUPLED (DOCUMENT) BUILD. ---------------------------------------------*/
|
||||
body[data-editor='DecoupledDocumentEditor'] .document-editor__toolbar {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
body[data-editor='DecoupledDocumentEditor'] .collaboration-demo__editable,
|
||||
body[data-editor='DecoupledDocumentEditor'] .row-editor .editor {
|
||||
/* A pixel is added for each of the border. */
|
||||
width: calc(21cm + 2px);
|
||||
min-height: calc(29.7cm + 2px);
|
||||
/* To avoid having extra scrolls inside the editor container. */
|
||||
height: fit-content;
|
||||
padding: 2cm 1.2cm;
|
||||
margin: 2.5rem;
|
||||
border: 1px hsl( 0, 0%, 82.7% ) solid;
|
||||
background-color: var(--ck-sample-color-white);
|
||||
box-shadow: 0 0 5px hsla( 0, 0%, 0%, .1 );
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
body[data-editor='DecoupledDocumentEditor'] .row-editor {
|
||||
display: flex;
|
||||
position: relative;
|
||||
justify-content: center;
|
||||
overflow-y: auto;
|
||||
background-color: #f2f2f2;
|
||||
border: 1px solid hsl(0, 0%, 77%);
|
||||
/* Limit the max-height of the editor to avoid scrolling from bottom to top to see the toolbar. */
|
||||
max-height: 700px;
|
||||
}
|
||||
|
||||
body[data-editor='DecoupledDocumentEditor'] .sidebar {
|
||||
background: transparent;
|
||||
border: 0;
|
||||
box-shadow: none;
|
||||
}
|
||||
|
||||
/* --------- COMMENTS & TRACK CHANGES FEATURE ---------------------------------------------------------------------- */
|
||||
.sidebar {
|
||||
padding: 0 15px;
|
||||
position: relative;
|
||||
min-width: var(--ck-sample-sidebar-width);
|
||||
max-width: var(--ck-sample-sidebar-width);
|
||||
font-size: 20px;
|
||||
border: 1px solid hsl(0, 0%, 77%);
|
||||
background: hsl(0, 0%, 98%);
|
||||
border-left: 0;
|
||||
overflow: hidden;
|
||||
min-height: 100%;
|
||||
flex-grow: 1;
|
||||
}
|
||||
|
||||
/* Do not inherit styles related to the editable editor content. See line 25.*/
|
||||
.sidebar .ck-content[role='textbox'],
|
||||
.ck.ck-annotation-wrapper .ck-content[role='textbox'] {
|
||||
min-height: unset;
|
||||
width: unset;
|
||||
padding: 0;
|
||||
background: transparent;
|
||||
}
|
||||
|
||||
.sidebar.narrow {
|
||||
min-width: 60px;
|
||||
flex-grow: 0;
|
||||
}
|
||||
|
||||
.sidebar.hidden {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
#sidebar-display-toggle {
|
||||
position: absolute;
|
||||
z-index: 1;
|
||||
width: 30px;
|
||||
height: 30px;
|
||||
text-align: center;
|
||||
left: 15px;
|
||||
top: 30px;
|
||||
border: 0;
|
||||
padding: 0;
|
||||
color: hsl( 0, 0%, 50% );
|
||||
transition: 250ms ease color;
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
#sidebar-display-toggle:hover {
|
||||
color: hsl( 0, 0%, 30% );
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
#sidebar-display-toggle:focus,
|
||||
#sidebar-display-toggle:active {
|
||||
outline: none;
|
||||
border: 1px solid #a9d29d;
|
||||
}
|
||||
|
||||
#sidebar-display-toggle svg {
|
||||
fill: currentColor;
|
||||
}
|
||||
|
||||
/* --------- COLLABORATION FEATURES (USERS) ------------------------------------------------------------------------ */
|
||||
.row-presence {
|
||||
width: 100%;
|
||||
border: 1px solid hsl(0, 0%, 77%);
|
||||
border-bottom: 0;
|
||||
background: hsl(0, 0%, 98%);
|
||||
padding: var(--ck-spacing-small);
|
||||
|
||||
/* Make `border-bottom` as `box-shadow` to not overlap with the editor border. */
|
||||
box-shadow: 0 1px 0 0 hsl(0, 0%, 77%);
|
||||
|
||||
/* Make `z-index` bigger than `.editor` to properly display tooltips. */
|
||||
z-index: 20;
|
||||
}
|
||||
|
||||
.ck.ck-presence-list {
|
||||
flex: 1;
|
||||
padding: 1.25rem .75rem;
|
||||
}
|
||||
|
||||
.presence .ck.ck-presence-list__counter {
|
||||
order: 2;
|
||||
margin-left: var(--ck-spacing-large)
|
||||
}
|
||||
|
||||
/* --------- REAL TIME COLLABORATION FEATURES (SHARE TOPBAR CONTAINER) --------------------------------------------- */
|
||||
.collaboration-demo__row {
|
||||
display: flex;
|
||||
position: relative;
|
||||
justify-content: center;
|
||||
overflow-y: auto;
|
||||
background-color: #f2f2f2;
|
||||
border: 1px solid hsl(0, 0%, 77%);
|
||||
}
|
||||
|
||||
body[data-editor='InlineEditor'] .collaboration-demo__row {
|
||||
border: 0;
|
||||
}
|
||||
|
||||
.collaboration-demo__container {
|
||||
max-width: var(--ck-sample-container-width);
|
||||
margin: 0 auto;
|
||||
padding: 1.25rem;
|
||||
}
|
||||
|
||||
.presence, .collaboration-demo__row {
|
||||
transition: .2s opacity;
|
||||
}
|
||||
|
||||
.collaboration-demo__topbar {
|
||||
background: #fff;
|
||||
border: 1px solid var(--ck-color-toolbar-border);
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
border-bottom: 0;
|
||||
border-radius: 4px 4px 0 0;
|
||||
}
|
||||
|
||||
.collaboration-demo__topbar .btn {
|
||||
margin-right: 1em;
|
||||
outline-offset: 2px;
|
||||
outline-width: 2px;
|
||||
background-color: var( --ck-sample-color-blue );
|
||||
}
|
||||
|
||||
.collaboration-demo__topbar .btn:focus,
|
||||
.collaboration-demo__topbar .btn:hover {
|
||||
border-color: var( --ck-sample-color-blue );
|
||||
}
|
||||
|
||||
.collaboration-demo__share {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
padding: 1.25rem .75rem
|
||||
}
|
||||
|
||||
.collaboration-demo__share-description p {
|
||||
margin: 0;
|
||||
font-weight: bold;
|
||||
font-size: 0.9em;
|
||||
}
|
||||
|
||||
.collaboration-demo__share input {
|
||||
height: auto;
|
||||
font-size: 0.9em;
|
||||
min-width: 220px;
|
||||
margin: 0 10px;
|
||||
border-radius: 4px;
|
||||
border: 1px solid var(--ck-color-toolbar-border)
|
||||
}
|
||||
|
||||
.collaboration-demo__share button,
|
||||
.collaboration-demo__share input {
|
||||
height: 40px;
|
||||
padding: 5px 10px;
|
||||
}
|
||||
|
||||
.collaboration-demo__share button {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.collaboration-demo__share button:focus {
|
||||
outline: none;
|
||||
}
|
||||
|
||||
.collaboration-demo__share button[data-tooltip]::before,
|
||||
.collaboration-demo__share button[data-tooltip]::after {
|
||||
position: absolute;
|
||||
visibility: hidden;
|
||||
opacity: 0;
|
||||
pointer-events: none;
|
||||
transition: all .15s cubic-bezier(.5,1,.25,1);
|
||||
z-index: 1;
|
||||
}
|
||||
|
||||
.collaboration-demo__share button[data-tooltip]::before {
|
||||
content: attr(data-tooltip);
|
||||
padding: 5px 15px;
|
||||
border-radius: 3px;
|
||||
background: #111;
|
||||
color: #fff;
|
||||
text-align: center;
|
||||
font-size: 11px;
|
||||
top: 100%;
|
||||
left: 50%;
|
||||
margin-top: 5px;
|
||||
transform: translateX(-50%);
|
||||
}
|
||||
|
||||
.collaboration-demo__share button[data-tooltip]::after {
|
||||
content: '';
|
||||
border: 5px solid transparent;
|
||||
width: 0;
|
||||
font-size: 0;
|
||||
line-height: 0;
|
||||
top: 100%;
|
||||
left: 50%;
|
||||
transform: translateX(-50%);
|
||||
border-bottom: 5px solid #111;
|
||||
border-top: none;
|
||||
}
|
||||
|
||||
.collaboration-demo__share button[data-tooltip]:hover:before,
|
||||
.collaboration-demo__share button[data-tooltip]:hover:after {
|
||||
visibility: visible;
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
.collaboration-demo--ready {
|
||||
overflow: visible;
|
||||
height: auto;
|
||||
}
|
||||
|
||||
.collaboration-demo--ready .presence,
|
||||
.collaboration-demo--ready .collaboration-demo__row {
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
/* --------- PAGINATION FEATURE ------------------------------------------------------------------------------------ */
|
||||
|
||||
/* Pagination view line must be stacked at least at the same level as the editor,
|
||||
otherwise it will be hidden underneath. */
|
||||
.ck.ck-pagination-view-line {
|
||||
z-index: var(--ck-sample-editor-z-index);
|
||||
}
|
||||
|
||||
/* --------- REVISION HISTORY FEATURE ------------------------------------------------------------------------------ */
|
||||
|
||||
.revision-viewer-container {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.revision-viewer-sidebar {
|
||||
position: relative;
|
||||
min-width: 310px;
|
||||
overflow: hidden;
|
||||
background: var(--ck-color-toolbar-background);
|
||||
border: 1px solid var(--ck-color-toolbar-border);
|
||||
margin-left: -1px;
|
||||
}
|
||||
|
||||
/* A case when Pagination and Revision History features are enabled in the editor. */
|
||||
/* Move the square with page number from the Pagination plugin to the left side, so that it does not cover the RH sidebar. */
|
||||
body[data-revision-history='true'] .ck.ck-pagination-view-line::after {
|
||||
transform: translateX(-100%) !important;
|
||||
left: -1px !important;
|
||||
right: unset !important;
|
||||
}
|
||||
|
||||
/* --------- SAMPLE GENERIC STYLES (not related to CKEditor) ------------------------------------------------------- */
|
||||
body, html {
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
|
||||
font-family: sans-serif, Arial, Verdana, "Trebuchet MS", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
|
||||
font-size: 16px;
|
||||
line-height: 1.5;
|
||||
}
|
||||
|
||||
body {
|
||||
height: 100%;
|
||||
color: #2D3A4A;
|
||||
}
|
||||
|
||||
body * {
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
a {
|
||||
color: #38A5EE;
|
||||
}
|
||||
|
||||
header .centered {
|
||||
display: flex;
|
||||
flex-flow: row nowrap;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
min-height: 8em;
|
||||
}
|
||||
|
||||
header h1 a {
|
||||
font-size: 20px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
color: #2D3A4A;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
header h1 img {
|
||||
display: block;
|
||||
height: 64px;
|
||||
}
|
||||
|
||||
header nav ul {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
list-style-type: none;
|
||||
}
|
||||
|
||||
header nav ul li {
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
header nav ul li + li {
|
||||
margin-left: 1em;
|
||||
}
|
||||
|
||||
header nav ul li a {
|
||||
font-weight: bold;
|
||||
text-decoration: none;
|
||||
color: #2D3A4A;
|
||||
}
|
||||
|
||||
header nav ul li a:hover {
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
main .message {
|
||||
padding: 0 0 var(--ck-sample-base-spacing);
|
||||
background: var(--ck-sample-color-green);
|
||||
color: var(--ck-sample-color-white);
|
||||
}
|
||||
|
||||
main .message::after {
|
||||
content: "";
|
||||
z-index: -1;
|
||||
display: block;
|
||||
height: 10em;
|
||||
width: 100%;
|
||||
background: var(--ck-sample-color-green);
|
||||
position: absolute;
|
||||
left: 0;
|
||||
}
|
||||
|
||||
main .message h2 {
|
||||
position: relative;
|
||||
padding-top: 1em;
|
||||
font-size: 2em;
|
||||
}
|
||||
|
||||
.centered {
|
||||
/* Hide overlapping comments. */
|
||||
overflow: hidden;
|
||||
max-width: var(--ck-sample-container-width);
|
||||
margin: 0 auto;
|
||||
padding: 0 var(--ck-sample-base-spacing);
|
||||
}
|
||||
|
||||
.row {
|
||||
display: flex;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.btn {
|
||||
cursor: pointer;
|
||||
padding: 8px 16px;
|
||||
font-size: 1rem;
|
||||
user-select: none;
|
||||
border-radius: 4px;
|
||||
transition: color .2s ease-in-out,background-color .2s ease-in-out,border-color .2s ease-in-out,opacity .2s ease-in-out;
|
||||
background-color: var(--ck-sample-color-button-blue);
|
||||
border-color: var(--ck-sample-color-button-blue);
|
||||
color: var(--ck-sample-color-white);
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
.btn--tiny {
|
||||
padding: 6px 12px;
|
||||
font-size: .8rem;
|
||||
}
|
||||
|
||||
footer {
|
||||
margin: calc(2*var(--ck-sample-base-spacing)) var(--ck-sample-base-spacing);
|
||||
font-size: .8em;
|
||||
text-align: center;
|
||||
color: rgba(0,0,0,.4);
|
||||
}
|
||||
|
||||
/* --------- RWD --------------------------------------------------------------------------------------------------- */
|
||||
@media screen and ( max-width: 800px ) {
|
||||
:root {
|
||||
--ck-sample-base-spacing: 1em;
|
||||
}
|
||||
|
||||
header h1 {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
header h1 img {
|
||||
height: 40px;
|
||||
}
|
||||
|
||||
header nav ul {
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
main .message h2 {
|
||||
font-size: 1.5em;
|
||||
}
|
||||
}
|
||||
171
resources/js/vendor/ckeditor/src/ckeditor.js
vendored
171
resources/js/vendor/ckeditor/src/ckeditor.js
vendored
|
|
@ -1,171 +0,0 @@
|
|||
/**
|
||||
* @license Copyright (c) 2014-2021, CKSource - Frederico Knabben. All rights reserved.
|
||||
* For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
|
||||
*/
|
||||
import ClassicEditor from '@ckeditor/ckeditor5-editor-classic/src/classiceditor.js';
|
||||
import Alignment from '@ckeditor/ckeditor5-alignment/src/alignment.js';
|
||||
import Autoformat from '@ckeditor/ckeditor5-autoformat/src/autoformat.js';
|
||||
import AutoLink from '@ckeditor/ckeditor5-link/src/autolink.js';
|
||||
import BlockQuote from '@ckeditor/ckeditor5-block-quote/src/blockquote.js';
|
||||
import Bold from '@ckeditor/ckeditor5-basic-styles/src/bold.js';
|
||||
import Code from '@ckeditor/ckeditor5-basic-styles/src/code.js';
|
||||
import CodeBlock from '@ckeditor/ckeditor5-code-block/src/codeblock.js';
|
||||
import Essentials from '@ckeditor/ckeditor5-essentials/src/essentials.js';
|
||||
import FindAndReplace from '@ckeditor/ckeditor5-find-and-replace/src/findandreplace.js';
|
||||
import FontBackgroundColor from '@ckeditor/ckeditor5-font/src/fontbackgroundcolor.js';
|
||||
import FontColor from '@ckeditor/ckeditor5-font/src/fontcolor.js';
|
||||
import FontFamily from '@ckeditor/ckeditor5-font/src/fontfamily.js';
|
||||
import FontSize from '@ckeditor/ckeditor5-font/src/fontsize.js';
|
||||
import GeneralHtmlSupport from '@ckeditor/ckeditor5-html-support/src/generalhtmlsupport.js';
|
||||
import Heading from '@ckeditor/ckeditor5-heading/src/heading.js';
|
||||
import Highlight from '@ckeditor/ckeditor5-highlight/src/highlight.js';
|
||||
import HorizontalLine from '@ckeditor/ckeditor5-horizontal-line/src/horizontalline.js';
|
||||
import Image from '@ckeditor/ckeditor5-image/src/image.js';
|
||||
import ImageCaption from '@ckeditor/ckeditor5-image/src/imagecaption.js';
|
||||
import ImageInsert from '@ckeditor/ckeditor5-image/src/imageinsert.js';
|
||||
import ImageResize from '@ckeditor/ckeditor5-image/src/imageresize.js';
|
||||
import ImageStyle from '@ckeditor/ckeditor5-image/src/imagestyle.js';
|
||||
import ImageToolbar from '@ckeditor/ckeditor5-image/src/imagetoolbar.js';
|
||||
import ImageUpload from '@ckeditor/ckeditor5-image/src/imageupload.js';
|
||||
import Indent from '@ckeditor/ckeditor5-indent/src/indent.js';
|
||||
import IndentBlock from '@ckeditor/ckeditor5-indent/src/indentblock.js';
|
||||
import Italic from '@ckeditor/ckeditor5-basic-styles/src/italic.js';
|
||||
import Link from '@ckeditor/ckeditor5-link/src/link.js';
|
||||
import LinkImage from '@ckeditor/ckeditor5-link/src/linkimage.js';
|
||||
import List from '@ckeditor/ckeditor5-list/src/list.js';
|
||||
import ListProperties from '@ckeditor/ckeditor5-list/src/listproperties.js';
|
||||
import MediaEmbed from '@ckeditor/ckeditor5-media-embed/src/mediaembed.js';
|
||||
import MediaEmbedEditing from '@ckeditor/ckeditor5-media-embed/src/mediaembedediting';
|
||||
import MediaEmbedUI from '@ckeditor/ckeditor5-media-embed/src/mediaembedui';
|
||||
import Paragraph from '@ckeditor/ckeditor5-paragraph/src/paragraph.js';
|
||||
import PasteFromOffice from '@ckeditor/ckeditor5-paste-from-office/src/pastefromoffice.js';
|
||||
import RemoveFormat from '@ckeditor/ckeditor5-remove-format/src/removeformat.js';
|
||||
import SimpleUploadAdapter from '@ckeditor/ckeditor5-upload/src/adapters/simpleuploadadapter.js';
|
||||
import SourceEditing from '@ckeditor/ckeditor5-source-editing/src/sourceediting.js';
|
||||
import SpecialCharacters from '@ckeditor/ckeditor5-special-characters/src/specialcharacters.js';
|
||||
import SpecialCharactersEssentials from '@ckeditor/ckeditor5-special-characters/src/specialcharactersessentials.js';
|
||||
import Strikethrough from '@ckeditor/ckeditor5-basic-styles/src/strikethrough.js';
|
||||
import Style from '@ckeditor/ckeditor5-style/src/style.js';
|
||||
import Table from '@ckeditor/ckeditor5-table/src/table.js';
|
||||
import TableCaption from '@ckeditor/ckeditor5-table/src/tablecaption.js';
|
||||
import TableCellProperties from '@ckeditor/ckeditor5-table/src/tablecellproperties';
|
||||
import TableColumnResize from '@ckeditor/ckeditor5-table/src/tablecolumnresize.js';
|
||||
import TableProperties from '@ckeditor/ckeditor5-table/src/tableproperties';
|
||||
import TableToolbar from '@ckeditor/ckeditor5-table/src/tabletoolbar.js';
|
||||
import TextTransformation from '@ckeditor/ckeditor5-typing/src/texttransformation.js';
|
||||
import Underline from '@ckeditor/ckeditor5-basic-styles/src/underline.js';
|
||||
import WordCount from '@ckeditor/ckeditor5-word-count/src/wordcount.js';
|
||||
import LaravelFileManager from "../../../LaravelFileManager";
|
||||
|
||||
/**
|
||||
* Legacy emojies
|
||||
*
|
||||
:-) 😊
|
||||
:-P 😛
|
||||
8-) 😎
|
||||
;-) 😉
|
||||
:-D 😄
|
||||
:twisted: 😈
|
||||
:mrgreen: 😁
|
||||
:lol: 😆
|
||||
:roll: 🙄
|
||||
:-? 😕
|
||||
:cry: 😢
|
||||
:-o 😮
|
||||
:evil: 😡
|
||||
:-| 😐
|
||||
:oops: 😳
|
||||
:-x 😠
|
||||
8-O 😲
|
||||
:-( 😧
|
||||
:arrow: ➡️
|
||||
:idea: 💡
|
||||
*/
|
||||
|
||||
const SpecialCharactersEmoji = function (editor) {
|
||||
editor.plugins.get("SpecialCharacters").addItems("Emoji", [
|
||||
{ title: ":-)", character: "😊" },
|
||||
{ title: ":-P", character: "😛" },
|
||||
{ title: "8-)", character: "😎" },
|
||||
{ title: ";-)", character: "😉" },
|
||||
{ title: ":-D", character: "😄" },
|
||||
{ title: ":twisted:", character: "😈" },
|
||||
{ title: ":mrgreen:", character: "😁" },
|
||||
{ title: ":lol:", character: "😆" },
|
||||
{ title: ":roll:", character: "🙄" },
|
||||
{ title: ":-?", character: "😕" },
|
||||
{ title: ":cry:", character: "😢" },
|
||||
{ title: ":-o", character: "😮" },
|
||||
{ title: ":evil:", character: "😡" },
|
||||
{ title: ":-|", character: "😐" },
|
||||
{ title: ":oops:", character: "😳" },
|
||||
{ title: ":-x", character: "😠" },
|
||||
{ title: "8-O", character: "😲" },
|
||||
{ title: ":-(", character: "😧" },
|
||||
{ title: ":arrow:", character: "➡" },
|
||||
{ title: ":idea:", character: "💡" },
|
||||
]);
|
||||
};
|
||||
|
||||
class Editor extends ClassicEditor {}
|
||||
|
||||
// Plugins to include in the build.
|
||||
Editor.builtinPlugins = [
|
||||
Alignment,
|
||||
Autoformat,
|
||||
AutoLink,
|
||||
BlockQuote,
|
||||
Bold,
|
||||
Code,
|
||||
CodeBlock,
|
||||
Essentials,
|
||||
FindAndReplace,
|
||||
FontBackgroundColor,
|
||||
FontColor,
|
||||
FontFamily,
|
||||
FontSize,
|
||||
GeneralHtmlSupport,
|
||||
Heading,
|
||||
HorizontalLine,
|
||||
Image,
|
||||
ImageCaption,
|
||||
ImageInsert,
|
||||
ImageResize,
|
||||
ImageStyle,
|
||||
ImageToolbar,
|
||||
ImageUpload,
|
||||
Indent,
|
||||
IndentBlock,
|
||||
Italic,
|
||||
Link,
|
||||
LinkImage,
|
||||
List,
|
||||
ListProperties,
|
||||
MediaEmbed,
|
||||
MediaEmbedEditing,
|
||||
MediaEmbedUI,
|
||||
Paragraph,
|
||||
PasteFromOffice,
|
||||
RemoveFormat,
|
||||
SimpleUploadAdapter,
|
||||
Table,
|
||||
TableToolbar,
|
||||
TableProperties,
|
||||
TableCellProperties,
|
||||
TableColumnResize,
|
||||
TableCaption,
|
||||
TextTransformation,
|
||||
Underline,
|
||||
WordCount,
|
||||
LaravelFileManager,
|
||||
SourceEditing,
|
||||
SpecialCharacters,
|
||||
SpecialCharactersEssentials,
|
||||
SpecialCharactersEmoji,
|
||||
Strikethrough,
|
||||
Style,
|
||||
Highlight,
|
||||
LaravelFileManager,
|
||||
];
|
||||
|
||||
export default Editor;
|
||||
99
resources/js/vendor/ckeditor/webpack.config.js
vendored
99
resources/js/vendor/ckeditor/webpack.config.js
vendored
|
|
@ -1,99 +0,0 @@
|
|||
/**
|
||||
* @license Copyright (c) 2014-2023, CKSource Holding sp. z o.o. All rights reserved.
|
||||
* For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
|
||||
*/
|
||||
|
||||
'use strict';
|
||||
|
||||
/* eslint-env node */
|
||||
|
||||
const path = require( 'path' );
|
||||
const webpack = require( 'webpack' );
|
||||
const { bundler, styles } = require( '@ckeditor/ckeditor5-dev-utils' );
|
||||
const { CKEditorTranslationsPlugin } = require( '@ckeditor/ckeditor5-dev-translations' );
|
||||
const TerserWebpackPlugin = require('terser-webpack-plugin');
|
||||
const MiniCssExtractPlugin = require('mini-css-extract-plugin');
|
||||
|
||||
module.exports = {
|
||||
// devtool: 'source-map',
|
||||
performance: { hints: false },
|
||||
|
||||
entry: path.resolve(__dirname, 'src', 'ckeditor.js'),
|
||||
|
||||
output: {
|
||||
// The name under which the editor will be exported.
|
||||
library: 'ClassicEditor',
|
||||
|
||||
path: path.resolve(__dirname, 'build'),
|
||||
filename: 'ckeditor.js',
|
||||
libraryTarget: 'umd',
|
||||
libraryExport: 'default'
|
||||
},
|
||||
|
||||
mode: 'development',
|
||||
optimization: {
|
||||
minimize: false,
|
||||
minimizer: [
|
||||
new TerserWebpackPlugin( {
|
||||
sourceMap: false,
|
||||
terserOptions: {
|
||||
output: {
|
||||
// Preserve CKEditor 5 license comments.
|
||||
// comments: /^!/
|
||||
}
|
||||
},
|
||||
// extractComments: false
|
||||
} )
|
||||
]
|
||||
},
|
||||
|
||||
plugins: [
|
||||
new CKEditorTranslationsPlugin({
|
||||
// The main language that will be built into the main bundle.
|
||||
language: 'fr',
|
||||
|
||||
// Additional languages that will be emitted to the `outputDirectory`.
|
||||
// This option can be set to an array of language codes or `'all'` to build all found languages.
|
||||
// The bundle is optimized for one language when this option is omitted.
|
||||
additionalLanguages: 'all',
|
||||
|
||||
// For more advanced options see https://github.com/ckeditor/ckeditor5-dev/tree/master/packages/ckeditor5-dev-translations.
|
||||
}),
|
||||
new webpack.BannerPlugin({
|
||||
banner: bundler.getLicenseBanner(),
|
||||
raw: true
|
||||
}),
|
||||
new MiniCssExtractPlugin({
|
||||
filename: 'styles.css'
|
||||
})
|
||||
],
|
||||
|
||||
module: {
|
||||
rules: [
|
||||
{
|
||||
test: /\.svg$/,
|
||||
use: ['raw-loader']
|
||||
},
|
||||
{
|
||||
test: /\.css$/,
|
||||
use: [
|
||||
MiniCssExtractPlugin.loader,
|
||||
{
|
||||
loader: 'css-loader'
|
||||
},
|
||||
{
|
||||
loader: 'postcss-loader',
|
||||
options: {
|
||||
postcssOptions: styles.getPostCssConfig({
|
||||
themeImporter: {
|
||||
themePath: require.resolve('@ckeditor/ckeditor5-theme-lark')
|
||||
},
|
||||
minify: false
|
||||
})
|
||||
}
|
||||
},
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
};
|
||||
482
resources/sass/vendor/_ckEditorContent.scss
vendored
482
resources/sass/vendor/_ckEditorContent.scss
vendored
|
|
@ -1,482 +0,0 @@
|
|||
// CKeditor fix in alert
|
||||
.ck-editor__main {
|
||||
color: initial;
|
||||
}
|
||||
|
||||
// FIX
|
||||
.ck-content {
|
||||
// * Import bootstrap reboot to counter count theme aggressive reset
|
||||
@import "bootstrap/scss/functions";
|
||||
@import "bootstrap/scss/variables";
|
||||
@import "bootstrap/scss/variables-dark";
|
||||
@import "bootstrap/scss/maps";
|
||||
@import "bootstrap/scss/mixins";
|
||||
@import "bootstrap/scss/root";
|
||||
@import "bootstrap/scss/reboot";
|
||||
}
|
||||
|
||||
/*
|
||||
* CKEditor 5 (v38.0.1) content styles.
|
||||
* Generated on Tue, 06 Jun 2023 11:41:38 GMT.
|
||||
* For more information, check out https://ckeditor.com/docs/ckeditor5/latest/installation/advanced/content-styles.html
|
||||
*/
|
||||
|
||||
:root {
|
||||
--ck-color-image-caption-background: hsl(0, 0%, 97%);
|
||||
--ck-color-image-caption-text: hsl(0, 0%, 20%);
|
||||
--ck-color-mention-background: hsla(341, 100%, 30%, 0.1);
|
||||
--ck-color-mention-text: hsl(341, 100%, 30%);
|
||||
--ck-color-table-caption-background: hsl(0, 0%, 97%);
|
||||
--ck-color-table-caption-text: hsl(0, 0%, 20%);
|
||||
--ck-highlight-marker-blue: hsl(201, 97%, 72%);
|
||||
--ck-highlight-marker-green: hsl(120, 93%, 68%);
|
||||
--ck-highlight-marker-pink: hsl(345, 96%, 73%);
|
||||
--ck-highlight-marker-yellow: hsl(60, 97%, 73%);
|
||||
--ck-highlight-pen-green: hsl(112, 100%, 27%);
|
||||
--ck-highlight-pen-red: hsl(0, 85%, 49%);
|
||||
--ck-image-style-spacing: 1.5em;
|
||||
--ck-inline-image-style-spacing: calc(var(--ck-image-style-spacing) / 2);
|
||||
--ck-todo-list-checkmark-size: 16px;
|
||||
}
|
||||
|
||||
/* @ckeditor/ckeditor5-basic-styles/theme/code.css */
|
||||
.ck-content code {
|
||||
background-color: hsla(0, 0%, 78%, 0.3);
|
||||
padding: 0.15em;
|
||||
border-radius: 2px;
|
||||
}
|
||||
/* @ckeditor/ckeditor5-block-quote/theme/blockquote.css */
|
||||
.ck-content blockquote {
|
||||
overflow: hidden;
|
||||
padding-right: 1.5em;
|
||||
padding-left: 1.5em;
|
||||
margin-left: 0;
|
||||
margin-right: 0;
|
||||
font-style: italic;
|
||||
border-left: solid 5px hsl(0, 0%, 80%);
|
||||
}
|
||||
/* @ckeditor/ckeditor5-block-quote/theme/blockquote.css */
|
||||
.ck-content[dir="rtl"] blockquote {
|
||||
border-left: 0;
|
||||
border-right: solid 5px hsl(0, 0%, 80%);
|
||||
}
|
||||
/* @ckeditor/ckeditor5-font/theme/fontsize.css */
|
||||
.ck-content .text-tiny {
|
||||
font-size: 0.7em;
|
||||
}
|
||||
/* @ckeditor/ckeditor5-font/theme/fontsize.css */
|
||||
.ck-content .text-small {
|
||||
font-size: 0.85em;
|
||||
}
|
||||
/* @ckeditor/ckeditor5-font/theme/fontsize.css */
|
||||
.ck-content .text-big {
|
||||
font-size: 1.4em;
|
||||
}
|
||||
/* @ckeditor/ckeditor5-font/theme/fontsize.css */
|
||||
.ck-content .text-huge {
|
||||
font-size: 1.8em;
|
||||
}
|
||||
/* @ckeditor/ckeditor5-highlight/theme/highlight.css */
|
||||
.ck-content .marker-yellow {
|
||||
background-color: var(--ck-highlight-marker-yellow);
|
||||
}
|
||||
/* @ckeditor/ckeditor5-highlight/theme/highlight.css */
|
||||
.ck-content .marker-green {
|
||||
background-color: var(--ck-highlight-marker-green);
|
||||
}
|
||||
/* @ckeditor/ckeditor5-highlight/theme/highlight.css */
|
||||
.ck-content .marker-pink {
|
||||
background-color: var(--ck-highlight-marker-pink);
|
||||
}
|
||||
/* @ckeditor/ckeditor5-highlight/theme/highlight.css */
|
||||
.ck-content .marker-blue {
|
||||
background-color: var(--ck-highlight-marker-blue);
|
||||
}
|
||||
/* @ckeditor/ckeditor5-highlight/theme/highlight.css */
|
||||
.ck-content .pen-red {
|
||||
color: var(--ck-highlight-pen-red);
|
||||
background-color: transparent;
|
||||
}
|
||||
/* @ckeditor/ckeditor5-highlight/theme/highlight.css */
|
||||
.ck-content .pen-green {
|
||||
color: var(--ck-highlight-pen-green);
|
||||
background-color: transparent;
|
||||
}
|
||||
/* @ckeditor/ckeditor5-image/theme/image.css */
|
||||
.ck-content .image {
|
||||
display: table;
|
||||
clear: both;
|
||||
text-align: center;
|
||||
margin: 0.9em auto;
|
||||
min-width: 50px;
|
||||
}
|
||||
/* @ckeditor/ckeditor5-image/theme/image.css */
|
||||
.ck-content .image img {
|
||||
display: block;
|
||||
margin: 0 auto;
|
||||
max-width: 100%;
|
||||
min-width: 100%;
|
||||
}
|
||||
/* @ckeditor/ckeditor5-image/theme/image.css */
|
||||
.ck-content .image-inline {
|
||||
/*
|
||||
* Normally, the .image-inline would have "display: inline-block" and "img { width: 100% }" (to follow the wrapper while resizing).;
|
||||
* Unfortunately, together with "srcset", it gets automatically stretched up to the width of the editing root.
|
||||
* This strange behavior does not happen with inline-flex.
|
||||
*/
|
||||
display: inline-flex;
|
||||
max-width: 100%;
|
||||
align-items: flex-start;
|
||||
}
|
||||
/* @ckeditor/ckeditor5-image/theme/image.css */
|
||||
.ck-content .image-inline picture {
|
||||
display: flex;
|
||||
}
|
||||
/* @ckeditor/ckeditor5-image/theme/image.css */
|
||||
.ck-content .image-inline picture,
|
||||
.ck-content .image-inline img {
|
||||
flex-grow: 1;
|
||||
flex-shrink: 1;
|
||||
max-width: 100%;
|
||||
}
|
||||
/* @ckeditor/ckeditor5-image/theme/imageresize.css */
|
||||
.ck-content .image.image_resized {
|
||||
max-width: 100%;
|
||||
display: block;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
/* @ckeditor/ckeditor5-image/theme/imageresize.css */
|
||||
.ck-content .image.image_resized img {
|
||||
width: 100%;
|
||||
}
|
||||
/* @ckeditor/ckeditor5-image/theme/imageresize.css */
|
||||
.ck-content .image.image_resized > figcaption {
|
||||
display: block;
|
||||
}
|
||||
/* @ckeditor/ckeditor5-image/theme/imagecaption.css */
|
||||
.ck-content .image > figcaption {
|
||||
display: table-caption;
|
||||
caption-side: bottom;
|
||||
word-break: break-word;
|
||||
color: var(--ck-color-image-caption-text);
|
||||
background-color: var(--ck-color-image-caption-background);
|
||||
padding: 0.6em;
|
||||
font-size: 0.75em;
|
||||
outline-offset: -1px;
|
||||
}
|
||||
/* @ckeditor/ckeditor5-image/theme/imagestyle.css */
|
||||
.ck-content .image-style-block-align-left,
|
||||
.ck-content .image-style-block-align-right {
|
||||
max-width: calc(100% - var(--ck-image-style-spacing));
|
||||
}
|
||||
/* @ckeditor/ckeditor5-image/theme/imagestyle.css */
|
||||
.ck-content .image-style-align-left,
|
||||
.ck-content .image-style-align-right {
|
||||
clear: none;
|
||||
}
|
||||
/* @ckeditor/ckeditor5-image/theme/imagestyle.css */
|
||||
.ck-content .image-style-side {
|
||||
float: right;
|
||||
margin-left: var(--ck-image-style-spacing);
|
||||
max-width: 50%;
|
||||
}
|
||||
/* @ckeditor/ckeditor5-image/theme/imagestyle.css */
|
||||
.ck-content .image-style-align-left {
|
||||
float: left;
|
||||
margin-right: var(--ck-image-style-spacing);
|
||||
}
|
||||
/* @ckeditor/ckeditor5-image/theme/imagestyle.css */
|
||||
.ck-content .image-style-align-center {
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
}
|
||||
/* @ckeditor/ckeditor5-image/theme/imagestyle.css */
|
||||
.ck-content .image-style-align-right {
|
||||
float: right;
|
||||
margin-left: var(--ck-image-style-spacing);
|
||||
}
|
||||
/* @ckeditor/ckeditor5-image/theme/imagestyle.css */
|
||||
.ck-content .image-style-block-align-right {
|
||||
margin-right: 0;
|
||||
margin-left: auto;
|
||||
}
|
||||
/* @ckeditor/ckeditor5-image/theme/imagestyle.css */
|
||||
.ck-content .image-style-block-align-left {
|
||||
margin-left: 0;
|
||||
margin-right: auto;
|
||||
}
|
||||
/* @ckeditor/ckeditor5-image/theme/imagestyle.css */
|
||||
.ck-content p + .image-style-align-left,
|
||||
.ck-content p + .image-style-align-right,
|
||||
.ck-content p + .image-style-side {
|
||||
margin-top: 0;
|
||||
}
|
||||
/* @ckeditor/ckeditor5-image/theme/imagestyle.css */
|
||||
.ck-content .image-inline.image-style-align-left,
|
||||
.ck-content .image-inline.image-style-align-right {
|
||||
margin-top: var(--ck-inline-image-style-spacing);
|
||||
margin-bottom: var(--ck-inline-image-style-spacing);
|
||||
}
|
||||
/* @ckeditor/ckeditor5-image/theme/imagestyle.css */
|
||||
.ck-content .image-inline.image-style-align-left {
|
||||
margin-right: var(--ck-inline-image-style-spacing);
|
||||
}
|
||||
/* @ckeditor/ckeditor5-image/theme/imagestyle.css */
|
||||
.ck-content .image-inline.image-style-align-right {
|
||||
margin-left: var(--ck-inline-image-style-spacing);
|
||||
}
|
||||
/* @ckeditor/ckeditor5-list/theme/todolist.css */
|
||||
.ck-content .todo-list {
|
||||
list-style: none;
|
||||
}
|
||||
/* @ckeditor/ckeditor5-list/theme/todolist.css */
|
||||
.ck-content .todo-list li {
|
||||
margin-bottom: 5px;
|
||||
}
|
||||
/* @ckeditor/ckeditor5-list/theme/todolist.css */
|
||||
.ck-content .todo-list li .todo-list {
|
||||
margin-top: 5px;
|
||||
}
|
||||
/* @ckeditor/ckeditor5-list/theme/todolist.css */
|
||||
.ck-content .todo-list .todo-list__label > input {
|
||||
-webkit-appearance: none;
|
||||
display: inline-block;
|
||||
position: relative;
|
||||
width: var(--ck-todo-list-checkmark-size);
|
||||
height: var(--ck-todo-list-checkmark-size);
|
||||
vertical-align: middle;
|
||||
border: 0;
|
||||
left: -25px;
|
||||
margin-right: -15px;
|
||||
right: 0;
|
||||
margin-left: 0;
|
||||
}
|
||||
/* @ckeditor/ckeditor5-list/theme/todolist.css */
|
||||
.ck-content .todo-list .todo-list__label > input::before {
|
||||
display: block;
|
||||
position: absolute;
|
||||
box-sizing: border-box;
|
||||
content: "";
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
border: 1px solid hsl(0, 0%, 20%);
|
||||
border-radius: 2px;
|
||||
transition: 250ms ease-in-out box-shadow, 250ms ease-in-out background,
|
||||
250ms ease-in-out border;
|
||||
}
|
||||
/* @ckeditor/ckeditor5-list/theme/todolist.css */
|
||||
.ck-content .todo-list .todo-list__label > input::after {
|
||||
display: block;
|
||||
position: absolute;
|
||||
box-sizing: content-box;
|
||||
pointer-events: none;
|
||||
content: "";
|
||||
left: calc(var(--ck-todo-list-checkmark-size) / 3);
|
||||
top: calc(var(--ck-todo-list-checkmark-size) / 5.3);
|
||||
width: calc(var(--ck-todo-list-checkmark-size) / 5.3);
|
||||
height: calc(var(--ck-todo-list-checkmark-size) / 2.6);
|
||||
border-style: solid;
|
||||
border-color: transparent;
|
||||
border-width: 0 calc(var(--ck-todo-list-checkmark-size) / 8)
|
||||
calc(var(--ck-todo-list-checkmark-size) / 8) 0;
|
||||
transform: rotate(45deg);
|
||||
}
|
||||
/* @ckeditor/ckeditor5-list/theme/todolist.css */
|
||||
.ck-content .todo-list .todo-list__label > input[checked]::before {
|
||||
background: hsl(126, 64%, 41%);
|
||||
border-color: hsl(126, 64%, 41%);
|
||||
}
|
||||
/* @ckeditor/ckeditor5-list/theme/todolist.css */
|
||||
.ck-content .todo-list .todo-list__label > input[checked]::after {
|
||||
border-color: hsl(0, 0%, 100%);
|
||||
}
|
||||
/* @ckeditor/ckeditor5-list/theme/todolist.css */
|
||||
.ck-content .todo-list .todo-list__label .todo-list__label__description {
|
||||
vertical-align: middle;
|
||||
}
|
||||
/* @ckeditor/ckeditor5-list/theme/list.css */
|
||||
.ck-content ol {
|
||||
list-style-type: decimal;
|
||||
}
|
||||
/* @ckeditor/ckeditor5-list/theme/list.css */
|
||||
.ck-content ol ol {
|
||||
list-style-type: lower-latin;
|
||||
}
|
||||
/* @ckeditor/ckeditor5-list/theme/list.css */
|
||||
.ck-content ol ol ol {
|
||||
list-style-type: lower-roman;
|
||||
}
|
||||
/* @ckeditor/ckeditor5-list/theme/list.css */
|
||||
.ck-content ol ol ol ol {
|
||||
list-style-type: upper-latin;
|
||||
}
|
||||
/* @ckeditor/ckeditor5-list/theme/list.css */
|
||||
.ck-content ol ol ol ol ol {
|
||||
list-style-type: upper-roman;
|
||||
}
|
||||
/* @ckeditor/ckeditor5-list/theme/list.css */
|
||||
.ck-content ul {
|
||||
list-style-type: disc;
|
||||
}
|
||||
/* @ckeditor/ckeditor5-list/theme/list.css */
|
||||
.ck-content ul ul {
|
||||
list-style-type: circle;
|
||||
}
|
||||
/* @ckeditor/ckeditor5-list/theme/list.css */
|
||||
.ck-content ul ul ul {
|
||||
list-style-type: square;
|
||||
}
|
||||
/* @ckeditor/ckeditor5-list/theme/list.css */
|
||||
.ck-content ul ul ul ul {
|
||||
list-style-type: square;
|
||||
}
|
||||
/* @ckeditor/ckeditor5-media-embed/theme/mediaembed.css */
|
||||
.ck-content .media {
|
||||
clear: both;
|
||||
margin: 0.9em 0;
|
||||
display: block;
|
||||
min-width: 15em;
|
||||
}
|
||||
/* @ckeditor/ckeditor5-page-break/theme/pagebreak.css */
|
||||
.ck-content .page-break {
|
||||
position: relative;
|
||||
clear: both;
|
||||
padding: 5px 0;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
}
|
||||
/* @ckeditor/ckeditor5-page-break/theme/pagebreak.css */
|
||||
.ck-content .page-break::after {
|
||||
content: "";
|
||||
position: absolute;
|
||||
border-bottom: 2px dashed hsl(0, 0%, 77%);
|
||||
width: 100%;
|
||||
}
|
||||
/* @ckeditor/ckeditor5-page-break/theme/pagebreak.css */
|
||||
.ck-content .page-break__label {
|
||||
position: relative;
|
||||
z-index: 1;
|
||||
padding: 0.3em 0.6em;
|
||||
display: block;
|
||||
text-transform: uppercase;
|
||||
border: 1px solid hsl(0, 0%, 77%);
|
||||
border-radius: 2px;
|
||||
font-family: Helvetica, Arial, Tahoma, Verdana, Sans-Serif;
|
||||
font-size: 0.75em;
|
||||
font-weight: bold;
|
||||
color: hsl(0, 0%, 20%);
|
||||
background: hsl(0, 0%, 100%);
|
||||
box-shadow: 2px 2px 1px hsla(0, 0%, 0%, 0.15);
|
||||
-webkit-user-select: none;
|
||||
-moz-user-select: none;
|
||||
-ms-user-select: none;
|
||||
user-select: none;
|
||||
}
|
||||
/* @ckeditor/ckeditor5-media-embed/theme/mediaembed.css */
|
||||
.ck-content .media {
|
||||
clear: both;
|
||||
margin: 0.9em 0;
|
||||
display: block;
|
||||
min-width: 15em;
|
||||
}
|
||||
/* @ckeditor/ckeditor5-table/theme/tablecaption.css */
|
||||
.ck-content .table > figcaption {
|
||||
display: table-caption;
|
||||
caption-side: top;
|
||||
word-break: break-word;
|
||||
text-align: center;
|
||||
color: var(--ck-color-table-caption-text);
|
||||
background-color: var(--ck-color-table-caption-background);
|
||||
padding: 0.6em;
|
||||
font-size: 0.75em;
|
||||
outline-offset: -1px;
|
||||
}
|
||||
/* @ckeditor/ckeditor5-table/theme/table.css */
|
||||
.ck-content .table {
|
||||
margin: 0.9em auto;
|
||||
display: table;
|
||||
}
|
||||
/* @ckeditor/ckeditor5-table/theme/table.css */
|
||||
.ck-content .table table {
|
||||
border-collapse: collapse;
|
||||
border-spacing: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
border: 1px double hsl(0, 0%, 70%);
|
||||
}
|
||||
/* @ckeditor/ckeditor5-table/theme/table.css */
|
||||
.ck-content .table table td,
|
||||
.ck-content .table table th {
|
||||
min-width: 2em;
|
||||
padding: 0.4em;
|
||||
border: 1px solid hsl(0, 0%, 75%);
|
||||
}
|
||||
/* @ckeditor/ckeditor5-table/theme/table.css */
|
||||
.ck-content .table table th {
|
||||
font-weight: bold;
|
||||
background: hsla(0, 0%, 0%, 5%);
|
||||
}
|
||||
/* @ckeditor/ckeditor5-table/theme/table.css */
|
||||
.ck-content[dir="rtl"] .table th {
|
||||
text-align: right;
|
||||
}
|
||||
/* @ckeditor/ckeditor5-table/theme/table.css */
|
||||
.ck-content[dir="ltr"] .table th {
|
||||
text-align: left;
|
||||
}
|
||||
/* @ckeditor/ckeditor5-table/theme/tablecolumnresize.css */
|
||||
.ck-content .table .ck-table-resized {
|
||||
table-layout: fixed;
|
||||
}
|
||||
/* @ckeditor/ckeditor5-table/theme/tablecolumnresize.css */
|
||||
.ck-content .table table {
|
||||
overflow: hidden;
|
||||
}
|
||||
/* @ckeditor/ckeditor5-table/theme/tablecolumnresize.css */
|
||||
.ck-content .table td,
|
||||
.ck-content .table th {
|
||||
position: relative;
|
||||
}
|
||||
/* @ckeditor/ckeditor5-code-block/theme/codeblock.css */
|
||||
.ck-content pre {
|
||||
padding: 1em;
|
||||
color: hsl(0, 0%, 20.8%);
|
||||
background: hsla(0, 0%, 78%, 0.3);
|
||||
border: 1px solid hsl(0, 0%, 77%);
|
||||
border-radius: 2px;
|
||||
text-align: left;
|
||||
direction: ltr;
|
||||
tab-size: 4;
|
||||
white-space: pre-wrap;
|
||||
font-style: normal;
|
||||
min-width: 200px;
|
||||
}
|
||||
/* @ckeditor/ckeditor5-code-block/theme/codeblock.css */
|
||||
.ck-content pre code {
|
||||
background: unset;
|
||||
padding: 0;
|
||||
border-radius: 0;
|
||||
}
|
||||
/* @ckeditor/ckeditor5-horizontal-line/theme/horizontalline.css */
|
||||
.ck-content hr {
|
||||
margin: 15px 0;
|
||||
height: 4px;
|
||||
background: hsl(0, 0%, 87%);
|
||||
border: 0;
|
||||
}
|
||||
/* @ckeditor/ckeditor5-mention/theme/mention.css */
|
||||
.ck-content .mention {
|
||||
background: var(--ck-color-mention-background);
|
||||
color: var(--ck-color-mention-text);
|
||||
}
|
||||
@media print {
|
||||
/* @ckeditor/ckeditor5-page-break/theme/pagebreak.css */
|
||||
.ck-content .page-break {
|
||||
padding: 0;
|
||||
}
|
||||
/* @ckeditor/ckeditor5-page-break/theme/pagebreak.css */
|
||||
.ck-content .page-break::after {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
18
resources/sass/vendor/ckEditorContent.scss
vendored
Normal file
18
resources/sass/vendor/ckEditorContent.scss
vendored
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
@import "../../../node_modules/ckeditor5/dist/ckeditor5-content.css";
|
||||
|
||||
// CKeditor fix in alert
|
||||
.ck-editor__main {
|
||||
color: initial;
|
||||
}
|
||||
|
||||
// FIX
|
||||
.ck-content {
|
||||
// * Import bootstrap reboot to counter count theme aggressive reset
|
||||
@import "bootstrap/scss/functions";
|
||||
@import "bootstrap/scss/variables";
|
||||
@import "bootstrap/scss/variables-dark";
|
||||
@import "bootstrap/scss/maps";
|
||||
@import "bootstrap/scss/mixins";
|
||||
@import "bootstrap/scss/root";
|
||||
@import "bootstrap/scss/reboot";
|
||||
}
|
||||
|
|
@ -3,365 +3,352 @@
|
|||
<div ref="wordCounter" />
|
||||
<div ref="ckeditor" />
|
||||
<input
|
||||
:id="internalId"
|
||||
ref="hiddenInput"
|
||||
:id="id"
|
||||
class="form-control"
|
||||
type="hidden"
|
||||
:name="intName"
|
||||
:value="internalText"
|
||||
:required="internalRequired"
|
||||
:name="name"
|
||||
:value="text"
|
||||
:required="required"
|
||||
>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script lang="ts">
|
||||
import { defineComponent } from "vue";
|
||||
import "./../../js/vendor/ckeditor";
|
||||
import trans from "./../modules/trans";
|
||||
// import { CKUploadAdaptater } from "../../bo/CkUploadAdaptater";
|
||||
<script lang="ts" setup>
|
||||
import { ClassicEditor, Editor, type EditorConfig } from "ckeditor5";
|
||||
import {
|
||||
computed,
|
||||
onBeforeUnmount,
|
||||
onMounted,
|
||||
reactive,
|
||||
ref,
|
||||
shallowRef,
|
||||
useAttrs,
|
||||
} from "vue";
|
||||
|
||||
export default defineComponent({
|
||||
name: "CkEditorComponent",
|
||||
emits: ["input"],
|
||||
mixins: [trans],
|
||||
props: {
|
||||
id: {
|
||||
type: String,
|
||||
default: String(Math.pow(10, 16) / Math.random()),
|
||||
},
|
||||
required: {
|
||||
type: Boolean,
|
||||
default: false,
|
||||
},
|
||||
name: {
|
||||
type: String,
|
||||
default: "",
|
||||
},
|
||||
dbtext: {
|
||||
type: String,
|
||||
default: "",
|
||||
},
|
||||
import { builtinPlugins, frTranslations } from "../modules/ckeditor";
|
||||
import { uniqueId } from "../modules/uniqueid";
|
||||
|
||||
import "ckeditor5/ckeditor5.css";
|
||||
|
||||
defineOptions({ name: "CkEditorComponent", });
|
||||
|
||||
// * EMITS
|
||||
const emits = defineEmits<{
|
||||
input: [string: string],
|
||||
}>();
|
||||
|
||||
// * ATTRIBUTES
|
||||
const attrs = useAttrs();
|
||||
|
||||
// * REFS
|
||||
const ckeditor = ref<HTMLDivElement | null>(null);
|
||||
const wordCounter = ref<HTMLDivElement | null>(null);
|
||||
const hiddenInput = ref<HTMLInputElement | null>(null);
|
||||
const editorInstance = shallowRef<Editor | null>(null);
|
||||
|
||||
// * PROPS
|
||||
const props = defineProps({
|
||||
id: {
|
||||
type: String,
|
||||
default: () => uniqueId(),
|
||||
},
|
||||
mounted() {
|
||||
const json = String(this.$attrs.json ?? "{}"),
|
||||
data = JSON.parse(json);
|
||||
this.intName = data.name;
|
||||
this.internalText = data.text ? String(data.text) : "";
|
||||
this.internalId = data.id ? data.id : "";
|
||||
this.internalRequired = Boolean(data.required);
|
||||
this.makeSuperBuild();
|
||||
name: {
|
||||
type: String,
|
||||
default: ""
|
||||
},
|
||||
data(): {
|
||||
intName: string;
|
||||
internalText: string;
|
||||
internalId: string;
|
||||
internalRequired: boolean;
|
||||
// @ts-expect-error - editor type
|
||||
editor: ClassicEditor | null;
|
||||
words: number;
|
||||
chars: number;
|
||||
} {
|
||||
return {
|
||||
intName: "",
|
||||
internalText: "",
|
||||
internalId: "",
|
||||
internalRequired: false,
|
||||
editor: null,
|
||||
words: 0,
|
||||
chars: 0,
|
||||
};
|
||||
dbtext: {
|
||||
type: String,
|
||||
default: ""
|
||||
},
|
||||
watch: {
|
||||
id() {
|
||||
this.internalId = this.id;
|
||||
required: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
},
|
||||
});
|
||||
|
||||
// * DATA
|
||||
const id = ref<string>(props.id ?? uniqueId());
|
||||
const name = ref<string>(props.name ?? "");
|
||||
const text = ref<string>(props.dbtext ?? "");
|
||||
const required = ref<boolean>(props.required ?? false);
|
||||
|
||||
/** Counter parameters. */
|
||||
const counterParameters = reactive<{
|
||||
words: number,
|
||||
chars: number,
|
||||
}>({
|
||||
words: 0,
|
||||
chars: 0,
|
||||
});
|
||||
|
||||
// * COMPUTED
|
||||
const isUsedWithProps = computed<boolean>(() => attrs.json === undefined);
|
||||
|
||||
// * LIFECYCLE
|
||||
onMounted(() => {
|
||||
const json = String(attrs.json ?? "{}"),
|
||||
data = JSON.parse(json);
|
||||
if (!isUsedWithProps.value) {
|
||||
if (data.id) id.value = String(data.id);
|
||||
name.value = String(data.name);
|
||||
text.value = String(data.text);
|
||||
if (data.required) required.value = Boolean(data.required);
|
||||
void makeSuperBuild();
|
||||
}
|
||||
|
||||
hiddenInput.value?.addEventListener("ss:ck:set-data", onExternalSetData as EventListener);
|
||||
});
|
||||
|
||||
onBeforeUnmount(() => {
|
||||
hiddenInput.value?.removeEventListener("ss:ck:set-data", onExternalSetData as EventListener);
|
||||
});
|
||||
|
||||
// * METHODS
|
||||
async function makeSuperBuild(): Promise<void> {
|
||||
|
||||
const editorConfig: EditorConfig = {
|
||||
plugins: builtinPlugins,
|
||||
translations: [frTranslations],
|
||||
wordCount: {
|
||||
container: wordCounter.value as HTMLElement,
|
||||
onUpdate: (stats: { characters: number; words: number }) => {
|
||||
counterParameters.chars = stats.characters;
|
||||
counterParameters.words = stats.words;
|
||||
},
|
||||
},
|
||||
name() {
|
||||
this.intName = this.name;
|
||||
},
|
||||
required() {
|
||||
this.internalRequired = this.required;
|
||||
},
|
||||
dbtext() {
|
||||
if (this.internalText != this.dbtext) {
|
||||
this.internalText = this.dbtext ? this.dbtext : "";
|
||||
if (this.editor) {
|
||||
const text = this.internalText;
|
||||
Object.freeze(text);
|
||||
this.editor.setData(text);
|
||||
link: {
|
||||
// Automatically add target="_blank" and rel="noopener noreferrer" to all external links.
|
||||
addTargetToExternalLinks: true,
|
||||
|
||||
// Let the users control the "download" attribute of each link.
|
||||
decorators: {
|
||||
openInNewTab: {
|
||||
mode: "manual",
|
||||
label: "Ouvrir dans un nouvel onglet",
|
||||
attributes: { target: "_blank", }
|
||||
}
|
||||
}
|
||||
},
|
||||
},
|
||||
methods: {
|
||||
makeSuperBuild() {
|
||||
// eslint-disable-next-line @typescript-eslint/no-this-alias
|
||||
const self = this,
|
||||
ckeditor = this.$refs.ckeditor as HTMLElement,
|
||||
wordCounter = this.$refs.wordCounter as HTMLElement,
|
||||
// * Top Menu
|
||||
verticalTopMenuOffset = document.querySelector(
|
||||
"body > #top-navbar"
|
||||
) as HTMLElement | null;
|
||||
|
||||
if (!verticalTopMenuOffset) {
|
||||
console.warn("Could not find bo #top-navbar");
|
||||
}
|
||||
|
||||
const ui = verticalTopMenuOffset ? {
|
||||
viewportOffset: {
|
||||
top: verticalTopMenuOffset.getBoundingClientRect().height,
|
||||
right: 0,
|
||||
bottom: 0,
|
||||
left: 0,
|
||||
},
|
||||
} : undefined;
|
||||
|
||||
// @ts-expect-error - ckeditor API
|
||||
ClassicEditor.create(ckeditor, {
|
||||
// https://github.com/ckeditor/ckeditor5-react/issues/267
|
||||
extraPlugins: [
|
||||
// // @ts-ignore
|
||||
// (editor) => {
|
||||
// editor.plugins.get("FileRepository").createUploadAdapter = (
|
||||
// // @ts-ignore
|
||||
// loader
|
||||
// ) => {
|
||||
// // Configure the URL to the upload script in your back-end here!
|
||||
// return new CKUploadAdaptater(loader);
|
||||
// };
|
||||
// },
|
||||
typing: {
|
||||
transformations: {
|
||||
include: [],
|
||||
extra: [
|
||||
{ from: ":)", to: "😊" },
|
||||
{ from: ":-P", to: "😛" },
|
||||
{ from: "8-)", to: "😎" },
|
||||
{ from: ";-)", to: "😉" },
|
||||
{ from: ":-D", to: "😄" },
|
||||
{ from: ":twisted:", to: "😈" },
|
||||
{ from: ":mrgreen:", to: "😁" },
|
||||
{ from: ":lol:", to: "😆" },
|
||||
{ from: ":roll:", to: "🙄" },
|
||||
{ from: ":-?", to: "😕" },
|
||||
{ from: ":cry:", to: "😢" },
|
||||
{ from: ":-o", to: "😮" },
|
||||
{ from: ":evil:", to: "😡" },
|
||||
{ from: ":-|", to: "😐" },
|
||||
{ from: ":oops:", to: "😳" },
|
||||
{ from: ":-x", to: "😠" },
|
||||
{ from: "8-O", to: "😲" },
|
||||
{ from: ":-(", to: "😧" },
|
||||
{ from: ":arrow:", to: "➡" },
|
||||
{ from: ":idea:", to: "💡" },
|
||||
],
|
||||
wordCount: {
|
||||
container: wordCounter,
|
||||
// @ts-expect-error - ckeditor API
|
||||
onUpdate: (stats) => {
|
||||
this.chars = stats.characters;
|
||||
this.words = stats.words;
|
||||
},
|
||||
},
|
||||
ui: ui,
|
||||
link: {
|
||||
// Automatically add target="_blank" and rel="noopener noreferrer" to all external links.
|
||||
addTargetToExternalLinks: true,
|
||||
|
||||
// Let the users control the "download" attribute of each link.
|
||||
decorators: {
|
||||
openInNewTab: {
|
||||
mode: "manual",
|
||||
label: "Ouvrir dans un nouvel onglet",
|
||||
attributes: {
|
||||
target: "_blank",
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
typing: {
|
||||
transformations: {
|
||||
extra: [
|
||||
{ from: ":)", to: "😊" },
|
||||
{ from: ":-P", to: "😛" },
|
||||
{ from: "8-)", to: "😎" },
|
||||
{ from: ";-)", to: "😉" },
|
||||
{ from: ":-D", to: "😄" },
|
||||
{ from: ":twisted:", to: "😈" },
|
||||
{ from: ":mrgreen:", to: "😁" },
|
||||
{ from: ":lol:", to: "😆" },
|
||||
{ from: ":roll:", to: "🙄" },
|
||||
{ from: ":-?", to: "😕" },
|
||||
{ from: ":cry:", to: "😢" },
|
||||
{ from: ":-o", to: "😮" },
|
||||
{ from: ":evil:", to: "😡" },
|
||||
{ from: ":-|", to: "😐" },
|
||||
{ from: ":oops:", to: "😳" },
|
||||
{ from: ":-x", to: "😠" },
|
||||
{ from: "8-O", to: "😲" },
|
||||
{ from: ":-(", to: "😧" },
|
||||
{ from: ":arrow:", to: "➡" },
|
||||
{ from: ":idea:", to: "💡" },
|
||||
],
|
||||
},
|
||||
},
|
||||
mediaEmbed: {
|
||||
previewsInData: false,
|
||||
removeProviders: [
|
||||
"dailymotion",
|
||||
"spotify",
|
||||
"youtube",
|
||||
"vimeo",
|
||||
"instagram",
|
||||
"twitter",
|
||||
"googleMaps",
|
||||
"flickr",
|
||||
"facebook",
|
||||
],
|
||||
// // see https://github.com/ckeditor/ckeditor5/blob/master/packages/ckeditor5-media-embed/src/mediaembedediting.js
|
||||
// providers: [
|
||||
// {
|
||||
// // display local videos in oembed tags
|
||||
// name: "localVideo",
|
||||
// url: /^(\/(?:content|storage|uploads)\/.*)/,
|
||||
// html: (match: string[]) => {
|
||||
// const path = match[1];
|
||||
|
||||
// return (
|
||||
// "<video controls allowfullscreen style=\"max-width: 90%; margin: 0 auto; display: block;\">" +
|
||||
// `<source src="${path}" type="video/mp4">` +
|
||||
// `<p>Votre navigateur ne prend pas en charge les vidéos HTML5. Voici <a href="${path}">un lien pour télécharger la vidéo</a>.</p>` +
|
||||
// "</video>"
|
||||
// );
|
||||
// },
|
||||
// },
|
||||
// ],
|
||||
},
|
||||
toolbar: {
|
||||
items: [
|
||||
"heading",
|
||||
"|",
|
||||
"findAndReplace",
|
||||
"|",
|
||||
"bold",
|
||||
"italic",
|
||||
"underline",
|
||||
"strikethrough",
|
||||
"link",
|
||||
"bulletedList",
|
||||
"numberedList",
|
||||
// "code",
|
||||
// "codeBlock",
|
||||
"|",
|
||||
"outdent",
|
||||
"indent",
|
||||
"alignment",
|
||||
"|",
|
||||
"undo",
|
||||
"redo",
|
||||
"selectAll",
|
||||
"|",
|
||||
// "laravelFileManager",
|
||||
"blockQuote",
|
||||
"|",
|
||||
// "insertTable",
|
||||
// "tableColumn",
|
||||
// "tableRow",
|
||||
// "mergeTableCells",
|
||||
"|",
|
||||
// "highlight",
|
||||
// "removeHighlight",
|
||||
// "fontColor",
|
||||
// "fontBackgroundColor",
|
||||
// "fontFamily",
|
||||
"fontSize",
|
||||
"horizontalLine",
|
||||
// "specialCharacters",
|
||||
"|",
|
||||
"removeFormat",
|
||||
"|",
|
||||
"sourceEditing",
|
||||
],
|
||||
},
|
||||
// table: {
|
||||
// contentToolbar: [
|
||||
// "tableColumn",
|
||||
// "tableRow",
|
||||
// "mergeTableCells",
|
||||
// "tableProperties",
|
||||
// "tableCellProperties",
|
||||
// "toggleTableCaption",
|
||||
// ],
|
||||
|
||||
// Configuration of the TableProperties plugin.
|
||||
// tableProperties: {
|
||||
// ...
|
||||
// },
|
||||
|
||||
// Configuration of the TableCellProperties plugin.
|
||||
// tableCellProperties: {
|
||||
// ...
|
||||
// },
|
||||
// },
|
||||
width: "auto",
|
||||
language: "fr",
|
||||
image: {
|
||||
toolbar: [
|
||||
"toggleImageCaption",
|
||||
"imageTextAlternative",
|
||||
"imageStyle:inline",
|
||||
"imageStyle:alignLeft",
|
||||
"imageStyle:alignRight",
|
||||
"imageStyle:alignCenter",
|
||||
"imageStyle:side",
|
||||
"imageResize",
|
||||
"linkImage",
|
||||
],
|
||||
},
|
||||
})
|
||||
// @ts-expect-error - ckeditor API
|
||||
.then((editor: ClassicEditor) => {
|
||||
let timer = null as number|null;
|
||||
const updateContent = () => {
|
||||
const data = editor.getData();
|
||||
self.internalText = data;
|
||||
self.$emit("input", data);
|
||||
timer = null;
|
||||
};
|
||||
// Display all toolbar elements
|
||||
// console.log(Array.from(editor.ui.componentFactory.names()));
|
||||
self.editor = Object.freeze(editor);
|
||||
editor.setData(this.internalText);
|
||||
editor.model.document.on("change:data", () => {
|
||||
if(timer) {
|
||||
clearTimeout(timer);
|
||||
}
|
||||
// * Keep track of internal editor
|
||||
timer = setTimeout(updateContent, 1000) as never as number;
|
||||
});
|
||||
})
|
||||
// @ts-expect-error - ckeditor API
|
||||
.catch((error) => {
|
||||
console.error("Oops, something went wrong!");
|
||||
console.error(
|
||||
"Please, report the following error on https://github.com/ckeditor/ckeditor5/issues with the build id and the error stack trace:"
|
||||
);
|
||||
console.warn("Build id: x0tjc6omqq4d-iydt761tuj51");
|
||||
console.error(error);
|
||||
});
|
||||
},
|
||||
},
|
||||
},
|
||||
});
|
||||
mediaEmbed: {
|
||||
previewsInData: false,
|
||||
removeProviders: [
|
||||
"dailymotion",
|
||||
"spotify",
|
||||
"youtube",
|
||||
"vimeo",
|
||||
"instagram",
|
||||
"twitter",
|
||||
"googleMaps",
|
||||
"flickr",
|
||||
"facebook",
|
||||
],
|
||||
// // see https://github.com/ckeditor/ckeditor5/blob/master/packages/ckeditor5-media-embed/src/mediaembedediting.js
|
||||
// providers: [
|
||||
// {
|
||||
// // display local videos in oembed tags
|
||||
// name: "localVideo",
|
||||
// url: /^(\/(?:content|storage|uploads)\/.*)/,
|
||||
// html: (match: string[]) => {
|
||||
// const path = match[1];
|
||||
|
||||
// return (
|
||||
// "<video controls allowfullscreen style=\"max-width: 90%; margin: 0 auto; display: block;\">" +
|
||||
// `<source src="${path}" type="video/mp4">` +
|
||||
// `<p>Votre navigateur ne prend pas en charge les vidéos HTML5. Voici <a href="${path}">un lien pour télécharger la vidéo</a>.</p>` +
|
||||
// "</video>"
|
||||
// );
|
||||
// },
|
||||
// },
|
||||
// ],
|
||||
},
|
||||
toolbar: {
|
||||
items: [
|
||||
"heading",
|
||||
"|",
|
||||
"findAndReplace",
|
||||
"|",
|
||||
"bold",
|
||||
"italic",
|
||||
"underline",
|
||||
"strikethrough",
|
||||
"link",
|
||||
"bulletedList",
|
||||
"numberedList",
|
||||
"code",
|
||||
"codeBlock",
|
||||
"|",
|
||||
"outdent",
|
||||
"indent",
|
||||
"alignment",
|
||||
"|",
|
||||
"undo",
|
||||
"redo",
|
||||
"selectAll",
|
||||
"|",
|
||||
"blockQuote",
|
||||
"|",
|
||||
"insertTable",
|
||||
"tableColumn",
|
||||
"tableRow",
|
||||
"mergeTableCells",
|
||||
"|",
|
||||
"highlight",
|
||||
"removeHighlight",
|
||||
"fontColor",
|
||||
"fontBackgroundColor",
|
||||
"fontFamily",
|
||||
"fontSize",
|
||||
"horizontalLine",
|
||||
"specialCharacters",
|
||||
"|",
|
||||
"removeFormat",
|
||||
"|",
|
||||
"sourceEditing",
|
||||
],
|
||||
},
|
||||
table: {
|
||||
contentToolbar: [
|
||||
"tableColumn",
|
||||
"tableRow",
|
||||
"mergeTableCells",
|
||||
"tableProperties",
|
||||
"tableCellProperties",
|
||||
"toggleTableCaption",
|
||||
],
|
||||
|
||||
// Configuration of the TableProperties plugin.
|
||||
tableProperties: {},
|
||||
|
||||
// Configuration of the TableCellProperties plugin.
|
||||
tableCellProperties: {},
|
||||
},
|
||||
language: "fr",
|
||||
image: {
|
||||
toolbar: [
|
||||
"toggleImageCaption",
|
||||
"imageTextAlternative",
|
||||
"imageStyle:inline",
|
||||
"imageStyle:alignLeft",
|
||||
"imageStyle:alignRight",
|
||||
"imageStyle:alignCenter",
|
||||
"imageStyle:side",
|
||||
"imageResize",
|
||||
"linkImage",
|
||||
],
|
||||
},
|
||||
};
|
||||
|
||||
ClassicEditor.create(ckeditor.value as HTMLElement, { ...editorConfig, licenseKey: "GPL" })
|
||||
.then((editor: Editor) => {
|
||||
let timer: ReturnType<typeof setTimeout> | null = null;
|
||||
const updateContent = () => {
|
||||
const data = editor.getData();
|
||||
text.value = data;
|
||||
emits("input", data);
|
||||
timer = null;
|
||||
};
|
||||
// Display all toolbar elements
|
||||
// console.log(Array.from(editor.ui.componentFactory.names()));
|
||||
editorInstance.value = editor;
|
||||
ckeditor.value = Object.freeze(editor) as never;
|
||||
editor.setData(text.value);
|
||||
editor.model.document.on("change:data", () => {
|
||||
if (timer) {
|
||||
clearTimeout(timer);
|
||||
}
|
||||
// * Keep track of internal editor
|
||||
timer = setTimeout(updateContent, 1000);
|
||||
});
|
||||
})
|
||||
.catch((error: unknown) => {
|
||||
console.error("Oops, something went wrong!");
|
||||
console.error(
|
||||
"Please, report the following error on https://github.com/ckeditor/ckeditor5/issues with the build id and the error stack trace:"
|
||||
);
|
||||
console.warn("Build id: x0tjc6omqq4d-iydt761tuj51");
|
||||
console.error(error);
|
||||
});
|
||||
}
|
||||
|
||||
function onExternalSetData(event: Event): void {
|
||||
const customEvent = event as CustomEvent<{ data?: string }>;
|
||||
const payload = customEvent.detail?.data;
|
||||
if (typeof payload !== "string") {
|
||||
return;
|
||||
}
|
||||
|
||||
text.value = payload;
|
||||
if (hiddenInput.value) {
|
||||
hiddenInput.value.value = payload;
|
||||
}
|
||||
|
||||
if (editorInstance.value) {
|
||||
editorInstance.value.setData(payload);
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss">
|
||||
@import url("./../../js/vendor/ckeditor/build/styles.css");
|
||||
.ck-editor-component{
|
||||
// 2. Include functions first (so you can manipulate colors, SVGs, calc, etc)
|
||||
@import "bootstrap/scss/functions";
|
||||
<style lang="scss" scoped>
|
||||
@import "bootstrap/scss/functions";
|
||||
@import "bootstrap/scss/variables";
|
||||
|
||||
// 3. Include remainder of required Bootstrap stylesheets
|
||||
@import "bootstrap/scss/variables";
|
||||
.ck-editor-component {
|
||||
.ck-rounded-corners {
|
||||
border-radius: 0 0 0.375rem 0.375rem !important;
|
||||
}
|
||||
|
||||
.ck-word-count {
|
||||
background-color: #fafafa;
|
||||
border: 1px solid #c4c4c4;
|
||||
background-color: rgb(var(--bs-secondary-bg-rgb));
|
||||
border: var(--bs-border-width) solid var(--bs-border-color);
|
||||
border-bottom: 0px;
|
||||
border-top-left-radius: 0.375rem;
|
||||
border-top-right-radius: 0.375rem;
|
||||
color: initial;
|
||||
color: var(--bs-body-color);
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
justify-content: space-around !important;
|
||||
}
|
||||
|
||||
.ck-content {
|
||||
transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
|
||||
}
|
||||
|
||||
.ck-focused {
|
||||
border-color: #86b7fe !important;
|
||||
box-shadow: 0 0 0 0.25rem rgb(13 110 253 / 25%) !important;
|
||||
border-color: $input-focus-border-color !important;
|
||||
box-shadow: $input-focus-box-shadow !important;
|
||||
outline: 0 !important;
|
||||
}
|
||||
.ck-editor__main{
|
||||
|
||||
.ck-editor__main {
|
||||
color: $body-color;
|
||||
}
|
||||
}
|
||||
|
||||
</style>
|
||||
|
|
|
|||
169
resources/ts/modules/ckeditor.ts
Normal file
169
resources/ts/modules/ckeditor.ts
Normal file
|
|
@ -0,0 +1,169 @@
|
|||
/**
|
||||
* @license Copyright (c) 2014-2021, CKSource - Frederico Knabben. All rights reserved.
|
||||
* For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
|
||||
*/
|
||||
import type { Editor, PluginConstructor } from "ckeditor5";
|
||||
import {
|
||||
Alignment,
|
||||
Autoformat,
|
||||
AutoLink,
|
||||
BlockQuote,
|
||||
Bold,
|
||||
Code,
|
||||
CodeBlock,
|
||||
Essentials,
|
||||
FindAndReplace,
|
||||
FontBackgroundColor,
|
||||
FontColor,
|
||||
FontFamily,
|
||||
FontSize,
|
||||
GeneralHtmlSupport,
|
||||
Heading,
|
||||
Highlight,
|
||||
HorizontalLine,
|
||||
Image,
|
||||
ImageCaption,
|
||||
ImageInsert,
|
||||
ImageResize,
|
||||
ImageStyle,
|
||||
ImageToolbar,
|
||||
ImageUpload,
|
||||
Indent,
|
||||
IndentBlock,
|
||||
Italic,
|
||||
Link,
|
||||
LinkImage,
|
||||
List,
|
||||
ListProperties,
|
||||
MediaEmbed,
|
||||
MediaEmbedEditing,
|
||||
MediaEmbedUI,
|
||||
Paragraph,
|
||||
PasteFromOffice,
|
||||
RemoveFormat,
|
||||
SimpleUploadAdapter,
|
||||
SourceEditing,
|
||||
SpecialCharacters,
|
||||
SpecialCharactersEssentials,
|
||||
Strikethrough,
|
||||
Style,
|
||||
Table,
|
||||
TableCaption,
|
||||
TableCellProperties,
|
||||
TableColumnResize,
|
||||
TableProperties,
|
||||
TableToolbar,
|
||||
TextTransformation,
|
||||
Underline,
|
||||
WordCount,
|
||||
} from "ckeditor5";
|
||||
import frTranslations from "ckeditor5/translations/fr.js";
|
||||
|
||||
/**
|
||||
* Legacy emojies
|
||||
*
|
||||
* :-) 😊
|
||||
* :-P 😛
|
||||
* 8-) 😎
|
||||
* ;-) 😉
|
||||
* :-D 😄
|
||||
* :twisted: 😈
|
||||
* :mrgreen: 😁
|
||||
* :lol: 😆
|
||||
* :roll: 🙄
|
||||
* :-? 😕
|
||||
* :cry: 😢
|
||||
* :-o 😮
|
||||
* :evil: 😡
|
||||
* :-| 😐
|
||||
* :oops: 😳
|
||||
* :-x 😠
|
||||
* 8-O 😲
|
||||
* :-( 😧
|
||||
* :arrow: ➡️
|
||||
* :idea: 💡
|
||||
*/
|
||||
const SpecialCharactersEmoji = function (editor: Editor): void {
|
||||
editor.plugins.get("SpecialCharacters").addItems("Emoji", [
|
||||
{ title: ":-)", character: "😊" },
|
||||
{ title: ":-P", character: "😛" },
|
||||
{ title: "8-)", character: "😎" },
|
||||
{ title: ";-)", character: "😉" },
|
||||
{ title: ":-D", character: "😄" },
|
||||
{ title: ":twisted:", character: "😈" },
|
||||
{ title: ":mrgreen:", character: "😁" },
|
||||
{ title: ":lol:", character: "😆" },
|
||||
{ title: ":roll:", character: "🙄" },
|
||||
{ title: ":-?", character: "😕" },
|
||||
{ title: ":cry:", character: "😢" },
|
||||
{ title: ":-o", character: "😮" },
|
||||
{ title: ":evil:", character: "😡" },
|
||||
{ title: ":-|", character: "😐" },
|
||||
{ title: ":oops:", character: "😳" },
|
||||
{ title: ":-x", character: "😠" },
|
||||
{ title: "8-O", character: "😲" },
|
||||
{ title: ":-(", character: "😧" },
|
||||
{ title: ":arrow:", character: "➡" },
|
||||
{ title: ":idea:", character: "💡" },
|
||||
]);
|
||||
};
|
||||
|
||||
const builtinPlugins: Array<PluginConstructor | typeof SpecialCharactersEmoji> = [
|
||||
Alignment,
|
||||
Autoformat,
|
||||
AutoLink,
|
||||
BlockQuote,
|
||||
Bold,
|
||||
Code,
|
||||
CodeBlock,
|
||||
Essentials,
|
||||
FindAndReplace,
|
||||
FontBackgroundColor,
|
||||
FontColor,
|
||||
FontFamily,
|
||||
FontSize,
|
||||
GeneralHtmlSupport,
|
||||
Heading,
|
||||
Highlight,
|
||||
HorizontalLine,
|
||||
Image,
|
||||
ImageCaption,
|
||||
ImageInsert,
|
||||
ImageResize,
|
||||
ImageStyle,
|
||||
ImageToolbar,
|
||||
ImageUpload,
|
||||
Indent,
|
||||
IndentBlock,
|
||||
Italic,
|
||||
Link,
|
||||
LinkImage,
|
||||
List,
|
||||
ListProperties,
|
||||
MediaEmbed,
|
||||
MediaEmbedEditing,
|
||||
MediaEmbedUI,
|
||||
Paragraph,
|
||||
PasteFromOffice,
|
||||
RemoveFormat,
|
||||
SimpleUploadAdapter,
|
||||
SourceEditing,
|
||||
SpecialCharacters,
|
||||
SpecialCharactersEssentials,
|
||||
SpecialCharactersEmoji,
|
||||
Strikethrough,
|
||||
Style,
|
||||
Table,
|
||||
TableCaption,
|
||||
TableCellProperties,
|
||||
TableColumnResize,
|
||||
TableProperties,
|
||||
TableToolbar,
|
||||
TextTransformation,
|
||||
Underline,
|
||||
WordCount,
|
||||
];
|
||||
|
||||
export { ClassicEditor } from "ckeditor5";
|
||||
export { builtinPlugins, frTranslations };
|
||||
|
||||
5
resources/ts/modules/uniqueid.ts
Normal file
5
resources/ts/modules/uniqueid.ts
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
export function uniqueId() {
|
||||
const timestamp = Date.now().toString(36);
|
||||
const randomPart = Math.random().toString(36).substring(2, 9);
|
||||
return `${timestamp}${randomPart}`;
|
||||
}
|
||||
|
|
@ -140,6 +140,7 @@ export default defineConfig({
|
|||
"resources/theme/mounted/sass/mail-theme.scss",
|
||||
"resources/theme/mounted/sass/fo.scss",
|
||||
"resources/theme/mounted/ts/fo.ts",
|
||||
"resources/sass/vendor/ckEditorContent.scss",
|
||||
],
|
||||
refresh: [
|
||||
"resources/views/**/*.blade.php",
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue