From 7e97e0ec4d994e83a1c00267199c48c9d87e5049 Mon Sep 17 00:00:00 2001 From: Jacek Bogdanski Date: Fri, 25 Aug 2023 15:15:47 +0200 Subject: [PATCH] Clean after release [ci skip] --- dist/CHANGELOG.md | 225 ------------- dist/LICENSE.md | 41 --- dist/README.md | 163 --------- dist/ckeditor.component.d.ts | 184 ---------- dist/ckeditor.d.ts | 52 --- dist/ckeditor.module.d.ts | 11 - dist/ckeditor4-angular.d.ts | 5 - dist/esm2020/ckeditor.component.mjs | 396 ---------------------- dist/esm2020/ckeditor.mjs | 6 - dist/esm2020/ckeditor.module.mjs | 25 -- dist/esm2020/ckeditor4-angular.mjs | 5 - dist/fesm2015/ckeditor4-angular.mjs | 423 ----------------------- dist/fesm2015/ckeditor4-angular.mjs.map | 1 - dist/fesm2020/ckeditor4-angular.mjs | 427 ------------------------ dist/fesm2020/ckeditor4-angular.mjs.map | 1 - dist/package.json | 58 ---- 16 files changed, 2023 deletions(-) delete mode 100644 dist/CHANGELOG.md delete mode 100644 dist/LICENSE.md delete mode 100644 dist/README.md delete mode 100644 dist/ckeditor.component.d.ts delete mode 100644 dist/ckeditor.d.ts delete mode 100644 dist/ckeditor.module.d.ts delete mode 100644 dist/ckeditor4-angular.d.ts delete mode 100644 dist/esm2020/ckeditor.component.mjs delete mode 100644 dist/esm2020/ckeditor.mjs delete mode 100644 dist/esm2020/ckeditor.module.mjs delete mode 100644 dist/esm2020/ckeditor4-angular.mjs delete mode 100644 dist/fesm2015/ckeditor4-angular.mjs delete mode 100644 dist/fesm2015/ckeditor4-angular.mjs.map delete mode 100644 dist/fesm2020/ckeditor4-angular.mjs delete mode 100644 dist/fesm2020/ckeditor4-angular.mjs.map delete mode 100644 dist/package.json diff --git a/dist/CHANGELOG.md b/dist/CHANGELOG.md deleted file mode 100644 index 65e7ddbd..00000000 --- a/dist/CHANGELOG.md +++ /dev/null @@ -1,225 +0,0 @@ -# CKEditor 4 Angular Integration Changelog - -⚠️️️ **CKEditor 4 (the open source edition) is no longer maintained.** ⚠️ - -If you would like to keep access to future CKEditor 4 security patches, check the [Extended Support Model](https://ckeditor.com/ckeditor-4-support/), which guarantees **security updates and critical bug fixes until December 2026**. Alternatively, [upgrade to CKEditor 5](https://ckeditor.com/docs/ckeditor5/latest/updating/ckeditor4/migration-from-ckeditor-4.html). - -## ckeditor4-angular 5.0.0 - -This release introduces a support for the LTS (”Long Term Support”) version of the editor, available under commercial terms (["Extended Support Model"](https://ckeditor.com/ckeditor-4-support/)). - -If you acquired the Extended Support Model for CKEditor 4 LTS, please read [the CKEditor 4 LTS key activation guide.](https://ckeditor.com/docs/ckeditor4/latest/support/licensing/license-key-and-activation.html) - -Other Changes: - -* Updated default CDN CKEditor 4 dependency to [4.23.0-lts](https://github.com/ckeditor/ckeditor4/blob/master/CHANGES.md#ckeditor-4230-lts). - -## ckeditor4-angular 4.0.0 / 4.0.1 - -BREAKING CHANGES: - -The v4.0.1 release introduces compatibility with Angular v16+. Please note that this version of Angular no longer supports Internet Explorer 11. - -If you want to maintain support for IE11 or haven't upgraded to Angular v16 yet, make sure to use the Angular integration in version 3.3.0. - -Other Changes: - -* [#242](https://github.com/ckeditor/ckeditor4-angular/issues/242): Updated the minimal version of Angular to `^13.4.0` to ensure compatibility with Angular 16+. Thanks to [Moez Mehri](https://github.com/Mooeeezzzz)! -* Updated default CDN CKEditor 4 dependency to [4.22.1](https://github.com/ckeditor/ckeditor4/blob/master/CHANGES.md#ckeditor-4220--4221). - -**Note:** Version 4.0.1 includes a patch for the distribution bundle that fixes missing support for Angular v16+ and should be used instead of v4.0.0 if you target a newer version of Angular. - -## ckeditor4-angular 3.3.0 - -Other Changes: - -* Updated default CDN CKEditor 4 dependency to [4.21.0](https://github.com/ckeditor/ckeditor4/blob/master/CHANGES.md#ckeditor-4210). - -## ckeditor4-angular 3.2.2 - -Other Changes: - -* Updated default CDN CKEditor 4 dependency to [4.20.2](https://github.com/ckeditor/ckeditor4/blob/master/CHANGES.md#ckeditor-4202). - -## ckeditor4-angular 3.2.1 - -Other Changes: - -* Updated default CDN CKEditor 4 dependency to [4.20.1](https://github.com/ckeditor/ckeditor4/blob/master/CHANGES.md#ckeditor-4201). - -## ckeditor4-angular 3.2.0 - -Other Changes: - -* Updated default CDN CKEditor 4 dependency to [4.20](https://github.com/ckeditor/ckeditor4/blob/master/CHANGES.md#ckeditor-420). - -## ckeditor4-angular 3.1.1 - -Other Changes: - -* Updated default CDN CKEditor 4 dependency to [4.19.1](https://github.com/ckeditor/ckeditor4/blob/master/CHANGES.md#ckeditor-4191). - -## ckeditor4-angular 3.1.0 - -Other Changes: - -* Updated default CDN CKEditor 4 dependency to [4.19.0](https://github.com/ckeditor/ckeditor4/blob/master/CHANGES.md#ckeditor-4190). - -## ckeditor4-angular 3.0.0 - -Other Changes: - -* Updated default CDN CKEditor 4 dependency to [4.18.0](https://github.com/ckeditor/ckeditor4/blob/master/CHANGES.md#ckeditor-4180). - - [Web Spell Checker](https://webspellchecker.com/) ended support for WebSpellChecker Dialog on December 31st, 2021. Therefore, this plugin has been deprecated and removed from the CKEditor 4.18.0 `standard-all` preset. - We strongly encourage everyone to choose one of the other available spellchecking solutions - [Spell Check As You Type (SCAYT)](https://ckeditor.com/cke4/addon/scayt) or [WProofreader](https://ckeditor.com/cke4/addon/wproofreader). - -## ckeditor4-angular 2.4.1 - -Other Changes: - -* Updated year and company name in the license headers. -* Updated default CDN CKEditor 4 dependency to [4.17.2](https://github.com/ckeditor/ckeditor4/blob/master/CHANGES.md#ckeditor-4172). - -## ckeditor4-angular 2.4.0 - -New Features: - -* [#190](https://github.com/ckeditor/ckeditor4-angular/issues/190): Added support for CKEditor 4 [Delayed Editor Creation](https://ckeditor.com/docs/ckeditor4/latest/features/delayed_creation.html) feature. - -## ckeditor4-angular 2.3.0 - -Other Changes: - -* Updated default CDN CKEditor 4 dependency to [4.17.1](https://github.com/ckeditor/ckeditor4/blob/master/CHANGES.md#ckeditor-4171). - -## ckeditor4-angular 2.2.2 - -Other Changes: - -* Updated default CDN CKEditor 4 dependency to [4.16.2](https://github.com/ckeditor/ckeditor4/blob/master/CHANGES.md#ckeditor-4162). - -## ckeditor4-angular 2.2.1 - -Fixed Issues: - -* [#191](https://github.com/ckeditor/ckeditor4-angular/issues/191): Fixed: Cannot find module `ckeditor4-integrations-common` error after upgrading to `2.2.0`. - -Other Changes: - -* Updated default CDN CKEditor 4 dependency to [4.16.1](https://github.com/ckeditor/ckeditor4/blob/master/CHANGES.md#ckeditor-4161). - -## ckeditor4-angular 2.2.0 - -New Features: - -* [#143](https://github.com/ckeditor/ckeditor4-angular/issues/143): Exposed `namespaceLoaded` event fired when [`CKEDITOR` namespace](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR.html) is loaded, which can be used for its easier customization. - -## ckeditor4-angular 2.1.0 - -Other Changes: - -* Updated default CDN CKEditor 4 dependency to [4.16.0](https://github.com/ckeditor/ckeditor4/blob/master/CHANGES.md#ckeditor-416). -* Updated year in license headers. - -## ckeditor4-angular 2.0.1 - -Other Changes: - -* Updated default CDN CKEditor 4 dependency to [4.15.1](https://github.com/ckeditor/ckeditor4/blob/master/CHANGES.md#ckeditor-4151). - -## ckeditor4-angular 2.0.0 - -Breaking Changes: - -* [#130](https://github.com/ckeditor/ckeditor4-angular/issues/130): `DIVAREA` editor type has been deprecated. Use [Div Editing Area](https://ckeditor.com/cke4/addon/divarea) plugin instead (see [migration guide](https://ckeditor.com/docs/ckeditor4/latest/guide/dev_angular.html#using-the-div-based-editor-type)). - -## ckeditor4-angular 1.3.0 - -Other Changes: - -* Updated default CDN CKEditor 4 dependency to [4.15.0](https://github.com/ckeditor/ckeditor4/blob/master/CHANGES.md#ckeditor-415). -* [#98](https://github.com/ckeditor/ckeditor4-angular/issues/98): Updated repository dependencies (no changes in the actual `ckeditor4-angular` package). -* [#128](https://github.com/ckeditor/ckeditor4-angular/issues/128): Improve the stability of `getEditorNamespace()` method. - -## ckeditor4-angular 1.2.2 - -Fixed Issues: - -* [#110](https://github.com/ckeditor/ckeditor4-angular/issues/110): Fixed: Integration throws an error when CKEditor 4 component is removed from the DOM before CKEditor 4 is loaded. Thanks to [Benjamin Hugot](https://github.com/bhugot)! - -## ckeditor4-angular 1.2.1 - -Other Changes: - -* Updated the default CKEditor 4 CDN dependency to [4.14.1](https://github.com/ckeditor/ckeditor4/blob/master/CHANGES.md#ckeditor-4141). - -## ckeditor4-angular 1.2.0 - -New Features: - -* [#7](https://github.com/ckeditor/ckeditor4-angular/issues/7): The CKEditor 4 Angular component now exposes more CKEditor 4 native events. Thanks to [Eduard Zintz](https://github.com/ezintz)! The newly exposed events are: - * [`paste`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editor.html#event-paste) - * [`afterPaste`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editor.html#event-afterPaste) - * [`dragStat`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editor.html#event-dragstart) - * [`dragEnd`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editor.html#event-dragend) - * [`drop`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editor.html#event-drop) - * [`fileUploadRequest`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editor.html#event-fileUploadRequest) - * [`fileUploadResponse`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editor.html#event-fileUploadResponse) - -## ckeditor4-angular 1.1.0 - -Other Changes: - -* Updated the default CKEditor 4 CDN dependency to [4.14.0](https://github.com/ckeditor/ckeditor4/blob/master/CHANGES.md#ckeditor-414). - -## ckeditor4-angular 1.0.1 - -Other Changes: - -* Updated the default CKEditor 4 CDN dependency to [4.13.1](https://github.com/ckeditor/ckeditor4/blob/master/CHANGES.md#ckeditor-4131). - -## ckeditor4-angular 1.0.0 - -New Features: - -* [#6](https://github.com/ckeditor/ckeditor4-angular/issues/6): Added support for classic (iframe-based) editor. Starting from this version classic editor is used by default. -* [#40](https://github.com/ckeditor/ckeditor4-angular/pull/40): Added support for Angular 5. - -Fixed Issues: - -* [#42](https://github.com/ckeditor/ckeditor4-angular/issues/42): Fixed: The `elementRef` related error is thrown when using Angular 5. -* [#54](https://github.com/ckeditor/ckeditor4-angular/issues/54): Fixed: Two-way data binding does not work when the [Undo](https://ckeditor.com/cke4/addon/undo) plugin is not present. - -Other Changes: - -* Updated the default CKEditor 4 CDN dependency to [4.13.0](https://github.com/ckeditor/ckeditor4-angular/issues/59). - -## ckeditor4-angular 1.0.0-beta.2 - -Other Changes: - -* Updated the default CKEditor 4 CDN dependency to [4.12.1](https://github.com/ckeditor/ckeditor4-angular/commit/2bf8a8c489f2a9ea2f2d9304e2e3d92646dbe89e). - -## ckeditor4-angular 1.0.0-beta - -Other Changes: - -* [#28](https://github.com/ckeditor/ckeditor4-angular/issues/28): Updated package dev dependencies. - -## ckeditor4-angular 0.1.2 - -Other Changes: - -* [#20](https://github.com/ckeditor/ckeditor4-angular/issues/20): Added the "Quick Start" section to README file. -* [#10](https://github.com/ckeditor/ckeditor4-angular/issues/10): Updated the LICENSE file with all required dependencies. - -## ckeditor4-angular 0.1.1 - -Other Changes: - -* `README.md` file improvements. - -## ckeditor4-angular 0.1.0 - -The first beta release of CKEditor 4 WYSIWYG Editor Angular Integration. diff --git a/dist/LICENSE.md b/dist/LICENSE.md deleted file mode 100644 index d2bf93b7..00000000 --- a/dist/LICENSE.md +++ /dev/null @@ -1,41 +0,0 @@ -Software License Agreement -========================== - -## Software License Agreement for CKEditor 4 LTS Angular component (5.0 and above) - -**CKEditor 4 WYSIWYG editor Angular component** – https://github.com/ckeditor/ckeditor4-angular
-Copyright (c) 2003-2023, [CKSource](https://cksource.com/) Holding sp. z o.o. All rights reserved. - -CKEditor 4 LTS ("Long Term Support") is available under exclusive terms of the [Extended Support Model](https://ckeditor.com/ckeditor-4-support/). [Contact us](https://ckeditor.com/contact/) to obtain a commercial license. - -## Software License Agreement for CKEditor 4 Angular component 4.0.1 and below - -**CKEditor 4 WYSIWYG editor Angular component** – https://github.com/ckeditor/ckeditor4-angular
-Copyright (c) 2003-2023, [CKSource](https://cksource.com/) Holding sp. z o.o. All rights reserved. - -Licensed under the terms of any of the following licenses at your -choice: - -- GNU General Public License Version 2 or later (the "GPL") - http://www.gnu.org/licenses/gpl.html - -- GNU Lesser General Public License Version 2.1 or later (the "LGPL") - http://www.gnu.org/licenses/lgpl.html - -- Mozilla Public License Version 1.1 or later (the "MPL") - http://www.mozilla.org/MPL/MPL-1.1.html - -Sources of Intellectual Property Included in CKEditor ------------------------------------------------------ - -Where not otherwise indicated, all CKEditor content is authored by CKSource engineers and consists of CKSource-owned intellectual property. In some specific instances, CKEditor will incorporate work done by developers outside of CKSource with their express permission. - -The following libraries are included in CKEditor 4 component for Angular under the following licenses: - -- load-script [MIT](https://github.com/eldargab/load-script#license) -- tslib Copyright (c) 2012-2020 Microsoft [Apache-2.0](https://github.com/Microsoft/tslib/blob/master/LICENSE.txt) - -Trademarks ----------- - -**CKEditor** is a trademark of [CKSource](https://cksource.com/) Holding sp. z o.o. All other brand and product names are trademarks, registered trademarks or service marks of their respective holders. diff --git a/dist/README.md b/dist/README.md deleted file mode 100644 index 8f1ae9ef..00000000 --- a/dist/README.md +++ /dev/null @@ -1,163 +0,0 @@ -# CKEditor 4 WYSIWYG editor Angular component [![Tweet](https://img.shields.io/twitter/url/http/shields.io.svg?style=social)](https://twitter.com/intent/tweet?text=Check%20out%20CKEditor%204%20Angular%20integration&url=https%3A%2F%2Fwww.npmjs.com%2Fpackage%2Fckeditor4-angular) - -[![npm version](https://badge.fury.io/js/ckeditor4-angular.svg)](https://www.npmjs.com/package/ckeditor4-angular) -[![GitHub tag](https://img.shields.io/github/tag/ckeditor/ckeditor4-angular.svg)](https://github.com/ckeditor/ckeditor4-angular) -[![Build Status](https://app.travis-ci.com/ckeditor/ckeditor4-angular.svg?branch=master)](https://app.travis-ci.com/ckeditor/ckeditor4-angular) - -[![Join newsletter](https://img.shields.io/badge/join-newsletter-00cc99.svg)](http://eepurl.com/c3zRPr) -[![Follow Twitter](https://img.shields.io/badge/follow-twitter-00cc99.svg)](https://twitter.com/ckeditor) - -## ⚠️ CKEditor 4: End of Life and Extended Support Model until Dec 2026 - -CKEditor 4 was launched in 2012 and reached its End of Life (EOL) on June 30, 2023. - -A special edition, **[CKEditor 4 LTS](https://ckeditor.com/ckeditor-4-support/)** ("Long Term Support"), is available under commercial terms (["Extended Support Model"](https://ckeditor.com/ckeditor-4-support/)) for anyone looking to **extend the coverage of security updates and critical bug fixes**. - -With CKEditor 4 LTS, security updates and critical bug fixes are guaranteed until December 2026. - -## About this repository - -### Master branch = CKEditor 4 LTS Angular Component - -After June 30, 2023 the `master` version of the [LICENSE.md](https://github.com/ckeditor/ckeditor4/blob/master/LICENSE.md) file changed to reflect the license of CKEditor 4 LTS available under the Extended Support Model. - -This repository now contains the source code of CKEditor 4 LTS Angular Component that is protected by copyright law. - -### Getting CKEditor 4 (Open Source) - -You may continue using CKEditor Angular Component 4.0.1 and below under the open source license terms. Please note, however, that the open source version no longer comes with any security updates, so your application will be at risk. - -In order to download the open source version of CKEditor 4 Angular Component, use ****tags 4.0.1 and below****. CKEditor Angular Component 4.0.1 was the last version available under the open source license terms. - -## About this package - -Official [CKEditor 4](https://ckeditor.com/ckeditor-4/) WYSIWYG editor component for Angular. - -We are looking forward to your feedback! You can report any issues, ideas or feature requests on the [integration issues page](https://github.com/ckeditor/ckeditor4-angular/issues/new). - -![CKEditor 4 screenshot](https://c.cksource.com/a/1/img/npm/ckeditor4.png) - -## Usage - -In order to create an editor instance in Angular, install the `ckeditor4-angular` npm package as a dependency of your project: - -```bash -npm install --save ckeditor4-angular -``` - -After installing, import `CKEditorModule` to your application: - -```js -import { CKEditorModule } from 'ckeditor4-angular'; - -@NgModule( { - imports: [ - ... - CKEditorModule, - ... - ], - … -} ) -``` - -You can now use the `` tag in the component template to include the rich text editor: - -```html - -``` - -The `data` attribute used in the example above is responsible for setting the editor’s data. - -## Documentation and examples - -See the [CKEditor 4 Angular Integration](https://ckeditor.com/docs/ckeditor4/latest/guide/dev_angular.html) article and [Angular examples](https://ckeditor.com/docs/ckeditor4/latest/examples/angular.html) in the [CKEditor 4 documentation](https://ckeditor.com/docs/ckeditor4/latest/). - -## Browser support - -The CKEditor 4 Angular component works with all the [supported browsers](https://ckeditor.com/docs/ckeditor4/latest/guide/dev_browsers.html#officially-supported-browsers) except for Internet Explorer 8-11. - -## Supported Angular versions - -The integration can be used together with Angular at version 5.0.0 and higher. It is an implication of Angular metadata produced for this package by the Angular builder. Note that the `package.json` used in the main repository isn't published on NPM (the production one is present in `src/ckeditor/package.json`), so there are only a few peer dependencies: - -* `@angular/core` >= 5.0.0 -* `@angular/common` >= 5.0.0 -* `@angular/forms` >= 5.0.0 - -required by this package. - -## Contributing - -Here is how you can contribute to the development of the component. Any feedback and help will be most appreciated! - -### Reporting issues and feature requests - -All issues and feature requests should be reported in the [issues section](https://github.com/ckeditor/ckeditor4-angular/issues/new) of the official GitHub repository for the CKEditor 4 Angular integration. - -### Development - -Clone the [CKEditor 4 Angular integration repository](https://github.com/ckeditor/ckeditor4-angular). - -Once you have cloned it, install dependencies by running: - -```bash -npm install -``` - -#### The structure of the repository - -This repository contains the following code: - -* `./src/ckeditor` contains the CKEditor component, -* `./src/app` is a demo application using the component. - -#### Development server - -Run `ng serve` to start the development server. Navigate to `http://localhost:4200/`. The app will automatically reload if you change any of the source files. - -#### Building samples - -Run `ng build` to build the samples. The build artifacts will be stored in the `samples/` directory. - -#### Running unit tests - -Run `npm test` to execute unit tests via [Karma](https://karma-runner.github.io). - -There are two options available to alternate the testing process: - -* `url` / `u` - pass custom URL to Karma, for example custom CKEditor 4 build. -* `watch` / `w` - tell Karma to watch for changes. - -For example: - -``` -npm run test -- -u http://localhost:5000/ckeditor.js -w -``` - -#### Running end-to-end tests - -Run `ng e2e` to execute the end-to-end tests via [Protractor](https://www.protractortest.org/). - -#### Publishing - -To build and publish the package, run `npm run publish`. - -You can also manually build the package with `npm run build-package` which will be stored in `dist/`. Then you can publish it with `npm publish dist/`. - -## License - -Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. - -For full details about the license, please check the `LICENSE.md` file. - -### CKEditor 4 Angular Component 4.0.1 and below for CKEditor 4 Open Source - -Licensed under the terms of any of the following licenses at your choice: - -* [GNU General Public License Version 2 or later](http://www.gnu.org/licenses/gpl.html), -* [GNU Lesser General Public License Version 2.1 or later](http://www.gnu.org/licenses/lgpl.html), -* [Mozilla Public License Version 1.1 or later (the "MPL")](http://www.mozilla.org/MPL/MPL-1.1.html). - -### CKEditor 4 Angular Component 5.0 and above for CKEditor 4 LTS ("Long Term Support") - -CKEditor 4 LTS Angular Component (starting from version 5.0) is available under a commercial license only. diff --git a/dist/ckeditor.component.d.ts b/dist/ckeditor.component.d.ts deleted file mode 100644 index c650db78..00000000 --- a/dist/ckeditor.component.d.ts +++ /dev/null @@ -1,184 +0,0 @@ -/** - * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. - * For licensing, see LICENSE.md. - */ -import { NgZone, EventEmitter, ElementRef, AfterViewInit, OnDestroy } from '@angular/core'; -import { ControlValueAccessor } from '@angular/forms'; -import { CKEditor4 } from './ckeditor'; -import * as i0 from "@angular/core"; -export declare class CKEditorComponent implements AfterViewInit, OnDestroy, ControlValueAccessor { - private elementRef; - private ngZone; - /** - * The configuration of the editor. - * - * See https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_config.html - * to learn more. - */ - config?: CKEditor4.Config; - /** - * CKEditor 4 script url address. Script will be loaded only if CKEDITOR namespace is missing. - * - * Defaults to 'https://cdn.ckeditor.com/4.23.0-lts/standard-all/ckeditor.js' - */ - editorUrl: string; - /** - * Tag name of the editor component. - * - * The default tag is `textarea`. - */ - tagName: string; - /** - * The type of the editor interface. - * - * By default editor interface will be initialized as `classic` editor. - * You can also choose to create an editor with `inline` interface type instead. - * - * See https://ckeditor.com/docs/ckeditor4/latest/guide/dev_uitypes.html - * and https://ckeditor.com/docs/ckeditor4/latest/examples/fixedui.html - * to learn more. - */ - type: CKEditor4.EditorType; - /** - * Keeps track of the editor's data. - * - * It's also decorated as an input which is useful when not using the ngModel. - * - * See https://angular.io/api/forms/NgModel to learn more. - */ - set data(data: string); - get data(): string; - /** - * When set to `true`, the editor becomes read-only. - * - * See https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editor.html#property-readOnly - * to learn more. - */ - set readOnly(isReadOnly: boolean); - get readOnly(): boolean; - /** - * Fired when the CKEDITOR https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR.html namespace - * is loaded. It only triggers once, no matter how many CKEditor 4 components are initialised. - * Can be used for convenient changes in the namespace, e.g. for adding external plugins. - */ - namespaceLoaded: EventEmitter; - /** - * Fires when the editor is ready. It corresponds with the `editor#instanceReady` - * https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editor.html#event-instanceReady - * event. - */ - ready: EventEmitter; - /** - * Fires when the editor data is loaded, e.g. after calling setData() - * https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editor.html#method-setData - * editor's method. It corresponds with the `editor#dataReady` - * https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editor.html#event-dataReady event. - */ - dataReady: EventEmitter; - /** - * Fires when the content of the editor has changed. It corresponds with the `editor#change` - * https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editor.html#event-change - * event. For performance reasons this event may be called even when data didn't really changed. - * Please note that this event will only be fired when `undo` plugin is loaded. If you need to - * listen for editor changes (e.g. for two-way data binding), use `dataChange` event instead. - */ - change: EventEmitter; - /** - * Fires when the content of the editor has changed. In contrast to `change` - only emits when - * data really changed thus can be successfully used with `[data]` and two way `[(data)]` binding. - * - * See more: https://angular.io/guide/template-syntax#two-way-binding--- - */ - dataChange: EventEmitter; - /** - * Fires when the native dragStart event occurs. It corresponds with the `editor#dragstart` - * https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editor.html#event-dragstart - * event. - */ - dragStart: EventEmitter; - /** - * Fires when the native dragEnd event occurs. It corresponds with the `editor#dragend` - * https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editor.html#event-dragend - * event. - */ - dragEnd: EventEmitter; - /** - * Fires when the native drop event occurs. It corresponds with the `editor#drop` - * https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editor.html#event-drop - * event. - */ - drop: EventEmitter; - /** - * Fires when the file loader response is received. It corresponds with the `editor#fileUploadResponse` - * https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editor.html#event-fileUploadResponse - * event. - */ - fileUploadResponse: EventEmitter; - /** - * Fires when the file loader should send XHR. It corresponds with the `editor#fileUploadRequest` - * https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editor.html#event-fileUploadRequest - * event. - */ - fileUploadRequest: EventEmitter; - /** - * Fires when the editing area of the editor is focused. It corresponds with the `editor#focus` - * https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editor.html#event-focus - * event. - */ - focus: EventEmitter; - /** - * Fires after the user initiated a paste action, but before the data is inserted. - * It corresponds with the `editor#paste` - * https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editor.html#event-paste - * event. - */ - paste: EventEmitter; - /** - * Fires after the `paste` event if content was modified. It corresponds with the `editor#afterPaste` - * https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editor.html#event-afterPaste - * event. - */ - afterPaste: EventEmitter; - /** - * Fires when the editing view of the editor is blurred. It corresponds with the `editor#blur` - * https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editor.html#event-blur - * event. - */ - blur: EventEmitter; - /** - * A callback executed when the content of the editor changes. Part of the - * `ControlValueAccessor` (https://angular.io/api/forms/ControlValueAccessor) interface. - * - * Note: Unset unless the component uses the `ngModel`. - */ - onChange?: (data: string) => void; - /** - * A callback executed when the editor has been blurred. Part of the - * `ControlValueAccessor` (https://angular.io/api/forms/ControlValueAccessor) interface. - * - * Note: Unset unless the component uses the `ngModel`. - */ - onTouched?: () => void; - /** - * The instance of the editor created by this component. - */ - instance: any; - /** - * If the component is read–only before the editor instance is created, it remembers that state, - * so the editor can become read–only once it is ready. - */ - private _readOnly; - private _data; - private _destroyed; - constructor(elementRef: ElementRef, ngZone: NgZone); - ngAfterViewInit(): void; - ngOnDestroy(): void; - writeValue(value: string): void; - registerOnChange(callback: (data: string) => void): void; - registerOnTouched(callback: () => void): void; - private createEditor; - private subscribe; - private propagateChange; - static ɵfac: i0.ɵɵFactoryDeclaration; - static ɵcmp: i0.ɵɵComponentDeclaration; -} diff --git a/dist/ckeditor.d.ts b/dist/ckeditor.d.ts deleted file mode 100644 index 7ec96e2f..00000000 --- a/dist/ckeditor.d.ts +++ /dev/null @@ -1,52 +0,0 @@ -/** - * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. - * For licensing, see LICENSE.md. - */ -/** - * Basic typings for the CKEditor4 elements. - */ -export declare namespace CKEditor4 { - /** - * The CKEditor4 editor constructor. - */ - interface Config { - [key: string]: any; - } - /** - * The CKEditor4 editor. - */ - interface Editor { - [key: string]: any; - } - /** - * The CKEditor4 editor interface type. - * See https://ckeditor.com/docs/ckeditor4/latest/guide/dev_uitypes.html - * to learn more. - */ - const enum EditorType { - INLINE = "inline", - CLASSIC = "classic" - } - /** - * The event object passed to CKEditor4 event callbacks. - * - * See https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_eventInfo.html - * to learn more. - */ - interface EventInfo { - readonly name: string; - readonly editor: any; - readonly data: { - [key: string]: any; - }; - readonly listenerData: { - [key: string]: any; - }; - readonly sender: { - [key: string]: any; - }; - cancel(): void; - removeListener(): void; - stop(): void; - } -} diff --git a/dist/ckeditor.module.d.ts b/dist/ckeditor.module.d.ts deleted file mode 100644 index f2b0a5ef..00000000 --- a/dist/ckeditor.module.d.ts +++ /dev/null @@ -1,11 +0,0 @@ -import * as i0 from "@angular/core"; -import * as i1 from "./ckeditor.component"; -import * as i2 from "@angular/forms"; -import * as i3 from "@angular/common"; -export declare class CKEditorModule { - static ɵfac: i0.ɵɵFactoryDeclaration; - static ɵmod: i0.ɵɵNgModuleDeclaration; - static ɵinj: i0.ɵɵInjectorDeclaration; -} -export * from './ckeditor'; -export { CKEditorComponent } from './ckeditor.component'; diff --git a/dist/ckeditor4-angular.d.ts b/dist/ckeditor4-angular.d.ts deleted file mode 100644 index 3208674d..00000000 --- a/dist/ckeditor4-angular.d.ts +++ /dev/null @@ -1,5 +0,0 @@ -/** - * Generated bundle index. Do not edit. - */ -/// -export * from './ckeditor.module'; diff --git a/dist/esm2020/ckeditor.component.mjs b/dist/esm2020/ckeditor.component.mjs deleted file mode 100644 index 17b4f22e..00000000 --- a/dist/esm2020/ckeditor.component.mjs +++ /dev/null @@ -1,396 +0,0 @@ -/** - * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. - * For licensing, see LICENSE.md. - */ -import { Component, Input, Output, EventEmitter, forwardRef } from '@angular/core'; -import { NG_VALUE_ACCESSOR } from '@angular/forms'; -import { getEditorNamespace } from 'ckeditor4-integrations-common'; -import * as i0 from "@angular/core"; -export class CKEditorComponent { - constructor(elementRef, ngZone) { - this.elementRef = elementRef; - this.ngZone = ngZone; - /** - * CKEditor 4 script url address. Script will be loaded only if CKEDITOR namespace is missing. - * - * Defaults to 'https://cdn.ckeditor.com/4.23.0-lts/standard-all/ckeditor.js' - */ - this.editorUrl = 'https://cdn.ckeditor.com/4.23.0-lts/standard-all/ckeditor.js'; - /** - * Tag name of the editor component. - * - * The default tag is `textarea`. - */ - this.tagName = 'textarea'; - /** - * The type of the editor interface. - * - * By default editor interface will be initialized as `classic` editor. - * You can also choose to create an editor with `inline` interface type instead. - * - * See https://ckeditor.com/docs/ckeditor4/latest/guide/dev_uitypes.html - * and https://ckeditor.com/docs/ckeditor4/latest/examples/fixedui.html - * to learn more. - */ - this.type = "classic" /* CLASSIC */; - /** - * Fired when the CKEDITOR https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR.html namespace - * is loaded. It only triggers once, no matter how many CKEditor 4 components are initialised. - * Can be used for convenient changes in the namespace, e.g. for adding external plugins. - */ - this.namespaceLoaded = new EventEmitter(); - /** - * Fires when the editor is ready. It corresponds with the `editor#instanceReady` - * https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editor.html#event-instanceReady - * event. - */ - this.ready = new EventEmitter(); - /** - * Fires when the editor data is loaded, e.g. after calling setData() - * https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editor.html#method-setData - * editor's method. It corresponds with the `editor#dataReady` - * https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editor.html#event-dataReady event. - */ - this.dataReady = new EventEmitter(); - /** - * Fires when the content of the editor has changed. It corresponds with the `editor#change` - * https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editor.html#event-change - * event. For performance reasons this event may be called even when data didn't really changed. - * Please note that this event will only be fired when `undo` plugin is loaded. If you need to - * listen for editor changes (e.g. for two-way data binding), use `dataChange` event instead. - */ - this.change = new EventEmitter(); - /** - * Fires when the content of the editor has changed. In contrast to `change` - only emits when - * data really changed thus can be successfully used with `[data]` and two way `[(data)]` binding. - * - * See more: https://angular.io/guide/template-syntax#two-way-binding--- - */ - this.dataChange = new EventEmitter(); - /** - * Fires when the native dragStart event occurs. It corresponds with the `editor#dragstart` - * https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editor.html#event-dragstart - * event. - */ - this.dragStart = new EventEmitter(); - /** - * Fires when the native dragEnd event occurs. It corresponds with the `editor#dragend` - * https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editor.html#event-dragend - * event. - */ - this.dragEnd = new EventEmitter(); - /** - * Fires when the native drop event occurs. It corresponds with the `editor#drop` - * https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editor.html#event-drop - * event. - */ - this.drop = new EventEmitter(); - /** - * Fires when the file loader response is received. It corresponds with the `editor#fileUploadResponse` - * https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editor.html#event-fileUploadResponse - * event. - */ - this.fileUploadResponse = new EventEmitter(); - /** - * Fires when the file loader should send XHR. It corresponds with the `editor#fileUploadRequest` - * https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editor.html#event-fileUploadRequest - * event. - */ - this.fileUploadRequest = new EventEmitter(); - /** - * Fires when the editing area of the editor is focused. It corresponds with the `editor#focus` - * https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editor.html#event-focus - * event. - */ - this.focus = new EventEmitter(); - /** - * Fires after the user initiated a paste action, but before the data is inserted. - * It corresponds with the `editor#paste` - * https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editor.html#event-paste - * event. - */ - this.paste = new EventEmitter(); - /** - * Fires after the `paste` event if content was modified. It corresponds with the `editor#afterPaste` - * https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editor.html#event-afterPaste - * event. - */ - this.afterPaste = new EventEmitter(); - /** - * Fires when the editing view of the editor is blurred. It corresponds with the `editor#blur` - * https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editor.html#event-blur - * event. - */ - this.blur = new EventEmitter(); - /** - * If the component is read–only before the editor instance is created, it remembers that state, - * so the editor can become read–only once it is ready. - */ - this._readOnly = null; - this._data = null; - this._destroyed = false; - } - /** - * Keeps track of the editor's data. - * - * It's also decorated as an input which is useful when not using the ngModel. - * - * See https://angular.io/api/forms/NgModel to learn more. - */ - set data(data) { - if (data === this._data) { - return; - } - if (this.instance) { - this.instance.setData(data); - // Data may be changed by ACF. - this._data = this.instance.getData(); - return; - } - this._data = data; - } - get data() { - return this._data; - } - /** - * When set to `true`, the editor becomes read-only. - * - * See https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editor.html#property-readOnly - * to learn more. - */ - set readOnly(isReadOnly) { - if (this.instance) { - this.instance.setReadOnly(isReadOnly); - return; - } - // Delay setting read-only state until editor initialization. - this._readOnly = isReadOnly; - } - get readOnly() { - if (this.instance) { - return this.instance.readOnly; - } - return this._readOnly; - } - ngAfterViewInit() { - getEditorNamespace(this.editorUrl, namespace => { - this.namespaceLoaded.emit(namespace); - }).then(() => { - // Check if component instance was destroyed before `ngAfterViewInit` call (#110). - // Here, `this.instance` is still not initialized and so additional flag is needed. - if (this._destroyed) { - return; - } - this.ngZone.runOutsideAngular(this.createEditor.bind(this)); - }).catch(window.console.error); - } - ngOnDestroy() { - this._destroyed = true; - this.ngZone.runOutsideAngular(() => { - if (this.instance) { - this.instance.destroy(); - this.instance = null; - } - }); - } - writeValue(value) { - this.data = value; - } - registerOnChange(callback) { - this.onChange = callback; - } - registerOnTouched(callback) { - this.onTouched = callback; - } - createEditor() { - const element = document.createElement(this.tagName); - this.elementRef.nativeElement.appendChild(element); - const userInstanceReadyCallback = this.config?.on?.instanceReady; - const defaultConfig = { - delayIfDetached: true - }; - const config = { ...defaultConfig, ...this.config }; - if (typeof config.on === 'undefined') { - config.on = {}; - } - config.on.instanceReady = evt => { - const editor = evt.editor; - this.instance = editor; - // Read only state may change during instance initialization. - this.readOnly = this._readOnly !== null ? this._readOnly : this.instance.readOnly; - this.subscribe(this.instance); - const undo = editor.undoManager; - if (this.data !== null) { - undo && undo.lock(); - editor.setData(this.data, { callback: () => { - // Locking undoManager prevents 'change' event. - // Trigger it manually to updated bound data. - if (this.data !== editor.getData()) { - undo ? editor.fire('change') : editor.fire('dataReady'); - } - undo && undo.unlock(); - this.ngZone.run(() => { - if (typeof userInstanceReadyCallback === 'function') { - userInstanceReadyCallback(evt); - } - this.ready.emit(evt); - }); - } }); - } - else { - this.ngZone.run(() => { - if (typeof userInstanceReadyCallback === 'function') { - userInstanceReadyCallback(evt); - } - this.ready.emit(evt); - }); - } - }; - if (this.type === "inline" /* INLINE */) { - CKEDITOR.inline(element, config); - } - else { - CKEDITOR.replace(element, config); - } - } - subscribe(editor) { - editor.on('focus', evt => { - this.ngZone.run(() => { - this.focus.emit(evt); - }); - }); - editor.on('paste', evt => { - this.ngZone.run(() => { - this.paste.emit(evt); - }); - }); - editor.on('afterPaste', evt => { - this.ngZone.run(() => { - this.afterPaste.emit(evt); - }); - }); - editor.on('dragend', evt => { - this.ngZone.run(() => { - this.dragEnd.emit(evt); - }); - }); - editor.on('dragstart', evt => { - this.ngZone.run(() => { - this.dragStart.emit(evt); - }); - }); - editor.on('drop', evt => { - this.ngZone.run(() => { - this.drop.emit(evt); - }); - }); - editor.on('fileUploadRequest', evt => { - this.ngZone.run(() => { - this.fileUploadRequest.emit(evt); - }); - }); - editor.on('fileUploadResponse', evt => { - this.ngZone.run(() => { - this.fileUploadResponse.emit(evt); - }); - }); - editor.on('blur', evt => { - this.ngZone.run(() => { - if (this.onTouched) { - this.onTouched(); - } - this.blur.emit(evt); - }); - }); - editor.on('dataReady', this.propagateChange, this); - if (this.instance.undoManager) { - editor.on('change', this.propagateChange, this); - } - // If 'undo' plugin is not loaded, listen to 'selectionCheck' event instead. (#54). - else { - editor.on('selectionCheck', this.propagateChange, this); - } - } - propagateChange(event) { - this.ngZone.run(() => { - const newData = this.instance.getData(); - if (event.name === 'change') { - this.change.emit(event); - } - else if (event.name === 'dataReady') { - this.dataReady.emit(event); - } - if (newData === this.data) { - return; - } - this._data = newData; - this.dataChange.emit(newData); - if (this.onChange) { - this.onChange(newData); - } - }); - } -} -CKEditorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: CKEditorComponent, deps: [{ token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); -CKEditorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: CKEditorComponent, selector: "ckeditor", inputs: { config: "config", editorUrl: "editorUrl", tagName: "tagName", type: "type", data: "data", readOnly: "readOnly" }, outputs: { namespaceLoaded: "namespaceLoaded", ready: "ready", dataReady: "dataReady", change: "change", dataChange: "dataChange", dragStart: "dragStart", dragEnd: "dragEnd", drop: "drop", fileUploadResponse: "fileUploadResponse", fileUploadRequest: "fileUploadRequest", focus: "focus", paste: "paste", afterPaste: "afterPaste", blur: "blur" }, providers: [ - { - provide: NG_VALUE_ACCESSOR, - useExisting: forwardRef(() => CKEditorComponent), - multi: true, - } - ], ngImport: i0, template: '', isInline: true }); -i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: CKEditorComponent, decorators: [{ - type: Component, - args: [{ - selector: 'ckeditor', - template: '', - providers: [ - { - provide: NG_VALUE_ACCESSOR, - useExisting: forwardRef(() => CKEditorComponent), - multi: true, - } - ] - }] - }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.NgZone }]; }, propDecorators: { config: [{ - type: Input - }], editorUrl: [{ - type: Input - }], tagName: [{ - type: Input - }], type: [{ - type: Input - }], data: [{ - type: Input - }], readOnly: [{ - type: Input - }], namespaceLoaded: [{ - type: Output - }], ready: [{ - type: Output - }], dataReady: [{ - type: Output - }], change: [{ - type: Output - }], dataChange: [{ - type: Output - }], dragStart: [{ - type: Output - }], dragEnd: [{ - type: Output - }], drop: [{ - type: Output - }], fileUploadResponse: [{ - type: Output - }], fileUploadRequest: [{ - type: Output - }], focus: [{ - type: Output - }], paste: [{ - type: Output - }], afterPaste: [{ - type: Output - }], blur: [{ - type: Output - }] } }); -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2tlZGl0b3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NrZWRpdG9yL2NrZWRpdG9yLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0dBR0c7QUFFSCxPQUFPLEVBQ04sU0FBUyxFQUVULEtBQUssRUFDTCxNQUFNLEVBQ04sWUFBWSxFQUNaLFVBQVUsRUFHVixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBRU4saUJBQWlCLEVBQ2pCLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEIsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sK0JBQStCLENBQUM7O0FBa0JuRSxNQUFNLE9BQU8saUJBQWlCO0lBMk43QixZQUFxQixVQUFzQixFQUFVLE1BQWM7UUFBOUMsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUFVLFdBQU0sR0FBTixNQUFNLENBQVE7UUFsTm5FOzs7O1dBSUc7UUFDTSxjQUFTLEdBQUcsOERBQThELENBQUM7UUFFcEY7Ozs7V0FJRztRQUNNLFlBQU8sR0FBRyxVQUFVLENBQUM7UUFFOUI7Ozs7Ozs7OztXQVNHO1FBQ00sU0FBSSwyQkFBc0Q7UUFvRG5FOzs7O1dBSUc7UUFDTyxvQkFBZSxHQUFHLElBQUksWUFBWSxFQUF1QixDQUFDO1FBRXBFOzs7O1dBSUc7UUFDTyxVQUFLLEdBQUcsSUFBSSxZQUFZLEVBQXVCLENBQUM7UUFFMUQ7Ozs7O1dBS0c7UUFDTyxjQUFTLEdBQUcsSUFBSSxZQUFZLEVBQXVCLENBQUM7UUFFOUQ7Ozs7OztXQU1HO1FBQ08sV0FBTSxHQUFHLElBQUksWUFBWSxFQUF1QixDQUFDO1FBRTNEOzs7OztXQUtHO1FBQ08sZUFBVSxHQUFHLElBQUksWUFBWSxFQUF1QixDQUFDO1FBRS9EOzs7O1dBSUc7UUFDTyxjQUFTLEdBQUcsSUFBSSxZQUFZLEVBQXVCLENBQUM7UUFFOUQ7Ozs7V0FJRztRQUNPLFlBQU8sR0FBRyxJQUFJLFlBQVksRUFBdUIsQ0FBQztR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QkFBZCxNQUFNO2dCQVFHLEtBQUs7c0JBQWQsTUFBTTtnQkFPRyxVQUFVO3NCQUFuQixNQUFNO2dCQU9HLElBQUk7c0JBQWIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2UgQ29weXJpZ2h0IChjKSAyMDAzLTIwMjMsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQuXG4gKi9cblxuaW1wb3J0IHtcblx0Q29tcG9uZW50LFxuXHROZ1pvbmUsXG5cdElucHV0LFxuXHRPdXRwdXQsXG5cdEV2ZW50RW1pdHRlcixcblx0Zm9yd2FyZFJlZixcblx0RWxlbWVudFJlZixcblx0QWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95XG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQge1xuXHRDb250cm9sVmFsdWVBY2Nlc3Nvcixcblx0TkdfVkFMVUVfQUNDRVNTT1Jcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5pbXBvcnQgeyBnZXRFZGl0b3JOYW1lc3BhY2UgfSBmcm9tICdja2VkaXRvcjQtaW50ZWdyYXRpb25zLWNvbW1vbic7XG5cbmltcG9ydCB7IENLRWRpdG9yNCB9IGZyb20gJy4vY2tlZGl0b3InO1xuXG5kZWNsYXJlIGxldCBDS0VESVRPUjogYW55O1xuXG5AQ29tcG9uZW50KCB7XG5cdHNlbGVjdG9yOiAnY2tlZGl0b3InLFxuXHR0ZW1wbGF0ZTogJzxuZy10ZW1wbGF0ZT48L25nLXRlbXBsYXRlPicsXG5cblx0cHJvdmlkZXJzOiBbXG5cdFx0e1xuXHRcdFx0cHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG5cdFx0XHR1c2VFeGlzdGluZzogZm9yd2FyZFJlZiggKCkgPT4gQ0tFZGl0b3JDb21wb25lbnQgKSxcblx0XHRcdG11bHRpOiB0cnVlLFxuXHRcdH1cblx0XVxufSApXG5leHBvcnQgY2xhc3MgQ0tFZGl0b3JDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3ksIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcblx0LyoqXG5cdCAqIFRoZSBjb25maWd1cmF0aW9uIG9mIHRoZSBlZGl0b3IuXG5cdCAqXG5cdCAqIFNlZSBodHRwczovL2NrZWRpdG9yLmNvbS9kb2NzL2NrZWRpdG9yNC9sYXRlc3QvYXBpL0NLRURJVE9SX2NvbmZpZy5odG1sXG5cdCAqIHRvIGxlYXJuIG1vcmUuXG5cdCAqL1xuXHRASW5wdXQoKSBjb25maWc/OiBDS0VkaXRvcjQuQ29uZmlnO1xuXG5cdC8qKlxuXHQgKiBDS0VkaXRvciA0IHNjcmlwdCB1cmwgYWRkcmVzcy4gU2NyaXB0IHdpbGwgYmUgbG9hZGVkIG9ubHkgaWYgQ0tFRElUT1IgbmFtZXNwYWNlIGlzIG1pc3NpbmcuXG5cdCAqXG5cdCAqIERlZmF1bHRzIHRvICdodHRwczovL2Nkbi5ja2VkaXRvci5jb20vNC4yMy4wLWx0cy9zdGFuZGFyZC1hbGwvY2tlZGl0b3IuanMnXG5cdCAqL1xuXHRASW5wdXQoKSBlZGl0b3JVcmwgPSAnaHR0cHM6Ly9jZG4uY2tlZGl0b3IuY29tLzQuMjMuMC1sdHMvc3RhbmRhcmQtYWxsL2NrZWRpdG9yLmpzJztcblxuXHQvKipcblx0ICogVGFnIG5hbWUgb2YgdGhlIGVkaXRvciBjb21wb25lbnQuXG5cdCAqXG5cdCAqIFRoZSBkZWZhdWx0IHRhZyBpcyBgdGV4dGFyZWFgLlxuXHQgKi9cblx0QElucHV0KCkgdGFnTmFtZSA9ICd0ZXh0YXJlYSc7XG5cblx0LyoqXG5cdCAqIFRoZSB0eXBlIG9mIHRoZSBlZGl0b3IgaW50ZXJmYWNlLlxuXHQgKlxuXHQgKiBCeSBkZWZhdWx0IGVkaXRvciBpbnRlcmZhY2Ugd2lsbCBiZSBpbml0aWFsaXplZCBhcyBgY2xhc3NpY2AgZWRpdG9yLlxuXHQgKiBZb3UgY2FuIGFsc28gY2hvb3NlIHRvIGNyZWF0ZSBhbiBlZGl0b3Igd2l0aCBgaW5saW5lYCBpbnRlcmZhY2UgdHlwZSBpbnN0ZWFkLlxuXHQgKlxuXHQgKiBTZWUgaHR0cHM6Ly9ja2VkaXRvci5jb20vZG9jcy9ja2VkaXRvcjQvbGF0ZXN0L2d1aWRlL2Rldl91aXR5cGVzLmh0bWxcblx0ICogYW5kIGh0dHBzOi8vY2tlZGl0b3IuY29tL2RvY3MvY2tlZGl0b3I0L2xhdGVzdC9leGFtcGxlcy9maXhlZHVpLmh0bWxcblx0ICogdG8gbGVhcm4gbW9yZS5cblx0ICovXG5cdEBJbnB1dCgpIHR5cGU6IENLRWRpdG9yNC5FZGl0b3JUeXBlID0gQ0tFZGl0b3I0LkVkaXRvclR5cGUuQ0xBU1NJQztcblxuXHQvKipcblx0ICogS2VlcHMgdHJhY2sgb2YgdGhlIGVkaXRvcidzIGRhdGEuXG5cdCAqXG5cdCAqIEl0J3MgYWxzbyBkZWNvcmF0ZWQgYXMgYW4gaW5wdXQgd2hpY2ggaXMgdXNlZnVsIHdoZW4gbm90IHVzaW5nIHRoZSBuZ01vZGVsLlxuXHQgKlxuXHQgKiBTZWUgaHR0cHM6Ly9hbmd1bGFyLmlvL2FwaS9mb3Jtcy9OZ01vZGVsIHRvIGxlYXJuIG1vcmUuXG5cdCAqL1xuXHRASW5wdXQoKSBzZXQgZGF0YSggZGF0YTogc3RyaW5nICkge1xuXHRcdGlmICggZGF0YSA9PT0gdGhpcy5fZGF0YSApIHtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cblx0XHRpZiAoIHRoaXMuaW5zdGFuY2UgKSB7XG5cdFx0XHR0aGlzLmluc3RhbmNlLnNldERhdGEoIGRhdGEgKTtcblx0XHRcdC8vIERhdGEgbWF5IGJlIGNoYW5nZWQgYnkgQUNGLlxuXHRcdFx0dGhpcy5fZGF0YSA9IHRoaXMuaW5zdGFuY2UuZ2V0RGF0YSgpO1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblxuXHRcdHRoaXMuX2RhdGEgPSBkYXRhO1xuXHR9XG5cblx0Z2V0IGRhdGEoKTogc3RyaW5nIHtcblx0XHRyZXR1cm4gdGhpcy5fZGF0YTtcblx0fVxuXG5cdC8qKlxuXHQgKiBXaGVuIHNldCB0byBgdHJ1ZWAsIHRoZSBlZGl0b3IgYmVjb21lcyByZWFkLW9ubHkuXG5cdCAqXG5cdCAqIFNlZSBodHRwczovL2NrZWRpdG9yLmNvbS9kb2NzL2NrZWRpdG9yNC9sYXRlc3QvYXBpL0NLRURJVE9SX2VkaXRvci5odG1sI3Byb3BlcnR5LXJlYWRPbmx5XG5cdCAqIHRvIGxlYXJuIG1vcmUuXG5cdCAqL1xuXHRASW5wdXQoKSBzZXQgcmVhZE9ubHkoIGlzUmVhZE9ubHk6IGJvb2xlYW4gKSB7XG5cdFx0aWYgKCB0aGlzLmluc3RhbmNlICkge1xuXHRcdFx0dGhpcy5pbnN0YW5jZS5zZXRSZWFkT25seSggaXNSZWFkT25seSApO1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblxuXHRcdC8vIERlbGF5IHNldHRpbmcgcmVhZC1vbmx5IHN0YXRlIHVudGlsIGVkaXRvciBpbml0aWFsaXphdGlvbi5cblx0XHR0aGlzLl9yZWFkT25seSA9IGlzUmVhZE9ubHk7XG5cdH1cblxuXHRnZXQgcmVhZE9ubHkoKTogYm9vbGVhbiB7XG5cdFx0aWYgKCB0aGlzLmluc3RhbmNlICkge1xuXHRcdFx0cmV0dXJuIHRoaXMuaW5zdGFuY2UucmVhZE9ubHk7XG5cdFx0fVxuXG5cdFx0cmV0dXJuIHRoaXMuX3JlYWRPbmx5O1xuXHR9XG5cblx0LyoqXG5cdCAqIEZpcmVkIHdoZW4gdGhlIENLRURJVE9SIGh0dHBzOi8vY2tlZGl0b3IuY29tL2RvY3MvY2tlZGl0b3I0L2xhdGVzdC9hcGkvQ0tFRElUT1IuaHRtbCBuYW1lc3BhY2Vcblx0ICogaXMgbG9hZGVkLiBJdCBvbmx5IHRyaWdnZXJzIG9uY2UsIG5vIG1hdHRlciBob3cgbWFueSBDS0VkaXRvciA0IGNvbXBvbmVudHMgYXJlIGluaXRpYWxpc2VkLlxuXHQgKiBDYW4gYmUgdXNlZCBmb3IgY29udmVuaWVudCBjaGFuZ2VzIGluIHRoZSBuYW1lc3BhY2UsIGUuZy4gZm9yIGFkZGluZyBleHRlcm5hbCBwbHVnaW5zLlxuXHQgKi9cblx0QE91dHB1dCgpIG5hbWVzcGFjZUxvYWRlZCA9IG5ldyBFdmVudEVtaXR0ZXI8Q0tFZGl0b3I0LkV2ZW50SW5mbz4oKTtcblxuXHQvKipcblx0ICogRmlyZXMgd2hlbiB0aGUgZWRpdG9yIGlzIHJlYWR5LiBJdCBjb3JyZXNwb25kcyB3aXRoIHRoZSBgZWRpdG9yI2luc3RhbmNlUmVhZHlgXG5cdCAqIGh0dHBzOi8vY2tlZGl0b3IuY29tL2RvY3MvY2tlZGl0b3I0L2xhdGVzdC9hcGkvQ0tFRElUT1JfZWRpdG9yLmh0bWwjZXZlbnQtaW5zdGFuY2VSZWFkeVxuXHQgKiBldmVudC5cblx0ICovXG5cdEBPdXRwdXQoKSByZWFkeSA9IG5ldyBFdmVudEVtaXR0ZXI8Q0tFZGl0b3I0LkV2ZW50SW5mbz4oKTtcblxuXHQvKipcblx0ICogRmlyZXMgd2hlbiB0aGUgZWRpdG9yIGRhdGEgaXMgbG9hZGVkLCBlLmcuIGFmdGVyIGNhbGxpbmcgc2V0RGF0YSgpXG5cdCAqIGh0dHBzOi8vY2tlZGl0b3IuY29tL2RvY3MvY2tlZGl0b3I0L2xhdGVzdC9hcGkvQ0tFRElUT1JfZWRpdG9yLmh0bWwjbWV0aG9kLXNldERhdGFcblx0ICogZWRpdG9yJ3MgbWV0aG9kLiBJdCBjb3JyZXNwb25kcyB3aXRoIHRoZSBgZWRpdG9yI2RhdGFSZWFkeWBcblx0ICogaHR0cHM6Ly9ja2VkaXRvci5jb20vZG9jcy9ja2VkaXRvcjQvbGF0ZXN0L2FwaS9DS0VESVRPUl9lZGl0b3IuaHRtbCNldmVudC1kYXRhUmVhZHkgZXZlbnQuXG5cdCAqL1xuXHRAT3V0cHV0KCkgZGF0YVJlYWR5ID0gbmV3IEV2ZW50RW1pdHRlcjxDS0VkaXRvcjQuRXZlbnRJbmZvPigpO1xuXG5cdC8qKlxuXHQgKiBGaXJlcyB3aGVuIHRoZSBjb250ZW50IG9mIHRoZSBlZGl0b3IgaGFzIGNoYW5nZWQuIEl0IGNvcnJlc3BvbmRzIHdpdGggdGhlIGBlZGl0b3IjY2hhbmdlYFxuXHQgKiBodHRwczovL2NrZWRpdG9yLmNvbS9kb2NzL2NrZWRpdG9yNC9sYXRlc3QvYXBpL0NLRURJVE9SX2VkaXRvci5odG1sI2V2ZW50LWNoYW5nZVxuXHQgKiBldmVudC4gRm9yIHBlcmZvcm1hbmNlIHJlYXNvbnMgdGhpcyBldmVudCBtYXkgYmUgY2FsbGVkIGV2ZW4gd2hlbiBkYXRhIGRpZG4ndCByZWFsbHkgY2hhbmdlZC5cblx0ICogUGxlYXNlIG5vdGUgdGhhdCB0aGlzIGV2ZW50IHdpbGwgb25seSBiZSBmaXJlZCB3aGVuIGB1bmRvYCBwbHVnaW4gaXMgbG9hZGVkLiBJZiB5b3UgbmVlZCB0b1xuXHQgKiBsaXN0ZW4gZm9yIGVkaXRvciBjaGFuZ2VzIChlLmcuIGZvciB0d28td2F5IGRhdGEgYmluZGluZyksIHVzZSBgZGF0YUNoYW5nZWAgZXZlbnQgaW5zdGVhZC5cblx0ICovXG5cdEBPdXRwdXQoKSBjaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPENLRWRpdG9yNC5FdmVudEluZm8+KCk7XG5cblx0LyoqXG5cdCAqIEZpcmVzIHdoZW4gdGhlIGNvbnRlbnQgb2YgdGhlIGVkaXRvciBoYXMgY2hhbmdlZC4gSW4gY29udHJhc3QgdG8gYGNoYW5nZWAgLSBvbmx5IGVtaXRzIHdoZW5cblx0ICogZGF0YSByZWFsbHkgY2hhbmdlZCB0aHVzIGNhbiBiZSBzdWNjZXNzZnVsbHkgdXNlZCB3aXRoIGBbZGF0YV1gIGFuZCB0d28gd2F5IGBbKGRhdGEpXWAgYmluZGluZy5cblx0ICpcblx0ICogU2VlIG1vcmU6IGh0dHBzOi8vYW5ndWxhci5pby9ndWlkZS90ZW1wbGF0ZS1zeW50YXgjdHdvLXdheS1iaW5kaW5nLS0tXG5cdCAqL1xuXHRAT3V0cHV0KCkgZGF0YUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Q0tFZGl0b3I0LkV2ZW50SW5mbz4oKTtcblxuXHQvKipcblx0ICogRmlyZXMgd2hlbiB0aGUgbmF0aXZlIGRyYWdTdGFydCBldmVudCBvY2N1cnMuIEl0IGNvcnJlc3BvbmRzIHdpdGggdGhlIGBlZGl0b3IjZHJhZ3N0YXJ0YFxuXHQgKiBodHRwczovL2NrZWRpdG9yLmNvbS9kb2NzL2NrZWRpdG9yNC9sYXRlc3QvYXBpL0NLRURJVE9SX2VkaXRvci5odG1sI2V2ZW50LWRyYWdzdGFydFxuXHQgKiBldmVudC5cblx0ICovXG5cdEBPdXRwdXQoKSBkcmFnU3RhcnQgPSBuZXcgRXZlbnRFbWl0dGVyPENLRWRpdG9yNC5FdmVudEluZm8+KCk7XG5cblx0LyoqXG5cdCAqIEZpcmVzIHdoZW4gdGhlIG5hdGl2ZSBkcmFnRW5kIGV2ZW50IG9jY3Vycy4gSXQgY29ycmVzcG9uZHMgd2l0aCB0aGUgYGVkaXRvciNkcmFnZW5kYFxuXHQgKiBodHRwczovL2NrZWRpdG9yLmNvbS9kb2NzL2NrZWRpdG9yNC9sYXRlc3QvYXBpL0NLRURJVE9SX2VkaXRvci5odG1sI2V2ZW50LWRyYWdlbmRcblx0ICogZXZlbnQuXG5cdCAqL1xuXHRAT3V0cHV0KCkgZHJhZ0VuZCA9IG5ldyBFdmVudEVtaXR0ZXI8Q0tFZGl0b3I0LkV2ZW50SW5mbz4oKTtcblxuXHQvKipcblx0ICogRmlyZXMgd2hlbiB0aGUgbmF0aXZlIGRyb3AgZXZlbnQgb2NjdXJzLiBJdCBjb3JyZXNwb25kcyB3aXRoIHRoZSBgZWRpdG9yI2Ryb3BgXG5cdCAqIGh0dHBzOi8vY2tlZGl0b3IuY29tL2RvY3MvY2tlZGl0b3I0L2xhdGVzdC9hcGkvQ0tFRElUT1JfZWRpdG9yLmh0bWwjZXZlbnQtZHJvcFxuXHQgKiBldmVudC5cblx0ICovXG5cdEBPdXRwdXQoKSBkcm9wID0gbmV3IEV2ZW50RW1pdHRlcjxDS0VkaXRvcjQuRXZlbnRJbmZvPigpO1xuXG5cdC8qKlxuXHQgKiBGaXJlcyB3aGVuIHRoZSBmaWxlIGxvYWRlciByZXNwb25zZSBpcyByZWNlaXZlZC4gSXQgY29ycmVzcG9uZHMgd2l0aCB0aGUgYGVkaXRvciNmaWxlVXBsb2FkUmVzcG9uc2VgXG5cdCAqIGh0dHBzOi8vY2tlZGl0b3IuY29tL2RvY3MvY2tlZGl0b3I0L2xhdGVzdC9hcGkvQ0tFRElUT1JfZWRpdG9yLmh0bWwjZXZlbnQtZmlsZVVwbG9hZFJlc3BvbnNlXG5cdCAqIGV2ZW50LlxuXHQgKi9cblx0QE91dHB1dCgpIGZpbGVVcGxvYWRSZXNwb25zZSA9IG5ldyBFdmVudEVtaXR0ZXI8Q0tFZGl0b3I0LkV2ZW50SW5mbz4oKTtcblxuXHQvKipcblx0ICogRmlyZXMgd2hlbiB0aGUgZmlsZSBsb2FkZXIgc2hvdWxkIHNlbmQgWEhSLiBJdCBjb3JyZXNwb25kcyB3aXRoIHRoZSBgZWRpdG9yI2ZpbGVVcGxvYWRSZXF1ZXN0YFxuXHQgKiBodHRwczovL2NrZWRpdG9yLmNvbS9kb2NzL2NrZWRpdG9yNC9sYXRlc3QvYXBpL0NLRURJVE9SX2VkaXRvci5odG1sI2V2ZW50LWZpbGVVcGxvYWRSZXF1ZXN0XG5cdCAqIGV2ZW50LlxuXHQgKi9cblx0QE91dHB1dCgpIGZpbGVVcGxvYWRSZXF1ZXN0ID0gbmV3IEV2ZW50RW1pdHRlcjxDS0VkaXRvcjQuRXZlbnRJbmZvPigpO1xuXG5cdC8qKlxuXHQgKiBGaXJlcyB3aGVuIHRoZSBlZGl0aW5nIGFyZWEgb2YgdGhlIGVkaXRvciBpcyBmb2N1c2VkLiBJdCBjb3JyZXNwb25kcyB3aXRoIHRoZSBgZWRpdG9yI2ZvY3VzYFxuXHQgKiBodHRwczovL2NrZWRpdG9yLmNvbS9kb2NzL2NrZWRpdG9yNC9sYXRlc3QvYXBpL0NLRURJVE9SX2VkaXRvci5odG1sI2V2ZW50LWZvY3VzXG5cdCAqIGV2ZW50LlxuXHQgKi9cblx0QE91dHB1dCgpIGZvY3VzID0gbmV3IEV2ZW50RW1pdHRlcjxDS0VkaXRvcjQuRXZlbnRJbmZvPigpO1xuXG5cdC8qKlxuXHQgKiBGaXJlcyBhZnRlciB0aGUgdXNlciBpbml0aWF0ZWQgYSBwYXN0ZSBhY3Rpb24sIGJ1dCBiZWZvcmUgdGhlIGRhdGEgaXMgaW5zZXJ0ZWQuXG5cdCAqIEl0IGNvcnJlc3BvbmRzIHdpdGggdGhlIGBlZGl0b3IjcGFzdGVgXG5cdCAqIGh0dHBzOi8vY2tlZGl0b3IuY29tL2RvY3MvY2tlZGl0b3I0L2xhdGVzdC9hcGkvQ0tFRElUT1JfZWRpdG9yLmh0bWwjZXZlbnQtcGFzdGVcblx0ICogZXZlbnQuXG5cdCAqL1xuXHRAT3V0cHV0KCkgcGFzdGUgPSBuZXcgRXZlbnRFbWl0dGVyPENLRWRpdG9yNC5FdmVudEluZm8+KCk7XG5cblx0LyoqXG5cdCAqIEZpcmVzIGFmdGVyIHRoZSBgcGFzdGVgIGV2ZW50IGlmIGNvbnRlbnQgd2FzIG1vZGlmaWVkLiBJdCBjb3JyZXNwb25kcyB3aXRoIHRoZSBgZWRpdG9yI2FmdGVyUGFzdGVgXG5cdCAqIGh0dHBzOi8vY2tlZGl0b3IuY29tL2RvY3MvY2tlZGl0b3I0L2xhdGVzdC9hcGkvQ0tFRElUT1JfZWRpdG9yLmh0bWwjZXZlbnQtYWZ0ZXJQYXN0ZVxuXHQgKiBldmVudC5cblx0ICovXG5cdEBPdXRwdXQoKSBhZnRlclBhc3RlID0gbmV3IEV2ZW50RW1pdHRlcjxDS0VkaXRvcjQuRXZlbnRJbmZvPigpO1xuXG5cdC8qKlxuXHQgKiBGaXJlcyB3aGVuIHRoZSBlZGl0aW5nIHZpZXcgb2YgdGhlIGVkaXRvciBpcyBibHVycmVkLiBJdCBjb3JyZXNwb25kcyB3aXRoIHRoZSBgZWRpdG9yI2JsdXJgXG5cdCAqIGh0dHBzOi8vY2tlZGl0b3IuY29tL2RvY3MvY2tlZGl0b3I0L2xhdGVzdC9hcGkvQ0tFRElUT1JfZWRpdG9yLmh0bWwjZXZlbnQtYmx1clxuXHQgKiBldmVudC5cblx0ICovXG5cdEBPdXRwdXQoKSBibHVyID0gbmV3IEV2ZW50RW1pdHRlcjxDS0VkaXRvcjQuRXZlbnRJbmZvPigpO1xuXG5cdC8qKlxuXHQgKiBBIGNhbGxiYWNrIGV4ZWN1dGVkIHdoZW4gdGhlIGNvbnRlbnQgb2YgdGhlIGVkaXRvciBjaGFuZ2VzLiBQYXJ0IG9mIHRoZVxuXHQgKiBgQ29udHJvbFZhbHVlQWNjZXNzb3JgIChodHRwczovL2FuZ3VsYXIuaW8vYXBpL2Zvcm1zL0NvbnRyb2xWYWx1ZUFjY2Vzc29yKSBpbnRlcmZhY2UuXG5cdCAqXG5cdCAqIE5vdGU6IFVuc2V0IHVubGVzcyB0aGUgY29tcG9uZW50IHVzZXMgdGhlIGBuZ01vZGVsYC5cblx0ICovXG5cdG9uQ2hhbmdlPzogKCBkYXRhOiBzdHJpbmcgKSA9PiB2b2lkO1xuXG5cdC8qKlxuXHQgKiBBIGNhbGxiYWNrIGV4ZWN1dGVkIHdoZW4gdGhlIGVkaXRvciBoYXMgYmVlbiBibHVycmVkLiBQYXJ0IG9mIHRoZVxuXHQgKiBgQ29udHJvbFZhbHVlQWNjZXNzb3JgIChodHRwczovL2FuZ3VsYXIuaW8vYXBpL2Zvcm1zL0NvbnRyb2xWYWx1ZUFjY2Vzc29yKSBpbnRlcmZhY2UuXG5cdCAqXG5cdCAqIE5vdGU6IFVuc2V0IHVubGVzcyB0aGUgY29tcG9uZW50IHVzZXMgdGhlIGBuZ01vZGVsYC5cblx0ICovXG5cdG9uVG91Y2hlZD86ICgpID0+IHZvaWQ7XG5cblx0LyoqXG5cdCAqIFRoZSBpbnN0YW5jZSBvZiB0aGUgZWRpdG9yIGNyZWF0ZWQgYnkgdGhpcyBjb21wb25lbnQuXG5cdCAqL1xuXHRpbnN0YW5jZTogYW55O1xuXG5cdC8qKlxuXHQgKiBJZiB0aGUgY29tcG9uZW50IGlzIHJlYWTigJNvbmx5IGJlZm9yZSB0aGUgZWRpdG9yIGluc3RhbmNlIGlzIGNyZWF0ZWQsIGl0IHJlbWVtYmVycyB0aGF0IHN0YXRlLFxuXHQgKiBzbyB0aGUgZWRpdG9yIGNhbiBiZWNvbWUgcmVhZOKAk29ubHkgb25jZSBpdCBpcyByZWFkeS5cblx0ICovXG5cdHByaXZhdGUgX3JlYWRPbmx5OiBib29sZWFuID0gbnVsbDtcblxuXHRwcml2YXRlIF9kYXRhOiBzdHJpbmcgPSBudWxsO1xuXG5cdHByaXZhdGUgX2Rlc3Ryb3llZDogYm9vbGVhbiA9IGZhbHNlO1xuXG5cdGNvbnN0cnVjdG9yKCBwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsIHByaXZhdGUgbmdab25lOiBOZ1pvbmUgKSB7fVxuXG5cdG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcblx0XHRnZXRFZGl0b3JOYW1lc3BhY2UoIHRoaXMuZWRpdG9yVXJsLCBuYW1lc3BhY2UgPT4ge1xuXHRcdFx0dGhpcy5uYW1lc3BhY2VMb2FkZWQuZW1pdCggbmFtZXNwYWNlICk7XG5cdFx0fSApLnRoZW4oICgpID0+IHtcblx0XHRcdC8vIENoZWNrIGlmIGNvbXBvbmVudCBpbnN0YW5jZSB3YXMgZGVzdHJveWVkIGJlZm9yZSBgbmdBZnRlclZpZXdJbml0YCBjYWxsICgjMTEwKS5cblx0XHRcdC8vIEhlcmUsIGB0aGlzLmluc3RhbmNlYCBpcyBzdGlsbCBub3QgaW5pdGlhbGl6ZWQgYW5kIHNvIGFkZGl0aW9uYWwgZmxhZyBpcyBuZWVkZWQuXG5cdFx0XHRpZiAoIHRoaXMuX2Rlc3Ryb3llZCApIHtcblx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0fVxuXG5cdFx0XHR0aGlzLm5nWm9uZS5ydW5PdXRzaWRlQW5ndWxhciggdGhpcy5jcmVhdGVFZGl0b3IuYmluZCggdGhpcyApICk7XG5cdFx0fSApLmNhdGNoKCB3aW5kb3cuY29uc29sZS5lcnJvciApO1xuXHR9XG5cblx0bmdPbkRlc3Ryb3koKTogdm9pZCB7XG5cdFx0dGhpcy5fZGVzdHJveWVkID0gdHJ1ZTtcblxuXHRcdHRoaXMubmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCAoKSA9PiB7XG5cdFx0XHRpZiAoIHRoaXMuaW5zdGFuY2UgKSB7XG5cdFx0XHRcdHRoaXMuaW5zdGFuY2UuZGVzdHJveSgpO1xuXHRcdFx0XHR0aGlzLmluc3RhbmNlID0gbnVsbDtcblx0XHRcdH1cblx0XHR9ICk7XG5cdH1cblxuXHR3cml0ZVZhbHVlKCB2YWx1ZTogc3RyaW5nICk6IHZvaWQge1xuXHRcdHRoaXMuZGF0YSA9IHZhbHVlO1xuXHR9XG5cblx0cmVnaXN0ZXJPbkNoYW5nZSggY2FsbGJhY2s6ICggZGF0YTogc3RyaW5nICkgPT4gdm9pZCApOiB2b2lkIHtcblx0XHR0aGlzLm9uQ2hhbmdlID0gY2FsbGJhY2s7XG5cdH1cblxuXHRyZWdpc3Rlck9uVG91Y2hlZCggY2FsbGJhY2s6ICgpID0+IHZvaWQgKTogdm9pZCB7XG5cdFx0dGhpcy5vblRvdWNoZWQgPSBjYWxsYmFjaztcblx0fVxuXG5cdHByaXZhdGUgY3JlYXRlRWRpdG9yKCk6IHZvaWQge1xuXHRcdGNvbnN0IGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCB0aGlzLnRhZ05hbWUgKTtcblx0XHR0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5hcHBlbmRDaGlsZCggZWxlbWVudCApO1xuXG5cdFx0Y29uc3QgdXNlckluc3RhbmNlUmVhZHlDYWxsYmFjayA9IHRoaXMuY29uZmlnPy5vbj8uaW5zdGFuY2VSZWFkeTtcblx0XHRjb25zdCBkZWZhdWx0Q29uZmlnOiBQYXJ0aWFsPENLRWRpdG9yNC5Db25maWc+ID0ge1xuXHRcdFx0ZGVsYXlJZkRldGFjaGVkOiB0cnVlXG5cdFx0fTtcblx0XHRjb25zdCBjb25maWc6IFBhcnRpYWw8Q0tFZGl0b3I0LkNvbmZpZz4gPSB7IC4uLmRlZmF1bHRDb25maWcsIC4uLnRoaXMuY29uZmlnIH07XG5cblx0XHRpZiAoIHR5cGVvZiBjb25maWcub24gPT09ICd1bmRlZmluZWQnICkge1xuXHRcdFx0Y29uZmlnLm9uID0ge307XG5cdFx0fVxuXG5cdFx0Y29uZmlnLm9uLmluc3RhbmNlUmVhZHkgPSBldnQgPT4ge1xuXHRcdFx0Y29uc3QgZWRpdG9yID0gZXZ0LmVkaXRvcjtcblxuXHRcdFx0dGhpcy5pbnN0YW5jZSA9IGVkaXRvcjtcblxuXHRcdFx0Ly8gUmVhZCBvbmx5IHN0YXRlIG1heSBjaGFuZ2UgZHVyaW5nIGluc3RhbmNlIGluaXRpYWxpemF0aW9uLlxuXHRcdFx0dGhpcy5yZWFkT25seSA9IHRoaXMuX3JlYWRPbmx5ICE9PSBudWxsID8gdGhpcy5fcmVhZE9ubHkgOiB0aGlzLmluc3RhbmNlLnJlYWRPbmx5O1xuXG5cdFx0XHR0aGlzLnN1YnNjcmliZSggdGhpcy5pbnN0YW5jZSApO1xuXG5cdFx0XHRjb25zdCB1bmRvID0gZWRpdG9yLnVuZG9NYW5hZ2VyO1xuXG5cdFx0XHRpZiAoIHRoaXMuZGF0YSAhPT0gbnVsbCApIHtcblx0XHRcdFx0dW5kbyAmJiB1bmRvLmxvY2soKTtcblxuXHRcdFx0XHRlZGl0b3Iuc2V0RGF0YSggdGhpcy5kYXRhLCB7IGNhbGxiYWNrOiAoKSA9PiB7XG5cdFx0XHRcdFx0Ly8gTG9ja2luZyB1bmRvTWFuYWdlciBwcmV2ZW50cyAnY2hhbmdlJyBldmVudC5cblx0XHRcdFx0XHQvLyBUcmlnZ2VyIGl0IG1hbnVhbGx5IHRvIHVwZGF0ZWQgYm91bmQgZGF0YS5cblx0XHRcdFx0XHRpZiAoIHRoaXMuZGF0YSAhPT0gZWRpdG9yLmdldERhdGEoKSApIHtcblx0XHRcdFx0XHRcdHVuZG8gPyBlZGl0b3IuZmlyZSggJ2NoYW5nZScgKSA6IGVkaXRvci5maXJlKCAnZGF0YVJlYWR5JyApO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHR1bmRvICYmIHVuZG8udW5sb2NrKCk7XG5cblx0XHRcdFx0XHR0aGlzLm5nWm9uZS5ydW4oICgpID0+IHtcblx0XHRcdFx0XHRcdGlmICggdHlwZW9mIHVzZXJJbnN0YW5jZVJlYWR5Q2FsbGJhY2sgPT09ICdmdW5jdGlvbicgKSB7XG5cdFx0XHRcdFx0XHRcdHVzZXJJbnN0YW5jZVJlYWR5Q2FsbGJhY2soIGV2dCApO1xuXHRcdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0XHR0aGlzLnJlYWR5LmVtaXQoIGV2dCApO1xuXHRcdFx0XHRcdH0gKTtcblx0XHRcdFx0fSB9ICk7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHR0aGlzLm5nWm9uZS5ydW4oICgpID0+IHtcblx0XHRcdFx0XHRpZiAoIHR5cGVvZiB1c2VySW5zdGFuY2VSZWFkeUNhbGxiYWNrID09PSAnZnVuY3Rpb24nICkge1xuXHRcdFx0XHRcdFx0dXNlckluc3RhbmNlUmVhZHlDYWxsYmFjayggZXZ0ICk7XG5cdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0dGhpcy5yZWFkeS5lbWl0KCBldnQgKTtcblx0XHRcdFx0fSApO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdGlmICggdGhpcy50eXBlID09PSBDS0VkaXRvcjQuRWRpdG9yVHlwZS5JTkxJTkUgKSB7XG5cdFx0XHRDS0VESVRPUi5pbmxpbmUoIGVsZW1lbnQsIGNvbmZpZyApO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRDS0VESVRPUi5yZXBsYWNlKCBlbGVtZW50LCBjb25maWcgKTtcblx0XHR9XG5cdH1cblxuXHRwcml2YXRlIHN1YnNjcmliZSggZWRpdG9yOiBhbnkgKTogdm9pZCB7XG5cdFx0ZWRpdG9yLm9uKCAnZm9jdXMnLCBldnQgPT4ge1xuXHRcdFx0dGhpcy5uZ1pvbmUucnVuKCAoKSA9PiB7XG5cdFx0XHRcdHRoaXMuZm9jdXMuZW1pdCggZXZ0ICk7XG5cdFx0XHR9ICk7XG5cdFx0fSApO1xuXG5cdFx0ZWRpdG9yLm9uKCAncGFzdGUnLCBldnQgPT4ge1xuXHRcdFx0dGhpcy5uZ1pvbmUucnVuKCAoKSA9PiB7XG5cdFx0XHRcdHRoaXMucGFzdGUuZW1pdCggZXZ0ICk7XG5cdFx0XHR9ICk7XG5cdFx0fSApO1xuXG5cdFx0ZWRpdG9yLm9uKCAnYWZ0ZXJQYXN0ZScsIGV2dCA9PiB7XG5cdFx0XHR0aGlzLm5nWm9uZS5ydW4oICgpID0+IHtcblx0XHRcdFx0dGhpcy5hZnRlclBhc3RlLmVtaXQoIGV2dCApO1xuXHRcdFx0fSApO1xuXHRcdH0gKTtcblxuXHRcdGVkaXRvci5vbiggJ2RyYWdlbmQnLCBldnQgPT4ge1xuXHRcdFx0dGhpcy5uZ1pvbmUucnVuKCAoKSA9PiB7XG5cdFx0XHRcdHRoaXMuZHJhZ0VuZC5lbWl0KCBldnQgKTtcblx0XHRcdH0gKTtcblx0XHR9KTtcblxuXHRcdGVkaXRvci5vbiggJ2RyYWdzdGFydCcsIGV2dCA9PiB7XG5cdFx0XHR0aGlzLm5nWm9uZS5ydW4oICgpID0+IHtcblx0XHRcdFx0dGhpcy5kcmFnU3RhcnQuZW1pdCggZXZ0ICk7XG5cdFx0XHR9ICk7XG5cdFx0fSApO1xuXG5cdFx0ZWRpdG9yLm9uKCAnZHJvcCcsIGV2dCA9PiB7XG5cdFx0XHR0aGlzLm5nWm9uZS5ydW4oICgpID0+IHtcblx0XHRcdFx0dGhpcy5kcm9wLmVtaXQoIGV2dCApO1xuXHRcdFx0fSApO1xuXHRcdH0gKTtcblxuXHRcdGVkaXRvci5vbiggJ2ZpbGVVcGxvYWRSZXF1ZXN0JywgZXZ0ID0+IHtcblx0XHRcdHRoaXMubmdab25lLnJ1biggKCkgPT4ge1xuXHRcdFx0XHR0aGlzLmZpbGVVcGxvYWRSZXF1ZXN0LmVtaXQoZXZ0KTtcblx0XHRcdH0gKTtcblx0XHR9ICk7XG5cblx0XHRlZGl0b3Iub24oICdmaWxlVXBsb2FkUmVzcG9uc2UnLCBldnQgPT4ge1xuXHRcdFx0dGhpcy5uZ1pvbmUucnVuKCAoKSA9PiB7XG5cdFx0XHRcdHRoaXMuZmlsZVVwbG9hZFJlc3BvbnNlLmVtaXQoZXZ0KTtcblx0XHRcdH0gKTtcblx0XHR9ICk7XG5cblx0XHRlZGl0b3Iub24oICdibHVyJywgZXZ0ID0+IHtcblx0XHRcdHRoaXMubmdab25lLnJ1biggKCkgPT4ge1xuXHRcdFx0XHRpZiAoIHRoaXMub25Ub3VjaGVkICkge1xuXHRcdFx0XHRcdHRoaXMub25Ub3VjaGVkKCk7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHR0aGlzLmJsdXIuZW1pdCggZXZ0ICk7XG5cdFx0XHR9ICk7XG5cdFx0fSApO1xuXG5cdFx0ZWRpdG9yLm9uKCAnZGF0YVJlYWR5JywgdGhpcy5wcm9wYWdhdGVDaGFuZ2UsIHRoaXMgKTtcblxuXHRcdGlmICggdGhpcy5pbnN0YW5jZS51bmRvTWFuYWdlciApIHtcblx0XHRcdGVkaXRvci5vbiggJ2NoYW5nZScsIHRoaXMucHJvcGFnYXRlQ2hhbmdlLCB0aGlzICk7XG5cdFx0fVxuXHRcdC8vIElmICd1bmRvJyBwbHVnaW4gaXMgbm90IGxvYWRlZCwgbGlzdGVuIHRvICdzZWxlY3Rpb25DaGVjaycgZXZlbnQgaW5zdGVhZC4gKCM1NCkuXG5cdFx0ZWxzZSB7XG5cdFx0XHRlZGl0b3Iub24oICdzZWxlY3Rpb25DaGVjaycsIHRoaXMucHJvcGFnYXRlQ2hhbmdlLCB0aGlzICk7XG5cdFx0fVxuXHR9XG5cblx0cHJpdmF0ZSBwcm9wYWdhdGVDaGFuZ2UoIGV2ZW50OiBhbnkgKTogdm9pZCB7XG5cdFx0dGhpcy5uZ1pvbmUucnVuKCAoKSA9PiB7XG5cdFx0XHRjb25zdCBuZXdEYXRhID0gdGhpcy5pbnN0YW5jZS5nZXREYXRhKCk7XG5cblx0XHRcdGlmICggZXZlbnQubmFtZSA9PT0gJ2NoYW5nZScgKSB7XG5cdFx0XHRcdHRoaXMuY2hhbmdlLmVtaXQoIGV2ZW50ICk7XG5cdFx0XHR9IGVsc2UgaWYgKCBldmVudC5uYW1lID09PSAnZGF0YVJlYWR5JyApIHtcblx0XHRcdFx0dGhpcy5kYXRhUmVhZHkuZW1pdCggZXZlbnQgKTtcblx0XHRcdH1cblxuXHRcdFx0aWYgKCBuZXdEYXRhID09PSB0aGlzLmRhdGEgKSB7XG5cdFx0XHRcdHJldHVybjtcblx0XHRcdH1cblxuXHRcdFx0dGhpcy5fZGF0YSA9IG5ld0RhdGE7XG5cdFx0XHR0aGlzLmRhdGFDaGFuZ2UuZW1pdCggbmV3RGF0YSApO1xuXG5cdFx0XHRpZiAoIHRoaXMub25DaGFuZ2UgKSB7XG5cdFx0XHRcdHRoaXMub25DaGFuZ2UoIG5ld0RhdGEgKTtcblx0XHRcdH1cblx0XHR9ICk7XG5cdH1cblxufVxuIl19 \ No newline at end of file diff --git a/dist/esm2020/ckeditor.mjs b/dist/esm2020/ckeditor.mjs deleted file mode 100644 index 9e60a2a9..00000000 --- a/dist/esm2020/ckeditor.mjs +++ /dev/null @@ -1,6 +0,0 @@ -/** - * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. - * For licensing, see LICENSE.md. - */ -export {}; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2tlZGl0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY2tlZGl0b3IvY2tlZGl0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7OztHQUdHIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZSBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyMywgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZC5cbiAqL1xuXG4vKipcbiAqIEJhc2ljIHR5cGluZ3MgZm9yIHRoZSBDS0VkaXRvcjQgZWxlbWVudHMuXG4gKi9cbmV4cG9ydCBuYW1lc3BhY2UgQ0tFZGl0b3I0IHtcblx0LyoqXG5cdCAqIFRoZSBDS0VkaXRvcjQgZWRpdG9yIGNvbnN0cnVjdG9yLlxuXHQgKi9cblx0ZXhwb3J0IGludGVyZmFjZSBDb25maWcge1xuXHRcdFsga2V5OiBzdHJpbmcgXTogYW55O1xuXHR9XG5cblx0LyoqXG5cdCAqIFRoZSBDS0VkaXRvcjQgZWRpdG9yLlxuXHQgKi9cblx0ZXhwb3J0IGludGVyZmFjZSBFZGl0b3Ige1xuXHRcdFsga2V5OiBzdHJpbmcgXTogYW55O1xuXHR9XG5cblx0LyoqXG5cdCAqIFRoZSBDS0VkaXRvcjQgZWRpdG9yIGludGVyZmFjZSB0eXBlLlxuXHQgKiBTZWUgaHR0cHM6Ly9ja2VkaXRvci5jb20vZG9jcy9ja2VkaXRvcjQvbGF0ZXN0L2d1aWRlL2Rldl91aXR5cGVzLmh0bWxcblx0ICogdG8gbGVhcm4gbW9yZS5cblx0ICovXG5cdGV4cG9ydCBjb25zdCBlbnVtIEVkaXRvclR5cGUge1xuXHRcdElOTElORSA9ICdpbmxpbmUnLFxuXHRcdENMQVNTSUMgPSAnY2xhc3NpYydcblx0fVxuXG5cdC8qKlxuXHQgKiBUaGUgZXZlbnQgb2JqZWN0IHBhc3NlZCB0byBDS0VkaXRvcjQgZXZlbnQgY2FsbGJhY2tzLlxuXHQgKlxuXHQgKiBTZWUgaHR0cHM6Ly9ja2VkaXRvci5jb20vZG9jcy9ja2VkaXRvcjQvbGF0ZXN0L2FwaS9DS0VESVRPUl9ldmVudEluZm8uaHRtbFxuXHQgKiB0byBsZWFybiBtb3JlLlxuXHQgKi9cblx0ZXhwb3J0IGludGVyZmFjZSBFdmVudEluZm8ge1xuXHRcdHJlYWRvbmx5IG5hbWU6IHN0cmluZztcblx0XHRyZWFkb25seSBlZGl0b3I6IGFueTtcblx0XHRyZWFkb25seSBkYXRhOiB7XG5cdFx0XHRbIGtleTogc3RyaW5nIF06IGFueTtcblx0XHR9O1xuXHRcdHJlYWRvbmx5IGxpc3RlbmVyRGF0YToge1xuXHRcdFx0WyBrZXk6IHN0cmluZyBdOiBhbnk7XG5cdFx0fTtcblx0XHRyZWFkb25seSBzZW5kZXI6IHtcblx0XHRcdFsga2V5OiBzdHJpbmcgXTogYW55O1xuXHRcdH07XG5cblx0XHRjYW5jZWwoKTogdm9pZDtcblxuXHRcdHJlbW92ZUxpc3RlbmVyKCk6IHZvaWQ7XG5cblx0XHRzdG9wKCk6IHZvaWQ7XG5cdH1cbn1cbiJdfQ== \ No newline at end of file diff --git a/dist/esm2020/ckeditor.module.mjs b/dist/esm2020/ckeditor.module.mjs deleted file mode 100644 index 2f8f2bf3..00000000 --- a/dist/esm2020/ckeditor.module.mjs +++ /dev/null @@ -1,25 +0,0 @@ -/** - * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. - * For licensing, see LICENSE.md. - */ -import { NgModule } from '@angular/core'; -import { CommonModule } from '@angular/common'; -import { FormsModule } from '@angular/forms'; -import { CKEditorComponent } from './ckeditor.component'; -import * as i0 from "@angular/core"; -export class CKEditorModule { -} -CKEditorModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: CKEditorModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); -CKEditorModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: CKEditorModule, declarations: [CKEditorComponent], imports: [FormsModule, CommonModule], exports: [CKEditorComponent] }); -CKEditorModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: CKEditorModule, imports: [[FormsModule, CommonModule]] }); -i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: CKEditorModule, decorators: [{ - type: NgModule, - args: [{ - imports: [FormsModule, CommonModule], - declarations: [CKEditorComponent], - exports: [CKEditorComponent] - }] - }] }); -export * from './ckeditor'; -export { CKEditorComponent } from './ckeditor.component'; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2tlZGl0b3IubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NrZWRpdG9yL2NrZWRpdG9yLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0dBR0c7QUFFSCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7O0FBT3pELE1BQU0sT0FBTyxjQUFjOzsyR0FBZCxjQUFjOzRHQUFkLGNBQWMsaUJBSFYsaUJBQWlCLGFBRHRCLFdBQVcsRUFBRSxZQUFZLGFBRXpCLGlCQUFpQjs0R0FFaEIsY0FBYyxZQUpqQixDQUFFLFdBQVcsRUFBRSxZQUFZLENBQUU7MkZBSTFCLGNBQWM7a0JBTDFCLFFBQVE7bUJBQUU7b0JBQ1YsT0FBTyxFQUFFLENBQUUsV0FBVyxFQUFFLFlBQVksQ0FBRTtvQkFDdEMsWUFBWSxFQUFFLENBQUUsaUJBQWlCLENBQUU7b0JBQ25DLE9BQU8sRUFBRSxDQUFFLGlCQUFpQixDQUFFO2lCQUM5Qjs7QUFHRCxjQUFjLFlBQVksQ0FBQztBQUMzQixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2UgQ29weXJpZ2h0IChjKSAyMDAzLTIwMjMsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQuXG4gKi9cblxuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IENLRWRpdG9yQ29tcG9uZW50IH0gZnJvbSAnLi9ja2VkaXRvci5jb21wb25lbnQnO1xuXG5ATmdNb2R1bGUoIHtcblx0aW1wb3J0czogWyBGb3Jtc01vZHVsZSwgQ29tbW9uTW9kdWxlIF0sXG5cdGRlY2xhcmF0aW9uczogWyBDS0VkaXRvckNvbXBvbmVudCBdLFxuXHRleHBvcnRzOiBbIENLRWRpdG9yQ29tcG9uZW50IF1cbn0gKVxuZXhwb3J0IGNsYXNzIENLRWRpdG9yTW9kdWxlIHtcbn1cbmV4cG9ydCAqIGZyb20gJy4vY2tlZGl0b3InO1xuZXhwb3J0IHsgQ0tFZGl0b3JDb21wb25lbnQgfSBmcm9tICcuL2NrZWRpdG9yLmNvbXBvbmVudCc7XG4iXX0= \ No newline at end of file diff --git a/dist/esm2020/ckeditor4-angular.mjs b/dist/esm2020/ckeditor4-angular.mjs deleted file mode 100644 index fe7ee0ef..00000000 --- a/dist/esm2020/ckeditor4-angular.mjs +++ /dev/null @@ -1,5 +0,0 @@ -/** - * Generated bundle index. Do not edit. - */ -export * from './ckeditor.module'; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2tlZGl0b3I0LWFuZ3VsYXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY2tlZGl0b3IvY2tlZGl0b3I0LWFuZ3VsYXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLG1CQUFtQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2NrZWRpdG9yLm1vZHVsZSc7XG4iXX0= \ No newline at end of file diff --git a/dist/fesm2015/ckeditor4-angular.mjs b/dist/fesm2015/ckeditor4-angular.mjs deleted file mode 100644 index e95caef9..00000000 --- a/dist/fesm2015/ckeditor4-angular.mjs +++ /dev/null @@ -1,423 +0,0 @@ -import * as i0 from '@angular/core'; -import { EventEmitter, forwardRef, Component, Input, Output, NgModule } from '@angular/core'; -import { CommonModule } from '@angular/common'; -import { NG_VALUE_ACCESSOR, FormsModule } from '@angular/forms'; -import { getEditorNamespace } from 'ckeditor4-integrations-common'; - -/** - * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. - * For licensing, see LICENSE.md. - */ -class CKEditorComponent { - constructor(elementRef, ngZone) { - this.elementRef = elementRef; - this.ngZone = ngZone; - /** - * CKEditor 4 script url address. Script will be loaded only if CKEDITOR namespace is missing. - * - * Defaults to 'https://cdn.ckeditor.com/4.23.0-lts/standard-all/ckeditor.js' - */ - this.editorUrl = 'https://cdn.ckeditor.com/4.23.0-lts/standard-all/ckeditor.js'; - /** - * Tag name of the editor component. - * - * The default tag is `textarea`. - */ - this.tagName = 'textarea'; - /** - * The type of the editor interface. - * - * By default editor interface will be initialized as `classic` editor. - * You can also choose to create an editor with `inline` interface type instead. - * - * See https://ckeditor.com/docs/ckeditor4/latest/guide/dev_uitypes.html - * and https://ckeditor.com/docs/ckeditor4/latest/examples/fixedui.html - * to learn more. - */ - this.type = "classic" /* CLASSIC */; - /** - * Fired when the CKEDITOR https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR.html namespace - * is loaded. It only triggers once, no matter how many CKEditor 4 components are initialised. - * Can be used for convenient changes in the namespace, e.g. for adding external plugins. - */ - this.namespaceLoaded = new EventEmitter(); - /** - * Fires when the editor is ready. It corresponds with the `editor#instanceReady` - * https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editor.html#event-instanceReady - * event. - */ - this.ready = new EventEmitter(); - /** - * Fires when the editor data is loaded, e.g. after calling setData() - * https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editor.html#method-setData - * editor's method. It corresponds with the `editor#dataReady` - * https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editor.html#event-dataReady event. - */ - this.dataReady = new EventEmitter(); - /** - * Fires when the content of the editor has changed. It corresponds with the `editor#change` - * https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editor.html#event-change - * event. For performance reasons this event may be called even when data didn't really changed. - * Please note that this event will only be fired when `undo` plugin is loaded. If you need to - * listen for editor changes (e.g. for two-way data binding), use `dataChange` event instead. - */ - this.change = new EventEmitter(); - /** - * Fires when the content of the editor has changed. In contrast to `change` - only emits when - * data really changed thus can be successfully used with `[data]` and two way `[(data)]` binding. - * - * See more: https://angular.io/guide/template-syntax#two-way-binding--- - */ - this.dataChange = new EventEmitter(); - /** - * Fires when the native dragStart event occurs. It corresponds with the `editor#dragstart` - * https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editor.html#event-dragstart - * event. - */ - this.dragStart = new EventEmitter(); - /** - * Fires when the native dragEnd event occurs. It corresponds with the `editor#dragend` - * https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editor.html#event-dragend - * event. - */ - this.dragEnd = new EventEmitter(); - /** - * Fires when the native drop event occurs. It corresponds with the `editor#drop` - * https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editor.html#event-drop - * event. - */ - this.drop = new EventEmitter(); - /** - * Fires when the file loader response is received. It corresponds with the `editor#fileUploadResponse` - * https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editor.html#event-fileUploadResponse - * event. - */ - this.fileUploadResponse = new EventEmitter(); - /** - * Fires when the file loader should send XHR. It corresponds with the `editor#fileUploadRequest` - * https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editor.html#event-fileUploadRequest - * event. - */ - this.fileUploadRequest = new EventEmitter(); - /** - * Fires when the editing area of the editor is focused. It corresponds with the `editor#focus` - * https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editor.html#event-focus - * event. - */ - this.focus = new EventEmitter(); - /** - * Fires after the user initiated a paste action, but before the data is inserted. - * It corresponds with the `editor#paste` - * https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editor.html#event-paste - * event. - */ - this.paste = new EventEmitter(); - /** - * Fires after the `paste` event if content was modified. It corresponds with the `editor#afterPaste` - * https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editor.html#event-afterPaste - * event. - */ - this.afterPaste = new EventEmitter(); - /** - * Fires when the editing view of the editor is blurred. It corresponds with the `editor#blur` - * https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editor.html#event-blur - * event. - */ - this.blur = new EventEmitter(); - /** - * If the component is read–only before the editor instance is created, it remembers that state, - * so the editor can become read–only once it is ready. - */ - this._readOnly = null; - this._data = null; - this._destroyed = false; - } - /** - * Keeps track of the editor's data. - * - * It's also decorated as an input which is useful when not using the ngModel. - * - * See https://angular.io/api/forms/NgModel to learn more. - */ - set data(data) { - if (data === this._data) { - return; - } - if (this.instance) { - this.instance.setData(data); - // Data may be changed by ACF. - this._data = this.instance.getData(); - return; - } - this._data = data; - } - get data() { - return this._data; - } - /** - * When set to `true`, the editor becomes read-only. - * - * See https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editor.html#property-readOnly - * to learn more. - */ - set readOnly(isReadOnly) { - if (this.instance) { - this.instance.setReadOnly(isReadOnly); - return; - } - // Delay setting read-only state until editor initialization. - this._readOnly = isReadOnly; - } - get readOnly() { - if (this.instance) { - return this.instance.readOnly; - } - return this._readOnly; - } - ngAfterViewInit() { - getEditorNamespace(this.editorUrl, namespace => { - this.namespaceLoaded.emit(namespace); - }).then(() => { - // Check if component instance was destroyed before `ngAfterViewInit` call (#110). - // Here, `this.instance` is still not initialized and so additional flag is needed. - if (this._destroyed) { - return; - } - this.ngZone.runOutsideAngular(this.createEditor.bind(this)); - }).catch(window.console.error); - } - ngOnDestroy() { - this._destroyed = true; - this.ngZone.runOutsideAngular(() => { - if (this.instance) { - this.instance.destroy(); - this.instance = null; - } - }); - } - writeValue(value) { - this.data = value; - } - registerOnChange(callback) { - this.onChange = callback; - } - registerOnTouched(callback) { - this.onTouched = callback; - } - createEditor() { - var _a, _b; - const element = document.createElement(this.tagName); - this.elementRef.nativeElement.appendChild(element); - const userInstanceReadyCallback = (_b = (_a = this.config) === null || _a === void 0 ? void 0 : _a.on) === null || _b === void 0 ? void 0 : _b.instanceReady; - const defaultConfig = { - delayIfDetached: true - }; - const config = Object.assign(Object.assign({}, defaultConfig), this.config); - if (typeof config.on === 'undefined') { - config.on = {}; - } - config.on.instanceReady = evt => { - const editor = evt.editor; - this.instance = editor; - // Read only state may change during instance initialization. - this.readOnly = this._readOnly !== null ? this._readOnly : this.instance.readOnly; - this.subscribe(this.instance); - const undo = editor.undoManager; - if (this.data !== null) { - undo && undo.lock(); - editor.setData(this.data, { callback: () => { - // Locking undoManager prevents 'change' event. - // Trigger it manually to updated bound data. - if (this.data !== editor.getData()) { - undo ? editor.fire('change') : editor.fire('dataReady'); - } - undo && undo.unlock(); - this.ngZone.run(() => { - if (typeof userInstanceReadyCallback === 'function') { - userInstanceReadyCallback(evt); - } - this.ready.emit(evt); - }); - } }); - } - else { - this.ngZone.run(() => { - if (typeof userInstanceReadyCallback === 'function') { - userInstanceReadyCallback(evt); - } - this.ready.emit(evt); - }); - } - }; - if (this.type === "inline" /* INLINE */) { - CKEDITOR.inline(element, config); - } - else { - CKEDITOR.replace(element, config); - } - } - subscribe(editor) { - editor.on('focus', evt => { - this.ngZone.run(() => { - this.focus.emit(evt); - }); - }); - editor.on('paste', evt => { - this.ngZone.run(() => { - this.paste.emit(evt); - }); - }); - editor.on('afterPaste', evt => { - this.ngZone.run(() => { - this.afterPaste.emit(evt); - }); - }); - editor.on('dragend', evt => { - this.ngZone.run(() => { - this.dragEnd.emit(evt); - }); - }); - editor.on('dragstart', evt => { - this.ngZone.run(() => { - this.dragStart.emit(evt); - }); - }); - editor.on('drop', evt => { - this.ngZone.run(() => { - this.drop.emit(evt); - }); - }); - editor.on('fileUploadRequest', evt => { - this.ngZone.run(() => { - this.fileUploadRequest.emit(evt); - }); - }); - editor.on('fileUploadResponse', evt => { - this.ngZone.run(() => { - this.fileUploadResponse.emit(evt); - }); - }); - editor.on('blur', evt => { - this.ngZone.run(() => { - if (this.onTouched) { - this.onTouched(); - } - this.blur.emit(evt); - }); - }); - editor.on('dataReady', this.propagateChange, this); - if (this.instance.undoManager) { - editor.on('change', this.propagateChange, this); - } - // If 'undo' plugin is not loaded, listen to 'selectionCheck' event instead. (#54). - else { - editor.on('selectionCheck', this.propagateChange, this); - } - } - propagateChange(event) { - this.ngZone.run(() => { - const newData = this.instance.getData(); - if (event.name === 'change') { - this.change.emit(event); - } - else if (event.name === 'dataReady') { - this.dataReady.emit(event); - } - if (newData === this.data) { - return; - } - this._data = newData; - this.dataChange.emit(newData); - if (this.onChange) { - this.onChange(newData); - } - }); - } -} -CKEditorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: CKEditorComponent, deps: [{ token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); -CKEditorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: CKEditorComponent, selector: "ckeditor", inputs: { config: "config", editorUrl: "editorUrl", tagName: "tagName", type: "type", data: "data", readOnly: "readOnly" }, outputs: { namespaceLoaded: "namespaceLoaded", ready: "ready", dataReady: "dataReady", change: "change", dataChange: "dataChange", dragStart: "dragStart", dragEnd: "dragEnd", drop: "drop", fileUploadResponse: "fileUploadResponse", fileUploadRequest: "fileUploadRequest", focus: "focus", paste: "paste", afterPaste: "afterPaste", blur: "blur" }, providers: [ - { - provide: NG_VALUE_ACCESSOR, - useExisting: forwardRef(() => CKEditorComponent), - multi: true, - } - ], ngImport: i0, template: '', isInline: true }); -i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: CKEditorComponent, decorators: [{ - type: Component, - args: [{ - selector: 'ckeditor', - template: '', - providers: [ - { - provide: NG_VALUE_ACCESSOR, - useExisting: forwardRef(() => CKEditorComponent), - multi: true, - } - ] - }] - }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.NgZone }]; }, propDecorators: { config: [{ - type: Input - }], editorUrl: [{ - type: Input - }], tagName: [{ - type: Input - }], type: [{ - type: Input - }], data: [{ - type: Input - }], readOnly: [{ - type: Input - }], namespaceLoaded: [{ - type: Output - }], ready: [{ - type: Output - }], dataReady: [{ - type: Output - }], change: [{ - type: Output - }], dataChange: [{ - type: Output - }], dragStart: [{ - type: Output - }], dragEnd: [{ - type: Output - }], drop: [{ - type: Output - }], fileUploadResponse: [{ - type: Output - }], fileUploadRequest: [{ - type: Output - }], focus: [{ - type: Output - }], paste: [{ - type: Output - }], afterPaste: [{ - type: Output - }], blur: [{ - type: Output - }] } }); - -/** - * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. - * For licensing, see LICENSE.md. - */ -class CKEditorModule { -} -CKEditorModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: CKEditorModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); -CKEditorModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: CKEditorModule, declarations: [CKEditorComponent], imports: [FormsModule, CommonModule], exports: [CKEditorComponent] }); -CKEditorModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: CKEditorModule, imports: [[FormsModule, CommonModule]] }); -i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: CKEditorModule, decorators: [{ - type: NgModule, - args: [{ - imports: [FormsModule, CommonModule], - declarations: [CKEditorComponent], - exports: [CKEditorComponent] - }] - }] }); - -/** - * Generated bundle index. Do not edit. - */ - -export { CKEditorComponent, CKEditorModule }; -//# sourceMappingURL=ckeditor4-angular.mjs.map diff --git a/dist/fesm2015/ckeditor4-angular.mjs.map b/dist/fesm2015/ckeditor4-angular.mjs.map deleted file mode 100644 index 9ceffb66..00000000 --- a/dist/fesm2015/ckeditor4-angular.mjs.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"ckeditor4-angular.mjs","sources":["../../src/ckeditor/ckeditor.component.ts","../../src/ckeditor/ckeditor.module.ts","../../src/ckeditor/ckeditor4-angular.ts"],"sourcesContent":["/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md.\n */\n\nimport {\n\tComponent,\n\tNgZone,\n\tInput,\n\tOutput,\n\tEventEmitter,\n\tforwardRef,\n\tElementRef,\n\tAfterViewInit, OnDestroy\n} from '@angular/core';\n\nimport {\n\tControlValueAccessor,\n\tNG_VALUE_ACCESSOR\n} from '@angular/forms';\n\nimport { getEditorNamespace } from 'ckeditor4-integrations-common';\n\nimport { CKEditor4 } from './ckeditor';\n\ndeclare let CKEDITOR: any;\n\n@Component( {\n\tselector: 'ckeditor',\n\ttemplate: '',\n\n\tproviders: [\n\t\t{\n\t\t\tprovide: NG_VALUE_ACCESSOR,\n\t\t\tuseExisting: forwardRef( () => CKEditorComponent ),\n\t\t\tmulti: true,\n\t\t}\n\t]\n} )\nexport class CKEditorComponent implements AfterViewInit, OnDestroy, ControlValueAccessor {\n\t/**\n\t * The configuration of the editor.\n\t *\n\t * See https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_config.html\n\t * to learn more.\n\t */\n\t@Input() config?: CKEditor4.Config;\n\n\t/**\n\t * CKEditor 4 script url address. Script will be loaded only if CKEDITOR namespace is missing.\n\t *\n\t * Defaults to 'https://cdn.ckeditor.com/4.23.0-lts/standard-all/ckeditor.js'\n\t */\n\t@Input() editorUrl = 'https://cdn.ckeditor.com/4.23.0-lts/standard-all/ckeditor.js';\n\n\t/**\n\t * Tag name of the editor component.\n\t *\n\t * The default tag is `textarea`.\n\t */\n\t@Input() tagName = 'textarea';\n\n\t/**\n\t * The type of the editor interface.\n\t *\n\t * By default editor interface will be initialized as `classic` editor.\n\t * You can also choose to create an editor with `inline` interface type instead.\n\t *\n\t * See https://ckeditor.com/docs/ckeditor4/latest/guide/dev_uitypes.html\n\t * and https://ckeditor.com/docs/ckeditor4/latest/examples/fixedui.html\n\t * to learn more.\n\t */\n\t@Input() type: CKEditor4.EditorType = CKEditor4.EditorType.CLASSIC;\n\n\t/**\n\t * Keeps track of the editor's data.\n\t *\n\t * It's also decorated as an input which is useful when not using the ngModel.\n\t *\n\t * See https://angular.io/api/forms/NgModel to learn more.\n\t */\n\t@Input() set data( data: string ) {\n\t\tif ( data === this._data ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( this.instance ) {\n\t\t\tthis.instance.setData( data );\n\t\t\t// Data may be changed by ACF.\n\t\t\tthis._data = this.instance.getData();\n\t\t\treturn;\n\t\t}\n\n\t\tthis._data = data;\n\t}\n\n\tget data(): string {\n\t\treturn this._data;\n\t}\n\n\t/**\n\t * When set to `true`, the editor becomes read-only.\n\t *\n\t * See https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editor.html#property-readOnly\n\t * to learn more.\n\t */\n\t@Input() set readOnly( isReadOnly: boolean ) {\n\t\tif ( this.instance ) {\n\t\t\tthis.instance.setReadOnly( isReadOnly );\n\t\t\treturn;\n\t\t}\n\n\t\t// Delay setting read-only state until editor initialization.\n\t\tthis._readOnly = isReadOnly;\n\t}\n\n\tget readOnly(): boolean {\n\t\tif ( this.instance ) {\n\t\t\treturn this.instance.readOnly;\n\t\t}\n\n\t\treturn this._readOnly;\n\t}\n\n\t/**\n\t * Fired when the CKEDITOR https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR.html namespace\n\t * is loaded. It only triggers once, no matter how many CKEditor 4 components are initialised.\n\t * Can be used for convenient changes in the namespace, e.g. for adding external plugins.\n\t */\n\t@Output() namespaceLoaded = new EventEmitter();\n\n\t/**\n\t * Fires when the editor is ready. It corresponds with the `editor#instanceReady`\n\t * https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editor.html#event-instanceReady\n\t * event.\n\t */\n\t@Output() ready = new EventEmitter();\n\n\t/**\n\t * Fires when the editor data is loaded, e.g. after calling setData()\n\t * https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editor.html#method-setData\n\t * editor's method. It corresponds with the `editor#dataReady`\n\t * https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editor.html#event-dataReady event.\n\t */\n\t@Output() dataReady = new EventEmitter();\n\n\t/**\n\t * Fires when the content of the editor has changed. It corresponds with the `editor#change`\n\t * https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editor.html#event-change\n\t * event. For performance reasons this event may be called even when data didn't really changed.\n\t * Please note that this event will only be fired when `undo` plugin is loaded. If you need to\n\t * listen for editor changes (e.g. for two-way data binding), use `dataChange` event instead.\n\t */\n\t@Output() change = new EventEmitter();\n\n\t/**\n\t * Fires when the content of the editor has changed. In contrast to `change` - only emits when\n\t * data really changed thus can be successfully used with `[data]` and two way `[(data)]` binding.\n\t *\n\t * See more: https://angular.io/guide/template-syntax#two-way-binding---\n\t */\n\t@Output() dataChange = new EventEmitter();\n\n\t/**\n\t * Fires when the native dragStart event occurs. It corresponds with the `editor#dragstart`\n\t * https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editor.html#event-dragstart\n\t * event.\n\t */\n\t@Output() dragStart = new EventEmitter();\n\n\t/**\n\t * Fires when the native dragEnd event occurs. It corresponds with the `editor#dragend`\n\t * https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editor.html#event-dragend\n\t * event.\n\t */\n\t@Output() dragEnd = new EventEmitter();\n\n\t/**\n\t * Fires when the native drop event occurs. It corresponds with the `editor#drop`\n\t * https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editor.html#event-drop\n\t * event.\n\t */\n\t@Output() drop = new EventEmitter();\n\n\t/**\n\t * Fires when the file loader response is received. It corresponds with the `editor#fileUploadResponse`\n\t * https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editor.html#event-fileUploadResponse\n\t * event.\n\t */\n\t@Output() fileUploadResponse = new EventEmitter();\n\n\t/**\n\t * Fires when the file loader should send XHR. It corresponds with the `editor#fileUploadRequest`\n\t * https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editor.html#event-fileUploadRequest\n\t * event.\n\t */\n\t@Output() fileUploadRequest = new EventEmitter();\n\n\t/**\n\t * Fires when the editing area of the editor is focused. It corresponds with the `editor#focus`\n\t * https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editor.html#event-focus\n\t * event.\n\t */\n\t@Output() focus = new EventEmitter();\n\n\t/**\n\t * Fires after the user initiated a paste action, but before the data is inserted.\n\t * It corresponds with the `editor#paste`\n\t * https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editor.html#event-paste\n\t * event.\n\t */\n\t@Output() paste = new EventEmitter();\n\n\t/**\n\t * Fires after the `paste` event if content was modified. It corresponds with the `editor#afterPaste`\n\t * https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editor.html#event-afterPaste\n\t * event.\n\t */\n\t@Output() afterPaste = new EventEmitter();\n\n\t/**\n\t * Fires when the editing view of the editor is blurred. It corresponds with the `editor#blur`\n\t * https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editor.html#event-blur\n\t * event.\n\t */\n\t@Output() blur = new EventEmitter();\n\n\t/**\n\t * A callback executed when the content of the editor changes. Part of the\n\t * `ControlValueAccessor` (https://angular.io/api/forms/ControlValueAccessor) interface.\n\t *\n\t * Note: Unset unless the component uses the `ngModel`.\n\t */\n\tonChange?: ( data: string ) => void;\n\n\t/**\n\t * A callback executed when the editor has been blurred. Part of the\n\t * `ControlValueAccessor` (https://angular.io/api/forms/ControlValueAccessor) interface.\n\t *\n\t * Note: Unset unless the component uses the `ngModel`.\n\t */\n\tonTouched?: () => void;\n\n\t/**\n\t * The instance of the editor created by this component.\n\t */\n\tinstance: any;\n\n\t/**\n\t * If the component is read–only before the editor instance is created, it remembers that state,\n\t * so the editor can become read–only once it is ready.\n\t */\n\tprivate _readOnly: boolean = null;\n\n\tprivate _data: string = null;\n\n\tprivate _destroyed: boolean = false;\n\n\tconstructor( private elementRef: ElementRef, private ngZone: NgZone ) {}\n\n\tngAfterViewInit(): void {\n\t\tgetEditorNamespace( this.editorUrl, namespace => {\n\t\t\tthis.namespaceLoaded.emit( namespace );\n\t\t} ).then( () => {\n\t\t\t// Check if component instance was destroyed before `ngAfterViewInit` call (#110).\n\t\t\t// Here, `this.instance` is still not initialized and so additional flag is needed.\n\t\t\tif ( this._destroyed ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis.ngZone.runOutsideAngular( this.createEditor.bind( this ) );\n\t\t} ).catch( window.console.error );\n\t}\n\n\tngOnDestroy(): void {\n\t\tthis._destroyed = true;\n\n\t\tthis.ngZone.runOutsideAngular( () => {\n\t\t\tif ( this.instance ) {\n\t\t\t\tthis.instance.destroy();\n\t\t\t\tthis.instance = null;\n\t\t\t}\n\t\t} );\n\t}\n\n\twriteValue( value: string ): void {\n\t\tthis.data = value;\n\t}\n\n\tregisterOnChange( callback: ( data: string ) => void ): void {\n\t\tthis.onChange = callback;\n\t}\n\n\tregisterOnTouched( callback: () => void ): void {\n\t\tthis.onTouched = callback;\n\t}\n\n\tprivate createEditor(): void {\n\t\tconst element = document.createElement( this.tagName );\n\t\tthis.elementRef.nativeElement.appendChild( element );\n\n\t\tconst userInstanceReadyCallback = this.config?.on?.instanceReady;\n\t\tconst defaultConfig: Partial = {\n\t\t\tdelayIfDetached: true\n\t\t};\n\t\tconst config: Partial = { ...defaultConfig, ...this.config };\n\n\t\tif ( typeof config.on === 'undefined' ) {\n\t\t\tconfig.on = {};\n\t\t}\n\n\t\tconfig.on.instanceReady = evt => {\n\t\t\tconst editor = evt.editor;\n\n\t\t\tthis.instance = editor;\n\n\t\t\t// Read only state may change during instance initialization.\n\t\t\tthis.readOnly = this._readOnly !== null ? this._readOnly : this.instance.readOnly;\n\n\t\t\tthis.subscribe( this.instance );\n\n\t\t\tconst undo = editor.undoManager;\n\n\t\t\tif ( this.data !== null ) {\n\t\t\t\tundo && undo.lock();\n\n\t\t\t\teditor.setData( this.data, { callback: () => {\n\t\t\t\t\t// Locking undoManager prevents 'change' event.\n\t\t\t\t\t// Trigger it manually to updated bound data.\n\t\t\t\t\tif ( this.data !== editor.getData() ) {\n\t\t\t\t\t\tundo ? editor.fire( 'change' ) : editor.fire( 'dataReady' );\n\t\t\t\t\t}\n\t\t\t\t\tundo && undo.unlock();\n\n\t\t\t\t\tthis.ngZone.run( () => {\n\t\t\t\t\t\tif ( typeof userInstanceReadyCallback === 'function' ) {\n\t\t\t\t\t\t\tuserInstanceReadyCallback( evt );\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tthis.ready.emit( evt );\n\t\t\t\t\t} );\n\t\t\t\t} } );\n\t\t\t} else {\n\t\t\t\tthis.ngZone.run( () => {\n\t\t\t\t\tif ( typeof userInstanceReadyCallback === 'function' ) {\n\t\t\t\t\t\tuserInstanceReadyCallback( evt );\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.ready.emit( evt );\n\t\t\t\t} );\n\t\t\t}\n\t\t}\n\n\t\tif ( this.type === CKEditor4.EditorType.INLINE ) {\n\t\t\tCKEDITOR.inline( element, config );\n\t\t} else {\n\t\t\tCKEDITOR.replace( element, config );\n\t\t}\n\t}\n\n\tprivate subscribe( editor: any ): void {\n\t\teditor.on( 'focus', evt => {\n\t\t\tthis.ngZone.run( () => {\n\t\t\t\tthis.focus.emit( evt );\n\t\t\t} );\n\t\t} );\n\n\t\teditor.on( 'paste', evt => {\n\t\t\tthis.ngZone.run( () => {\n\t\t\t\tthis.paste.emit( evt );\n\t\t\t} );\n\t\t} );\n\n\t\teditor.on( 'afterPaste', evt => {\n\t\t\tthis.ngZone.run( () => {\n\t\t\t\tthis.afterPaste.emit( evt );\n\t\t\t} );\n\t\t} );\n\n\t\teditor.on( 'dragend', evt => {\n\t\t\tthis.ngZone.run( () => {\n\t\t\t\tthis.dragEnd.emit( evt );\n\t\t\t} );\n\t\t});\n\n\t\teditor.on( 'dragstart', evt => {\n\t\t\tthis.ngZone.run( () => {\n\t\t\t\tthis.dragStart.emit( evt );\n\t\t\t} );\n\t\t} );\n\n\t\teditor.on( 'drop', evt => {\n\t\t\tthis.ngZone.run( () => {\n\t\t\t\tthis.drop.emit( evt );\n\t\t\t} );\n\t\t} );\n\n\t\teditor.on( 'fileUploadRequest', evt => {\n\t\t\tthis.ngZone.run( () => {\n\t\t\t\tthis.fileUploadRequest.emit(evt);\n\t\t\t} );\n\t\t} );\n\n\t\teditor.on( 'fileUploadResponse', evt => {\n\t\t\tthis.ngZone.run( () => {\n\t\t\t\tthis.fileUploadResponse.emit(evt);\n\t\t\t} );\n\t\t} );\n\n\t\teditor.on( 'blur', evt => {\n\t\t\tthis.ngZone.run( () => {\n\t\t\t\tif ( this.onTouched ) {\n\t\t\t\t\tthis.onTouched();\n\t\t\t\t}\n\n\t\t\t\tthis.blur.emit( evt );\n\t\t\t} );\n\t\t} );\n\n\t\teditor.on( 'dataReady', this.propagateChange, this );\n\n\t\tif ( this.instance.undoManager ) {\n\t\t\teditor.on( 'change', this.propagateChange, this );\n\t\t}\n\t\t// If 'undo' plugin is not loaded, listen to 'selectionCheck' event instead. (#54).\n\t\telse {\n\t\t\teditor.on( 'selectionCheck', this.propagateChange, this );\n\t\t}\n\t}\n\n\tprivate propagateChange( event: any ): void {\n\t\tthis.ngZone.run( () => {\n\t\t\tconst newData = this.instance.getData();\n\n\t\t\tif ( event.name === 'change' ) {\n\t\t\t\tthis.change.emit( event );\n\t\t\t} else if ( event.name === 'dataReady' ) {\n\t\t\t\tthis.dataReady.emit( event );\n\t\t\t}\n\n\t\t\tif ( newData === this.data ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis._data = newData;\n\t\t\tthis.dataChange.emit( newData );\n\n\t\t\tif ( this.onChange ) {\n\t\t\t\tthis.onChange( newData );\n\t\t\t}\n\t\t} );\n\t}\n\n}\n","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md.\n */\n\nimport { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { CKEditorComponent } from './ckeditor.component';\n\n@NgModule( {\n\timports: [ FormsModule, CommonModule ],\n\tdeclarations: [ CKEditorComponent ],\n\texports: [ CKEditorComponent ]\n} )\nexport class CKEditorModule {\n}\nexport * from './ckeditor';\nexport { CKEditorComponent } from './ckeditor.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './ckeditor.module';\n"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/fesm2020/ckeditor4-angular.mjs b/dist/fesm2020/ckeditor4-angular.mjs deleted file mode 100644 index 3df99751..00000000 --- a/dist/fesm2020/ckeditor4-angular.mjs +++ /dev/null @@ -1,427 +0,0 @@ -import * as i0 from '@angular/core'; -import { EventEmitter, forwardRef, Component, Input, Output, NgModule } from '@angular/core'; -import { CommonModule } from '@angular/common'; -import { NG_VALUE_ACCESSOR, FormsModule } from '@angular/forms'; -import { getEditorNamespace } from 'ckeditor4-integrations-common'; - -/** - * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved. - * For licensing, see LICENSE.md. - */ -class CKEditorComponent { - constructor(elementRef, ngZone) { - this.elementRef = elementRef; - this.ngZone = ngZone; - /** - * CKEditor 4 script url address. Script will be loaded only if CKEDITOR namespace is missing. - * - * Defaults to 'https://cdn.ckeditor.com/4.23.0-lts/standard-all/ckeditor.js' - */ - this.editorUrl = 'https://cdn.ckeditor.com/4.23.0-lts/standard-all/ckeditor.js'; - /** - * Tag name of the editor component. - * - * The default tag is `textarea`. - */ - this.tagName = 'textarea'; - /** - * The type of the editor interface. - * - * By default editor interface will be initialized as `classic` editor. - * You can also choose to create an editor with `inline` interface type instead. - * - * See https://ckeditor.com/docs/ckeditor4/latest/guide/dev_uitypes.html - * and https://ckeditor.com/docs/ckeditor4/latest/examples/fixedui.html - * to learn more. - */ - this.type = "classic" /* CLASSIC */; - /** - * Fired when the CKEDITOR https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR.html namespace - * is loaded. It only triggers once, no matter how many CKEditor 4 components are initialised. - * Can be used for convenient changes in the namespace, e.g. for adding external plugins. - */ - this.namespaceLoaded = new EventEmitter(); - /** - * Fires when the editor is ready. It corresponds with the `editor#instanceReady` - * https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editor.html#event-instanceReady - * event. - */ - this.ready = new EventEmitter(); - /** - * Fires when the editor data is loaded, e.g. after calling setData() - * https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editor.html#method-setData - * editor's method. It corresponds with the `editor#dataReady` - * https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editor.html#event-dataReady event. - */ - this.dataReady = new EventEmitter(); - /** - * Fires when the content of the editor has changed. It corresponds with the `editor#change` - * https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editor.html#event-change - * event. For performance reasons this event may be called even when data didn't really changed. - * Please note that this event will only be fired when `undo` plugin is loaded. If you need to - * listen for editor changes (e.g. for two-way data binding), use `dataChange` event instead. - */ - this.change = new EventEmitter(); - /** - * Fires when the content of the editor has changed. In contrast to `change` - only emits when - * data really changed thus can be successfully used with `[data]` and two way `[(data)]` binding. - * - * See more: https://angular.io/guide/template-syntax#two-way-binding--- - */ - this.dataChange = new EventEmitter(); - /** - * Fires when the native dragStart event occurs. It corresponds with the `editor#dragstart` - * https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editor.html#event-dragstart - * event. - */ - this.dragStart = new EventEmitter(); - /** - * Fires when the native dragEnd event occurs. It corresponds with the `editor#dragend` - * https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editor.html#event-dragend - * event. - */ - this.dragEnd = new EventEmitter(); - /** - * Fires when the native drop event occurs. It corresponds with the `editor#drop` - * https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editor.html#event-drop - * event. - */ - this.drop = new EventEmitter(); - /** - * Fires when the file loader response is received. It corresponds with the `editor#fileUploadResponse` - * https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editor.html#event-fileUploadResponse - * event. - */ - this.fileUploadResponse = new EventEmitter(); - /** - * Fires when the file loader should send XHR. It corresponds with the `editor#fileUploadRequest` - * https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editor.html#event-fileUploadRequest - * event. - */ - this.fileUploadRequest = new EventEmitter(); - /** - * Fires when the editing area of the editor is focused. It corresponds with the `editor#focus` - * https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editor.html#event-focus - * event. - */ - this.focus = new EventEmitter(); - /** - * Fires after the user initiated a paste action, but before the data is inserted. - * It corresponds with the `editor#paste` - * https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editor.html#event-paste - * event. - */ - this.paste = new EventEmitter(); - /** - * Fires after the `paste` event if content was modified. It corresponds with the `editor#afterPaste` - * https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editor.html#event-afterPaste - * event. - */ - this.afterPaste = new EventEmitter(); - /** - * Fires when the editing view of the editor is blurred. It corresponds with the `editor#blur` - * https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editor.html#event-blur - * event. - */ - this.blur = new EventEmitter(); - /** - * If the component is read–only before the editor instance is created, it remembers that state, - * so the editor can become read–only once it is ready. - */ - this._readOnly = null; - this._data = null; - this._destroyed = false; - } - /** - * Keeps track of the editor's data. - * - * It's also decorated as an input which is useful when not using the ngModel. - * - * See https://angular.io/api/forms/NgModel to learn more. - */ - set data(data) { - if (data === this._data) { - return; - } - if (this.instance) { - this.instance.setData(data); - // Data may be changed by ACF. - this._data = this.instance.getData(); - return; - } - this._data = data; - } - get data() { - return this._data; - } - /** - * When set to `true`, the editor becomes read-only. - * - * See https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editor.html#property-readOnly - * to learn more. - */ - set readOnly(isReadOnly) { - if (this.instance) { - this.instance.setReadOnly(isReadOnly); - return; - } - // Delay setting read-only state until editor initialization. - this._readOnly = isReadOnly; - } - get readOnly() { - if (this.instance) { - return this.instance.readOnly; - } - return this._readOnly; - } - ngAfterViewInit() { - getEditorNamespace(this.editorUrl, namespace => { - this.namespaceLoaded.emit(namespace); - }).then(() => { - // Check if component instance was destroyed before `ngAfterViewInit` call (#110). - // Here, `this.instance` is still not initialized and so additional flag is needed. - if (this._destroyed) { - return; - } - this.ngZone.runOutsideAngular(this.createEditor.bind(this)); - }).catch(window.console.error); - } - ngOnDestroy() { - this._destroyed = true; - this.ngZone.runOutsideAngular(() => { - if (this.instance) { - this.instance.destroy(); - this.instance = null; - } - }); - } - writeValue(value) { - this.data = value; - } - registerOnChange(callback) { - this.onChange = callback; - } - registerOnTouched(callback) { - this.onTouched = callback; - } - createEditor() { - const element = document.createElement(this.tagName); - this.elementRef.nativeElement.appendChild(element); - const userInstanceReadyCallback = this.config?.on?.instanceReady; - const defaultConfig = { - delayIfDetached: true - }; - const config = { ...defaultConfig, ...this.config }; - if (typeof config.on === 'undefined') { - config.on = {}; - } - config.on.instanceReady = evt => { - const editor = evt.editor; - this.instance = editor; - // Read only state may change during instance initialization. - this.readOnly = this._readOnly !== null ? this._readOnly : this.instance.readOnly; - this.subscribe(this.instance); - const undo = editor.undoManager; - if (this.data !== null) { - undo && undo.lock(); - editor.setData(this.data, { callback: () => { - // Locking undoManager prevents 'change' event. - // Trigger it manually to updated bound data. - if (this.data !== editor.getData()) { - undo ? editor.fire('change') : editor.fire('dataReady'); - } - undo && undo.unlock(); - this.ngZone.run(() => { - if (typeof userInstanceReadyCallback === 'function') { - userInstanceReadyCallback(evt); - } - this.ready.emit(evt); - }); - } }); - } - else { - this.ngZone.run(() => { - if (typeof userInstanceReadyCallback === 'function') { - userInstanceReadyCallback(evt); - } - this.ready.emit(evt); - }); - } - }; - if (this.type === "inline" /* INLINE */) { - CKEDITOR.inline(element, config); - } - else { - CKEDITOR.replace(element, config); - } - } - subscribe(editor) { - editor.on('focus', evt => { - this.ngZone.run(() => { - this.focus.emit(evt); - }); - }); - editor.on('paste', evt => { - this.ngZone.run(() => { - this.paste.emit(evt); - }); - }); - editor.on('afterPaste', evt => { - this.ngZone.run(() => { - this.afterPaste.emit(evt); - }); - }); - editor.on('dragend', evt => { - this.ngZone.run(() => { - this.dragEnd.emit(evt); - }); - }); - editor.on('dragstart', evt => { - this.ngZone.run(() => { - this.dragStart.emit(evt); - }); - }); - editor.on('drop', evt => { - this.ngZone.run(() => { - this.drop.emit(evt); - }); - }); - editor.on('fileUploadRequest', evt => { - this.ngZone.run(() => { - this.fileUploadRequest.emit(evt); - }); - }); - editor.on('fileUploadResponse', evt => { - this.ngZone.run(() => { - this.fileUploadResponse.emit(evt); - }); - }); - editor.on('blur', evt => { - this.ngZone.run(() => { - if (this.onTouched) { - this.onTouched(); - } - this.blur.emit(evt); - }); - }); - editor.on('dataReady', this.propagateChange, this); - if (this.instance.undoManager) { - editor.on('change', this.propagateChange, this); - } - // If 'undo' plugin is not loaded, listen to 'selectionCheck' event instead. (#54). - else { - editor.on('selectionCheck', this.propagateChange, this); - } - } - propagateChange(event) { - this.ngZone.run(() => { - const newData = this.instance.getData(); - if (event.name === 'change') { - this.change.emit(event); - } - else if (event.name === 'dataReady') { - this.dataReady.emit(event); - } - if (newData === this.data) { - return; - } - this._data = newData; - this.dataChange.emit(newData); - if (this.onChange) { - this.onChange(newData); - } - }); - } -} -CKEditorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: CKEditorComponent, deps: [{ token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); -CKEditorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: CKEditorComponent, selector: "ckeditor", inputs: { config: "config", editorUrl: "editorUrl", tagName: "tagName", type: "type", data: "data", readOnly: "readOnly" }, outputs: { namespaceLoaded: "namespaceLoaded", ready: "ready", dataReady: "dataReady", change: "change", dataChange: "dataChange", dragStart: "dragStart", dragEnd: "dragEnd", drop: "drop", fileUploadResponse: "fileUploadResponse", fileUploadRequest: "fileUploadRequest", focus: "focus", paste: "paste", afterPaste: "afterPaste", blur: "blur" }, providers: [ - { - provide: NG_VALUE_ACCESSOR, - useExisting: forwardRef(() => CKEditorComponent), - multi: true, - } - ], ngImport: i0, template: '', isInline: true }); -i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: CKEditorComponent, decorators: [{ - type: Component, - args: [{ - selector: 'ckeditor', - template: '', - providers: [ - { - provide: NG_VALUE_ACCESSOR, - useExisting: forwardRef(() => CKEditorComponent), - multi: true, - } - ] - }] - }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.NgZone }]; }, propDecorators: { config: [{ - type: Input - }], editorUrl: [{ - type: Input - }], tagName: [{ - type: Input - }], type: [{ - type: Input - }], data: [{ - type: Input - }], readOnly: [{ - type: Input - }], namespaceLoaded: [{ - type: Output - }], ready: [{ - type: Output - }], dataReady: [{ - type: Output - }], change: [{ - type: Output - }], dataChange: [{ - type: Output - }], dragStart: [{ - type: Output - }], dragEnd: [{ - type: Output - }], drop: [{ - type: Output - }], fileUploadResponse: [{ - type: Output - }], fileUploadRequest: [{ - type: Output - }], focus: [{ - type: Output - }], paste: [{ - type: Output - }], afterPaste: [{ - type: Output - }], blur: [{ - type: Output - }] } }); - -/** - * @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. - */ -class CKEditorModule { -} -CKEditorModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: CKEditorModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); -CKEditorModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: CKEditorModule, declarations: [CKEditorComponent], imports: [FormsModule, CommonModule], exports: [CKEditorComponent] }); -CKEditorModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: CKEditorModule, imports: [[FormsModule, CommonModule]] }); -i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: CKEditorModule, decorators: [{ - type: NgModule, - args: [{ - imports: [FormsModule, CommonModule], - declarations: [CKEditorComponent], - exports: [CKEditorComponent] - }] - }] }); - -/** - * Generated bundle index. Do not edit. - */ - -export { CKEditorComponent, CKEditorModule }; -//# sourceMappingURL=ckeditor4-angular.mjs.map diff --git a/dist/fesm2020/ckeditor4-angular.mjs.map b/dist/fesm2020/ckeditor4-angular.mjs.map deleted file mode 100644 index 0cd44a43..00000000 --- a/dist/fesm2020/ckeditor4-angular.mjs.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"ckeditor4-angular.mjs","sources":["../../src/ckeditor/ckeditor.component.ts","../../src/ckeditor/ckeditor.ts","../../src/ckeditor/ckeditor.module.ts","../../src/ckeditor/ckeditor4-angular.ts"],"sourcesContent":["/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md.\n */\n\nimport {\n\tComponent,\n\tNgZone,\n\tInput,\n\tOutput,\n\tEventEmitter,\n\tforwardRef,\n\tElementRef,\n\tAfterViewInit, OnDestroy\n} from '@angular/core';\n\nimport {\n\tControlValueAccessor,\n\tNG_VALUE_ACCESSOR\n} from '@angular/forms';\n\nimport { getEditorNamespace } from 'ckeditor4-integrations-common';\n\nimport { CKEditor4 } from './ckeditor';\n\ndeclare let CKEDITOR: any;\n\n@Component( {\n\tselector: 'ckeditor',\n\ttemplate: '',\n\n\tproviders: [\n\t\t{\n\t\t\tprovide: NG_VALUE_ACCESSOR,\n\t\t\tuseExisting: forwardRef( () => CKEditorComponent ),\n\t\t\tmulti: true,\n\t\t}\n\t]\n} )\nexport class CKEditorComponent implements AfterViewInit, OnDestroy, ControlValueAccessor {\n\t/**\n\t * The configuration of the editor.\n\t *\n\t * See https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_config.html\n\t * to learn more.\n\t */\n\t@Input() config?: CKEditor4.Config;\n\n\t/**\n\t * CKEditor 4 script url address. Script will be loaded only if CKEDITOR namespace is missing.\n\t *\n\t * Defaults to 'https://cdn.ckeditor.com/4.23.0-lts/standard-all/ckeditor.js'\n\t */\n\t@Input() editorUrl = 'https://cdn.ckeditor.com/4.23.0-lts/standard-all/ckeditor.js';\n\n\t/**\n\t * Tag name of the editor component.\n\t *\n\t * The default tag is `textarea`.\n\t */\n\t@Input() tagName = 'textarea';\n\n\t/**\n\t * The type of the editor interface.\n\t *\n\t * By default editor interface will be initialized as `classic` editor.\n\t * You can also choose to create an editor with `inline` interface type instead.\n\t *\n\t * See https://ckeditor.com/docs/ckeditor4/latest/guide/dev_uitypes.html\n\t * and https://ckeditor.com/docs/ckeditor4/latest/examples/fixedui.html\n\t * to learn more.\n\t */\n\t@Input() type: CKEditor4.EditorType = CKEditor4.EditorType.CLASSIC;\n\n\t/**\n\t * Keeps track of the editor's data.\n\t *\n\t * It's also decorated as an input which is useful when not using the ngModel.\n\t *\n\t * See https://angular.io/api/forms/NgModel to learn more.\n\t */\n\t@Input() set data( data: string ) {\n\t\tif ( data === this._data ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( this.instance ) {\n\t\t\tthis.instance.setData( data );\n\t\t\t// Data may be changed by ACF.\n\t\t\tthis._data = this.instance.getData();\n\t\t\treturn;\n\t\t}\n\n\t\tthis._data = data;\n\t}\n\n\tget data(): string {\n\t\treturn this._data;\n\t}\n\n\t/**\n\t * When set to `true`, the editor becomes read-only.\n\t *\n\t * See https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editor.html#property-readOnly\n\t * to learn more.\n\t */\n\t@Input() set readOnly( isReadOnly: boolean ) {\n\t\tif ( this.instance ) {\n\t\t\tthis.instance.setReadOnly( isReadOnly );\n\t\t\treturn;\n\t\t}\n\n\t\t// Delay setting read-only state until editor initialization.\n\t\tthis._readOnly = isReadOnly;\n\t}\n\n\tget readOnly(): boolean {\n\t\tif ( this.instance ) {\n\t\t\treturn this.instance.readOnly;\n\t\t}\n\n\t\treturn this._readOnly;\n\t}\n\n\t/**\n\t * Fired when the CKEDITOR https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR.html namespace\n\t * is loaded. It only triggers once, no matter how many CKEditor 4 components are initialised.\n\t * Can be used for convenient changes in the namespace, e.g. for adding external plugins.\n\t */\n\t@Output() namespaceLoaded = new EventEmitter();\n\n\t/**\n\t * Fires when the editor is ready. It corresponds with the `editor#instanceReady`\n\t * https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editor.html#event-instanceReady\n\t * event.\n\t */\n\t@Output() ready = new EventEmitter();\n\n\t/**\n\t * Fires when the editor data is loaded, e.g. after calling setData()\n\t * https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editor.html#method-setData\n\t * editor's method. It corresponds with the `editor#dataReady`\n\t * https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editor.html#event-dataReady event.\n\t */\n\t@Output() dataReady = new EventEmitter();\n\n\t/**\n\t * Fires when the content of the editor has changed. It corresponds with the `editor#change`\n\t * https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editor.html#event-change\n\t * event. For performance reasons this event may be called even when data didn't really changed.\n\t * Please note that this event will only be fired when `undo` plugin is loaded. If you need to\n\t * listen for editor changes (e.g. for two-way data binding), use `dataChange` event instead.\n\t */\n\t@Output() change = new EventEmitter();\n\n\t/**\n\t * Fires when the content of the editor has changed. In contrast to `change` - only emits when\n\t * data really changed thus can be successfully used with `[data]` and two way `[(data)]` binding.\n\t *\n\t * See more: https://angular.io/guide/template-syntax#two-way-binding---\n\t */\n\t@Output() dataChange = new EventEmitter();\n\n\t/**\n\t * Fires when the native dragStart event occurs. It corresponds with the `editor#dragstart`\n\t * https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editor.html#event-dragstart\n\t * event.\n\t */\n\t@Output() dragStart = new EventEmitter();\n\n\t/**\n\t * Fires when the native dragEnd event occurs. It corresponds with the `editor#dragend`\n\t * https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editor.html#event-dragend\n\t * event.\n\t */\n\t@Output() dragEnd = new EventEmitter();\n\n\t/**\n\t * Fires when the native drop event occurs. It corresponds with the `editor#drop`\n\t * https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editor.html#event-drop\n\t * event.\n\t */\n\t@Output() drop = new EventEmitter();\n\n\t/**\n\t * Fires when the file loader response is received. It corresponds with the `editor#fileUploadResponse`\n\t * https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editor.html#event-fileUploadResponse\n\t * event.\n\t */\n\t@Output() fileUploadResponse = new EventEmitter();\n\n\t/**\n\t * Fires when the file loader should send XHR. It corresponds with the `editor#fileUploadRequest`\n\t * https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editor.html#event-fileUploadRequest\n\t * event.\n\t */\n\t@Output() fileUploadRequest = new EventEmitter();\n\n\t/**\n\t * Fires when the editing area of the editor is focused. It corresponds with the `editor#focus`\n\t * https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editor.html#event-focus\n\t * event.\n\t */\n\t@Output() focus = new EventEmitter();\n\n\t/**\n\t * Fires after the user initiated a paste action, but before the data is inserted.\n\t * It corresponds with the `editor#paste`\n\t * https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editor.html#event-paste\n\t * event.\n\t */\n\t@Output() paste = new EventEmitter();\n\n\t/**\n\t * Fires after the `paste` event if content was modified. It corresponds with the `editor#afterPaste`\n\t * https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editor.html#event-afterPaste\n\t * event.\n\t */\n\t@Output() afterPaste = new EventEmitter();\n\n\t/**\n\t * Fires when the editing view of the editor is blurred. It corresponds with the `editor#blur`\n\t * https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_editor.html#event-blur\n\t * event.\n\t */\n\t@Output() blur = new EventEmitter();\n\n\t/**\n\t * A callback executed when the content of the editor changes. Part of the\n\t * `ControlValueAccessor` (https://angular.io/api/forms/ControlValueAccessor) interface.\n\t *\n\t * Note: Unset unless the component uses the `ngModel`.\n\t */\n\tonChange?: ( data: string ) => void;\n\n\t/**\n\t * A callback executed when the editor has been blurred. Part of the\n\t * `ControlValueAccessor` (https://angular.io/api/forms/ControlValueAccessor) interface.\n\t *\n\t * Note: Unset unless the component uses the `ngModel`.\n\t */\n\tonTouched?: () => void;\n\n\t/**\n\t * The instance of the editor created by this component.\n\t */\n\tinstance: any;\n\n\t/**\n\t * If the component is read–only before the editor instance is created, it remembers that state,\n\t * so the editor can become read–only once it is ready.\n\t */\n\tprivate _readOnly: boolean = null;\n\n\tprivate _data: string = null;\n\n\tprivate _destroyed: boolean = false;\n\n\tconstructor( private elementRef: ElementRef, private ngZone: NgZone ) {}\n\n\tngAfterViewInit(): void {\n\t\tgetEditorNamespace( this.editorUrl, namespace => {\n\t\t\tthis.namespaceLoaded.emit( namespace );\n\t\t} ).then( () => {\n\t\t\t// Check if component instance was destroyed before `ngAfterViewInit` call (#110).\n\t\t\t// Here, `this.instance` is still not initialized and so additional flag is needed.\n\t\t\tif ( this._destroyed ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis.ngZone.runOutsideAngular( this.createEditor.bind( this ) );\n\t\t} ).catch( window.console.error );\n\t}\n\n\tngOnDestroy(): void {\n\t\tthis._destroyed = true;\n\n\t\tthis.ngZone.runOutsideAngular( () => {\n\t\t\tif ( this.instance ) {\n\t\t\t\tthis.instance.destroy();\n\t\t\t\tthis.instance = null;\n\t\t\t}\n\t\t} );\n\t}\n\n\twriteValue( value: string ): void {\n\t\tthis.data = value;\n\t}\n\n\tregisterOnChange( callback: ( data: string ) => void ): void {\n\t\tthis.onChange = callback;\n\t}\n\n\tregisterOnTouched( callback: () => void ): void {\n\t\tthis.onTouched = callback;\n\t}\n\n\tprivate createEditor(): void {\n\t\tconst element = document.createElement( this.tagName );\n\t\tthis.elementRef.nativeElement.appendChild( element );\n\n\t\tconst userInstanceReadyCallback = this.config?.on?.instanceReady;\n\t\tconst defaultConfig: Partial = {\n\t\t\tdelayIfDetached: true\n\t\t};\n\t\tconst config: Partial = { ...defaultConfig, ...this.config };\n\n\t\tif ( typeof config.on === 'undefined' ) {\n\t\t\tconfig.on = {};\n\t\t}\n\n\t\tconfig.on.instanceReady = evt => {\n\t\t\tconst editor = evt.editor;\n\n\t\t\tthis.instance = editor;\n\n\t\t\t// Read only state may change during instance initialization.\n\t\t\tthis.readOnly = this._readOnly !== null ? this._readOnly : this.instance.readOnly;\n\n\t\t\tthis.subscribe( this.instance );\n\n\t\t\tconst undo = editor.undoManager;\n\n\t\t\tif ( this.data !== null ) {\n\t\t\t\tundo && undo.lock();\n\n\t\t\t\teditor.setData( this.data, { callback: () => {\n\t\t\t\t\t// Locking undoManager prevents 'change' event.\n\t\t\t\t\t// Trigger it manually to updated bound data.\n\t\t\t\t\tif ( this.data !== editor.getData() ) {\n\t\t\t\t\t\tundo ? editor.fire( 'change' ) : editor.fire( 'dataReady' );\n\t\t\t\t\t}\n\t\t\t\t\tundo && undo.unlock();\n\n\t\t\t\t\tthis.ngZone.run( () => {\n\t\t\t\t\t\tif ( typeof userInstanceReadyCallback === 'function' ) {\n\t\t\t\t\t\t\tuserInstanceReadyCallback( evt );\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tthis.ready.emit( evt );\n\t\t\t\t\t} );\n\t\t\t\t} } );\n\t\t\t} else {\n\t\t\t\tthis.ngZone.run( () => {\n\t\t\t\t\tif ( typeof userInstanceReadyCallback === 'function' ) {\n\t\t\t\t\t\tuserInstanceReadyCallback( evt );\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.ready.emit( evt );\n\t\t\t\t} );\n\t\t\t}\n\t\t}\n\n\t\tif ( this.type === CKEditor4.EditorType.INLINE ) {\n\t\t\tCKEDITOR.inline( element, config );\n\t\t} else {\n\t\t\tCKEDITOR.replace( element, config );\n\t\t}\n\t}\n\n\tprivate subscribe( editor: any ): void {\n\t\teditor.on( 'focus', evt => {\n\t\t\tthis.ngZone.run( () => {\n\t\t\t\tthis.focus.emit( evt );\n\t\t\t} );\n\t\t} );\n\n\t\teditor.on( 'paste', evt => {\n\t\t\tthis.ngZone.run( () => {\n\t\t\t\tthis.paste.emit( evt );\n\t\t\t} );\n\t\t} );\n\n\t\teditor.on( 'afterPaste', evt => {\n\t\t\tthis.ngZone.run( () => {\n\t\t\t\tthis.afterPaste.emit( evt );\n\t\t\t} );\n\t\t} );\n\n\t\teditor.on( 'dragend', evt => {\n\t\t\tthis.ngZone.run( () => {\n\t\t\t\tthis.dragEnd.emit( evt );\n\t\t\t} );\n\t\t});\n\n\t\teditor.on( 'dragstart', evt => {\n\t\t\tthis.ngZone.run( () => {\n\t\t\t\tthis.dragStart.emit( evt );\n\t\t\t} );\n\t\t} );\n\n\t\teditor.on( 'drop', evt => {\n\t\t\tthis.ngZone.run( () => {\n\t\t\t\tthis.drop.emit( evt );\n\t\t\t} );\n\t\t} );\n\n\t\teditor.on( 'fileUploadRequest', evt => {\n\t\t\tthis.ngZone.run( () => {\n\t\t\t\tthis.fileUploadRequest.emit(evt);\n\t\t\t} );\n\t\t} );\n\n\t\teditor.on( 'fileUploadResponse', evt => {\n\t\t\tthis.ngZone.run( () => {\n\t\t\t\tthis.fileUploadResponse.emit(evt);\n\t\t\t} );\n\t\t} );\n\n\t\teditor.on( 'blur', evt => {\n\t\t\tthis.ngZone.run( () => {\n\t\t\t\tif ( this.onTouched ) {\n\t\t\t\t\tthis.onTouched();\n\t\t\t\t}\n\n\t\t\t\tthis.blur.emit( evt );\n\t\t\t} );\n\t\t} );\n\n\t\teditor.on( 'dataReady', this.propagateChange, this );\n\n\t\tif ( this.instance.undoManager ) {\n\t\t\teditor.on( 'change', this.propagateChange, this );\n\t\t}\n\t\t// If 'undo' plugin is not loaded, listen to 'selectionCheck' event instead. (#54).\n\t\telse {\n\t\t\teditor.on( 'selectionCheck', this.propagateChange, this );\n\t\t}\n\t}\n\n\tprivate propagateChange( event: any ): void {\n\t\tthis.ngZone.run( () => {\n\t\t\tconst newData = this.instance.getData();\n\n\t\t\tif ( event.name === 'change' ) {\n\t\t\t\tthis.change.emit( event );\n\t\t\t} else if ( event.name === 'dataReady' ) {\n\t\t\t\tthis.dataReady.emit( event );\n\t\t\t}\n\n\t\t\tif ( newData === this.data ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis._data = newData;\n\t\t\tthis.dataChange.emit( newData );\n\n\t\t\tif ( this.onChange ) {\n\t\t\t\tthis.onChange( newData );\n\t\t\t}\n\t\t} );\n\t}\n\n}\n","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md.\n */\n\n/**\n * Basic typings for the CKEditor4 elements.\n */\nexport namespace CKEditor4 {\n\t/**\n\t * The CKEditor4 editor constructor.\n\t */\n\texport interface Config {\n\t\t[ key: string ]: any;\n\t}\n\n\t/**\n\t * The CKEditor4 editor.\n\t */\n\texport interface Editor {\n\t\t[ key: string ]: any;\n\t}\n\n\t/**\n\t * The CKEditor4 editor interface type.\n\t * See https://ckeditor.com/docs/ckeditor4/latest/guide/dev_uitypes.html\n\t * to learn more.\n\t */\n\texport const enum EditorType {\n\t\tINLINE = 'inline',\n\t\tCLASSIC = 'classic'\n\t}\n\n\t/**\n\t * The event object passed to CKEditor4 event callbacks.\n\t *\n\t * See https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_eventInfo.html\n\t * to learn more.\n\t */\n\texport interface EventInfo {\n\t\treadonly name: string;\n\t\treadonly editor: any;\n\t\treadonly data: {\n\t\t\t[ key: string ]: any;\n\t\t};\n\t\treadonly listenerData: {\n\t\t\t[ key: string ]: any;\n\t\t};\n\t\treadonly sender: {\n\t\t\t[ key: string ]: any;\n\t\t};\n\n\t\tcancel(): void;\n\n\t\tremoveListener(): void;\n\n\t\tstop(): void;\n\t}\n}\n","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md.\n */\n\nimport { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { CKEditorComponent } from './ckeditor.component';\n\n@NgModule( {\n\timports: [ FormsModule, CommonModule ],\n\tdeclarations: [ CKEditorComponent ],\n\texports: [ CKEditorComponent ]\n} )\nexport class CKEditorModule {\n}\nexport * from './ckeditor';\nexport { CKEditorComponent } from './ckeditor.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './ckeditor.module';\n"],"names":[],"mappings":";;;;;;AAAA;;;AAGG;MAoCU,iBAAiB,CAAA;IA2N7B,WAAqB,CAAA,UAAsB,EAAU,MAAc,EAAA;QAA9C,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;QAAU,IAAM,CAAA,MAAA,GAAN,MAAM,CAAQ;AAlNnE;;;;AAIG;QACM,IAAS,CAAA,SAAA,GAAG,8DAA8D,CAAC;AAEpF;;;;AAIG;QACM,IAAO,CAAA,OAAA,GAAG,UAAU,CAAC;AAE9B;;;;;;;;;AASG;AACM,QAAA,IAAA,CAAA,IAAI,GAAsD,SAAA,eAAA;AAoDnE;;;;AAIG;AACO,QAAA,IAAA,CAAA,eAAe,GAAG,IAAI,YAAY,EAAuB,CAAC;AAEpE;;;;AAIG;AACO,QAAA,IAAA,CAAA,KAAK,GAAG,IAAI,YAAY,EAAuB,CAAC;AAE1D;;;;;AAKG;AACO,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,YAAY,EAAuB,CAAC;AAE9D;;;;;;AAMG;AACO,QAAA,IAAA,CAAA,MAAM,GAAG,IAAI,YAAY,EAAuB,CAAC;AAE3D;;;;;AAKG;AACO,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,YAAY,EAAuB,CAAC;AAE/D;;;;AAIG;AACO,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,YAAY,EAAuB,CAAC;AAE9D;;;;AAIG;AACO,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,YAAY,EAAuB,CAAC;AAE5D;;;;AAIG;AACO,QAAA,IAAA,CAAA,IAAI,GAAG,IAAI,YAAY,EAAuB,CAAC;AAEzD;;;;AAIG;AACO,QAAA,IAAA,CAAA,kBAAkB,GAAG,IAAI,YAAY,EAAuB,CAAC;AAEvE;;;;AAIG;AACO,QAAA,IAAA,CAAA,iBAAiB,GAAG,IAAI,YAAY,EAAuB,CAAC;AAEtE;;;;AAIG;AACO,QAAA,IAAA,CAAA,KAAK,GAAG,IAAI,YAAY,EAAuB,CAAC;AAE1D;;;;;AAKG;AACO,QAAA,IAAA,CAAA,KAAK,GAAG,IAAI,YAAY,EAAuB,CAAC;AAE1D;;;;AAIG;AACO,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,YAAY,EAAuB,CAAC;AAE/D;;;;AAIG;AACO,QAAA,IAAA,CAAA,IAAI,GAAG,IAAI,YAAY,EAAuB,CAAC;AAuBzD;;;AAGG;QACK,IAAS,CAAA,SAAA,GAAY,IAAI,CAAC;QAE1B,IAAK,CAAA,KAAA,GAAW,IAAI,CAAC;QAErB,IAAU,CAAA,UAAA,GAAY,KAAK,CAAC;KAEoC;AAxLxE;;;;;;AAMG;IACH,IAAa,IAAI,CAAE,IAAY,EAAA;AAC9B,QAAA,IAAK,IAAI,KAAK,IAAI,CAAC,KAAK,EAAG;YAC1B,OAAO;AACP,SAAA;QAED,IAAK,IAAI,CAAC,QAAQ,EAAG;AACpB,YAAA,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAE,IAAI,CAAE,CAAC;;YAE9B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;YACrC,OAAO;AACP,SAAA;AAED,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;KAClB;AAED,IAAA,IAAI,IAAI,GAAA;QACP,OAAO,IAAI,CAAC,KAAK,CAAC;KAClB;AAED;;;;;AAKG;IACH,IAAa,QAAQ,CAAE,UAAmB,EAAA;QACzC,IAAK,IAAI,CAAC,QAAQ,EAAG;AACpB,YAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAE,UAAU,CAAE,CAAC;YACxC,OAAO;AACP,SAAA;;AAGD,QAAA,IAAI,CAAC,SAAS,GAAG,UAAU,CAAC;KAC5B;AAED,IAAA,IAAI,QAAQ,GAAA;QACX,IAAK,IAAI,CAAC,QAAQ,EAAG;AACpB,YAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;AAC9B,SAAA;QAED,OAAO,IAAI,CAAC,SAAS,CAAC;KACtB;IA0ID,eAAe,GAAA;AACd,QAAA,kBAAkB,CAAE,IAAI,CAAC,SAAS,EAAE,SAAS,IAAG;AAC/C,YAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAE,SAAS,CAAE,CAAC;AACxC,SAAC,CAAE,CAAC,IAAI,CAAE,MAAK;;;YAGd,IAAK,IAAI,CAAC,UAAU,EAAG;gBACtB,OAAO;AACP,aAAA;AAED,YAAA,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAE,IAAI,CAAE,CAAE,CAAC;SAChE,CAAE,CAAC,KAAK,CAAE,MAAM,CAAC,OAAO,CAAC,KAAK,CAAE,CAAC;KAClC;IAED,WAAW,GAAA;AACV,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;AAEvB,QAAA,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAE,MAAK;YACnC,IAAK,IAAI,CAAC,QAAQ,EAAG;AACpB,gBAAA,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;AACxB,gBAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;AACrB,aAAA;AACF,SAAC,CAAE,CAAC;KACJ;AAED,IAAA,UAAU,CAAE,KAAa,EAAA;AACxB,QAAA,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;KAClB;AAED,IAAA,gBAAgB,CAAE,QAAkC,EAAA;AACnD,QAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;KACzB;AAED,IAAA,iBAAiB,CAAE,QAAoB,EAAA;AACtC,QAAA,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;KAC1B;IAEO,YAAY,GAAA;QACnB,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAE,IAAI,CAAC,OAAO,CAAE,CAAC;QACvD,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,WAAW,CAAE,OAAO,CAAE,CAAC;QAErD,MAAM,yBAAyB,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,EAAE,aAAa,CAAC;AACjE,QAAA,MAAM,aAAa,GAA8B;AAChD,YAAA,eAAe,EAAE,IAAI;SACrB,CAAC;QACF,MAAM,MAAM,GAA8B,EAAE,GAAG,aAAa,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;AAE/E,QAAA,IAAK,OAAO,MAAM,CAAC,EAAE,KAAK,WAAW,EAAG;AACvC,YAAA,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC;AACf,SAAA;AAED,QAAA,MAAM,CAAC,EAAE,CAAC,aAAa,GAAG,GAAG,IAAG;AAC/B,YAAA,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;AAE1B,YAAA,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC;;YAGvB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,SAAS,KAAK,IAAI,GAAG,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;AAElF,YAAA,IAAI,CAAC,SAAS,CAAE,IAAI,CAAC,QAAQ,CAAE,CAAC;AAEhC,YAAA,MAAM,IAAI,GAAG,MAAM,CAAC,WAAW,CAAC;AAEhC,YAAA,IAAK,IAAI,CAAC,IAAI,KAAK,IAAI,EAAG;AACzB,gBAAA,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;gBAEpB,MAAM,CAAC,OAAO,CAAE,IAAI,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,MAAK;;;wBAG3C,IAAK,IAAI,CAAC,IAAI,KAAK,MAAM,CAAC,OAAO,EAAE,EAAG;AACrC,4BAAA,IAAI,GAAG,MAAM,CAAC,IAAI,CAAE,QAAQ,CAAE,GAAG,MAAM,CAAC,IAAI,CAAE,WAAW,CAAE,CAAC;AAC5D,yBAAA;AACD,wBAAA,IAAI,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;AAEtB,wBAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAE,MAAK;AACrB,4BAAA,IAAK,OAAO,yBAAyB,KAAK,UAAU,EAAG;gCACtD,yBAAyB,CAAE,GAAG,CAAE,CAAC;AACjC,6BAAA;AAED,4BAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAE,GAAG,CAAE,CAAC;AACxB,yBAAC,CAAE,CAAC;qBACJ,EAAE,CAAE,CAAC;AACN,aAAA;AAAM,iBAAA;AACN,gBAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAE,MAAK;AACrB,oBAAA,IAAK,OAAO,yBAAyB,KAAK,UAAU,EAAG;wBACtD,yBAAyB,CAAE,GAAG,CAAE,CAAC;AACjC,qBAAA;AAED,oBAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAE,GAAG,CAAE,CAAC;AACxB,iBAAC,CAAE,CAAC;AACJ,aAAA;AACF,SAAC,CAAA;AAED,QAAA,IAAK,IAAI,CAAC,IAAI,KAAA,QAAA,eAAmC;AAChD,YAAA,QAAQ,CAAC,MAAM,CAAE,OAAO,EAAE,MAAM,CAAE,CAAC;AACnC,SAAA;AAAM,aAAA;AACN,YAAA,QAAQ,CAAC,OAAO,CAAE,OAAO,EAAE,MAAM,CAAE,CAAC;AACpC,SAAA;KACD;AAEO,IAAA,SAAS,CAAE,MAAW,EAAA;AAC7B,QAAA,MAAM,CAAC,EAAE,CAAE,OAAO,EAAE,GAAG,IAAG;AACzB,YAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAE,MAAK;AACrB,gBAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAE,GAAG,CAAE,CAAC;AACxB,aAAC,CAAE,CAAC;AACL,SAAC,CAAE,CAAC;AAEJ,QAAA,MAAM,CAAC,EAAE,CAAE,OAAO,EAAE,GAAG,IAAG;AACzB,YAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAE,MAAK;AACrB,gBAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAE,GAAG,CAAE,CAAC;AACxB,aAAC,CAAE,CAAC;AACL,SAAC,CAAE,CAAC;AAEJ,QAAA,MAAM,CAAC,EAAE,CAAE,YAAY,EAAE,GAAG,IAAG;AAC9B,YAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAE,MAAK;AACrB,gBAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAE,GAAG,CAAE,CAAC;AAC7B,aAAC,CAAE,CAAC;AACL,SAAC,CAAE,CAAC;AAEJ,QAAA,MAAM,CAAC,EAAE,CAAE,SAAS,EAAE,GAAG,IAAG;AAC3B,YAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAE,MAAK;AACrB,gBAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAE,GAAG,CAAE,CAAC;AAC1B,aAAC,CAAE,CAAC;AACL,SAAC,CAAC,CAAC;AAEH,QAAA,MAAM,CAAC,EAAE,CAAE,WAAW,EAAE,GAAG,IAAG;AAC7B,YAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAE,MAAK;AACrB,gBAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAE,GAAG,CAAE,CAAC;AAC5B,aAAC,CAAE,CAAC;AACL,SAAC,CAAE,CAAC;AAEJ,QAAA,MAAM,CAAC,EAAE,CAAE,MAAM,EAAE,GAAG,IAAG;AACxB,YAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAE,MAAK;AACrB,gBAAA,IAAI,CAAC,IAAI,CAAC,IAAI,CAAE,GAAG,CAAE,CAAC;AACvB,aAAC,CAAE,CAAC;AACL,SAAC,CAAE,CAAC;AAEJ,QAAA,MAAM,CAAC,EAAE,CAAE,mBAAmB,EAAE,GAAG,IAAG;AACrC,YAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAE,MAAK;AACrB,gBAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClC,aAAC,CAAE,CAAC;AACL,SAAC,CAAE,CAAC;AAEJ,QAAA,MAAM,CAAC,EAAE,CAAE,oBAAoB,EAAE,GAAG,IAAG;AACtC,YAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAE,MAAK;AACrB,gBAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACnC,aAAC,CAAE,CAAC;AACL,SAAC,CAAE,CAAC;AAEJ,QAAA,MAAM,CAAC,EAAE,CAAE,MAAM,EAAE,GAAG,IAAG;AACxB,YAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAE,MAAK;gBACrB,IAAK,IAAI,CAAC,SAAS,EAAG;oBACrB,IAAI,CAAC,SAAS,EAAE,CAAC;AACjB,iBAAA;AAED,gBAAA,IAAI,CAAC,IAAI,CAAC,IAAI,CAAE,GAAG,CAAE,CAAC;AACvB,aAAC,CAAE,CAAC;AACL,SAAC,CAAE,CAAC;QAEJ,MAAM,CAAC,EAAE,CAAE,WAAW,EAAE,IAAI,CAAC,eAAe,EAAE,IAAI,CAAE,CAAC;AAErD,QAAA,IAAK,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAG;YAChC,MAAM,CAAC,EAAE,CAAE,QAAQ,EAAE,IAAI,CAAC,eAAe,EAAE,IAAI,CAAE,CAAC;AAClD,SAAA;;AAEI,aAAA;YACJ,MAAM,CAAC,EAAE,CAAE,gBAAgB,EAAE,IAAI,CAAC,eAAe,EAAE,IAAI,CAAE,CAAC;AAC1D,SAAA;KACD;AAEO,IAAA,eAAe,CAAE,KAAU,EAAA;AAClC,QAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAE,MAAK;YACrB,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;AAExC,YAAA,IAAK,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAG;AAC9B,gBAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAE,KAAK,CAAE,CAAC;AAC1B,aAAA;AAAM,iBAAA,IAAK,KAAK,CAAC,IAAI,KAAK,WAAW,EAAG;AACxC,gBAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAE,KAAK,CAAE,CAAC;AAC7B,aAAA;AAED,YAAA,IAAK,OAAO,KAAK,IAAI,CAAC,IAAI,EAAG;gBAC5B,OAAO;AACP,aAAA;AAED,YAAA,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC;AACrB,YAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAE,OAAO,CAAE,CAAC;YAEhC,IAAK,IAAI,CAAC,QAAQ,EAAG;AACpB,gBAAA,IAAI,CAAC,QAAQ,CAAE,OAAO,CAAE,CAAC;AACzB,aAAA;AACF,SAAC,CAAE,CAAC;KACJ;;8GA5ZW,iBAAiB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,MAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAjB,iBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,iBAAiB,EARlB,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,SAAA,EAAA,WAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,MAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,KAAA,EAAA,OAAA,EAAA,SAAA,EAAA,WAAA,EAAA,MAAA,EAAA,QAAA,EAAA,UAAA,EAAA,YAAA,EAAA,SAAA,EAAA,WAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,MAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,KAAA,EAAA,OAAA,EAAA,KAAA,EAAA,OAAA,EAAA,UAAA,EAAA,YAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,SAAA,EAAA;AACV,QAAA;AACC,YAAA,OAAO,EAAE,iBAAiB;AAC1B,YAAA,WAAW,EAAE,UAAU,CAAE,MAAM,iBAAiB,CAAE;AAClD,YAAA,KAAK,EAAE,IAAI;AACX,SAAA;AACD,KAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EARS,6BAA6B,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA;2FAU3B,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAZ7B,SAAS;AAAE,YAAA,IAAA,EAAA,CAAA;AACX,oBAAA,QAAQ,EAAE,UAAU;AACpB,oBAAA,QAAQ,EAAE,6BAA6B;AAEvC,oBAAA,SAAS,EAAE;AACV,wBAAA;AACC,4BAAA,OAAO,EAAE,iBAAiB;AAC1B,4BAAA,WAAW,EAAE,UAAU,CAAE,uBAAuB,CAAE;AAClD,4BAAA,KAAK,EAAE,IAAI;AACX,yBAAA;AACD,qBAAA;AACD,iBAAA,CAAA;sHAQS,MAAM,EAAA,CAAA;sBAAd,KAAK;gBAOG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBAOG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBAYG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBASO,IAAI,EAAA,CAAA;sBAAhB,KAAK;gBAyBO,QAAQ,EAAA,CAAA;sBAApB,KAAK;gBAuBI,eAAe,EAAA,CAAA;sBAAxB,MAAM;gBAOG,KAAK,EAAA,CAAA;sBAAd,MAAM;gBAQG,SAAS,EAAA,CAAA;sBAAlB,MAAM;gBASG,MAAM,EAAA,CAAA;sBAAf,MAAM;gBAQG,UAAU,EAAA,CAAA;sBAAnB,MAAM;gBAOG,SAAS,EAAA,CAAA;sBAAlB,MAAM;gBAOG,OAAO,EAAA,CAAA;sBAAhB,MAAM;gBAOG,IAAI,EAAA,CAAA;sBAAb,MAAM;gBAOG,kBAAkB,EAAA,CAAA;sBAA3B,MAAM;gBAOG,iBAAiB,EAAA,CAAA;sBAA1B,MAAM;gBAOG,KAAK,EAAA,CAAA;sBAAd,MAAM;gBAQG,KAAK,EAAA,CAAA;sBAAd,MAAM;gBAOG,UAAU,EAAA,CAAA;sBAAnB,MAAM;gBAOG,IAAI,EAAA,CAAA;sBAAb,MAAM;;;ACjOR;;;AAGG;;ACHH;;;AAGG;MAYU,cAAc,CAAA;;2GAAd,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAd,cAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,iBAHV,iBAAiB,CAAA,EAAA,OAAA,EAAA,CADtB,WAAW,EAAE,YAAY,aAEzB,iBAAiB,CAAA,EAAA,CAAA,CAAA;AAEhB,cAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,EAJjB,OAAA,EAAA,CAAA,CAAE,WAAW,EAAE,YAAY,CAAE,CAAA,EAAA,CAAA,CAAA;2FAI1B,cAAc,EAAA,UAAA,EAAA,CAAA;kBAL1B,QAAQ;AAAE,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,OAAO,EAAE,CAAE,WAAW,EAAE,YAAY,CAAE;oBACtC,YAAY,EAAE,CAAE,iBAAiB,CAAE;oBACnC,OAAO,EAAE,CAAE,iBAAiB,CAAE;AAC9B,iBAAA,CAAA;;;ACdD;;AAEG;;;;"} \ No newline at end of file diff --git a/dist/package.json b/dist/package.json deleted file mode 100644 index 910709db..00000000 --- a/dist/package.json +++ /dev/null @@ -1,58 +0,0 @@ -{ - "name": "ckeditor4-angular", - "version": "5.0.0", - "description": "Official CKEditor 4 component for Angular.", - "keywords": [ - "wysiwyg", - "rich text editor", - "rte", - "editor", - "html", - "contentEditable", - "editing", - "angular", - "angular5", - "ng", - "component", - "ckeditor", - "ckeditor4", - "ckeditor 4" - ], - "peerDependencies": { - "@angular/core": ">=13.4.0", - "@angular/common": ">=13.4.0", - "@angular/forms": ">=13.4.0" - }, - "author": "CKSource (https://cksource.com/)", - "license": "SEE LICENSE IN LICENSE.md", - "homepage": "https://ckeditor.com/", - "bugs": "https://github.com/ckeditor/ckeditor4-angular/issues", - "repository": { - "type": "git", - "url": "https://github.com/ckeditor/ckeditor4-angular.git" - }, - "dependencies": { - "ckeditor4-integrations-common": "^1.0.0", - "tslib": "^2.3.0" - }, - "module": "fesm2015/ckeditor4-angular.mjs", - "es2020": "fesm2020/ckeditor4-angular.mjs", - "esm2020": "esm2020/ckeditor4-angular.mjs", - "fesm2020": "fesm2020/ckeditor4-angular.mjs", - "fesm2015": "fesm2015/ckeditor4-angular.mjs", - "typings": "ckeditor4-angular.d.ts", - "exports": { - "./package.json": { - "default": "./package.json" - }, - ".": { - "types": "./ckeditor4-angular.d.ts", - "esm2020": "./esm2020/ckeditor4-angular.mjs", - "es2020": "./fesm2020/ckeditor4-angular.mjs", - "es2015": "./fesm2015/ckeditor4-angular.mjs", - "node": "./fesm2015/ckeditor4-angular.mjs", - "default": "./fesm2020/ckeditor4-angular.mjs" - } - }, - "sideEffects": false -}